From f15e02b7f9a146ebeedfde9bbfb9312df6501b3d Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum <129341+stephengoldbaum@users.noreply.github.com> Date: Thu, 5 Mar 2020 17:36:12 -0500 Subject: [PATCH 01/88] Renamed to uppercase README.MD --- src/Morphir/Sample/LCR/{readme.md => README.MD} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/Morphir/Sample/LCR/{readme.md => README.MD} (99%) diff --git a/src/Morphir/Sample/LCR/readme.md b/src/Morphir/Sample/LCR/README.MD similarity index 99% rename from src/Morphir/Sample/LCR/readme.md rename to src/Morphir/Sample/LCR/README.MD index c5fd1d0..ebcac81 100644 --- a/src/Morphir/Sample/LCR/readme.md +++ b/src/Morphir/Sample/LCR/README.MD @@ -21,4 +21,4 @@ This project implements a subset of the the rules pertaining to 5G and LCR. The * *[Outflows](Outflows.elm)* - The rules for categorizing different types of outflows. * *[MaturityBucket](MaturityBucket.elm)* - Some arcane rules for grouping flows into buckets based on their maturity date. The LCR is only concerned with maturity dates up to 30 days. This is all relative to a given date that must be supplied by the caller. * *[Product](Product.elm)* - The minimal product info needed by these rules. Note that whether a product is HQLA is determined by another set of rules that firms must manage to more specs. There's some talk of making the issuer determine them. For this purpose, we'll assume this has been determined upstream. -* *[Rules](Rules.elm)* - The structure and functions for managing flow rules. \ No newline at end of file +* *[Rules](Rules.elm)* - The structure and functions for managing flow rules. From 0273349696cc293ecf91f8ef57d26007d44f158d Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum <129341+stephengoldbaum@users.noreply.github.com> Date: Thu, 5 Mar 2020 17:37:13 -0500 Subject: [PATCH 02/88] Rename README.MD to README.md --- src/Morphir/Sample/LCR/{README.MD => README.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/Morphir/Sample/LCR/{README.MD => README.md} (100%) diff --git a/src/Morphir/Sample/LCR/README.MD b/src/Morphir/Sample/LCR/README.md similarity index 100% rename from src/Morphir/Sample/LCR/README.MD rename to src/Morphir/Sample/LCR/README.md From 8b620df2794c1e8677c85779f563524f0a8fb1ca Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum <129341+stephengoldbaum@users.noreply.github.com> Date: Thu, 5 Mar 2020 17:38:30 -0500 Subject: [PATCH 03/88] Rename readme.md to README.md --- src/Morphir/Sample/{readme.md => README.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/Morphir/Sample/{readme.md => README.md} (97%) diff --git a/src/Morphir/Sample/readme.md b/src/Morphir/Sample/README.md similarity index 97% rename from src/Morphir/Sample/readme.md rename to src/Morphir/Sample/README.md index 8473ef7..8dc7350 100644 --- a/src/Morphir/Sample/readme.md +++ b/src/Morphir/Sample/README.md @@ -5,4 +5,4 @@ These are samples of various flavors of Morphir models (rewritten into pure Elm) This is an example of pure rules processing. There are a large number of such projects and often the business logic needs to be shared across systems (things like account and asset categorization). The standard approach is to share this via enriched data feeds from one system to the other, resulting in a complex web of feed dependencies. Attempts have been made to share libraries. These usually fail due to the fact that classes and technologies differ greatly across systems and library version management across teams becomes an extreme burden. To solve this problem, Morphir takes the approach of sharing the models, including logic, and allowing teams to manage the code generation into their respective technologies as needed. Morphir provides generic Java code generation for free for those who can use it. ### Apps -These are examples of full low-code style application definitions. They require a abstraction level above base Morphir (or Elm) meaning that we apply specialized backends to process them. The goal is to process them into full distributed systems using both internal infrastructure tools, public cloud, or others. They would still be processed to the standard set of transpiled languages using the basic code generation, so are still useful without the specialized generators. \ No newline at end of file +These are examples of full low-code style application definitions. They require a abstraction level above base Morphir (or Elm) meaning that we apply specialized backends to process them. The goal is to process them into full distributed systems using both internal infrastructure tools, public cloud, or others. They would still be processed to the standard set of transpiled languages using the basic code generation, so are still useful without the specialized generators. From 41a94a0db2aba05d1d397dafc1bbe757d4f6049e Mon Sep 17 00:00:00 2001 From: reesh-a Date: Mon, 30 Mar 2020 18:49:16 -0400 Subject: [PATCH 04/88] Conforming BooksAndRecords to new stateful app type --- .../Sample/Apps/BooksAndRecords/App.elm | 123 ++++++++---------- 1 file changed, 54 insertions(+), 69 deletions(-) diff --git a/src/Morphir/Sample/Apps/BooksAndRecords/App.elm b/src/Morphir/Sample/Apps/BooksAndRecords/App.elm index add0a45..88ed611 100644 --- a/src/Morphir/Sample/Apps/BooksAndRecords/App.elm +++ b/src/Morphir/Sample/Apps/BooksAndRecords/App.elm @@ -1,95 +1,80 @@ -module Morphir.Sample.Apps.BooksAndRecords.App exposing (..) +module Morphir.Dapr.Input.Example exposing (..) +import Morphir.SDK.StatefulApp exposing (StatefulApp) -import Dict exposing (Dict) -import Morphir.SDK.App exposing (StatefulApp, statefulApp, cmdNone) -import Morphir.Sample.Apps.Shared.Product as Product -import Morphir.Sample.Apps.Shared.Price exposing (..) -import Morphir.Sample.Apps.BooksAndRecords.Deal exposing (..) +type alias ID = + String -type alias App = - StatefulApp API RemoteState LocalState Event - -type alias API = - { openDeal : ID -> Product.ID -> Price -> Quantity -> Result OpenRequestFault Event - , closeDeal : ID -> Result CloseRequestFault Event - } +type alias ProductID = + String -type alias RemoteState = - () +type alias Price = + Float -type alias LocalState = - Dict ID Deal +type alias Quantity = + Int -type Event - = DealOpened ID Product.ID Price Quantity - | DealClosed ID +type alias Deal = + { id : ID + , product : ProductID + , price : Price + , quantity : Quantity + } -app : App -app = - statefulApp - { api = api - , init = init - , update = update - , subscriptions = subscriptions - } - - -api : RemoteState -> LocalState -> API -api remote local = - { openDeal = \dealID productID price quantity -> - if price < 0 then - Err (InvalidPrice dealID price) - else if price < 0 then - Err (InvalidQuantity dealID quantity) - else if Dict.member dealID local then - Err (DuplicateDeal dealID) - else - Ok (DealOpened dealID productID price quantity) - - , closeDeal = \dealID -> - case local |> Dict.get dealID of - Nothing -> - Err (DealNotFound dealID) - - Just _ -> - Ok (DealClosed dealID) - } +type DealCmd + = OpenDeal ID ProductID Price Quantity + | CloseDeal ID -init : RemoteState -> ( LocalState, Cmd Event ) -init _ = - cmdNone Dict.empty +type DealEvent + = DealOpened ID ProductID Price Quantity + | DealClosed ID + | InvalidQuantity ID Quantity + | InvalidPrice ID Price + | DuplicateDeal ID + | DealNotFound ID -update : RemoteState -> Event -> LocalState -> ( LocalState, Cmd Event ) -update remote event local = - case event of - DealOpened dealID productID price quantity -> - ( ( local |> Dict.insert dealID (Deal dealID productID price quantity) ), Cmd.none) +type alias App = + StatefulApp ID DealCmd Deal DealEvent - DealClosed dealID -> - cmdNone ( local |> Dict.remove dealID ) +app : App +app = + StatefulApp logic -subscriptions remote local = - Sub.none +logic : ID -> Maybe Deal -> DealCmd -> ( String, Maybe Deal, DealEvent ) +logic dealId deal dealCmd = + case deal of + Just d -> + case dealCmd of + CloseDeal _ -> + ( dealId, Nothing, DealClosed dealId ) --- Extra types used in the API and state + OpenDeal _ _ _ _ -> + ( dealId, deal, DuplicateDeal dealId ) + Nothing -> + case dealCmd of + OpenDeal id productId price qty -> + if price < 0 then + ( dealId, deal, InvalidPrice id price ) -type OpenRequestFault - = InvalidQuantity ID Int - | InvalidPrice ID Price - | DuplicateDeal ID + else if qty < 0 then + ( dealId, deal, InvalidQuantity id qty ) + else + ( dealId + , Deal id productId price qty |> Just + , DealOpened id productId price qty + ) -type CloseRequestFault - = DealNotFound ID + CloseDeal _ -> + ( dealId, deal, DealNotFound dealId ) From b50f240e406006ce589a8cc61360667ef716ac06 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum <129341+stephengoldbaum@users.noreply.github.com> Date: Thu, 9 Apr 2020 12:58:54 -0400 Subject: [PATCH 05/88] Link to project for pages views --- .gitignore | 3 +++ src/Morphir/Sample/LCR/README.md | 2 ++ 2 files changed, 5 insertions(+) diff --git a/.gitignore b/.gitignore index 8ea8aa3..a00951c 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,6 @@ elm-stuff/ morphir-interface.json morphir-implementation.json morphir-version.json + +.fake +.ionide \ No newline at end of file diff --git a/src/Morphir/Sample/LCR/README.md b/src/Morphir/Sample/LCR/README.md index ebcac81..deff1d5 100644 --- a/src/Morphir/Sample/LCR/README.md +++ b/src/Morphir/Sample/LCR/README.md @@ -14,6 +14,8 @@ The U.S. LCR rules are specified and supported in a set of documents: This project implements a subset of the the rules pertaining to 5G and LCR. The 5G is concerned with categorizing asset flows so that they can be appropriately handled in the various calculations. Handling is usually in the form of inclusing in different calculated fields and applying weights to the category. The LCR (high quality liquid asset amount / total net cash flow amount) is then calculated as a ratio of outflows to inflows and is one of the factors in determining the institution's health. ## Code Structure +[View full project](https://github.com/Morgan-Stanley/morphir-examples/tree/master/src/Morphir/Sample/LCR) + * *[Basics](Basics.elm)* - Various common types and the such. * *[Calculations](Calculations.elm)* - The LCR and 5G calculations. * *[Flows](Flows.elm)* - A common structure for the various flows. From bbb7e27e064e85e64dcc553e129012d1abcf7fc7 Mon Sep 17 00:00:00 2001 From: reesh-a Date: Tue, 21 Apr 2020 14:48:18 -0400 Subject: [PATCH 06/88] Adding BooksAndRecords working example with CI pipelining --- .github/workflows/build_publish.yml | 59 ++++ Dockerfile | 6 + README.md | 6 +- app.yaml | 42 +++ elm.json | 27 +- morphir-dapr.json | 7 + publisher/Dockerfile | 6 + publisher/node-publisher.js | 52 +++ publisher/node-publisher.yaml | 26 ++ publisher/node-server.js | 7 + publisher/package-lock.json | 374 +++++++++++++++++++++ publisher/package.json | 14 + src/Company/Operations/BooksAndRecords.elm | 80 +++++ 13 files changed, 695 insertions(+), 11 deletions(-) create mode 100644 .github/workflows/build_publish.yml create mode 100644 Dockerfile create mode 100644 app.yaml create mode 100644 morphir-dapr.json create mode 100644 publisher/Dockerfile create mode 100644 publisher/node-publisher.js create mode 100644 publisher/node-publisher.yaml create mode 100644 publisher/node-server.js create mode 100644 publisher/package-lock.json create mode 100644 publisher/package.json create mode 100644 src/Company/Operations/BooksAndRecords.elm diff --git a/.github/workflows/build_publish.yml b/.github/workflows/build_publish.yml new file mode 100644 index 0000000..00f9b8b --- /dev/null +++ b/.github/workflows/build_publish.yml @@ -0,0 +1,59 @@ +name: build-publish + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + + build: + + runs-on: ubuntu-latest + + env: + AZURE_CONTAINER_REGISTRY_SERVER: ${{ 'daprapps.azurecr.io' }} + APP_NAME: ${{ 'books_and_records' }} + PUBLISHER_NAME: ${{ 'node_publisher' }} + + steps: + + - name: Checkout + uses: actions/checkout@v2 + + - name: Set up node + uses: actions/setup-node@v1.4.1 + with: + node-version: '12.14.1' + + - name: Set up elm + uses: justgook/setup-elm@v1 + + - name: Compile morphir application + run: | + npm install -g morphir-elm + morphir-dapr -d + + - name: Login to azure container registry + uses: azure/docker-login@v1 + with: + login-server: ${{ env.AZURE_CONTAINER_REGISTRY_SERVER }} + username: ${{ secrets.SERVICE_PRINCIPAL_CLIENT_ID }} + password: ${{ secrets.SERVICE_PRINCIPAL_SECRET }} + + - name: Push app image to azure container registry + run: | + docker build . -t ${{ env.AZURE_CONTAINER_REGISTRY_SERVER }}/${{ env.APP_NAME }}:${{ github.sha }} + docker push ${{ env.AZURE_CONTAINER_REGISTRY_SERVER }}/${{ env.APP_NAME }}:${{ github.sha }} + + - name: Push publisher image to azure container registry + run: | + cd publisher + docker build . -t ${{ env.AZURE_CONTAINER_REGISTRY_SERVER }}/${{ env.PUBLISHER_NAME }}:latest + docker push ${{ env.AZURE_CONTAINER_REGISTRY_SERVER }}/${{ env.PUBLISHER_NAME }}:latest + + - name: Azure login + uses: azure/login@v1 + with: + creds: ${{ secrets.SERVICE_PRINCIPAL_AUTH }} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..64a375e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,6 @@ +FROM node:8-alpine +WORKDIR /app +COPY dapr-output/ . +RUN npm install +EXPOSE 3000 +CMD [ "node", "DaprAppShell.js" ] \ No newline at end of file diff --git a/README.md b/README.md index a95ddb8..ed16683 100644 --- a/README.md +++ b/README.md @@ -6,4 +6,8 @@ This repo contains various models that represent the kinds of business problems - *[Rules](src/Morphir/Sample/Rules/README.md)* - Examples of modeling business rules in Elm that are traditionally implemented using rules engines. - *[LCR](src/Morphir/Sample/LCR/README.md)* - An example of modeling regulatory reporting that includes complex calculations. -- *[Apps](src/Morphir/Sample/Apps/README.md)* - Examples of modeling entire business applications and their interactions. \ No newline at end of file +- *[Apps](src/Morphir/Sample/Apps/README.md)* - Examples of modeling entire business applications and their interactions. + +### Compile example + +morphir-dapr -d \ No newline at end of file diff --git a/app.yaml b/app.yaml new file mode 100644 index 0000000..7054573 --- /dev/null +++ b/app.yaml @@ -0,0 +1,42 @@ +kind: Service +apiVersion: v1 +metadata: + name: books-and-records-app + labels: + app: books-and-records +spec: + selector: + app: books-and-records + ports: + - protocol: TCP + port: 80 + targetPort: 3000 + type: LoadBalancer + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: books-and-records-app + labels: + app: books-and-records +spec: + replicas: 1 + selector: + matchLabels: + app: books-and-records + template: + metadata: + labels: + app: books-and-records + annotations: + dapr.io/enabled: "true" + dapr.io/id: "books-and-records" + dapr.io/port: "3000" + spec: + containers: + - name: books-and-records + image: daprapps.azurecr.io/books_and_records:9355b913ec196c3280c3931f45cb74177589b479 + ports: + - containerPort: 3000 + imagePullPolicy: IfNotPresent diff --git a/elm.json b/elm.json index eba3f9c..5878f27 100644 --- a/elm.json +++ b/elm.json @@ -1,24 +1,31 @@ { "type": "application", "source-directories": [ - "src", - "tests" + "src" ], - "elm-version": "0.19.0", + "elm-version": "0.19.1", "dependencies": { "direct": { - "elm/core": "1.0.2", + "Morgan-Stanley/morphir-elm": "1.0.0", + "elm/browser": "1.0.2", + "elm/core": "1.0.5", + "elm/html": "1.0.0" + }, + "indirect": { "elm/json": "1.1.3", "elm/parser": "1.1.0", "elm/random": "1.0.0", + "elm/regex": "1.0.0", "elm/time": "1.0.0", + "elm/url": "1.0.0", + "elm/virtual-dom": "1.0.2", + "elm-community/json-extra": "4.2.0", + "elm-community/list-extra": "8.2.3", "elm-explorations/test": "1.2.2", - "justinmimbs/date": "3.2.0", - "morphir/morphir-elm": "1.0.0" - }, - "indirect": { - "elm/html": "1.0.0", - "elm/virtual-dom": "1.0.2" + "rtfeldman/elm-hex": "1.0.0", + "rtfeldman/elm-iso8601-date-strings": "1.1.3", + "stil4m/elm-syntax": "7.1.1", + "stil4m/structured-writer": "1.0.2" } }, "test-dependencies": { diff --git a/morphir-dapr.json b/morphir-dapr.json new file mode 100644 index 0000000..6f2c059 --- /dev/null +++ b/morphir-dapr.json @@ -0,0 +1,7 @@ +{ + "name": "Company/Operations", + "sourceDirectories": ["src/Operations"], + "exposedModules": [ + "BooksAndRecords" + ] +} \ No newline at end of file diff --git a/publisher/Dockerfile b/publisher/Dockerfile new file mode 100644 index 0000000..4003348 --- /dev/null +++ b/publisher/Dockerfile @@ -0,0 +1,6 @@ +FROM node:8-alpine +WORKDIR /app +COPY . . +RUN npm install +EXPOSE 3000 +CMD [ "node", "node-server.js" ] \ No newline at end of file diff --git a/publisher/node-publisher.js b/publisher/node-publisher.js new file mode 100644 index 0000000..357bdca --- /dev/null +++ b/publisher/node-publisher.js @@ -0,0 +1,52 @@ +const readline = require('readline') +const http = require('http') + +const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout +}) + +function ask() { + + rl.question('Topic to publish message to: ', topic => { + + rl.question('JSON message to publish: \n', msg => { + + const options = { + hostname: 'localhost', + port: 3500, + path: `/v1.0/publish/${topic}`, + method: 'POST', + headers: { + 'Content-Type': 'application/json' + } + } + + const req = http.request(options, (res) => { + console.log(`STATUS: ${res.statusCode}`) + console.log(`HEADERS: ${JSON.stringify(res.headers)}`) + res.setEncoding('utf8') + res.on('data', (chunk) => { + console.log(`BODY: ${chunk}`) + }) + res.on('end', () => { + console.log('Message sent!') + ask() + }) + }) + + req.on('error', (e) => { + console.error(`problem with request: ${e.message}`) + console.log("Try again: \n") + ask() + }) + + req.write(msg) + req.end() + + }) + }) +} + +console.log("Json message publisher. Dapr URL: 'localhost/3500/v1.0/publish/' \n") +ask() \ No newline at end of file diff --git a/publisher/node-publisher.yaml b/publisher/node-publisher.yaml new file mode 100644 index 0000000..b3b6f4a --- /dev/null +++ b/publisher/node-publisher.yaml @@ -0,0 +1,26 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: node-publisher + labels: + app: node-publisher +spec: + replicas: 1 + selector: + matchLabels: + app: node-publisher + template: + metadata: + labels: + app: node-publisher + annotations: + dapr.io/enabled: "true" + dapr.io/id: "node-publisher" + dapr.io/port: "3000" + spec: + containers: + - name: node-publisher + image: daprapps.azurecr.io/node_publisher:latest + ports: + - containerPort: 3000 + imagePullPolicy: Always diff --git a/publisher/node-server.js b/publisher/node-server.js new file mode 100644 index 0000000..675579a --- /dev/null +++ b/publisher/node-server.js @@ -0,0 +1,7 @@ +const express = require('express') +const app = express() + +app.get('/', (_req, res) => { res.send("Hello from node dapr publisher") }) +app.listen(3000, () => { + console.log("Json message publisher. Dapr URL: 'localhost/3500/v1.0/publish/' \n") +}) \ No newline at end of file diff --git a/publisher/package-lock.json b/publisher/package-lock.json new file mode 100644 index 0000000..4a28cc5 --- /dev/null +++ b/publisher/package-lock.json @@ -0,0 +1,374 @@ +{ + "name": "publisher", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + } + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" + }, + "mime-types": { + "version": "2.1.26", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", + "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", + "requires": { + "mime-db": "1.43.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + } + } +} diff --git a/publisher/package.json b/publisher/package.json new file mode 100644 index 0000000..7daeee6 --- /dev/null +++ b/publisher/package.json @@ -0,0 +1,14 @@ +{ + "name": "publisher", + "version": "1.0.0", + "description": "", + "main": "node-server.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "express": "^4.17.1" + } +} diff --git a/src/Company/Operations/BooksAndRecords.elm b/src/Company/Operations/BooksAndRecords.elm new file mode 100644 index 0000000..9a528f5 --- /dev/null +++ b/src/Company/Operations/BooksAndRecords.elm @@ -0,0 +1,80 @@ +module Company.Operations.BooksAndRecords exposing (..) + +import Morphir.SDK.StatefulApp exposing (StatefulApp) + + +type alias ID = + String + + +type alias ProductID = + String + + +type alias Price = + Float + + +type alias Quantity = + Int + + +type alias Deal = + { id : ID + , product : ProductID + , price : Price + , quantity : Quantity + } + + +type DealCmd + = OpenDeal ID ProductID Price Quantity + | CloseDeal ID + + +type DealEvent + = DealOpened ID ProductID Price Quantity + | DealClosed ID + | InvalidQuantity ID Quantity + | InvalidPrice ID Price + | DuplicateDeal ID + | DealNotFound ID + + +type alias App = + StatefulApp ID DealCmd Deal DealEvent + + +app : App +app = + StatefulApp logic + + +logic : ID -> Maybe Deal -> DealCmd -> ( ID, Maybe Deal, DealEvent ) +logic dealId deal dealCmd = + case deal of + Just _ -> + case dealCmd of + CloseDeal _ -> + ( dealId, Nothing, DealClosed dealId ) + + OpenDeal _ _ _ _ -> + ( dealId, deal, DuplicateDeal dealId ) + + Nothing -> + case dealCmd of + OpenDeal id productId price qty -> + if price < 0 then + ( dealId, deal, InvalidPrice id price ) + + else if qty < 0 then + ( dealId, deal, InvalidQuantity id qty ) + + else + ( dealId + , Deal id productId price qty |> Just + , DealOpened id productId price qty + ) + + CloseDeal _ -> + ( dealId, deal, DealNotFound dealId ) From 71c28b6415811981ad7278691f540a92e4913a57 Mon Sep 17 00:00:00 2001 From: reesh-a Date: Tue, 21 Apr 2020 14:51:57 -0400 Subject: [PATCH 07/88] Reverting original example --- .../Sample/Apps/BooksAndRecords/App.elm | 124 ++++++++++-------- 1 file changed, 70 insertions(+), 54 deletions(-) diff --git a/src/Morphir/Sample/Apps/BooksAndRecords/App.elm b/src/Morphir/Sample/Apps/BooksAndRecords/App.elm index 88ed611..c7324d9 100644 --- a/src/Morphir/Sample/Apps/BooksAndRecords/App.elm +++ b/src/Morphir/Sample/Apps/BooksAndRecords/App.elm @@ -1,80 +1,96 @@ -module Morphir.Dapr.Input.Example exposing (..) +module Morphir.Sample.Apps.BooksAndRecords.App exposing (..) -import Morphir.SDK.StatefulApp exposing (StatefulApp) +import Dict exposing (Dict) +import Morphir.SDK.App exposing (StatefulApp, statefulApp, cmdNone) +import Morphir.Sample.Apps.Shared.Product as Product +import Morphir.Sample.Apps.Shared.Price exposing (..) +import Morphir.Sample.Apps.BooksAndRecords.Deal exposing (..) +import Morphir.Sample.Apps.Shared.Quantity exposing (Quantity) -type alias ID = - String +type alias App = + StatefulApp API RemoteState LocalState Event -type alias ProductID = - String +type alias API = + { openDeal : ID -> Product.ID -> Price -> Quantity -> Result OpenRequestFault Event + , closeDeal : ID -> Result CloseRequestFault Event + } -type alias Price = - Float +type alias RemoteState = + () -type alias Quantity = - Int +type alias LocalState = + Dict ID Deal -type alias Deal = - { id : ID - , product : ProductID - , price : Price - , quantity : Quantity - } +type Event + = DealOpened ID Product.ID Price Quantity + | DealClosed ID -type DealCmd - = OpenDeal ID ProductID Price Quantity - | CloseDeal ID +app : App +app = + statefulApp + { api = api + , init = init + , update = update + , subscriptions = subscriptions + } + + +api : RemoteState -> LocalState -> API +api remote local = + { openDeal = \dealID productID price quantity -> + if price < 0 then + Err (InvalidPrice dealID price) + else if price < 0 then + Err (InvalidQuantity dealID quantity) + else if Dict.member dealID local then + Err (DuplicateDeal dealID) + else + Ok (DealOpened dealID productID price quantity) + + , closeDeal = \dealID -> + case local |> Dict.get dealID of + Nothing -> + Err (DealNotFound dealID) + + Just _ -> + Ok (DealClosed dealID) + } -type DealEvent - = DealOpened ID ProductID Price Quantity - | DealClosed ID - | InvalidQuantity ID Quantity - | InvalidPrice ID Price - | DuplicateDeal ID - | DealNotFound ID +init : RemoteState -> ( LocalState, Cmd Event ) +init _ = + cmdNone Dict.empty -type alias App = - StatefulApp ID DealCmd Deal DealEvent +update : RemoteState -> Event -> LocalState -> ( LocalState, Cmd Event ) +update remote event local = + case event of + DealOpened dealID productID price quantity -> + ( ( local |> Dict.insert dealID (Deal dealID productID price quantity) ), Cmd.none) + + DealClosed dealID -> + cmdNone ( local |> Dict.remove dealID ) -app : App -app = - StatefulApp logic +subscriptions remote local = + Sub.none -logic : ID -> Maybe Deal -> DealCmd -> ( String, Maybe Deal, DealEvent ) -logic dealId deal dealCmd = - case deal of - Just d -> - case dealCmd of - CloseDeal _ -> - ( dealId, Nothing, DealClosed dealId ) - OpenDeal _ _ _ _ -> - ( dealId, deal, DuplicateDeal dealId ) +-- Extra types used in the API and state - Nothing -> - case dealCmd of - OpenDeal id productId price qty -> - if price < 0 then - ( dealId, deal, InvalidPrice id price ) - else if qty < 0 then - ( dealId, deal, InvalidQuantity id qty ) +type OpenRequestFault + = InvalidQuantity ID Int + | InvalidPrice ID Price + | DuplicateDeal ID - else - ( dealId - , Deal id productId price qty |> Just - , DealOpened id productId price qty - ) - CloseDeal _ -> - ( dealId, deal, DealNotFound dealId ) +type CloseRequestFault + = DealNotFound ID From 4172f4d71f15f216a07703e2b250fe80a8bd02c3 Mon Sep 17 00:00:00 2001 From: reesh-a <60702957+reesh-a@users.noreply.github.com> Date: Tue, 21 Apr 2020 14:56:40 -0400 Subject: [PATCH 08/88] Fixing morphir-dapr.json --- morphir-dapr.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/morphir-dapr.json b/morphir-dapr.json index 6f2c059..3dc6591 100644 --- a/morphir-dapr.json +++ b/morphir-dapr.json @@ -1,7 +1,7 @@ { "name": "Company/Operations", - "sourceDirectories": ["src/Operations"], + "sourceDirectories": ["src/Company"], "exposedModules": [ "BooksAndRecords" ] -} \ No newline at end of file +} From 8734c550a378ee7fca283241ca32b4420acb43cd Mon Sep 17 00:00:00 2001 From: reesh-a Date: Tue, 21 Apr 2020 14:59:31 -0400 Subject: [PATCH 09/88] Fixing morphir-dapr.json again --- morphir-dapr.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/morphir-dapr.json b/morphir-dapr.json index 3dc6591..5cc3d43 100644 --- a/morphir-dapr.json +++ b/morphir-dapr.json @@ -1,7 +1,7 @@ { "name": "Company/Operations", - "sourceDirectories": ["src/Company"], + "sourceDirectories": ["src"], "exposedModules": [ "BooksAndRecords" ] -} +} \ No newline at end of file From b95f63d928e5a7d98934722eb636822c8da36d4e Mon Sep 17 00:00:00 2001 From: reesh-a <60702957+reesh-a@users.noreply.github.com> Date: Tue, 21 Apr 2020 16:42:18 -0400 Subject: [PATCH 10/88] Adding badge --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ed16683..1918ce0 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +![build-publish](https://github.com/Morgan-Stanley/morphir-examples/workflows/build-publish/badge.svg) + # Overview This repo contains various models that represent the kinds of business problems that are common across enterprises like financial institutions. @@ -10,4 +12,4 @@ This repo contains various models that represent the kinds of business problems ### Compile example -morphir-dapr -d \ No newline at end of file +morphir-dapr -d From cca4d4164c615b19e736d8a750980a64ac1197d1 Mon Sep 17 00:00:00 2001 From: reesh-a <60702957+reesh-a@users.noreply.github.com> Date: Tue, 21 Apr 2020 16:44:58 -0400 Subject: [PATCH 11/88] fixing badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1918ce0..4c6437f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![build-publish](https://github.com/Morgan-Stanley/morphir-examples/workflows/build-publish/badge.svg) +![build-publish](https://github.com/Morgan-Stanley/morphir-examples/workflows/build-publish/badge.svg?branch=master) # Overview From 3a85550359c57d9d46b6799b5b12ddd19ac1abe3 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum <129341+stephengoldbaum@users.noreply.github.com> Date: Mon, 22 Jun 2020 21:31:43 +0000 Subject: [PATCH 12/88] Create build-publish.yml --- .github/workflows/build-publish.yml | 59 +++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 .github/workflows/build-publish.yml diff --git a/.github/workflows/build-publish.yml b/.github/workflows/build-publish.yml new file mode 100644 index 0000000..d559cfb --- /dev/null +++ b/.github/workflows/build-publish.yml @@ -0,0 +1,59 @@ +name: build-publish + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + + build: + + runs-on: ubuntu-latest + + env: + AZURE_CONTAINER_REGISTRY_SERVER: ${{ 'daprapps.azurecr.io' }} + APP_NAME: ${{ 'books_and_records' }} + PUBLISHER_NAME: ${{ 'node_publisher' }} + + steps: + + - name: Checkout + uses: actions/checkout@v2 + + - name: Set up node + uses: actions/setup-node@v1.4.1 + with: + node-version: '12.14.1' + + - name: Set up elm + uses: justgook/setup-elm@v1 + + - name: Compile morphir application + run: | + npm install -g morphir-elm + morphir-dapr -d + + - name: Login to azure container registry + uses: azure/docker-login@v1 + with: + login-server: ${{ env.AZURE_CONTAINER_REGISTRY_SERVER }} + username: ${{ secrets.SERVICE_PRINCIPAL_CLIENT_ID }} + password: ${{ secrets.SERVICE_PRINCIPAL_SECRET }} + + - name: Push app image to azure container registry + run: | + docker build . -t ${{ env.AZURE_CONTAINER_REGISTRY_SERVER }}/${{ env.APP_NAME }}:${{ github.sha }} + docker push ${{ env.AZURE_CONTAINER_REGISTRY_SERVER }}/${{ env.APP_NAME }}:${{ github.sha }} + + - name: Push publisher image to azure container registry + run: | + cd publisher + docker build . -t ${{ env.AZURE_CONTAINER_REGISTRY_SERVER }}/${{ env.PUBLISHER_NAME }}:latest + docker push ${{ env.AZURE_CONTAINER_REGISTRY_SERVER }}/${{ env.PUBLISHER_NAME }}:latest + + - name: Azure login + uses: azure/login@v1 + with: + creds: ${{ secrets.SERVICE_PRINCIPAL_AUTH }} From d01146442ade7fc1829ce69772b4e3855cb60a74 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum <129341+stephengoldbaum@users.noreply.github.com> Date: Mon, 22 Jun 2020 21:37:20 +0000 Subject: [PATCH 13/88] fixed morphir-elm dependency in package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e8299e8..3b93d7d 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,6 @@ "morphir-model" ], "devDependencies": { - "@morphir/morphir-elm": "latest" + "morphir-elm": "latest" } } From 024e765c1fcdc97db0a69135495af9a455b56326 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum <129341+stephengoldbaum@users.noreply.github.com> Date: Mon, 22 Jun 2020 21:40:40 +0000 Subject: [PATCH 14/88] Update build-publish.yml removed morphir-dapr -d option --- .github/workflows/build-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-publish.yml b/.github/workflows/build-publish.yml index d559cfb..3d91708 100644 --- a/.github/workflows/build-publish.yml +++ b/.github/workflows/build-publish.yml @@ -33,7 +33,7 @@ jobs: - name: Compile morphir application run: | npm install -g morphir-elm - morphir-dapr -d + morphir-dapr - name: Login to azure container registry uses: azure/docker-login@v1 From ad85dfd27f2bd4462313fe06ca89894ddd0774de Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum <129341+stephengoldbaum@users.noreply.github.com> Date: Mon, 22 Jun 2020 21:43:18 +0000 Subject: [PATCH 15/88] Delete build_publish.yml --- .github/workflows/build_publish.yml | 59 ----------------------------- 1 file changed, 59 deletions(-) delete mode 100644 .github/workflows/build_publish.yml diff --git a/.github/workflows/build_publish.yml b/.github/workflows/build_publish.yml deleted file mode 100644 index 00f9b8b..0000000 --- a/.github/workflows/build_publish.yml +++ /dev/null @@ -1,59 +0,0 @@ -name: build-publish - -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] - -jobs: - - build: - - runs-on: ubuntu-latest - - env: - AZURE_CONTAINER_REGISTRY_SERVER: ${{ 'daprapps.azurecr.io' }} - APP_NAME: ${{ 'books_and_records' }} - PUBLISHER_NAME: ${{ 'node_publisher' }} - - steps: - - - name: Checkout - uses: actions/checkout@v2 - - - name: Set up node - uses: actions/setup-node@v1.4.1 - with: - node-version: '12.14.1' - - - name: Set up elm - uses: justgook/setup-elm@v1 - - - name: Compile morphir application - run: | - npm install -g morphir-elm - morphir-dapr -d - - - name: Login to azure container registry - uses: azure/docker-login@v1 - with: - login-server: ${{ env.AZURE_CONTAINER_REGISTRY_SERVER }} - username: ${{ secrets.SERVICE_PRINCIPAL_CLIENT_ID }} - password: ${{ secrets.SERVICE_PRINCIPAL_SECRET }} - - - name: Push app image to azure container registry - run: | - docker build . -t ${{ env.AZURE_CONTAINER_REGISTRY_SERVER }}/${{ env.APP_NAME }}:${{ github.sha }} - docker push ${{ env.AZURE_CONTAINER_REGISTRY_SERVER }}/${{ env.APP_NAME }}:${{ github.sha }} - - - name: Push publisher image to azure container registry - run: | - cd publisher - docker build . -t ${{ env.AZURE_CONTAINER_REGISTRY_SERVER }}/${{ env.PUBLISHER_NAME }}:latest - docker push ${{ env.AZURE_CONTAINER_REGISTRY_SERVER }}/${{ env.PUBLISHER_NAME }}:latest - - - name: Azure login - uses: azure/login@v1 - with: - creds: ${{ secrets.SERVICE_PRINCIPAL_AUTH }} From 6279b79f86217bee1afbf92e1aaff033c447a9ef Mon Sep 17 00:00:00 2001 From: goldste Date: Tue, 7 Jul 2020 13:39:06 -0400 Subject: [PATCH 16/88] Added morphir.json --- morphir.json | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 morphir.json diff --git a/morphir.json b/morphir.json new file mode 100644 index 0000000..1831167 --- /dev/null +++ b/morphir.json @@ -0,0 +1,15 @@ +{ + "name": "Morphir", + "sourceDirectory": "src", + "exposedModules": [ + "IR.Name", + "IR.Path", + "IR.QName", + "IR.FQName", + "IR.AccessControlled", + "IR.Type", + "IR.Value", + "IR.Module", + "IR.Package" + ] +} From b79df61e1cd518db854ca0707ce972f536049583 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Tue, 7 Jul 2020 17:04:12 -0400 Subject: [PATCH 17/88] cleanup the examples and build --- morphir.json | 44 ++- src/Morphir/SDK/App.elm | 46 --- src/Morphir/SDK/Average.elm | 20 -- src/Morphir/SDK/Basics.elm | 557 --------------------------------- src/Morphir/SDK/DictExtra.elm | 58 ---- src/Morphir/SDK/ListExtra.elm | 14 - src/Morphir/SDK/MaybeExtra.elm | 12 - src/Morphir/SDK/Rule.elm | 93 ------ 8 files changed, 31 insertions(+), 813 deletions(-) delete mode 100644 src/Morphir/SDK/App.elm delete mode 100644 src/Morphir/SDK/Average.elm delete mode 100644 src/Morphir/SDK/Basics.elm delete mode 100644 src/Morphir/SDK/DictExtra.elm delete mode 100644 src/Morphir/SDK/ListExtra.elm delete mode 100644 src/Morphir/SDK/MaybeExtra.elm delete mode 100644 src/Morphir/SDK/Rule.elm diff --git a/morphir.json b/morphir.json index 1831167..f058a00 100644 --- a/morphir.json +++ b/morphir.json @@ -1,15 +1,33 @@ { - "name": "Morphir", - "sourceDirectory": "src", - "exposedModules": [ - "IR.Name", - "IR.Path", - "IR.QName", - "IR.FQName", - "IR.AccessControlled", - "IR.Type", - "IR.Value", - "IR.Module", - "IR.Package" - ] + "name": "Morphir.Sample", + "sourceDirectory": "src", + "exposedModules": + [ "Apps/Shared/Client" + , "Apps/Shared/Market" + , "Apps/Shared/Price" + , "Apps/Shared/Product" + , "Apps/Shared/Quantity" + , "Apps/Shared/Rate" + , "Apps/BooksAndRecords/App" + , "Apps/BooksAndRecords/Deal" + , "Apps/Order/ACL" + , "Apps/Order/App" + , "Apps/Order/Order" + , "Apps/Trader/App" + , "Apps/Trader/Logic" + , "Apps/Upstream/Market/App" + , "Apps/Upstream/Product/App" + , "Apps/Upstream/Trading/App" + , "LCR/Basics" + , "LCR/Calculations" + , "LCR/Counterparty" + , "LCR/Flows" + , "LCR/Inflows" + , "LCR/MaturityBucket" + , "LCR/Outflows" + , "LCR/Product" + , "LCR/Rules" + , "Rules/Direct" + , "Rules/RuleSet" + ] } diff --git a/src/Morphir/SDK/App.elm b/src/Morphir/SDK/App.elm deleted file mode 100644 index 2fb182b..0000000 --- a/src/Morphir/SDK/App.elm +++ /dev/null @@ -1,46 +0,0 @@ -module Morphir.SDK.App exposing (..) - - -type StatelessApp remotestate view = - StatelessApp (remotestate -> view) - - -statelessApp : (remotestate -> view) -> StatelessApp remotestate view -statelessApp f = - StatelessApp f - - -type StatefulApp api remotestate localstate event = - StatefulApp - { api : remotestate -> localstate -> api - , init : remotestate -> ( localstate, Cmd event ) - , update : remotestate -> event -> localstate -> ( localstate, Cmd event ) - , subscriptions : remotestate -> localstate -> Sub event - } - - -sendCommand : (api -> Result x event) -> (Maybe x -> List a) -> StatefulApp api remotestate localstate event -> Cmd a -sendCommand command mapResult app = - Cmd.none - - -subscribe : (localstate -> localstate -> List a) -> StatefulApp api remotestate localstate event -> Sub a -subscribe query app = - Sub.none - - -statefulApp : - { api : remotestate -> localstate -> api - , init : remotestate -> ( localstate, Cmd event ) - , update : remotestate -> event -> localstate -> ( localstate, Cmd event ) - , subscriptions : remotestate -> localstate -> Sub event - } - -> StatefulApp api remotestate localstate event -statefulApp app = - StatefulApp app - - -{-| Just a helper for readability -} -cmdNone : a -> (a, Cmd msg) -cmdNone a = - (a, Cmd.none) \ No newline at end of file diff --git a/src/Morphir/SDK/Average.elm b/src/Morphir/SDK/Average.elm deleted file mode 100644 index b10d405..0000000 --- a/src/Morphir/SDK/Average.elm +++ /dev/null @@ -1,20 +0,0 @@ -module Morphir.SDK.Average exposing (..) - - -weighted : (a -> Float) -> (a -> Float) -> List a -> Maybe Float -weighted getWeight getValue list = - if List.isEmpty list then - Nothing - else - let - totalWeight = - list - |> List.map getWeight - |> List.sum - - totalWeightedValue = - list - |> List.map (\a -> getWeight a * getValue a) - |> List.sum - in - Just (totalWeightedValue / totalWeight) \ No newline at end of file diff --git a/src/Morphir/SDK/Basics.elm b/src/Morphir/SDK/Basics.elm deleted file mode 100644 index b09313f..0000000 --- a/src/Morphir/SDK/Basics.elm +++ /dev/null @@ -1,557 +0,0 @@ -module Morphir.SDK.Basics exposing - ( Int8, Int16, Int32, Int64, Float32, Float64, Decimal - , add, sub, mul, fdiv, idiv, pow - , toDecimal, round, floor, ceiling, truncate - , eq, neq - , lt, gt, le, ge, max, min, compare, Order - , not, and, or, xor - , append - , modBy, remainderBy, negate, abs, clamp, sqrt - , toString - , identity, always, pipeLeft, pipeRight, composeLeft, composeRight - ) - - -{-| Tons of useful functions that get imported by default. -# Math -@docs Int, Decimal, add, sub, mul, fdiv, idiv, pow -# Int to Decimal / Decimal to Int -@docs toDecimal, round, floor, ceiling, truncate -# Equality -@docs eq, neq -# Comparison -These functions only work on `comparable` types. This includes numbers, -characters, strings, lists of comparable things, and tuples of comparable -things. -@docs lt, gt, le, ge, max, min, compare, Order -# Booleans -@docs Bool, not, and, or, xor -# Append Strings and Lists -@docs append -# Fancier Math -@docs modBy, remainderBy, negate, abs, clamp, sqrt -# Function Helpers -@docs identity, always, apL, apR, composeL, composeR --} - -import Morphir.Core.Native exposing (Native, native) -import Morphir.Core.Annotation exposing (undefined) - --- MATHEMATICS - - -{-| Represents an 8 bit integer value. --} -type alias Int8 = - Native Int - - -{-| Represents a 16 bit integer value. --} -type alias Int16 = - Native Int - - -{-| Represents a 32 bit integer value. --} -type alias Int32 = - Native Int - - -{-| Represents a 64 bit integer value. --} -type alias Int64 = - Native Int - - -{-| Represents a 32 bit floating-point value. --} -type alias Float32 = - Native Float - - -{-| Represents a 64 bit floating-point value. --} -type alias Float64 = - Native Float - - -{-| Represents a Decimal number. Backed by Float in Elm for simplicity but -in all other backends it uses decimal arithmetices as expected. --} -type alias Decimal = - Native Float - - -{-| Add two numbers. The `number` type variable means this operation can be -specialized to `Int -> Int -> Int` or to `Float -> Float -> Float`. So you -can do things like this: - 3002 + 4004 == 7006 -- all ints - 3.14 + 3.14 == 6.28 -- all floats -You _cannot_ add an `Int` and a `Float` directly though. Use functions like -[toFloat](#toFloat) or [round](#round) to convert both values to the same type. -So if you needed to add a list length to a `Float` for some reason, you -could say one of these: - 3.14 + toFloat (List.length [1,2,3]) == 6.14 - round 3.14 + List.length [1,2,3] == 6 -**Note:** Languages like Java and JavaScript automatically convert `Int` values -to `Float` values when you mix and match. This can make it difficult to be sure -exactly what type of number you are dealing with. When you try to _infer_ these -conversions (as Scala does) it can be even more confusing. Elm has opted for a -design that makes all conversions explicit. --} -add : number -> number -> number -add a b = - native (a + b) - - -{-| Subtract numbers like `4 - 3 == 1`. -See [`(+)`](#+) for docs on the `number` type variable. --} -sub : number -> number -> number -sub a b = - native (a - b) - - -{-| Multiply numbers like `2 * 3 == 6`. -See [`(+)`](#+) for docs on the `number` type variable. --} -mul : number -> number -> number -mul a b = - native (a * b) - - -{-| Floating-point division: - 3.14 / 2 == 1.57 --} -fdiv : rational -> rational -> rational -fdiv a b = - undefined - - -{-| Integer division: - 3 // 2 == 1 -Notice that the remainder is discarded. --} -idiv : Int -> Int -> Int -idiv a b = - native (a // b) - - -{-| Exponentiation - 3^2 == 9 - 3^3 == 27 --} -pow : number -> number -> number -pow a b = - native (a ^ b) - - - --- INT TO DECIMAL / DECIMAL TO INT - - -{-| Convert an integer into a decimal. Useful when mixing `Int` and `Decimal` -values like this: - halfOf : Int -> Decimal - halfOf number = - toDecimal number / 2 --} -toDecimal : Int -> Decimal -toDecimal a = - native (Basics.toFloat a) - - -{-| Turn any kind of value into a string. When you view the resulting string -with `Text.fromString` it should look just like the value it came from. - - toString 42 == "42" - toString [1,2] == "[1,2]" - toString "he said, \"hi\"" == "\"he said, \\\"hi\\\"\"" --} -toString : a -> String -toString a = - native (Debug.toString a) - -{-| Round a number to the nearest integer. - round 1.0 == 1 - round 1.2 == 1 - round 1.5 == 2 - round 1.8 == 2 - round -1.2 == -1 - round -1.5 == -1 - round -1.8 == -2 --} -round : Decimal -> Int -round a = - native (Basics.round a) - - -{-| Floor function, rounding down. - floor 1.0 == 1 - floor 1.2 == 1 - floor 1.5 == 1 - floor 1.8 == 1 - floor -1.2 == -2 - floor -1.5 == -2 - floor -1.8 == -2 --} -floor : Decimal -> Int -floor a = - native (Basics.floor a) - - -{-| Ceiling function, rounding up. - ceiling 1.0 == 1 - ceiling 1.2 == 2 - ceiling 1.5 == 2 - ceiling 1.8 == 2 - ceiling -1.2 == -1 - ceiling -1.5 == -1 - ceiling -1.8 == -1 --} -ceiling : Decimal -> Int -ceiling a = - native (Basics.ceiling a) - - -{-| Truncate a number, rounding towards zero. - truncate 1.0 == 1 - truncate 1.2 == 1 - truncate 1.5 == 1 - truncate 1.8 == 1 - truncate -1.2 == -1 - truncate -1.5 == -1 - truncate -1.8 == -1 --} -truncate : Decimal -> Int -truncate a = - native (Basics.truncate a) - - - --- EQUALITY - - -{-| Check if values are “the same”. -**Note:** Elm uses structural equality on tuples, records, and user-defined -union types. This means the values `(3, 4)` and `(3, 4)` are definitely equal. -This is not true in languages like JavaScript that use reference equality on -objects. -**Note:** Equality (in the Elm sense) is not possible for certain types. For -example, the functions `(\n -> n + 1)` and `(\n -> 1 + n)` are “the -same” but detecting this in general is [undecidable][]. In a future -release, the compiler will detect when `(==)` is used with problematic -types and provide a helpful error message. This will require quite serious -infrastructure work that makes sense to batch with another big project, so the -stopgap is to crash as quickly as possible. Problematic types include functions -and JavaScript values like `Json.Encode.Value` which could contain functions -if passed through a port. -[undecidable]: https://en.wikipedia.org/wiki/Undecidable_problem --} -eq : a -> a -> Bool -eq a b = - native (a == b) - - -{-| Check if values are not “the same”. -So `(a /= b)` is the same as `(not (a == b))`. --} -neq : a -> a -> Bool -neq a b = - native (a /= b) - - - --- COMPARISONS - - -{-|-} -lt : comparable -> comparable -> Bool -lt a b = - native (a < b) - - -{-|-} -gt : comparable -> comparable -> Bool -gt a b = - native (a > b) - - -{-|-} -le : comparable -> comparable -> Bool -le a b = - native (a <= b) - - -{-|-} -ge : comparable -> comparable -> Bool -ge a b = - native (a >= b) - - -{-| Find the smaller of two comparables. - min 42 12345678 == 42 - min "abc" "xyz" == "abc" --} -min : comparable -> comparable -> comparable -min x y = - native (Basics.min x y) - - -{-| Find the larger of two comparables. - max 42 12345678 == 12345678 - max "abc" "xyz" == "xyz" --} -max : comparable -> comparable -> comparable -max x y = - native (Basics.max x y) - - -{-| Compare any two comparable values. Comparable values include `String`, -`Char`, `Int`, `Float`, or a list or tuple containing comparable values. These -are also the only values that work as `Dict` keys or `Set` members. - compare 3 4 == LT - compare 4 4 == EQ - compare 5 4 == GT --} -compare : comparable -> comparable -> Order -compare a b = - native (Basics.compare a b) - - -{-| Represents the relative ordering of two things. -The relations are less than, equal to, and greater than. --} -type alias Order = - Native Basics.Order - - - --- BOOLEANS - - - -{-| Negate a boolean value. - not True == False - not False == True --} -not : Bool -> Bool -not a = - native (Basics.not a) - - -{-| The logical AND operator. `True` if both inputs are `True`. - True && True == True - True && False == False - False && True == False - False && False == False -**Note:** When used in the infix position, like `(left && right)`, the operator -short-circuits. This means if `left` is `False` we do not bother evaluating `right` -and just return `False` overall. --} -and : Bool -> Bool -> Bool -and a b = - native (a && b) - - -{-| The logical OR operator. `True` if one or both inputs are `True`. - True || True == True - True || False == True - False || True == True - False || False == False -**Note:** When used in the infix position, like `(left || right)`, the operator -short-circuits. This means if `left` is `True` we do not bother evaluating `right` -and just return `True` overall. --} -or : Bool -> Bool -> Bool -or a b = - native (a || b) - - -{-| The exclusive-or operator. `True` if exactly one input is `True`. - xor True True == False - xor True False == True - xor False True == True - xor False False == False --} -xor : Bool -> Bool -> Bool -xor a b = - native (Basics.xor a b) - - - --- APPEND - - -{-| Put two appendable things together. This includes strings, lists, and text. - "hello" ++ "world" == "helloworld" - [1,1,2] ++ [3,5,8] == [1,1,2,3,5,8] --} -append : appendable -> appendable -> appendable -append a b = - native (a ++ b) - - - --- FANCIER MATH - -{-| Perform [modular arithmetic](https://en.wikipedia.org/wiki/Modular_arithmetic). -A common trick is to use (n mod 2) to detect even and odd numbers: - modBy 2 0 == 0 - modBy 2 1 == 1 - modBy 2 2 == 0 - modBy 2 3 == 1 -Our `modBy` function works in the typical mathematical way when you run into -negative numbers: - List.map (modBy 4) [ -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5 ] - -- [ 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1 ] -Use [`remainderBy`](#remainderBy) for a different treatment of negative numbers, -or read Daan Leijen’s [Division and Modulus for Computer Scientists][dm] for more -information. -[dm]: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/divmodnote-letter.pdf --} -modBy : Int -> Int -> Int -modBy a b = - native (Basics.modBy a b) - - -{-| Get the remainder after division. Here are bunch of examples of dividing by four: - List.map (remainderBy 4) [ -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5 ] - -- [ -1, 0, -3, -2, -1, 0, 1, 2, 3, 0, 1 ] -Use [`modBy`](#modBy) for a different treatment of negative numbers, -or read Daan Leijen’s [Division and Modulus for Computer Scientists][dm] for more -information. -[dm]: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/divmodnote-letter.pdf --} -remainderBy : Int -> Int -> Int -remainderBy a b = - native (Basics.remainderBy a b) - - -{-| Negate a number. - - negate 42 == -42 - negate -42 == 42 - negate 0 == 0 --} -negate : number -> number -negate n = - native (Basics.negate n) - - -{-| Get the [absolute value][abs] of a number. - abs 16 == 16 - abs -4 == 4 - abs -8.5 == 8.5 - abs 3.14 == 3.14 -[abs]: https://en.wikipedia.org/wiki/Absolute_value --} -abs : number -> number -abs n = - native (Basics.abs n) - - -{-| Clamps a number within a given range. With the expression -`clamp 100 200 x` the results are as follows: - 100 if x < 100 - x if 100 <= x < 200 - 200 if 200 <= x --} -clamp : number -> number -> number -> number -clamp low high number = - native (Basics.clamp low high number) - - -{-| Take the square root of a number. - sqrt 4 == 2 - sqrt 9 == 3 - sqrt 16 == 4 - sqrt 25 == 5 --} -sqrt : Decimal -> Decimal -sqrt a = - native (Basics.sqrt a) - - - --- FUNCTION HELPERS - - -{-| Function composition, passing results along in the suggested direction. For -example, the following code checks if the square root of a number is odd: - not << isEven << sqrt -You can think of this operator as equivalent to the following: - (g << f) == (\x -> g (f x)) -So our example expands out to something like this: - \n -> not (isEven (sqrt n)) --} -composeLeft : (b -> c) -> (a -> b) -> (a -> c) -composeLeft g f x = - g (f x) - - -{-| Function composition, passing results along in the suggested direction. For -example, the following code checks if the square root of a number is odd: - sqrt >> isEven >> not --} -composeRight : (a -> b) -> (b -> c) -> (a -> c) -composeRight f g x = - g (f x) - - -{-| Saying `x |> f` is exactly the same as `f x`. -It is called the “pipe” operator because it lets you write “pipelined” code. -For example, say we have a `sanitize` function for turning user input into -integers: - -- BEFORE - sanitize : String -> Maybe Int - sanitize input = - String.toInt (String.trim input) -We can rewrite it like this: - -- AFTER - sanitize : String -> Maybe Int - sanitize input = - input - |> String.trim - |> String.toInt -Totally equivalent! I recommend trying to rewrite code that uses `x |> f` -into code like `f x` until there are no pipes left. That can help you build -your intuition. -**Note:** This can be overused! I think folks find it quite neat, but when you -have three or four steps, the code often gets clearer if you break out a -top-level helper function. Now the transformation has a name. The arguments are -named. It has a type annotation. It is much more self-documenting that way! -Testing the logic gets easier too. Nice side benefit! --} -pipeRight : a -> (a -> b) -> b -pipeRight x f = - f x - - -{-| Saying `f <| x` is exactly the same as `f x`. -It can help you avoid parentheses, which can be nice sometimes. Maybe you want -to apply a function to a `case` expression? That sort of thing. --} -pipeLeft : (a -> b) -> a -> b -pipeLeft f x = - f x - - -{-| Given a value, returns exactly the same value. This is called -[the identity function](https://en.wikipedia.org/wiki/Identity_function). --} -identity : a -> a -identity x = - x - - -{-| Create a function that *always* returns the same value. Useful with -functions like `map`: - List.map (always 0) [1,2,3,4,5] == [0,0,0,0,0] - -- List.map (\_ -> 0) [1,2,3,4,5] == [0,0,0,0,0] - -- always = (\x _ -> x) --} -always : a -> b -> a -always a _ = - a \ No newline at end of file diff --git a/src/Morphir/SDK/DictExtra.elm b/src/Morphir/SDK/DictExtra.elm deleted file mode 100644 index a56bf17..0000000 --- a/src/Morphir/SDK/DictExtra.elm +++ /dev/null @@ -1,58 +0,0 @@ -module Morphir.SDK.DictExtra exposing (..) - - -import Dict exposing (Dict) - - -filterMap : (comparable -> a -> Maybe b) -> Dict comparable a -> Dict comparable b -filterMap f dict = - dict - |> Dict.toList - |> List.filterMap - (\( k, a ) -> - f k a - |> Maybe.map (\v -> ( k, v )) - ) - |> Dict.fromList - - -getAndThen : Dict comparable a -> comparable -> (a -> Maybe b) -> Maybe b -getAndThen dict key f = - dict - |> Dict.get key - |> Maybe.andThen f - - -getMap : Dict comparable a -> comparable -> (a -> b) -> Maybe b -getMap dict key f = - dict - |> Dict.get key - |> Maybe.map f - - -type DictEvent comparable v - = Insert comparable v - | Update comparable v v - | Delete comparable v - - -changes : Dict comparable v -> Dict comparable v -> List (DictEvent comparable v) -changes dict1 dict2 = - [] -- TODO: implement - - -filterByKey : (comparable -> Bool) -> List (DictEvent comparable v) -> List (DictEvent comparable v) -filterByKey f list = - list - |> List.filter - (\change -> - case change of - Insert key _ -> - f key - - Update key _ _ -> - f key - - Delete key _ -> - f key - ) \ No newline at end of file diff --git a/src/Morphir/SDK/ListExtra.elm b/src/Morphir/SDK/ListExtra.elm deleted file mode 100644 index 9ca4af6..0000000 --- a/src/Morphir/SDK/ListExtra.elm +++ /dev/null @@ -1,14 +0,0 @@ -module Morphir.SDK.ListExtra exposing (get) - - -{-| Get the item at an index in the List or Nothing if the index is out of range. - get 10 [] == Nothing - get -1 [1,2,3] == Nothing - get 1 [1,2,3] == Just 2 --} -get : Int -> List a -> Maybe a -get index list = - if index < 0 then - Nothing - else - list |> List.drop (index - 1) |> List.head diff --git a/src/Morphir/SDK/MaybeExtra.elm b/src/Morphir/SDK/MaybeExtra.elm deleted file mode 100644 index 6114405..0000000 --- a/src/Morphir/SDK/MaybeExtra.elm +++ /dev/null @@ -1,12 +0,0 @@ -module Morphir.SDK.MaybeExtra exposing (toList) - - -{-| Return an empty list on `Nothing` or a list with one element, where the element is the value of `Just`. - maybeToList Nothing == [] - maybeToList (Just 1) == [1] --} -toList : Maybe a -> List a -toList m = - case m of - Nothing -> [] - Just x -> [x] diff --git a/src/Morphir/SDK/Rule.elm b/src/Morphir/SDK/Rule.elm deleted file mode 100644 index c335a57..0000000 --- a/src/Morphir/SDK/Rule.elm +++ /dev/null @@ -1,93 +0,0 @@ -module Morphir.SDK.Rule exposing (..) - - -type RuleSet a b - = RuleSet (List (a -> Maybe b)) - - -decide : a -> RuleSet a b -> Maybe b -decide data (RuleSet rules) = - case rules of - [] -> - Nothing - - firstRule :: rest -> - case firstRule data of - Just result -> - Just result - - Nothing -> - decide data (RuleSet rest) - - -matchThenMap : (a -> Bool) -> (a -> b) -> a -> Maybe b -matchThenMap f g a = - if f a then - Just (g a) - else - Nothing - - -type PriorityRuleSet a b - = PriorityRuleSet (List ( (a -> Maybe b), Int )) - - -type RuleCollision a b - = RuleCollision (RuleSet a b) - - -decideByPriority : a -> PriorityRuleSet a b -> Result (RuleCollision a b) (Maybe b) -decideByPriority data (PriorityRuleSet rules) = - let - matchingRules = - rules - |> List.filter - (\( rule, priority ) -> - rule data /= Nothing - ) - - maxPriority = - matchingRules - |> List.map Tuple.second - |> List.maximum - |> Maybe.withDefault 0 - - maxPriorityRules = - matchingRules - |> List.filterMap - (\( rule, priority ) -> - if priority == maxPriority then - Just rule - else - Nothing - ) - in - case maxPriorityRules of - [] -> - Ok Nothing - - [ rule ] -> - Ok (rule data) - - multipleRules -> - Err (RuleCollision (RuleSet multipleRules)) - - -any : a -> Bool -any _ = - True - - -is : a -> a -> Bool -is a b = - a == b - - -anyOf : List a -> a -> Bool -anyOf list a = - List.member a list - - -noneOf : List a -> a -> Bool -noneOf list a = - not (anyOf list a) \ No newline at end of file From 2e495a3e885ff122c100271169a7cca919ebf18d Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Wed, 8 Jul 2020 15:11:14 -0400 Subject: [PATCH 18/88] added BooksAndRecords to basic build --- morphir.json | 34 ++++------------------------------ 1 file changed, 4 insertions(+), 30 deletions(-) diff --git a/morphir.json b/morphir.json index f058a00..b89ad54 100644 --- a/morphir.json +++ b/morphir.json @@ -1,33 +1,7 @@ { - "name": "Morphir.Sample", + "name": "Company/Operations", "sourceDirectory": "src", - "exposedModules": - [ "Apps/Shared/Client" - , "Apps/Shared/Market" - , "Apps/Shared/Price" - , "Apps/Shared/Product" - , "Apps/Shared/Quantity" - , "Apps/Shared/Rate" - , "Apps/BooksAndRecords/App" - , "Apps/BooksAndRecords/Deal" - , "Apps/Order/ACL" - , "Apps/Order/App" - , "Apps/Order/Order" - , "Apps/Trader/App" - , "Apps/Trader/Logic" - , "Apps/Upstream/Market/App" - , "Apps/Upstream/Product/App" - , "Apps/Upstream/Trading/App" - , "LCR/Basics" - , "LCR/Calculations" - , "LCR/Counterparty" - , "LCR/Flows" - , "LCR/Inflows" - , "LCR/MaturityBucket" - , "LCR/Outflows" - , "LCR/Product" - , "LCR/Rules" - , "Rules/Direct" - , "Rules/RuleSet" + "exposedModules": [ + "BooksAndRecords" ] -} +} \ No newline at end of file From 122b81d7083ef7be4dd6ba333e0519f3c360a2e4 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Wed, 8 Jul 2020 15:36:37 -0400 Subject: [PATCH 19/88] Some fixes to new StatefulApp structure --- morphir.json.bak | 33 +++++++++++++++++++ .../Sample/Apps/BooksAndRecords/App.elm | 2 +- .../Sample/Apps/BooksAndRecords/Deal.elm | 3 +- src/Morphir/Sample/Apps/Order/App.elm | 2 +- src/Morphir/Sample/Apps/Shared/Price.elm | 4 +-- src/Morphir/Sample/Apps/Trader/App.elm | 2 +- 6 files changed, 38 insertions(+), 8 deletions(-) create mode 100644 morphir.json.bak diff --git a/morphir.json.bak b/morphir.json.bak new file mode 100644 index 0000000..f058a00 --- /dev/null +++ b/morphir.json.bak @@ -0,0 +1,33 @@ +{ + "name": "Morphir.Sample", + "sourceDirectory": "src", + "exposedModules": + [ "Apps/Shared/Client" + , "Apps/Shared/Market" + , "Apps/Shared/Price" + , "Apps/Shared/Product" + , "Apps/Shared/Quantity" + , "Apps/Shared/Rate" + , "Apps/BooksAndRecords/App" + , "Apps/BooksAndRecords/Deal" + , "Apps/Order/ACL" + , "Apps/Order/App" + , "Apps/Order/Order" + , "Apps/Trader/App" + , "Apps/Trader/Logic" + , "Apps/Upstream/Market/App" + , "Apps/Upstream/Product/App" + , "Apps/Upstream/Trading/App" + , "LCR/Basics" + , "LCR/Calculations" + , "LCR/Counterparty" + , "LCR/Flows" + , "LCR/Inflows" + , "LCR/MaturityBucket" + , "LCR/Outflows" + , "LCR/Product" + , "LCR/Rules" + , "Rules/Direct" + , "Rules/RuleSet" + ] +} diff --git a/src/Morphir/Sample/Apps/BooksAndRecords/App.elm b/src/Morphir/Sample/Apps/BooksAndRecords/App.elm index c7324d9..b4da9d6 100644 --- a/src/Morphir/Sample/Apps/BooksAndRecords/App.elm +++ b/src/Morphir/Sample/Apps/BooksAndRecords/App.elm @@ -2,7 +2,7 @@ module Morphir.Sample.Apps.BooksAndRecords.App exposing (..) import Dict exposing (Dict) -import Morphir.SDK.App exposing (StatefulApp, statefulApp, cmdNone) +import Morphir.SDK.StatefulApp exposing (..) import Morphir.Sample.Apps.Shared.Product as Product import Morphir.Sample.Apps.Shared.Price exposing (..) import Morphir.Sample.Apps.BooksAndRecords.Deal exposing (..) diff --git a/src/Morphir/Sample/Apps/BooksAndRecords/Deal.elm b/src/Morphir/Sample/Apps/BooksAndRecords/Deal.elm index 6431c41..79e3cb0 100644 --- a/src/Morphir/Sample/Apps/BooksAndRecords/Deal.elm +++ b/src/Morphir/Sample/Apps/BooksAndRecords/Deal.elm @@ -5,13 +5,12 @@ import Morphir.Sample.Apps.Shared.Product as Product import Morphir.Sample.Apps.Shared.Client as Client import Morphir.Sample.Apps.Shared.Price exposing (..) import Morphir.Sample.Apps.Shared.Quantity exposing (..) -import Morphir.SDK.Basics exposing (Decimal) type alias ID = String -type alias Value = Decimal +type alias Value = Float type alias Deal = diff --git a/src/Morphir/Sample/Apps/Order/App.elm b/src/Morphir/Sample/Apps/Order/App.elm index fe63b2c..efe22ae 100644 --- a/src/Morphir/Sample/Apps/Order/App.elm +++ b/src/Morphir/Sample/Apps/Order/App.elm @@ -9,7 +9,7 @@ module Morphir.Sample.Apps.Order.App exposing import Dict exposing (Dict) -import Morphir.SDK.App exposing (StatefulApp, statefulApp, cmdNone) +import Morphir.SDK.StatefulApp exposing (StatefulApp, statefulApp, cmdNone) import Morphir.Sample.Apps.Shared.Product as Product import Morphir.Sample.Apps.BooksAndRecords.Deal as Deal import Morphir.Sample.Apps.Order.Order as Order diff --git a/src/Morphir/Sample/Apps/Shared/Price.elm b/src/Morphir/Sample/Apps/Shared/Price.elm index aea39fa..5a157e4 100644 --- a/src/Morphir/Sample/Apps/Shared/Price.elm +++ b/src/Morphir/Sample/Apps/Shared/Price.elm @@ -1,7 +1,5 @@ module Morphir.Sample.Apps.Shared.Price exposing (..) -import SDK.Basics exposing (Decimal) - -type alias Price = Decimal \ No newline at end of file +type alias Price = Float \ No newline at end of file diff --git a/src/Morphir/Sample/Apps/Trader/App.elm b/src/Morphir/Sample/Apps/Trader/App.elm index c4de82b..2f3e8a2 100644 --- a/src/Morphir/Sample/Apps/Trader/App.elm +++ b/src/Morphir/Sample/Apps/Trader/App.elm @@ -3,7 +3,7 @@ module Morphir.Sample.Apps.Trader.App exposing (..) import Morphir.Sample.Apps.Trader.Logic exposing (..) import Dict exposing (Dict) -import Morphir.SDK.App exposing (StatefulApp, statefulApp, cmdNone) +import Morphir.SDK.StatefulApp exposing (StatefulApp, statefulApp, cmdNone) import Morphir.Sample.Apps.Shared.Product as Product import Morphir.Sample.Apps.BooksAndRecords.App as BookApp import Morphir.Sample.Apps.BooksAndRecords.Deal as Deal From bf24b18b2bded228e632f767ad021138e23d2aa7 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Mon, 10 Aug 2020 12:16:17 -0400 Subject: [PATCH 20/88] Added file headers --- package.json | 3 +++ publisher/node-publisher.js | 16 ++++++++++++++++ publisher/node-server.js | 17 +++++++++++++++++ src/Company/Operations/BooksAndRecords.elm | 18 ++++++++++++++++++ .../Sample/Apps/Approvals/Inventory/App.elm | 16 ++++++++++++++++ .../Sample/Apps/Approvals/LocateList/ACL.elm | 16 ++++++++++++++++ .../Sample/Apps/Approvals/LocateList/App.elm | 16 ++++++++++++++++ .../Sample/Apps/BooksAndRecords/App.elm | 16 ++++++++++++++++ .../Sample/Apps/BooksAndRecords/Deal.elm | 16 ++++++++++++++++ src/Morphir/Sample/Apps/Order/ACL.elm | 16 ++++++++++++++++ src/Morphir/Sample/Apps/Order/App.elm | 15 +++++++++++++++ src/Morphir/Sample/Apps/Order/Order.elm | 15 +++++++++++++++ src/Morphir/Sample/Apps/Rates/ACL.elm | 16 ++++++++++++++++ src/Morphir/Sample/Apps/Rates/App.elm | 16 ++++++++++++++++ src/Morphir/Sample/Apps/Shared/Client.elm | 16 ++++++++++++++++ src/Morphir/Sample/Apps/Shared/Market.elm | 16 ++++++++++++++++ src/Morphir/Sample/Apps/Shared/Price.elm | 16 ++++++++++++++++ src/Morphir/Sample/Apps/Shared/Product.elm | 16 ++++++++++++++++ src/Morphir/Sample/Apps/Shared/Quantity.elm | 16 ++++++++++++++++ src/Morphir/Sample/Apps/Shared/Rate.elm | 16 ++++++++++++++++ src/Morphir/Sample/Apps/Trader/App.elm | 16 ++++++++++++++++ src/Morphir/Sample/Apps/Trader/Logic.elm | 16 ++++++++++++++++ .../Sample/Apps/Upstream/Market/App.elm | 16 ++++++++++++++++ .../Sample/Apps/Upstream/Product/App.elm | 16 ++++++++++++++++ .../Sample/Apps/Upstream/Trading/App.elm | 16 ++++++++++++++++ src/Morphir/Sample/LCR/Basics.elm | 16 ++++++++++++++++ src/Morphir/Sample/LCR/Calculations.elm | 16 ++++++++++++++++ src/Morphir/Sample/LCR/Counterparty.elm | 16 ++++++++++++++++ src/Morphir/Sample/LCR/Flows.elm | 16 ++++++++++++++++ src/Morphir/Sample/LCR/Inflows.elm | 16 ++++++++++++++++ src/Morphir/Sample/LCR/MaturityBucket.elm | 16 ++++++++++++++++ src/Morphir/Sample/LCR/Outflows.elm | 16 ++++++++++++++++ src/Morphir/Sample/LCR/Product.elm | 16 ++++++++++++++++ src/Morphir/Sample/LCR/Rules.elm | 16 ++++++++++++++++ src/Morphir/Sample/Rules/Direct.elm | 16 ++++++++++++++++ src/Morphir/Sample/Rules/RuleSet.elm | 16 ++++++++++++++++ tests/Morphir/Sample/Apps/Rates/AppTests.elm | 16 ++++++++++++++++ tests/Morphir/Sample/LCR/FedSampleTest.elm | 16 ++++++++++++++++ tests/Morphir/Sample/LCR/RulesTest.elm | 16 ++++++++++++++++ 39 files changed, 612 insertions(+) diff --git a/package.json b/package.json index e8299e8..dbefa7e 100644 --- a/package.json +++ b/package.json @@ -5,5 +5,8 @@ ], "devDependencies": { "@morphir/morphir-elm": "latest" + }, + "dependencies": { + "morphir-elm": "^0.6.0" } } diff --git a/publisher/node-publisher.js b/publisher/node-publisher.js index 357bdca..5d1c295 100644 --- a/publisher/node-publisher.js +++ b/publisher/node-publisher.js @@ -1,3 +1,19 @@ +/* +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + const readline = require('readline') const http = require('http') diff --git a/publisher/node-server.js b/publisher/node-server.js index 675579a..a19b7c2 100644 --- a/publisher/node-server.js +++ b/publisher/node-server.js @@ -1,3 +1,20 @@ +/* +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + + const express = require('express') const app = express() diff --git a/src/Company/Operations/BooksAndRecords.elm b/src/Company/Operations/BooksAndRecords.elm index 9a528f5..fee9d67 100644 --- a/src/Company/Operations/BooksAndRecords.elm +++ b/src/Company/Operations/BooksAndRecords.elm @@ -1,3 +1,21 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + + + module Company.Operations.BooksAndRecords exposing (..) import Morphir.SDK.StatefulApp exposing (StatefulApp) diff --git a/src/Morphir/Sample/Apps/Approvals/Inventory/App.elm b/src/Morphir/Sample/Apps/Approvals/Inventory/App.elm index a31df33..a370d8f 100644 --- a/src/Morphir/Sample/Apps/Approvals/Inventory/App.elm +++ b/src/Morphir/Sample/Apps/Approvals/Inventory/App.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.Apps.Approvals.Inventory.App exposing (..) diff --git a/src/Morphir/Sample/Apps/Approvals/LocateList/ACL.elm b/src/Morphir/Sample/Apps/Approvals/LocateList/ACL.elm index a9167d6..c43719d 100644 --- a/src/Morphir/Sample/Apps/Approvals/LocateList/ACL.elm +++ b/src/Morphir/Sample/Apps/Approvals/LocateList/ACL.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.Apps.Approvals.LocateList.ACL exposing (..) diff --git a/src/Morphir/Sample/Apps/Approvals/LocateList/App.elm b/src/Morphir/Sample/Apps/Approvals/LocateList/App.elm index ca41c61..b3511a7 100644 --- a/src/Morphir/Sample/Apps/Approvals/LocateList/App.elm +++ b/src/Morphir/Sample/Apps/Approvals/LocateList/App.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.Apps.Approvals.LocateList.App exposing (..) diff --git a/src/Morphir/Sample/Apps/BooksAndRecords/App.elm b/src/Morphir/Sample/Apps/BooksAndRecords/App.elm index b4da9d6..c552067 100644 --- a/src/Morphir/Sample/Apps/BooksAndRecords/App.elm +++ b/src/Morphir/Sample/Apps/BooksAndRecords/App.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.Apps.BooksAndRecords.App exposing (..) diff --git a/src/Morphir/Sample/Apps/BooksAndRecords/Deal.elm b/src/Morphir/Sample/Apps/BooksAndRecords/Deal.elm index 79e3cb0..033bfda 100644 --- a/src/Morphir/Sample/Apps/BooksAndRecords/Deal.elm +++ b/src/Morphir/Sample/Apps/BooksAndRecords/Deal.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.Apps.BooksAndRecords.Deal exposing (..) diff --git a/src/Morphir/Sample/Apps/Order/ACL.elm b/src/Morphir/Sample/Apps/Order/ACL.elm index 7cdb651..0a372cd 100644 --- a/src/Morphir/Sample/Apps/Order/ACL.elm +++ b/src/Morphir/Sample/Apps/Order/ACL.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.Apps.Order.ACL exposing (..) diff --git a/src/Morphir/Sample/Apps/Order/App.elm b/src/Morphir/Sample/Apps/Order/App.elm index efe22ae..44dc56a 100644 --- a/src/Morphir/Sample/Apps/Order/App.elm +++ b/src/Morphir/Sample/Apps/Order/App.elm @@ -1,3 +1,18 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} module Morphir.Sample.Apps.Order.App exposing ( App , API diff --git a/src/Morphir/Sample/Apps/Order/Order.elm b/src/Morphir/Sample/Apps/Order/Order.elm index 18cca9b..1790ac1 100644 --- a/src/Morphir/Sample/Apps/Order/Order.elm +++ b/src/Morphir/Sample/Apps/Order/Order.elm @@ -1,3 +1,18 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} module Morphir.Sample.Apps.Order.Order exposing (..) diff --git a/src/Morphir/Sample/Apps/Rates/ACL.elm b/src/Morphir/Sample/Apps/Rates/ACL.elm index 278164b..096a317 100644 --- a/src/Morphir/Sample/Apps/Rates/ACL.elm +++ b/src/Morphir/Sample/Apps/Rates/ACL.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.Apps.Rates.ACL exposing (..) {-| This module is our anti-corruption layer that translates external states into an diff --git a/src/Morphir/Sample/Apps/Rates/App.elm b/src/Morphir/Sample/Apps/Rates/App.elm index 24c99e0..60748c3 100644 --- a/src/Morphir/Sample/Apps/Rates/App.elm +++ b/src/Morphir/Sample/Apps/Rates/App.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.Apps.Rates.App exposing (..) import Dict exposing (Dict) diff --git a/src/Morphir/Sample/Apps/Shared/Client.elm b/src/Morphir/Sample/Apps/Shared/Client.elm index 8cb356e..903e2cd 100644 --- a/src/Morphir/Sample/Apps/Shared/Client.elm +++ b/src/Morphir/Sample/Apps/Shared/Client.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.Apps.Shared.Client exposing (..) diff --git a/src/Morphir/Sample/Apps/Shared/Market.elm b/src/Morphir/Sample/Apps/Shared/Market.elm index 21b2589..94b71cc 100644 --- a/src/Morphir/Sample/Apps/Shared/Market.elm +++ b/src/Morphir/Sample/Apps/Shared/Market.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.Apps.Shared.Market exposing (..) diff --git a/src/Morphir/Sample/Apps/Shared/Price.elm b/src/Morphir/Sample/Apps/Shared/Price.elm index 5a157e4..2fa5ec7 100644 --- a/src/Morphir/Sample/Apps/Shared/Price.elm +++ b/src/Morphir/Sample/Apps/Shared/Price.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.Apps.Shared.Price exposing (..) diff --git a/src/Morphir/Sample/Apps/Shared/Product.elm b/src/Morphir/Sample/Apps/Shared/Product.elm index 1f9f084..eb9430b 100644 --- a/src/Morphir/Sample/Apps/Shared/Product.elm +++ b/src/Morphir/Sample/Apps/Shared/Product.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.Apps.Shared.Product exposing (..) diff --git a/src/Morphir/Sample/Apps/Shared/Quantity.elm b/src/Morphir/Sample/Apps/Shared/Quantity.elm index 21cf2c5..91c30c2 100644 --- a/src/Morphir/Sample/Apps/Shared/Quantity.elm +++ b/src/Morphir/Sample/Apps/Shared/Quantity.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.Apps.Shared.Quantity exposing (..) diff --git a/src/Morphir/Sample/Apps/Shared/Rate.elm b/src/Morphir/Sample/Apps/Shared/Rate.elm index 65cce2a..89784e8 100644 --- a/src/Morphir/Sample/Apps/Shared/Rate.elm +++ b/src/Morphir/Sample/Apps/Shared/Rate.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.Apps.Shared.Rate exposing (..) diff --git a/src/Morphir/Sample/Apps/Trader/App.elm b/src/Morphir/Sample/Apps/Trader/App.elm index 2f3e8a2..72fbf6a 100644 --- a/src/Morphir/Sample/Apps/Trader/App.elm +++ b/src/Morphir/Sample/Apps/Trader/App.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.Apps.Trader.App exposing (..) diff --git a/src/Morphir/Sample/Apps/Trader/Logic.elm b/src/Morphir/Sample/Apps/Trader/Logic.elm index 7193c35..9bee0e0 100644 --- a/src/Morphir/Sample/Apps/Trader/Logic.elm +++ b/src/Morphir/Sample/Apps/Trader/Logic.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.Apps.Trader.Logic exposing (..) diff --git a/src/Morphir/Sample/Apps/Upstream/Market/App.elm b/src/Morphir/Sample/Apps/Upstream/Market/App.elm index c6f8e43..01c3c9b 100644 --- a/src/Morphir/Sample/Apps/Upstream/Market/App.elm +++ b/src/Morphir/Sample/Apps/Upstream/Market/App.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.Apps.Upstream.Market.App exposing (..) {-| This is a stub for an external Market app. Normally this would diff --git a/src/Morphir/Sample/Apps/Upstream/Product/App.elm b/src/Morphir/Sample/Apps/Upstream/Product/App.elm index 3412ed6..59d8037 100644 --- a/src/Morphir/Sample/Apps/Upstream/Product/App.elm +++ b/src/Morphir/Sample/Apps/Upstream/Product/App.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.Apps.Upstream.Product.App exposing (..) diff --git a/src/Morphir/Sample/Apps/Upstream/Trading/App.elm b/src/Morphir/Sample/Apps/Upstream/Trading/App.elm index a7758f5..c974e6d 100644 --- a/src/Morphir/Sample/Apps/Upstream/Trading/App.elm +++ b/src/Morphir/Sample/Apps/Upstream/Trading/App.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.Apps.Upstream.Trading.App exposing (..) diff --git a/src/Morphir/Sample/LCR/Basics.elm b/src/Morphir/Sample/LCR/Basics.elm index 5f80bb5..358de05 100644 --- a/src/Morphir/Sample/LCR/Basics.elm +++ b/src/Morphir/Sample/LCR/Basics.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.LCR.Basics exposing ( AssetCategoryCodes(..) , InsuranceType(..) diff --git a/src/Morphir/Sample/LCR/Calculations.elm b/src/Morphir/Sample/LCR/Calculations.elm index 378c8ff..a7df89d 100644 --- a/src/Morphir/Sample/LCR/Calculations.elm +++ b/src/Morphir/Sample/LCR/Calculations.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.LCR.Calculations exposing (..) diff --git a/src/Morphir/Sample/LCR/Counterparty.elm b/src/Morphir/Sample/LCR/Counterparty.elm index ebd1b94..87c64dd 100644 --- a/src/Morphir/Sample/LCR/Counterparty.elm +++ b/src/Morphir/Sample/LCR/Counterparty.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.LCR.Counterparty exposing (..) diff --git a/src/Morphir/Sample/LCR/Flows.elm b/src/Morphir/Sample/LCR/Flows.elm index 505c732..59ec2b2 100644 --- a/src/Morphir/Sample/LCR/Flows.elm +++ b/src/Morphir/Sample/LCR/Flows.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.LCR.Flows exposing (..) diff --git a/src/Morphir/Sample/LCR/Inflows.elm b/src/Morphir/Sample/LCR/Inflows.elm index 851050f..81cdba3 100644 --- a/src/Morphir/Sample/LCR/Inflows.elm +++ b/src/Morphir/Sample/LCR/Inflows.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.LCR.Inflows exposing (..) diff --git a/src/Morphir/Sample/LCR/MaturityBucket.elm b/src/Morphir/Sample/LCR/MaturityBucket.elm index 8e44716..861434e 100644 --- a/src/Morphir/Sample/LCR/MaturityBucket.elm +++ b/src/Morphir/Sample/LCR/MaturityBucket.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.LCR.MaturityBucket exposing (..) diff --git a/src/Morphir/Sample/LCR/Outflows.elm b/src/Morphir/Sample/LCR/Outflows.elm index 871b2ae..4b5d544 100644 --- a/src/Morphir/Sample/LCR/Outflows.elm +++ b/src/Morphir/Sample/LCR/Outflows.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.LCR.Outflows exposing (..) diff --git a/src/Morphir/Sample/LCR/Product.elm b/src/Morphir/Sample/LCR/Product.elm index 275d4bc..d6dc9b6 100644 --- a/src/Morphir/Sample/LCR/Product.elm +++ b/src/Morphir/Sample/LCR/Product.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.LCR.Product exposing (..) diff --git a/src/Morphir/Sample/LCR/Rules.elm b/src/Morphir/Sample/LCR/Rules.elm index 812c8d2..fd0e0d6 100644 --- a/src/Morphir/Sample/LCR/Rules.elm +++ b/src/Morphir/Sample/LCR/Rules.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.LCR.Rules exposing (..) diff --git a/src/Morphir/Sample/Rules/Direct.elm b/src/Morphir/Sample/Rules/Direct.elm index b73cafe..e253de5 100644 --- a/src/Morphir/Sample/Rules/Direct.elm +++ b/src/Morphir/Sample/Rules/Direct.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.Rules.Direct exposing (..) diff --git a/src/Morphir/Sample/Rules/RuleSet.elm b/src/Morphir/Sample/Rules/RuleSet.elm index a53075e..081fe9c 100644 --- a/src/Morphir/Sample/Rules/RuleSet.elm +++ b/src/Morphir/Sample/Rules/RuleSet.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.Rules.RuleSet exposing (Trade, Category, ruleSet) diff --git a/tests/Morphir/Sample/Apps/Rates/AppTests.elm b/tests/Morphir/Sample/Apps/Rates/AppTests.elm index 3b718b8..392ede1 100644 --- a/tests/Morphir/Sample/Apps/Rates/AppTests.elm +++ b/tests/Morphir/Sample/Apps/Rates/AppTests.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.Apps.Rates.AppTests exposing (..) {-| Rates calculation tests. diff --git a/tests/Morphir/Sample/LCR/FedSampleTest.elm b/tests/Morphir/Sample/LCR/FedSampleTest.elm index 00ac1b4..e62fdb7 100644 --- a/tests/Morphir/Sample/LCR/FedSampleTest.elm +++ b/tests/Morphir/Sample/LCR/FedSampleTest.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.LCR.FedSampleTest exposing (..) {-| Test based on LCR examples. diff --git a/tests/Morphir/Sample/LCR/RulesTest.elm b/tests/Morphir/Sample/LCR/RulesTest.elm index ad9322a..14df5f0 100644 --- a/tests/Morphir/Sample/LCR/RulesTest.elm +++ b/tests/Morphir/Sample/LCR/RulesTest.elm @@ -1,3 +1,19 @@ +{- +Copyright 2020 Morgan Stanley + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-} + module Morphir.Sample.LCR.RulesTest exposing (..) {-| Tests the Rules structure. From 79cad0c8beb82cc2e52ce5aeadfa779d1b18fb62 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Mon, 10 Aug 2020 12:35:49 -0400 Subject: [PATCH 21/88] finos project files --- CODE_OF_CONDUCT.md | 76 +++++++++++++++++ CONTRIBUTING.md | 143 ++++++++++++++++++++++++++++++++ LICENSE copy | 201 +++++++++++++++++++++++++++++++++++++++++++++ LICENSE.spdx | 7 ++ NOTICE | 8 +- 5 files changed, 432 insertions(+), 3 deletions(-) create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 LICENSE copy create mode 100644 LICENSE.spdx diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..5ba36cc --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,76 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at morphir-dev [at] morganstanley.com. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..63906ae --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,143 @@ +# Contributing + +When contributing to this repository, please first discuss the change you wish +to make via issue, email, or any other method with the owners of this repository +before making a change. + +Please note we have a code of conduct, please follow it in all your interactions +with the project. + +## Before your first pull request + +If you have not previously contributed to the project, +you must first create a *Developer Certificate of Origin* (“DCO”) and include a +reference to this DCO in each of your commits. In addition, if you subsequently +wish to contribute code having a different copyright ownership, then you must create +a new DCO for such contribution. + +To create a DCO please follow these steps: + +1. For code you are contributing, determine who is/are the copyright owner(s). +Please note that your employer may own the copyright in code you have written even +where the code was not created during regular working hours. Copyright law is +variable from jurisdiction to jurisdiction. Accordingly, consult your employer +or a lawyer if you are not sure. +2. Fill out the [DCO] replacing all `<>` terms as appropriate, and place the +completed DCO in a file under `dco/` or if you are not the copyright +holder then in a file under `dco/-`. + 1. Please note that the name you provide (``) must be your real + (legal) name; we will not accept aliases, pseudonyms or anonymous + contributions. + 1. If you’ve determined that the copyright holder of the code that you’ve + written is an entity other than yourself (e.g., your employer), then + include the legal name of the copyright holder(s) (``). + You must ensure that you are authorized by the copyright holder(s) to be able + to grant the licenses under the DCO for the purpose of contributing to the + project. Negotiating such authorization and administering the terms is + entirely between you and the copyright holder(s). +3. Issue a pull request with the DCO. + +## Pull request process + +When you create a pull request, follow these steps: + +1. Your commit message for the code you are submitting must include a +`“Covered by “` line which indicates your acceptance of the DCO terms and conditions. +`` here is the file name of the DCO. +2. Your commit must include a change to the `NOTICE.txt` file that contains complete +details of any applicable copyright notice for your submission and including any +applicable third party license(s) or other restrictions associated with any part +of your contribution, and of all matters required to be disclosed under such third +party license(s) (such as any applicable copyright, patent, trademark, and attribution +notices, and any notices relating to modifications made to open source software). +Note your contribution must retain all applicable copyright, patent, trademark and +attribution notices. + +## Pull request guidelines + +* Update the `README.md` docs with details of changes to API, behaviour, features, or usage. +Include useful file locations and relevant documentation. +* Update an existing or add a new testcase for your change. +* Ensure any install or build artefacts are removed from the pull request. +* We generally prefer squashed commits, unless multi-commits add clarity or are +required for mixed copyright commits. +* You may merge the Pull Request in once the build has passed and you have the sign-off +of one other developer, or if you do not have permission to do that, you may request the +reviewer to merge it for you. + + +## Code of Conduct + +### Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of experience, +nationality, personal appearance, race, religion, or sexual identity and +orientation. + +### Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or +advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +### Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +### Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +### Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at morphir-dev [at] morganstanley.com. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +### Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 1.4, available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ +[DCO]: dco/dco_template.md diff --git a/LICENSE copy b/LICENSE copy new file mode 100644 index 0000000..8dada3e --- /dev/null +++ b/LICENSE copy @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/LICENSE.spdx b/LICENSE.spdx new file mode 100644 index 0000000..4977b23 --- /dev/null +++ b/LICENSE.spdx @@ -0,0 +1,7 @@ +SPDXVersion: SPDX-2.0 +DataLicense: CC0-1.0 +Creator: Morgan Stanley +PackageName: Morphir +PackageOriginator: Morgan Stanley +PackageHomePage: https://github.com/finos/morphir +PackageLicenseDeclared: Apache-2.0 diff --git a/NOTICE b/NOTICE index 53824ff..ad14fb0 100644 --- a/NOTICE +++ b/NOTICE @@ -1,3 +1,5 @@ -Morphir -Copyright 2020 Morgan Stanley. -This product includes software developed at Morgan Stanley. \ No newline at end of file +Morphir - FINOS +Copyright 2014 - 2020 Morgan Stanley + +This product includes software developed at the Fintech Open Source Foundation (https://www.finos.org/). +This product includes software developed at Morgan Stanley. From 0e2ab5fa8d08f99c8137a24eabde414ef3079864 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Mon, 10 Aug 2020 14:27:49 -0400 Subject: [PATCH 22/88] github issues template for finos --- .github/ISSUE_TEMPLATE/bug_report.md | 29 +++++++++++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 20 ++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..5edb406 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,29 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +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. + +**Desktop (please complete the following information):** + - OS: [e.g. iOS] + - Browser [e.g. chrome, safari] + - Version [e.g. 22] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..bbcbbe7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: '' +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. From f2d677f32c14258dca0ce6dc48d138116afe98c1 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Sun, 11 Oct 2020 21:37:24 -0400 Subject: [PATCH 23/88] reversed function order to match thinking --- src/Morphir/Sample/LCR/Calculations.elm | 49 +++++++++++++------------ 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/src/Morphir/Sample/LCR/Calculations.elm b/src/Morphir/Sample/LCR/Calculations.elm index a7df89d..85a7b00 100644 --- a/src/Morphir/Sample/LCR/Calculations.elm +++ b/src/Morphir/Sample/LCR/Calculations.elm @@ -30,27 +30,17 @@ import Morphir.Sample.LCR.Rules as Rules -- Forumulas from the OCC: https://www.occ.gov/news-issuances/bulletins/2014/bulletin-2014-51.html -- https://www.occ.gov/topics/supervision-and-examination/capital-markets/balance-sheet-management/liquidity/Basel-III-LCR-Formulas.pdf -- https://www.govinfo.gov/content/pkg/FR-2014-10-10/pdf/2014-22520.pdf (page 61477) - {-| This module is broken up into the same structure as the example formulas in the referenced PDF. -} -isMember : Maybe a -> List a -> Bool -isMember ruleM rules = - ruleM - |> Maybe.map (\r -> List.member r rules) - |> Maybe.withDefault False - -isHQLA : (ProductId -> Product) -> Flow -> Bool -isHQLA product flow = - (product flow.productId) |> .isHQLA - -{-| Helper function to accumulated steps of a sum across a list. This is used in calculating the maturity mismatch add-on. -} -accumulate starter list = - let - (sum, acc) = - List.foldl ( \y (x,xs) -> (x+y, (x+y) :: xs)) (starter, []) list +{-| Here's the LCR as it's commonly known. -} +lcr : (Flow -> Counterparty) -> (ProductId -> Product) -> Date -> (Date -> List Flow) -> Decimal -> Decimal +lcr toCounterparty product t flowsForDate reserveBalanceRequirement = + let + hqla = hqlaAmount product (flowsForDate t) reserveBalanceRequirement + totalNetCashOutflow = totalNetCashOutflowAmount toCounterparty t flowsForDate in - List.reverse acc + hqla / totalNetCashOutflow {-| HQLA Amount is the LCR numerator. It has several components, which are specified as nested functions. -} @@ -220,11 +210,22 @@ totalNetCashOutflowAmount toCounterparty t flowsForDate = aggregatedOutflowAmount - cappedInflows + maturityMismatchAddOn -{-| Woohoo. Here's the LCR. -} -lcr : (Flow -> Counterparty) -> (ProductId -> Product) -> Date -> (Date -> List Flow) -> Decimal -> Decimal -lcr toCounterparty product t flowsForDate reserveBalanceRequirement = - let - hqla = hqlaAmount product (flowsForDate t) reserveBalanceRequirement - totalNetCashOutflow = totalNetCashOutflowAmount toCounterparty t flowsForDate + +isMember : Maybe a -> List a -> Bool +isMember ruleM rules = + ruleM + |> Maybe.map (\r -> List.member r rules) + |> Maybe.withDefault False + +isHQLA : (ProductId -> Product) -> Flow -> Bool +isHQLA product flow = + (product flow.productId) |> .isHQLA + + +{-| Helper function to accumulated steps of a sum across a list. This is used in calculating the maturity mismatch add-on. -} +accumulate starter list = + let + (sum, acc) = + List.foldl ( \y (x,xs) -> (x+y, (x+y) :: xs)) (starter, []) list in - hqla / totalNetCashOutflow + List.reverse acc From 7b7667ec91f64ae91e4e30a5f380680d8d96ba16 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Sun, 11 Oct 2020 21:50:34 -0400 Subject: [PATCH 24/88] updated libraries to finos --- elm.json | 67 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 35 insertions(+), 32 deletions(-) diff --git a/elm.json b/elm.json index 5878f27..ee5a7f0 100644 --- a/elm.json +++ b/elm.json @@ -1,35 +1,38 @@ { - "type": "application", - "source-directories": [ - "src" - ], - "elm-version": "0.19.1", - "dependencies": { - "direct": { - "Morgan-Stanley/morphir-elm": "1.0.0", - "elm/browser": "1.0.2", - "elm/core": "1.0.5", - "elm/html": "1.0.0" + "type": "application", + "source-directories": [ + "src" + ], + "elm-version": "0.19.1", + "dependencies": { + "direct": { + "elm/browser": "1.0.2", + "elm/core": "1.0.5", + "elm/html": "1.0.0", + "finos/morphir-elm": "1.0.0" + }, + "indirect": { + "avh4/elm-fifo": "1.0.4", + "elm/json": "1.1.3", + "elm/parser": "1.1.0", + "elm/random": "1.0.0", + "elm/regex": "1.0.0", + "elm/time": "1.0.0", + "elm/url": "1.0.0", + "elm/virtual-dom": "1.0.2", + "elm-community/graph": "6.0.0", + "elm-community/intdict": "3.0.0", + "elm-community/json-extra": "4.3.0", + "elm-community/list-extra": "8.2.4", + "elm-explorations/test": "1.2.2", + "rtfeldman/elm-hex": "1.0.0", + "rtfeldman/elm-iso8601-date-strings": "1.1.3", + "stil4m/elm-syntax": "7.1.3", + "stil4m/structured-writer": "1.0.3" + } }, - "indirect": { - "elm/json": "1.1.3", - "elm/parser": "1.1.0", - "elm/random": "1.0.0", - "elm/regex": "1.0.0", - "elm/time": "1.0.0", - "elm/url": "1.0.0", - "elm/virtual-dom": "1.0.2", - "elm-community/json-extra": "4.2.0", - "elm-community/list-extra": "8.2.3", - "elm-explorations/test": "1.2.2", - "rtfeldman/elm-hex": "1.0.0", - "rtfeldman/elm-iso8601-date-strings": "1.1.3", - "stil4m/elm-syntax": "7.1.1", - "stil4m/structured-writer": "1.0.2" + "test-dependencies": { + "direct": {}, + "indirect": {} } - }, - "test-dependencies": { - "direct": {}, - "indirect": {} - } -} \ No newline at end of file +} From 7616f87bc158dda94d404d95ffae7ab61b9e0862 Mon Sep 17 00:00:00 2001 From: JBarrios Date: Mon, 12 Oct 2020 10:21:18 -0300 Subject: [PATCH 25/88] Changes in BooksAndRecords made in morphir-elm * No ID inside logic * Types with arguments to generate case classes instead of objects --- src/Company/Operations/BooksAndRecords.elm | 83 ++++++++++++++-------- 1 file changed, 53 insertions(+), 30 deletions(-) diff --git a/src/Company/Operations/BooksAndRecords.elm b/src/Company/Operations/BooksAndRecords.elm index fee9d67..0eb99fc 100644 --- a/src/Company/Operations/BooksAndRecords.elm +++ b/src/Company/Operations/BooksAndRecords.elm @@ -21,6 +21,9 @@ module Company.Operations.BooksAndRecords exposing (..) import Morphir.SDK.StatefulApp exposing (StatefulApp) +{- Type aliases for modeling in the language of the business -} + + type alias ID = String @@ -37,62 +40,82 @@ type alias Quantity = Int + +{- Identifies a structure that can be associated to a persistance entity -} + + type alias Deal = - { id : ID - , product : ProductID + { product : ProductID , price : Price , quantity : Quantity } + +{- These define the requests that can be made of this service -} + + type DealCmd - = OpenDeal ID ProductID Price Quantity - | CloseDeal ID + = OpenDeal ProductID Price Quantity + | CloseDeal ProductID + + + +{- These define the responses that would result from requests -} type DealEvent - = DealOpened ID ProductID Price Quantity - | DealClosed ID - | InvalidQuantity ID Quantity - | InvalidPrice ID Price - | DuplicateDeal ID - | DealNotFound ID + = DealOpened ProductID Price Quantity + | DealClosed ProductID + | InvalidQuantity Quantity + | InvalidPrice Price + | DuplicateDeal ProductID + | DealNotFound ProductID -type alias App = - StatefulApp ID DealCmd Deal DealEvent +{- Defines that this is a stateful application that uses ID as the entity key (for possible partioning), + accepts requests of type DealCmd, + manages data in the form of a Deal, + and produces events of type DealEvent. -app : App -app = - StatefulApp logic + Note that there's no indication of whether the API is synchronous or asynchronous. That's up to the implementation to decide. +-} +{- Defines the business logic of this app. + That is whether or not to accept a request to open or close a deal. +-} -logic : ID -> Maybe Deal -> DealCmd -> ( ID, Maybe Deal, DealEvent ) -logic dealId deal dealCmd = - case deal of +logic : Maybe Deal -> DealCmd -> ( Maybe Deal, DealEvent ) +logic dealState dealCmd = + -- Act accordingly based on whether the deal already exists. + case dealState of Just _ -> case dealCmd of - CloseDeal _ -> - ( dealId, Nothing, DealClosed dealId ) + CloseDeal p -> + ( Nothing, DealClosed p ) - OpenDeal _ _ _ _ -> - ( dealId, deal, DuplicateDeal dealId ) + OpenDeal p _ _ -> + ( dealState, DuplicateDeal p ) Nothing -> case dealCmd of - OpenDeal id productId price qty -> + OpenDeal productId price qty -> if price < 0 then - ( dealId, deal, InvalidPrice id price ) + ( dealState, InvalidPrice price ) else if qty < 0 then - ( dealId, deal, InvalidQuantity id qty ) + ( dealState, InvalidQuantity qty ) else - ( dealId - , Deal id productId price qty |> Just - , DealOpened id productId price qty + ( Deal productId price qty |> Just + , DealOpened productId price qty ) - CloseDeal _ -> - ( dealId, deal, DealNotFound dealId ) + CloseDeal p -> + ( dealState, DealNotFound p) + + +app : StatefulApp ID DealCmd Deal DealEvent +app = + StatefulApp logic From 34dc7b72c0752aa0a77c93870b83db65eec1aeb5 Mon Sep 17 00:00:00 2001 From: JBarrios Date: Wed, 14 Oct 2020 09:45:06 -0300 Subject: [PATCH 26/88] Changes in BooksAndRecords made in morphir-elm * No ID inside logic * Types with arguments to generate case classes instead of objects --- .github/{workflows => archive}/build-publish.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/{workflows => archive}/build-publish.yml (100%) diff --git a/.github/workflows/build-publish.yml b/.github/archive/build-publish.yml similarity index 100% rename from .github/workflows/build-publish.yml rename to .github/archive/build-publish.yml From 5c2794c88c845f2f1014f537eae7e1cb683b1316 Mon Sep 17 00:00:00 2001 From: JBarrios Date: Wed, 14 Oct 2020 09:47:26 -0300 Subject: [PATCH 27/88] Adding readme file with instructions on how to generate a Spring Boot App --- docs/springboot/README.md | 105 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 docs/springboot/README.md diff --git a/docs/springboot/README.md b/docs/springboot/README.md new file mode 100644 index 0000000..d6b7601 --- /dev/null +++ b/docs/springboot/README.md @@ -0,0 +1,105 @@ +# morphir-elm SpringBoot generator + +[Morphir](https://github.com/finos/morphir) is a multi-language system built on a data format that captures an +application's domain model and business logic in a technology agnostic manner. This document will guide you on +how to write your business logic in [Elm](https://elm-lang.org/), parse it into Morphir IR and transpile +it to [Spring Boot](https://spring.io/projects/spring-boot/). + +## Prerequisites + +Morphir-elm package installed. Installation instructions: [morphir-elm installation](Readme.md) + +If you make changes to the morphir-elm code, you should run + +``` +npm run build +``` + +## Translate Elm sources to Morphir IR + +For detailed instructions refer to [morphir-elm installation](Readme.md) + +Example: +If we have a file with module name defined as: +``` +module Morphir.Reference.Model.BooksAndRecords exposing (..) +``` +**Important**: Currently, the Spring Boot generator works with custom types with at least one argument. + +then our folder structure might be +``` +exampleIR +| morphir.json +| |example +| | |Morphir +| | | |Reference +| | | | |Model +| | | | BooksAndRecords.elm +``` + +The morphir.json file should be something like this + +``` +{ + "name": "Morphir.Reference.Model", + "sourceDirectory": "example", + "exposedModules": [ + + "BooksAndRecords" + ] +} +``` + +Finally to translate to IR +- Go to command line +- Navigate to ExampleIR folder (where morphir.json is located) +- Execute + ``` + morphir-elm make + ``` +A morphir-ir.json file should be generated with the IR content + +## Transpil Morphir IR to a Spring Boot Project + + +- Run the following command + +``` + morphir-elm gen -t SpringBoot -i [inputFile] -o [outputFolder] +``` +where +- [inputFile] is path to the IR generated file. In the previous example should be: ``` exampleIR/morphir-ir.json ``` +- [outputFolder] path where the Spring Boot project will be generated. + +## Running the Spring Boot Project with Intellij + +- Open the folder with Intellij +- It may ask to setup scala SDK +- Create a configuration of type "Spring Boot" in order to run the project +- The folder ```src/main/java``` should have the Scala source code files +- Run the application +- Check that the server starts up without problems. If it has some errors, check if there are dependencies that should be added or changed. + + +## Connect to the Spring Boot application +- Open a REST API client (example: POSTMAN) +- Execute a POST operation ```http://localhost:8081/commandhttp``` + +The code generator currently supports Jackson, the body of the POST operation should be +``` + { + "type": "[commandsubclass]", + "arg1": "[value1]", + "arg2": "[value2]", + ....} +``` +```[commandsubtype]``` is a command sub class. Depending on the application how many arguments should be passed. + + +## License + +Copyright 2014 Morgan Stanley + +Distributed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0). + +SPDX-License-Identifier: [Apache-2.0](https://spdx.org/licenses/Apache-2.0) From d6544cfd4892758573c0c08886aba40997ad3344 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Wed, 28 Oct 2020 12:45:16 -0400 Subject: [PATCH 28/88] Updated LCR to latest morphir advancements --- elm.json | 5 +++-- morphir.json | 4 +++- src/Morphir/Sample/LCR/Basics.elm | 12 ++++++++---- src/Morphir/Sample/LCR/Calculations.elm | 11 +++++------ src/Morphir/Sample/LCR/Flows.elm | 6 +++--- src/Morphir/Sample/LCR/Inflows.elm | 1 - src/Morphir/Sample/LCR/MaturityBucket.elm | 6 ++++++ src/Morphir/Sample/LCR/Outflows.elm | 1 - src/Morphir/Sample/LCR/Rules.elm | 5 +++-- 9 files changed, 31 insertions(+), 20 deletions(-) diff --git a/elm.json b/elm.json index ee5a7f0..4cbe179 100644 --- a/elm.json +++ b/elm.json @@ -9,7 +9,9 @@ "elm/browser": "1.0.2", "elm/core": "1.0.5", "elm/html": "1.0.0", - "finos/morphir-elm": "1.0.0" + "elm/time": "1.0.0", + "finos/morphir-elm": "1.0.0", + "justinmimbs/date": "3.2.1" }, "indirect": { "avh4/elm-fifo": "1.0.4", @@ -17,7 +19,6 @@ "elm/parser": "1.1.0", "elm/random": "1.0.0", "elm/regex": "1.0.0", - "elm/time": "1.0.0", "elm/url": "1.0.0", "elm/virtual-dom": "1.0.2", "elm-community/graph": "6.0.0", diff --git a/morphir.json b/morphir.json index b89ad54..5e01c36 100644 --- a/morphir.json +++ b/morphir.json @@ -1,7 +1,9 @@ { - "name": "Company/Operations", + "name": "Morphir/Sample", "sourceDirectory": "src", "exposedModules": [ "BooksAndRecords" + , "LCR/MaturityBucket" + , "LCR/Calculations" ] } \ No newline at end of file diff --git a/src/Morphir/Sample/LCR/Basics.elm b/src/Morphir/Sample/LCR/Basics.elm index 358de05..677dc12 100644 --- a/src/Morphir/Sample/LCR/Basics.elm +++ b/src/Morphir/Sample/LCR/Basics.elm @@ -19,13 +19,11 @@ module Morphir.Sample.LCR.Basics exposing , InsuranceType(..) , Entity , Currency + , Balance + , Ratio , Fed5GCode ) - -import Date exposing (Date, Unit(..)) -import Time exposing (Month(..)) - {-| Asset categories apply to the flows and are specified in the spec. There are a bunch of them, but we're only concerned with these three in this example . -} @@ -49,6 +47,12 @@ type alias Entity = String type alias Currency = String +type alias Balance = Float + + +type alias Ratio = Float + + type alias Fed5GCode = String diff --git a/src/Morphir/Sample/LCR/Calculations.elm b/src/Morphir/Sample/LCR/Calculations.elm index 85a7b00..8037cf6 100644 --- a/src/Morphir/Sample/LCR/Calculations.elm +++ b/src/Morphir/Sample/LCR/Calculations.elm @@ -17,7 +17,6 @@ limitations under the License. module Morphir.Sample.LCR.Calculations exposing (..) -import Morphir.SDK.Basics exposing (Decimal, max, min) import Date exposing (Date, Interval(..), Unit(..)) import Morphir.Sample.LCR.Basics exposing (..) import Morphir.Sample.LCR.Flows exposing (..) @@ -30,11 +29,11 @@ import Morphir.Sample.LCR.Rules as Rules -- Forumulas from the OCC: https://www.occ.gov/news-issuances/bulletins/2014/bulletin-2014-51.html -- https://www.occ.gov/topics/supervision-and-examination/capital-markets/balance-sheet-management/liquidity/Basel-III-LCR-Formulas.pdf -- https://www.govinfo.gov/content/pkg/FR-2014-10-10/pdf/2014-22520.pdf (page 61477) -{-| This module is broken up into the same structure as the example formulas in the referenced PDF. -} +-- {-| This module is broken up into the same structure as the example formulas in the referenced PDF. -} -{-| Here's the LCR as it's commonly known. -} -lcr : (Flow -> Counterparty) -> (ProductId -> Product) -> Date -> (Date -> List Flow) -> Decimal -> Decimal +-- {-| Here's the LCR as it's commonly known. -} +lcr : (Flow -> Counterparty) -> (ProductId -> Product) -> Date -> (Date -> List Flow) -> Balance -> Ratio lcr toCounterparty product t flowsForDate reserveBalanceRequirement = let hqla = hqlaAmount product (flowsForDate t) reserveBalanceRequirement @@ -44,7 +43,7 @@ lcr toCounterparty product t flowsForDate reserveBalanceRequirement = {-| HQLA Amount is the LCR numerator. It has several components, which are specified as nested functions. -} -hqlaAmount : (ProductId -> Product) -> List Flow -> Decimal -> Decimal +hqlaAmount : (ProductId -> Product) -> List Flow -> Balance -> Ratio hqlaAmount product t0Flows reserveBalanceRequirement = let level1LiquidAssetsThatAreEligibleHQLA = @@ -112,7 +111,7 @@ hqlaAmount product t0Flows reserveBalanceRequirement = the date (t) from which to calculate the remaining days until the flows maturity and a function takes a function to lookup flows for a given date, -} -totalNetCashOutflowAmount : (Flow -> Counterparty) -> Date -> (Date -> List Flow) -> Decimal +totalNetCashOutflowAmount : (Flow -> Counterparty) -> Date -> (Date -> List Flow) -> Ratio totalNetCashOutflowAmount toCounterparty t flowsForDate = let -- List of the next 30 days from t diff --git a/src/Morphir/Sample/LCR/Flows.elm b/src/Morphir/Sample/LCR/Flows.elm index 59ec2b2..ea27552 100644 --- a/src/Morphir/Sample/LCR/Flows.elm +++ b/src/Morphir/Sample/LCR/Flows.elm @@ -16,8 +16,6 @@ limitations under the License. module Morphir.Sample.LCR.Flows exposing (..) - -import Morphir.SDK.Basics exposing (Decimal) import Date exposing (Date, Interval(..), Unit(..)) import Morphir.Sample.LCR.Basics exposing (..) import Morphir.Sample.LCR.Counterparty exposing (CounterpartyId) @@ -31,8 +29,10 @@ type alias BusinessDate = Date type alias ReportingEntity = Entity +type alias Amount = Float + type alias Flow = - { amount : Decimal + { amount : Amount , assetType : AssetCategoryCodes , businessDate : BusinessDate , collateralClass : AssetCategoryCodes diff --git a/src/Morphir/Sample/LCR/Inflows.elm b/src/Morphir/Sample/LCR/Inflows.elm index 81cdba3..68846f4 100644 --- a/src/Morphir/Sample/LCR/Inflows.elm +++ b/src/Morphir/Sample/LCR/Inflows.elm @@ -17,7 +17,6 @@ limitations under the License. module Morphir.Sample.LCR.Inflows exposing (..) -import Morphir.SDK.Basics exposing (Decimal) import Date exposing (Date, Interval(..), Unit(..)) import Morphir.Sample.LCR.Basics exposing (..) import Morphir.Sample.LCR.Flows exposing (..) diff --git a/src/Morphir/Sample/LCR/MaturityBucket.elm b/src/Morphir/Sample/LCR/MaturityBucket.elm index 861434e..1056b3b 100644 --- a/src/Morphir/Sample/LCR/MaturityBucket.elm +++ b/src/Morphir/Sample/LCR/MaturityBucket.elm @@ -32,18 +32,24 @@ type MaturityBucket | Residual +daysToMaturity : Date -> Date -> Int daysToMaturity fromDate maturityDate = Date.diff Days maturityDate fromDate +yearsToMaturity : Date -> Date -> Int yearsToMaturity fromDate maturityDate = Date.diff Years maturityDate fromDate {-| The Fed spec on maturity buckets -} +bucket : Date -> Date -> MaturityBucket bucket fromDate maturityDate = let + days : Int days = daysToMaturity fromDate maturityDate + + years : Int years = yearsToMaturity maturityDate fromDate in if days <= 60 then diff --git a/src/Morphir/Sample/LCR/Outflows.elm b/src/Morphir/Sample/LCR/Outflows.elm index 4b5d544..ca9b0ba 100644 --- a/src/Morphir/Sample/LCR/Outflows.elm +++ b/src/Morphir/Sample/LCR/Outflows.elm @@ -18,7 +18,6 @@ module Morphir.Sample.LCR.Outflows exposing (..) import Dict exposing (Dict) -import Morphir.SDK.Basics exposing (Decimal) import Date exposing (Date, Interval(..), Unit(..)) import Morphir.Sample.LCR.Basics exposing (..) diff --git a/src/Morphir/Sample/LCR/Rules.elm b/src/Morphir/Sample/LCR/Rules.elm index fd0e0d6..63792dc 100644 --- a/src/Morphir/Sample/LCR/Rules.elm +++ b/src/Morphir/Sample/LCR/Rules.elm @@ -17,15 +17,16 @@ limitations under the License. module Morphir.Sample.LCR.Rules exposing (..) -import Morphir.SDK.Basics exposing (Decimal) import Morphir.Sample.LCR.Basics exposing (..) import Morphir.Sample.LCR.Flows exposing (..) import Morphir.Sample.LCR.Counterparty exposing (..) +type alias Weight = Float + type alias Rule a = { name : String - , weight : Decimal + , weight : Weight , applies : a -> Bool } From ca8a077042b9a79cec5501398be39485398a7fcd Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Wed, 28 Oct 2020 13:13:46 -0400 Subject: [PATCH 29/88] simplified modules in morphir.json --- morphir.json | 1 - 1 file changed, 1 deletion(-) diff --git a/morphir.json b/morphir.json index 5e01c36..9a18fa6 100644 --- a/morphir.json +++ b/morphir.json @@ -3,7 +3,6 @@ "sourceDirectory": "src", "exposedModules": [ "BooksAndRecords" - , "LCR/MaturityBucket" , "LCR/Calculations" ] } \ No newline at end of file From 7997b3b243d641c25148d09d36cd372e11d5d5e8 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Thu, 29 Oct 2020 14:26:30 -0400 Subject: [PATCH 30/88] Updates for expanded LocalDate and new Elm parser --- .idea/.gitignore | 3 + elm.json | 3 +- package.json | 2 +- src/Morphir/Sample/LCR/Calculations.elm | 53 ++++++++++++++-- src/Morphir/Sample/LCR/Flows.elm | 9 +-- src/Morphir/Sample/LCR/Inflows.elm | 27 +++++++-- src/Morphir/Sample/LCR/MaturityBucket.elm | 13 ++-- src/Morphir/Sample/LCR/Outflows.elm | 74 ++++++++++++++--------- 8 files changed, 132 insertions(+), 52 deletions(-) create mode 100644 .idea/.gitignore diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..eaf91e2 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/elm.json b/elm.json index 4cbe179..909c419 100644 --- a/elm.json +++ b/elm.json @@ -10,7 +10,7 @@ "elm/core": "1.0.5", "elm/html": "1.0.0", "elm/time": "1.0.0", - "finos/morphir-elm": "1.0.0", + "finos/morphir-elm": "3.0.0", "justinmimbs/date": "3.2.1" }, "indirect": { @@ -25,6 +25,7 @@ "elm-community/intdict": "3.0.0", "elm-community/json-extra": "4.3.0", "elm-community/list-extra": "8.2.4", + "elm-community/maybe-extra": "5.2.0", "elm-explorations/test": "1.2.2", "rtfeldman/elm-hex": "1.0.0", "rtfeldman/elm-iso8601-date-strings": "1.1.3", diff --git a/package.json b/package.json index 4b21b54..67bb6ce 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,6 @@ "@morphir/morphir-elm": "latest" }, "dependencies": { - "morphir-elm": "latest" + "morphir-elm": "^1.5.0" } } diff --git a/src/Morphir/Sample/LCR/Calculations.elm b/src/Morphir/Sample/LCR/Calculations.elm index 8037cf6..51effa6 100644 --- a/src/Morphir/Sample/LCR/Calculations.elm +++ b/src/Morphir/Sample/LCR/Calculations.elm @@ -17,7 +17,7 @@ limitations under the License. module Morphir.Sample.LCR.Calculations exposing (..) -import Date exposing (Date, Interval(..), Unit(..)) +import Morphir.SDK.LocalDate exposing (LocalDate, addDays) import Morphir.Sample.LCR.Basics exposing (..) import Morphir.Sample.LCR.Flows exposing (..) import Morphir.Sample.LCR.Counterparty exposing (..) @@ -33,71 +33,89 @@ import Morphir.Sample.LCR.Rules as Rules -- {-| Here's the LCR as it's commonly known. -} -lcr : (Flow -> Counterparty) -> (ProductId -> Product) -> Date -> (Date -> List Flow) -> Balance -> Ratio +lcr : (Flow -> Counterparty) -> (ProductId -> Product) -> LocalDate -> (LocalDate -> List Flow) -> Balance -> Ratio lcr toCounterparty product t flowsForDate reserveBalanceRequirement = let + hqla : Balance hqla = hqlaAmount product (flowsForDate t) reserveBalanceRequirement + + totalNetCashOutflow : Balance totalNetCashOutflow = totalNetCashOutflowAmount toCounterparty t flowsForDate in hqla / totalNetCashOutflow {-| HQLA Amount is the LCR numerator. It has several components, which are specified as nested functions. -} -hqlaAmount : (ProductId -> Product) -> List Flow -> Balance -> Ratio +hqlaAmount : (ProductId -> Product) -> List Flow -> Balance -> Balance hqlaAmount product t0Flows reserveBalanceRequirement = let + level1LiquidAssetsThatAreEligibleHQLA : Balance level1LiquidAssetsThatAreEligibleHQLA = t0Flows |> List.filter (\flow -> flow.assetType == Level1Assets && isHQLA product flow) |> List.map .amount |> List.sum + level1LiquidAssetAmount : Balance level1LiquidAssetAmount = level1LiquidAssetsThatAreEligibleHQLA - reserveBalanceRequirement + level2aLiquidAssetsThatAreEligibleHQLA : Balance level2aLiquidAssetsThatAreEligibleHQLA = t0Flows |> List.filter (\flow -> flow.assetType == Level2aAssets && isHQLA product flow) |> List.map .amount |> List.sum + level2aLiquidAssetAmount : Balance level2aLiquidAssetAmount = 0.85 * level2aLiquidAssetsThatAreEligibleHQLA + level2bLiquidAssetsThatAreEligibleHQLA : Balance level2bLiquidAssetsThatAreEligibleHQLA = t0Flows |> List.filter (\flow -> flow.assetType == Level2bAssets && isHQLA product flow) |> List.map .amount |> List.sum + level2bLiquidAssetAmount : Balance level2bLiquidAssetAmount = 0.50 * level2bLiquidAssetsThatAreEligibleHQLA + unadjustedExcessHQLAAmount : Balance unadjustedExcessHQLAAmount = let + level2CapExcessAmount : Balance level2CapExcessAmount = max (level2aLiquidAssetAmount + level2bLiquidAssetAmount - 0.6667 * level1LiquidAssetAmount) 0.0 + level2bCapExcessAmount : Balance level2bCapExcessAmount = max (level2bLiquidAssetAmount - level2CapExcessAmount - 0.1765 * (level1LiquidAssetAmount + level2aLiquidAssetAmount)) 0.0 in level2CapExcessAmount + level2bCapExcessAmount + adjustedExcessHQLAAmount : Balance adjustedExcessHQLAAmount = let + adjustedLevel1LiquidAssetAmount : Balance adjustedLevel1LiquidAssetAmount = level1LiquidAssetAmount + adjustedlevel2aLiquidAssetAmount : Balance adjustedlevel2aLiquidAssetAmount = level2aLiquidAssetAmount * 0.85 + adjustedlevel2bLiquidAssetAmount : Balance adjustedlevel2bLiquidAssetAmount = level2bLiquidAssetAmount * 0.50 + adjustedLevel2CapExcessAmount : Balance adjustedLevel2CapExcessAmount = max (adjustedlevel2aLiquidAssetAmount + adjustedlevel2bLiquidAssetAmount - 0.6667 * adjustedLevel1LiquidAssetAmount) 0.0 + adjustedlevel2bCapExcessAmount : Balance adjustedlevel2bCapExcessAmount = max (adjustedlevel2bLiquidAssetAmount - adjustedLevel2CapExcessAmount - 0.1765 * (adjustedLevel1LiquidAssetAmount + adjustedlevel2aLiquidAssetAmount)) 0.0 in @@ -108,25 +126,29 @@ hqlaAmount product t0Flows reserveBalanceRequirement = {-| Total Net Cash Outflow Amount is the LCR denominator. It has several components, which are specified as nested functions. The function takes a function to lookup the counterparty for a flow. - the date (t) from which to calculate the remaining days until the flows maturity + the LocalDate (t) from which to calculate the remaining days until the flows maturity and a function takes a function to lookup flows for a given date, -} -totalNetCashOutflowAmount : (Flow -> Counterparty) -> Date -> (Date -> List Flow) -> Ratio +totalNetCashOutflowAmount : (Flow -> Counterparty) -> LocalDate -> (LocalDate -> List Flow) -> Balance totalNetCashOutflowAmount toCounterparty t flowsForDate = let -- List of the next 30 days from t + dates : List LocalDate dates = - List.range 1 30 |> List.map (\i -> Date.add Days i t) + List.range 1 30 |> List.map (\i -> addDays i t) -- Aggregating helpers + spanDates : (Flow -> Bool) -> List Balance spanDates = \filter -> dates |> List.map flowsForDate |> List.map (\flows -> flows |> aggregateDaily filter) + aggregateSpan : (Flow -> Bool) -> Balance aggregateSpan = \filter -> spanDates filter |> List.sum + aggregateDaily : (Flow -> Bool) -> List Flow -> Balance aggregateDaily = \filter flows -> flows |> List.filter filter @@ -134,6 +156,7 @@ totalNetCashOutflowAmount toCounterparty t flowsForDate = |> List.sum -- Non maturity + nonMaturityOutflowRules : LocalDate -> List (Rules.Rule Flow) nonMaturityOutflowRules = \date -> Rules.findAll [ "32(a)(1)", "32(a)(2)", "32(a)(3)", "32(a)(4)", "32(a)(5)" @@ -141,50 +164,63 @@ totalNetCashOutflowAmount toCounterparty t flowsForDate = ] (Outflows.outflowRules toCounterparty date) + nonMaturityInflowRules : LocalDate -> List (Rules.Rule Flow) nonMaturityInflowRules = \date -> Rules.findAll [ "33(b)", "33(g)" ] (Inflows.inflowRules toCounterparty date) + nonMaturityOutflowAmount : Balance nonMaturityOutflowAmount = aggregateSpan (Rules.isAnyApplicable (nonMaturityOutflowRules t)) + nonMaturityInflowAmount : Balance nonMaturityInflowAmount = aggregateSpan (Rules.isAnyApplicable (nonMaturityInflowRules t)) -- Maturity + maturityMismatchOutflowRules : LocalDate -> List (Rules.Rule Flow) maturityMismatchOutflowRules = \date -> Rules.findAll ["32(g)(1)", "32(g)(2)", "32(g)(3)", "32(g)(4)", "32(g)(5)", "32(g)(6)", "32(g)(7)", "32(g)(8)", "32(g)(9)" ,"32(h)(1)", "32(h)(2)", "32(h)(5)", "32(j)", "32(k)", "32(l)" ] (Outflows.outflowRules toCounterparty date) + maturityOutflows : List Balance maturityOutflows = spanDates (Rules.isAnyApplicable (maturityMismatchOutflowRules t)) + maturityOutflowAmount : Balance maturityOutflowAmount = maturityOutflows |> List.sum + maturityMismatchInflowRules : LocalDate -> List (Rules.Rule Flow) maturityMismatchInflowRules = \date -> Rules.findAll [ "33(c)", "33(d)", "33(e)", "33(f)" ] (Inflows.inflowRules toCounterparty date) + maturityInflows : List Balance maturityInflows = spanDates (Rules.isAnyApplicable (maturityMismatchInflowRules t)) + maturityInflowAmount : Balance maturityInflowAmount = maturityInflows |> List.sum -- Aggregate it all together + aggregatedOutflowAmount : Balance aggregatedOutflowAmount = nonMaturityOutflowAmount + maturityOutflowAmount + aggregatedInflowAmount : Balance aggregatedInflowAmount = nonMaturityInflowAmount + maturityInflowAmount -- This add-on was added later + maturityMismatchAddOn : Balance maturityMismatchAddOn = let + netCumulativeMaturityOutflowAmount : Balance netCumulativeMaturityOutflowAmount = (List.map2 Tuple.pair (accumulate 0 maturityOutflows) (accumulate 0 maturityInflows)) |> List.map (\(o, i) -> o - i) @@ -192,17 +228,21 @@ totalNetCashOutflowAmount toCounterparty t flowsForDate = |> Maybe.withDefault 0 + netDay30CumulativeMaturityOutflowAmount : Balance netDay30CumulativeMaturityOutflowAmount = (List.sum maturityOutflows) - (List.sum maturityInflows) + maxNext30DaysOfCumulativeMaturityOutflowAmountFloor : Balance maxNext30DaysOfCumulativeMaturityOutflowAmountFloor = max 0.0 netCumulativeMaturityOutflowAmount + netDay30CumulativeMaturityOutflowAmountFloor : Balance netDay30CumulativeMaturityOutflowAmountFloor = max 0.0 netDay30CumulativeMaturityOutflowAmount in maxNext30DaysOfCumulativeMaturityOutflowAmountFloor - netDay30CumulativeMaturityOutflowAmountFloor + cappedInflows : Balance cappedInflows = min (0.75 * aggregatedOutflowAmount) aggregatedInflowAmount in @@ -222,6 +262,7 @@ isHQLA product flow = {-| Helper function to accumulated steps of a sum across a list. This is used in calculating the maturity mismatch add-on. -} +accumulate : number -> List number -> List number accumulate starter list = let (sum, acc) = diff --git a/src/Morphir/Sample/LCR/Flows.elm b/src/Morphir/Sample/LCR/Flows.elm index ea27552..b62332e 100644 --- a/src/Morphir/Sample/LCR/Flows.elm +++ b/src/Morphir/Sample/LCR/Flows.elm @@ -16,14 +16,15 @@ limitations under the License. module Morphir.Sample.LCR.Flows exposing (..) -import Date exposing (Date, Interval(..), Unit(..)) +import Morphir.SDK.LocalDate exposing (LocalDate) import Morphir.Sample.LCR.Basics exposing (..) import Morphir.Sample.LCR.Counterparty exposing (CounterpartyId) import Morphir.Sample.LCR.Product exposing (ProductId) import Morphir.Sample.LCR.MaturityBucket as MB -type alias BusinessDate = Date + +type alias BusinessDate = LocalDate type alias ReportingEntity = Entity @@ -42,7 +43,7 @@ type alias Flow = , insured : InsuranceType , isTreasuryControl : Bool , isUnencumbered : Bool - , maturityDate : Date - , effectiveMaturityDate : Date + , maturityDate : BusinessDate + , effectiveMaturityDate : BusinessDate , productId : ProductId } diff --git a/src/Morphir/Sample/LCR/Inflows.elm b/src/Morphir/Sample/LCR/Inflows.elm index 68846f4..6dcd4fa 100644 --- a/src/Morphir/Sample/LCR/Inflows.elm +++ b/src/Morphir/Sample/LCR/Inflows.elm @@ -17,7 +17,7 @@ limitations under the License. module Morphir.Sample.LCR.Inflows exposing (..) -import Date exposing (Date, Interval(..), Unit(..)) +import Morphir.SDK.LocalDate exposing (LocalDate) import Morphir.Sample.LCR.Basics exposing (..) import Morphir.Sample.LCR.Flows exposing (..) import Morphir.Sample.LCR.Counterparty exposing (..) @@ -26,7 +26,7 @@ import Morphir.Sample.LCR.MaturityBucket exposing (..) {-| The list of all rules pertaining to inflows. -} -inflowRules : (Flow -> Counterparty) -> Date -> List (Rule Flow) +inflowRules : (Flow -> Counterparty) -> LocalDate -> List (Rule Flow) inflowRules toCounterparty t = [ Rule "20(a)(1)" 1.0 (isRule20a1 t) , Rule "20(a)(3)-(6)" 1.0 isRule20a3dash6 @@ -46,7 +46,7 @@ inflowRules toCounterparty t = -- Rule logic is below for (eventual) unit testability -isRule20a1 : Date -> Flow -> Bool +isRule20a1 : LocalDate -> Flow -> Bool isRule20a1 t flow = List.member flow.fed5GCode ["I.A.3.1", "I.A.3.2", "I.A.3.3", "I.A.3.4", "I.A.3.5", "I.A.3.6", "I.A.3.7", "I.A.3.8"] && daysToMaturity t flow.maturityDate == 0 @@ -68,14 +68,17 @@ isRule20a3dash6 flow = ) +isRule22b3L2a : Flow -> Bool isRule22b3L2a flow = flow.fed5GCode == "S.I.19" && flow.collateralClass == Level2aAssets +isRule22b3L2b : Flow -> Bool isRule22b3L2b flow = flow.fed5GCode == "S.I.19" && flow.collateralClass == Level2bAssets +isRule20b : Flow -> Bool isRule20b flow = ( List.member flow.fed5GCode ["I.A.1", "I.A.2"] @@ -90,6 +93,7 @@ isRule20b flow = && flow.isUnencumbered ) +isRule20c : Flow -> Bool isRule20c flow = ( List.member flow.fed5GCode ["I.A.1", "I.A.2"] @@ -104,13 +108,18 @@ isRule20c flow = && flow.isUnencumbered ) +isRule33b : { a | fed5GCode : String } -> Bool isRule33b cashflow = cashflow.fed5GCode == "1.O.7" +isRule33c : (Flow -> Counterparty) -> LocalDate -> Flow -> Bool isRule33c toCounterparty t flow = let + cpty : Counterparty cpty = toCounterparty flow + + days : Int days = daysToMaturity t flow.maturityDate in ( @@ -125,8 +134,10 @@ isRule33c toCounterparty t flow = && (0 < days && days <= 30) ) +isRule33d1 : (Flow -> Counterparty) -> Flow -> Bool isRule33d1 toCounterparty flow = let + cpty : Counterparty cpty = toCounterparty flow in List.member flow.fed5GCode ["I.U.1", "I.U.2", "I.U.4"] @@ -142,8 +153,10 @@ isRule33d1 toCounterparty flow = ) +isRule33d2 : (Flow -> Counterparty) -> Flow -> Bool isRule33d2 toCounterparty flow = let + cpty : Counterparty cpty = toCounterparty flow in List.member flow.fed5GCode ["I.U.5", "I.U.6"] @@ -157,14 +170,18 @@ isRule33d2 toCounterparty flow = , Other ] +isRule33e : Flow -> Bool isRule33e cashflow = cashflow.fed5GCode == "I.O.6" || cashflow.fed5GCode == "I.O.8" -isRule33f flow = - Debug.todo "Rule 33(f) is actually a bunch of rules. Too many to do for now..." +-- isRule33f : a -> b +-- isRule33f flow = +-- Debug.todo "Rule 33(f) is actually a bunch of rules. Too many to do for now..." +isRule33g : { a | fed5GCode : String, isTreasuryControl : Bool } -> Bool isRule33g cashflow = cashflow.fed5GCode == "I.O.5" && cashflow.isTreasuryControl +isRule33h : { a | fed5GCode : String, isTreasuryControl : Bool } -> Bool isRule33h cashflow = cashflow.fed5GCode == "I.O.9" && cashflow.isTreasuryControl diff --git a/src/Morphir/Sample/LCR/MaturityBucket.elm b/src/Morphir/Sample/LCR/MaturityBucket.elm index 1056b3b..9d7d0ab 100644 --- a/src/Morphir/Sample/LCR/MaturityBucket.elm +++ b/src/Morphir/Sample/LCR/MaturityBucket.elm @@ -20,8 +20,7 @@ module Morphir.Sample.LCR.MaturityBucket exposing (..) -- See: https://www.federalreserve.gov/reportforms/forms/FR_2052a20190331_f.pdf -- Appendix IV-a, Maturity Time Bucket Value List on page 75 -import Date exposing (Date, Unit(..)) -import Time exposing (Month(..)) +import Morphir.SDK.LocalDate exposing (LocalDate, diffInDays, diffInYears) type MaturityBucket @@ -32,18 +31,18 @@ type MaturityBucket | Residual -daysToMaturity : Date -> Date -> Int +daysToMaturity : LocalDate -> LocalDate -> Int daysToMaturity fromDate maturityDate = - Date.diff Days maturityDate fromDate + diffInDays maturityDate fromDate -yearsToMaturity : Date -> Date -> Int +yearsToMaturity : LocalDate -> LocalDate -> Int yearsToMaturity fromDate maturityDate = - Date.diff Years maturityDate fromDate + diffInYears maturityDate fromDate {-| The Fed spec on maturity buckets -} -bucket : Date -> Date -> MaturityBucket +bucket : LocalDate -> LocalDate -> MaturityBucket bucket fromDate maturityDate = let days : Int diff --git a/src/Morphir/Sample/LCR/Outflows.elm b/src/Morphir/Sample/LCR/Outflows.elm index ca9b0ba..c939e9b 100644 --- a/src/Morphir/Sample/LCR/Outflows.elm +++ b/src/Morphir/Sample/LCR/Outflows.elm @@ -17,12 +17,10 @@ limitations under the License. module Morphir.Sample.LCR.Outflows exposing (..) -import Dict exposing (Dict) -import Date exposing (Date, Interval(..), Unit(..)) +-- import Dict exposing (Dict) +import Morphir.SDK.LocalDate exposing (LocalDate) import Morphir.Sample.LCR.Basics exposing (..) -import Morphir.Sample.LCR.Basics exposing (InsuranceType(..), AssetCategoryCodes(..)) -import Morphir.Sample.LCR.Basics exposing (InsuranceType, AssetCategoryCodes) import Morphir.Sample.LCR.Flows exposing (..) import Morphir.Sample.LCR.Counterparty exposing (..) import Morphir.Sample.LCR.MaturityBucket exposing (..) @@ -30,6 +28,7 @@ import Morphir.Sample.LCR.Rules exposing (..) {-| The list of all rules pertaining to outlfows. -} +outflowRules : (Flow -> Counterparty) -> LocalDate -> List (Rule Flow) outflowRules counterparty t = [ Rule "32(a)(1)" 0.03 isRule32a1 , Rule "32(a)(2)" 0.1 (isRule32a2 counterparty) @@ -68,6 +67,7 @@ isRule32a1 flow = isRule32a2 : (Flow -> Counterparty) -> Flow -> Bool isRule32a2 counterparty flow = let + cpty : Counterparty cpty = counterparty flow in ( @@ -85,6 +85,7 @@ isRule32a2 counterparty flow = isRule32a3 : (Flow -> Counterparty) -> Flow -> Bool isRule32a3 counterparty flow = let + cpty : Counterparty cpty = counterparty flow in flow.fed5GCode == "O.D.12" @@ -95,6 +96,7 @@ isRule32a3 counterparty flow = isRule32a4 : (Flow -> Counterparty) -> Flow -> Bool isRule32a4 counterparty flow = let + cpty : Counterparty cpty = counterparty flow in flow.fed5GCode == "O.D.12" @@ -105,6 +107,7 @@ isRule32a4 counterparty flow = isRule32a5 : (Flow -> Counterparty) -> Flow -> Bool isRule32a5 counterparty flow = let + cpty : Counterparty cpty = counterparty flow in List.member flow.fed5GCode ["O.D.13", "O.W.18"] @@ -136,28 +139,33 @@ isRule32f flow = flow.fed5GCode == "O.O.6" -isRule32g1 : (Flow -> Counterparty) -> Date -> Flow -> Bool +isRule32g1 : (Flow -> Counterparty) -> LocalDate -> Flow -> Bool isRule32g1 counterparty t flow = let + cpty : Counterparty cpty = counterparty flow + + remainingDays : Int remainingDays = daysToMaturity t flow.maturityDate in flow.fed5GCode == "O.D.7" && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) && (0 < remainingDays && remainingDays <= 30) -isRule32g2 : (Flow -> Counterparty) -> Date -> Flow -> Bool +isRule32g2 : (Flow -> Counterparty) -> LocalDate -> Flow -> Bool isRule32g2 counterparty t flow = let + cpty : Counterparty cpty = counterparty flow in flow.fed5GCode == "O.D.7" && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) && daysToMaturity t flow.maturityDate <= 30 -isRule32g3 : (Flow -> Counterparty) -> Date -> Flow -> Bool +isRule32g3 : (Flow -> Counterparty) -> LocalDate -> Flow -> Bool isRule32g3 counterparty t flow = let + cpty : Counterparty cpty = counterparty flow in flow.fed5GCode == "O.D.7" @@ -165,9 +173,10 @@ isRule32g3 counterparty t flow = && daysToMaturity t flow.maturityDate == 0 && flow.insured == FDIC -isRule32g4 : (Flow -> Counterparty) -> Date -> Flow -> Bool +isRule32g4 : (Flow -> Counterparty) -> LocalDate -> Flow -> Bool isRule32g4 counterparty t flow = let + cpty : Counterparty cpty = counterparty flow in flow.fed5GCode == "O.D.7" @@ -178,6 +187,7 @@ isRule32g4 counterparty t flow = isRule32g5 : (Flow -> Counterparty) -> Flow -> Bool isRule32g5 counterparty flow = let + cpty : Counterparty cpty = counterparty flow in flow.fed5GCode == "O.D.11" @@ -187,6 +197,7 @@ isRule32g5 counterparty flow = isRule32g6 : (Flow -> Counterparty) -> Flow -> Bool isRule32g6 counterparty flow = let + cpty : Counterparty cpty = counterparty flow in flow.fed5GCode == "O.D.11" @@ -196,6 +207,7 @@ isRule32g6 counterparty flow = isRule32g7 : (Flow -> Counterparty) -> Flow -> Bool isRule32g7 counterparty flow = let + cpty : Counterparty cpty = counterparty flow in flow.fed5GCode == "O.D.8" @@ -205,6 +217,7 @@ isRule32g7 counterparty flow = isRule32g8 : (Flow -> Counterparty) -> Flow -> Bool isRule32g8 counterparty flow = let + cpty : Counterparty cpty = counterparty flow in flow.fed5GCode == "O.D.9" @@ -214,6 +227,7 @@ isRule32g8 counterparty flow = isRule32g9 : (Flow -> Counterparty) -> Flow -> Bool isRule32g9 counterparty flow = let + cpty : Counterparty cpty = counterparty flow in (flow.fed5GCode == "O.D.8" || flow.fed5GCode == "O.D.9") @@ -221,19 +235,20 @@ isRule32g9 counterparty flow = && flow.insured /= FDIC -isRule32h1 : Flow -> Bool -isRule32h1 flow = - Debug.todo "Too many 32(h) rules to do..." +-- isRule32h1 : Flow -> Bool +-- isRule32h1 flow = +-- Debug.todo "Too many 32(h) rules to do..." -isRule32h2 : Flow -> Bool -isRule32h2 flow = - Debug.todo "Too many 32(h) rules to do..." +-- isRule32h2 : Flow -> Bool +-- isRule32h2 flow = +-- Debug.todo "Too many 32(h) rules to do..." isRule32h3 : (Flow -> Counterparty) -> Flow -> Bool isRule32h3 counterparty flow = let + cpty : Counterparty cpty = counterparty flow in flow.fed5GCode == "O.D.4" @@ -257,6 +272,7 @@ isRule32h3 counterparty flow = isRule32h4 : (Flow -> Counterparty) -> Flow -> Bool isRule32h4 counterparty flow = let + cpty : Counterparty cpty = counterparty flow in flow.fed5GCode == "O.D.4" @@ -277,24 +293,24 @@ isRule32h4 counterparty flow = && flow.insured /= FDIC -isRule32h5 : Flow -> Bool -isRule32h5 flow = - Debug.todo "Too many 32(h) rules to do..." +-- isRule32h5 : Flow -> Bool +-- isRule32h5 flow = +-- Debug.todo "Too many 32(h) rules to do..." -isRule32i : Flow -> Bool -isRule32i flow = - Debug.todo "Too many 32(i) rules to do..." +-- isRule32i : Flow -> Bool +-- isRule32i flow = +-- Debug.todo "Too many 32(i) rules to do..." -isRule32j : Flow -> Bool -isRule32j flow = - Debug.todo "Too many 32(j) rules to do..." +-- isRule32j : Flow -> Bool +-- isRule32j flow = +-- Debug.todo "Too many 32(j) rules to do..." -isRule32k : Flow -> Bool -isRule32k flow = - Debug.todo "Too many 32(k) rules to do..." +-- isRule32k : Flow -> Bool +-- isRule32k flow = +-- Debug.todo "Too many 32(k) rules to do..." isRule32l : Flow -> Bool @@ -302,9 +318,10 @@ isRule32l flow = flow.fed5GCode == "O.O.22" -isRule33f1iii : Date -> Flow -> Bool +isRule33f1iii : LocalDate -> Flow -> Bool isRule33f1iii t flow = let + days : Int days = daysToMaturity t flow.effectiveMaturityDate in List.member flow.fed5GCode ["I.S.1", "I.S.2", "I.S.5", "I.S.6", "I.S.7"] @@ -312,9 +329,10 @@ isRule33f1iii t flow = && (0 < days && days <= 30) -isRule33f1iv : Date -> Flow -> Bool +isRule33f1iv : LocalDate -> Flow -> Bool isRule33f1iv t flow = let + days : Int days = daysToMaturity t flow.effectiveMaturityDate in List.member flow.fed5GCode ["I.S.1", "I.S.2", "I.S.5", "I.S.6", "I.S.7"] From bf9d5c428dfdda665f8c1da309097fc49171e67a Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Tue, 29 Dec 2020 15:14:58 -0500 Subject: [PATCH 31/88] ignore intellij --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index a00951c..d64f6c8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ # Node node_modules/ dist/ - +.idea/ # Elm elm-stuff/ From 210733f0843c84572cd563161df907af5cf87876 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Tue, 29 Dec 2020 18:20:56 -0500 Subject: [PATCH 32/88] CDM initial --- .gitignore | 4 +- elm.json | 4 +- morphir.json | 1 + package.json | 9 +- src/Company/Operations/BooksAndRecords.elm | 26 +-- src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm | 231 +++++++++++++++++++++ src/Morphir/Sample/LCR/Flows.elm | 33 +-- 7 files changed, 273 insertions(+), 35 deletions(-) create mode 100644 src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm diff --git a/.gitignore b/.gitignore index d64f6c8..5becdf1 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,6 @@ morphir-implementation.json morphir-version.json .fake -.ionide \ No newline at end of file +.ionide + +*.iml diff --git a/elm.json b/elm.json index 909c419..b57fd54 100644 --- a/elm.json +++ b/elm.json @@ -10,7 +10,7 @@ "elm/core": "1.0.5", "elm/html": "1.0.0", "elm/time": "1.0.0", - "finos/morphir-elm": "3.0.0", + "finos/morphir-elm": "7.1.0", "justinmimbs/date": "3.2.1" }, "indirect": { @@ -27,6 +27,8 @@ "elm-community/list-extra": "8.2.4", "elm-community/maybe-extra": "5.2.0", "elm-explorations/test": "1.2.2", + "mdgriffith/elm-ui": "1.1.8", + "pzp1997/assoc-list": "1.0.0", "rtfeldman/elm-hex": "1.0.0", "rtfeldman/elm-iso8601-date-strings": "1.1.3", "stil4m/elm-syntax": "7.1.3", diff --git a/morphir.json b/morphir.json index 9a18fa6..b7e3f0b 100644 --- a/morphir.json +++ b/morphir.json @@ -4,5 +4,6 @@ "exposedModules": [ "BooksAndRecords" , "LCR/Calculations" + , "CDM/" ] } \ No newline at end of file diff --git a/package.json b/package.json index 67bb6ce..705b166 100644 --- a/package.json +++ b/package.json @@ -1,12 +1,11 @@ { "name": "@morphir/morphir-examples", "keywords": [ - "morphir-model" + "morphir" + ,"elm" ], "devDependencies": { - "@morphir/morphir-elm": "latest" + "morphir-elm": "^2.4.1" }, - "dependencies": { - "morphir-elm": "^1.5.0" - } + "dependencies": {} } diff --git a/src/Company/Operations/BooksAndRecords.elm b/src/Company/Operations/BooksAndRecords.elm index 0eb99fc..cd10185 100644 --- a/src/Company/Operations/BooksAndRecords.elm +++ b/src/Company/Operations/BooksAndRecords.elm @@ -1,24 +1,24 @@ {- -Copyright 2020 Morgan Stanley + Copyright 2020 Morgan Stanley -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 + 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 + http://www.apache.org/licenses/LICENSE-2.0 -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. -} - module Company.Operations.BooksAndRecords exposing (..) -import Morphir.SDK.StatefulApp exposing (StatefulApp) +import Morphir.SDK.StatefulApp exposing (StatefulApp(..)) + {- Type aliases for modeling in the language of the business -} @@ -113,7 +113,7 @@ logic dealState dealCmd = ) CloseDeal p -> - ( dealState, DealNotFound p) + ( dealState, DealNotFound p ) app : StatefulApp ID DealCmd Deal DealEvent diff --git a/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm b/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm new file mode 100644 index 0000000..e279781 --- /dev/null +++ b/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm @@ -0,0 +1,231 @@ +module Morphir.Sample.CDM.MiFIR.RTS22 exposing (..) + + +type PriceType + = FixedFixedPrice + | FixedFloatPrice + | BasisSwapPrice + | CDSPrice + + +type alias Report = + { price : Float + } + + +type alias PriceNotation = + { price : Price + } + + +type alias Price = + { fixedInterestRate : Maybe FixedInterestRate + + -- TODO: We don't need these right now + --, cashPrice : Maybe CashPrice + --, exchangeRate : Maybe ExchangeRate + , floatingInterestRate : Maybe FloatingInterestRate + } + + +type alias FloatingInterestRate = + { initialRate : Float + , initialRate : Maybe Float + , spread : Maybe Float + , capRate : Maybe Float + , floorRate : Maybe Float + , multiplier : Maybe Float + } + + +type alias FixedInterestRate = + { rate : Float + } + + +type alias Trade = + { tradableProduct : TradableProduct + } + + +type alias TradableProduct = + { product : Product + , priceNotation : List PriceNotation + } + + +type alias Product = + { contractualProduct : ContractualProduct + } + + +type alias ContractualProduct = + { economicTerms : EconomicTerms + } + + +type alias EconomicTerms = + { payout : Payout + } + + +type alias Payout = + { interestRatePayout : Maybe InterestRatePayout + , crediteDefaultPayout : Maybe CreditDefaultPayout + } + + +type alias CreditDefaultPayout = + -- TODO: Empty for now + {} + + +type alias InterestRatePayout = + { rateSpecification : RateSpecification + } + + +type alias RateSpecification = + { fixedRate : List Float + , floatingRate : List Float + } + + +price : Trade -> Maybe Float +price trade = + priceType trade + |> Maybe.map + (\pt -> + case pt of + FixedFixedPrice -> + fixedFixedPrice trade + + FixedFloatPrice -> + fixedFloatPrice trade + + BasisSwapPrice -> + basisSwapPrice trade + + CDSPrice -> + cdsPrice trade + ) + |> Maybe.withDefault Nothing + + +priceType : Trade -> Maybe PriceType +priceType trade = + if isFixedFixed trade then + Just FixedFixedPrice + + else if isFixedFixed trade then + Just FixedFloatPrice + + else if isIRSwapBasis trade then + Just BasisSwapPrice + + else if isCreditDefaultSwap trade then + Just CDSPrice + + else + Nothing + + + +-- FixedFixed + + +isFixedFixed : Trade -> Bool +isFixedFixed trade = + let + count = + trade.tradableProduct.product.contractualProduct.economicTerms.payout.interestRatePayout + |> Maybe.map (\x -> x.rateSpecification.fixedRate) + |> Maybe.withDefault [] + |> List.length + in + count == 2 + + +{-| reporting rule FixedFixedPrice +filter when rule IsFixedFixed then +extract Trade -> tradableProduct -> priceNotation -> price -> fixedInterestRate then +maxBy FixedInterestRate -> rate then +extract FixedInterestRate -> rate as "Price" +-} +fixedFixedPrice : Trade -> Maybe Float +fixedFixedPrice trade = + trade.tradableProduct.priceNotation + |> List.filterMap (\x -> x.price.fixedInterestRate) + |> List.map .rate + |> List.maximum + + + +-- FixedFloat + + +isFixedFloat : Trade -> Bool +isFixedFloat trade = + let + List.length trade.tradableProduct.product.contractualProduct.economicTerms.payout.interestRatePayout.rateSpecification.fixedRate + == 1 + && List.length trade.tradableProduct.product.contractualProduct.economicTerms.payout.interestRatePayout.rateSpecification.floatingRate + == 1 + + +fixedFloatPrice : Trade -> Maybe Float +fixedFloatPrice trade = + -- TODO : Is this the correct interpretation of the above? + trade.tradableProduct.priceNotation + |> List.filterMap (\x -> x.price.fixedInterestRate) + |> List.map .rate + |> List.maximum + + + +-- BasisSwap + + +isIRSwapBasis : Trade -> Bool +isIRSwapBasis trade = + List.length trade.tradableProduct.product.contractualProduct.economicTerms.payout.interestRatePayout.rateSpecification.floatingRate == 2 + + +basisSwapPrice : Trade -> Maybe Float +basisSwapPrice trade = + trade.tradableProduct.priceNotation + |> List.filterMap (\x -> x.price.floatingInterestRate) + |> List.filterMap .initialRate + |> List.head + + + +-- CDS + + +isCreditDefaultSwap : Trade -> Bool +isCreditDefaultSwap trade = + trade |> .tradableProduct |> .product |> .contractualProduct |> .economicTerms |> .payout |> .creditDefaultPayout |> exists + + +cdsPrice : Trade -> Maybe Float +cdsPrice trade = + let + p = + trade.tradableProduct.priceNotation.price + in + if p.fixedInterestRate.rate /= 0 then + p.fixedInterestRate.rate + + else + p.floatingInterestRate.initialRate + + +exists : Maybe a -> Bool +exists m = + case m of + Nothing -> + False + + _ -> + True diff --git a/src/Morphir/Sample/LCR/Flows.elm b/src/Morphir/Sample/LCR/Flows.elm index b62332e..ac99831 100644 --- a/src/Morphir/Sample/LCR/Flows.elm +++ b/src/Morphir/Sample/LCR/Flows.elm @@ -1,36 +1,39 @@ {- -Copyright 2020 Morgan Stanley + Copyright 2020 Morgan Stanley -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 + 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 + http://www.apache.org/licenses/LICENSE-2.0 -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. -} -module Morphir.Sample.LCR.Flows exposing (..) + +module Morphir.Sample.LCR.Flows exposing (Amount, BusinessDate, Flow, ReportingEntity) import Morphir.SDK.LocalDate exposing (LocalDate) import Morphir.Sample.LCR.Basics exposing (..) import Morphir.Sample.LCR.Counterparty exposing (CounterpartyId) import Morphir.Sample.LCR.Product exposing (ProductId) -import Morphir.Sample.LCR.MaturityBucket as MB +type alias BusinessDate = + LocalDate -type alias BusinessDate = LocalDate +type alias ReportingEntity = + Entity -type alias ReportingEntity = Entity +type alias Amount = + Float -type alias Amount = Float type alias Flow = { amount : Amount From 5793d807b318e9dc72d7e5e4c84d2d0fc611755b Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Tue, 29 Dec 2020 19:55:39 -0500 Subject: [PATCH 33/88] CDM initial --- src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm | 64 +++++++++++++++++----- 1 file changed, 51 insertions(+), 13 deletions(-) diff --git a/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm b/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm index e279781..bea1d42 100644 --- a/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm +++ b/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm @@ -71,7 +71,7 @@ type alias EconomicTerms = type alias Payout = { interestRatePayout : Maybe InterestRatePayout - , crediteDefaultPayout : Maybe CreditDefaultPayout + , creditDefaultPayout : Maybe CreditDefaultPayout } @@ -167,10 +167,19 @@ fixedFixedPrice trade = isFixedFloat : Trade -> Bool isFixedFloat trade = let - List.length trade.tradableProduct.product.contractualProduct.economicTerms.payout.interestRatePayout.rateSpecification.fixedRate - == 1 - && List.length trade.tradableProduct.product.contractualProduct.economicTerms.payout.interestRatePayout.rateSpecification.floatingRate - == 1 + fixedCount = + trade.tradableProduct.product.contractualProduct.economicTerms.payout.interestRatePayout + |> Maybe.map (\x -> x.rateSpecification.fixedRate) + |> Maybe.withDefault [] + |> List.length + + floatingCount = + trade.tradableProduct.product.contractualProduct.economicTerms.payout.interestRatePayout + |> Maybe.map (\x -> x.rateSpecification.floatingRate) + |> Maybe.withDefault [] + |> List.length + in + fixedCount == 1 && floatingCount == 1 fixedFloatPrice : Trade -> Maybe Float @@ -188,7 +197,14 @@ fixedFloatPrice trade = isIRSwapBasis : Trade -> Bool isIRSwapBasis trade = - List.length trade.tradableProduct.product.contractualProduct.economicTerms.payout.interestRatePayout.rateSpecification.floatingRate == 2 + let + count = + trade.tradableProduct.product.contractualProduct.economicTerms.payout.interestRatePayout + |> Maybe.map (\x -> x.rateSpecification.floatingRate) + |> Maybe.withDefault [] + |> List.length + in + count == 2 basisSwapPrice : Trade -> Maybe Float @@ -205,20 +221,42 @@ basisSwapPrice trade = isCreditDefaultSwap : Trade -> Bool isCreditDefaultSwap trade = - trade |> .tradableProduct |> .product |> .contractualProduct |> .economicTerms |> .payout |> .creditDefaultPayout |> exists + trade.tradableProduct.product.contractualProduct.economicTerms.payout.creditDefaultPayout |> exists cdsPrice : Trade -> Maybe Float cdsPrice trade = let - p = - trade.tradableProduct.priceNotation.price + mp = + trade.tradableProduct.priceNotation + |> List.head + |> Maybe.map .price + + fixedRate = + mp + |> Maybe.map .fixedInterestRate + |> Maybe.withDefault Nothing + |> Maybe.map .rate + + floatingRate = + mp + |> Maybe.map .floatingInterestRate + |> Maybe.withDefault Nothing + |> Maybe.map .initialRate in - if p.fixedInterestRate.rate /= 0 then - p.fixedInterestRate.rate + case ( fixedRate, floatingRate ) of + ( Just rate, _ ) -> + if rate /= 0 then + Just rate - else - p.floatingInterestRate.initialRate + else + Nothing + + ( _, Just (Just initialRate) ) -> + Just initialRate + + _ -> + Just 0 exists : Maybe a -> Bool From e5a15b4a41d4a7aada0c92d8fe285ce9d50744c6 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Wed, 30 Dec 2020 15:41:55 -0500 Subject: [PATCH 34/88] Fuller CDM data structures --- elm.json | 3 +- morphir.json | 5 +- .../CDM/Reg/MiFIR/AncillaryRoleEnum.elm | 23 + .../CDM/Reg/MiFIR/FloatingRateIndexEnum.elm | 432 ++++++++++++++++++ src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm | 224 ++++++++- 5 files changed, 668 insertions(+), 19 deletions(-) create mode 100644 src/Morphir/Sample/CDM/Reg/MiFIR/AncillaryRoleEnum.elm create mode 100644 src/Morphir/Sample/CDM/Reg/MiFIR/FloatingRateIndexEnum.elm diff --git a/elm.json b/elm.json index b57fd54..8d9a3ee 100644 --- a/elm.json +++ b/elm.json @@ -11,7 +11,8 @@ "elm/html": "1.0.0", "elm/time": "1.0.0", "finos/morphir-elm": "7.1.0", - "justinmimbs/date": "3.2.1" + "justinmimbs/date": "3.2.1", + "mgold/elm-nonempty-list": "4.1.0" }, "indirect": { "avh4/elm-fifo": "1.0.4", diff --git a/morphir.json b/morphir.json index b7e3f0b..935e76a 100644 --- a/morphir.json +++ b/morphir.json @@ -3,7 +3,8 @@ "sourceDirectory": "src", "exposedModules": [ "BooksAndRecords" - , "LCR/Calculations" - , "CDM/" + , "LCR/Calculations" + , "CDM/RTS22" + , "CDM/RTS22Alt" ] } \ No newline at end of file diff --git a/src/Morphir/Sample/CDM/Reg/MiFIR/AncillaryRoleEnum.elm b/src/Morphir/Sample/CDM/Reg/MiFIR/AncillaryRoleEnum.elm new file mode 100644 index 0000000..3cb3d7d --- /dev/null +++ b/src/Morphir/Sample/CDM/Reg/MiFIR/AncillaryRoleEnum.elm @@ -0,0 +1,23 @@ +module Morphir.Sample.CDM.Reg.MiFIR.AncillaryRoleEnum exposing (AncillaryRoleEnum(..)) + + +type AncillaryRoleEnum + = DisruptionEventsDeterminingParty + | ExtraordinaryDividendsParty + | PredeterminedClearingOrganizationParty + | ExerciseNoticeReceiverPartyManual + | ExerciseNoticeReceiverPartyOptionalEarlyTermination + | ExerciseNoticeReceiverPartyCancelableProvision + | ExerciseNoticeReceiverPartyExtendibleProvision + | CalculationAgentIndependent + | CalculationAgentOptionalEarlyTermination + | CalculationAgentMandatoryEarlyTermination + | CalculationAgentFallback + | ArrangingBroker + | Beneficiary + | ClearingFirm + | CounterpartyAfflilate + | Guarantor + | OtherParty + | PrimeBroker + | SettlementAgent diff --git a/src/Morphir/Sample/CDM/Reg/MiFIR/FloatingRateIndexEnum.elm b/src/Morphir/Sample/CDM/Reg/MiFIR/FloatingRateIndexEnum.elm new file mode 100644 index 0000000..eb7dacf --- /dev/null +++ b/src/Morphir/Sample/CDM/Reg/MiFIR/FloatingRateIndexEnum.elm @@ -0,0 +1,432 @@ +module Morphir.Sample.CDM.Reg.MiFIR.FloatingRateIndexEnum exposing (..) + + +type FloatingRateIndexEnum + = AED_EBOR_Reuters + | AUD_AONIA_OIS_COMPOUND + | OIS + | AUD_AONIA_OIS_COMPOUND_SwapMarker + | AUD_BBR_AUBBSW + | AUD_BBR_BBSW + | AUD_BBR_BBSW_Bloomberg + | AUD_BBR_BBSY__BID_ + | AUD_BBR_ISDC + | AUD_LIBOR_BBA + | AUD_LIBOR_BBA_Bloomberg + | AUD_LIBOR_Reference_Banks + | AUD_Quarterly_Swap_Rate_ICAP + | AUD_Quarterly_Swap_Rate_ICAP_Reference_Banks + | AUD_Semi_Annual_Swap_Rate_11_00_BGCANTOR + | AUD_Semi_Annual_Swap_Rate_BGCANTOR_Reference_Banks + | AUD_Semi_Annual_Swap_Rate_ICAP_Reference_Banks + | AUD_Semi_annual_Swap_Rate_ICAP + | AUD_Swap_Rate_Reuters + | BRL_CDI + | CAD_BA_CDOR + | CAD_BA_CDOR_Bloomberg + | CAD_BA_ISDD + | CAD_BA_Reference_Banks + | CAD_BA_Reuters + | CAD_BA_Telerate + | CAD_CORRA_OIS_COMPOUND + | CAD_ISDA_Swap_Rate + | CAD_LIBOR_BBA + | CAD_LIBOR_BBA_Bloomberg + | CAD_LIBOR_BBA_SwapMarker + | CAD_LIBOR_Reference_Banks + | CAD_REPO_CORRA + | CAD_TBILL_ISDD + | CAD_TBILL_Reference_Banks + | CAD_TBILL_Reuters + | CAD_TBILL_Telerate + | CHF_3M_LIBOR_SWAP_CME_vs_LCH_ICAP + | CHF_3M_LIBOR_SWAP_CME_vs_LCH_ICAP_Bloomberg + | CHF_3M_LIBOR_SWAP_EUREX_vs_LCH_ICAP + | CHF_3M_LIBOR_SWAP_EUREX_vs_LCH_ICAP_Bloomberg + | CHF_6M_LIBORSWAP_CME_vs_LCH_ICAP_Bloomberg + | CHF_6M_LIBOR_SWAP_CME_vs_LCH_ICAP + | CHF_6M_LIBOR_SWAP_EUREX_vs_LCH_ICAP + | CHF_6M_LIBOR_SWAP_EUREX_vs_LCH_ICAP_Bloomberg + | CHF_Annual_Swap_Rate + | CHF_Annual_Swap_Rate_11_00_ICAP + | CHF_Annual_Swap_Rate_Reference_Banks + | CHF_Basis_Swap_3m_vs_6m_LIBOR_11_00_ICAP + | CHF_ISDAFIX_Swap_Rate + | CHF_LIBOR_BBA + | CHF_LIBOR_BBA_Bloomberg + | CHF_LIBOR_ISDA + | CHF_LIBOR_Reference_Banks + | CHF_OIS_11_00_ICAP + | CHF_SARON_OIS_COMPOUND + | CHF_TOIS_OIS_COMPOUND + | CHF_USD_Basis_Swaps_11_00_ICAP + | CLP_TNA + | CL_CLICP_Bloomberg + | CNH_HIBOR_Reference_Banks + | CNH_HIBOR_TMA + | CNY_7_Repo_Compounding_Date + | CNY_CNREPOFIX_CFXS_Reuters + | CNY_PBOCB_Reuters + | CNY_Quarterly_7_day_Repo_Non_Deliverable_Swap_Rate_TRADITION + | CNY_Quarterly_7_day_Repo_Non_Deliverable_Swap_Rate_TRADITION_Reference_Banks + | CNY_SHIBOR_Reuters + | CNY_Semi_Annual_Swap_Rate_11_00_BGCANTOR + | CNY_Semi_Annual_Swap_Rate_Reference_Banks + | CNY_Shibor_OIS_Compounding + | COP_IBR_OIS_COMPOUND + | CZK_Annual_Swap_Rate_11_00_BGCANTOR + | CZK_Annual_Swap_Rate_Reference_Banks + | CZK_PRIBOR_PRBO + | CZK_PRIBOR_Reference_Banks + | DKK_CIBOR2_Bloomberg + | DKK_CIBOR2_DKNA13 + | DKK_CIBOR_DKNA13 + | DKK_CIBOR_DKNA13_Bloomberg + | DKK_CIBOR_Reference_Banks + | DKK_CITA_DKNA14_COMPOUND + | DKK_DKKOIS_OIS_COMPOUND + | EUR_3M_EURIBOR_SWAP_CME_vs_LCH_ICAP + | EUR_3M_EURIBOR_SWAP_CME_vs_LCH_ICAP_Bloomberg + | EUR_3M_EURIBOR_SWAP_EUREX_vs_LCH_ICAP + | EUR_3M_EURIBOR_SWAP_EUREX_vs_LCH_ICAP_Bloomberg + | EUR_6M_EURIBOR_SWAP_CME_vs_LCH_ICAP + | EUR_6M_EURIBOR_SWAP_CME_vs_LCH_ICAP_Bloomberg + | EUR_6M_EURIBOR_SWAP_EUREX_vs_LCH_ICAP + | EUR_6M_EURIBOR_SWAP_EUREX_vs_LCH_ICAP_Bloomberg + | EUR_Annual_Swap_Rate_10_00 + | EUR_Annual_Swap_Rate_10_00_BGCANTOR + | EUR_Annual_Swap_Rate_10_00_Bloomberg + | EUR_Annual_Swap_Rate_10_00_ICAP + | EUR_Annual_Swap_Rate_10_00_SwapMarker + | EUR_Annual_Swap_Rate_10_00_TRADITION + | EUR_Annual_Swap_Rate_11_00 + | EUR_Annual_Swap_Rate_11_00_Bloomberg + | EUR_Annual_Swap_Rate_11_00_ICAP + | EUR_Annual_Swap_Rate_11_00_SwapMarker + | EUR_Annual_Swap_Rate_3_Month + | EUR_Annual_Swap_Rate_3_Month_SwapMarker + | EUR_Annual_Swap_Rate_4_15_TRADITION + | EUR_Annual_Swap_Rate_Reference_Banks + | EUR_Basis_Swap_EONIA_vs_3m_EUR_IBOR_Swap_Rates_A_360_10_00_ICAP + | EUR_EONIA_AVERAGE + | EUR_EONIA_OIS_10_00_BGCANTOR + | EUR_EONIA_OIS_10_00_ICAP + | EUR_EONIA_OIS_10_00_TRADITION + | EUR_EONIA_OIS_11_00_ICAP + | EUR_EONIA_OIS_4_15_TRADITION + | EUR_EONIA_OIS_COMPOUND + | EUR_EONIA_OIS_COMPOUND_Bloomberg + | EUR_EONIA_Swap_Index + | EUR_EURIBOR_Act_365 + | EUR_EURIBOR_Act_365_Bloomberg + | EUR_EURIBOR_Annual_Bond_Swap_vs_1m_11_00_ICAP + | EUR_EURIBOR_Basis_Swap_1m_vs_3m_Euribor_11_00_ICAP + | EUR_EURIBOR_Basis_Swap_3m_vs_6m_11_00_ICAP + | EUR_EURIBOR_Reference_Banks + | EUR_EURIBOR_Reuters + | EUR_EURIBOR_Telerate + | EUR_EURONIA_OIS_COMPOUND + | EUR_ISDA_EURIBOR_Swap_Rate_11_00 + | EUR_ISDA_EURIBOR_Swap_Rate_12_00 + | EUR_ISDA_LIBOR_Swap_Rate_10_00 + | EUR_ISDA_LIBOR_Swap_Rate_11_00 + | EUR_LIBOR_BBA + | EUR_LIBOR_BBA_Bloomberg + | EUR_LIBOR_Reference_Banks + | EUR_TAM_CDC + | EUR_TEC10_CNO + | EUR_TEC10_CNO_SwapMarker + | EUR_TEC10_Reference_Banks + | EUR_TEC5_CNO + | EUR_TEC5_CNO_SwapMarker + | EUR_TEC5_Reference_Banks + | EUR_TMM_CDC_COMPOUND + | EUR_USD_Basis_Swaps_11_00_ICAP + | GBP_6M_LIBOR_SWAP_CME_vs_LCH_ICAP + | GBP_6M_LIBOR_SWAP_CME_vs_LCH_ICAP_Bloomberg + | GBP_6M_LIBOR_SWAP_EUREX_vs_LCH_ICAP + | GBP_6M_LIBOR_SWAP_EUREX_vs_LCH_ICAP_Bloomberg + | GBP_ISDA_Swap_Rate + | GBP_LIBOR_BBA + | GBP_LIBOR_BBA_Bloomberg + | GBP_LIBOR_ISDA + | GBP_LIBOR_Reference_Banks + | GBP_SONIA_COMPOUND + | GBP_SONIA_OIS_11_00_ICAP + | GBP_SONIA_OIS_11_00_TRADITION + | GBP_SONIA_OIS_4_15_TRADITION + | GBP_Semi_Annual_Swap_Rate + | GBP_Semi_Annual_Swap_Rate_11_00_ICAP + | GBP_Semi_Annual_Swap_Rate_11_00_TRADITION + | GBP_Semi_Annual_Swap_Rate_4_15_TRADITION + | GBP_Semi_Annual_Swap_Rate_Reference_Banks + | GBP_Semi_Annual_Swap_Rate_SwapMarker26 + | GBP_USD_Basis_Swaps_11_00_ICAP + | GBP_WMBA_RONIA_COMPOUND + | GBP_WMBA_SONIA_COMPOUND + | GRD_ATHIBOR_ATHIBOR + | GRD_ATHIBOR_Reference_Banks + | GRD_ATHIBOR_Telerate + | GRD_ATHIMID_Reference_Banks + | GRD_ATHIMID_Reuters + | HKD_HIBOR_HIBOR_ + | HKD_HIBOR_HIBOR_Bloomberg + | HKD_HIBOR_HKAB + | HKD_HIBOR_HKAB_Bloomberg + | HKD_HIBOR_ISDC + | HKD_HIBOR_Reference_Banks + | HKD_HONIX_OIS_COMPOUND + | HKD_ISDA_Swap_Rate_11_00 + | HKD_ISDA_Swap_Rate_4_00 + | HKD_Quarterly_Annual_Swap_Rate_11_00_BGCANTOR + | HKD_Quarterly_Annual_Swap_Rate_11_00_TRADITION + | HKD_Quarterly_Annual_Swap_Rate_4_00_BGCANTOR + | HKD_Quarterly_Annual_Swap_Rate_Reference_Banks + | HKD_Quarterly_Quarterly_Swap_Rate_11_00_ICAP + | HKD_Quarterly_Quarterly_Swap_Rate_4_00_ICAP + | HKD_Quarterly_Quarterly_Swap_Rate_Reference_Banks + | HUF_BUBOR_Reference_Banks + | HUF_BUBOR_Reuters + | IDR_IDMA_Bloomberg + | IDR_IDRFIX + | IDR_JIBOR_Reuters + | IDR_SBI_Reuters + | IDR_SOR_Reference_Banks + | IDR_SOR_Reuters + | IDR_SOR_Telerate + | IDR_Semi_Annual_Swap_Rate_11_00_BGCANTOR + | IDR_Semi_Annual_Swap_Rate_Reference_Banks + | ILS_TELBOR01_Reuters + | ILS_TELBOR_Reference_Banks + | INR_BMK + | INR_CMT + | INR_FBIL_MIBOR_OIS_COMPOUND + | INR_INBMK_REUTERS + | INR_MIBOR_OIS_COMPOUND + | INR_MIFOR + | INR_MIOIS + | INR_MITOR_OIS_COMPOUND + | INR_Reference_Banks + | INR_Semi_Annual_Swap_Rate_11_30_BGCANTOR + | INR_Semi_Annual_Swap_Rate_Non_deliverable_16_00_Tullett_Prebon + | INR_Semi_Annual_Swap_Rate_Reference_Banks + | ISK_REIBOR_Reference_Banks + | ISK_REIBOR_Reuters + | JPY_Annual_Swap_Rate_11_00_TRADITION + | JPY_Annual_Swap_Rate_3_00_TRADITION + | JPY_BBSF_Bloomberg_10_00 + | JPY_BBSF_Bloomberg_15_00 + | JPY_ISDA_Swap_Rate_10_00 + | JPY_ISDA_Swap_Rate_15_00 + | JPY_LIBOR_BBA + | JPY_LIBOR_BBA_Bloomberg + | JPY_LIBOR_FRASETT + | JPY_LIBOR_ISDA + | JPY_LIBOR_Reference_Banks + | JPY_LTPR_MHCB + | JPY_LTPR_TBC + | JPY_MUTANCALL_TONAR + | JPY_OIS_11_00_ICAP + | JPY_OIS_11_00_TRADITION + | JPY_OIS_3_00_TRADITION + | JPY_Quoting_Banks_LIBOR + | JPY_STPR_Quoting_Banks + | JPY_TIBOR_17096 + | JPY_TIBOR_17097 + | JPY_TIBOR_DTIBOR01 + | JPY_TIBOR_TIBM + | JPY_TIBOR_TIBM_Reference_Banks + | JPY_TIBOR_TIBM__10_Banks_ + | JPY_TIBOR_TIBM__5_Banks_ + | JPY_TIBOR_TIBM__All_Banks_ + | JPY_TIBOR_TIBM__All_Banks__Bloomberg + | JPY_TIBOR_ZTIBOR + | JPY_TONA_OIS_COMPOUND + | JPY_TSR_Reference_Banks + | JPY_TSR_Reuters_10_00 + | JPY_TSR_Reuters_15_00 + | JPY_TSR_Telerate_10_00 + | JPY_TSR_Telerate_15_00 + | JPY_USD_Basis_Swaps_11_00_ICAP + | KRW_Bond_3222 + | KRW_CD_3220 + | KRW_CD_KSDA_Bloomberg + | KRW_Quarterly_Annual_Swap_Rate_3_30_ICAP + | MXN_TIIE_Banxico + | MXN_TIIE_Banxico_Bloomberg + | MXN_TIIE_Banxico_Reference_Banks + | MYR_KLIBOR_BNM + | MYR_KLIBOR_Reference_Banks + | MYR_Quarterly_Swap_Rate_11_00_TRADITION + | MYR_Quarterly_Swap_Rate_TRADITION_Reference_Banks + | NOK_NIBOR_NIBR + | NOK_NIBOR_NIBR_Reference_Banks + | NOK_NIBOR_OIBOR + | NOK_NIBOR_Reference_Banks + | NZD_BBR_BID + | NZD_BBR_FRA + | NZD_BBR_ISDC + | NZD_BBR_Reference_Banks + | NZD_BBR_Telerate + | NZD_NZIONA_OIS_COMPOUND + | NZD_Semi_Annual_Swap_Rate_11_00_BGCANTOR + | NZD_Semi_Annual_Swap_Rate_BGCANTOR_Reference_Banks + | NZD_Swap_Rate_ICAP + | NZD_Swap_Rate_ICAP_Reference_Banks + | PHP_PHIREF_BAP + | PHP_PHIREF_Bloomberg + | PHP_PHIREF_Reference_Banks + | PHP_Semi_Annual_Swap_Rate_11_00_BGCANTOR + | PHP_Semi_Annual_Swap_Rate_Reference_Banks + | PLN_POLONIA_OIS_COMPOUND + | PLN_WIBOR_Reference_Banks + | PLN_WIBOR_WIBO + | PLZ_WIBOR_Reference_Banks + | PLZ_WIBOR_WIBO + | REPOFUNDS_RATE_FRANCE_OIS_COMPOUND + | REPOFUNDS_RATE_GERMANY_OIS_COMPOUND + | REPOFUNDS_RATE_ITALY_OIS_COMPOUND + | RON_Annual_Swap_Rate_11_00_BGCANTOR + | RON_Annual_Swap_Rate_Reference_Banks + | RON_RBOR_Reuters + | RUB_Annual_Swap_Rate_11_00_BGCANTOR + | RUB_Annual_Swap_Rate_12_45_TRADITION + | RUB_Annual_Swap_Rate_4_15_TRADITION + | RUB_Annual_Swap_Rate_Reference_Banks + | RUB_Annual_Swap_Rate_TRADITION_Reference_Banks + | RUB_MOSPRIME_NFEA + | RUB_MOSPRIME_Reference_Banks + | RUB_RUONIA_OIS_COMPOUND + | SAR_SRIOR_Reference_Banks + | SAR_SRIOR_SUAA + | SEK_Annual_Swap_Rate + | SEK_Annual_Swap_Rate_SESWFI + | SEK_SIOR_OIS_COMPOUND + | SEK_STIBOR_Bloomberg + | SEK_STIBOR_Reference_Banks + | SEK_STIBOR_SIDE + | SGD_SIBOR_Reference_Banks + | SGD_SIBOR_Reuters + | SGD_SIBOR_Telerate + | SGD_SONAR_OIS_COMPOUND + | SGD_SONAR_OIS_VWAP_COMPOUND + | SGD_SOR_Reference_Banks + | SGD_SOR_Reuters + | SGD_SOR_Telerate + | SGD_SOR_VWAP + | SGD_SOR_VWAP_Reference_Banks + | SGD_Semi_Annual_Currency_Basis_Swap_Rate_11_00_Tullett_Prebon + | SGD_Semi_Annual_Currency_Basis_Swap_Rate_16_00_Tullett_Prebon + | SGD_Semi_Annual_Swap_Rate_11_00_BGCANTOR + | SGD_Semi_Annual_Swap_Rate_11_00_TRADITION + | SGD_Semi_Annual_Swap_Rate_11_00_Tullett_Prebon + | SGD_Semi_Annual_Swap_Rate_16_00_Tullett_Prebon + | SGD_Semi_Annual_Swap_Rate_ICAP + | SGD_Semi_Annual_Swap_Rate_ICAP_Reference_Banks + | SGD_Semi_Annual_Swap_Rate_Reference_Banks + | SGD_Semi_Annual_Swap_Rate_TRADITION_Reference_Banks + | SKK_BRIBOR_BRBO + | SKK_BRIBOR_Bloomberg + | SKK_BRIBOR_NBSK07 + | SKK_BRIBOR_Reference_Banks + | THB_SOR_Reference_Banks + | THB_SOR_Reuters + | THB_SOR_Telerate + | THB_Semi_Annual_Swap_Rate_11_00_BGCANTOR + | THB_Semi_Annual_Swap_Rate_Reference_Banks + | THB_THBFIX_Reference_Banks + | THB_THBFIX_Reuters + | TRY_Annual_Swap_Rate_11_00_TRADITION + | TRY_Annual_Swap_Rate_11_15_BGCANTOR + | TRY_Annual_Swap_Rate_Reference_Banks + | TRY_Semi_Annual_Swap_Rate_TRADITION_Reference_Banks + | TRY_TRYIBOR_Reference_Banks + | TRY_TRYIBOR_Reuters + | TWD_Quarterly_Annual_Swap_Rate_11_00_BGCANTOR + | TWD_Quarterly_Annual_Swap_Rate_Reference_Banks + | TWD_Reference_Dealers + | TWD_Reuters_6165 + | TWD_TAIBIR01 + | TWD_TAIBIR02 + | TWD_TAIBOR_Bloomberg + | TWD_TAIBOR_Reuters + | TWD_TWCPBA + | TWD_Telerate_6165 + | UK_RPIX + | USA_CPI_U + | USD_3M_LIBOR_SWAP_CME_vs_LCH_ICAP + | USD_3M_LIBOR_SWAP_CME_vs_LCH_ICAP_Bloomberg + | USD_6M_LIBOR_SWAP_CME_vs_LCH_ICAP + | USD_6M_LIBOR_SWAP_CME_vs_LCH_ICAP_Bloomberg + | USD_Annual_Swap_Rate_11_00_BGCANTOR + | USD_Annual_Swap_Rate_11_00_TRADITION + | USD_Annual_Swap_Rate_4_00_TRADITION + | USD_BA_H_15 + | USD_BA_Reference_Dealers + | USD_BMA_Municipal_Swap_Index + | USD_CD_H_15 + | USD_CD_Reference_Dealers + | USD_CMS_Reference_Banks + | USD_CMS_Reference_Banks_ICAP_SwapPX + | USD_CMS_Reuters + | USD_CMS_Telerate + | USD_CMT_T7051 + | USD_CMT_T7052 + | USD_COF11_FHLBSF + | USD_COF11_Reuters + | USD_COF11_Telerate + | USD_CP_H_15 + | USD_CP_Reference_Dealers + | USD_FFCB_DISCO + | USD_Federal_Funds_H_15 + | USD_Federal_Funds_H_15_Bloomberg + | USD_Federal_Funds_H_15_OIS_COMPOUND + | USD_Federal_Funds_Reference_Dealers + | USD_ISDAFIX3_Swap_Rate + | USD_ISDAFIX3_Swap_Rate_3_00 + | USD_ISDA_Swap_Rate + | USD_ISDA_Swap_Rate_3_00 + | USD_LIBOR_BBA + | USD_LIBOR_BBA_Bloomberg + | USD_LIBOR_ISDA + | USD_LIBOR_LIBO + | USD_LIBOR_Reference_Banks + | USD_Municipal_Swap_Libor_Ratio_11_00_ICAP + | USD_Municipal_Swap_Rate_11_00_ICAP + | USD_OIS_11_00_BGCANTOR + | USD_OIS_11_00_LON_ICAP + | USD_OIS_11_00_NY_ICAP + | USD_OIS_11_00_TRADITION + | USD_OIS_3_00_BGCANTOR + | USD_OIS_3_00_NY_ICAP + | USD_OIS_4_00_TRADITION + | USD_Overnight_Bank_Funding_Rate + | USD_Prime_H_15 + | USD_Prime_Reference_Banks + | USD_SIBOR_Reference_Banks + | USD_SIBOR_SIBO + | USD_SIFMA_Municipal_Swap_Index + | USD_SOFR_COMPOUND + | USD_S_P_Index_High_Grade + | USD_TBILL_H_15 + | USD_TBILL_H_15_Bloomberg + | USD_TBILL_Secondary_Market + | USD_TIBOR_ISDC + | USD_TIBOR_Reference_Banks + | USD_Treasury_19901_3_00_ICAP + | USD_Treasury_Rate_ICAP_BrokerTec + | USD_Treasury_Rate_SwapMarker100 + | USD_Treasury_Rate_SwapMarker99 + | USD_Treasury_Rate_T19901 + | USD_Treasury_Rate_T500 + | VND_Semi_Annual_Swap_Rate_11_00_BGCANTOR + | VND_Semi_Annual_Swap_Rate_Reference_Banks + | ZAR_DEPOSIT_Reference_Banks + | ZAR_DEPOSIT_SAFEX + | ZAR_JIBAR_Reference_Banks + | ZAR_JIBAR_SAFEX + | ZAR_PRIME_AVERAGE + | ZAR_PRIME_AVERAGE_Reference_Banks + | ZAR_Quarterly_Swap_Rate_1_00_TRADITION + | ZAR_Quarterly_Swap_Rate_5_30_TRADITION + | ZAR_Quarterly_Swap_Rate_TRADITION_Reference_Banks diff --git a/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm b/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm index bea1d42..4c345b9 100644 --- a/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm +++ b/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm @@ -1,4 +1,69 @@ -module Morphir.Sample.CDM.MiFIR.RTS22 exposing (..) +module Morphir.Sample.CDM.Reg.MiFIR.RTS22 exposing (..) + +import List.Nonempty as Nonempty exposing (Nonempty) +import Morphir.SDK.LocalDate exposing (LocalDate) +import Morphir.Sample.CDM.Reg.MiFIR.AncillaryRoleEnum exposing (AncillaryRoleEnum) +import Morphir.Sample.CDM.Reg.MiFIR.FloatingRateIndexEnum exposing (FloatingRateIndexEnum(..)) + + +type alias Report = + { price : Price + + --, reportStatus : ReportStatus + --, transactionReferenceNumber : TransactionReferenceNumber + --, tradingVenueTransactionIdentificationCode : TradingVenueTransactionIdentificationCode + --, executingEntityIdentificationCode : ExecutingEntityIdentificationCode + --, isInvestmentFirm : IsInvestmentFirm + --, submittingEntityIdentificationCode : SubmittingEntityIdentificationCode + --, buyerSeller : BuyerSeller + --, transmissionOfOrderIndicator : TransmissionOfOrderIndicator + --, tradingDateTime : TradingDateTime + --, tradingCapacity : TradingCapacity + , quantity : Quantity + + --, venueOfExecution : VenueOfExecution + --, countryOfTheBranchMembership : CountryOfTheBranchMembership + --, instrumentIdentificationCode : InstrumentIdentificationCode + --, instrumentFullName : InstrumentFullName + --, instrumentClassification : InstrumentClassification + --, notionalCurrency1 : NotionalCurrency1 + --, notionalCurrency2 : NotionalCurrency2 + --, priceMultiplier : PriceMultiplier + --, underlyingInstrumentCode : UnderlyingInstrumentCode + --, underlyingIndexName : UnderlyingIndexName + --, underlyingIndexTermPeriod : UnderlyingIndexTermPeriod + --, underlyingIndexTermMultiplier : UnderlyingIndexTermMultiplier + --, expiryDate : ExpiryDate + --, deliveryType : DeliveryType + --, investmentDecisionWithinFirm : InvestmentDecisionWithinFirm + --, personResponsibleForInvestmentDecisionCountry : PersonResponsibleForInvestmentDecisionCountry + --, executionWithinFirm : ExecutionWithinFirm + --, personResponsibleForExecutionCountry : PersonResponsibleForExecutionCountry + --, commodityDerivativeIndicator : CommodityDerivativeIndicator + --, securitiesFinancingTransactionIndicator : SecuritiesFinancingTransactionIndicator + } + + +type alias Quantity = + { amount : Amount + , unit : Unit + } + + +type alias Number = + Float + + +type alias Amount = + Float + + +type Unit + = MWH + | MMBTU + | BBL + | GAL + | BSH type PriceType @@ -8,11 +73,6 @@ type PriceType | CDSPrice -type alias Report = - { price : Float - } - - type alias PriceNotation = { price : Price } @@ -28,18 +88,17 @@ type alias Price = } -type alias FloatingInterestRate = - { initialRate : Float - , initialRate : Maybe Float - , spread : Maybe Float - , capRate : Maybe Float - , floorRate : Maybe Float - , multiplier : Maybe Float +type alias FixedInterestRate = + { rate : Float } -type alias FixedInterestRate = - { rate : Float +type alias FloatingInterestRate = + { initialRate : Maybe Number + , spread : Maybe Number + , capRate : Maybe Number + , floorRate : Maybe Number + , multiplier : Maybe Number } @@ -48,12 +107,141 @@ type alias Trade = } +type alias Identifier = + { issuerReference : Maybe Party + , issuer : Maybe String + , assignedIdentifier : AssignedIdentifier + } + + +type alias AssignedIdentifier = + { identifier : String + , version : Maybe Version + } + + +type alias Party = + { partyId : String + , name : Maybe String + , person : List NaturalPerson + + --, account : Maybe Account + } + + +type alias Account = + { partyReference : Maybe Party + , accountNumber : String + , accountName : Maybe String + , accountType : Maybe AccountTypeEnum + , accountBeneficiary : Maybe Party + , servicingParty : Maybe Party + } + + +type AccountTypeEnum + = AccountTypeEnum + | AggregateClient + | Client + | House + + +type alias NaturalPerson = + { honorific : Maybe String + , firstName : String + , middleName : List String + , initial : List String + , surname : String + , suffix : Maybe String + , dateOfBirth : Maybe LocalDate + } + + +type alias Version = + Int + + type alias TradableProduct = { product : Product - , priceNotation : List PriceNotation + , quantityNotation : Nonempty QuantityNotation + , priceNotation : Nonempty PriceNotation + , counterparty : ( Counterparty, Counterparty ) + , ancillaryParty : List AncillaryParty + , adjustment : Maybe NotionalAdjustmentEnum + } + + +type NotionalAdjustmentEnum + = Execution + | PortfolioRebalancing + | Standard + + +type alias Counterparty = + { role : CounterpartyRoleEnum + , partyReference : Party + } + + +type alias AncillaryParty = + { role : AncillaryRoleEnum + , partyReference : Nonempty Party + , onBehalfOf : Maybe CounterpartyRoleEnum + } + + +type CounterpartyRoleEnum + = Party1 + | Party2 + + +type alias QuantityNotation = + { quantity : NonNegativeQuantity + , assetIdentifier : AssetIdentifier + } + + +type alias NonNegativeQuantity = + -- TODO + Float + + +type alias AssetIdentifier = + { productIdentifier : Maybe ProductIdentifier + , currency : Maybe Currency + , rateOption : Maybe FloatingRateOption } +type alias FloatingRateOption = + { floatingRateIndex : FloatingRateIndexEnum + , indexTenor : Maybe Period + } + + +type alias Period = + { periodMultiplier : Int + , period : PeriodEnum + } + + +type PeriodEnum + = D + | W + | M + | Y + + +type alias ProductIdentifier = + { identifier : String + } + + +type alias Currency = + -- TODO + String + + type alias Product = { contractualProduct : ContractualProduct } @@ -155,6 +343,7 @@ extract FixedInterestRate -> rate as "Price" fixedFixedPrice : Trade -> Maybe Float fixedFixedPrice trade = trade.tradableProduct.priceNotation + |> Nonempty.toList |> List.filterMap (\x -> x.price.fixedInterestRate) |> List.map .rate |> List.maximum @@ -186,6 +375,7 @@ fixedFloatPrice : Trade -> Maybe Float fixedFloatPrice trade = -- TODO : Is this the correct interpretation of the above? trade.tradableProduct.priceNotation + |> Nonempty.toList |> List.filterMap (\x -> x.price.fixedInterestRate) |> List.map .rate |> List.maximum @@ -210,6 +400,7 @@ isIRSwapBasis trade = basisSwapPrice : Trade -> Maybe Float basisSwapPrice trade = trade.tradableProduct.priceNotation + |> Nonempty.toList |> List.filterMap (\x -> x.price.floatingInterestRate) |> List.filterMap .initialRate |> List.head @@ -229,6 +420,7 @@ cdsPrice trade = let mp = trade.tradableProduct.priceNotation + |> Nonempty.toList |> List.head |> Maybe.map .price From 3f8b27feefa353be37314c16332440b6848d2a21 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Wed, 30 Dec 2020 16:21:12 -0500 Subject: [PATCH 35/88] Fuller CDM data structures --- morphir.json | 2 +- src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/morphir.json b/morphir.json index 935e76a..341fdc6 100644 --- a/morphir.json +++ b/morphir.json @@ -3,8 +3,8 @@ "sourceDirectory": "src", "exposedModules": [ "BooksAndRecords" - , "LCR/Calculations" , "CDM/RTS22" , "CDM/RTS22Alt" + , "LCR/Calculations" ] } \ No newline at end of file diff --git a/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm b/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm index 4c345b9..8001ad7 100644 --- a/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm +++ b/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm @@ -89,7 +89,7 @@ type alias Price = type alias FixedInterestRate = - { rate : Float + { rate : Number } @@ -274,12 +274,12 @@ type alias InterestRatePayout = type alias RateSpecification = - { fixedRate : List Float - , floatingRate : List Float + { fixedRate : List Number + , floatingRate : List Number } -price : Trade -> Maybe Float +price : Trade -> Maybe Number price trade = priceType trade |> Maybe.map @@ -340,7 +340,7 @@ extract Trade -> tradableProduct -> priceNotation -> price -> fixedInterestRate maxBy FixedInterestRate -> rate then extract FixedInterestRate -> rate as "Price" -} -fixedFixedPrice : Trade -> Maybe Float +fixedFixedPrice : Trade -> Maybe Number fixedFixedPrice trade = trade.tradableProduct.priceNotation |> Nonempty.toList @@ -371,7 +371,7 @@ isFixedFloat trade = fixedCount == 1 && floatingCount == 1 -fixedFloatPrice : Trade -> Maybe Float +fixedFloatPrice : Trade -> Maybe Number fixedFloatPrice trade = -- TODO : Is this the correct interpretation of the above? trade.tradableProduct.priceNotation @@ -397,7 +397,7 @@ isIRSwapBasis trade = count == 2 -basisSwapPrice : Trade -> Maybe Float +basisSwapPrice : Trade -> Maybe Number basisSwapPrice trade = trade.tradableProduct.priceNotation |> Nonempty.toList @@ -415,7 +415,7 @@ isCreditDefaultSwap trade = trade.tradableProduct.product.contractualProduct.economicTerms.payout.creditDefaultPayout |> exists -cdsPrice : Trade -> Maybe Float +cdsPrice : Trade -> Maybe Number cdsPrice trade = let mp = From 21481c83ba22bb634c074de73ad8fce6e9a85c4b Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Wed, 30 Dec 2020 17:12:04 -0500 Subject: [PATCH 36/88] A bit of reorg for an alternate version --- .../CDM/Reg/MiFIR/AncillaryRoleEnum.elm | 17 + src/Morphir/Sample/CDM/Reg/MiFIR/Basics.elm | 23 + src/Morphir/Sample/CDM/Reg/MiFIR/Enums.elm | 44 ++ .../CDM/Reg/MiFIR/FloatingRateIndexEnum.elm | 17 + src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm | 130 ++--- src/Morphir/Sample/CDM/Reg/MiFIR/RTS22Alt.elm | 470 ++++++++++++++++++ 6 files changed, 641 insertions(+), 60 deletions(-) create mode 100644 src/Morphir/Sample/CDM/Reg/MiFIR/Basics.elm create mode 100644 src/Morphir/Sample/CDM/Reg/MiFIR/Enums.elm create mode 100644 src/Morphir/Sample/CDM/Reg/MiFIR/RTS22Alt.elm diff --git a/src/Morphir/Sample/CDM/Reg/MiFIR/AncillaryRoleEnum.elm b/src/Morphir/Sample/CDM/Reg/MiFIR/AncillaryRoleEnum.elm index 3cb3d7d..7eeab2e 100644 --- a/src/Morphir/Sample/CDM/Reg/MiFIR/AncillaryRoleEnum.elm +++ b/src/Morphir/Sample/CDM/Reg/MiFIR/AncillaryRoleEnum.elm @@ -1,3 +1,20 @@ +{- + Copyright 2020 Morgan Stanley + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +-} + + module Morphir.Sample.CDM.Reg.MiFIR.AncillaryRoleEnum exposing (AncillaryRoleEnum(..)) diff --git a/src/Morphir/Sample/CDM/Reg/MiFIR/Basics.elm b/src/Morphir/Sample/CDM/Reg/MiFIR/Basics.elm new file mode 100644 index 0000000..c358623 --- /dev/null +++ b/src/Morphir/Sample/CDM/Reg/MiFIR/Basics.elm @@ -0,0 +1,23 @@ +module Morphir.Sample.CDM.Reg.MiFIR.Basics exposing (..) + + +exists : Maybe a -> Bool +exists m = + case m of + Nothing -> + False + + _ -> + True + + +type alias Number = + Float + + +type alias Amount = + Float + + +type alias Version = + Int diff --git a/src/Morphir/Sample/CDM/Reg/MiFIR/Enums.elm b/src/Morphir/Sample/CDM/Reg/MiFIR/Enums.elm new file mode 100644 index 0000000..f3f0907 --- /dev/null +++ b/src/Morphir/Sample/CDM/Reg/MiFIR/Enums.elm @@ -0,0 +1,44 @@ +module Morphir.Sample.CDM.Reg.MiFIR.Enums exposing (..) + + +type UnitEnum + = MWH + | MMBTU + | BBL + | GAL + | BSH + + +type PriceExpressionEnum + = AbsoluteTerms + | PercentageOfNotional + + +type QuoteBasisEnum + = Currency1PerCurrency2 + | Currency2PerCurrency1 + + +type AccountTypeEnum + = AccountTypeEnum + | AggregateClient + | Client + | House + + +type NotionalAdjustmentEnum + = Execution + | PortfolioRebalancing + | Standard + + +type CounterpartyRoleEnum + = Party1 + | Party2 + + +type PeriodEnum + = D + | W + | M + | Y diff --git a/src/Morphir/Sample/CDM/Reg/MiFIR/FloatingRateIndexEnum.elm b/src/Morphir/Sample/CDM/Reg/MiFIR/FloatingRateIndexEnum.elm index eb7dacf..0f4b3ab 100644 --- a/src/Morphir/Sample/CDM/Reg/MiFIR/FloatingRateIndexEnum.elm +++ b/src/Morphir/Sample/CDM/Reg/MiFIR/FloatingRateIndexEnum.elm @@ -1,3 +1,20 @@ +{- + Copyright 2020 Morgan Stanley + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +-} + + module Morphir.Sample.CDM.Reg.MiFIR.FloatingRateIndexEnum exposing (..) diff --git a/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm b/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm index 8001ad7..9addd68 100644 --- a/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm +++ b/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm @@ -1,8 +1,27 @@ +{- + Copyright 2020 Morgan Stanley + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +-} + + module Morphir.Sample.CDM.Reg.MiFIR.RTS22 exposing (..) import List.Nonempty as Nonempty exposing (Nonempty) import Morphir.SDK.LocalDate exposing (LocalDate) import Morphir.Sample.CDM.Reg.MiFIR.AncillaryRoleEnum exposing (AncillaryRoleEnum) +import Morphir.Sample.CDM.Reg.MiFIR.Basics exposing (..) +import Morphir.Sample.CDM.Reg.MiFIR.Enums exposing (..) import Morphir.Sample.CDM.Reg.MiFIR.FloatingRateIndexEnum exposing (FloatingRateIndexEnum(..)) @@ -46,26 +65,10 @@ type alias Report = type alias Quantity = { amount : Amount - , unit : Unit + , unit : UnitEnum } -type alias Number = - Float - - -type alias Amount = - Float - - -type Unit - = MWH - | MMBTU - | BBL - | GAL - | BSH - - type PriceType = FixedFixedPrice | FixedFloatPrice @@ -80,14 +83,60 @@ type alias PriceNotation = type alias Price = { fixedInterestRate : Maybe FixedInterestRate - - -- TODO: We don't need these right now - --, cashPrice : Maybe CashPrice - --, exchangeRate : Maybe ExchangeRate + , cashPrice : Maybe CashPrice + , exchangeRate : Maybe ExchangeRate , floatingInterestRate : Maybe FloatingInterestRate } +type alias CashPrice = + { grossPrice : Maybe ActualPrice + , cleanNetPrice : Maybe ActualPrice + , netPrice : Maybe ActualPrice + , accruedInterest : Maybe Number + , cashflowAmount : Maybe Money + } + + +type alias Money = + { currency : Currency + , amount : Amount + } + + +type alias ExchangeRate = + { quotedCurrencyPair : QuotedCurrencyPair {} + , rate : Number + , spotRate : Maybe Number + , forwardPoints : Maybe Number + , pointValue : Maybe Number + , crossRate : List CrossRate + } + + +type alias QuotedCurrencyPair a = + { a + | currency1 : Currency + , currency2 : Currency + , quoteBasis : QuoteBasisEnum + } + + +type alias CrossRate = + QuotedCurrencyPair + { rate : Number + , spotRate : Maybe Number + , forwardPoints : Maybe Number + } + + +type alias ActualPrice = + { currency : Maybe Currency + , amount : Number + , priceExpression : PriceExpressionEnum + } + + type alias FixedInterestRate = { rate : Number } @@ -139,13 +188,6 @@ type alias Account = } -type AccountTypeEnum - = AccountTypeEnum - | AggregateClient - | Client - | House - - type alias NaturalPerson = { honorific : Maybe String , firstName : String @@ -157,10 +199,6 @@ type alias NaturalPerson = } -type alias Version = - Int - - type alias TradableProduct = { product : Product , quantityNotation : Nonempty QuantityNotation @@ -171,12 +209,6 @@ type alias TradableProduct = } -type NotionalAdjustmentEnum - = Execution - | PortfolioRebalancing - | Standard - - type alias Counterparty = { role : CounterpartyRoleEnum , partyReference : Party @@ -190,11 +222,6 @@ type alias AncillaryParty = } -type CounterpartyRoleEnum - = Party1 - | Party2 - - type alias QuantityNotation = { quantity : NonNegativeQuantity , assetIdentifier : AssetIdentifier @@ -225,13 +252,6 @@ type alias Period = } -type PeriodEnum - = D - | W - | M - | Y - - type alias ProductIdentifier = { identifier : String } @@ -449,13 +469,3 @@ cdsPrice trade = _ -> Just 0 - - -exists : Maybe a -> Bool -exists m = - case m of - Nothing -> - False - - _ -> - True diff --git a/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22Alt.elm b/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22Alt.elm new file mode 100644 index 0000000..bdf2c60 --- /dev/null +++ b/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22Alt.elm @@ -0,0 +1,470 @@ +{- + Copyright 2020 Morgan Stanley + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +-} + + +module Morphir.Sample.CDM.Reg.MiFIR.RTS22Alt exposing (..) + +import List.Nonempty as Nonempty exposing (Nonempty) +import Morphir.SDK.LocalDate exposing (LocalDate) +import Morphir.Sample.CDM.Reg.MiFIR.AncillaryRoleEnum exposing (AncillaryRoleEnum) +import Morphir.Sample.CDM.Reg.MiFIR.Basics exposing (..) +import Morphir.Sample.CDM.Reg.MiFIR.Enums exposing (..) +import Morphir.Sample.CDM.Reg.MiFIR.FloatingRateIndexEnum exposing (FloatingRateIndexEnum(..)) + + +type alias Report = + { price : Price + + --, reportStatus : ReportStatus + --, transactionReferenceNumber : TransactionReferenceNumber + --, tradingVenueTransactionIdentificationCode : TradingVenueTransactionIdentificationCode + --, executingEntityIdentificationCode : ExecutingEntityIdentificationCode + --, isInvestmentFirm : IsInvestmentFirm + --, submittingEntityIdentificationCode : SubmittingEntityIdentificationCode + --, buyerSeller : BuyerSeller + --, transmissionOfOrderIndicator : TransmissionOfOrderIndicator + --, tradingDateTime : TradingDateTime + --, tradingCapacity : TradingCapacity + , quantity : Quantity + + --, venueOfExecution : VenueOfExecution + --, countryOfTheBranchMembership : CountryOfTheBranchMembership + --, instrumentIdentificationCode : InstrumentIdentificationCode + --, instrumentFullName : InstrumentFullName + --, instrumentClassification : InstrumentClassification + --, notionalCurrency1 : NotionalCurrency1 + --, notionalCurrency2 : NotionalCurrency2 + --, priceMultiplier : PriceMultiplier + --, underlyingInstrumentCode : UnderlyingInstrumentCode + --, underlyingIndexName : UnderlyingIndexName + --, underlyingIndexTermPeriod : UnderlyingIndexTermPeriod + --, underlyingIndexTermMultiplier : UnderlyingIndexTermMultiplier + --, expiryDate : ExpiryDate + --, deliveryType : DeliveryType + --, investmentDecisionWithinFirm : InvestmentDecisionWithinFirm + --, personResponsibleForInvestmentDecisionCountry : PersonResponsibleForInvestmentDecisionCountry + --, executionWithinFirm : ExecutionWithinFirm + --, personResponsibleForExecutionCountry : PersonResponsibleForExecutionCountry + --, commodityDerivativeIndicator : CommodityDerivativeIndicator + --, securitiesFinancingTransactionIndicator : SecuritiesFinancingTransactionIndicator + } + + +type alias Quantity = + { amount : Amount + , unit : UnitEnum + } + + +type PriceType + = FixedFixedPrice + | FixedFloatPrice + | BasisSwapPrice + | CDSPrice + + +type alias PriceNotation = + { price : Price + } + + +type Price + = FixedInterestRate FixedInterestRate + | CashPrice CashPrice + | ExchangeRate ExchangeRate + | FloatingInterestRate FloatingInterestRate + + +type alias CashPrice = + { grossPrice : Maybe ActualPrice + , cleanNetPrice : Maybe ActualPrice + , netPrice : Maybe ActualPrice + , accruedInterest : Maybe Number + , cashflowAmount : Maybe Money + } + + +type alias Money = + { currency : Currency + , amount : Amount + } + + +type alias ExchangeRate = + { quotedCurrencyPair : QuotedCurrencyPair {} + , rate : Number + , spotRate : Maybe Number + , forwardPoints : Maybe Number + , pointValue : Maybe Number + , crossRate : List CrossRate + } + + +type alias QuotedCurrencyPair a = + { a + | currency1 : Currency + , currency2 : Currency + , quoteBasis : QuoteBasisEnum + } + + +type alias CrossRate = + QuotedCurrencyPair + { rate : Number + , spotRate : Maybe Number + , forwardPoints : Maybe Number + } + + +type alias ActualPrice = + { currency : Maybe Currency + , amount : Number + , priceExpression : PriceExpressionEnum + } + + +type alias FixedInterestRate = + { rate : Number + } + + +type alias FloatingInterestRate = + { initialRate : Maybe Number + , spread : Maybe Number + , capRate : Maybe Number + , floorRate : Maybe Number + , multiplier : Maybe Number + } + + +type alias Trade = + { tradableProduct : TradableProduct + } + + +type alias Identifier = + { issuerReference : Maybe Party + , issuer : Maybe String + , assignedIdentifier : AssignedIdentifier + } + + +type alias AssignedIdentifier = + { identifier : String + , version : Maybe Version + } + + +type alias Party = + { partyId : String + , name : Maybe String + , person : List NaturalPerson + + --, account : Maybe Account + } + + +type alias Account = + { partyReference : Maybe Party + , accountNumber : String + , accountName : Maybe String + , accountType : Maybe AccountTypeEnum + , accountBeneficiary : Maybe Party + , servicingParty : Maybe Party + } + + +type alias NaturalPerson = + { honorific : Maybe String + , firstName : String + , middleName : List String + , initial : List String + , surname : String + , suffix : Maybe String + , dateOfBirth : Maybe LocalDate + } + + +type alias TradableProduct = + { product : Product + , quantityNotation : Nonempty QuantityNotation + , priceNotation : Nonempty PriceNotation + , counterparty : ( Counterparty, Counterparty ) + , ancillaryParty : List AncillaryParty + , adjustment : Maybe NotionalAdjustmentEnum + } + + +type alias Counterparty = + { role : CounterpartyRoleEnum + , partyReference : Party + } + + +type alias AncillaryParty = + { role : AncillaryRoleEnum + , partyReference : Nonempty Party + , onBehalfOf : Maybe CounterpartyRoleEnum + } + + +type alias QuantityNotation = + { quantity : NonNegativeQuantity + , assetIdentifier : AssetIdentifier + } + + +type alias NonNegativeQuantity = + -- TODO + Float + + +type alias AssetIdentifier = + { productIdentifier : Maybe ProductIdentifier + , currency : Maybe Currency + , rateOption : Maybe FloatingRateOption + } + + +type alias FloatingRateOption = + { floatingRateIndex : FloatingRateIndexEnum + , indexTenor : Maybe Period + } + + +type alias Period = + { periodMultiplier : Int + , period : PeriodEnum + } + + +type alias ProductIdentifier = + { identifier : String + } + + +type alias Currency = + -- TODO + String + + +type alias Product = + { contractualProduct : ContractualProduct + } + + +type alias ContractualProduct = + { economicTerms : EconomicTerms + } + + +type alias EconomicTerms = + { payout : Payout + } + + +type alias Payout = + { interestRatePayout : Maybe InterestRatePayout + , creditDefaultPayout : Maybe CreditDefaultPayout + } + + +type alias CreditDefaultPayout = + -- TODO: Empty for now + {} + + +type alias InterestRatePayout = + { rateSpecification : RateSpecification + } + + +type alias RateSpecification = + { fixedRate : List Number + , floatingRate : List Number + } + + +price : Trade -> Maybe Number +price trade = + priceType trade + |> Maybe.map + (\pt -> + case pt of + FixedFixedPrice -> + fixedFixedPrice trade + + FixedFloatPrice -> + fixedFloatPrice trade + + BasisSwapPrice -> + basisSwapPrice trade + + CDSPrice -> + cdsPrice trade + ) + |> Maybe.withDefault Nothing + + +priceType : Trade -> Maybe PriceType +priceType trade = + if isFixedFixed trade then + Just FixedFixedPrice + + else if isFixedFixed trade then + Just FixedFloatPrice + + else if isIRSwapBasis trade then + Just BasisSwapPrice + + else if isCreditDefaultSwap trade then + Just CDSPrice + + else + Nothing + + + +-- FixedFixed + + +isFixedFixed : Trade -> Bool +isFixedFixed trade = + let + count = + trade.tradableProduct.product.contractualProduct.economicTerms.payout.interestRatePayout + |> Maybe.map (\x -> x.rateSpecification.fixedRate) + |> Maybe.withDefault [] + |> List.length + in + count == 2 + + +{-| reporting rule FixedFixedPrice +filter when rule IsFixedFixed then +extract Trade -> tradableProduct -> priceNotation -> price -> fixedInterestRate then +maxBy FixedInterestRate -> rate then +extract FixedInterestRate -> rate as "Price" +-} +fixedFixedPrice : Trade -> Maybe Number +fixedFixedPrice trade = + trade.tradableProduct.priceNotation + |> Nonempty.toList + |> List.filterMap (\x -> x.price.fixedInterestRate) + |> List.map .rate + |> List.maximum + + + +-- FixedFloat + + +isFixedFloat : Trade -> Bool +isFixedFloat trade = + let + fixedCount = + trade.tradableProduct.product.contractualProduct.economicTerms.payout.interestRatePayout + |> Maybe.map (\x -> x.rateSpecification.fixedRate) + |> Maybe.withDefault [] + |> List.length + + floatingCount = + trade.tradableProduct.product.contractualProduct.economicTerms.payout.interestRatePayout + |> Maybe.map (\x -> x.rateSpecification.floatingRate) + |> Maybe.withDefault [] + |> List.length + in + fixedCount == 1 && floatingCount == 1 + + +fixedFloatPrice : Trade -> Maybe Number +fixedFloatPrice trade = + -- TODO : Is this the correct interpretation of the above? + trade.tradableProduct.priceNotation + |> Nonempty.toList + |> List.filterMap (\x -> x.price.fixedInterestRate) + |> List.map .rate + |> List.maximum + + + +-- BasisSwap + + +isIRSwapBasis : Trade -> Bool +isIRSwapBasis trade = + let + count = + trade.tradableProduct.product.contractualProduct.economicTerms.payout.interestRatePayout + |> Maybe.map (\x -> x.rateSpecification.floatingRate) + |> Maybe.withDefault [] + |> List.length + in + count == 2 + + +basisSwapPrice : Trade -> Maybe Number +basisSwapPrice trade = + trade.tradableProduct.priceNotation + |> Nonempty.toList + |> List.filterMap (\x -> x.price.floatingInterestRate) + |> List.filterMap .initialRate + |> List.head + + + +-- CDS + + +isCreditDefaultSwap : Trade -> Bool +isCreditDefaultSwap trade = + trade.tradableProduct.product.contractualProduct.economicTerms.payout.creditDefaultPayout |> exists + + +cdsPrice : Trade -> Maybe Number +cdsPrice trade = + let + mp = + trade.tradableProduct.priceNotation + |> Nonempty.toList + |> List.head + |> Maybe.map .price + + fixedRate = + mp + |> Maybe.map .fixedInterestRate + |> Maybe.withDefault Nothing + |> Maybe.map .rate + + floatingRate = + mp + |> Maybe.map .floatingInterestRate + |> Maybe.withDefault Nothing + |> Maybe.map .initialRate + in + case ( fixedRate, floatingRate ) of + ( Just rate, _ ) -> + if rate /= 0 then + Just rate + + else + Nothing + + ( _, Just (Just initialRate) ) -> + Just initialRate + + _ -> + Just 0 From a781fb27ad51a47f8f7051d62f5a3f5d6b7dfc25 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Wed, 30 Dec 2020 18:57:47 -0500 Subject: [PATCH 37/88] added the reporting part --- morphir.json | 1 - src/Morphir/Sample/CDM/Reg/MiFIR/Basics.elm | 10 ++ src/Morphir/Sample/CDM/Reg/MiFIR/Enums.elm | 8 - .../Sample/CDM/Reg/MiFIR/Quantities.elm | 37 ++++ src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm | 159 ++++++++++++------ 5 files changed, 158 insertions(+), 57 deletions(-) create mode 100644 src/Morphir/Sample/CDM/Reg/MiFIR/Quantities.elm diff --git a/morphir.json b/morphir.json index 341fdc6..b191c5d 100644 --- a/morphir.json +++ b/morphir.json @@ -5,6 +5,5 @@ "BooksAndRecords" , "CDM/RTS22" , "CDM/RTS22Alt" - , "LCR/Calculations" ] } \ No newline at end of file diff --git a/src/Morphir/Sample/CDM/Reg/MiFIR/Basics.elm b/src/Morphir/Sample/CDM/Reg/MiFIR/Basics.elm index c358623..07e66d0 100644 --- a/src/Morphir/Sample/CDM/Reg/MiFIR/Basics.elm +++ b/src/Morphir/Sample/CDM/Reg/MiFIR/Basics.elm @@ -11,6 +11,16 @@ exists m = True +flatMap : (a -> Maybe b) -> Maybe a -> Maybe b +flatMap f maybe = + case maybe of + Just value -> + f value + + Nothing -> + Nothing + + type alias Number = Float diff --git a/src/Morphir/Sample/CDM/Reg/MiFIR/Enums.elm b/src/Morphir/Sample/CDM/Reg/MiFIR/Enums.elm index f3f0907..ddb7aba 100644 --- a/src/Morphir/Sample/CDM/Reg/MiFIR/Enums.elm +++ b/src/Morphir/Sample/CDM/Reg/MiFIR/Enums.elm @@ -1,14 +1,6 @@ module Morphir.Sample.CDM.Reg.MiFIR.Enums exposing (..) -type UnitEnum - = MWH - | MMBTU - | BBL - | GAL - | BSH - - type PriceExpressionEnum = AbsoluteTerms | PercentageOfNotional diff --git a/src/Morphir/Sample/CDM/Reg/MiFIR/Quantities.elm b/src/Morphir/Sample/CDM/Reg/MiFIR/Quantities.elm new file mode 100644 index 0000000..7504508 --- /dev/null +++ b/src/Morphir/Sample/CDM/Reg/MiFIR/Quantities.elm @@ -0,0 +1,37 @@ +module Morphir.Sample.CDM.Reg.MiFIR.Quantities exposing + ( NonNegativeQuantity + , Quantity + , UnitEnum(..) + , nonNegativeQuantity + ) + +import Morphir.Sample.CDM.Reg.MiFIR.Basics exposing (Amount) + + +type alias Quantity a = + { a + | amount : Amount + , unit : UnitEnum + } + + +type UnitEnum + = MWH + | MMBTU + | BBL + | GAL + | BSH + + +type alias NonNegativeQuantity = + Quantity + {} + + +nonNegativeQuantity : Amount -> UnitEnum -> Result String NonNegativeQuantity +nonNegativeQuantity amount unit = + if amount < 0 then + Err "amount must be greater or equal to 0" + + else + Ok { amount = amount, unit = unit } diff --git a/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm b/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm index 9addd68..65cfba4 100644 --- a/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm +++ b/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm @@ -17,56 +17,19 @@ module Morphir.Sample.CDM.Reg.MiFIR.RTS22 exposing (..) +import Company.Operations.BooksAndRecords exposing (Quantity) import List.Nonempty as Nonempty exposing (Nonempty) import Morphir.SDK.LocalDate exposing (LocalDate) import Morphir.Sample.CDM.Reg.MiFIR.AncillaryRoleEnum exposing (AncillaryRoleEnum) import Morphir.Sample.CDM.Reg.MiFIR.Basics exposing (..) import Morphir.Sample.CDM.Reg.MiFIR.Enums exposing (..) import Morphir.Sample.CDM.Reg.MiFIR.FloatingRateIndexEnum exposing (FloatingRateIndexEnum(..)) +import Morphir.Sample.CDM.Reg.MiFIR.Quantities exposing (NonNegativeQuantity) +import Morphir.Sample.LCR.Flows exposing (Amount) -type alias Report = - { price : Price - - --, reportStatus : ReportStatus - --, transactionReferenceNumber : TransactionReferenceNumber - --, tradingVenueTransactionIdentificationCode : TradingVenueTransactionIdentificationCode - --, executingEntityIdentificationCode : ExecutingEntityIdentificationCode - --, isInvestmentFirm : IsInvestmentFirm - --, submittingEntityIdentificationCode : SubmittingEntityIdentificationCode - --, buyerSeller : BuyerSeller - --, transmissionOfOrderIndicator : TransmissionOfOrderIndicator - --, tradingDateTime : TradingDateTime - --, tradingCapacity : TradingCapacity - , quantity : Quantity - - --, venueOfExecution : VenueOfExecution - --, countryOfTheBranchMembership : CountryOfTheBranchMembership - --, instrumentIdentificationCode : InstrumentIdentificationCode - --, instrumentFullName : InstrumentFullName - --, instrumentClassification : InstrumentClassification - --, notionalCurrency1 : NotionalCurrency1 - --, notionalCurrency2 : NotionalCurrency2 - --, priceMultiplier : PriceMultiplier - --, underlyingInstrumentCode : UnderlyingInstrumentCode - --, underlyingIndexName : UnderlyingIndexName - --, underlyingIndexTermPeriod : UnderlyingIndexTermPeriod - --, underlyingIndexTermMultiplier : UnderlyingIndexTermMultiplier - --, expiryDate : ExpiryDate - --, deliveryType : DeliveryType - --, investmentDecisionWithinFirm : InvestmentDecisionWithinFirm - --, personResponsibleForInvestmentDecisionCountry : PersonResponsibleForInvestmentDecisionCountry - --, executionWithinFirm : ExecutionWithinFirm - --, personResponsibleForExecutionCountry : PersonResponsibleForExecutionCountry - --, commodityDerivativeIndicator : CommodityDerivativeIndicator - --, securitiesFinancingTransactionIndicator : SecuritiesFinancingTransactionIndicator - } - -type alias Quantity = - { amount : Amount - , unit : UnitEnum - } +-- Trade Data Structures -- type PriceType @@ -78,9 +41,29 @@ type PriceType type alias PriceNotation = { price : Price + , assetIdentifier : Maybe AssetIdentifier } +priceNotation : Price -> Maybe AssetIdentifier -> Result String PriceNotation +priceNotation price mAssetIdentifier = + let + currencyExists = + mAssetIdentifier |> Maybe.map .currency |> exists + + rateOptionExists = + mAssetIdentifier |> Maybe.map .rateOption |> exists + in + if exists price.fixedInterestRate && not currencyExists then + Err "The asset identifier for an interest rate spread must be a rate option." + + else if exists price.floatingInterestRate && not rateOptionExists then + Err "The asset identifier for a fixed interest rate must be a currency." + + else + Ok (PriceNotation price mAssetIdentifier) + + type alias Price = { fixedInterestRate : Maybe FixedInterestRate , cashPrice : Maybe CashPrice @@ -228,11 +211,6 @@ type alias QuantityNotation = } -type alias NonNegativeQuantity = - -- TODO - Float - - type alias AssetIdentifier = { productIdentifier : Maybe ProductIdentifier , currency : Maybe Currency @@ -299,8 +277,93 @@ type alias RateSpecification = } -price : Trade -> Maybe Number -price trade = + +-- Report -- + + +type alias Report = + { price : Number + + --, reportStatus : ReportStatus + --, transactionReferenceNumber : TransactionReferenceNumber + --, tradingVenueTransactionIdentificationCode : TradingVenueTransactionIdentificationCode + --, executingEntityIdentificationCode : ExecutingEntityIdentificationCode + --, isInvestmentFirm : IsInvestmentFirm + --, submittingEntityIdentificationCode : SubmittingEntityIdentificationCode + --, buyerSeller : BuyerSeller + --, transmissionOfOrderIndicator : TransmissionOfOrderIndicator + --, tradingDateTime : TradingDateTime + --, tradingCapacity : TradingCapacity + , quantity : Amount + + --, venueOfExecution : VenueOfExecution + --, countryOfTheBranchMembership : CountryOfTheBranchMembership + --, instrumentIdentificationCode : InstrumentIdentificationCode + --, instrumentFullName : InstrumentFullName + --, instrumentClassification : InstrumentClassification + --, notionalCurrency1 : NotionalCurrency1 + --, notionalCurrency2 : NotionalCurrency2 + --, priceMultiplier : PriceMultiplier + --, underlyingInstrumentCode : UnderlyingInstrumentCode + --, underlyingIndexName : UnderlyingIndexName + --, underlyingIndexTermPeriod : UnderlyingIndexTermPeriod + --, underlyingIndexTermMultiplier : UnderlyingIndexTermMultiplier + --, expiryDate : ExpiryDate + --, deliveryType : DeliveryType + --, investmentDecisionWithinFirm : InvestmentDecisionWithinFirm + --, personResponsibleForInvestmentDecisionCountry : PersonResponsibleForInvestmentDecisionCountry + --, executionWithinFirm : ExecutionWithinFirm + --, personResponsibleForExecutionCountry : PersonResponsibleForExecutionCountry + --, commodityDerivativeIndicator : CommodityDerivativeIndicator + --, securitiesFinancingTransactionIndicator : SecuritiesFinancingTransactionIndicator + } + + +runReport : List Trade -> List Report +runReport trades = + List.filterMap mapTrade trades + + +mapTrade : Trade -> Maybe Report +mapTrade trade = + let + -- What should happen if any of the optional prices are not present? Skip or error? + price = + priceOf trade + + quantity = + trade.tradableProduct.quantityNotation |> Nonempty.head |> .quantity |> .amount + in + price + |> Maybe.map (\p -> Report p quantity) + + +assetIdentifier : Maybe ProductIdentifier -> Maybe Currency -> Maybe FloatingRateOption -> Result String AssetIdentifier +assetIdentifier mProductId mCurrency mRateOption = + let + isValid = + case ( mProductId, mCurrency, mRateOption ) of + ( Just p, Nothing, Nothing ) -> + True + + ( Nothing, Just _, Nothing ) -> + True + + ( Nothing, Nothing, Just p ) -> + True + + _ -> + False + in + if isValid then + Ok (AssetIdentifier mProductId mCurrency mRateOption) + + else + Err "condition: one-of" + + +priceOf : Trade -> Maybe Number +priceOf trade = priceType trade |> Maybe.map (\pt -> From 2649862695dc00b2da80ad25a9f2ff7905e9638e Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Fri, 5 Feb 2021 19:02:51 -0500 Subject: [PATCH 38/88] CDM doc start --- morphir-dapr.json | 7 ------- morphir-ir.json | 15 +++++++++++++++ package.json | 8 +++----- src/Morphir/Sample/CDM/README.md | 13 +++++++++++++ src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm | 3 ++- 5 files changed, 33 insertions(+), 13 deletions(-) delete mode 100644 morphir-dapr.json create mode 100644 morphir-ir.json create mode 100644 src/Morphir/Sample/CDM/README.md diff --git a/morphir-dapr.json b/morphir-dapr.json deleted file mode 100644 index 5cc3d43..0000000 --- a/morphir-dapr.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "Company/Operations", - "sourceDirectories": ["src"], - "exposedModules": [ - "BooksAndRecords" - ] -} \ No newline at end of file diff --git a/morphir-ir.json b/morphir-ir.json new file mode 100644 index 0000000..a9f669a --- /dev/null +++ b/morphir-ir.json @@ -0,0 +1,15 @@ +[ + "library", + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [], + { + "modules": [] + } +] \ No newline at end of file diff --git a/package.json b/package.json index 705b166..531b27f 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,9 @@ { "name": "@morphir/morphir-examples", "keywords": [ - "morphir" - ,"elm" + "morphir-model" ], "devDependencies": { - "morphir-elm": "^2.4.1" - }, - "dependencies": {} + "morphir-elm": "^2.15.0" + } } diff --git a/src/Morphir/Sample/CDM/README.md b/src/Morphir/Sample/CDM/README.md new file mode 100644 index 0000000..cf90639 --- /dev/null +++ b/src/Morphir/Sample/CDM/README.md @@ -0,0 +1,13 @@ +# ISDA CDM - Industry Standards +The ISDA Common Domain Model (CDM) 2.0 specification provides a standard blueprint for managing the life cycle of various +traded products. More background can be found at the [ISDA CDM Factsheet](https://www.isda.org/2018/11/22/isda-cdm-factsheet/) +and [Rosetta CDM](https://docs.rosetta-technology.io/cdm/readme.html). + +The CDM is defined in the [Rosetta DSL](https://docs.rosetta-technology.io/dsl/index.html). This example implements +a portion of CDM specification in Morphir to demonstrate how a DSL can be supported by the Morphir IR. There are a few +possible approaches to doing this, including compiling the DSL directly into the Morphir IR or, alternatively, transpiling +the DSL into Elm, which is then compiled down to the Morphir IR. For this example, we take that latter approach to better +demonstrate how the concepts translate between the two languages. + +This example explores the [Price spec of MiFIR RTS_22](https://ui.rosetta-technology.io/#/system/read-only-CDM) (requires login). +The implementation can be found at [RTS22](RTS22.elm). \ No newline at end of file diff --git a/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm b/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm index 65cfba4..0ff1550 100644 --- a/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm +++ b/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm @@ -27,7 +27,8 @@ import Morphir.Sample.CDM.Reg.MiFIR.FloatingRateIndexEnum exposing (FloatingRate import Morphir.Sample.CDM.Reg.MiFIR.Quantities exposing (NonNegativeQuantity) import Morphir.Sample.LCR.Flows exposing (Amount) - +{-| This example focuses on the Rosetta DSL's reporting functionality. +-} -- Trade Data Structures -- From 91087513007f8981ccd5c2162927a33a22095028 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum <129341+stephengoldbaum@users.noreply.github.com> Date: Fri, 5 Feb 2021 19:06:34 -0500 Subject: [PATCH 39/88] Rename src/Morphir/Sample/CDM/README.md to src/Morphir/Sample/CDM/MiFIR/README.md File location --- src/Morphir/Sample/CDM/{ => MiFIR}/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/Morphir/Sample/CDM/{ => MiFIR}/README.md (94%) diff --git a/src/Morphir/Sample/CDM/README.md b/src/Morphir/Sample/CDM/MiFIR/README.md similarity index 94% rename from src/Morphir/Sample/CDM/README.md rename to src/Morphir/Sample/CDM/MiFIR/README.md index cf90639..06e00bf 100644 --- a/src/Morphir/Sample/CDM/README.md +++ b/src/Morphir/Sample/CDM/MiFIR/README.md @@ -10,4 +10,4 @@ the DSL into Elm, which is then compiled down to the Morphir IR. For this examp demonstrate how the concepts translate between the two languages. This example explores the [Price spec of MiFIR RTS_22](https://ui.rosetta-technology.io/#/system/read-only-CDM) (requires login). -The implementation can be found at [RTS22](RTS22.elm). \ No newline at end of file +The implementation can be found at [RTS22](RTS22.elm). From 29fca4eace40f0b4c8f802047a3a87001358c2bb Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum <129341+stephengoldbaum@users.noreply.github.com> Date: Fri, 5 Feb 2021 19:07:22 -0500 Subject: [PATCH 40/88] Rename src/Morphir/Sample/CDM/MiFIR/README.md to src/Morphir/Sample/CDM/Reg/MiFIR/README.md File location --- src/Morphir/Sample/CDM/{ => Reg}/MiFIR/README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/Morphir/Sample/CDM/{ => Reg}/MiFIR/README.md (100%) diff --git a/src/Morphir/Sample/CDM/MiFIR/README.md b/src/Morphir/Sample/CDM/Reg/MiFIR/README.md similarity index 100% rename from src/Morphir/Sample/CDM/MiFIR/README.md rename to src/Morphir/Sample/CDM/Reg/MiFIR/README.md From bba14600fbfdb69a8cba6185662c6d5dfdd23671 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum <129341+stephengoldbaum@users.noreply.github.com> Date: Tue, 23 Feb 2021 14:02:54 -0500 Subject: [PATCH 41/88] Update RTS22.elm Added comments --- src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm b/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm index 0ff1550..42f8154 100644 --- a/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm +++ b/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm @@ -237,7 +237,6 @@ type alias ProductIdentifier = type alias Currency = - -- TODO String @@ -281,7 +280,7 @@ type alias RateSpecification = -- Report -- - +{- While the CDM RTS22 report contains all of the fields listed, this example focuses solely on the price and quantity fields. -} type alias Report = { price : Number From 33063430fc9fac1fe822dc7014b910d87437af00 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Thu, 18 Mar 2021 16:21:32 -0400 Subject: [PATCH 42/88] re-added LCR --- morphir.json | 1 + 1 file changed, 1 insertion(+) diff --git a/morphir.json b/morphir.json index b191c5d..341fdc6 100644 --- a/morphir.json +++ b/morphir.json @@ -5,5 +5,6 @@ "BooksAndRecords" , "CDM/RTS22" , "CDM/RTS22Alt" + , "LCR/Calculations" ] } \ No newline at end of file From 901c2846bf25a09ef69ba55e329f37f95e425bc5 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Tue, 1 Jun 2021 16:50:04 -0400 Subject: [PATCH 43/88] initial check of rental example --- example_app_model/elm.json | 26 ++++++ example_app_model/morphir-tests.json | 91 +++++++++++++++++++ example_app_model/morphir.json | 31 +++++++ .../src/Morphir/Example/App/Rentals.elm | 0 4 files changed, 148 insertions(+) create mode 100644 example_app_model/elm.json create mode 100644 example_app_model/morphir-tests.json create mode 100644 example_app_model/morphir.json create mode 100644 example_app_model/src/Morphir/Example/App/Rentals.elm diff --git a/example_app_model/elm.json b/example_app_model/elm.json new file mode 100644 index 0000000..2ae609a --- /dev/null +++ b/example_app_model/elm.json @@ -0,0 +1,26 @@ +{ + "type": "application", + "source-directories": [ + "src" + ], + "elm-version": "0.19.1", + "dependencies": { + "direct": { + "elm/browser": "1.0.2", + "elm/core": "1.0.5", + "elm/html": "1.0.0", + "elm-explorations/test": "1.2.2" + }, + "indirect": { + "elm/json": "1.1.3", + "elm/random": "1.0.0", + "elm/time": "1.0.0", + "elm/url": "1.0.0", + "elm/virtual-dom": "1.0.2" + } + }, + "test-dependencies": { + "direct": {}, + "indirect": {} + } +} \ No newline at end of file diff --git a/example_app_model/morphir-tests.json b/example_app_model/morphir-tests.json new file mode 100644 index 0000000..29a200b --- /dev/null +++ b/example_app_model/morphir-tests.json @@ -0,0 +1,91 @@ +[ + [ + [ [ [ "morphir" ], [ "reference" ], [ "model" ] ] + , [ [ "issues" ], [ "issue", "410" ] ] + , [ "add", "function" ] + ] + , + [ + { + "inputs" : [ 4 , 5 ], + "expectedOutput" : 9, + "description" : "Add" + }, + { + "inputs" : [ 14 , 15 ], + "expectedOutput" : 29, + "description" : "Add" + }, + { + "inputs" : [ 12 , 26 ], + "expectedOutput" : 38, + "description" : "Add" + }, + { + "inputs" : [ 122 , 126 ], + "expectedOutput" : 248, + "description" : "Add" + }, + { + "inputs" : [ 10 , 1 ], + "expectedOutput" : 11, + "description" : "Add" + }, + { + "inputs" : [ -10 , 1 ], + "expectedOutput" : -9, + "description" : "Add" + } + ] + ], + [ + [ [ [ "morphir" ], [ "reference" ], [ "model" ] ] + , [ [ "insight" ], [ "use", "case", "1" ] ] + , [ "limit", "tracking" ] + ] + , + [ + { + "inputs" : [ 10 , 0 , 0 , 12 , 13 ], + "expectedOutput" : [], + "description" : "List of Tracking Advantage" + }, + { + "inputs" : [ 10 , 5.5 , 10 , 12 , 13 ], + "expectedOutput" : [ + { "direction" : ["Up"] + , "code" : "123456789" + , "velocity" : -13 + }, + { "direction" : ["Down"] + , "code" : "987654321" + , "velocity" : 6.6 + } + ], + "description" : "List of Tracking Advantage" + }, + { + "inputs" : [ -10 , -5.5 , 10 , 12 , -13 ], + "expectedOutput" : [ + { "direction" : ["Up"] + , "code" : "123456789" + , "velocity" : 6.6 + }, + { "direction" : ["Down"] + , "code" : "987654321" + , "velocity" : 13 + }, + { "direction" : ["Up"] + , "code" : "123456789" + , "velocity" : -12 + }, + { "direction" : ["Down"] + , "code" : "987654321" + , "velocity" : -12 + } + ], + "description" : "List of Tracking Advantage" + } + ] + ] +] \ No newline at end of file diff --git a/example_app_model/morphir.json b/example_app_model/morphir.json new file mode 100644 index 0000000..2093c3c --- /dev/null +++ b/example_app_model/morphir.json @@ -0,0 +1,31 @@ +{ + "name": "Morphir.Reference.Model", + "sourceDirectory": "src", + "exposedModules": [ + "BooksAndRecords", + "Types", + "Values", + "ValueEditors", + "Formulas", + "Insight.UseCase1", + "Presentations.UKFintechMeetup", + "Issues.Issue210", + "Issues.Issue227", + "Issues.Issue273", + "Issues.Issue330", + "Issues.Issue331", + "Issues.Issue333", + "Issues.Issue349", + "Issues.Issue350", + "Issues.Issue364", + "Issues.Issue373", + "Issues.Issue401", + "Issues.Issue407", + "Issues.Issue432", + "Issues.Issue331", + "Issues.DecisionTables", + "Issues.PatternModel.BasicEnum", + "Issues.PatternModel.OtherBasicEnum", + "Issues.Issue410" + ] +} \ No newline at end of file diff --git a/example_app_model/src/Morphir/Example/App/Rentals.elm b/example_app_model/src/Morphir/Example/App/Rentals.elm new file mode 100644 index 0000000..e69de29 From 064a9cbb78da7497e6b145aea6ad7e55ecf11012 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Tue, 1 Jun 2021 16:53:35 -0400 Subject: [PATCH 44/88] missing Rentals.elm file --- .../src/Morphir/Example/App/Rentals.elm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/example_app_model/src/Morphir/Example/App/Rentals.elm b/example_app_model/src/Morphir/Example/App/Rentals.elm index e69de29..5beb052 100644 --- a/example_app_model/src/Morphir/Example/App/Rentals.elm +++ b/example_app_model/src/Morphir/Example/App/Rentals.elm @@ -0,0 +1,19 @@ +module Morphir.Example.App.Rentals exposing (..) + + +request : Int -> Int -> Int -> Int -> Bool -> Result String Int +request inventory reservations returns requestedAmount allowPartial = + let + availability : Int + availability = + inventory - reservations + returns + in + if requestedAmount <= availability then + Ok requestedAmount + + else + if allowPartial && availability > 0 then + Ok availability + else + Err "Insufficient inventory" + From 540da142738ce1dc1ffee443cc1b04366a3d8ac3 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Tue, 1 Jun 2021 16:55:55 -0400 Subject: [PATCH 45/88] missing other files too --- example_app_model/morphir-tests.json | 89 ---------------------------- example_app_model/morphir.json | 28 +-------- 2 files changed, 2 insertions(+), 115 deletions(-) diff --git a/example_app_model/morphir-tests.json b/example_app_model/morphir-tests.json index 29a200b..32960f8 100644 --- a/example_app_model/morphir-tests.json +++ b/example_app_model/morphir-tests.json @@ -1,91 +1,2 @@ [ - [ - [ [ [ "morphir" ], [ "reference" ], [ "model" ] ] - , [ [ "issues" ], [ "issue", "410" ] ] - , [ "add", "function" ] - ] - , - [ - { - "inputs" : [ 4 , 5 ], - "expectedOutput" : 9, - "description" : "Add" - }, - { - "inputs" : [ 14 , 15 ], - "expectedOutput" : 29, - "description" : "Add" - }, - { - "inputs" : [ 12 , 26 ], - "expectedOutput" : 38, - "description" : "Add" - }, - { - "inputs" : [ 122 , 126 ], - "expectedOutput" : 248, - "description" : "Add" - }, - { - "inputs" : [ 10 , 1 ], - "expectedOutput" : 11, - "description" : "Add" - }, - { - "inputs" : [ -10 , 1 ], - "expectedOutput" : -9, - "description" : "Add" - } - ] - ], - [ - [ [ [ "morphir" ], [ "reference" ], [ "model" ] ] - , [ [ "insight" ], [ "use", "case", "1" ] ] - , [ "limit", "tracking" ] - ] - , - [ - { - "inputs" : [ 10 , 0 , 0 , 12 , 13 ], - "expectedOutput" : [], - "description" : "List of Tracking Advantage" - }, - { - "inputs" : [ 10 , 5.5 , 10 , 12 , 13 ], - "expectedOutput" : [ - { "direction" : ["Up"] - , "code" : "123456789" - , "velocity" : -13 - }, - { "direction" : ["Down"] - , "code" : "987654321" - , "velocity" : 6.6 - } - ], - "description" : "List of Tracking Advantage" - }, - { - "inputs" : [ -10 , -5.5 , 10 , 12 , -13 ], - "expectedOutput" : [ - { "direction" : ["Up"] - , "code" : "123456789" - , "velocity" : 6.6 - }, - { "direction" : ["Down"] - , "code" : "987654321" - , "velocity" : 13 - }, - { "direction" : ["Up"] - , "code" : "123456789" - , "velocity" : -12 - }, - { "direction" : ["Down"] - , "code" : "987654321" - , "velocity" : -12 - } - ], - "description" : "List of Tracking Advantage" - } - ] - ] ] \ No newline at end of file diff --git a/example_app_model/morphir.json b/example_app_model/morphir.json index 2093c3c..7f6aac4 100644 --- a/example_app_model/morphir.json +++ b/example_app_model/morphir.json @@ -1,31 +1,7 @@ { - "name": "Morphir.Reference.Model", + "name": "Morphir.Example.App", "sourceDirectory": "src", "exposedModules": [ - "BooksAndRecords", - "Types", - "Values", - "ValueEditors", - "Formulas", - "Insight.UseCase1", - "Presentations.UKFintechMeetup", - "Issues.Issue210", - "Issues.Issue227", - "Issues.Issue273", - "Issues.Issue330", - "Issues.Issue331", - "Issues.Issue333", - "Issues.Issue349", - "Issues.Issue350", - "Issues.Issue364", - "Issues.Issue373", - "Issues.Issue401", - "Issues.Issue407", - "Issues.Issue432", - "Issues.Issue331", - "Issues.DecisionTables", - "Issues.PatternModel.BasicEnum", - "Issues.PatternModel.OtherBasicEnum", - "Issues.Issue410" + "Rentals" ] } \ No newline at end of file From 9d40eddecd2c12cbd36aeb33b0cb1f1933c6875b Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Tue, 1 Jun 2021 17:24:55 -0400 Subject: [PATCH 46/88] static sample insight page --- example_app_model/doc/insight.html | 43 + example_app_model/doc/insight.js | 24346 ++++++++++++++++++++++++ example_app_model/doc/morphir-ir.json | 2596 +++ 3 files changed, 26985 insertions(+) create mode 100644 example_app_model/doc/insight.html create mode 100644 example_app_model/doc/insight.js create mode 100644 example_app_model/doc/morphir-ir.json diff --git a/example_app_model/doc/insight.html b/example_app_model/doc/insight.html new file mode 100644 index 0000000..96ccec7 --- /dev/null +++ b/example_app_model/doc/insight.html @@ -0,0 +1,43 @@ + + + + + Morphir UI + + + +
+ + + +Welcome + \ No newline at end of file diff --git a/example_app_model/doc/insight.js b/example_app_model/doc/insight.js new file mode 100644 index 0000000..70bb894 --- /dev/null +++ b/example_app_model/doc/insight.js @@ -0,0 +1,24346 @@ +(function(scope){ +'use strict'; + +function F(arity, fun, wrapper) { + wrapper.a = arity; + wrapper.f = fun; + return wrapper; +} + +function F2(fun) { + return F(2, fun, function(a) { return function(b) { return fun(a,b); }; }) +} +function F3(fun) { + return F(3, fun, function(a) { + return function(b) { return function(c) { return fun(a, b, c); }; }; + }); +} +function F4(fun) { + return F(4, fun, function(a) { return function(b) { return function(c) { + return function(d) { return fun(a, b, c, d); }; }; }; + }); +} +function F5(fun) { + return F(5, fun, function(a) { return function(b) { return function(c) { + return function(d) { return function(e) { return fun(a, b, c, d, e); }; }; }; }; + }); +} +function F6(fun) { + return F(6, fun, function(a) { return function(b) { return function(c) { + return function(d) { return function(e) { return function(f) { + return fun(a, b, c, d, e, f); }; }; }; }; }; + }); +} +function F7(fun) { + return F(7, fun, function(a) { return function(b) { return function(c) { + return function(d) { return function(e) { return function(f) { + return function(g) { return fun(a, b, c, d, e, f, g); }; }; }; }; }; }; + }); +} +function F8(fun) { + return F(8, fun, function(a) { return function(b) { return function(c) { + return function(d) { return function(e) { return function(f) { + return function(g) { return function(h) { + return fun(a, b, c, d, e, f, g, h); }; }; }; }; }; }; }; + }); +} +function F9(fun) { + return F(9, fun, function(a) { return function(b) { return function(c) { + return function(d) { return function(e) { return function(f) { + return function(g) { return function(h) { return function(i) { + return fun(a, b, c, d, e, f, g, h, i); }; }; }; }; }; }; }; }; + }); +} + +function A2(fun, a, b) { + return fun.a === 2 ? fun.f(a, b) : fun(a)(b); +} +function A3(fun, a, b, c) { + return fun.a === 3 ? fun.f(a, b, c) : fun(a)(b)(c); +} +function A4(fun, a, b, c, d) { + return fun.a === 4 ? fun.f(a, b, c, d) : fun(a)(b)(c)(d); +} +function A5(fun, a, b, c, d, e) { + return fun.a === 5 ? fun.f(a, b, c, d, e) : fun(a)(b)(c)(d)(e); +} +function A6(fun, a, b, c, d, e, f) { + return fun.a === 6 ? fun.f(a, b, c, d, e, f) : fun(a)(b)(c)(d)(e)(f); +} +function A7(fun, a, b, c, d, e, f, g) { + return fun.a === 7 ? fun.f(a, b, c, d, e, f, g) : fun(a)(b)(c)(d)(e)(f)(g); +} +function A8(fun, a, b, c, d, e, f, g, h) { + return fun.a === 8 ? fun.f(a, b, c, d, e, f, g, h) : fun(a)(b)(c)(d)(e)(f)(g)(h); +} +function A9(fun, a, b, c, d, e, f, g, h, i) { + return fun.a === 9 ? fun.f(a, b, c, d, e, f, g, h, i) : fun(a)(b)(c)(d)(e)(f)(g)(h)(i); +} + +console.warn('Compiled in DEV mode. Follow the advice at https://elm-lang.org/0.19.1/optimize for better performance and smaller assets.'); + + +// EQUALITY + +function _Utils_eq(x, y) +{ + for ( + var pair, stack = [], isEqual = _Utils_eqHelp(x, y, 0, stack); + isEqual && (pair = stack.pop()); + isEqual = _Utils_eqHelp(pair.a, pair.b, 0, stack) + ) + {} + + return isEqual; +} + +function _Utils_eqHelp(x, y, depth, stack) +{ + if (x === y) + { + return true; + } + + if (typeof x !== 'object' || x === null || y === null) + { + typeof x === 'function' && _Debug_crash(5); + return false; + } + + if (depth > 100) + { + stack.push(_Utils_Tuple2(x,y)); + return true; + } + + /**/ + if (x.$ === 'Set_elm_builtin') + { + x = $elm$core$Set$toList(x); + y = $elm$core$Set$toList(y); + } + if (x.$ === 'RBNode_elm_builtin' || x.$ === 'RBEmpty_elm_builtin') + { + x = $elm$core$Dict$toList(x); + y = $elm$core$Dict$toList(y); + } + //*/ + + /**_UNUSED/ + if (x.$ < 0) + { + x = $elm$core$Dict$toList(x); + y = $elm$core$Dict$toList(y); + } + //*/ + + for (var key in x) + { + if (!_Utils_eqHelp(x[key], y[key], depth + 1, stack)) + { + return false; + } + } + return true; +} + +var _Utils_equal = F2(_Utils_eq); +var _Utils_notEqual = F2(function(a, b) { return !_Utils_eq(a,b); }); + + + +// COMPARISONS + +// Code in Generate/JavaScript.hs, Basics.js, and List.js depends on +// the particular integer values assigned to LT, EQ, and GT. + +function _Utils_cmp(x, y, ord) +{ + if (typeof x !== 'object') + { + return x === y ? /*EQ*/ 0 : x < y ? /*LT*/ -1 : /*GT*/ 1; + } + + /**/ + if (x instanceof String) + { + var a = x.valueOf(); + var b = y.valueOf(); + return a === b ? 0 : a < b ? -1 : 1; + } + //*/ + + /**_UNUSED/ + if (typeof x.$ === 'undefined') + //*/ + /**/ + if (x.$[0] === '#') + //*/ + { + return (ord = _Utils_cmp(x.a, y.a)) + ? ord + : (ord = _Utils_cmp(x.b, y.b)) + ? ord + : _Utils_cmp(x.c, y.c); + } + + // traverse conses until end of a list or a mismatch + for (; x.b && y.b && !(ord = _Utils_cmp(x.a, y.a)); x = x.b, y = y.b) {} // WHILE_CONSES + return ord || (x.b ? /*GT*/ 1 : y.b ? /*LT*/ -1 : /*EQ*/ 0); +} + +var _Utils_lt = F2(function(a, b) { return _Utils_cmp(a, b) < 0; }); +var _Utils_le = F2(function(a, b) { return _Utils_cmp(a, b) < 1; }); +var _Utils_gt = F2(function(a, b) { return _Utils_cmp(a, b) > 0; }); +var _Utils_ge = F2(function(a, b) { return _Utils_cmp(a, b) >= 0; }); + +var _Utils_compare = F2(function(x, y) +{ + var n = _Utils_cmp(x, y); + return n < 0 ? $elm$core$Basics$LT : n ? $elm$core$Basics$GT : $elm$core$Basics$EQ; +}); + + +// COMMON VALUES + +var _Utils_Tuple0_UNUSED = 0; +var _Utils_Tuple0 = { $: '#0' }; + +function _Utils_Tuple2_UNUSED(a, b) { return { a: a, b: b }; } +function _Utils_Tuple2(a, b) { return { $: '#2', a: a, b: b }; } + +function _Utils_Tuple3_UNUSED(a, b, c) { return { a: a, b: b, c: c }; } +function _Utils_Tuple3(a, b, c) { return { $: '#3', a: a, b: b, c: c }; } + +function _Utils_chr_UNUSED(c) { return c; } +function _Utils_chr(c) { return new String(c); } + + +// RECORDS + +function _Utils_update(oldRecord, updatedFields) +{ + var newRecord = {}; + + for (var key in oldRecord) + { + newRecord[key] = oldRecord[key]; + } + + for (var key in updatedFields) + { + newRecord[key] = updatedFields[key]; + } + + return newRecord; +} + + +// APPEND + +var _Utils_append = F2(_Utils_ap); + +function _Utils_ap(xs, ys) +{ + // append Strings + if (typeof xs === 'string') + { + return xs + ys; + } + + // append Lists + if (!xs.b) + { + return ys; + } + var root = _List_Cons(xs.a, ys); + xs = xs.b + for (var curr = root; xs.b; xs = xs.b) // WHILE_CONS + { + curr = curr.b = _List_Cons(xs.a, ys); + } + return root; +} + + + +var _List_Nil_UNUSED = { $: 0 }; +var _List_Nil = { $: '[]' }; + +function _List_Cons_UNUSED(hd, tl) { return { $: 1, a: hd, b: tl }; } +function _List_Cons(hd, tl) { return { $: '::', a: hd, b: tl }; } + + +var _List_cons = F2(_List_Cons); + +function _List_fromArray(arr) +{ + var out = _List_Nil; + for (var i = arr.length; i--; ) + { + out = _List_Cons(arr[i], out); + } + return out; +} + +function _List_toArray(xs) +{ + for (var out = []; xs.b; xs = xs.b) // WHILE_CONS + { + out.push(xs.a); + } + return out; +} + +var _List_map2 = F3(function(f, xs, ys) +{ + for (var arr = []; xs.b && ys.b; xs = xs.b, ys = ys.b) // WHILE_CONSES + { + arr.push(A2(f, xs.a, ys.a)); + } + return _List_fromArray(arr); +}); + +var _List_map3 = F4(function(f, xs, ys, zs) +{ + for (var arr = []; xs.b && ys.b && zs.b; xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES + { + arr.push(A3(f, xs.a, ys.a, zs.a)); + } + return _List_fromArray(arr); +}); + +var _List_map4 = F5(function(f, ws, xs, ys, zs) +{ + for (var arr = []; ws.b && xs.b && ys.b && zs.b; ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES + { + arr.push(A4(f, ws.a, xs.a, ys.a, zs.a)); + } + return _List_fromArray(arr); +}); + +var _List_map5 = F6(function(f, vs, ws, xs, ys, zs) +{ + for (var arr = []; vs.b && ws.b && xs.b && ys.b && zs.b; vs = vs.b, ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES + { + arr.push(A5(f, vs.a, ws.a, xs.a, ys.a, zs.a)); + } + return _List_fromArray(arr); +}); + +var _List_sortBy = F2(function(f, xs) +{ + return _List_fromArray(_List_toArray(xs).sort(function(a, b) { + return _Utils_cmp(f(a), f(b)); + })); +}); + +var _List_sortWith = F2(function(f, xs) +{ + return _List_fromArray(_List_toArray(xs).sort(function(a, b) { + var ord = A2(f, a, b); + return ord === $elm$core$Basics$EQ ? 0 : ord === $elm$core$Basics$LT ? -1 : 1; + })); +}); + + + +var _JsArray_empty = []; + +function _JsArray_singleton(value) +{ + return [value]; +} + +function _JsArray_length(array) +{ + return array.length; +} + +var _JsArray_initialize = F3(function(size, offset, func) +{ + var result = new Array(size); + + for (var i = 0; i < size; i++) + { + result[i] = func(offset + i); + } + + return result; +}); + +var _JsArray_initializeFromList = F2(function (max, ls) +{ + var result = new Array(max); + + for (var i = 0; i < max && ls.b; i++) + { + result[i] = ls.a; + ls = ls.b; + } + + result.length = i; + return _Utils_Tuple2(result, ls); +}); + +var _JsArray_unsafeGet = F2(function(index, array) +{ + return array[index]; +}); + +var _JsArray_unsafeSet = F3(function(index, value, array) +{ + var length = array.length; + var result = new Array(length); + + for (var i = 0; i < length; i++) + { + result[i] = array[i]; + } + + result[index] = value; + return result; +}); + +var _JsArray_push = F2(function(value, array) +{ + var length = array.length; + var result = new Array(length + 1); + + for (var i = 0; i < length; i++) + { + result[i] = array[i]; + } + + result[length] = value; + return result; +}); + +var _JsArray_foldl = F3(function(func, acc, array) +{ + var length = array.length; + + for (var i = 0; i < length; i++) + { + acc = A2(func, array[i], acc); + } + + return acc; +}); + +var _JsArray_foldr = F3(function(func, acc, array) +{ + for (var i = array.length - 1; i >= 0; i--) + { + acc = A2(func, array[i], acc); + } + + return acc; +}); + +var _JsArray_map = F2(function(func, array) +{ + var length = array.length; + var result = new Array(length); + + for (var i = 0; i < length; i++) + { + result[i] = func(array[i]); + } + + return result; +}); + +var _JsArray_indexedMap = F3(function(func, offset, array) +{ + var length = array.length; + var result = new Array(length); + + for (var i = 0; i < length; i++) + { + result[i] = A2(func, offset + i, array[i]); + } + + return result; +}); + +var _JsArray_slice = F3(function(from, to, array) +{ + return array.slice(from, to); +}); + +var _JsArray_appendN = F3(function(n, dest, source) +{ + var destLen = dest.length; + var itemsToCopy = n - destLen; + + if (itemsToCopy > source.length) + { + itemsToCopy = source.length; + } + + var size = destLen + itemsToCopy; + var result = new Array(size); + + for (var i = 0; i < destLen; i++) + { + result[i] = dest[i]; + } + + for (var i = 0; i < itemsToCopy; i++) + { + result[i + destLen] = source[i]; + } + + return result; +}); + + + +// LOG + +var _Debug_log_UNUSED = F2(function(tag, value) +{ + return value; +}); + +var _Debug_log = F2(function(tag, value) +{ + console.log(tag + ': ' + _Debug_toString(value)); + return value; +}); + + +// TODOS + +function _Debug_todo(moduleName, region) +{ + return function(message) { + _Debug_crash(8, moduleName, region, message); + }; +} + +function _Debug_todoCase(moduleName, region, value) +{ + return function(message) { + _Debug_crash(9, moduleName, region, value, message); + }; +} + + +// TO STRING + +function _Debug_toString_UNUSED(value) +{ + return ''; +} + +function _Debug_toString(value) +{ + return _Debug_toAnsiString(false, value); +} + +function _Debug_toAnsiString(ansi, value) +{ + if (typeof value === 'function') + { + return _Debug_internalColor(ansi, ''); + } + + if (typeof value === 'boolean') + { + return _Debug_ctorColor(ansi, value ? 'True' : 'False'); + } + + if (typeof value === 'number') + { + return _Debug_numberColor(ansi, value + ''); + } + + if (value instanceof String) + { + return _Debug_charColor(ansi, "'" + _Debug_addSlashes(value, true) + "'"); + } + + if (typeof value === 'string') + { + return _Debug_stringColor(ansi, '"' + _Debug_addSlashes(value, false) + '"'); + } + + if (typeof value === 'object' && '$' in value) + { + var tag = value.$; + + if (typeof tag === 'number') + { + return _Debug_internalColor(ansi, ''); + } + + if (tag[0] === '#') + { + var output = []; + for (var k in value) + { + if (k === '$') continue; + output.push(_Debug_toAnsiString(ansi, value[k])); + } + return '(' + output.join(',') + ')'; + } + + if (tag === 'Set_elm_builtin') + { + return _Debug_ctorColor(ansi, 'Set') + + _Debug_fadeColor(ansi, '.fromList') + ' ' + + _Debug_toAnsiString(ansi, $elm$core$Set$toList(value)); + } + + if (tag === 'RBNode_elm_builtin' || tag === 'RBEmpty_elm_builtin') + { + return _Debug_ctorColor(ansi, 'Dict') + + _Debug_fadeColor(ansi, '.fromList') + ' ' + + _Debug_toAnsiString(ansi, $elm$core$Dict$toList(value)); + } + + if (tag === 'Array_elm_builtin') + { + return _Debug_ctorColor(ansi, 'Array') + + _Debug_fadeColor(ansi, '.fromList') + ' ' + + _Debug_toAnsiString(ansi, $elm$core$Array$toList(value)); + } + + if (tag === '::' || tag === '[]') + { + var output = '['; + + value.b && (output += _Debug_toAnsiString(ansi, value.a), value = value.b) + + for (; value.b; value = value.b) // WHILE_CONS + { + output += ',' + _Debug_toAnsiString(ansi, value.a); + } + return output + ']'; + } + + var output = ''; + for (var i in value) + { + if (i === '$') continue; + var str = _Debug_toAnsiString(ansi, value[i]); + var c0 = str[0]; + var parenless = c0 === '{' || c0 === '(' || c0 === '[' || c0 === '<' || c0 === '"' || str.indexOf(' ') < 0; + output += ' ' + (parenless ? str : '(' + str + ')'); + } + return _Debug_ctorColor(ansi, tag) + output; + } + + if (typeof DataView === 'function' && value instanceof DataView) + { + return _Debug_stringColor(ansi, '<' + value.byteLength + ' bytes>'); + } + + if (typeof File !== 'undefined' && value instanceof File) + { + return _Debug_internalColor(ansi, '<' + value.name + '>'); + } + + if (typeof value === 'object') + { + var output = []; + for (var key in value) + { + var field = key[0] === '_' ? key.slice(1) : key; + output.push(_Debug_fadeColor(ansi, field) + ' = ' + _Debug_toAnsiString(ansi, value[key])); + } + if (output.length === 0) + { + return '{}'; + } + return '{ ' + output.join(', ') + ' }'; + } + + return _Debug_internalColor(ansi, ''); +} + +function _Debug_addSlashes(str, isChar) +{ + var s = str + .replace(/\\/g, '\\\\') + .replace(/\n/g, '\\n') + .replace(/\t/g, '\\t') + .replace(/\r/g, '\\r') + .replace(/\v/g, '\\v') + .replace(/\0/g, '\\0'); + + if (isChar) + { + return s.replace(/\'/g, '\\\''); + } + else + { + return s.replace(/\"/g, '\\"'); + } +} + +function _Debug_ctorColor(ansi, string) +{ + return ansi ? '\x1b[96m' + string + '\x1b[0m' : string; +} + +function _Debug_numberColor(ansi, string) +{ + return ansi ? '\x1b[95m' + string + '\x1b[0m' : string; +} + +function _Debug_stringColor(ansi, string) +{ + return ansi ? '\x1b[93m' + string + '\x1b[0m' : string; +} + +function _Debug_charColor(ansi, string) +{ + return ansi ? '\x1b[92m' + string + '\x1b[0m' : string; +} + +function _Debug_fadeColor(ansi, string) +{ + return ansi ? '\x1b[37m' + string + '\x1b[0m' : string; +} + +function _Debug_internalColor(ansi, string) +{ + return ansi ? '\x1b[36m' + string + '\x1b[0m' : string; +} + +function _Debug_toHexDigit(n) +{ + return String.fromCharCode(n < 10 ? 48 + n : 55 + n); +} + + +// CRASH + + +function _Debug_crash_UNUSED(identifier) +{ + throw new Error('https://github.com/elm/core/blob/1.0.0/hints/' + identifier + '.md'); +} + + +function _Debug_crash(identifier, fact1, fact2, fact3, fact4) +{ + switch(identifier) + { + case 0: + throw new Error('What node should I take over? In JavaScript I need something like:\n\n Elm.Main.init({\n node: document.getElementById("elm-node")\n })\n\nYou need to do this with any Browser.sandbox or Browser.element program.'); + + case 1: + throw new Error('Browser.application programs cannot handle URLs like this:\n\n ' + document.location.href + '\n\nWhat is the root? The root of your file system? Try looking at this program with `elm reactor` or some other server.'); + + case 2: + var jsonErrorString = fact1; + throw new Error('Problem with the flags given to your Elm program on initialization.\n\n' + jsonErrorString); + + case 3: + var portName = fact1; + throw new Error('There can only be one port named `' + portName + '`, but your program has multiple.'); + + case 4: + var portName = fact1; + var problem = fact2; + throw new Error('Trying to send an unexpected type of value through port `' + portName + '`:\n' + problem); + + case 5: + throw new Error('Trying to use `(==)` on functions.\nThere is no way to know if functions are "the same" in the Elm sense.\nRead more about this at https://package.elm-lang.org/packages/elm/core/latest/Basics#== which describes why it is this way and what the better version will look like.'); + + case 6: + var moduleName = fact1; + throw new Error('Your page is loading multiple Elm scripts with a module named ' + moduleName + '. Maybe a duplicate script is getting loaded accidentally? If not, rename one of them so I know which is which!'); + + case 8: + var moduleName = fact1; + var region = fact2; + var message = fact3; + throw new Error('TODO in module `' + moduleName + '` ' + _Debug_regionToString(region) + '\n\n' + message); + + case 9: + var moduleName = fact1; + var region = fact2; + var value = fact3; + var message = fact4; + throw new Error( + 'TODO in module `' + moduleName + '` from the `case` expression ' + + _Debug_regionToString(region) + '\n\nIt received the following value:\n\n ' + + _Debug_toString(value).replace('\n', '\n ') + + '\n\nBut the branch that handles it says:\n\n ' + message.replace('\n', '\n ') + ); + + case 10: + throw new Error('Bug in https://github.com/elm/virtual-dom/issues'); + + case 11: + throw new Error('Cannot perform mod 0. Division by zero error.'); + } +} + +function _Debug_regionToString(region) +{ + if (region.start.line === region.end.line) + { + return 'on line ' + region.start.line; + } + return 'on lines ' + region.start.line + ' through ' + region.end.line; +} + + + +// MATH + +var _Basics_add = F2(function(a, b) { return a + b; }); +var _Basics_sub = F2(function(a, b) { return a - b; }); +var _Basics_mul = F2(function(a, b) { return a * b; }); +var _Basics_fdiv = F2(function(a, b) { return a / b; }); +var _Basics_idiv = F2(function(a, b) { return (a / b) | 0; }); +var _Basics_pow = F2(Math.pow); + +var _Basics_remainderBy = F2(function(b, a) { return a % b; }); + +// https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/divmodnote-letter.pdf +var _Basics_modBy = F2(function(modulus, x) +{ + var answer = x % modulus; + return modulus === 0 + ? _Debug_crash(11) + : + ((answer > 0 && modulus < 0) || (answer < 0 && modulus > 0)) + ? answer + modulus + : answer; +}); + + +// TRIGONOMETRY + +var _Basics_pi = Math.PI; +var _Basics_e = Math.E; +var _Basics_cos = Math.cos; +var _Basics_sin = Math.sin; +var _Basics_tan = Math.tan; +var _Basics_acos = Math.acos; +var _Basics_asin = Math.asin; +var _Basics_atan = Math.atan; +var _Basics_atan2 = F2(Math.atan2); + + +// MORE MATH + +function _Basics_toFloat(x) { return x; } +function _Basics_truncate(n) { return n | 0; } +function _Basics_isInfinite(n) { return n === Infinity || n === -Infinity; } + +var _Basics_ceiling = Math.ceil; +var _Basics_floor = Math.floor; +var _Basics_round = Math.round; +var _Basics_sqrt = Math.sqrt; +var _Basics_log = Math.log; +var _Basics_isNaN = isNaN; + + +// BOOLEANS + +function _Basics_not(bool) { return !bool; } +var _Basics_and = F2(function(a, b) { return a && b; }); +var _Basics_or = F2(function(a, b) { return a || b; }); +var _Basics_xor = F2(function(a, b) { return a !== b; }); + + + +var _String_cons = F2(function(chr, str) +{ + return chr + str; +}); + +function _String_uncons(string) +{ + var word = string.charCodeAt(0); + return !isNaN(word) + ? $elm$core$Maybe$Just( + 0xD800 <= word && word <= 0xDBFF + ? _Utils_Tuple2(_Utils_chr(string[0] + string[1]), string.slice(2)) + : _Utils_Tuple2(_Utils_chr(string[0]), string.slice(1)) + ) + : $elm$core$Maybe$Nothing; +} + +var _String_append = F2(function(a, b) +{ + return a + b; +}); + +function _String_length(str) +{ + return str.length; +} + +var _String_map = F2(function(func, string) +{ + var len = string.length; + var array = new Array(len); + var i = 0; + while (i < len) + { + var word = string.charCodeAt(i); + if (0xD800 <= word && word <= 0xDBFF) + { + array[i] = func(_Utils_chr(string[i] + string[i+1])); + i += 2; + continue; + } + array[i] = func(_Utils_chr(string[i])); + i++; + } + return array.join(''); +}); + +var _String_filter = F2(function(isGood, str) +{ + var arr = []; + var len = str.length; + var i = 0; + while (i < len) + { + var char = str[i]; + var word = str.charCodeAt(i); + i++; + if (0xD800 <= word && word <= 0xDBFF) + { + char += str[i]; + i++; + } + + if (isGood(_Utils_chr(char))) + { + arr.push(char); + } + } + return arr.join(''); +}); + +function _String_reverse(str) +{ + var len = str.length; + var arr = new Array(len); + var i = 0; + while (i < len) + { + var word = str.charCodeAt(i); + if (0xD800 <= word && word <= 0xDBFF) + { + arr[len - i] = str[i + 1]; + i++; + arr[len - i] = str[i - 1]; + i++; + } + else + { + arr[len - i] = str[i]; + i++; + } + } + return arr.join(''); +} + +var _String_foldl = F3(function(func, state, string) +{ + var len = string.length; + var i = 0; + while (i < len) + { + var char = string[i]; + var word = string.charCodeAt(i); + i++; + if (0xD800 <= word && word <= 0xDBFF) + { + char += string[i]; + i++; + } + state = A2(func, _Utils_chr(char), state); + } + return state; +}); + +var _String_foldr = F3(function(func, state, string) +{ + var i = string.length; + while (i--) + { + var char = string[i]; + var word = string.charCodeAt(i); + if (0xDC00 <= word && word <= 0xDFFF) + { + i--; + char = string[i] + char; + } + state = A2(func, _Utils_chr(char), state); + } + return state; +}); + +var _String_split = F2(function(sep, str) +{ + return str.split(sep); +}); + +var _String_join = F2(function(sep, strs) +{ + return strs.join(sep); +}); + +var _String_slice = F3(function(start, end, str) { + return str.slice(start, end); +}); + +function _String_trim(str) +{ + return str.trim(); +} + +function _String_trimLeft(str) +{ + return str.replace(/^\s+/, ''); +} + +function _String_trimRight(str) +{ + return str.replace(/\s+$/, ''); +} + +function _String_words(str) +{ + return _List_fromArray(str.trim().split(/\s+/g)); +} + +function _String_lines(str) +{ + return _List_fromArray(str.split(/\r\n|\r|\n/g)); +} + +function _String_toUpper(str) +{ + return str.toUpperCase(); +} + +function _String_toLower(str) +{ + return str.toLowerCase(); +} + +var _String_any = F2(function(isGood, string) +{ + var i = string.length; + while (i--) + { + var char = string[i]; + var word = string.charCodeAt(i); + if (0xDC00 <= word && word <= 0xDFFF) + { + i--; + char = string[i] + char; + } + if (isGood(_Utils_chr(char))) + { + return true; + } + } + return false; +}); + +var _String_all = F2(function(isGood, string) +{ + var i = string.length; + while (i--) + { + var char = string[i]; + var word = string.charCodeAt(i); + if (0xDC00 <= word && word <= 0xDFFF) + { + i--; + char = string[i] + char; + } + if (!isGood(_Utils_chr(char))) + { + return false; + } + } + return true; +}); + +var _String_contains = F2(function(sub, str) +{ + return str.indexOf(sub) > -1; +}); + +var _String_startsWith = F2(function(sub, str) +{ + return str.indexOf(sub) === 0; +}); + +var _String_endsWith = F2(function(sub, str) +{ + return str.length >= sub.length && + str.lastIndexOf(sub) === str.length - sub.length; +}); + +var _String_indexes = F2(function(sub, str) +{ + var subLen = sub.length; + + if (subLen < 1) + { + return _List_Nil; + } + + var i = 0; + var is = []; + + while ((i = str.indexOf(sub, i)) > -1) + { + is.push(i); + i = i + subLen; + } + + return _List_fromArray(is); +}); + + +// TO STRING + +function _String_fromNumber(number) +{ + return number + ''; +} + + +// INT CONVERSIONS + +function _String_toInt(str) +{ + var total = 0; + var code0 = str.charCodeAt(0); + var start = code0 == 0x2B /* + */ || code0 == 0x2D /* - */ ? 1 : 0; + + for (var i = start; i < str.length; ++i) + { + var code = str.charCodeAt(i); + if (code < 0x30 || 0x39 < code) + { + return $elm$core$Maybe$Nothing; + } + total = 10 * total + code - 0x30; + } + + return i == start + ? $elm$core$Maybe$Nothing + : $elm$core$Maybe$Just(code0 == 0x2D ? -total : total); +} + + +// FLOAT CONVERSIONS + +function _String_toFloat(s) +{ + // check if it is a hex, octal, or binary number + if (s.length === 0 || /[\sxbo]/.test(s)) + { + return $elm$core$Maybe$Nothing; + } + var n = +s; + // faster isNaN check + return n === n ? $elm$core$Maybe$Just(n) : $elm$core$Maybe$Nothing; +} + +function _String_fromList(chars) +{ + return _List_toArray(chars).join(''); +} + + + + +function _Char_toCode(char) +{ + var code = char.charCodeAt(0); + if (0xD800 <= code && code <= 0xDBFF) + { + return (code - 0xD800) * 0x400 + char.charCodeAt(1) - 0xDC00 + 0x10000 + } + return code; +} + +function _Char_fromCode(code) +{ + return _Utils_chr( + (code < 0 || 0x10FFFF < code) + ? '\uFFFD' + : + (code <= 0xFFFF) + ? String.fromCharCode(code) + : + (code -= 0x10000, + String.fromCharCode(Math.floor(code / 0x400) + 0xD800, code % 0x400 + 0xDC00) + ) + ); +} + +function _Char_toUpper(char) +{ + return _Utils_chr(char.toUpperCase()); +} + +function _Char_toLower(char) +{ + return _Utils_chr(char.toLowerCase()); +} + +function _Char_toLocaleUpper(char) +{ + return _Utils_chr(char.toLocaleUpperCase()); +} + +function _Char_toLocaleLower(char) +{ + return _Utils_chr(char.toLocaleLowerCase()); +} + + + +/**/ +function _Json_errorToString(error) +{ + return $elm$json$Json$Decode$errorToString(error); +} +//*/ + + +// CORE DECODERS + +function _Json_succeed(msg) +{ + return { + $: 0, + a: msg + }; +} + +function _Json_fail(msg) +{ + return { + $: 1, + a: msg + }; +} + +function _Json_decodePrim(decoder) +{ + return { $: 2, b: decoder }; +} + +var _Json_decodeInt = _Json_decodePrim(function(value) { + return (typeof value !== 'number') + ? _Json_expecting('an INT', value) + : + (-2147483647 < value && value < 2147483647 && (value | 0) === value) + ? $elm$core$Result$Ok(value) + : + (isFinite(value) && !(value % 1)) + ? $elm$core$Result$Ok(value) + : _Json_expecting('an INT', value); +}); + +var _Json_decodeBool = _Json_decodePrim(function(value) { + return (typeof value === 'boolean') + ? $elm$core$Result$Ok(value) + : _Json_expecting('a BOOL', value); +}); + +var _Json_decodeFloat = _Json_decodePrim(function(value) { + return (typeof value === 'number') + ? $elm$core$Result$Ok(value) + : _Json_expecting('a FLOAT', value); +}); + +var _Json_decodeValue = _Json_decodePrim(function(value) { + return $elm$core$Result$Ok(_Json_wrap(value)); +}); + +var _Json_decodeString = _Json_decodePrim(function(value) { + return (typeof value === 'string') + ? $elm$core$Result$Ok(value) + : (value instanceof String) + ? $elm$core$Result$Ok(value + '') + : _Json_expecting('a STRING', value); +}); + +function _Json_decodeList(decoder) { return { $: 3, b: decoder }; } +function _Json_decodeArray(decoder) { return { $: 4, b: decoder }; } + +function _Json_decodeNull(value) { return { $: 5, c: value }; } + +var _Json_decodeField = F2(function(field, decoder) +{ + return { + $: 6, + d: field, + b: decoder + }; +}); + +var _Json_decodeIndex = F2(function(index, decoder) +{ + return { + $: 7, + e: index, + b: decoder + }; +}); + +function _Json_decodeKeyValuePairs(decoder) +{ + return { + $: 8, + b: decoder + }; +} + +function _Json_mapMany(f, decoders) +{ + return { + $: 9, + f: f, + g: decoders + }; +} + +var _Json_andThen = F2(function(callback, decoder) +{ + return { + $: 10, + b: decoder, + h: callback + }; +}); + +function _Json_oneOf(decoders) +{ + return { + $: 11, + g: decoders + }; +} + + +// DECODING OBJECTS + +var _Json_map1 = F2(function(f, d1) +{ + return _Json_mapMany(f, [d1]); +}); + +var _Json_map2 = F3(function(f, d1, d2) +{ + return _Json_mapMany(f, [d1, d2]); +}); + +var _Json_map3 = F4(function(f, d1, d2, d3) +{ + return _Json_mapMany(f, [d1, d2, d3]); +}); + +var _Json_map4 = F5(function(f, d1, d2, d3, d4) +{ + return _Json_mapMany(f, [d1, d2, d3, d4]); +}); + +var _Json_map5 = F6(function(f, d1, d2, d3, d4, d5) +{ + return _Json_mapMany(f, [d1, d2, d3, d4, d5]); +}); + +var _Json_map6 = F7(function(f, d1, d2, d3, d4, d5, d6) +{ + return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6]); +}); + +var _Json_map7 = F8(function(f, d1, d2, d3, d4, d5, d6, d7) +{ + return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7]); +}); + +var _Json_map8 = F9(function(f, d1, d2, d3, d4, d5, d6, d7, d8) +{ + return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7, d8]); +}); + + +// DECODE + +var _Json_runOnString = F2(function(decoder, string) +{ + try + { + var value = JSON.parse(string); + return _Json_runHelp(decoder, value); + } + catch (e) + { + return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, 'This is not valid JSON! ' + e.message, _Json_wrap(string))); + } +}); + +var _Json_run = F2(function(decoder, value) +{ + return _Json_runHelp(decoder, _Json_unwrap(value)); +}); + +function _Json_runHelp(decoder, value) +{ + switch (decoder.$) + { + case 2: + return decoder.b(value); + + case 5: + return (value === null) + ? $elm$core$Result$Ok(decoder.c) + : _Json_expecting('null', value); + + case 3: + if (!_Json_isArray(value)) + { + return _Json_expecting('a LIST', value); + } + return _Json_runArrayDecoder(decoder.b, value, _List_fromArray); + + case 4: + if (!_Json_isArray(value)) + { + return _Json_expecting('an ARRAY', value); + } + return _Json_runArrayDecoder(decoder.b, value, _Json_toElmArray); + + case 6: + var field = decoder.d; + if (typeof value !== 'object' || value === null || !(field in value)) + { + return _Json_expecting('an OBJECT with a field named `' + field + '`', value); + } + var result = _Json_runHelp(decoder.b, value[field]); + return ($elm$core$Result$isOk(result)) ? result : $elm$core$Result$Err(A2($elm$json$Json$Decode$Field, field, result.a)); + + case 7: + var index = decoder.e; + if (!_Json_isArray(value)) + { + return _Json_expecting('an ARRAY', value); + } + if (index >= value.length) + { + return _Json_expecting('a LONGER array. Need index ' + index + ' but only see ' + value.length + ' entries', value); + } + var result = _Json_runHelp(decoder.b, value[index]); + return ($elm$core$Result$isOk(result)) ? result : $elm$core$Result$Err(A2($elm$json$Json$Decode$Index, index, result.a)); + + case 8: + if (typeof value !== 'object' || value === null || _Json_isArray(value)) + { + return _Json_expecting('an OBJECT', value); + } + + var keyValuePairs = _List_Nil; + // TODO test perf of Object.keys and switch when support is good enough + for (var key in value) + { + if (value.hasOwnProperty(key)) + { + var result = _Json_runHelp(decoder.b, value[key]); + if (!$elm$core$Result$isOk(result)) + { + return $elm$core$Result$Err(A2($elm$json$Json$Decode$Field, key, result.a)); + } + keyValuePairs = _List_Cons(_Utils_Tuple2(key, result.a), keyValuePairs); + } + } + return $elm$core$Result$Ok($elm$core$List$reverse(keyValuePairs)); + + case 9: + var answer = decoder.f; + var decoders = decoder.g; + for (var i = 0; i < decoders.length; i++) + { + var result = _Json_runHelp(decoders[i], value); + if (!$elm$core$Result$isOk(result)) + { + return result; + } + answer = answer(result.a); + } + return $elm$core$Result$Ok(answer); + + case 10: + var result = _Json_runHelp(decoder.b, value); + return (!$elm$core$Result$isOk(result)) + ? result + : _Json_runHelp(decoder.h(result.a), value); + + case 11: + var errors = _List_Nil; + for (var temp = decoder.g; temp.b; temp = temp.b) // WHILE_CONS + { + var result = _Json_runHelp(temp.a, value); + if ($elm$core$Result$isOk(result)) + { + return result; + } + errors = _List_Cons(result.a, errors); + } + return $elm$core$Result$Err($elm$json$Json$Decode$OneOf($elm$core$List$reverse(errors))); + + case 1: + return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, decoder.a, _Json_wrap(value))); + + case 0: + return $elm$core$Result$Ok(decoder.a); + } +} + +function _Json_runArrayDecoder(decoder, value, toElmValue) +{ + var len = value.length; + var array = new Array(len); + for (var i = 0; i < len; i++) + { + var result = _Json_runHelp(decoder, value[i]); + if (!$elm$core$Result$isOk(result)) + { + return $elm$core$Result$Err(A2($elm$json$Json$Decode$Index, i, result.a)); + } + array[i] = result.a; + } + return $elm$core$Result$Ok(toElmValue(array)); +} + +function _Json_isArray(value) +{ + return Array.isArray(value) || (typeof FileList !== 'undefined' && value instanceof FileList); +} + +function _Json_toElmArray(array) +{ + return A2($elm$core$Array$initialize, array.length, function(i) { return array[i]; }); +} + +function _Json_expecting(type, value) +{ + return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, 'Expecting ' + type, _Json_wrap(value))); +} + + +// EQUALITY + +function _Json_equality(x, y) +{ + if (x === y) + { + return true; + } + + if (x.$ !== y.$) + { + return false; + } + + switch (x.$) + { + case 0: + case 1: + return x.a === y.a; + + case 2: + return x.b === y.b; + + case 5: + return x.c === y.c; + + case 3: + case 4: + case 8: + return _Json_equality(x.b, y.b); + + case 6: + return x.d === y.d && _Json_equality(x.b, y.b); + + case 7: + return x.e === y.e && _Json_equality(x.b, y.b); + + case 9: + return x.f === y.f && _Json_listEquality(x.g, y.g); + + case 10: + return x.h === y.h && _Json_equality(x.b, y.b); + + case 11: + return _Json_listEquality(x.g, y.g); + } +} + +function _Json_listEquality(aDecoders, bDecoders) +{ + var len = aDecoders.length; + if (len !== bDecoders.length) + { + return false; + } + for (var i = 0; i < len; i++) + { + if (!_Json_equality(aDecoders[i], bDecoders[i])) + { + return false; + } + } + return true; +} + + +// ENCODE + +var _Json_encode = F2(function(indentLevel, value) +{ + return JSON.stringify(_Json_unwrap(value), null, indentLevel) + ''; +}); + +function _Json_wrap(value) { return { $: 0, a: value }; } +function _Json_unwrap(value) { return value.a; } + +function _Json_wrap_UNUSED(value) { return value; } +function _Json_unwrap_UNUSED(value) { return value; } + +function _Json_emptyArray() { return []; } +function _Json_emptyObject() { return {}; } + +var _Json_addField = F3(function(key, value, object) +{ + object[key] = _Json_unwrap(value); + return object; +}); + +function _Json_addEntry(func) +{ + return F2(function(entry, array) + { + array.push(_Json_unwrap(func(entry))); + return array; + }); +} + +var _Json_encodeNull = _Json_wrap(null); + + + +// TASKS + +function _Scheduler_succeed(value) +{ + return { + $: 0, + a: value + }; +} + +function _Scheduler_fail(error) +{ + return { + $: 1, + a: error + }; +} + +function _Scheduler_binding(callback) +{ + return { + $: 2, + b: callback, + c: null + }; +} + +var _Scheduler_andThen = F2(function(callback, task) +{ + return { + $: 3, + b: callback, + d: task + }; +}); + +var _Scheduler_onError = F2(function(callback, task) +{ + return { + $: 4, + b: callback, + d: task + }; +}); + +function _Scheduler_receive(callback) +{ + return { + $: 5, + b: callback + }; +} + + +// PROCESSES + +var _Scheduler_guid = 0; + +function _Scheduler_rawSpawn(task) +{ + var proc = { + $: 0, + e: _Scheduler_guid++, + f: task, + g: null, + h: [] + }; + + _Scheduler_enqueue(proc); + + return proc; +} + +function _Scheduler_spawn(task) +{ + return _Scheduler_binding(function(callback) { + callback(_Scheduler_succeed(_Scheduler_rawSpawn(task))); + }); +} + +function _Scheduler_rawSend(proc, msg) +{ + proc.h.push(msg); + _Scheduler_enqueue(proc); +} + +var _Scheduler_send = F2(function(proc, msg) +{ + return _Scheduler_binding(function(callback) { + _Scheduler_rawSend(proc, msg); + callback(_Scheduler_succeed(_Utils_Tuple0)); + }); +}); + +function _Scheduler_kill(proc) +{ + return _Scheduler_binding(function(callback) { + var task = proc.f; + if (task.$ === 2 && task.c) + { + task.c(); + } + + proc.f = null; + + callback(_Scheduler_succeed(_Utils_Tuple0)); + }); +} + + +/* STEP PROCESSES + +type alias Process = + { $ : tag + , id : unique_id + , root : Task + , stack : null | { $: SUCCEED | FAIL, a: callback, b: stack } + , mailbox : [msg] + } + +*/ + + +var _Scheduler_working = false; +var _Scheduler_queue = []; + + +function _Scheduler_enqueue(proc) +{ + _Scheduler_queue.push(proc); + if (_Scheduler_working) + { + return; + } + _Scheduler_working = true; + while (proc = _Scheduler_queue.shift()) + { + _Scheduler_step(proc); + } + _Scheduler_working = false; +} + + +function _Scheduler_step(proc) +{ + while (proc.f) + { + var rootTag = proc.f.$; + if (rootTag === 0 || rootTag === 1) + { + while (proc.g && proc.g.$ !== rootTag) + { + proc.g = proc.g.i; + } + if (!proc.g) + { + return; + } + proc.f = proc.g.b(proc.f.a); + proc.g = proc.g.i; + } + else if (rootTag === 2) + { + proc.f.c = proc.f.b(function(newRoot) { + proc.f = newRoot; + _Scheduler_enqueue(proc); + }); + return; + } + else if (rootTag === 5) + { + if (proc.h.length === 0) + { + return; + } + proc.f = proc.f.b(proc.h.shift()); + } + else // if (rootTag === 3 || rootTag === 4) + { + proc.g = { + $: rootTag === 3 ? 0 : 1, + b: proc.f.b, + i: proc.g + }; + proc.f = proc.f.d; + } + } +} + + + +function _Process_sleep(time) +{ + return _Scheduler_binding(function(callback) { + var id = setTimeout(function() { + callback(_Scheduler_succeed(_Utils_Tuple0)); + }, time); + + return function() { clearTimeout(id); }; + }); +} + + + + +// PROGRAMS + + +var _Platform_worker = F4(function(impl, flagDecoder, debugMetadata, args) +{ + return _Platform_initialize( + flagDecoder, + args, + impl.init, + impl.update, + impl.subscriptions, + function() { return function() {} } + ); +}); + + + +// INITIALIZE A PROGRAM + + +function _Platform_initialize(flagDecoder, args, init, update, subscriptions, stepperBuilder) +{ + var result = A2(_Json_run, flagDecoder, _Json_wrap(args ? args['flags'] : undefined)); + $elm$core$Result$isOk(result) || _Debug_crash(2 /**/, _Json_errorToString(result.a) /**/); + var managers = {}; + var initPair = init(result.a); + var model = initPair.a; + var stepper = stepperBuilder(sendToApp, model); + var ports = _Platform_setupEffects(managers, sendToApp); + + function sendToApp(msg, viewMetadata) + { + var pair = A2(update, msg, model); + stepper(model = pair.a, viewMetadata); + _Platform_enqueueEffects(managers, pair.b, subscriptions(model)); + } + + _Platform_enqueueEffects(managers, initPair.b, subscriptions(model)); + + return ports ? { ports: ports } : {}; +} + + + +// TRACK PRELOADS +// +// This is used by code in elm/browser and elm/http +// to register any HTTP requests that are triggered by init. +// + + +var _Platform_preload; + + +function _Platform_registerPreload(url) +{ + _Platform_preload.add(url); +} + + + +// EFFECT MANAGERS + + +var _Platform_effectManagers = {}; + + +function _Platform_setupEffects(managers, sendToApp) +{ + var ports; + + // setup all necessary effect managers + for (var key in _Platform_effectManagers) + { + var manager = _Platform_effectManagers[key]; + + if (manager.a) + { + ports = ports || {}; + ports[key] = manager.a(key, sendToApp); + } + + managers[key] = _Platform_instantiateManager(manager, sendToApp); + } + + return ports; +} + + +function _Platform_createManager(init, onEffects, onSelfMsg, cmdMap, subMap) +{ + return { + b: init, + c: onEffects, + d: onSelfMsg, + e: cmdMap, + f: subMap + }; +} + + +function _Platform_instantiateManager(info, sendToApp) +{ + var router = { + g: sendToApp, + h: undefined + }; + + var onEffects = info.c; + var onSelfMsg = info.d; + var cmdMap = info.e; + var subMap = info.f; + + function loop(state) + { + return A2(_Scheduler_andThen, loop, _Scheduler_receive(function(msg) + { + var value = msg.a; + + if (msg.$ === 0) + { + return A3(onSelfMsg, router, value, state); + } + + return cmdMap && subMap + ? A4(onEffects, router, value.i, value.j, state) + : A3(onEffects, router, cmdMap ? value.i : value.j, state); + })); + } + + return router.h = _Scheduler_rawSpawn(A2(_Scheduler_andThen, loop, info.b)); +} + + + +// ROUTING + + +var _Platform_sendToApp = F2(function(router, msg) +{ + return _Scheduler_binding(function(callback) + { + router.g(msg); + callback(_Scheduler_succeed(_Utils_Tuple0)); + }); +}); + + +var _Platform_sendToSelf = F2(function(router, msg) +{ + return A2(_Scheduler_send, router.h, { + $: 0, + a: msg + }); +}); + + + +// BAGS + + +function _Platform_leaf(home) +{ + return function(value) + { + return { + $: 1, + k: home, + l: value + }; + }; +} + + +function _Platform_batch(list) +{ + return { + $: 2, + m: list + }; +} + + +var _Platform_map = F2(function(tagger, bag) +{ + return { + $: 3, + n: tagger, + o: bag + } +}); + + + +// PIPE BAGS INTO EFFECT MANAGERS +// +// Effects must be queued! +// +// Say your init contains a synchronous command, like Time.now or Time.here +// +// - This will produce a batch of effects (FX_1) +// - The synchronous task triggers the subsequent `update` call +// - This will produce a batch of effects (FX_2) +// +// If we just start dispatching FX_2, subscriptions from FX_2 can be processed +// before subscriptions from FX_1. No good! Earlier versions of this code had +// this problem, leading to these reports: +// +// https://github.com/elm/core/issues/980 +// https://github.com/elm/core/pull/981 +// https://github.com/elm/compiler/issues/1776 +// +// The queue is necessary to avoid ordering issues for synchronous commands. + + +// Why use true/false here? Why not just check the length of the queue? +// The goal is to detect "are we currently dispatching effects?" If we +// are, we need to bail and let the ongoing while loop handle things. +// +// Now say the queue has 1 element. When we dequeue the final element, +// the queue will be empty, but we are still actively dispatching effects. +// So you could get queue jumping in a really tricky category of cases. +// +var _Platform_effectsQueue = []; +var _Platform_effectsActive = false; + + +function _Platform_enqueueEffects(managers, cmdBag, subBag) +{ + _Platform_effectsQueue.push({ p: managers, q: cmdBag, r: subBag }); + + if (_Platform_effectsActive) return; + + _Platform_effectsActive = true; + for (var fx; fx = _Platform_effectsQueue.shift(); ) + { + _Platform_dispatchEffects(fx.p, fx.q, fx.r); + } + _Platform_effectsActive = false; +} + + +function _Platform_dispatchEffects(managers, cmdBag, subBag) +{ + var effectsDict = {}; + _Platform_gatherEffects(true, cmdBag, effectsDict, null); + _Platform_gatherEffects(false, subBag, effectsDict, null); + + for (var home in managers) + { + _Scheduler_rawSend(managers[home], { + $: 'fx', + a: effectsDict[home] || { i: _List_Nil, j: _List_Nil } + }); + } +} + + +function _Platform_gatherEffects(isCmd, bag, effectsDict, taggers) +{ + switch (bag.$) + { + case 1: + var home = bag.k; + var effect = _Platform_toEffect(isCmd, home, taggers, bag.l); + effectsDict[home] = _Platform_insert(isCmd, effect, effectsDict[home]); + return; + + case 2: + for (var list = bag.m; list.b; list = list.b) // WHILE_CONS + { + _Platform_gatherEffects(isCmd, list.a, effectsDict, taggers); + } + return; + + case 3: + _Platform_gatherEffects(isCmd, bag.o, effectsDict, { + s: bag.n, + t: taggers + }); + return; + } +} + + +function _Platform_toEffect(isCmd, home, taggers, value) +{ + function applyTaggers(x) + { + for (var temp = taggers; temp; temp = temp.t) + { + x = temp.s(x); + } + return x; + } + + var map = isCmd + ? _Platform_effectManagers[home].e + : _Platform_effectManagers[home].f; + + return A2(map, applyTaggers, value) +} + + +function _Platform_insert(isCmd, newEffect, effects) +{ + effects = effects || { i: _List_Nil, j: _List_Nil }; + + isCmd + ? (effects.i = _List_Cons(newEffect, effects.i)) + : (effects.j = _List_Cons(newEffect, effects.j)); + + return effects; +} + + + +// PORTS + + +function _Platform_checkPortName(name) +{ + if (_Platform_effectManagers[name]) + { + _Debug_crash(3, name) + } +} + + + +// OUTGOING PORTS + + +function _Platform_outgoingPort(name, converter) +{ + _Platform_checkPortName(name); + _Platform_effectManagers[name] = { + e: _Platform_outgoingPortMap, + u: converter, + a: _Platform_setupOutgoingPort + }; + return _Platform_leaf(name); +} + + +var _Platform_outgoingPortMap = F2(function(tagger, value) { return value; }); + + +function _Platform_setupOutgoingPort(name) +{ + var subs = []; + var converter = _Platform_effectManagers[name].u; + + // CREATE MANAGER + + var init = _Process_sleep(0); + + _Platform_effectManagers[name].b = init; + _Platform_effectManagers[name].c = F3(function(router, cmdList, state) + { + for ( ; cmdList.b; cmdList = cmdList.b) // WHILE_CONS + { + // grab a separate reference to subs in case unsubscribe is called + var currentSubs = subs; + var value = _Json_unwrap(converter(cmdList.a)); + for (var i = 0; i < currentSubs.length; i++) + { + currentSubs[i](value); + } + } + return init; + }); + + // PUBLIC API + + function subscribe(callback) + { + subs.push(callback); + } + + function unsubscribe(callback) + { + // copy subs into a new array in case unsubscribe is called within a + // subscribed callback + subs = subs.slice(); + var index = subs.indexOf(callback); + if (index >= 0) + { + subs.splice(index, 1); + } + } + + return { + subscribe: subscribe, + unsubscribe: unsubscribe + }; +} + + + +// INCOMING PORTS + + +function _Platform_incomingPort(name, converter) +{ + _Platform_checkPortName(name); + _Platform_effectManagers[name] = { + f: _Platform_incomingPortMap, + u: converter, + a: _Platform_setupIncomingPort + }; + return _Platform_leaf(name); +} + + +var _Platform_incomingPortMap = F2(function(tagger, finalTagger) +{ + return function(value) + { + return tagger(finalTagger(value)); + }; +}); + + +function _Platform_setupIncomingPort(name, sendToApp) +{ + var subs = _List_Nil; + var converter = _Platform_effectManagers[name].u; + + // CREATE MANAGER + + var init = _Scheduler_succeed(null); + + _Platform_effectManagers[name].b = init; + _Platform_effectManagers[name].c = F3(function(router, subList, state) + { + subs = subList; + return init; + }); + + // PUBLIC API + + function send(incomingValue) + { + var result = A2(_Json_run, converter, _Json_wrap(incomingValue)); + + $elm$core$Result$isOk(result) || _Debug_crash(4, name, result.a); + + var value = result.a; + for (var temp = subs; temp.b; temp = temp.b) // WHILE_CONS + { + sendToApp(temp.a(value)); + } + } + + return { send: send }; +} + + + +// EXPORT ELM MODULES +// +// Have DEBUG and PROD versions so that we can (1) give nicer errors in +// debug mode and (2) not pay for the bits needed for that in prod mode. +// + + +function _Platform_export_UNUSED(exports) +{ + scope['Elm'] + ? _Platform_mergeExportsProd(scope['Elm'], exports) + : scope['Elm'] = exports; +} + + +function _Platform_mergeExportsProd(obj, exports) +{ + for (var name in exports) + { + (name in obj) + ? (name == 'init') + ? _Debug_crash(6) + : _Platform_mergeExportsProd(obj[name], exports[name]) + : (obj[name] = exports[name]); + } +} + + +function _Platform_export(exports) +{ + scope['Elm'] + ? _Platform_mergeExportsDebug('Elm', scope['Elm'], exports) + : scope['Elm'] = exports; +} + + +function _Platform_mergeExportsDebug(moduleName, obj, exports) +{ + for (var name in exports) + { + (name in obj) + ? (name == 'init') + ? _Debug_crash(6, moduleName) + : _Platform_mergeExportsDebug(moduleName + '.' + name, obj[name], exports[name]) + : (obj[name] = exports[name]); + } +} + + + + +// HELPERS + + +var _VirtualDom_divertHrefToApp; + +var _VirtualDom_doc = typeof document !== 'undefined' ? document : {}; + + +function _VirtualDom_appendChild(parent, child) +{ + parent.appendChild(child); +} + +var _VirtualDom_init = F4(function(virtualNode, flagDecoder, debugMetadata, args) +{ + // NOTE: this function needs _Platform_export available to work + + /**_UNUSED/ + var node = args['node']; + //*/ + /**/ + var node = args && args['node'] ? args['node'] : _Debug_crash(0); + //*/ + + node.parentNode.replaceChild( + _VirtualDom_render(virtualNode, function() {}), + node + ); + + return {}; +}); + + + +// TEXT + + +function _VirtualDom_text(string) +{ + return { + $: 0, + a: string + }; +} + + + +// NODE + + +var _VirtualDom_nodeNS = F2(function(namespace, tag) +{ + return F2(function(factList, kidList) + { + for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS + { + var kid = kidList.a; + descendantsCount += (kid.b || 0); + kids.push(kid); + } + descendantsCount += kids.length; + + return { + $: 1, + c: tag, + d: _VirtualDom_organizeFacts(factList), + e: kids, + f: namespace, + b: descendantsCount + }; + }); +}); + + +var _VirtualDom_node = _VirtualDom_nodeNS(undefined); + + + +// KEYED NODE + + +var _VirtualDom_keyedNodeNS = F2(function(namespace, tag) +{ + return F2(function(factList, kidList) + { + for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS + { + var kid = kidList.a; + descendantsCount += (kid.b.b || 0); + kids.push(kid); + } + descendantsCount += kids.length; + + return { + $: 2, + c: tag, + d: _VirtualDom_organizeFacts(factList), + e: kids, + f: namespace, + b: descendantsCount + }; + }); +}); + + +var _VirtualDom_keyedNode = _VirtualDom_keyedNodeNS(undefined); + + + +// CUSTOM + + +function _VirtualDom_custom(factList, model, render, diff) +{ + return { + $: 3, + d: _VirtualDom_organizeFacts(factList), + g: model, + h: render, + i: diff + }; +} + + + +// MAP + + +var _VirtualDom_map = F2(function(tagger, node) +{ + return { + $: 4, + j: tagger, + k: node, + b: 1 + (node.b || 0) + }; +}); + + + +// LAZY + + +function _VirtualDom_thunk(refs, thunk) +{ + return { + $: 5, + l: refs, + m: thunk, + k: undefined + }; +} + +var _VirtualDom_lazy = F2(function(func, a) +{ + return _VirtualDom_thunk([func, a], function() { + return func(a); + }); +}); + +var _VirtualDom_lazy2 = F3(function(func, a, b) +{ + return _VirtualDom_thunk([func, a, b], function() { + return A2(func, a, b); + }); +}); + +var _VirtualDom_lazy3 = F4(function(func, a, b, c) +{ + return _VirtualDom_thunk([func, a, b, c], function() { + return A3(func, a, b, c); + }); +}); + +var _VirtualDom_lazy4 = F5(function(func, a, b, c, d) +{ + return _VirtualDom_thunk([func, a, b, c, d], function() { + return A4(func, a, b, c, d); + }); +}); + +var _VirtualDom_lazy5 = F6(function(func, a, b, c, d, e) +{ + return _VirtualDom_thunk([func, a, b, c, d, e], function() { + return A5(func, a, b, c, d, e); + }); +}); + +var _VirtualDom_lazy6 = F7(function(func, a, b, c, d, e, f) +{ + return _VirtualDom_thunk([func, a, b, c, d, e, f], function() { + return A6(func, a, b, c, d, e, f); + }); +}); + +var _VirtualDom_lazy7 = F8(function(func, a, b, c, d, e, f, g) +{ + return _VirtualDom_thunk([func, a, b, c, d, e, f, g], function() { + return A7(func, a, b, c, d, e, f, g); + }); +}); + +var _VirtualDom_lazy8 = F9(function(func, a, b, c, d, e, f, g, h) +{ + return _VirtualDom_thunk([func, a, b, c, d, e, f, g, h], function() { + return A8(func, a, b, c, d, e, f, g, h); + }); +}); + + + +// FACTS + + +var _VirtualDom_on = F2(function(key, handler) +{ + return { + $: 'a0', + n: key, + o: handler + }; +}); +var _VirtualDom_style = F2(function(key, value) +{ + return { + $: 'a1', + n: key, + o: value + }; +}); +var _VirtualDom_property = F2(function(key, value) +{ + return { + $: 'a2', + n: key, + o: value + }; +}); +var _VirtualDom_attribute = F2(function(key, value) +{ + return { + $: 'a3', + n: key, + o: value + }; +}); +var _VirtualDom_attributeNS = F3(function(namespace, key, value) +{ + return { + $: 'a4', + n: key, + o: { f: namespace, o: value } + }; +}); + + + +// XSS ATTACK VECTOR CHECKS + + +function _VirtualDom_noScript(tag) +{ + return tag == 'script' ? 'p' : tag; +} + +function _VirtualDom_noOnOrFormAction(key) +{ + return /^(on|formAction$)/i.test(key) ? 'data-' + key : key; +} + +function _VirtualDom_noInnerHtmlOrFormAction(key) +{ + return key == 'innerHTML' || key == 'formAction' ? 'data-' + key : key; +} + +function _VirtualDom_noJavaScriptUri_UNUSED(value) +{ + return /^javascript:/i.test(value.replace(/\s/g,'')) ? '' : value; +} + +function _VirtualDom_noJavaScriptUri(value) +{ + return /^javascript:/i.test(value.replace(/\s/g,'')) + ? 'javascript:alert("This is an XSS vector. Please use ports or web components instead.")' + : value; +} + +function _VirtualDom_noJavaScriptOrHtmlUri_UNUSED(value) +{ + return /^\s*(javascript:|data:text\/html)/i.test(value) ? '' : value; +} + +function _VirtualDom_noJavaScriptOrHtmlUri(value) +{ + return /^\s*(javascript:|data:text\/html)/i.test(value) + ? 'javascript:alert("This is an XSS vector. Please use ports or web components instead.")' + : value; +} + + + +// MAP FACTS + + +var _VirtualDom_mapAttribute = F2(function(func, attr) +{ + return (attr.$ === 'a0') + ? A2(_VirtualDom_on, attr.n, _VirtualDom_mapHandler(func, attr.o)) + : attr; +}); + +function _VirtualDom_mapHandler(func, handler) +{ + var tag = $elm$virtual_dom$VirtualDom$toHandlerInt(handler); + + // 0 = Normal + // 1 = MayStopPropagation + // 2 = MayPreventDefault + // 3 = Custom + + return { + $: handler.$, + a: + !tag + ? A2($elm$json$Json$Decode$map, func, handler.a) + : + A3($elm$json$Json$Decode$map2, + tag < 3 + ? _VirtualDom_mapEventTuple + : _VirtualDom_mapEventRecord, + $elm$json$Json$Decode$succeed(func), + handler.a + ) + }; +} + +var _VirtualDom_mapEventTuple = F2(function(func, tuple) +{ + return _Utils_Tuple2(func(tuple.a), tuple.b); +}); + +var _VirtualDom_mapEventRecord = F2(function(func, record) +{ + return { + message: func(record.message), + stopPropagation: record.stopPropagation, + preventDefault: record.preventDefault + } +}); + + + +// ORGANIZE FACTS + + +function _VirtualDom_organizeFacts(factList) +{ + for (var facts = {}; factList.b; factList = factList.b) // WHILE_CONS + { + var entry = factList.a; + + var tag = entry.$; + var key = entry.n; + var value = entry.o; + + if (tag === 'a2') + { + (key === 'className') + ? _VirtualDom_addClass(facts, key, _Json_unwrap(value)) + : facts[key] = _Json_unwrap(value); + + continue; + } + + var subFacts = facts[tag] || (facts[tag] = {}); + (tag === 'a3' && key === 'class') + ? _VirtualDom_addClass(subFacts, key, value) + : subFacts[key] = value; + } + + return facts; +} + +function _VirtualDom_addClass(object, key, newClass) +{ + var classes = object[key]; + object[key] = classes ? classes + ' ' + newClass : newClass; +} + + + +// RENDER + + +function _VirtualDom_render(vNode, eventNode) +{ + var tag = vNode.$; + + if (tag === 5) + { + return _VirtualDom_render(vNode.k || (vNode.k = vNode.m()), eventNode); + } + + if (tag === 0) + { + return _VirtualDom_doc.createTextNode(vNode.a); + } + + if (tag === 4) + { + var subNode = vNode.k; + var tagger = vNode.j; + + while (subNode.$ === 4) + { + typeof tagger !== 'object' + ? tagger = [tagger, subNode.j] + : tagger.push(subNode.j); + + subNode = subNode.k; + } + + var subEventRoot = { j: tagger, p: eventNode }; + var domNode = _VirtualDom_render(subNode, subEventRoot); + domNode.elm_event_node_ref = subEventRoot; + return domNode; + } + + if (tag === 3) + { + var domNode = vNode.h(vNode.g); + _VirtualDom_applyFacts(domNode, eventNode, vNode.d); + return domNode; + } + + // at this point `tag` must be 1 or 2 + + var domNode = vNode.f + ? _VirtualDom_doc.createElementNS(vNode.f, vNode.c) + : _VirtualDom_doc.createElement(vNode.c); + + if (_VirtualDom_divertHrefToApp && vNode.c == 'a') + { + domNode.addEventListener('click', _VirtualDom_divertHrefToApp(domNode)); + } + + _VirtualDom_applyFacts(domNode, eventNode, vNode.d); + + for (var kids = vNode.e, i = 0; i < kids.length; i++) + { + _VirtualDom_appendChild(domNode, _VirtualDom_render(tag === 1 ? kids[i] : kids[i].b, eventNode)); + } + + return domNode; +} + + + +// APPLY FACTS + + +function _VirtualDom_applyFacts(domNode, eventNode, facts) +{ + for (var key in facts) + { + var value = facts[key]; + + key === 'a1' + ? _VirtualDom_applyStyles(domNode, value) + : + key === 'a0' + ? _VirtualDom_applyEvents(domNode, eventNode, value) + : + key === 'a3' + ? _VirtualDom_applyAttrs(domNode, value) + : + key === 'a4' + ? _VirtualDom_applyAttrsNS(domNode, value) + : + ((key !== 'value' && key !== 'checked') || domNode[key] !== value) && (domNode[key] = value); + } +} + + + +// APPLY STYLES + + +function _VirtualDom_applyStyles(domNode, styles) +{ + var domNodeStyle = domNode.style; + + for (var key in styles) + { + domNodeStyle[key] = styles[key]; + } +} + + + +// APPLY ATTRS + + +function _VirtualDom_applyAttrs(domNode, attrs) +{ + for (var key in attrs) + { + var value = attrs[key]; + typeof value !== 'undefined' + ? domNode.setAttribute(key, value) + : domNode.removeAttribute(key); + } +} + + + +// APPLY NAMESPACED ATTRS + + +function _VirtualDom_applyAttrsNS(domNode, nsAttrs) +{ + for (var key in nsAttrs) + { + var pair = nsAttrs[key]; + var namespace = pair.f; + var value = pair.o; + + typeof value !== 'undefined' + ? domNode.setAttributeNS(namespace, key, value) + : domNode.removeAttributeNS(namespace, key); + } +} + + + +// APPLY EVENTS + + +function _VirtualDom_applyEvents(domNode, eventNode, events) +{ + var allCallbacks = domNode.elmFs || (domNode.elmFs = {}); + + for (var key in events) + { + var newHandler = events[key]; + var oldCallback = allCallbacks[key]; + + if (!newHandler) + { + domNode.removeEventListener(key, oldCallback); + allCallbacks[key] = undefined; + continue; + } + + if (oldCallback) + { + var oldHandler = oldCallback.q; + if (oldHandler.$ === newHandler.$) + { + oldCallback.q = newHandler; + continue; + } + domNode.removeEventListener(key, oldCallback); + } + + oldCallback = _VirtualDom_makeCallback(eventNode, newHandler); + domNode.addEventListener(key, oldCallback, + _VirtualDom_passiveSupported + && { passive: $elm$virtual_dom$VirtualDom$toHandlerInt(newHandler) < 2 } + ); + allCallbacks[key] = oldCallback; + } +} + + + +// PASSIVE EVENTS + + +var _VirtualDom_passiveSupported; + +try +{ + window.addEventListener('t', null, Object.defineProperty({}, 'passive', { + get: function() { _VirtualDom_passiveSupported = true; } + })); +} +catch(e) {} + + + +// EVENT HANDLERS + + +function _VirtualDom_makeCallback(eventNode, initialHandler) +{ + function callback(event) + { + var handler = callback.q; + var result = _Json_runHelp(handler.a, event); + + if (!$elm$core$Result$isOk(result)) + { + return; + } + + var tag = $elm$virtual_dom$VirtualDom$toHandlerInt(handler); + + // 0 = Normal + // 1 = MayStopPropagation + // 2 = MayPreventDefault + // 3 = Custom + + var value = result.a; + var message = !tag ? value : tag < 3 ? value.a : value.message; + var stopPropagation = tag == 1 ? value.b : tag == 3 && value.stopPropagation; + var currentEventNode = ( + stopPropagation && event.stopPropagation(), + (tag == 2 ? value.b : tag == 3 && value.preventDefault) && event.preventDefault(), + eventNode + ); + var tagger; + var i; + while (tagger = currentEventNode.j) + { + if (typeof tagger == 'function') + { + message = tagger(message); + } + else + { + for (var i = tagger.length; i--; ) + { + message = tagger[i](message); + } + } + currentEventNode = currentEventNode.p; + } + currentEventNode(message, stopPropagation); // stopPropagation implies isSync + } + + callback.q = initialHandler; + + return callback; +} + +function _VirtualDom_equalEvents(x, y) +{ + return x.$ == y.$ && _Json_equality(x.a, y.a); +} + + + +// DIFF + + +// TODO: Should we do patches like in iOS? +// +// type Patch +// = At Int Patch +// | Batch (List Patch) +// | Change ... +// +// How could it not be better? +// +function _VirtualDom_diff(x, y) +{ + var patches = []; + _VirtualDom_diffHelp(x, y, patches, 0); + return patches; +} + + +function _VirtualDom_pushPatch(patches, type, index, data) +{ + var patch = { + $: type, + r: index, + s: data, + t: undefined, + u: undefined + }; + patches.push(patch); + return patch; +} + + +function _VirtualDom_diffHelp(x, y, patches, index) +{ + if (x === y) + { + return; + } + + var xType = x.$; + var yType = y.$; + + // Bail if you run into different types of nodes. Implies that the + // structure has changed significantly and it's not worth a diff. + if (xType !== yType) + { + if (xType === 1 && yType === 2) + { + y = _VirtualDom_dekey(y); + yType = 1; + } + else + { + _VirtualDom_pushPatch(patches, 0, index, y); + return; + } + } + + // Now we know that both nodes are the same $. + switch (yType) + { + case 5: + var xRefs = x.l; + var yRefs = y.l; + var i = xRefs.length; + var same = i === yRefs.length; + while (same && i--) + { + same = xRefs[i] === yRefs[i]; + } + if (same) + { + y.k = x.k; + return; + } + y.k = y.m(); + var subPatches = []; + _VirtualDom_diffHelp(x.k, y.k, subPatches, 0); + subPatches.length > 0 && _VirtualDom_pushPatch(patches, 1, index, subPatches); + return; + + case 4: + // gather nested taggers + var xTaggers = x.j; + var yTaggers = y.j; + var nesting = false; + + var xSubNode = x.k; + while (xSubNode.$ === 4) + { + nesting = true; + + typeof xTaggers !== 'object' + ? xTaggers = [xTaggers, xSubNode.j] + : xTaggers.push(xSubNode.j); + + xSubNode = xSubNode.k; + } + + var ySubNode = y.k; + while (ySubNode.$ === 4) + { + nesting = true; + + typeof yTaggers !== 'object' + ? yTaggers = [yTaggers, ySubNode.j] + : yTaggers.push(ySubNode.j); + + ySubNode = ySubNode.k; + } + + // Just bail if different numbers of taggers. This implies the + // structure of the virtual DOM has changed. + if (nesting && xTaggers.length !== yTaggers.length) + { + _VirtualDom_pushPatch(patches, 0, index, y); + return; + } + + // check if taggers are "the same" + if (nesting ? !_VirtualDom_pairwiseRefEqual(xTaggers, yTaggers) : xTaggers !== yTaggers) + { + _VirtualDom_pushPatch(patches, 2, index, yTaggers); + } + + // diff everything below the taggers + _VirtualDom_diffHelp(xSubNode, ySubNode, patches, index + 1); + return; + + case 0: + if (x.a !== y.a) + { + _VirtualDom_pushPatch(patches, 3, index, y.a); + } + return; + + case 1: + _VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKids); + return; + + case 2: + _VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKeyedKids); + return; + + case 3: + if (x.h !== y.h) + { + _VirtualDom_pushPatch(patches, 0, index, y); + return; + } + + var factsDiff = _VirtualDom_diffFacts(x.d, y.d); + factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff); + + var patch = y.i(x.g, y.g); + patch && _VirtualDom_pushPatch(patches, 5, index, patch); + + return; + } +} + +// assumes the incoming arrays are the same length +function _VirtualDom_pairwiseRefEqual(as, bs) +{ + for (var i = 0; i < as.length; i++) + { + if (as[i] !== bs[i]) + { + return false; + } + } + + return true; +} + +function _VirtualDom_diffNodes(x, y, patches, index, diffKids) +{ + // Bail if obvious indicators have changed. Implies more serious + // structural changes such that it's not worth it to diff. + if (x.c !== y.c || x.f !== y.f) + { + _VirtualDom_pushPatch(patches, 0, index, y); + return; + } + + var factsDiff = _VirtualDom_diffFacts(x.d, y.d); + factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff); + + diffKids(x, y, patches, index); +} + + + +// DIFF FACTS + + +// TODO Instead of creating a new diff object, it's possible to just test if +// there *is* a diff. During the actual patch, do the diff again and make the +// modifications directly. This way, there's no new allocations. Worth it? +function _VirtualDom_diffFacts(x, y, category) +{ + var diff; + + // look for changes and removals + for (var xKey in x) + { + if (xKey === 'a1' || xKey === 'a0' || xKey === 'a3' || xKey === 'a4') + { + var subDiff = _VirtualDom_diffFacts(x[xKey], y[xKey] || {}, xKey); + if (subDiff) + { + diff = diff || {}; + diff[xKey] = subDiff; + } + continue; + } + + // remove if not in the new facts + if (!(xKey in y)) + { + diff = diff || {}; + diff[xKey] = + !category + ? (typeof x[xKey] === 'string' ? '' : null) + : + (category === 'a1') + ? '' + : + (category === 'a0' || category === 'a3') + ? undefined + : + { f: x[xKey].f, o: undefined }; + + continue; + } + + var xValue = x[xKey]; + var yValue = y[xKey]; + + // reference equal, so don't worry about it + if (xValue === yValue && xKey !== 'value' && xKey !== 'checked' + || category === 'a0' && _VirtualDom_equalEvents(xValue, yValue)) + { + continue; + } + + diff = diff || {}; + diff[xKey] = yValue; + } + + // add new stuff + for (var yKey in y) + { + if (!(yKey in x)) + { + diff = diff || {}; + diff[yKey] = y[yKey]; + } + } + + return diff; +} + + + +// DIFF KIDS + + +function _VirtualDom_diffKids(xParent, yParent, patches, index) +{ + var xKids = xParent.e; + var yKids = yParent.e; + + var xLen = xKids.length; + var yLen = yKids.length; + + // FIGURE OUT IF THERE ARE INSERTS OR REMOVALS + + if (xLen > yLen) + { + _VirtualDom_pushPatch(patches, 6, index, { + v: yLen, + i: xLen - yLen + }); + } + else if (xLen < yLen) + { + _VirtualDom_pushPatch(patches, 7, index, { + v: xLen, + e: yKids + }); + } + + // PAIRWISE DIFF EVERYTHING ELSE + + for (var minLen = xLen < yLen ? xLen : yLen, i = 0; i < minLen; i++) + { + var xKid = xKids[i]; + _VirtualDom_diffHelp(xKid, yKids[i], patches, ++index); + index += xKid.b || 0; + } +} + + + +// KEYED DIFF + + +function _VirtualDom_diffKeyedKids(xParent, yParent, patches, rootIndex) +{ + var localPatches = []; + + var changes = {}; // Dict String Entry + var inserts = []; // Array { index : Int, entry : Entry } + // type Entry = { tag : String, vnode : VNode, index : Int, data : _ } + + var xKids = xParent.e; + var yKids = yParent.e; + var xLen = xKids.length; + var yLen = yKids.length; + var xIndex = 0; + var yIndex = 0; + + var index = rootIndex; + + while (xIndex < xLen && yIndex < yLen) + { + var x = xKids[xIndex]; + var y = yKids[yIndex]; + + var xKey = x.a; + var yKey = y.a; + var xNode = x.b; + var yNode = y.b; + + var newMatch = undefined; + var oldMatch = undefined; + + // check if keys match + + if (xKey === yKey) + { + index++; + _VirtualDom_diffHelp(xNode, yNode, localPatches, index); + index += xNode.b || 0; + + xIndex++; + yIndex++; + continue; + } + + // look ahead 1 to detect insertions and removals. + + var xNext = xKids[xIndex + 1]; + var yNext = yKids[yIndex + 1]; + + if (xNext) + { + var xNextKey = xNext.a; + var xNextNode = xNext.b; + oldMatch = yKey === xNextKey; + } + + if (yNext) + { + var yNextKey = yNext.a; + var yNextNode = yNext.b; + newMatch = xKey === yNextKey; + } + + + // swap x and y + if (newMatch && oldMatch) + { + index++; + _VirtualDom_diffHelp(xNode, yNextNode, localPatches, index); + _VirtualDom_insertNode(changes, localPatches, xKey, yNode, yIndex, inserts); + index += xNode.b || 0; + + index++; + _VirtualDom_removeNode(changes, localPatches, xKey, xNextNode, index); + index += xNextNode.b || 0; + + xIndex += 2; + yIndex += 2; + continue; + } + + // insert y + if (newMatch) + { + index++; + _VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts); + _VirtualDom_diffHelp(xNode, yNextNode, localPatches, index); + index += xNode.b || 0; + + xIndex += 1; + yIndex += 2; + continue; + } + + // remove x + if (oldMatch) + { + index++; + _VirtualDom_removeNode(changes, localPatches, xKey, xNode, index); + index += xNode.b || 0; + + index++; + _VirtualDom_diffHelp(xNextNode, yNode, localPatches, index); + index += xNextNode.b || 0; + + xIndex += 2; + yIndex += 1; + continue; + } + + // remove x, insert y + if (xNext && xNextKey === yNextKey) + { + index++; + _VirtualDom_removeNode(changes, localPatches, xKey, xNode, index); + _VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts); + index += xNode.b || 0; + + index++; + _VirtualDom_diffHelp(xNextNode, yNextNode, localPatches, index); + index += xNextNode.b || 0; + + xIndex += 2; + yIndex += 2; + continue; + } + + break; + } + + // eat up any remaining nodes with removeNode and insertNode + + while (xIndex < xLen) + { + index++; + var x = xKids[xIndex]; + var xNode = x.b; + _VirtualDom_removeNode(changes, localPatches, x.a, xNode, index); + index += xNode.b || 0; + xIndex++; + } + + while (yIndex < yLen) + { + var endInserts = endInserts || []; + var y = yKids[yIndex]; + _VirtualDom_insertNode(changes, localPatches, y.a, y.b, undefined, endInserts); + yIndex++; + } + + if (localPatches.length > 0 || inserts.length > 0 || endInserts) + { + _VirtualDom_pushPatch(patches, 8, rootIndex, { + w: localPatches, + x: inserts, + y: endInserts + }); + } +} + + + +// CHANGES FROM KEYED DIFF + + +var _VirtualDom_POSTFIX = '_elmW6BL'; + + +function _VirtualDom_insertNode(changes, localPatches, key, vnode, yIndex, inserts) +{ + var entry = changes[key]; + + // never seen this key before + if (!entry) + { + entry = { + c: 0, + z: vnode, + r: yIndex, + s: undefined + }; + + inserts.push({ r: yIndex, A: entry }); + changes[key] = entry; + + return; + } + + // this key was removed earlier, a match! + if (entry.c === 1) + { + inserts.push({ r: yIndex, A: entry }); + + entry.c = 2; + var subPatches = []; + _VirtualDom_diffHelp(entry.z, vnode, subPatches, entry.r); + entry.r = yIndex; + entry.s.s = { + w: subPatches, + A: entry + }; + + return; + } + + // this key has already been inserted or moved, a duplicate! + _VirtualDom_insertNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, yIndex, inserts); +} + + +function _VirtualDom_removeNode(changes, localPatches, key, vnode, index) +{ + var entry = changes[key]; + + // never seen this key before + if (!entry) + { + var patch = _VirtualDom_pushPatch(localPatches, 9, index, undefined); + + changes[key] = { + c: 1, + z: vnode, + r: index, + s: patch + }; + + return; + } + + // this key was inserted earlier, a match! + if (entry.c === 0) + { + entry.c = 2; + var subPatches = []; + _VirtualDom_diffHelp(vnode, entry.z, subPatches, index); + + _VirtualDom_pushPatch(localPatches, 9, index, { + w: subPatches, + A: entry + }); + + return; + } + + // this key has already been removed or moved, a duplicate! + _VirtualDom_removeNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, index); +} + + + +// ADD DOM NODES +// +// Each DOM node has an "index" assigned in order of traversal. It is important +// to minimize our crawl over the actual DOM, so these indexes (along with the +// descendantsCount of virtual nodes) let us skip touching entire subtrees of +// the DOM if we know there are no patches there. + + +function _VirtualDom_addDomNodes(domNode, vNode, patches, eventNode) +{ + _VirtualDom_addDomNodesHelp(domNode, vNode, patches, 0, 0, vNode.b, eventNode); +} + + +// assumes `patches` is non-empty and indexes increase monotonically. +function _VirtualDom_addDomNodesHelp(domNode, vNode, patches, i, low, high, eventNode) +{ + var patch = patches[i]; + var index = patch.r; + + while (index === low) + { + var patchType = patch.$; + + if (patchType === 1) + { + _VirtualDom_addDomNodes(domNode, vNode.k, patch.s, eventNode); + } + else if (patchType === 8) + { + patch.t = domNode; + patch.u = eventNode; + + var subPatches = patch.s.w; + if (subPatches.length > 0) + { + _VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode); + } + } + else if (patchType === 9) + { + patch.t = domNode; + patch.u = eventNode; + + var data = patch.s; + if (data) + { + data.A.s = domNode; + var subPatches = data.w; + if (subPatches.length > 0) + { + _VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode); + } + } + } + else + { + patch.t = domNode; + patch.u = eventNode; + } + + i++; + + if (!(patch = patches[i]) || (index = patch.r) > high) + { + return i; + } + } + + var tag = vNode.$; + + if (tag === 4) + { + var subNode = vNode.k; + + while (subNode.$ === 4) + { + subNode = subNode.k; + } + + return _VirtualDom_addDomNodesHelp(domNode, subNode, patches, i, low + 1, high, domNode.elm_event_node_ref); + } + + // tag must be 1 or 2 at this point + + var vKids = vNode.e; + var childNodes = domNode.childNodes; + for (var j = 0; j < vKids.length; j++) + { + low++; + var vKid = tag === 1 ? vKids[j] : vKids[j].b; + var nextLow = low + (vKid.b || 0); + if (low <= index && index <= nextLow) + { + i = _VirtualDom_addDomNodesHelp(childNodes[j], vKid, patches, i, low, nextLow, eventNode); + if (!(patch = patches[i]) || (index = patch.r) > high) + { + return i; + } + } + low = nextLow; + } + return i; +} + + + +// APPLY PATCHES + + +function _VirtualDom_applyPatches(rootDomNode, oldVirtualNode, patches, eventNode) +{ + if (patches.length === 0) + { + return rootDomNode; + } + + _VirtualDom_addDomNodes(rootDomNode, oldVirtualNode, patches, eventNode); + return _VirtualDom_applyPatchesHelp(rootDomNode, patches); +} + +function _VirtualDom_applyPatchesHelp(rootDomNode, patches) +{ + for (var i = 0; i < patches.length; i++) + { + var patch = patches[i]; + var localDomNode = patch.t + var newNode = _VirtualDom_applyPatch(localDomNode, patch); + if (localDomNode === rootDomNode) + { + rootDomNode = newNode; + } + } + return rootDomNode; +} + +function _VirtualDom_applyPatch(domNode, patch) +{ + switch (patch.$) + { + case 0: + return _VirtualDom_applyPatchRedraw(domNode, patch.s, patch.u); + + case 4: + _VirtualDom_applyFacts(domNode, patch.u, patch.s); + return domNode; + + case 3: + domNode.replaceData(0, domNode.length, patch.s); + return domNode; + + case 1: + return _VirtualDom_applyPatchesHelp(domNode, patch.s); + + case 2: + if (domNode.elm_event_node_ref) + { + domNode.elm_event_node_ref.j = patch.s; + } + else + { + domNode.elm_event_node_ref = { j: patch.s, p: patch.u }; + } + return domNode; + + case 6: + var data = patch.s; + for (var i = 0; i < data.i; i++) + { + domNode.removeChild(domNode.childNodes[data.v]); + } + return domNode; + + case 7: + var data = patch.s; + var kids = data.e; + var i = data.v; + var theEnd = domNode.childNodes[i]; + for (; i < kids.length; i++) + { + domNode.insertBefore(_VirtualDom_render(kids[i], patch.u), theEnd); + } + return domNode; + + case 9: + var data = patch.s; + if (!data) + { + domNode.parentNode.removeChild(domNode); + return domNode; + } + var entry = data.A; + if (typeof entry.r !== 'undefined') + { + domNode.parentNode.removeChild(domNode); + } + entry.s = _VirtualDom_applyPatchesHelp(domNode, data.w); + return domNode; + + case 8: + return _VirtualDom_applyPatchReorder(domNode, patch); + + case 5: + return patch.s(domNode); + + default: + _Debug_crash(10); // 'Ran into an unknown patch!' + } +} + + +function _VirtualDom_applyPatchRedraw(domNode, vNode, eventNode) +{ + var parentNode = domNode.parentNode; + var newNode = _VirtualDom_render(vNode, eventNode); + + if (!newNode.elm_event_node_ref) + { + newNode.elm_event_node_ref = domNode.elm_event_node_ref; + } + + if (parentNode && newNode !== domNode) + { + parentNode.replaceChild(newNode, domNode); + } + return newNode; +} + + +function _VirtualDom_applyPatchReorder(domNode, patch) +{ + var data = patch.s; + + // remove end inserts + var frag = _VirtualDom_applyPatchReorderEndInsertsHelp(data.y, patch); + + // removals + domNode = _VirtualDom_applyPatchesHelp(domNode, data.w); + + // inserts + var inserts = data.x; + for (var i = 0; i < inserts.length; i++) + { + var insert = inserts[i]; + var entry = insert.A; + var node = entry.c === 2 + ? entry.s + : _VirtualDom_render(entry.z, patch.u); + domNode.insertBefore(node, domNode.childNodes[insert.r]); + } + + // add end inserts + if (frag) + { + _VirtualDom_appendChild(domNode, frag); + } + + return domNode; +} + + +function _VirtualDom_applyPatchReorderEndInsertsHelp(endInserts, patch) +{ + if (!endInserts) + { + return; + } + + var frag = _VirtualDom_doc.createDocumentFragment(); + for (var i = 0; i < endInserts.length; i++) + { + var insert = endInserts[i]; + var entry = insert.A; + _VirtualDom_appendChild(frag, entry.c === 2 + ? entry.s + : _VirtualDom_render(entry.z, patch.u) + ); + } + return frag; +} + + +function _VirtualDom_virtualize(node) +{ + // TEXT NODES + + if (node.nodeType === 3) + { + return _VirtualDom_text(node.textContent); + } + + + // WEIRD NODES + + if (node.nodeType !== 1) + { + return _VirtualDom_text(''); + } + + + // ELEMENT NODES + + var attrList = _List_Nil; + var attrs = node.attributes; + for (var i = attrs.length; i--; ) + { + var attr = attrs[i]; + var name = attr.name; + var value = attr.value; + attrList = _List_Cons( A2(_VirtualDom_attribute, name, value), attrList ); + } + + var tag = node.tagName.toLowerCase(); + var kidList = _List_Nil; + var kids = node.childNodes; + + for (var i = kids.length; i--; ) + { + kidList = _List_Cons(_VirtualDom_virtualize(kids[i]), kidList); + } + return A3(_VirtualDom_node, tag, attrList, kidList); +} + +function _VirtualDom_dekey(keyedNode) +{ + var keyedKids = keyedNode.e; + var len = keyedKids.length; + var kids = new Array(len); + for (var i = 0; i < len; i++) + { + kids[i] = keyedKids[i].b; + } + + return { + $: 1, + c: keyedNode.c, + d: keyedNode.d, + e: kids, + f: keyedNode.f, + b: keyedNode.b + }; +} + + + + +// ELEMENT + + +var _Debugger_element; + +var _Browser_element = _Debugger_element || F4(function(impl, flagDecoder, debugMetadata, args) +{ + return _Platform_initialize( + flagDecoder, + args, + impl.init, + impl.update, + impl.subscriptions, + function(sendToApp, initialModel) { + var view = impl.view; + /**_UNUSED/ + var domNode = args['node']; + //*/ + /**/ + var domNode = args && args['node'] ? args['node'] : _Debug_crash(0); + //*/ + var currNode = _VirtualDom_virtualize(domNode); + + return _Browser_makeAnimator(initialModel, function(model) + { + var nextNode = view(model); + var patches = _VirtualDom_diff(currNode, nextNode); + domNode = _VirtualDom_applyPatches(domNode, currNode, patches, sendToApp); + currNode = nextNode; + }); + } + ); +}); + + + +// DOCUMENT + + +var _Debugger_document; + +var _Browser_document = _Debugger_document || F4(function(impl, flagDecoder, debugMetadata, args) +{ + return _Platform_initialize( + flagDecoder, + args, + impl.init, + impl.update, + impl.subscriptions, + function(sendToApp, initialModel) { + var divertHrefToApp = impl.setup && impl.setup(sendToApp) + var view = impl.view; + var title = _VirtualDom_doc.title; + var bodyNode = _VirtualDom_doc.body; + var currNode = _VirtualDom_virtualize(bodyNode); + return _Browser_makeAnimator(initialModel, function(model) + { + _VirtualDom_divertHrefToApp = divertHrefToApp; + var doc = view(model); + var nextNode = _VirtualDom_node('body')(_List_Nil)(doc.body); + var patches = _VirtualDom_diff(currNode, nextNode); + bodyNode = _VirtualDom_applyPatches(bodyNode, currNode, patches, sendToApp); + currNode = nextNode; + _VirtualDom_divertHrefToApp = 0; + (title !== doc.title) && (_VirtualDom_doc.title = title = doc.title); + }); + } + ); +}); + + + +// ANIMATION + + +var _Browser_cancelAnimationFrame = + typeof cancelAnimationFrame !== 'undefined' + ? cancelAnimationFrame + : function(id) { clearTimeout(id); }; + +var _Browser_requestAnimationFrame = + typeof requestAnimationFrame !== 'undefined' + ? requestAnimationFrame + : function(callback) { return setTimeout(callback, 1000 / 60); }; + + +function _Browser_makeAnimator(model, draw) +{ + draw(model); + + var state = 0; + + function updateIfNeeded() + { + state = state === 1 + ? 0 + : ( _Browser_requestAnimationFrame(updateIfNeeded), draw(model), 1 ); + } + + return function(nextModel, isSync) + { + model = nextModel; + + isSync + ? ( draw(model), + state === 2 && (state = 1) + ) + : ( state === 0 && _Browser_requestAnimationFrame(updateIfNeeded), + state = 2 + ); + }; +} + + + +// APPLICATION + + +function _Browser_application(impl) +{ + var onUrlChange = impl.onUrlChange; + var onUrlRequest = impl.onUrlRequest; + var key = function() { key.a(onUrlChange(_Browser_getUrl())); }; + + return _Browser_document({ + setup: function(sendToApp) + { + key.a = sendToApp; + _Browser_window.addEventListener('popstate', key); + _Browser_window.navigator.userAgent.indexOf('Trident') < 0 || _Browser_window.addEventListener('hashchange', key); + + return F2(function(domNode, event) + { + if (!event.ctrlKey && !event.metaKey && !event.shiftKey && event.button < 1 && !domNode.target && !domNode.hasAttribute('download')) + { + event.preventDefault(); + var href = domNode.href; + var curr = _Browser_getUrl(); + var next = $elm$url$Url$fromString(href).a; + sendToApp(onUrlRequest( + (next + && curr.protocol === next.protocol + && curr.host === next.host + && curr.port_.a === next.port_.a + ) + ? $elm$browser$Browser$Internal(next) + : $elm$browser$Browser$External(href) + )); + } + }); + }, + init: function(flags) + { + return A3(impl.init, flags, _Browser_getUrl(), key); + }, + view: impl.view, + update: impl.update, + subscriptions: impl.subscriptions + }); +} + +function _Browser_getUrl() +{ + return $elm$url$Url$fromString(_VirtualDom_doc.location.href).a || _Debug_crash(1); +} + +var _Browser_go = F2(function(key, n) +{ + return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() { + n && history.go(n); + key(); + })); +}); + +var _Browser_pushUrl = F2(function(key, url) +{ + return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() { + history.pushState({}, '', url); + key(); + })); +}); + +var _Browser_replaceUrl = F2(function(key, url) +{ + return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() { + history.replaceState({}, '', url); + key(); + })); +}); + + + +// GLOBAL EVENTS + + +var _Browser_fakeNode = { addEventListener: function() {}, removeEventListener: function() {} }; +var _Browser_doc = typeof document !== 'undefined' ? document : _Browser_fakeNode; +var _Browser_window = typeof window !== 'undefined' ? window : _Browser_fakeNode; + +var _Browser_on = F3(function(node, eventName, sendToSelf) +{ + return _Scheduler_spawn(_Scheduler_binding(function(callback) + { + function handler(event) { _Scheduler_rawSpawn(sendToSelf(event)); } + node.addEventListener(eventName, handler, _VirtualDom_passiveSupported && { passive: true }); + return function() { node.removeEventListener(eventName, handler); }; + })); +}); + +var _Browser_decodeEvent = F2(function(decoder, event) +{ + var result = _Json_runHelp(decoder, event); + return $elm$core$Result$isOk(result) ? $elm$core$Maybe$Just(result.a) : $elm$core$Maybe$Nothing; +}); + + + +// PAGE VISIBILITY + + +function _Browser_visibilityInfo() +{ + return (typeof _VirtualDom_doc.hidden !== 'undefined') + ? { hidden: 'hidden', change: 'visibilitychange' } + : + (typeof _VirtualDom_doc.mozHidden !== 'undefined') + ? { hidden: 'mozHidden', change: 'mozvisibilitychange' } + : + (typeof _VirtualDom_doc.msHidden !== 'undefined') + ? { hidden: 'msHidden', change: 'msvisibilitychange' } + : + (typeof _VirtualDom_doc.webkitHidden !== 'undefined') + ? { hidden: 'webkitHidden', change: 'webkitvisibilitychange' } + : { hidden: 'hidden', change: 'visibilitychange' }; +} + + + +// ANIMATION FRAMES + + +function _Browser_rAF() +{ + return _Scheduler_binding(function(callback) + { + var id = _Browser_requestAnimationFrame(function() { + callback(_Scheduler_succeed(Date.now())); + }); + + return function() { + _Browser_cancelAnimationFrame(id); + }; + }); +} + + +function _Browser_now() +{ + return _Scheduler_binding(function(callback) + { + callback(_Scheduler_succeed(Date.now())); + }); +} + + + +// DOM STUFF + + +function _Browser_withNode(id, doStuff) +{ + return _Scheduler_binding(function(callback) + { + _Browser_requestAnimationFrame(function() { + var node = document.getElementById(id); + callback(node + ? _Scheduler_succeed(doStuff(node)) + : _Scheduler_fail($elm$browser$Browser$Dom$NotFound(id)) + ); + }); + }); +} + + +function _Browser_withWindow(doStuff) +{ + return _Scheduler_binding(function(callback) + { + _Browser_requestAnimationFrame(function() { + callback(_Scheduler_succeed(doStuff())); + }); + }); +} + + +// FOCUS and BLUR + + +var _Browser_call = F2(function(functionName, id) +{ + return _Browser_withNode(id, function(node) { + node[functionName](); + return _Utils_Tuple0; + }); +}); + + + +// WINDOW VIEWPORT + + +function _Browser_getViewport() +{ + return { + scene: _Browser_getScene(), + viewport: { + x: _Browser_window.pageXOffset, + y: _Browser_window.pageYOffset, + width: _Browser_doc.documentElement.clientWidth, + height: _Browser_doc.documentElement.clientHeight + } + }; +} + +function _Browser_getScene() +{ + var body = _Browser_doc.body; + var elem = _Browser_doc.documentElement; + return { + width: Math.max(body.scrollWidth, body.offsetWidth, elem.scrollWidth, elem.offsetWidth, elem.clientWidth), + height: Math.max(body.scrollHeight, body.offsetHeight, elem.scrollHeight, elem.offsetHeight, elem.clientHeight) + }; +} + +var _Browser_setViewport = F2(function(x, y) +{ + return _Browser_withWindow(function() + { + _Browser_window.scroll(x, y); + return _Utils_Tuple0; + }); +}); + + + +// ELEMENT VIEWPORT + + +function _Browser_getViewportOf(id) +{ + return _Browser_withNode(id, function(node) + { + return { + scene: { + width: node.scrollWidth, + height: node.scrollHeight + }, + viewport: { + x: node.scrollLeft, + y: node.scrollTop, + width: node.clientWidth, + height: node.clientHeight + } + }; + }); +} + + +var _Browser_setViewportOf = F3(function(id, x, y) +{ + return _Browser_withNode(id, function(node) + { + node.scrollLeft = x; + node.scrollTop = y; + return _Utils_Tuple0; + }); +}); + + + +// ELEMENT + + +function _Browser_getElement(id) +{ + return _Browser_withNode(id, function(node) + { + var rect = node.getBoundingClientRect(); + var x = _Browser_window.pageXOffset; + var y = _Browser_window.pageYOffset; + return { + scene: _Browser_getScene(), + viewport: { + x: x, + y: y, + width: _Browser_doc.documentElement.clientWidth, + height: _Browser_doc.documentElement.clientHeight + }, + element: { + x: x + rect.left, + y: y + rect.top, + width: rect.width, + height: rect.height + } + }; + }); +} + + + +// LOAD and RELOAD + + +function _Browser_reload(skipCache) +{ + return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function(callback) + { + _VirtualDom_doc.location.reload(skipCache); + })); +} + +function _Browser_load(url) +{ + return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function(callback) + { + try + { + _Browser_window.location = url; + } + catch(err) + { + // Only Firefox can throw a NS_ERROR_MALFORMED_URI exception here. + // Other browsers reload the page, so let's be consistent about that. + _VirtualDom_doc.location.reload(false); + } + })); +} + + +// CREATE + +var _Regex_never = /.^/; + +var _Regex_fromStringWith = F2(function(options, string) +{ + var flags = 'g'; + if (options.multiline) { flags += 'm'; } + if (options.caseInsensitive) { flags += 'i'; } + + try + { + return $elm$core$Maybe$Just(new RegExp(string, flags)); + } + catch(error) + { + return $elm$core$Maybe$Nothing; + } +}); + + +// USE + +var _Regex_contains = F2(function(re, string) +{ + return string.match(re) !== null; +}); + + +var _Regex_findAtMost = F3(function(n, re, str) +{ + var out = []; + var number = 0; + var string = str; + var lastIndex = re.lastIndex; + var prevLastIndex = -1; + var result; + while (number++ < n && (result = re.exec(string))) + { + if (prevLastIndex == re.lastIndex) break; + var i = result.length - 1; + var subs = new Array(i); + while (i > 0) + { + var submatch = result[i]; + subs[--i] = submatch + ? $elm$core$Maybe$Just(submatch) + : $elm$core$Maybe$Nothing; + } + out.push(A4($elm$regex$Regex$Match, result[0], result.index, number, _List_fromArray(subs))); + prevLastIndex = re.lastIndex; + } + re.lastIndex = lastIndex; + return _List_fromArray(out); +}); + + +var _Regex_replaceAtMost = F4(function(n, re, replacer, string) +{ + var count = 0; + function jsReplacer(match) + { + if (count++ >= n) + { + return match; + } + var i = arguments.length - 3; + var submatches = new Array(i); + while (i > 0) + { + var submatch = arguments[i]; + submatches[--i] = submatch + ? $elm$core$Maybe$Just(submatch) + : $elm$core$Maybe$Nothing; + } + return replacer(A4($elm$regex$Regex$Match, match, arguments[arguments.length - 2], count, _List_fromArray(submatches))); + } + return string.replace(re, jsReplacer); +}); + +var _Regex_splitAtMost = F3(function(n, re, str) +{ + var string = str; + var out = []; + var start = re.lastIndex; + var restoreLastIndex = re.lastIndex; + while (n--) + { + var result = re.exec(string); + if (!result) break; + out.push(string.slice(start, result.index)); + start = re.lastIndex; + } + out.push(string.slice(start)); + re.lastIndex = restoreLastIndex; + return _List_fromArray(out); +}); + +var _Regex_infinity = Infinity; + + + +var _Bitwise_and = F2(function(a, b) +{ + return a & b; +}); + +var _Bitwise_or = F2(function(a, b) +{ + return a | b; +}); + +var _Bitwise_xor = F2(function(a, b) +{ + return a ^ b; +}); + +function _Bitwise_complement(a) +{ + return ~a; +}; + +var _Bitwise_shiftLeftBy = F2(function(offset, a) +{ + return a << offset; +}); + +var _Bitwise_shiftRightBy = F2(function(offset, a) +{ + return a >> offset; +}); + +var _Bitwise_shiftRightZfBy = F2(function(offset, a) +{ + return a >>> offset; +}); +var $elm$core$Basics$EQ = {$: 'EQ'}; +var $elm$core$Basics$GT = {$: 'GT'}; +var $elm$core$Basics$LT = {$: 'LT'}; +var $elm$core$List$cons = _List_cons; +var $elm$core$Dict$foldr = F3( + function (func, acc, t) { + foldr: + while (true) { + if (t.$ === 'RBEmpty_elm_builtin') { + return acc; + } else { + var key = t.b; + var value = t.c; + var left = t.d; + var right = t.e; + var $temp$func = func, + $temp$acc = A3( + func, + key, + value, + A3($elm$core$Dict$foldr, func, acc, right)), + $temp$t = left; + func = $temp$func; + acc = $temp$acc; + t = $temp$t; + continue foldr; + } + } + }); +var $elm$core$Dict$toList = function (dict) { + return A3( + $elm$core$Dict$foldr, + F3( + function (key, value, list) { + return A2( + $elm$core$List$cons, + _Utils_Tuple2(key, value), + list); + }), + _List_Nil, + dict); +}; +var $elm$core$Dict$keys = function (dict) { + return A3( + $elm$core$Dict$foldr, + F3( + function (key, value, keyList) { + return A2($elm$core$List$cons, key, keyList); + }), + _List_Nil, + dict); +}; +var $elm$core$Set$toList = function (_v0) { + var dict = _v0.a; + return $elm$core$Dict$keys(dict); +}; +var $elm$core$Elm$JsArray$foldr = _JsArray_foldr; +var $elm$core$Array$foldr = F3( + function (func, baseCase, _v0) { + var tree = _v0.c; + var tail = _v0.d; + var helper = F2( + function (node, acc) { + if (node.$ === 'SubTree') { + var subTree = node.a; + return A3($elm$core$Elm$JsArray$foldr, helper, acc, subTree); + } else { + var values = node.a; + return A3($elm$core$Elm$JsArray$foldr, func, acc, values); + } + }); + return A3( + $elm$core$Elm$JsArray$foldr, + helper, + A3($elm$core$Elm$JsArray$foldr, func, baseCase, tail), + tree); + }); +var $elm$core$Array$toList = function (array) { + return A3($elm$core$Array$foldr, $elm$core$List$cons, _List_Nil, array); +}; +var $elm$core$Result$Err = function (a) { + return {$: 'Err', a: a}; +}; +var $elm$json$Json$Decode$Failure = F2( + function (a, b) { + return {$: 'Failure', a: a, b: b}; + }); +var $elm$json$Json$Decode$Field = F2( + function (a, b) { + return {$: 'Field', a: a, b: b}; + }); +var $elm$json$Json$Decode$Index = F2( + function (a, b) { + return {$: 'Index', a: a, b: b}; + }); +var $elm$core$Result$Ok = function (a) { + return {$: 'Ok', a: a}; +}; +var $elm$json$Json$Decode$OneOf = function (a) { + return {$: 'OneOf', a: a}; +}; +var $elm$core$Basics$False = {$: 'False'}; +var $elm$core$Basics$add = _Basics_add; +var $elm$core$Maybe$Just = function (a) { + return {$: 'Just', a: a}; +}; +var $elm$core$Maybe$Nothing = {$: 'Nothing'}; +var $elm$core$String$all = _String_all; +var $elm$core$Basics$and = _Basics_and; +var $elm$core$Basics$append = _Utils_append; +var $elm$json$Json$Encode$encode = _Json_encode; +var $elm$core$String$fromInt = _String_fromNumber; +var $elm$core$String$join = F2( + function (sep, chunks) { + return A2( + _String_join, + sep, + _List_toArray(chunks)); + }); +var $elm$core$String$split = F2( + function (sep, string) { + return _List_fromArray( + A2(_String_split, sep, string)); + }); +var $elm$json$Json$Decode$indent = function (str) { + return A2( + $elm$core$String$join, + '\n ', + A2($elm$core$String$split, '\n', str)); +}; +var $elm$core$List$foldl = F3( + function (func, acc, list) { + foldl: + while (true) { + if (!list.b) { + return acc; + } else { + var x = list.a; + var xs = list.b; + var $temp$func = func, + $temp$acc = A2(func, x, acc), + $temp$list = xs; + func = $temp$func; + acc = $temp$acc; + list = $temp$list; + continue foldl; + } + } + }); +var $elm$core$List$length = function (xs) { + return A3( + $elm$core$List$foldl, + F2( + function (_v0, i) { + return i + 1; + }), + 0, + xs); +}; +var $elm$core$List$map2 = _List_map2; +var $elm$core$Basics$le = _Utils_le; +var $elm$core$Basics$sub = _Basics_sub; +var $elm$core$List$rangeHelp = F3( + function (lo, hi, list) { + rangeHelp: + while (true) { + if (_Utils_cmp(lo, hi) < 1) { + var $temp$lo = lo, + $temp$hi = hi - 1, + $temp$list = A2($elm$core$List$cons, hi, list); + lo = $temp$lo; + hi = $temp$hi; + list = $temp$list; + continue rangeHelp; + } else { + return list; + } + } + }); +var $elm$core$List$range = F2( + function (lo, hi) { + return A3($elm$core$List$rangeHelp, lo, hi, _List_Nil); + }); +var $elm$core$List$indexedMap = F2( + function (f, xs) { + return A3( + $elm$core$List$map2, + f, + A2( + $elm$core$List$range, + 0, + $elm$core$List$length(xs) - 1), + xs); + }); +var $elm$core$Char$toCode = _Char_toCode; +var $elm$core$Char$isLower = function (_char) { + var code = $elm$core$Char$toCode(_char); + return (97 <= code) && (code <= 122); +}; +var $elm$core$Char$isUpper = function (_char) { + var code = $elm$core$Char$toCode(_char); + return (code <= 90) && (65 <= code); +}; +var $elm$core$Basics$or = _Basics_or; +var $elm$core$Char$isAlpha = function (_char) { + return $elm$core$Char$isLower(_char) || $elm$core$Char$isUpper(_char); +}; +var $elm$core$Char$isDigit = function (_char) { + var code = $elm$core$Char$toCode(_char); + return (code <= 57) && (48 <= code); +}; +var $elm$core$Char$isAlphaNum = function (_char) { + return $elm$core$Char$isLower(_char) || ($elm$core$Char$isUpper(_char) || $elm$core$Char$isDigit(_char)); +}; +var $elm$core$List$reverse = function (list) { + return A3($elm$core$List$foldl, $elm$core$List$cons, _List_Nil, list); +}; +var $elm$core$String$uncons = _String_uncons; +var $elm$json$Json$Decode$errorOneOf = F2( + function (i, error) { + return '\n\n(' + ($elm$core$String$fromInt(i + 1) + (') ' + $elm$json$Json$Decode$indent( + $elm$json$Json$Decode$errorToString(error)))); + }); +var $elm$json$Json$Decode$errorToString = function (error) { + return A2($elm$json$Json$Decode$errorToStringHelp, error, _List_Nil); +}; +var $elm$json$Json$Decode$errorToStringHelp = F2( + function (error, context) { + errorToStringHelp: + while (true) { + switch (error.$) { + case 'Field': + var f = error.a; + var err = error.b; + var isSimple = function () { + var _v1 = $elm$core$String$uncons(f); + if (_v1.$ === 'Nothing') { + return false; + } else { + var _v2 = _v1.a; + var _char = _v2.a; + var rest = _v2.b; + return $elm$core$Char$isAlpha(_char) && A2($elm$core$String$all, $elm$core$Char$isAlphaNum, rest); + } + }(); + var fieldName = isSimple ? ('.' + f) : ('[\'' + (f + '\']')); + var $temp$error = err, + $temp$context = A2($elm$core$List$cons, fieldName, context); + error = $temp$error; + context = $temp$context; + continue errorToStringHelp; + case 'Index': + var i = error.a; + var err = error.b; + var indexName = '[' + ($elm$core$String$fromInt(i) + ']'); + var $temp$error = err, + $temp$context = A2($elm$core$List$cons, indexName, context); + error = $temp$error; + context = $temp$context; + continue errorToStringHelp; + case 'OneOf': + var errors = error.a; + if (!errors.b) { + return 'Ran into a Json.Decode.oneOf with no possibilities' + function () { + if (!context.b) { + return '!'; + } else { + return ' at json' + A2( + $elm$core$String$join, + '', + $elm$core$List$reverse(context)); + } + }(); + } else { + if (!errors.b.b) { + var err = errors.a; + var $temp$error = err, + $temp$context = context; + error = $temp$error; + context = $temp$context; + continue errorToStringHelp; + } else { + var starter = function () { + if (!context.b) { + return 'Json.Decode.oneOf'; + } else { + return 'The Json.Decode.oneOf at json' + A2( + $elm$core$String$join, + '', + $elm$core$List$reverse(context)); + } + }(); + var introduction = starter + (' failed in the following ' + ($elm$core$String$fromInt( + $elm$core$List$length(errors)) + ' ways:')); + return A2( + $elm$core$String$join, + '\n\n', + A2( + $elm$core$List$cons, + introduction, + A2($elm$core$List$indexedMap, $elm$json$Json$Decode$errorOneOf, errors))); + } + } + default: + var msg = error.a; + var json = error.b; + var introduction = function () { + if (!context.b) { + return 'Problem with the given value:\n\n'; + } else { + return 'Problem with the value at json' + (A2( + $elm$core$String$join, + '', + $elm$core$List$reverse(context)) + ':\n\n '); + } + }(); + return introduction + ($elm$json$Json$Decode$indent( + A2($elm$json$Json$Encode$encode, 4, json)) + ('\n\n' + msg)); + } + } + }); +var $elm$core$Array$branchFactor = 32; +var $elm$core$Array$Array_elm_builtin = F4( + function (a, b, c, d) { + return {$: 'Array_elm_builtin', a: a, b: b, c: c, d: d}; + }); +var $elm$core$Elm$JsArray$empty = _JsArray_empty; +var $elm$core$Basics$ceiling = _Basics_ceiling; +var $elm$core$Basics$fdiv = _Basics_fdiv; +var $elm$core$Basics$logBase = F2( + function (base, number) { + return _Basics_log(number) / _Basics_log(base); + }); +var $elm$core$Basics$toFloat = _Basics_toFloat; +var $elm$core$Array$shiftStep = $elm$core$Basics$ceiling( + A2($elm$core$Basics$logBase, 2, $elm$core$Array$branchFactor)); +var $elm$core$Array$empty = A4($elm$core$Array$Array_elm_builtin, 0, $elm$core$Array$shiftStep, $elm$core$Elm$JsArray$empty, $elm$core$Elm$JsArray$empty); +var $elm$core$Elm$JsArray$initialize = _JsArray_initialize; +var $elm$core$Array$Leaf = function (a) { + return {$: 'Leaf', a: a}; +}; +var $elm$core$Basics$apL = F2( + function (f, x) { + return f(x); + }); +var $elm$core$Basics$apR = F2( + function (x, f) { + return f(x); + }); +var $elm$core$Basics$eq = _Utils_equal; +var $elm$core$Basics$floor = _Basics_floor; +var $elm$core$Elm$JsArray$length = _JsArray_length; +var $elm$core$Basics$gt = _Utils_gt; +var $elm$core$Basics$max = F2( + function (x, y) { + return (_Utils_cmp(x, y) > 0) ? x : y; + }); +var $elm$core$Basics$mul = _Basics_mul; +var $elm$core$Array$SubTree = function (a) { + return {$: 'SubTree', a: a}; +}; +var $elm$core$Elm$JsArray$initializeFromList = _JsArray_initializeFromList; +var $elm$core$Array$compressNodes = F2( + function (nodes, acc) { + compressNodes: + while (true) { + var _v0 = A2($elm$core$Elm$JsArray$initializeFromList, $elm$core$Array$branchFactor, nodes); + var node = _v0.a; + var remainingNodes = _v0.b; + var newAcc = A2( + $elm$core$List$cons, + $elm$core$Array$SubTree(node), + acc); + if (!remainingNodes.b) { + return $elm$core$List$reverse(newAcc); + } else { + var $temp$nodes = remainingNodes, + $temp$acc = newAcc; + nodes = $temp$nodes; + acc = $temp$acc; + continue compressNodes; + } + } + }); +var $elm$core$Tuple$first = function (_v0) { + var x = _v0.a; + return x; +}; +var $elm$core$Array$treeFromBuilder = F2( + function (nodeList, nodeListSize) { + treeFromBuilder: + while (true) { + var newNodeSize = $elm$core$Basics$ceiling(nodeListSize / $elm$core$Array$branchFactor); + if (newNodeSize === 1) { + return A2($elm$core$Elm$JsArray$initializeFromList, $elm$core$Array$branchFactor, nodeList).a; + } else { + var $temp$nodeList = A2($elm$core$Array$compressNodes, nodeList, _List_Nil), + $temp$nodeListSize = newNodeSize; + nodeList = $temp$nodeList; + nodeListSize = $temp$nodeListSize; + continue treeFromBuilder; + } + } + }); +var $elm$core$Array$builderToArray = F2( + function (reverseNodeList, builder) { + if (!builder.nodeListSize) { + return A4( + $elm$core$Array$Array_elm_builtin, + $elm$core$Elm$JsArray$length(builder.tail), + $elm$core$Array$shiftStep, + $elm$core$Elm$JsArray$empty, + builder.tail); + } else { + var treeLen = builder.nodeListSize * $elm$core$Array$branchFactor; + var depth = $elm$core$Basics$floor( + A2($elm$core$Basics$logBase, $elm$core$Array$branchFactor, treeLen - 1)); + var correctNodeList = reverseNodeList ? $elm$core$List$reverse(builder.nodeList) : builder.nodeList; + var tree = A2($elm$core$Array$treeFromBuilder, correctNodeList, builder.nodeListSize); + return A4( + $elm$core$Array$Array_elm_builtin, + $elm$core$Elm$JsArray$length(builder.tail) + treeLen, + A2($elm$core$Basics$max, 5, depth * $elm$core$Array$shiftStep), + tree, + builder.tail); + } + }); +var $elm$core$Basics$idiv = _Basics_idiv; +var $elm$core$Basics$lt = _Utils_lt; +var $elm$core$Array$initializeHelp = F5( + function (fn, fromIndex, len, nodeList, tail) { + initializeHelp: + while (true) { + if (fromIndex < 0) { + return A2( + $elm$core$Array$builderToArray, + false, + {nodeList: nodeList, nodeListSize: (len / $elm$core$Array$branchFactor) | 0, tail: tail}); + } else { + var leaf = $elm$core$Array$Leaf( + A3($elm$core$Elm$JsArray$initialize, $elm$core$Array$branchFactor, fromIndex, fn)); + var $temp$fn = fn, + $temp$fromIndex = fromIndex - $elm$core$Array$branchFactor, + $temp$len = len, + $temp$nodeList = A2($elm$core$List$cons, leaf, nodeList), + $temp$tail = tail; + fn = $temp$fn; + fromIndex = $temp$fromIndex; + len = $temp$len; + nodeList = $temp$nodeList; + tail = $temp$tail; + continue initializeHelp; + } + } + }); +var $elm$core$Basics$remainderBy = _Basics_remainderBy; +var $elm$core$Array$initialize = F2( + function (len, fn) { + if (len <= 0) { + return $elm$core$Array$empty; + } else { + var tailLen = len % $elm$core$Array$branchFactor; + var tail = A3($elm$core$Elm$JsArray$initialize, tailLen, len - tailLen, fn); + var initialFromIndex = (len - tailLen) - $elm$core$Array$branchFactor; + return A5($elm$core$Array$initializeHelp, fn, initialFromIndex, len, _List_Nil, tail); + } + }); +var $elm$core$Basics$True = {$: 'True'}; +var $elm$core$Result$isOk = function (result) { + if (result.$ === 'Ok') { + return true; + } else { + return false; + } +}; +var $elm$json$Json$Decode$map = _Json_map1; +var $elm$json$Json$Decode$map2 = _Json_map2; +var $elm$json$Json$Decode$succeed = _Json_succeed; +var $elm$virtual_dom$VirtualDom$toHandlerInt = function (handler) { + switch (handler.$) { + case 'Normal': + return 0; + case 'MayStopPropagation': + return 1; + case 'MayPreventDefault': + return 2; + default: + return 3; + } +}; +var $elm$browser$Browser$External = function (a) { + return {$: 'External', a: a}; +}; +var $elm$browser$Browser$Internal = function (a) { + return {$: 'Internal', a: a}; +}; +var $elm$core$Basics$identity = function (x) { + return x; +}; +var $elm$browser$Browser$Dom$NotFound = function (a) { + return {$: 'NotFound', a: a}; +}; +var $elm$url$Url$Http = {$: 'Http'}; +var $elm$url$Url$Https = {$: 'Https'}; +var $elm$url$Url$Url = F6( + function (protocol, host, port_, path, query, fragment) { + return {fragment: fragment, host: host, path: path, port_: port_, protocol: protocol, query: query}; + }); +var $elm$core$String$contains = _String_contains; +var $elm$core$String$length = _String_length; +var $elm$core$String$slice = _String_slice; +var $elm$core$String$dropLeft = F2( + function (n, string) { + return (n < 1) ? string : A3( + $elm$core$String$slice, + n, + $elm$core$String$length(string), + string); + }); +var $elm$core$String$indexes = _String_indexes; +var $elm$core$String$isEmpty = function (string) { + return string === ''; +}; +var $elm$core$String$left = F2( + function (n, string) { + return (n < 1) ? '' : A3($elm$core$String$slice, 0, n, string); + }); +var $elm$core$String$toInt = _String_toInt; +var $elm$url$Url$chompBeforePath = F5( + function (protocol, path, params, frag, str) { + if ($elm$core$String$isEmpty(str) || A2($elm$core$String$contains, '@', str)) { + return $elm$core$Maybe$Nothing; + } else { + var _v0 = A2($elm$core$String$indexes, ':', str); + if (!_v0.b) { + return $elm$core$Maybe$Just( + A6($elm$url$Url$Url, protocol, str, $elm$core$Maybe$Nothing, path, params, frag)); + } else { + if (!_v0.b.b) { + var i = _v0.a; + var _v1 = $elm$core$String$toInt( + A2($elm$core$String$dropLeft, i + 1, str)); + if (_v1.$ === 'Nothing') { + return $elm$core$Maybe$Nothing; + } else { + var port_ = _v1; + return $elm$core$Maybe$Just( + A6( + $elm$url$Url$Url, + protocol, + A2($elm$core$String$left, i, str), + port_, + path, + params, + frag)); + } + } else { + return $elm$core$Maybe$Nothing; + } + } + } + }); +var $elm$url$Url$chompBeforeQuery = F4( + function (protocol, params, frag, str) { + if ($elm$core$String$isEmpty(str)) { + return $elm$core$Maybe$Nothing; + } else { + var _v0 = A2($elm$core$String$indexes, '/', str); + if (!_v0.b) { + return A5($elm$url$Url$chompBeforePath, protocol, '/', params, frag, str); + } else { + var i = _v0.a; + return A5( + $elm$url$Url$chompBeforePath, + protocol, + A2($elm$core$String$dropLeft, i, str), + params, + frag, + A2($elm$core$String$left, i, str)); + } + } + }); +var $elm$url$Url$chompBeforeFragment = F3( + function (protocol, frag, str) { + if ($elm$core$String$isEmpty(str)) { + return $elm$core$Maybe$Nothing; + } else { + var _v0 = A2($elm$core$String$indexes, '?', str); + if (!_v0.b) { + return A4($elm$url$Url$chompBeforeQuery, protocol, $elm$core$Maybe$Nothing, frag, str); + } else { + var i = _v0.a; + return A4( + $elm$url$Url$chompBeforeQuery, + protocol, + $elm$core$Maybe$Just( + A2($elm$core$String$dropLeft, i + 1, str)), + frag, + A2($elm$core$String$left, i, str)); + } + } + }); +var $elm$url$Url$chompAfterProtocol = F2( + function (protocol, str) { + if ($elm$core$String$isEmpty(str)) { + return $elm$core$Maybe$Nothing; + } else { + var _v0 = A2($elm$core$String$indexes, '#', str); + if (!_v0.b) { + return A3($elm$url$Url$chompBeforeFragment, protocol, $elm$core$Maybe$Nothing, str); + } else { + var i = _v0.a; + return A3( + $elm$url$Url$chompBeforeFragment, + protocol, + $elm$core$Maybe$Just( + A2($elm$core$String$dropLeft, i + 1, str)), + A2($elm$core$String$left, i, str)); + } + } + }); +var $elm$core$String$startsWith = _String_startsWith; +var $elm$url$Url$fromString = function (str) { + return A2($elm$core$String$startsWith, 'http://', str) ? A2( + $elm$url$Url$chompAfterProtocol, + $elm$url$Url$Http, + A2($elm$core$String$dropLeft, 7, str)) : (A2($elm$core$String$startsWith, 'https://', str) ? A2( + $elm$url$Url$chompAfterProtocol, + $elm$url$Url$Https, + A2($elm$core$String$dropLeft, 8, str)) : $elm$core$Maybe$Nothing); +}; +var $elm$core$Basics$never = function (_v0) { + never: + while (true) { + var nvr = _v0.a; + var $temp$_v0 = nvr; + _v0 = $temp$_v0; + continue never; + } +}; +var $elm$core$Task$Perform = function (a) { + return {$: 'Perform', a: a}; +}; +var $elm$core$Task$succeed = _Scheduler_succeed; +var $elm$core$Task$init = $elm$core$Task$succeed(_Utils_Tuple0); +var $elm$core$List$foldrHelper = F4( + function (fn, acc, ctr, ls) { + if (!ls.b) { + return acc; + } else { + var a = ls.a; + var r1 = ls.b; + if (!r1.b) { + return A2(fn, a, acc); + } else { + var b = r1.a; + var r2 = r1.b; + if (!r2.b) { + return A2( + fn, + a, + A2(fn, b, acc)); + } else { + var c = r2.a; + var r3 = r2.b; + if (!r3.b) { + return A2( + fn, + a, + A2( + fn, + b, + A2(fn, c, acc))); + } else { + var d = r3.a; + var r4 = r3.b; + var res = (ctr > 500) ? A3( + $elm$core$List$foldl, + fn, + acc, + $elm$core$List$reverse(r4)) : A4($elm$core$List$foldrHelper, fn, acc, ctr + 1, r4); + return A2( + fn, + a, + A2( + fn, + b, + A2( + fn, + c, + A2(fn, d, res)))); + } + } + } + } + }); +var $elm$core$List$foldr = F3( + function (fn, acc, ls) { + return A4($elm$core$List$foldrHelper, fn, acc, 0, ls); + }); +var $elm$core$List$map = F2( + function (f, xs) { + return A3( + $elm$core$List$foldr, + F2( + function (x, acc) { + return A2( + $elm$core$List$cons, + f(x), + acc); + }), + _List_Nil, + xs); + }); +var $elm$core$Task$andThen = _Scheduler_andThen; +var $elm$core$Task$map = F2( + function (func, taskA) { + return A2( + $elm$core$Task$andThen, + function (a) { + return $elm$core$Task$succeed( + func(a)); + }, + taskA); + }); +var $elm$core$Task$map2 = F3( + function (func, taskA, taskB) { + return A2( + $elm$core$Task$andThen, + function (a) { + return A2( + $elm$core$Task$andThen, + function (b) { + return $elm$core$Task$succeed( + A2(func, a, b)); + }, + taskB); + }, + taskA); + }); +var $elm$core$Task$sequence = function (tasks) { + return A3( + $elm$core$List$foldr, + $elm$core$Task$map2($elm$core$List$cons), + $elm$core$Task$succeed(_List_Nil), + tasks); +}; +var $elm$core$Platform$sendToApp = _Platform_sendToApp; +var $elm$core$Task$spawnCmd = F2( + function (router, _v0) { + var task = _v0.a; + return _Scheduler_spawn( + A2( + $elm$core$Task$andThen, + $elm$core$Platform$sendToApp(router), + task)); + }); +var $elm$core$Task$onEffects = F3( + function (router, commands, state) { + return A2( + $elm$core$Task$map, + function (_v0) { + return _Utils_Tuple0; + }, + $elm$core$Task$sequence( + A2( + $elm$core$List$map, + $elm$core$Task$spawnCmd(router), + commands))); + }); +var $elm$core$Task$onSelfMsg = F3( + function (_v0, _v1, _v2) { + return $elm$core$Task$succeed(_Utils_Tuple0); + }); +var $elm$core$Task$cmdMap = F2( + function (tagger, _v0) { + var task = _v0.a; + return $elm$core$Task$Perform( + A2($elm$core$Task$map, tagger, task)); + }); +_Platform_effectManagers['Task'] = _Platform_createManager($elm$core$Task$init, $elm$core$Task$onEffects, $elm$core$Task$onSelfMsg, $elm$core$Task$cmdMap); +var $elm$core$Task$command = _Platform_leaf('Task'); +var $elm$core$Task$perform = F2( + function (toMessage, task) { + return $elm$core$Task$command( + $elm$core$Task$Perform( + A2($elm$core$Task$map, toMessage, task))); + }); +var $elm$browser$Browser$element = _Browser_element; +var $author$project$Morphir$Web$Insight$Failed = function (a) { + return {$: 'Failed', a: a}; +}; +var $author$project$Morphir$Web$Insight$IRLoaded = function (a) { + return {$: 'IRLoaded', a: a}; +}; +var $author$project$Morphir$Web$Insight$Flag = F2( + function (distribution, config) { + return {config: config, distribution: distribution}; + }); +var $author$project$Morphir$Visual$Theme$ThemeConfig = F2( + function (fontSize, decimalDigit) { + return {decimalDigit: decimalDigit, fontSize: fontSize}; + }); +var $elm$json$Json$Decode$field = _Json_decodeField; +var $elm$json$Json$Decode$int = _Json_decodeInt; +var $elm$json$Json$Decode$oneOf = _Json_oneOf; +var $elm$json$Json$Decode$maybe = function (decoder) { + return $elm$json$Json$Decode$oneOf( + _List_fromArray( + [ + A2($elm$json$Json$Decode$map, $elm$core$Maybe$Just, decoder), + $elm$json$Json$Decode$succeed($elm$core$Maybe$Nothing) + ])); +}; +var $author$project$Morphir$Visual$Theme$Codec$decodeThemeConfig = A3( + $elm$json$Json$Decode$map2, + $author$project$Morphir$Visual$Theme$ThemeConfig, + $elm$json$Json$Decode$maybe( + A2($elm$json$Json$Decode$field, 'fontSize', $elm$json$Json$Decode$int)), + $elm$json$Json$Decode$maybe( + A2($elm$json$Json$Decode$field, 'decimalDigit', $elm$json$Json$Decode$int))); +var $elm$json$Json$Decode$andThen = _Json_andThen; +var $elm$core$String$concat = function (strings) { + return A2($elm$core$String$join, '', strings); +}; +var $author$project$Morphir$IR$Distribution$Codec$currentFormatVersion = 1; +var $author$project$Morphir$IR$Distribution$Library = F3( + function (a, b, c) { + return {$: 'Library', a: a, b: b, c: c}; + }); +var $author$project$Morphir$IR$Package$Definition = function (modules) { + return {modules: modules}; +}; +var $author$project$Morphir$IR$AccessControlled$AccessControlled = F2( + function (access, value) { + return {access: access, value: value}; + }); +var $author$project$Morphir$IR$AccessControlled$Private = {$: 'Private'}; +var $author$project$Morphir$IR$AccessControlled$Public = {$: 'Public'}; +var $elm$json$Json$Decode$fail = _Json_fail; +var $elm$json$Json$Decode$index = _Json_decodeIndex; +var $elm$json$Json$Decode$string = _Json_decodeString; +var $author$project$Morphir$IR$AccessControlled$Codec$decodeAccessControlled = function (decodeValue) { + return A2( + $elm$json$Json$Decode$andThen, + function (tag) { + switch (tag) { + case 'public': + return A2( + $elm$json$Json$Decode$map, + $author$project$Morphir$IR$AccessControlled$AccessControlled($author$project$Morphir$IR$AccessControlled$Public), + A2($elm$json$Json$Decode$index, 1, decodeValue)); + case 'private': + return A2( + $elm$json$Json$Decode$map, + $author$project$Morphir$IR$AccessControlled$AccessControlled($author$project$Morphir$IR$AccessControlled$Private), + A2($elm$json$Json$Decode$index, 1, decodeValue)); + default: + var other = tag; + return $elm$json$Json$Decode$fail('Unknown access controlled type: ' + other); + } + }, + A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string)); +}; +var $author$project$Morphir$IR$Module$Definition = F2( + function (types, values) { + return {types: types, values: values}; + }); +var $author$project$Morphir$IR$Type$CustomTypeDefinition = F2( + function (a, b) { + return {$: 'CustomTypeDefinition', a: a, b: b}; + }); +var $author$project$Morphir$IR$Type$TypeAliasDefinition = F2( + function (a, b) { + return {$: 'TypeAliasDefinition', a: a, b: b}; + }); +var $author$project$Morphir$IR$Name$fromList = function (words) { + return words; +}; +var $elm$json$Json$Decode$list = _Json_decodeList; +var $author$project$Morphir$IR$Name$Codec$decodeName = A2( + $elm$json$Json$Decode$map, + $author$project$Morphir$IR$Name$fromList, + $elm$json$Json$Decode$list($elm$json$Json$Decode$string)); +var $author$project$Morphir$IR$Type$ExtensibleRecord = F3( + function (a, b, c) { + return {$: 'ExtensibleRecord', a: a, b: b, c: c}; + }); +var $author$project$Morphir$IR$Type$Field = F2( + function (name, tpe) { + return {name: name, tpe: tpe}; + }); +var $author$project$Morphir$IR$Type$Function = F3( + function (a, b, c) { + return {$: 'Function', a: a, b: b, c: c}; + }); +var $author$project$Morphir$IR$Type$Record = F2( + function (a, b) { + return {$: 'Record', a: a, b: b}; + }); +var $author$project$Morphir$IR$Type$Reference = F3( + function (a, b, c) { + return {$: 'Reference', a: a, b: b, c: c}; + }); +var $author$project$Morphir$IR$Type$Tuple = F2( + function (a, b) { + return {$: 'Tuple', a: a, b: b}; + }); +var $author$project$Morphir$IR$Type$Unit = function (a) { + return {$: 'Unit', a: a}; +}; +var $author$project$Morphir$IR$Type$Variable = F2( + function (a, b) { + return {$: 'Variable', a: a, b: b}; + }); +var $author$project$Morphir$IR$Path$fromList = function (names) { + return names; +}; +var $author$project$Morphir$IR$Path$Codec$decodePath = A2( + $elm$json$Json$Decode$map, + $author$project$Morphir$IR$Path$fromList, + $elm$json$Json$Decode$list($author$project$Morphir$IR$Name$Codec$decodeName)); +var $author$project$Morphir$IR$FQName$fQName = F3( + function (packagePath, modulePath, localName) { + return _Utils_Tuple3(packagePath, modulePath, localName); + }); +var $elm$json$Json$Decode$map3 = _Json_map3; +var $author$project$Morphir$IR$FQName$Codec$decodeFQName = A4( + $elm$json$Json$Decode$map3, + $author$project$Morphir$IR$FQName$fQName, + A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Path$Codec$decodePath), + A2($elm$json$Json$Decode$index, 1, $author$project$Morphir$IR$Path$Codec$decodePath), + A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Name$Codec$decodeName)); +var $elm$json$Json$Decode$lazy = function (thunk) { + return A2( + $elm$json$Json$Decode$andThen, + thunk, + $elm$json$Json$Decode$succeed(_Utils_Tuple0)); +}; +var $author$project$Morphir$IR$Type$Codec$decodeField = function (decodeAttributes) { + return A3( + $elm$json$Json$Decode$map2, + $author$project$Morphir$IR$Type$Field, + A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName), + A2( + $elm$json$Json$Decode$index, + 1, + $author$project$Morphir$IR$Type$Codec$decodeType(decodeAttributes))); +}; +var $author$project$Morphir$IR$Type$Codec$decodeType = function (decodeAttributes) { + var lazyDecodeType = $elm$json$Json$Decode$lazy( + function (_v3) { + return $author$project$Morphir$IR$Type$Codec$decodeType(decodeAttributes); + }); + var lazyDecodeField = $elm$json$Json$Decode$lazy( + function (_v2) { + return $author$project$Morphir$IR$Type$Codec$decodeField(decodeAttributes); + }); + return A2( + $elm$json$Json$Decode$andThen, + function (kind) { + switch (kind) { + case 'variable': + return A3( + $elm$json$Json$Decode$map2, + $author$project$Morphir$IR$Type$Variable, + A2($elm$json$Json$Decode$index, 1, decodeAttributes), + A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Name$Codec$decodeName)); + case 'reference': + return A4( + $elm$json$Json$Decode$map3, + $author$project$Morphir$IR$Type$Reference, + A2($elm$json$Json$Decode$index, 1, decodeAttributes), + A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$FQName$Codec$decodeFQName), + A2( + $elm$json$Json$Decode$index, + 3, + $elm$json$Json$Decode$list( + $elm$json$Json$Decode$lazy( + function (_v1) { + return $author$project$Morphir$IR$Type$Codec$decodeType(decodeAttributes); + })))); + case 'tuple': + return A3( + $elm$json$Json$Decode$map2, + $author$project$Morphir$IR$Type$Tuple, + A2($elm$json$Json$Decode$index, 1, decodeAttributes), + A2( + $elm$json$Json$Decode$index, + 2, + $elm$json$Json$Decode$list(lazyDecodeType))); + case 'record': + return A3( + $elm$json$Json$Decode$map2, + $author$project$Morphir$IR$Type$Record, + A2($elm$json$Json$Decode$index, 1, decodeAttributes), + A2( + $elm$json$Json$Decode$index, + 2, + $elm$json$Json$Decode$list(lazyDecodeField))); + case 'extensible_record': + return A4( + $elm$json$Json$Decode$map3, + $author$project$Morphir$IR$Type$ExtensibleRecord, + A2($elm$json$Json$Decode$index, 1, decodeAttributes), + A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Name$Codec$decodeName), + A2( + $elm$json$Json$Decode$index, + 3, + $elm$json$Json$Decode$list(lazyDecodeField))); + case 'function': + return A4( + $elm$json$Json$Decode$map3, + $author$project$Morphir$IR$Type$Function, + A2($elm$json$Json$Decode$index, 1, decodeAttributes), + A2($elm$json$Json$Decode$index, 2, lazyDecodeType), + A2($elm$json$Json$Decode$index, 3, lazyDecodeType)); + case 'unit': + return A2( + $elm$json$Json$Decode$map, + $author$project$Morphir$IR$Type$Unit, + A2($elm$json$Json$Decode$index, 1, decodeAttributes)); + default: + return $elm$json$Json$Decode$fail('Unknown kind: ' + kind); + } + }, + A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string)); +}; +var $elm$core$Dict$RBEmpty_elm_builtin = {$: 'RBEmpty_elm_builtin'}; +var $elm$core$Dict$empty = $elm$core$Dict$RBEmpty_elm_builtin; +var $elm$core$Dict$Black = {$: 'Black'}; +var $elm$core$Dict$RBNode_elm_builtin = F5( + function (a, b, c, d, e) { + return {$: 'RBNode_elm_builtin', a: a, b: b, c: c, d: d, e: e}; + }); +var $elm$core$Dict$Red = {$: 'Red'}; +var $elm$core$Dict$balance = F5( + function (color, key, value, left, right) { + if ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Red')) { + var _v1 = right.a; + var rK = right.b; + var rV = right.c; + var rLeft = right.d; + var rRight = right.e; + if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) { + var _v3 = left.a; + var lK = left.b; + var lV = left.c; + var lLeft = left.d; + var lRight = left.e; + return A5( + $elm$core$Dict$RBNode_elm_builtin, + $elm$core$Dict$Red, + key, + value, + A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, lK, lV, lLeft, lRight), + A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, rK, rV, rLeft, rRight)); + } else { + return A5( + $elm$core$Dict$RBNode_elm_builtin, + color, + rK, + rV, + A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, key, value, left, rLeft), + rRight); + } + } else { + if ((((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) && (left.d.$ === 'RBNode_elm_builtin')) && (left.d.a.$ === 'Red')) { + var _v5 = left.a; + var lK = left.b; + var lV = left.c; + var _v6 = left.d; + var _v7 = _v6.a; + var llK = _v6.b; + var llV = _v6.c; + var llLeft = _v6.d; + var llRight = _v6.e; + var lRight = left.e; + return A5( + $elm$core$Dict$RBNode_elm_builtin, + $elm$core$Dict$Red, + lK, + lV, + A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, llK, llV, llLeft, llRight), + A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, key, value, lRight, right)); + } else { + return A5($elm$core$Dict$RBNode_elm_builtin, color, key, value, left, right); + } + } + }); +var $elm$core$Basics$compare = _Utils_compare; +var $elm$core$Dict$insertHelp = F3( + function (key, value, dict) { + if (dict.$ === 'RBEmpty_elm_builtin') { + return A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, key, value, $elm$core$Dict$RBEmpty_elm_builtin, $elm$core$Dict$RBEmpty_elm_builtin); + } else { + var nColor = dict.a; + var nKey = dict.b; + var nValue = dict.c; + var nLeft = dict.d; + var nRight = dict.e; + var _v1 = A2($elm$core$Basics$compare, key, nKey); + switch (_v1.$) { + case 'LT': + return A5( + $elm$core$Dict$balance, + nColor, + nKey, + nValue, + A3($elm$core$Dict$insertHelp, key, value, nLeft), + nRight); + case 'EQ': + return A5($elm$core$Dict$RBNode_elm_builtin, nColor, nKey, value, nLeft, nRight); + default: + return A5( + $elm$core$Dict$balance, + nColor, + nKey, + nValue, + nLeft, + A3($elm$core$Dict$insertHelp, key, value, nRight)); + } + } + }); +var $elm$core$Dict$insert = F3( + function (key, value, dict) { + var _v0 = A3($elm$core$Dict$insertHelp, key, value, dict); + if ((_v0.$ === 'RBNode_elm_builtin') && (_v0.a.$ === 'Red')) { + var _v1 = _v0.a; + var k = _v0.b; + var v = _v0.c; + var l = _v0.d; + var r = _v0.e; + return A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, k, v, l, r); + } else { + var x = _v0; + return x; + } + }); +var $elm$core$Dict$fromList = function (assocs) { + return A3( + $elm$core$List$foldl, + F2( + function (_v0, dict) { + var key = _v0.a; + var value = _v0.b; + return A3($elm$core$Dict$insert, key, value, dict); + }), + $elm$core$Dict$empty, + assocs); +}; +var $elm$core$Tuple$pair = F2( + function (a, b) { + return _Utils_Tuple2(a, b); + }); +var $author$project$Morphir$IR$Type$Codec$decodeConstructors = function (decodeAttributes) { + return A2( + $elm$json$Json$Decode$map, + $elm$core$Dict$fromList, + $elm$json$Json$Decode$list( + A3( + $elm$json$Json$Decode$map2, + $elm$core$Tuple$pair, + A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName), + A2( + $elm$json$Json$Decode$index, + 1, + $elm$json$Json$Decode$list( + A3( + $elm$json$Json$Decode$map2, + $elm$core$Tuple$pair, + A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName), + A2( + $elm$json$Json$Decode$index, + 1, + $author$project$Morphir$IR$Type$Codec$decodeType(decodeAttributes)))))))); +}; +var $author$project$Morphir$IR$Type$Codec$decodeDefinition = function (decodeAttributes) { + return A2( + $elm$json$Json$Decode$andThen, + function (kind) { + switch (kind) { + case 'type_alias_definition': + return A3( + $elm$json$Json$Decode$map2, + $author$project$Morphir$IR$Type$TypeAliasDefinition, + A2( + $elm$json$Json$Decode$index, + 1, + $elm$json$Json$Decode$list($author$project$Morphir$IR$Name$Codec$decodeName)), + A2( + $elm$json$Json$Decode$index, + 2, + $author$project$Morphir$IR$Type$Codec$decodeType(decodeAttributes))); + case 'custom_type_definition': + return A3( + $elm$json$Json$Decode$map2, + $author$project$Morphir$IR$Type$CustomTypeDefinition, + A2( + $elm$json$Json$Decode$index, + 1, + $elm$json$Json$Decode$list($author$project$Morphir$IR$Name$Codec$decodeName)), + A2( + $elm$json$Json$Decode$index, + 2, + $author$project$Morphir$IR$AccessControlled$Codec$decodeAccessControlled( + $author$project$Morphir$IR$Type$Codec$decodeConstructors(decodeAttributes)))); + default: + return $elm$json$Json$Decode$fail('Unknown kind: ' + kind); + } + }, + A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string)); +}; +var $author$project$Morphir$IR$Value$Apply = F3( + function (a, b, c) { + return {$: 'Apply', a: a, b: b, c: c}; + }); +var $author$project$Morphir$IR$Value$Constructor = F2( + function (a, b) { + return {$: 'Constructor', a: a, b: b}; + }); +var $author$project$Morphir$IR$Value$Definition = F3( + function (inputTypes, outputType, body) { + return {body: body, inputTypes: inputTypes, outputType: outputType}; + }); +var $author$project$Morphir$IR$Value$Destructure = F4( + function (a, b, c, d) { + return {$: 'Destructure', a: a, b: b, c: c, d: d}; + }); +var $author$project$Morphir$IR$Value$Field = F3( + function (a, b, c) { + return {$: 'Field', a: a, b: b, c: c}; + }); +var $author$project$Morphir$IR$Value$FieldFunction = F2( + function (a, b) { + return {$: 'FieldFunction', a: a, b: b}; + }); +var $author$project$Morphir$IR$Value$IfThenElse = F4( + function (a, b, c, d) { + return {$: 'IfThenElse', a: a, b: b, c: c, d: d}; + }); +var $author$project$Morphir$IR$Value$Lambda = F3( + function (a, b, c) { + return {$: 'Lambda', a: a, b: b, c: c}; + }); +var $author$project$Morphir$IR$Value$LetDefinition = F4( + function (a, b, c, d) { + return {$: 'LetDefinition', a: a, b: b, c: c, d: d}; + }); +var $author$project$Morphir$IR$Value$LetRecursion = F3( + function (a, b, c) { + return {$: 'LetRecursion', a: a, b: b, c: c}; + }); +var $author$project$Morphir$IR$Value$List = F2( + function (a, b) { + return {$: 'List', a: a, b: b}; + }); +var $author$project$Morphir$IR$Value$Literal = F2( + function (a, b) { + return {$: 'Literal', a: a, b: b}; + }); +var $author$project$Morphir$IR$Value$PatternMatch = F3( + function (a, b, c) { + return {$: 'PatternMatch', a: a, b: b, c: c}; + }); +var $author$project$Morphir$IR$Value$Record = F2( + function (a, b) { + return {$: 'Record', a: a, b: b}; + }); +var $author$project$Morphir$IR$Value$Reference = F2( + function (a, b) { + return {$: 'Reference', a: a, b: b}; + }); +var $author$project$Morphir$IR$Value$Tuple = F2( + function (a, b) { + return {$: 'Tuple', a: a, b: b}; + }); +var $author$project$Morphir$IR$Value$Unit = function (a) { + return {$: 'Unit', a: a}; +}; +var $author$project$Morphir$IR$Value$UpdateRecord = F3( + function (a, b, c) { + return {$: 'UpdateRecord', a: a, b: b, c: c}; + }); +var $author$project$Morphir$IR$Value$Variable = F2( + function (a, b) { + return {$: 'Variable', a: a, b: b}; + }); +var $author$project$Morphir$IR$Literal$BoolLiteral = function (a) { + return {$: 'BoolLiteral', a: a}; +}; +var $author$project$Morphir$IR$Literal$CharLiteral = function (a) { + return {$: 'CharLiteral', a: a}; +}; +var $author$project$Morphir$IR$Literal$FloatLiteral = function (a) { + return {$: 'FloatLiteral', a: a}; +}; +var $author$project$Morphir$IR$Literal$IntLiteral = function (a) { + return {$: 'IntLiteral', a: a}; +}; +var $author$project$Morphir$IR$Literal$StringLiteral = function (a) { + return {$: 'StringLiteral', a: a}; +}; +var $elm$json$Json$Decode$bool = _Json_decodeBool; +var $elm$json$Json$Decode$float = _Json_decodeFloat; +var $author$project$Morphir$IR$Literal$Codec$decodeLiteral = A2( + $elm$json$Json$Decode$andThen, + function (kind) { + switch (kind) { + case 'bool_literal': + return A2( + $elm$json$Json$Decode$map, + $author$project$Morphir$IR$Literal$BoolLiteral, + A2($elm$json$Json$Decode$index, 1, $elm$json$Json$Decode$bool)); + case 'char_literal': + return A2( + $elm$json$Json$Decode$map, + $author$project$Morphir$IR$Literal$CharLiteral, + A2( + $elm$json$Json$Decode$andThen, + function (str) { + var _v1 = $elm$core$String$uncons(str); + if (_v1.$ === 'Just') { + var _v2 = _v1.a; + var ch = _v2.a; + return $elm$json$Json$Decode$succeed(ch); + } else { + return $elm$json$Json$Decode$fail('Single char expected'); + } + }, + A2($elm$json$Json$Decode$index, 1, $elm$json$Json$Decode$string))); + case 'string_literal': + return A2( + $elm$json$Json$Decode$map, + $author$project$Morphir$IR$Literal$StringLiteral, + A2($elm$json$Json$Decode$index, 1, $elm$json$Json$Decode$string)); + case 'int_literal': + return A2( + $elm$json$Json$Decode$map, + $author$project$Morphir$IR$Literal$IntLiteral, + A2($elm$json$Json$Decode$index, 1, $elm$json$Json$Decode$int)); + case 'float_literal': + return A2( + $elm$json$Json$Decode$map, + $author$project$Morphir$IR$Literal$FloatLiteral, + A2($elm$json$Json$Decode$index, 1, $elm$json$Json$Decode$float)); + default: + var other = kind; + return $elm$json$Json$Decode$fail('Unknown literal type: ' + other); + } + }, + A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string)); +var $author$project$Morphir$IR$Value$AsPattern = F3( + function (a, b, c) { + return {$: 'AsPattern', a: a, b: b, c: c}; + }); +var $author$project$Morphir$IR$Value$ConstructorPattern = F3( + function (a, b, c) { + return {$: 'ConstructorPattern', a: a, b: b, c: c}; + }); +var $author$project$Morphir$IR$Value$EmptyListPattern = function (a) { + return {$: 'EmptyListPattern', a: a}; +}; +var $author$project$Morphir$IR$Value$HeadTailPattern = F3( + function (a, b, c) { + return {$: 'HeadTailPattern', a: a, b: b, c: c}; + }); +var $author$project$Morphir$IR$Value$LiteralPattern = F2( + function (a, b) { + return {$: 'LiteralPattern', a: a, b: b}; + }); +var $author$project$Morphir$IR$Value$TuplePattern = F2( + function (a, b) { + return {$: 'TuplePattern', a: a, b: b}; + }); +var $author$project$Morphir$IR$Value$UnitPattern = function (a) { + return {$: 'UnitPattern', a: a}; +}; +var $author$project$Morphir$IR$Value$WildcardPattern = function (a) { + return {$: 'WildcardPattern', a: a}; +}; +var $author$project$Morphir$IR$Value$Codec$decodePattern = function (decodeAttributes) { + var lazyDecodePattern = $elm$json$Json$Decode$lazy( + function (_v1) { + return $author$project$Morphir$IR$Value$Codec$decodePattern(decodeAttributes); + }); + return A2( + $elm$json$Json$Decode$andThen, + function (kind) { + switch (kind) { + case 'wildcard_pattern': + return A2( + $elm$json$Json$Decode$map, + $author$project$Morphir$IR$Value$WildcardPattern, + A2($elm$json$Json$Decode$index, 1, decodeAttributes)); + case 'as_pattern': + return A4( + $elm$json$Json$Decode$map3, + $author$project$Morphir$IR$Value$AsPattern, + A2($elm$json$Json$Decode$index, 1, decodeAttributes), + A2($elm$json$Json$Decode$index, 2, lazyDecodePattern), + A2($elm$json$Json$Decode$index, 3, $author$project$Morphir$IR$Name$Codec$decodeName)); + case 'tuple_pattern': + return A3( + $elm$json$Json$Decode$map2, + $author$project$Morphir$IR$Value$TuplePattern, + A2($elm$json$Json$Decode$index, 1, decodeAttributes), + A2( + $elm$json$Json$Decode$index, + 2, + $elm$json$Json$Decode$list(lazyDecodePattern))); + case 'constructor_pattern': + return A4( + $elm$json$Json$Decode$map3, + $author$project$Morphir$IR$Value$ConstructorPattern, + A2($elm$json$Json$Decode$index, 1, decodeAttributes), + A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$FQName$Codec$decodeFQName), + A2( + $elm$json$Json$Decode$index, + 3, + $elm$json$Json$Decode$list(lazyDecodePattern))); + case 'empty_list_pattern': + return A2( + $elm$json$Json$Decode$map, + $author$project$Morphir$IR$Value$EmptyListPattern, + A2($elm$json$Json$Decode$index, 1, decodeAttributes)); + case 'head_tail_pattern': + return A4( + $elm$json$Json$Decode$map3, + $author$project$Morphir$IR$Value$HeadTailPattern, + A2($elm$json$Json$Decode$index, 1, decodeAttributes), + A2($elm$json$Json$Decode$index, 2, lazyDecodePattern), + A2($elm$json$Json$Decode$index, 3, lazyDecodePattern)); + case 'literal_pattern': + return A3( + $elm$json$Json$Decode$map2, + $author$project$Morphir$IR$Value$LiteralPattern, + A2($elm$json$Json$Decode$index, 1, decodeAttributes), + A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Literal$Codec$decodeLiteral)); + case 'unit_pattern': + return A2( + $elm$json$Json$Decode$map, + $author$project$Morphir$IR$Value$UnitPattern, + A2($elm$json$Json$Decode$index, 1, decodeAttributes)); + default: + var other = kind; + return $elm$json$Json$Decode$fail('Unknown pattern type: ' + other); + } + }, + A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string)); +}; +var $elm$json$Json$Decode$map4 = _Json_map4; +var $author$project$Morphir$IR$Value$Codec$decodeDefinition = F2( + function (decodeTypeAttributes, decodeValueAttributes) { + return A4( + $elm$json$Json$Decode$map3, + $author$project$Morphir$IR$Value$Definition, + A2( + $elm$json$Json$Decode$field, + 'inputTypes', + $elm$json$Json$Decode$list( + A4( + $elm$json$Json$Decode$map3, + F3( + function (n, a, t) { + return _Utils_Tuple3(n, a, t); + }), + A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName), + A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), + A2( + $elm$json$Json$Decode$index, + 2, + $author$project$Morphir$IR$Type$Codec$decodeType(decodeTypeAttributes))))), + A2( + $elm$json$Json$Decode$field, + 'outputType', + $author$project$Morphir$IR$Type$Codec$decodeType(decodeTypeAttributes)), + A2( + $elm$json$Json$Decode$field, + 'body', + $elm$json$Json$Decode$lazy( + function (_v2) { + return A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes); + }))); + }); +var $author$project$Morphir$IR$Value$Codec$decodeValue = F2( + function (decodeTypeAttributes, decodeValueAttributes) { + var lazyDecodeValue = $elm$json$Json$Decode$lazy( + function (_v1) { + return A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes); + }); + return A2( + $elm$json$Json$Decode$andThen, + function (kind) { + switch (kind) { + case 'literal': + return A3( + $elm$json$Json$Decode$map2, + $author$project$Morphir$IR$Value$Literal, + A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), + A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Literal$Codec$decodeLiteral)); + case 'constructor': + return A3( + $elm$json$Json$Decode$map2, + $author$project$Morphir$IR$Value$Constructor, + A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), + A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$FQName$Codec$decodeFQName)); + case 'tuple': + return A3( + $elm$json$Json$Decode$map2, + $author$project$Morphir$IR$Value$Tuple, + A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), + A2( + $elm$json$Json$Decode$index, + 2, + $elm$json$Json$Decode$list(lazyDecodeValue))); + case 'list': + return A3( + $elm$json$Json$Decode$map2, + $author$project$Morphir$IR$Value$List, + A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), + A2( + $elm$json$Json$Decode$index, + 2, + $elm$json$Json$Decode$list(lazyDecodeValue))); + case 'record': + return A3( + $elm$json$Json$Decode$map2, + $author$project$Morphir$IR$Value$Record, + A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), + A2( + $elm$json$Json$Decode$index, + 2, + $elm$json$Json$Decode$list( + A3( + $elm$json$Json$Decode$map2, + $elm$core$Tuple$pair, + A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName), + A2( + $elm$json$Json$Decode$index, + 1, + A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)))))); + case 'variable': + return A3( + $elm$json$Json$Decode$map2, + $author$project$Morphir$IR$Value$Variable, + A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), + A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Name$Codec$decodeName)); + case 'reference': + return A3( + $elm$json$Json$Decode$map2, + $author$project$Morphir$IR$Value$Reference, + A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), + A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$FQName$Codec$decodeFQName)); + case 'field': + return A4( + $elm$json$Json$Decode$map3, + $author$project$Morphir$IR$Value$Field, + A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), + A2( + $elm$json$Json$Decode$index, + 2, + A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)), + A2($elm$json$Json$Decode$index, 3, $author$project$Morphir$IR$Name$Codec$decodeName)); + case 'field_function': + return A3( + $elm$json$Json$Decode$map2, + $author$project$Morphir$IR$Value$FieldFunction, + A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), + A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Name$Codec$decodeName)); + case 'apply': + return A4( + $elm$json$Json$Decode$map3, + $author$project$Morphir$IR$Value$Apply, + A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), + A2( + $elm$json$Json$Decode$index, + 2, + A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)), + A2( + $elm$json$Json$Decode$index, + 3, + A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes))); + case 'lambda': + return A4( + $elm$json$Json$Decode$map3, + $author$project$Morphir$IR$Value$Lambda, + A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), + A2( + $elm$json$Json$Decode$index, + 2, + $author$project$Morphir$IR$Value$Codec$decodePattern(decodeValueAttributes)), + A2( + $elm$json$Json$Decode$index, + 3, + A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes))); + case 'let_definition': + return A5( + $elm$json$Json$Decode$map4, + $author$project$Morphir$IR$Value$LetDefinition, + A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), + A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Name$Codec$decodeName), + A2( + $elm$json$Json$Decode$index, + 3, + A2($author$project$Morphir$IR$Value$Codec$decodeDefinition, decodeTypeAttributes, decodeValueAttributes)), + A2( + $elm$json$Json$Decode$index, + 4, + A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes))); + case 'let_recursion': + return A4( + $elm$json$Json$Decode$map3, + $author$project$Morphir$IR$Value$LetRecursion, + A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), + A2( + $elm$json$Json$Decode$index, + 2, + A2( + $elm$json$Json$Decode$map, + $elm$core$Dict$fromList, + $elm$json$Json$Decode$list( + A3( + $elm$json$Json$Decode$map2, + $elm$core$Tuple$pair, + A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName), + A2( + $elm$json$Json$Decode$index, + 1, + A2($author$project$Morphir$IR$Value$Codec$decodeDefinition, decodeTypeAttributes, decodeValueAttributes)))))), + A2( + $elm$json$Json$Decode$index, + 3, + A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes))); + case 'destructure': + return A5( + $elm$json$Json$Decode$map4, + $author$project$Morphir$IR$Value$Destructure, + A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), + A2( + $elm$json$Json$Decode$index, + 2, + $author$project$Morphir$IR$Value$Codec$decodePattern(decodeValueAttributes)), + A2( + $elm$json$Json$Decode$index, + 3, + A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)), + A2( + $elm$json$Json$Decode$index, + 4, + A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes))); + case 'if_then_else': + return A5( + $elm$json$Json$Decode$map4, + $author$project$Morphir$IR$Value$IfThenElse, + A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), + A2( + $elm$json$Json$Decode$index, + 2, + A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)), + A2( + $elm$json$Json$Decode$index, + 3, + A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)), + A2( + $elm$json$Json$Decode$index, + 4, + A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes))); + case 'pattern_match': + return A4( + $elm$json$Json$Decode$map3, + $author$project$Morphir$IR$Value$PatternMatch, + A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), + A2( + $elm$json$Json$Decode$index, + 2, + A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)), + A2( + $elm$json$Json$Decode$index, + 3, + $elm$json$Json$Decode$list( + A3( + $elm$json$Json$Decode$map2, + $elm$core$Tuple$pair, + A2( + $elm$json$Json$Decode$index, + 0, + $author$project$Morphir$IR$Value$Codec$decodePattern(decodeValueAttributes)), + A2( + $elm$json$Json$Decode$index, + 1, + A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)))))); + case 'update_record': + return A4( + $elm$json$Json$Decode$map3, + $author$project$Morphir$IR$Value$UpdateRecord, + A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), + A2( + $elm$json$Json$Decode$index, + 2, + A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)), + A2( + $elm$json$Json$Decode$index, + 3, + $elm$json$Json$Decode$list( + A3( + $elm$json$Json$Decode$map2, + $elm$core$Tuple$pair, + A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName), + A2( + $elm$json$Json$Decode$index, + 1, + A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)))))); + case 'unit': + return A2( + $elm$json$Json$Decode$map, + $author$project$Morphir$IR$Value$Unit, + A2($elm$json$Json$Decode$index, 1, decodeValueAttributes)); + default: + var other = kind; + return $elm$json$Json$Decode$fail('Unknown value type: ' + other); + } + }, + A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string)); + }); +var $author$project$Morphir$IR$Documented$Documented = F2( + function (doc, value) { + return {doc: doc, value: value}; + }); +var $author$project$Morphir$IR$Documented$Codec$decodeDocumented = function (decodeValue) { + return A3( + $elm$json$Json$Decode$map2, + $author$project$Morphir$IR$Documented$Documented, + A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string), + A2($elm$json$Json$Decode$index, 1, decodeValue)); +}; +var $author$project$Morphir$IR$Module$Codec$decodeDefinition = F2( + function (decodeTypeAttributes, decodeValueAttributes) { + return A3( + $elm$json$Json$Decode$map2, + $author$project$Morphir$IR$Module$Definition, + A2( + $elm$json$Json$Decode$field, + 'types', + A2( + $elm$json$Json$Decode$map, + $elm$core$Dict$fromList, + $elm$json$Json$Decode$list( + A3( + $elm$json$Json$Decode$map2, + $elm$core$Tuple$pair, + A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName), + A2( + $elm$json$Json$Decode$index, + 1, + $author$project$Morphir$IR$AccessControlled$Codec$decodeAccessControlled( + $author$project$Morphir$IR$Documented$Codec$decodeDocumented( + $author$project$Morphir$IR$Type$Codec$decodeDefinition(decodeTypeAttributes)))))))), + A2( + $elm$json$Json$Decode$field, + 'values', + A2( + $elm$json$Json$Decode$map, + $elm$core$Dict$fromList, + $elm$json$Json$Decode$list( + A3( + $elm$json$Json$Decode$map2, + $elm$core$Tuple$pair, + A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName), + A2( + $elm$json$Json$Decode$index, + 1, + $author$project$Morphir$IR$AccessControlled$Codec$decodeAccessControlled( + A2($author$project$Morphir$IR$Value$Codec$decodeDefinition, decodeTypeAttributes, decodeValueAttributes)))))))); + }); +var $author$project$Morphir$IR$Package$Codec$decodeDefinition = F2( + function (decodeAttributes, decodeAttributes2) { + return A2( + $elm$json$Json$Decode$map, + $author$project$Morphir$IR$Package$Definition, + A2( + $elm$json$Json$Decode$field, + 'modules', + A2( + $elm$json$Json$Decode$map, + $elm$core$Dict$fromList, + $elm$json$Json$Decode$list( + A3( + $elm$json$Json$Decode$map2, + $elm$core$Tuple$pair, + A2($elm$json$Json$Decode$field, 'name', $author$project$Morphir$IR$Path$Codec$decodePath), + A2( + $elm$json$Json$Decode$field, + 'def', + $author$project$Morphir$IR$AccessControlled$Codec$decodeAccessControlled( + A2($author$project$Morphir$IR$Module$Codec$decodeDefinition, decodeAttributes, decodeAttributes2)))))))); + }); +var $author$project$Morphir$IR$Package$Specification = function (modules) { + return {modules: modules}; +}; +var $author$project$Morphir$IR$Module$Specification = F2( + function (types, values) { + return {types: types, values: values}; + }); +var $author$project$Morphir$IR$Type$CustomTypeSpecification = F2( + function (a, b) { + return {$: 'CustomTypeSpecification', a: a, b: b}; + }); +var $author$project$Morphir$IR$Type$OpaqueTypeSpecification = function (a) { + return {$: 'OpaqueTypeSpecification', a: a}; +}; +var $author$project$Morphir$IR$Type$TypeAliasSpecification = F2( + function (a, b) { + return {$: 'TypeAliasSpecification', a: a, b: b}; + }); +var $author$project$Morphir$IR$Type$Codec$decodeSpecification = function (decodeAttributes) { + return A2( + $elm$json$Json$Decode$andThen, + function (kind) { + switch (kind) { + case 'type_alias_specification': + return A3( + $elm$json$Json$Decode$map2, + $author$project$Morphir$IR$Type$TypeAliasSpecification, + A2( + $elm$json$Json$Decode$index, + 1, + $elm$json$Json$Decode$list($author$project$Morphir$IR$Name$Codec$decodeName)), + A2( + $elm$json$Json$Decode$index, + 2, + $author$project$Morphir$IR$Type$Codec$decodeType(decodeAttributes))); + case 'opaque_type_specification': + return A2( + $elm$json$Json$Decode$map, + $author$project$Morphir$IR$Type$OpaqueTypeSpecification, + A2( + $elm$json$Json$Decode$index, + 1, + $elm$json$Json$Decode$list($author$project$Morphir$IR$Name$Codec$decodeName))); + case 'custom_type_specification': + return A3( + $elm$json$Json$Decode$map2, + $author$project$Morphir$IR$Type$CustomTypeSpecification, + A2( + $elm$json$Json$Decode$index, + 1, + $elm$json$Json$Decode$list($author$project$Morphir$IR$Name$Codec$decodeName)), + A2( + $elm$json$Json$Decode$index, + 2, + $author$project$Morphir$IR$Type$Codec$decodeConstructors(decodeAttributes))); + default: + return $elm$json$Json$Decode$fail('Unknown kind: ' + kind); + } + }, + A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string)); +}; +var $author$project$Morphir$IR$Value$Specification = F2( + function (inputs, output) { + return {inputs: inputs, output: output}; + }); +var $author$project$Morphir$IR$Value$Codec$decodeSpecification = function (decodeTypeAttributes) { + return A3( + $elm$json$Json$Decode$map2, + $author$project$Morphir$IR$Value$Specification, + A2( + $elm$json$Json$Decode$field, + 'inputs', + $elm$json$Json$Decode$list( + A3( + $elm$json$Json$Decode$map2, + $elm$core$Tuple$pair, + A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName), + A2( + $elm$json$Json$Decode$index, + 1, + $author$project$Morphir$IR$Type$Codec$decodeType(decodeTypeAttributes))))), + A2( + $elm$json$Json$Decode$field, + 'output', + $author$project$Morphir$IR$Type$Codec$decodeType(decodeTypeAttributes))); +}; +var $author$project$Morphir$IR$Module$Codec$decodeSpecification = function (decodeTypeAttributes) { + return A3( + $elm$json$Json$Decode$map2, + $author$project$Morphir$IR$Module$Specification, + A2( + $elm$json$Json$Decode$field, + 'types', + A2( + $elm$json$Json$Decode$map, + $elm$core$Dict$fromList, + $elm$json$Json$Decode$list( + A3( + $elm$json$Json$Decode$map2, + $elm$core$Tuple$pair, + A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName), + A2( + $elm$json$Json$Decode$index, + 1, + $author$project$Morphir$IR$Documented$Codec$decodeDocumented( + $author$project$Morphir$IR$Type$Codec$decodeSpecification(decodeTypeAttributes))))))), + A2( + $elm$json$Json$Decode$field, + 'values', + A2( + $elm$json$Json$Decode$map, + $elm$core$Dict$fromList, + $elm$json$Json$Decode$list( + A3( + $elm$json$Json$Decode$map2, + $elm$core$Tuple$pair, + A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName), + A2( + $elm$json$Json$Decode$index, + 1, + $author$project$Morphir$IR$Value$Codec$decodeSpecification(decodeTypeAttributes))))))); +}; +var $author$project$Morphir$IR$Package$Codec$decodeSpecification = function (decodeAttributes) { + return A2( + $elm$json$Json$Decode$map, + $author$project$Morphir$IR$Package$Specification, + A2( + $elm$json$Json$Decode$field, + 'modules', + A2( + $elm$json$Json$Decode$map, + $elm$core$Dict$fromList, + $elm$json$Json$Decode$list( + A3( + $elm$json$Json$Decode$map2, + $elm$core$Tuple$pair, + A2($elm$json$Json$Decode$field, 'name', $author$project$Morphir$IR$Path$Codec$decodePath), + A2( + $elm$json$Json$Decode$field, + 'spec', + $author$project$Morphir$IR$Module$Codec$decodeSpecification(decodeAttributes))))))); +}; +var $author$project$Morphir$Codec$decodeUnit = $elm$json$Json$Decode$succeed(_Utils_Tuple0); +var $author$project$Morphir$IR$Distribution$Codec$decodeDistribution = A2( + $elm$json$Json$Decode$andThen, + function (kind) { + if (kind === 'library') { + return A4( + $elm$json$Json$Decode$map3, + $author$project$Morphir$IR$Distribution$Library, + A2($elm$json$Json$Decode$index, 1, $author$project$Morphir$IR$Path$Codec$decodePath), + A2( + $elm$json$Json$Decode$index, + 2, + A2( + $elm$json$Json$Decode$map, + $elm$core$Dict$fromList, + $elm$json$Json$Decode$list( + A3( + $elm$json$Json$Decode$map2, + $elm$core$Tuple$pair, + A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Path$Codec$decodePath), + A2( + $elm$json$Json$Decode$index, + 1, + $author$project$Morphir$IR$Package$Codec$decodeSpecification($author$project$Morphir$Codec$decodeUnit)))))), + A2( + $elm$json$Json$Decode$index, + 3, + A2( + $author$project$Morphir$IR$Package$Codec$decodeDefinition, + $author$project$Morphir$Codec$decodeUnit, + $author$project$Morphir$IR$Type$Codec$decodeType($author$project$Morphir$Codec$decodeUnit)))); + } else { + var other = kind; + return $elm$json$Json$Decode$fail('Unknown value type: ' + other); + } + }, + A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string)); +var $author$project$Morphir$IR$Distribution$Codec$decodeVersionedDistribution = $elm$json$Json$Decode$oneOf( + _List_fromArray( + [ + A2( + $elm$json$Json$Decode$andThen, + function (formatVersion) { + return _Utils_eq(formatVersion, $author$project$Morphir$IR$Distribution$Codec$currentFormatVersion) ? A2($elm$json$Json$Decode$field, 'distribution', $author$project$Morphir$IR$Distribution$Codec$decodeDistribution) : $elm$json$Json$Decode$fail( + $elm$core$String$concat( + _List_fromArray( + [ + 'The IR is using format version ', + $elm$core$String$fromInt(formatVersion), + ' but the latest format version is ', + $elm$core$String$fromInt($author$project$Morphir$IR$Distribution$Codec$currentFormatVersion), + '. Please regenerate it!' + ]))); + }, + A2($elm$json$Json$Decode$field, 'formatVersion', $elm$json$Json$Decode$int)), + $elm$json$Json$Decode$fail('The IR is in an old format that doesn\'t have a format version on it. Please regenerate it!') + ])); +var $author$project$Morphir$Web$Insight$decodeFlag = A3( + $elm$json$Json$Decode$map2, + $author$project$Morphir$Web$Insight$Flag, + A2($elm$json$Json$Decode$field, 'distribution', $author$project$Morphir$IR$Distribution$Codec$decodeVersionedDistribution), + $elm$json$Json$Decode$maybe( + A2($elm$json$Json$Decode$field, 'config', $author$project$Morphir$Visual$Theme$Codec$decodeThemeConfig))); +var $elm$json$Json$Decode$decodeValue = _Json_run; +var $mdgriffith$elm_ui$Internal$Model$Rgba = F4( + function (a, b, c, d) { + return {$: 'Rgba', a: a, b: b, c: c, d: d}; + }); +var $mdgriffith$elm_ui$Element$rgb = F3( + function (r, g, b) { + return A4($mdgriffith$elm_ui$Internal$Model$Rgba, r, g, b, 1); + }); +var $mdgriffith$elm_ui$Element$rgb255 = F3( + function (red, green, blue) { + return A4($mdgriffith$elm_ui$Internal$Model$Rgba, red / 255, green / 255, blue / 255, 1); + }); +var $author$project$Morphir$Visual$Theme$defaultColors = { + darkest: A3($mdgriffith$elm_ui$Element$rgb, 0.1, 0.1, 0.1), + lightest: A3($mdgriffith$elm_ui$Element$rgb, 1, 1, 1), + negative: A3($mdgriffith$elm_ui$Element$rgb, 0.7, 0, 0), + positive: A3($mdgriffith$elm_ui$Element$rgb, 0, 0.6, 0), + primaryHighlight: A3($mdgriffith$elm_ui$Element$rgb255, 0, 163, 225), + secondaryHighlight: A3($mdgriffith$elm_ui$Element$rgb255, 255, 105, 0) +}; +var $elm$core$Maybe$withDefault = F2( + function (_default, maybe) { + if (maybe.$ === 'Just') { + var value = maybe.a; + return value; + } else { + return _default; + } + }); +var $author$project$Morphir$Visual$Theme$fromConfig = function (maybeConfig) { + if (maybeConfig.$ === 'Just') { + var config = maybeConfig.a; + return { + colors: $author$project$Morphir$Visual$Theme$defaultColors, + decimalDigit: A2($elm$core$Maybe$withDefault, 2, config.decimalDigit), + fontSize: A2($elm$core$Maybe$withDefault, 12, config.fontSize) + }; + } else { + return {colors: $author$project$Morphir$Visual$Theme$defaultColors, decimalDigit: 2, fontSize: 12}; + } +}; +var $elm$core$Platform$Cmd$batch = _Platform_batch; +var $elm$core$Platform$Cmd$none = $elm$core$Platform$Cmd$batch(_List_Nil); +var $author$project$Morphir$Web$Insight$init = function (json) { + var model = function () { + var _v0 = A2($elm$json$Json$Decode$decodeValue, $author$project$Morphir$Web$Insight$decodeFlag, json); + if (_v0.$ === 'Ok') { + var flag = _v0.a; + return { + modelState: $author$project$Morphir$Web$Insight$IRLoaded(flag.distribution), + theme: $author$project$Morphir$Visual$Theme$fromConfig(flag.config) + }; + } else { + var error = _v0.a; + return { + modelState: $author$project$Morphir$Web$Insight$Failed( + 'Wrong IR: ' + $elm$json$Json$Decode$errorToString(error)), + theme: $author$project$Morphir$Visual$Theme$fromConfig($elm$core$Maybe$Nothing) + }; + } + }(); + return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none); +}; +var $author$project$Morphir$Web$Insight$FunctionArgumentsReceived = function (a) { + return {$: 'FunctionArgumentsReceived', a: a}; +}; +var $author$project$Morphir$Web$Insight$FunctionNameReceived = function (a) { + return {$: 'FunctionNameReceived', a: a}; +}; +var $elm$core$Platform$Sub$batch = _Platform_batch; +var $elm$json$Json$Decode$value = _Json_decodeValue; +var $author$project$Morphir$Web$Insight$receiveFunctionArguments = _Platform_incomingPort('receiveFunctionArguments', $elm$json$Json$Decode$value); +var $author$project$Morphir$Web$Insight$receiveFunctionName = _Platform_incomingPort('receiveFunctionName', $elm$json$Json$Decode$string); +var $author$project$Morphir$Web$Insight$subscriptions = function (model) { + return $elm$core$Platform$Sub$batch( + _List_fromArray( + [ + $author$project$Morphir$Web$Insight$receiveFunctionArguments($author$project$Morphir$Web$Insight$FunctionArgumentsReceived), + $author$project$Morphir$Web$Insight$receiveFunctionName($author$project$Morphir$Web$Insight$FunctionNameReceived) + ])); +}; +var $author$project$Morphir$Web$Insight$FunctionsSet = function (a) { + return {$: 'FunctionsSet', a: a}; +}; +var $author$project$Morphir$IR$QName$QName = F2( + function (a, b) { + return {$: 'QName', a: a, b: b}; + }); +var $elm$core$Maybe$andThen = F2( + function (callback, maybeValue) { + if (maybeValue.$ === 'Just') { + var value = maybeValue.a; + return callback(value); + } else { + return $elm$core$Maybe$Nothing; + } + }); +var $elm$core$Result$andThen = F2( + function (callback, result) { + if (result.$ === 'Ok') { + var value = result.a; + return callback(value); + } else { + var msg = result.a; + return $elm$core$Result$Err(msg); + } + }); +var $elm$core$Result$fromMaybe = F2( + function (err, maybe) { + if (maybe.$ === 'Just') { + var v = maybe.a; + return $elm$core$Result$Ok(v); + } else { + return $elm$core$Result$Err(err); + } + }); +var $elm$regex$Regex$Match = F4( + function (match, index, number, submatches) { + return {index: index, match: match, number: number, submatches: submatches}; + }); +var $elm$regex$Regex$find = _Regex_findAtMost(_Regex_infinity); +var $elm$regex$Regex$fromStringWith = _Regex_fromStringWith; +var $elm$regex$Regex$fromString = function (string) { + return A2( + $elm$regex$Regex$fromStringWith, + {caseInsensitive: false, multiline: false}, + string); +}; +var $elm$regex$Regex$never = _Regex_never; +var $elm$core$String$toLower = _String_toLower; +var $author$project$Morphir$IR$Name$fromString = function (string) { + var wordPattern = A2( + $elm$core$Maybe$withDefault, + $elm$regex$Regex$never, + $elm$regex$Regex$fromString('([a-zA-Z][a-z]*|[0-9]+)')); + return $author$project$Morphir$IR$Name$fromList( + A2( + $elm$core$List$map, + $elm$core$String$toLower, + A2( + $elm$core$List$map, + function ($) { + return $.match; + }, + A2($elm$regex$Regex$find, wordPattern, string)))); +}; +var $elm$core$Dict$get = F2( + function (targetKey, dict) { + get: + while (true) { + if (dict.$ === 'RBEmpty_elm_builtin') { + return $elm$core$Maybe$Nothing; + } else { + var key = dict.b; + var value = dict.c; + var left = dict.d; + var right = dict.e; + var _v1 = A2($elm$core$Basics$compare, targetKey, key); + switch (_v1.$) { + case 'LT': + var $temp$targetKey = targetKey, + $temp$dict = left; + targetKey = $temp$targetKey; + dict = $temp$dict; + continue get; + case 'EQ': + return $elm$core$Maybe$Just(value); + default: + var $temp$targetKey = targetKey, + $temp$dict = right; + targetKey = $temp$targetKey; + dict = $temp$dict; + continue get; + } + } + } + }); +var $elm$regex$Regex$split = _Regex_splitAtMost(_Regex_infinity); +var $author$project$Morphir$IR$Path$fromString = function (string) { + var separatorRegex = A2( + $elm$core$Maybe$withDefault, + $elm$regex$Regex$never, + $elm$regex$Regex$fromString('[^\\w\\s]+')); + return $author$project$Morphir$IR$Path$fromList( + A2( + $elm$core$List$map, + $author$project$Morphir$IR$Name$fromString, + A2($elm$regex$Regex$split, separatorRegex, string))); +}; +var $author$project$Morphir$IR$SDK$Maybe$moduleName = $author$project$Morphir$IR$Path$fromString('Maybe'); +var $author$project$Morphir$IR$QName$fromName = F2( + function (modulePath, localName) { + return A2($author$project$Morphir$IR$QName$QName, modulePath, localName); + }); +var $author$project$Morphir$IR$QName$getLocalName = function (_v0) { + var localName = _v0.b; + return localName; +}; +var $author$project$Morphir$IR$QName$getModulePath = function (_v0) { + var modulePath = _v0.a; + return modulePath; +}; +var $author$project$Morphir$IR$FQName$fromQName = F2( + function (packagePath, qName) { + return _Utils_Tuple3( + packagePath, + $author$project$Morphir$IR$QName$getModulePath(qName), + $author$project$Morphir$IR$QName$getLocalName(qName)); + }); +var $author$project$Morphir$IR$SDK$Common$packageName = $author$project$Morphir$IR$Path$fromString('Morphir.SDK'); +var $author$project$Morphir$IR$SDK$Common$toFQName = F2( + function (modulePath, localName) { + return A2( + $author$project$Morphir$IR$FQName$fromQName, + $author$project$Morphir$IR$SDK$Common$packageName, + A2( + $author$project$Morphir$IR$QName$fromName, + modulePath, + $author$project$Morphir$IR$Name$fromString(localName))); + }); +var $author$project$Morphir$IR$SDK$Maybe$just = F2( + function (va, v) { + return A3( + $author$project$Morphir$IR$Value$Apply, + va, + A2( + $author$project$Morphir$IR$Value$Reference, + va, + A2($author$project$Morphir$IR$SDK$Common$toFQName, $author$project$Morphir$IR$SDK$Maybe$moduleName, 'Just')), + v); + }); +var $author$project$Morphir$IR$lookupTypeSpecification = F2( + function (fqn, ir) { + return A2($elm$core$Dict$get, fqn, ir.typeSpecifications); + }); +var $elm$core$Result$map = F2( + function (func, ra) { + if (ra.$ === 'Ok') { + var a = ra.a; + return $elm$core$Result$Ok( + func(a)); + } else { + var e = ra.a; + return $elm$core$Result$Err(e); + } + }); +var $author$project$Morphir$IR$SDK$Maybe$nothing = function (va) { + return A2( + $author$project$Morphir$IR$Value$Reference, + va, + A2($author$project$Morphir$IR$SDK$Common$toFQName, $author$project$Morphir$IR$SDK$Maybe$moduleName, 'Nothing')); +}; +var $elm$core$Tuple$second = function (_v0) { + var y = _v0.b; + return y; +}; +var $author$project$Morphir$IR$Type$substituteTypeVariables = F2( + function (mapping, original) { + switch (original.$) { + case 'Variable': + var a = original.a; + var varName = original.b; + return A2( + $elm$core$Maybe$withDefault, + original, + A2($elm$core$Dict$get, varName, mapping)); + case 'Reference': + var a = original.a; + var fQName = original.b; + var typeArgs = original.c; + return A3( + $author$project$Morphir$IR$Type$Reference, + a, + fQName, + A2( + $elm$core$List$map, + $author$project$Morphir$IR$Type$substituteTypeVariables(mapping), + typeArgs)); + case 'Tuple': + var a = original.a; + var elemTypes = original.b; + return A2( + $author$project$Morphir$IR$Type$Tuple, + a, + A2( + $elm$core$List$map, + $author$project$Morphir$IR$Type$substituteTypeVariables(mapping), + elemTypes)); + case 'Record': + var a = original.a; + var fields = original.b; + return A2( + $author$project$Morphir$IR$Type$Record, + a, + A2( + $elm$core$List$map, + function (field) { + return A2( + $author$project$Morphir$IR$Type$Field, + field.name, + A2($author$project$Morphir$IR$Type$substituteTypeVariables, mapping, field.tpe)); + }, + fields)); + case 'ExtensibleRecord': + var a = original.a; + var name = original.b; + var fields = original.c; + return A3( + $author$project$Morphir$IR$Type$ExtensibleRecord, + a, + name, + A2( + $elm$core$List$map, + function (field) { + return A2( + $author$project$Morphir$IR$Type$Field, + field.name, + A2($author$project$Morphir$IR$Type$substituteTypeVariables, mapping, field.tpe)); + }, + fields)); + case 'Function': + var a = original.a; + var argType = original.b; + var returnType = original.c; + return A3( + $author$project$Morphir$IR$Type$Function, + a, + A2($author$project$Morphir$IR$Type$substituteTypeVariables, mapping, argType), + A2($author$project$Morphir$IR$Type$substituteTypeVariables, mapping, returnType)); + default: + var a = original.a; + return $author$project$Morphir$IR$Type$Unit(a); + } + }); +var $elm$core$String$cons = _String_cons; +var $elm$core$Char$toUpper = _Char_toUpper; +var $author$project$Morphir$IR$Name$capitalize = function (string) { + var _v0 = $elm$core$String$uncons(string); + if (_v0.$ === 'Just') { + var _v1 = _v0.a; + var headChar = _v1.a; + var tailString = _v1.b; + return A2( + $elm$core$String$cons, + $elm$core$Char$toUpper(headChar), + tailString); + } else { + return string; + } +}; +var $author$project$Morphir$IR$Name$toList = function (words) { + return words; +}; +var $author$project$Morphir$IR$Name$toCamelCase = function (name) { + var _v0 = $author$project$Morphir$IR$Name$toList(name); + if (!_v0.b) { + return ''; + } else { + var head = _v0.a; + var tail = _v0.b; + return A2( + $elm$core$String$join, + '', + A2( + $elm$core$List$cons, + head, + A2($elm$core$List$map, $author$project$Morphir$IR$Name$capitalize, tail))); + } +}; +var $author$project$Morphir$IR$Path$toList = function (names) { + return names; +}; +var $author$project$Morphir$IR$Path$toString = F3( + function (nameToString, sep, path) { + return A2( + $elm$core$String$join, + sep, + A2( + $elm$core$List$map, + nameToString, + $author$project$Morphir$IR$Path$toList(path))); + }); +var $author$project$Morphir$IR$Name$toTitleCase = function (name) { + return A2( + $elm$core$String$join, + '', + A2( + $elm$core$List$map, + $author$project$Morphir$IR$Name$capitalize, + $author$project$Morphir$IR$Name$toList(name))); +}; +var $author$project$Morphir$IR$FQName$toString = function (_v0) { + var p = _v0.a; + var m = _v0.b; + var l = _v0.c; + return A2( + $elm$core$String$join, + ':', + _List_fromArray( + [ + A3($author$project$Morphir$IR$Path$toString, $author$project$Morphir$IR$Name$toTitleCase, '.', p), + A3($author$project$Morphir$IR$Path$toString, $author$project$Morphir$IR$Name$toTitleCase, '.', m), + $author$project$Morphir$IR$Name$toCamelCase(l) + ])); +}; +var $elm$core$Debug$todo = _Debug_todo; +var $author$project$Morphir$IR$Type$DataCodec$decodeData = F2( + function (ir, tpe) { + switch (tpe.$) { + case 'Reference': + if ((((((((((((tpe.b.a.b && tpe.b.a.a.b) && (tpe.b.a.a.a === 'morphir')) && (!tpe.b.a.a.b.b)) && tpe.b.a.b.b) && tpe.b.a.b.a.b) && (tpe.b.a.b.a.a === 's')) && tpe.b.a.b.a.b.b) && (tpe.b.a.b.a.b.a === 'd')) && tpe.b.a.b.a.b.b.b) && (tpe.b.a.b.a.b.b.a === 'k')) && (!tpe.b.a.b.a.b.b.b.b)) && (!tpe.b.a.b.b.b)) { + var _v1 = tpe.b; + var _v2 = _v1.a; + var _v3 = _v2.a; + var _v4 = _v2.b; + var _v5 = _v4.a; + var _v6 = _v5.b; + var _v7 = _v6.b; + var moduleName = _v1.b; + var localName = _v1.c; + var args = tpe.c; + var _v8 = _Utils_Tuple3(moduleName, localName, args); + _v8$7: + while (true) { + if (((((_v8.a.b && _v8.a.a.b) && (!_v8.a.a.b.b)) && (!_v8.a.b.b)) && _v8.b.b) && (!_v8.b.b.b)) { + if (!_v8.c.b) { + switch (_v8.a.a.a) { + case 'basics': + switch (_v8.b.a) { + case 'bool': + var _v9 = _v8.a; + var _v10 = _v9.a; + var _v11 = _v8.b; + return $elm$core$Result$Ok( + A2( + $elm$json$Json$Decode$map, + function (value) { + return A2( + $author$project$Morphir$IR$Value$Literal, + _Utils_Tuple0, + $author$project$Morphir$IR$Literal$BoolLiteral(value)); + }, + $elm$json$Json$Decode$bool)); + case 'int': + var _v12 = _v8.a; + var _v13 = _v12.a; + var _v14 = _v8.b; + return $elm$core$Result$Ok( + A2( + $elm$json$Json$Decode$map, + function (value) { + return A2( + $author$project$Morphir$IR$Value$Literal, + _Utils_Tuple0, + $author$project$Morphir$IR$Literal$IntLiteral(value)); + }, + $elm$json$Json$Decode$int)); + case 'float': + var _v15 = _v8.a; + var _v16 = _v15.a; + var _v17 = _v8.b; + return $elm$core$Result$Ok( + A2( + $elm$json$Json$Decode$map, + function (value) { + return A2( + $author$project$Morphir$IR$Value$Literal, + _Utils_Tuple0, + $author$project$Morphir$IR$Literal$FloatLiteral(value)); + }, + $elm$json$Json$Decode$float)); + default: + break _v8$7; + } + case 'char': + if (_v8.b.a === 'char') { + var _v18 = _v8.a; + var _v19 = _v18.a; + var _v20 = _v8.b; + return $elm$core$Result$Ok( + A2( + $elm$json$Json$Decode$andThen, + function (value) { + var _v21 = $elm$core$String$uncons(value); + if (_v21.$ === 'Just') { + var _v22 = _v21.a; + var firstChar = _v22.a; + return $elm$json$Json$Decode$succeed( + A2( + $author$project$Morphir$IR$Value$Literal, + _Utils_Tuple0, + $author$project$Morphir$IR$Literal$CharLiteral(firstChar))); + } else { + return $elm$json$Json$Decode$fail('Expected char but found empty string.'); + } + }, + $elm$json$Json$Decode$string)); + } else { + break _v8$7; + } + case 'string': + if (_v8.b.a === 'string') { + var _v23 = _v8.a; + var _v24 = _v23.a; + var _v25 = _v8.b; + return $elm$core$Result$Ok( + A2( + $elm$json$Json$Decode$map, + function (value) { + return A2( + $author$project$Morphir$IR$Value$Literal, + _Utils_Tuple0, + $author$project$Morphir$IR$Literal$StringLiteral(value)); + }, + $elm$json$Json$Decode$string)); + } else { + break _v8$7; + } + default: + break _v8$7; + } + } else { + if (!_v8.c.b.b) { + switch (_v8.a.a.a) { + case 'list': + if (_v8.b.a === 'list') { + var _v26 = _v8.a; + var _v27 = _v26.a; + var _v28 = _v8.b; + var _v29 = _v8.c; + var itemType = _v29.a; + return A2( + $elm$core$Result$map, + function (itemDecoder) { + return A2( + $elm$json$Json$Decode$map, + $author$project$Morphir$IR$Value$List(_Utils_Tuple0), + $elm$json$Json$Decode$list(itemDecoder)); + }, + A2($author$project$Morphir$IR$Type$DataCodec$decodeData, ir, itemType)); + } else { + break _v8$7; + } + case 'maybe': + if (_v8.b.a === 'maybe') { + var _v30 = _v8.a; + var _v31 = _v30.a; + var _v32 = _v8.b; + var _v33 = _v8.c; + var itemType = _v33.a; + return A2( + $elm$core$Result$map, + function (itemDecoder) { + return A2( + $elm$json$Json$Decode$map, + function (item) { + if (item.$ === 'Just') { + var v = item.a; + return A2($author$project$Morphir$IR$SDK$Maybe$just, _Utils_Tuple0, v); + } else { + return $author$project$Morphir$IR$SDK$Maybe$nothing(_Utils_Tuple0); + } + }, + $elm$json$Json$Decode$maybe(itemDecoder)); + }, + A2($author$project$Morphir$IR$Type$DataCodec$decodeData, ir, itemType)); + } else { + break _v8$7; + } + default: + break _v8$7; + } + } else { + break _v8$7; + } + } + } else { + break _v8$7; + } + } + return _Debug_todo( + 'Morphir.IR.Type.DataCodec', + { + start: {line: 301, column: 21}, + end: {line: 301, column: 31} + })('Todo Custom Type'); + } else { + var fQName = tpe.b; + var typePackageName = fQName.a; + var typeModuleName = fQName.b; + var typeArgs = tpe.c; + return A2( + $elm$core$Result$andThen, + function (typeSpec) { + switch (typeSpec.$) { + case 'TypeAliasSpecification': + var typeArgNames = typeSpec.a; + var typeExp = typeSpec.b; + var argVariables = $elm$core$Dict$fromList( + A3($elm$core$List$map2, $elm$core$Tuple$pair, typeArgNames, typeArgs)); + return A2( + $author$project$Morphir$IR$Type$DataCodec$decodeData, + ir, + A2($author$project$Morphir$IR$Type$substituteTypeVariables, argVariables, typeExp)); + case 'OpaqueTypeSpecification': + return $elm$core$Result$Err( + $elm$core$String$concat( + _List_fromArray( + [ + 'Cannot serialize opaque type: ', + $author$project$Morphir$IR$FQName$toString(fQName) + ]))); + default: + var typeArgNames = typeSpec.a; + var constructors = typeSpec.b; + var argVariables = $elm$core$Dict$fromList( + A3($elm$core$List$map2, $elm$core$Tuple$pair, typeArgNames, typeArgs)); + return $elm$core$Result$Ok( + A2( + $elm$json$Json$Decode$andThen, + function (tag) { + var constructorLocalName = $author$project$Morphir$IR$Name$fromString(tag); + var decoderResult = A2( + $elm$core$Result$andThen, + function (constructorArgTypes) { + return A3( + $elm$core$List$foldl, + F2( + function (_v37, _v38) { + var argType = _v37.b; + var index = _v38.a; + var resultSoFar = _v38.b; + return _Utils_Tuple2( + index + 1, + A2( + $elm$core$Result$andThen, + function (decoderSoFar) { + return A2( + $elm$core$Result$map, + function (argDecoder) { + return A2( + $elm$json$Json$Decode$andThen, + function (constructorSoFar) { + return A2( + $elm$json$Json$Decode$map, + function (argValue) { + return A3($author$project$Morphir$IR$Value$Apply, _Utils_Tuple0, constructorSoFar, argValue); + }, + A2($elm$json$Json$Decode$index, index, argDecoder)); + }, + decoderSoFar); + }, + A2( + $author$project$Morphir$IR$Type$DataCodec$decodeData, + ir, + A2($author$project$Morphir$IR$Type$substituteTypeVariables, argVariables, argType))); + }, + resultSoFar)); + }), + _Utils_Tuple2( + 1, + $elm$core$Result$Ok( + $elm$json$Json$Decode$succeed( + A2( + $author$project$Morphir$IR$Value$Constructor, + _Utils_Tuple0, + _Utils_Tuple3(typePackageName, typeModuleName, constructorLocalName))))), + constructorArgTypes).b; + }, + A2( + $elm$core$Result$fromMaybe, + $elm$core$String$concat( + _List_fromArray( + [ + 'Constructor \'', + $author$project$Morphir$IR$Name$toTitleCase(constructorLocalName), + '\' in type \'', + $author$project$Morphir$IR$FQName$toString(fQName), + '\' not found.' + ])), + A2($elm$core$Dict$get, constructorLocalName, constructors))); + if (decoderResult.$ === 'Ok') { + var d = decoderResult.a; + return d; + } else { + var error = decoderResult.a; + return $elm$json$Json$Decode$fail(error); + } + }, + A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string))); + } + }, + A2( + $elm$core$Result$fromMaybe, + $elm$core$String$concat( + _List_fromArray( + [ + 'Cannot find reference: ', + $author$project$Morphir$IR$FQName$toString(fQName) + ])), + A2($author$project$Morphir$IR$lookupTypeSpecification, fQName, ir))); + } + case 'Record': + var fields = tpe.b; + return A2( + $elm$core$Result$map, + function (decoder) { + return A2( + $elm$json$Json$Decode$map, + $author$project$Morphir$IR$Value$Record(_Utils_Tuple0), + decoder); + }, + A3( + $elm$core$List$foldr, + F2( + function (field, resultSoFar) { + return A2( + $elm$core$Result$andThen, + function (decoderSoFar) { + return A2( + $elm$core$Result$map, + function (fieldDecoder) { + return A2( + $elm$json$Json$Decode$andThen, + function (fieldValuesSoFar) { + return A2( + $elm$json$Json$Decode$map, + function (fieldValue) { + return A2( + $elm$core$List$cons, + _Utils_Tuple2(field.name, fieldValue), + fieldValuesSoFar); + }, + A2( + $elm$json$Json$Decode$field, + $author$project$Morphir$IR$Name$toCamelCase(field.name), + fieldDecoder)); + }, + decoderSoFar); + }, + A2($author$project$Morphir$IR$Type$DataCodec$decodeData, ir, field.tpe)); + }, + resultSoFar); + }), + $elm$core$Result$Ok( + $elm$json$Json$Decode$succeed(_List_Nil)), + fields)); + case 'Tuple': + var elemTypes = tpe.b; + return A2( + $elm$core$Result$map, + $elm$json$Json$Decode$map( + $author$project$Morphir$IR$Value$Tuple(_Utils_Tuple0)), + A3( + $elm$core$List$foldr, + F2( + function (elemType, _v39) { + var index = _v39.a; + var resultSoFar = _v39.b; + return _Utils_Tuple2( + index - 1, + A2( + $elm$core$Result$andThen, + function (decoderSoFar) { + return A2( + $elm$core$Result$map, + function (fieldDecoder) { + return A2( + $elm$json$Json$Decode$andThen, + function (fieldValuesSoFar) { + return A2( + $elm$json$Json$Decode$map, + function (fieldValue) { + return A2($elm$core$List$cons, fieldValue, fieldValuesSoFar); + }, + A2($elm$json$Json$Decode$index, index, fieldDecoder)); + }, + decoderSoFar); + }, + A2($author$project$Morphir$IR$Type$DataCodec$decodeData, ir, elemType)); + }, + resultSoFar)); + }), + _Utils_Tuple2( + $elm$core$List$length(elemTypes) - 1, + $elm$core$Result$Ok( + $elm$json$Json$Decode$succeed(_List_Nil))), + elemTypes).b); + default: + return $elm$core$Result$Err('Cannot Decode this type'); + } + }); +var $author$project$Morphir$IR$empty = {typeConstructors: $elm$core$Dict$empty, typeSpecifications: $elm$core$Dict$empty, valueDefinitions: $elm$core$Dict$empty, valueSpecifications: $elm$core$Dict$empty}; +var $elm$core$List$append = F2( + function (xs, ys) { + if (!ys.b) { + return xs; + } else { + return A3($elm$core$List$foldr, $elm$core$List$cons, ys, xs); + } + }); +var $elm$core$List$concat = function (lists) { + return A3($elm$core$List$foldr, $elm$core$List$append, _List_Nil, lists); +}; +var $elm$core$List$concatMap = F2( + function (f, list) { + return $elm$core$List$concat( + A2($elm$core$List$map, f, list)); + }); +var $author$project$Morphir$IR$AccessControlled$withPublicAccess = function (ac) { + var _v0 = ac.access; + if (_v0.$ === 'Public') { + return $elm$core$Maybe$Just(ac.value); + } else { + return $elm$core$Maybe$Nothing; + } +}; +var $author$project$Morphir$IR$Type$definitionToSpecification = function (def) { + if (def.$ === 'TypeAliasDefinition') { + var params = def.a; + var exp = def.b; + return A2($author$project$Morphir$IR$Type$TypeAliasSpecification, params, exp); + } else { + var params = def.a; + var accessControlledCtors = def.b; + var _v1 = $author$project$Morphir$IR$AccessControlled$withPublicAccess(accessControlledCtors); + if (_v1.$ === 'Just') { + var ctors = _v1.a; + return A2($author$project$Morphir$IR$Type$CustomTypeSpecification, params, ctors); + } else { + return $author$project$Morphir$IR$Type$OpaqueTypeSpecification(params); + } + } +}; +var $author$project$Morphir$IR$Value$definitionToSpecification = function (def) { + return { + inputs: A2( + $elm$core$List$map, + function (_v0) { + var name = _v0.a; + var tpe = _v0.c; + return _Utils_Tuple2(name, tpe); + }, + def.inputTypes), + output: def.outputType + }; +}; +var $author$project$Morphir$IR$Documented$map = F2( + function (f, d) { + return A2( + $author$project$Morphir$IR$Documented$Documented, + d.doc, + f(d.value)); + }); +var $author$project$Morphir$IR$AccessControlled$withPrivateAccess = function (ac) { + var _v0 = ac.access; + if (_v0.$ === 'Public') { + return ac.value; + } else { + return ac.value; + } +}; +var $author$project$Morphir$IR$Module$definitionToSpecificationWithPrivate = function (def) { + return { + types: $elm$core$Dict$fromList( + A2( + $elm$core$List$map, + function (_v0) { + var path = _v0.a; + var accessControlledType = _v0.b; + return _Utils_Tuple2( + path, + A2( + $author$project$Morphir$IR$Documented$map, + $author$project$Morphir$IR$Type$definitionToSpecification, + $author$project$Morphir$IR$AccessControlled$withPrivateAccess(accessControlledType))); + }, + $elm$core$Dict$toList(def.types))), + values: $elm$core$Dict$fromList( + A2( + $elm$core$List$map, + function (_v1) { + var path = _v1.a; + var accessControlledValue = _v1.b; + return _Utils_Tuple2( + path, + $author$project$Morphir$IR$Value$definitionToSpecification( + $author$project$Morphir$IR$AccessControlled$withPrivateAccess(accessControlledValue))); + }, + $elm$core$Dict$toList(def.values))) + }; +}; +var $author$project$Morphir$IR$Package$definitionToSpecificationWithPrivate = function (def) { + return { + modules: $elm$core$Dict$fromList( + A2( + $elm$core$List$map, + function (_v0) { + var path = _v0.a; + var accessControlledModule = _v0.b; + return _Utils_Tuple2( + path, + $author$project$Morphir$IR$Module$definitionToSpecificationWithPrivate( + $author$project$Morphir$IR$AccessControlled$withPrivateAccess(accessControlledModule))); + }, + $elm$core$Dict$toList(def.modules))) + }; +}; +var $author$project$Morphir$IR$flattenPackages = F2( + function (packages, f) { + return $elm$core$Dict$fromList( + A2( + $elm$core$List$concatMap, + function (_v0) { + var packageName = _v0.a; + var _package = _v0.b; + return A2(f, packageName, _package); + }, + $elm$core$Dict$toList(packages))); + }); +var $author$project$Morphir$IR$fromPackageSpecifications = function (packageSpecs) { + var packageValueSpecifications = F2( + function (packageName, packageSpec) { + return A2( + $elm$core$List$concatMap, + function (_v6) { + var moduleName = _v6.a; + var moduleSpec = _v6.b; + return A2( + $elm$core$List$map, + function (_v7) { + var valueName = _v7.a; + var valueSpec = _v7.b; + return _Utils_Tuple2( + _Utils_Tuple3(packageName, moduleName, valueName), + valueSpec); + }, + $elm$core$Dict$toList(moduleSpec.values)); + }, + $elm$core$Dict$toList(packageSpec.modules)); + }); + var packageTypeSpecifications = F2( + function (packageName, packageSpec) { + return A2( + $elm$core$List$concatMap, + function (_v4) { + var moduleName = _v4.a; + var moduleSpec = _v4.b; + return A2( + $elm$core$List$map, + function (_v5) { + var typeName = _v5.a; + var typeSpec = _v5.b; + return _Utils_Tuple2( + _Utils_Tuple3(packageName, moduleName, typeName), + typeSpec.value); + }, + $elm$core$Dict$toList(moduleSpec.types)); + }, + $elm$core$Dict$toList(packageSpec.modules)); + }); + var packageTypeConstructors = F2( + function (packageName, packageSpec) { + return A2( + $elm$core$List$concatMap, + function (_v0) { + var moduleName = _v0.a; + var moduleSpec = _v0.b; + return A2( + $elm$core$List$concatMap, + function (_v1) { + var typeName = _v1.a; + var typeSpec = _v1.b; + var _v2 = typeSpec.value; + if (_v2.$ === 'CustomTypeSpecification') { + var params = _v2.a; + var constructors = _v2.b; + return A2( + $elm$core$List$map, + function (_v3) { + var ctorName = _v3.a; + var ctorArgs = _v3.b; + return _Utils_Tuple2( + _Utils_Tuple3(packageName, moduleName, ctorName), + _Utils_Tuple3( + _Utils_Tuple3(packageName, moduleName, typeName), + params, + ctorArgs)); + }, + $elm$core$Dict$toList(constructors)); + } else { + return _List_Nil; + } + }, + $elm$core$Dict$toList(moduleSpec.types)); + }, + $elm$core$Dict$toList(packageSpec.modules)); + }); + return { + typeConstructors: A2($author$project$Morphir$IR$flattenPackages, packageSpecs, packageTypeConstructors), + typeSpecifications: A2($author$project$Morphir$IR$flattenPackages, packageSpecs, packageTypeSpecifications), + valueDefinitions: $elm$core$Dict$empty, + valueSpecifications: A2($author$project$Morphir$IR$flattenPackages, packageSpecs, packageValueSpecifications) + }; +}; +var $author$project$Morphir$IR$fromDistribution = function (_v0) { + var libraryName = _v0.a; + var dependencies = _v0.b; + var packageDef = _v0.c; + var packageValueDefinitions = $elm$core$Dict$fromList( + A2( + $elm$core$List$concatMap, + function (_v1) { + var moduleName = _v1.a; + var moduleDef = _v1.b; + return A2( + $elm$core$List$map, + function (_v2) { + var valueName = _v2.a; + var valueDef = _v2.b; + return _Utils_Tuple2( + _Utils_Tuple3(libraryName, moduleName, valueName), + valueDef.value); + }, + $elm$core$Dict$toList(moduleDef.value.values)); + }, + $elm$core$Dict$toList(packageDef.modules))); + var packageSpecs = A3( + $elm$core$Dict$insert, + libraryName, + $author$project$Morphir$IR$Package$definitionToSpecificationWithPrivate(packageDef), + dependencies); + var specificationsOnly = $author$project$Morphir$IR$fromPackageSpecifications(packageSpecs); + return _Utils_update( + specificationsOnly, + {valueDefinitions: packageValueDefinitions}); +}; +var $author$project$Morphir$IR$QName$fromString = function (qNameString) { + var _v0 = A2($elm$core$String$split, ':', qNameString); + if ((_v0.b && _v0.b.b) && (!_v0.b.b.b)) { + var packageNameString = _v0.a; + var _v1 = _v0.b; + var localNameString = _v1.a; + return $elm$core$Maybe$Just( + A2( + $author$project$Morphir$IR$QName$QName, + $author$project$Morphir$IR$Path$fromString(packageNameString), + $author$project$Morphir$IR$Name$fromString(localNameString))); + } else { + return $elm$core$Maybe$Nothing; + } +}; +var $elm$core$Maybe$map = F2( + function (f, maybe) { + if (maybe.$ === 'Just') { + var value = maybe.a; + return $elm$core$Maybe$Just( + f(value)); + } else { + return $elm$core$Maybe$Nothing; + } + }); +var $author$project$Morphir$IR$Package$lookupModuleDefinition = F2( + function (modulePath, packageDef) { + return A2( + $elm$core$Maybe$map, + $author$project$Morphir$IR$AccessControlled$withPrivateAccess, + A2($elm$core$Dict$get, modulePath, packageDef.modules)); + }); +var $author$project$Morphir$IR$Module$lookupValueDefinition = F2( + function (localName, moduleDef) { + return A2( + $elm$core$Maybe$map, + $author$project$Morphir$IR$AccessControlled$withPrivateAccess, + A2($elm$core$Dict$get, localName, moduleDef.values)); + }); +var $author$project$Morphir$IR$Distribution$lookupValueDefinition = F2( + function (_v0, distribution) { + var moduleName = _v0.a; + var localName = _v0.b; + var packageDef = distribution.c; + return A2( + $elm$core$Maybe$andThen, + $author$project$Morphir$IR$Module$lookupValueDefinition(localName), + A2($author$project$Morphir$IR$Package$lookupModuleDefinition, moduleName, packageDef)); + }); +var $elm$core$Result$mapError = F2( + function (f, result) { + if (result.$ === 'Ok') { + var v = result.a; + return $elm$core$Result$Ok(v); + } else { + var e = result.a; + return $elm$core$Result$Err( + f(e)); + } + }); +var $elm$core$Dict$member = F2( + function (key, dict) { + var _v0 = A2($elm$core$Dict$get, key, dict); + if (_v0.$ === 'Just') { + return true; + } else { + return false; + } + }); +var $elm$core$Dict$getMin = function (dict) { + getMin: + while (true) { + if ((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) { + var left = dict.d; + var $temp$dict = left; + dict = $temp$dict; + continue getMin; + } else { + return dict; + } + } +}; +var $elm$core$Dict$moveRedLeft = function (dict) { + if (((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) && (dict.e.$ === 'RBNode_elm_builtin')) { + if ((dict.e.d.$ === 'RBNode_elm_builtin') && (dict.e.d.a.$ === 'Red')) { + var clr = dict.a; + var k = dict.b; + var v = dict.c; + var _v1 = dict.d; + var lClr = _v1.a; + var lK = _v1.b; + var lV = _v1.c; + var lLeft = _v1.d; + var lRight = _v1.e; + var _v2 = dict.e; + var rClr = _v2.a; + var rK = _v2.b; + var rV = _v2.c; + var rLeft = _v2.d; + var _v3 = rLeft.a; + var rlK = rLeft.b; + var rlV = rLeft.c; + var rlL = rLeft.d; + var rlR = rLeft.e; + var rRight = _v2.e; + return A5( + $elm$core$Dict$RBNode_elm_builtin, + $elm$core$Dict$Red, + rlK, + rlV, + A5( + $elm$core$Dict$RBNode_elm_builtin, + $elm$core$Dict$Black, + k, + v, + A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight), + rlL), + A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, rK, rV, rlR, rRight)); + } else { + var clr = dict.a; + var k = dict.b; + var v = dict.c; + var _v4 = dict.d; + var lClr = _v4.a; + var lK = _v4.b; + var lV = _v4.c; + var lLeft = _v4.d; + var lRight = _v4.e; + var _v5 = dict.e; + var rClr = _v5.a; + var rK = _v5.b; + var rV = _v5.c; + var rLeft = _v5.d; + var rRight = _v5.e; + if (clr.$ === 'Black') { + return A5( + $elm$core$Dict$RBNode_elm_builtin, + $elm$core$Dict$Black, + k, + v, + A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight), + A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight)); + } else { + return A5( + $elm$core$Dict$RBNode_elm_builtin, + $elm$core$Dict$Black, + k, + v, + A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight), + A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight)); + } + } + } else { + return dict; + } +}; +var $elm$core$Dict$moveRedRight = function (dict) { + if (((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) && (dict.e.$ === 'RBNode_elm_builtin')) { + if ((dict.d.d.$ === 'RBNode_elm_builtin') && (dict.d.d.a.$ === 'Red')) { + var clr = dict.a; + var k = dict.b; + var v = dict.c; + var _v1 = dict.d; + var lClr = _v1.a; + var lK = _v1.b; + var lV = _v1.c; + var _v2 = _v1.d; + var _v3 = _v2.a; + var llK = _v2.b; + var llV = _v2.c; + var llLeft = _v2.d; + var llRight = _v2.e; + var lRight = _v1.e; + var _v4 = dict.e; + var rClr = _v4.a; + var rK = _v4.b; + var rV = _v4.c; + var rLeft = _v4.d; + var rRight = _v4.e; + return A5( + $elm$core$Dict$RBNode_elm_builtin, + $elm$core$Dict$Red, + lK, + lV, + A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, llK, llV, llLeft, llRight), + A5( + $elm$core$Dict$RBNode_elm_builtin, + $elm$core$Dict$Black, + k, + v, + lRight, + A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight))); + } else { + var clr = dict.a; + var k = dict.b; + var v = dict.c; + var _v5 = dict.d; + var lClr = _v5.a; + var lK = _v5.b; + var lV = _v5.c; + var lLeft = _v5.d; + var lRight = _v5.e; + var _v6 = dict.e; + var rClr = _v6.a; + var rK = _v6.b; + var rV = _v6.c; + var rLeft = _v6.d; + var rRight = _v6.e; + if (clr.$ === 'Black') { + return A5( + $elm$core$Dict$RBNode_elm_builtin, + $elm$core$Dict$Black, + k, + v, + A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight), + A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight)); + } else { + return A5( + $elm$core$Dict$RBNode_elm_builtin, + $elm$core$Dict$Black, + k, + v, + A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight), + A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight)); + } + } + } else { + return dict; + } +}; +var $elm$core$Dict$removeHelpPrepEQGT = F7( + function (targetKey, dict, color, key, value, left, right) { + if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) { + var _v1 = left.a; + var lK = left.b; + var lV = left.c; + var lLeft = left.d; + var lRight = left.e; + return A5( + $elm$core$Dict$RBNode_elm_builtin, + color, + lK, + lV, + lLeft, + A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, key, value, lRight, right)); + } else { + _v2$2: + while (true) { + if ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Black')) { + if (right.d.$ === 'RBNode_elm_builtin') { + if (right.d.a.$ === 'Black') { + var _v3 = right.a; + var _v4 = right.d; + var _v5 = _v4.a; + return $elm$core$Dict$moveRedRight(dict); + } else { + break _v2$2; + } + } else { + var _v6 = right.a; + var _v7 = right.d; + return $elm$core$Dict$moveRedRight(dict); + } + } else { + break _v2$2; + } + } + return dict; + } + }); +var $elm$core$Dict$removeMin = function (dict) { + if ((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) { + var color = dict.a; + var key = dict.b; + var value = dict.c; + var left = dict.d; + var lColor = left.a; + var lLeft = left.d; + var right = dict.e; + if (lColor.$ === 'Black') { + if ((lLeft.$ === 'RBNode_elm_builtin') && (lLeft.a.$ === 'Red')) { + var _v3 = lLeft.a; + return A5( + $elm$core$Dict$RBNode_elm_builtin, + color, + key, + value, + $elm$core$Dict$removeMin(left), + right); + } else { + var _v4 = $elm$core$Dict$moveRedLeft(dict); + if (_v4.$ === 'RBNode_elm_builtin') { + var nColor = _v4.a; + var nKey = _v4.b; + var nValue = _v4.c; + var nLeft = _v4.d; + var nRight = _v4.e; + return A5( + $elm$core$Dict$balance, + nColor, + nKey, + nValue, + $elm$core$Dict$removeMin(nLeft), + nRight); + } else { + return $elm$core$Dict$RBEmpty_elm_builtin; + } + } + } else { + return A5( + $elm$core$Dict$RBNode_elm_builtin, + color, + key, + value, + $elm$core$Dict$removeMin(left), + right); + } + } else { + return $elm$core$Dict$RBEmpty_elm_builtin; + } +}; +var $elm$core$Dict$removeHelp = F2( + function (targetKey, dict) { + if (dict.$ === 'RBEmpty_elm_builtin') { + return $elm$core$Dict$RBEmpty_elm_builtin; + } else { + var color = dict.a; + var key = dict.b; + var value = dict.c; + var left = dict.d; + var right = dict.e; + if (_Utils_cmp(targetKey, key) < 0) { + if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Black')) { + var _v4 = left.a; + var lLeft = left.d; + if ((lLeft.$ === 'RBNode_elm_builtin') && (lLeft.a.$ === 'Red')) { + var _v6 = lLeft.a; + return A5( + $elm$core$Dict$RBNode_elm_builtin, + color, + key, + value, + A2($elm$core$Dict$removeHelp, targetKey, left), + right); + } else { + var _v7 = $elm$core$Dict$moveRedLeft(dict); + if (_v7.$ === 'RBNode_elm_builtin') { + var nColor = _v7.a; + var nKey = _v7.b; + var nValue = _v7.c; + var nLeft = _v7.d; + var nRight = _v7.e; + return A5( + $elm$core$Dict$balance, + nColor, + nKey, + nValue, + A2($elm$core$Dict$removeHelp, targetKey, nLeft), + nRight); + } else { + return $elm$core$Dict$RBEmpty_elm_builtin; + } + } + } else { + return A5( + $elm$core$Dict$RBNode_elm_builtin, + color, + key, + value, + A2($elm$core$Dict$removeHelp, targetKey, left), + right); + } + } else { + return A2( + $elm$core$Dict$removeHelpEQGT, + targetKey, + A7($elm$core$Dict$removeHelpPrepEQGT, targetKey, dict, color, key, value, left, right)); + } + } + }); +var $elm$core$Dict$removeHelpEQGT = F2( + function (targetKey, dict) { + if (dict.$ === 'RBNode_elm_builtin') { + var color = dict.a; + var key = dict.b; + var value = dict.c; + var left = dict.d; + var right = dict.e; + if (_Utils_eq(targetKey, key)) { + var _v1 = $elm$core$Dict$getMin(right); + if (_v1.$ === 'RBNode_elm_builtin') { + var minKey = _v1.b; + var minValue = _v1.c; + return A5( + $elm$core$Dict$balance, + color, + minKey, + minValue, + left, + $elm$core$Dict$removeMin(right)); + } else { + return $elm$core$Dict$RBEmpty_elm_builtin; + } + } else { + return A5( + $elm$core$Dict$balance, + color, + key, + value, + left, + A2($elm$core$Dict$removeHelp, targetKey, right)); + } + } else { + return $elm$core$Dict$RBEmpty_elm_builtin; + } + }); +var $elm$core$Dict$remove = F2( + function (key, dict) { + var _v0 = A2($elm$core$Dict$removeHelp, key, dict); + if ((_v0.$ === 'RBNode_elm_builtin') && (_v0.a.$ === 'Red')) { + var _v1 = _v0.a; + var k = _v0.b; + var v = _v0.c; + var l = _v0.d; + var r = _v0.e; + return A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, k, v, l, r); + } else { + var x = _v0; + return x; + } + }); +var $author$project$Morphir$Web$Insight$update = F2( + function (msg, model) { + var getDistribution = function () { + var _v12 = model.modelState; + switch (_v12.$) { + case 'IRLoaded': + var distribution = _v12.a; + return $elm$core$Maybe$Just(distribution); + case 'FunctionsSet': + var visualizationState = _v12.a; + return $elm$core$Maybe$Just(visualizationState.distribution); + default: + return $elm$core$Maybe$Nothing; + } + }(); + switch (msg.$) { + case 'FunctionNameReceived': + var qNameString = msg.a; + var popupScreen = {variableIndex: 0, variableValue: $elm$core$Maybe$Nothing}; + var _v1 = $author$project$Morphir$IR$QName$fromString(qNameString); + if (_v1.$ === 'Just') { + var qName = _v1.a; + return A2( + $elm$core$Maybe$withDefault, + _Utils_Tuple2( + _Utils_update( + model, + { + modelState: $author$project$Morphir$Web$Insight$Failed('Invalid State in receiving function name') + }), + $elm$core$Platform$Cmd$none), + A2( + $elm$core$Maybe$map, + function (m) { + return _Utils_Tuple2(m, $elm$core$Platform$Cmd$none); + }, + A2( + $elm$core$Maybe$andThen, + function (distribution) { + return A2( + $elm$core$Maybe$map, + function (funDef) { + return _Utils_update( + model, + { + modelState: $author$project$Morphir$Web$Insight$FunctionsSet( + {distribution: distribution, expandedFunctions: $elm$core$Dict$empty, functionArguments: _List_Nil, functionDefinition: funDef, popupVariables: popupScreen, selectedFunction: qName}) + }); + }, + A2($author$project$Morphir$IR$Distribution$lookupValueDefinition, qName, distribution)); + }, + getDistribution))); + } else { + return _Utils_Tuple2( + _Utils_update( + model, + { + modelState: $author$project$Morphir$Web$Insight$Failed('Received function name is not found') + }), + $elm$core$Platform$Cmd$none); + } + case 'FunctionArgumentsReceived': + var jsonList = msg.a; + var getTypes = function () { + var _v6 = model.modelState; + if (_v6.$ === 'FunctionsSet') { + var visualizationState = _v6.a; + return A2( + $author$project$Morphir$IR$Type$Tuple, + _Utils_Tuple0, + A2( + $elm$core$List$map, + function (_v7) { + var name = _v7.a; + var tpe = _v7.c; + return tpe; + }, + visualizationState.functionDefinition.inputTypes)); + } else { + return $author$project$Morphir$IR$Type$Unit(_Utils_Tuple0); + } + }(); + var getIR = function () { + if (getDistribution.$ === 'Just') { + var distribution = getDistribution.a; + return $author$project$Morphir$IR$fromDistribution(distribution); + } else { + return $author$project$Morphir$IR$empty; + } + }(); + var jsonDecoder = A2($author$project$Morphir$IR$Type$DataCodec$decodeData, getIR, getTypes); + var _v2 = A2( + $elm$core$Result$andThen, + function (decoder) { + return A2( + $elm$core$Result$mapError, + $elm$json$Json$Decode$errorToString, + A2($elm$json$Json$Decode$decodeValue, decoder, jsonList)); + }, + jsonDecoder); + if (_v2.$ === 'Ok') { + var tupleList = _v2.a; + var updatedArgValues = function () { + if (tupleList.$ === 'Tuple') { + var list = tupleList.b; + return list; + } else { + return _List_Nil; + } + }(); + var _v3 = model.modelState; + if (_v3.$ === 'FunctionsSet') { + var visualizationState = _v3.a; + return _Utils_Tuple2( + _Utils_update( + model, + { + modelState: $author$project$Morphir$Web$Insight$FunctionsSet( + _Utils_update( + visualizationState, + {functionArguments: updatedArgValues})) + }), + $elm$core$Platform$Cmd$none); + } else { + return _Utils_Tuple2( + _Utils_update( + model, + { + modelState: $author$project$Morphir$Web$Insight$Failed('Invalid State') + }), + $elm$core$Platform$Cmd$none); + } + } else { + return _Utils_Tuple2( + _Utils_update( + model, + { + modelState: $author$project$Morphir$Web$Insight$Failed('Received function arguments cannot be decoded') + }), + $elm$core$Platform$Cmd$none); + } + case 'ExpandReference': + var fqName = msg.a; + var packageName = fqName.a; + var moduleName = fqName.b; + var localName = fqName.c; + var isFunctionPresent = msg.b; + var _v8 = model.modelState; + if (_v8.$ === 'FunctionsSet') { + var visualizationState = _v8.a; + if (A2($elm$core$Dict$member, fqName, visualizationState.expandedFunctions)) { + if (isFunctionPresent) { + return _Utils_Tuple2( + _Utils_update( + model, + { + modelState: $author$project$Morphir$Web$Insight$FunctionsSet( + _Utils_update( + visualizationState, + { + expandedFunctions: A2($elm$core$Dict$remove, fqName, visualizationState.expandedFunctions) + })) + }), + $elm$core$Platform$Cmd$none); + } else { + return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none); + } + } else { + return _Utils_Tuple2( + _Utils_update( + model, + { + modelState: $author$project$Morphir$Web$Insight$FunctionsSet( + _Utils_update( + visualizationState, + { + expandedFunctions: A2( + $elm$core$Maybe$withDefault, + visualizationState.expandedFunctions, + A2( + $elm$core$Maybe$map, + function (valueDef) { + return A3($elm$core$Dict$insert, fqName, valueDef, visualizationState.expandedFunctions); + }, + A2( + $author$project$Morphir$IR$Distribution$lookupValueDefinition, + A2($author$project$Morphir$IR$QName$QName, moduleName, localName), + visualizationState.distribution))) + })) + }), + $elm$core$Platform$Cmd$none); + } + } else { + return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none); + } + case 'ExpandVariable': + var varIndex = msg.a; + var maybeRawValue = msg.b; + var _v10 = model.modelState; + if (_v10.$ === 'FunctionsSet') { + var visualizationState = _v10.a; + var popupScreen = {variableIndex: varIndex, variableValue: maybeRawValue}; + return _Utils_Tuple2( + _Utils_update( + model, + { + modelState: $author$project$Morphir$Web$Insight$FunctionsSet( + _Utils_update( + visualizationState, + {popupVariables: popupScreen})) + }), + $elm$core$Platform$Cmd$none); + } else { + return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none); + } + default: + var varIndex = msg.a; + var _v11 = model.modelState; + if (_v11.$ === 'FunctionsSet') { + var visualizationState = _v11.a; + var popupScreen = {variableIndex: varIndex, variableValue: $elm$core$Maybe$Nothing}; + return _Utils_Tuple2( + _Utils_update( + model, + { + modelState: $author$project$Morphir$Web$Insight$FunctionsSet( + _Utils_update( + visualizationState, + {popupVariables: popupScreen})) + }), + $elm$core$Platform$Cmd$none); + } else { + return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none); + } + } + }); +var $author$project$Morphir$Web$Insight$ExpandReference = F2( + function (a, b) { + return {$: 'ExpandReference', a: a, b: b}; + }); +var $author$project$Morphir$Web$Insight$ExpandVariable = F2( + function (a, b) { + return {$: 'ExpandVariable', a: a, b: b}; + }); +var $author$project$Morphir$Web$Insight$ShrinkVariable = function (a) { + return {$: 'ShrinkVariable', a: a}; +}; +var $mdgriffith$elm_ui$Internal$Model$Class = F2( + function (a, b) { + return {$: 'Class', a: a, b: b}; + }); +var $mdgriffith$elm_ui$Internal$Style$classes = {above: 'a', active: 'atv', alignBottom: 'ab', alignCenterX: 'cx', alignCenterY: 'cy', alignContainerBottom: 'acb', alignContainerCenterX: 'accx', alignContainerCenterY: 'accy', alignContainerRight: 'acr', alignLeft: 'al', alignRight: 'ar', alignTop: 'at', alignedHorizontally: 'ah', alignedVertically: 'av', any: 's', behind: 'bh', below: 'b', bold: 'w7', borderDashed: 'bd', borderDotted: 'bdt', borderNone: 'bn', borderSolid: 'bs', capturePointerEvents: 'cpe', clip: 'cp', clipX: 'cpx', clipY: 'cpy', column: 'c', container: 'ctr', contentBottom: 'cb', contentCenterX: 'ccx', contentCenterY: 'ccy', contentLeft: 'cl', contentRight: 'cr', contentTop: 'ct', cursorPointer: 'cptr', cursorText: 'ctxt', focus: 'fcs', focusedWithin: 'focus-within', fullSize: 'fs', grid: 'g', hasBehind: 'hbh', heightContent: 'hc', heightExact: 'he', heightFill: 'hf', heightFillPortion: 'hfp', hover: 'hv', imageContainer: 'ic', inFront: 'fr', inputLabel: 'lbl', inputMultiline: 'iml', inputMultilineFiller: 'imlf', inputMultilineParent: 'imlp', inputMultilineWrapper: 'implw', inputText: 'it', italic: 'i', link: 'lnk', nearby: 'nb', noTextSelection: 'notxt', onLeft: 'ol', onRight: 'or', opaque: 'oq', overflowHidden: 'oh', page: 'pg', paragraph: 'p', passPointerEvents: 'ppe', root: 'ui', row: 'r', scrollbars: 'sb', scrollbarsX: 'sbx', scrollbarsY: 'sby', seButton: 'sbt', single: 'e', sizeByCapital: 'cap', spaceEvenly: 'sev', strike: 'sk', text: 't', textCenter: 'tc', textExtraBold: 'w8', textExtraLight: 'w2', textHeavy: 'w9', textJustify: 'tj', textJustifyAll: 'tja', textLeft: 'tl', textLight: 'w3', textMedium: 'w5', textNormalWeight: 'w4', textRight: 'tr', textSemiBold: 'w6', textThin: 'w1', textUnitalicized: 'tun', transition: 'ts', transparent: 'clr', underline: 'u', widthContent: 'wc', widthExact: 'we', widthFill: 'wf', widthFillPortion: 'wfp', wrapped: 'wrp'}; +var $mdgriffith$elm_ui$Internal$Flag$Flag = function (a) { + return {$: 'Flag', a: a}; +}; +var $mdgriffith$elm_ui$Internal$Flag$Second = function (a) { + return {$: 'Second', a: a}; +}; +var $elm$core$Bitwise$shiftLeftBy = _Bitwise_shiftLeftBy; +var $mdgriffith$elm_ui$Internal$Flag$flag = function (i) { + return (i > 31) ? $mdgriffith$elm_ui$Internal$Flag$Second(1 << (i - 32)) : $mdgriffith$elm_ui$Internal$Flag$Flag(1 << i); +}; +var $mdgriffith$elm_ui$Internal$Flag$fontWeight = $mdgriffith$elm_ui$Internal$Flag$flag(13); +var $mdgriffith$elm_ui$Element$Font$bold = A2($mdgriffith$elm_ui$Internal$Model$Class, $mdgriffith$elm_ui$Internal$Flag$fontWeight, $mdgriffith$elm_ui$Internal$Style$classes.bold); +var $elm$html$Html$div = _VirtualDom_node('div'); +var $mdgriffith$elm_ui$Internal$Model$Attr = function (a) { + return {$: 'Attr', a: a}; +}; +var $elm$json$Json$Encode$string = _Json_wrap; +var $elm$html$Html$Attributes$stringProperty = F2( + function (key, string) { + return A2( + _VirtualDom_property, + key, + $elm$json$Json$Encode$string(string)); + }); +var $elm$html$Html$Attributes$class = $elm$html$Html$Attributes$stringProperty('className'); +var $mdgriffith$elm_ui$Internal$Model$htmlClass = function (cls) { + return $mdgriffith$elm_ui$Internal$Model$Attr( + $elm$html$Html$Attributes$class(cls)); +}; +var $mdgriffith$elm_ui$Internal$Model$OnlyDynamic = F2( + function (a, b) { + return {$: 'OnlyDynamic', a: a, b: b}; + }); +var $mdgriffith$elm_ui$Internal$Model$StaticRootAndDynamic = F2( + function (a, b) { + return {$: 'StaticRootAndDynamic', a: a, b: b}; + }); +var $mdgriffith$elm_ui$Internal$Model$Unkeyed = function (a) { + return {$: 'Unkeyed', a: a}; +}; +var $mdgriffith$elm_ui$Internal$Model$AsEl = {$: 'AsEl'}; +var $mdgriffith$elm_ui$Internal$Model$asEl = $mdgriffith$elm_ui$Internal$Model$AsEl; +var $mdgriffith$elm_ui$Internal$Model$Generic = {$: 'Generic'}; +var $mdgriffith$elm_ui$Internal$Model$div = $mdgriffith$elm_ui$Internal$Model$Generic; +var $mdgriffith$elm_ui$Internal$Model$NoNearbyChildren = {$: 'NoNearbyChildren'}; +var $mdgriffith$elm_ui$Internal$Model$columnClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.column); +var $mdgriffith$elm_ui$Internal$Model$gridClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.grid); +var $mdgriffith$elm_ui$Internal$Model$pageClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.page); +var $mdgriffith$elm_ui$Internal$Model$paragraphClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.paragraph); +var $mdgriffith$elm_ui$Internal$Model$rowClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.row); +var $mdgriffith$elm_ui$Internal$Model$singleClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.single); +var $mdgriffith$elm_ui$Internal$Model$contextClasses = function (context) { + switch (context.$) { + case 'AsRow': + return $mdgriffith$elm_ui$Internal$Model$rowClass; + case 'AsColumn': + return $mdgriffith$elm_ui$Internal$Model$columnClass; + case 'AsEl': + return $mdgriffith$elm_ui$Internal$Model$singleClass; + case 'AsGrid': + return $mdgriffith$elm_ui$Internal$Model$gridClass; + case 'AsParagraph': + return $mdgriffith$elm_ui$Internal$Model$paragraphClass; + default: + return $mdgriffith$elm_ui$Internal$Model$pageClass; + } +}; +var $mdgriffith$elm_ui$Internal$Model$Keyed = function (a) { + return {$: 'Keyed', a: a}; +}; +var $mdgriffith$elm_ui$Internal$Model$NoStyleSheet = {$: 'NoStyleSheet'}; +var $mdgriffith$elm_ui$Internal$Model$Styled = function (a) { + return {$: 'Styled', a: a}; +}; +var $mdgriffith$elm_ui$Internal$Model$Unstyled = function (a) { + return {$: 'Unstyled', a: a}; +}; +var $mdgriffith$elm_ui$Internal$Model$addChildren = F2( + function (existing, nearbyChildren) { + switch (nearbyChildren.$) { + case 'NoNearbyChildren': + return existing; + case 'ChildrenBehind': + var behind = nearbyChildren.a; + return _Utils_ap(behind, existing); + case 'ChildrenInFront': + var inFront = nearbyChildren.a; + return _Utils_ap(existing, inFront); + default: + var behind = nearbyChildren.a; + var inFront = nearbyChildren.b; + return _Utils_ap( + behind, + _Utils_ap(existing, inFront)); + } + }); +var $mdgriffith$elm_ui$Internal$Model$addKeyedChildren = F3( + function (key, existing, nearbyChildren) { + switch (nearbyChildren.$) { + case 'NoNearbyChildren': + return existing; + case 'ChildrenBehind': + var behind = nearbyChildren.a; + return _Utils_ap( + A2( + $elm$core$List$map, + function (x) { + return _Utils_Tuple2(key, x); + }, + behind), + existing); + case 'ChildrenInFront': + var inFront = nearbyChildren.a; + return _Utils_ap( + existing, + A2( + $elm$core$List$map, + function (x) { + return _Utils_Tuple2(key, x); + }, + inFront)); + default: + var behind = nearbyChildren.a; + var inFront = nearbyChildren.b; + return _Utils_ap( + A2( + $elm$core$List$map, + function (x) { + return _Utils_Tuple2(key, x); + }, + behind), + _Utils_ap( + existing, + A2( + $elm$core$List$map, + function (x) { + return _Utils_Tuple2(key, x); + }, + inFront))); + } + }); +var $mdgriffith$elm_ui$Internal$Model$AsParagraph = {$: 'AsParagraph'}; +var $mdgriffith$elm_ui$Internal$Model$asParagraph = $mdgriffith$elm_ui$Internal$Model$AsParagraph; +var $mdgriffith$elm_ui$Internal$Flag$alignBottom = $mdgriffith$elm_ui$Internal$Flag$flag(41); +var $mdgriffith$elm_ui$Internal$Flag$alignRight = $mdgriffith$elm_ui$Internal$Flag$flag(40); +var $mdgriffith$elm_ui$Internal$Flag$centerX = $mdgriffith$elm_ui$Internal$Flag$flag(42); +var $mdgriffith$elm_ui$Internal$Flag$centerY = $mdgriffith$elm_ui$Internal$Flag$flag(43); +var $elm$core$Set$Set_elm_builtin = function (a) { + return {$: 'Set_elm_builtin', a: a}; +}; +var $elm$core$Set$empty = $elm$core$Set$Set_elm_builtin($elm$core$Dict$empty); +var $mdgriffith$elm_ui$Internal$Model$lengthClassName = function (x) { + switch (x.$) { + case 'Px': + var px = x.a; + return $elm$core$String$fromInt(px) + 'px'; + case 'Content': + return 'auto'; + case 'Fill': + var i = x.a; + return $elm$core$String$fromInt(i) + 'fr'; + case 'Min': + var min = x.a; + var len = x.b; + return 'min' + ($elm$core$String$fromInt(min) + $mdgriffith$elm_ui$Internal$Model$lengthClassName(len)); + default: + var max = x.a; + var len = x.b; + return 'max' + ($elm$core$String$fromInt(max) + $mdgriffith$elm_ui$Internal$Model$lengthClassName(len)); + } +}; +var $elm$core$Basics$round = _Basics_round; +var $mdgriffith$elm_ui$Internal$Model$floatClass = function (x) { + return $elm$core$String$fromInt( + $elm$core$Basics$round(x * 255)); +}; +var $mdgriffith$elm_ui$Internal$Model$transformClass = function (transform) { + switch (transform.$) { + case 'Untransformed': + return $elm$core$Maybe$Nothing; + case 'Moved': + var _v1 = transform.a; + var x = _v1.a; + var y = _v1.b; + var z = _v1.c; + return $elm$core$Maybe$Just( + 'mv-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(x) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(y) + ('-' + $mdgriffith$elm_ui$Internal$Model$floatClass(z)))))); + default: + var _v2 = transform.a; + var tx = _v2.a; + var ty = _v2.b; + var tz = _v2.c; + var _v3 = transform.b; + var sx = _v3.a; + var sy = _v3.b; + var sz = _v3.c; + var _v4 = transform.c; + var ox = _v4.a; + var oy = _v4.b; + var oz = _v4.c; + var angle = transform.d; + return $elm$core$Maybe$Just( + 'tfrm-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(tx) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(ty) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(tz) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(sx) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(sy) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(sz) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(ox) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(oy) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(oz) + ('-' + $mdgriffith$elm_ui$Internal$Model$floatClass(angle)))))))))))))))))))); + } +}; +var $mdgriffith$elm_ui$Internal$Model$getStyleName = function (style) { + switch (style.$) { + case 'Shadows': + var name = style.a; + return name; + case 'Transparency': + var name = style.a; + var o = style.b; + return name; + case 'Style': + var _class = style.a; + return _class; + case 'FontFamily': + var name = style.a; + return name; + case 'FontSize': + var i = style.a; + return 'font-size-' + $elm$core$String$fromInt(i); + case 'Single': + var _class = style.a; + return _class; + case 'Colored': + var _class = style.a; + return _class; + case 'SpacingStyle': + var cls = style.a; + var x = style.b; + var y = style.c; + return cls; + case 'PaddingStyle': + var cls = style.a; + var top = style.b; + var right = style.c; + var bottom = style.d; + var left = style.e; + return cls; + case 'BorderWidth': + var cls = style.a; + var top = style.b; + var right = style.c; + var bottom = style.d; + var left = style.e; + return cls; + case 'GridTemplateStyle': + var template = style.a; + return 'grid-rows-' + (A2( + $elm$core$String$join, + '-', + A2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$lengthClassName, template.rows)) + ('-cols-' + (A2( + $elm$core$String$join, + '-', + A2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$lengthClassName, template.columns)) + ('-space-x-' + ($mdgriffith$elm_ui$Internal$Model$lengthClassName(template.spacing.a) + ('-space-y-' + $mdgriffith$elm_ui$Internal$Model$lengthClassName(template.spacing.b))))))); + case 'GridPosition': + var pos = style.a; + return 'gp grid-pos-' + ($elm$core$String$fromInt(pos.row) + ('-' + ($elm$core$String$fromInt(pos.col) + ('-' + ($elm$core$String$fromInt(pos.width) + ('-' + $elm$core$String$fromInt(pos.height))))))); + case 'PseudoSelector': + var selector = style.a; + var subStyle = style.b; + var name = function () { + switch (selector.$) { + case 'Focus': + return 'fs'; + case 'Hover': + return 'hv'; + default: + return 'act'; + } + }(); + return A2( + $elm$core$String$join, + ' ', + A2( + $elm$core$List$map, + function (sty) { + var _v1 = $mdgriffith$elm_ui$Internal$Model$getStyleName(sty); + if (_v1 === '') { + return ''; + } else { + var styleName = _v1; + return styleName + ('-' + name); + } + }, + subStyle)); + default: + var x = style.a; + return A2( + $elm$core$Maybe$withDefault, + '', + $mdgriffith$elm_ui$Internal$Model$transformClass(x)); + } +}; +var $elm$core$Set$insert = F2( + function (key, _v0) { + var dict = _v0.a; + return $elm$core$Set$Set_elm_builtin( + A3($elm$core$Dict$insert, key, _Utils_Tuple0, dict)); + }); +var $elm$core$Set$member = F2( + function (key, _v0) { + var dict = _v0.a; + return A2($elm$core$Dict$member, key, dict); + }); +var $mdgriffith$elm_ui$Internal$Model$reduceStyles = F2( + function (style, nevermind) { + var cache = nevermind.a; + var existing = nevermind.b; + var styleName = $mdgriffith$elm_ui$Internal$Model$getStyleName(style); + return A2($elm$core$Set$member, styleName, cache) ? nevermind : _Utils_Tuple2( + A2($elm$core$Set$insert, styleName, cache), + A2($elm$core$List$cons, style, existing)); + }); +var $mdgriffith$elm_ui$Internal$Model$Property = F2( + function (a, b) { + return {$: 'Property', a: a, b: b}; + }); +var $mdgriffith$elm_ui$Internal$Model$Style = F2( + function (a, b) { + return {$: 'Style', a: a, b: b}; + }); +var $mdgriffith$elm_ui$Internal$Style$dot = function (c) { + return '.' + c; +}; +var $elm$core$List$maybeCons = F3( + function (f, mx, xs) { + var _v0 = f(mx); + if (_v0.$ === 'Just') { + var x = _v0.a; + return A2($elm$core$List$cons, x, xs); + } else { + return xs; + } + }); +var $elm$core$List$filterMap = F2( + function (f, xs) { + return A3( + $elm$core$List$foldr, + $elm$core$List$maybeCons(f), + _List_Nil, + xs); + }); +var $elm$core$String$fromFloat = _String_fromNumber; +var $mdgriffith$elm_ui$Internal$Model$formatColor = function (_v0) { + var red = _v0.a; + var green = _v0.b; + var blue = _v0.c; + var alpha = _v0.d; + return 'rgba(' + ($elm$core$String$fromInt( + $elm$core$Basics$round(red * 255)) + ((',' + $elm$core$String$fromInt( + $elm$core$Basics$round(green * 255))) + ((',' + $elm$core$String$fromInt( + $elm$core$Basics$round(blue * 255))) + (',' + ($elm$core$String$fromFloat(alpha) + ')'))))); +}; +var $mdgriffith$elm_ui$Internal$Model$formatBoxShadow = function (shadow) { + return A2( + $elm$core$String$join, + ' ', + A2( + $elm$core$List$filterMap, + $elm$core$Basics$identity, + _List_fromArray( + [ + shadow.inset ? $elm$core$Maybe$Just('inset') : $elm$core$Maybe$Nothing, + $elm$core$Maybe$Just( + $elm$core$String$fromFloat(shadow.offset.a) + 'px'), + $elm$core$Maybe$Just( + $elm$core$String$fromFloat(shadow.offset.b) + 'px'), + $elm$core$Maybe$Just( + $elm$core$String$fromFloat(shadow.blur) + 'px'), + $elm$core$Maybe$Just( + $elm$core$String$fromFloat(shadow.size) + 'px'), + $elm$core$Maybe$Just( + $mdgriffith$elm_ui$Internal$Model$formatColor(shadow.color)) + ]))); +}; +var $elm$core$Tuple$mapFirst = F2( + function (func, _v0) { + var x = _v0.a; + var y = _v0.b; + return _Utils_Tuple2( + func(x), + y); + }); +var $elm$core$Tuple$mapSecond = F2( + function (func, _v0) { + var x = _v0.a; + var y = _v0.b; + return _Utils_Tuple2( + x, + func(y)); + }); +var $mdgriffith$elm_ui$Internal$Model$renderFocusStyle = function (focus) { + return _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Model$Style, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.focusedWithin) + ':focus-within', + A2( + $elm$core$List$filterMap, + $elm$core$Basics$identity, + _List_fromArray( + [ + A2( + $elm$core$Maybe$map, + function (color) { + return A2( + $mdgriffith$elm_ui$Internal$Model$Property, + 'border-color', + $mdgriffith$elm_ui$Internal$Model$formatColor(color)); + }, + focus.borderColor), + A2( + $elm$core$Maybe$map, + function (color) { + return A2( + $mdgriffith$elm_ui$Internal$Model$Property, + 'background-color', + $mdgriffith$elm_ui$Internal$Model$formatColor(color)); + }, + focus.backgroundColor), + A2( + $elm$core$Maybe$map, + function (shadow) { + return A2( + $mdgriffith$elm_ui$Internal$Model$Property, + 'box-shadow', + $mdgriffith$elm_ui$Internal$Model$formatBoxShadow( + { + blur: shadow.blur, + color: shadow.color, + inset: false, + offset: A2( + $elm$core$Tuple$mapSecond, + $elm$core$Basics$toFloat, + A2($elm$core$Tuple$mapFirst, $elm$core$Basics$toFloat, shadow.offset)), + size: shadow.size + })); + }, + focus.shadow), + $elm$core$Maybe$Just( + A2($mdgriffith$elm_ui$Internal$Model$Property, 'outline', 'none')) + ]))), + A2( + $mdgriffith$elm_ui$Internal$Model$Style, + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ':focus .focusable, ') + (($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + '.focusable:focus, ') + ('.ui-slide-bar:focus + ' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ' .focusable-thumb'))), + A2( + $elm$core$List$filterMap, + $elm$core$Basics$identity, + _List_fromArray( + [ + A2( + $elm$core$Maybe$map, + function (color) { + return A2( + $mdgriffith$elm_ui$Internal$Model$Property, + 'border-color', + $mdgriffith$elm_ui$Internal$Model$formatColor(color)); + }, + focus.borderColor), + A2( + $elm$core$Maybe$map, + function (color) { + return A2( + $mdgriffith$elm_ui$Internal$Model$Property, + 'background-color', + $mdgriffith$elm_ui$Internal$Model$formatColor(color)); + }, + focus.backgroundColor), + A2( + $elm$core$Maybe$map, + function (shadow) { + return A2( + $mdgriffith$elm_ui$Internal$Model$Property, + 'box-shadow', + $mdgriffith$elm_ui$Internal$Model$formatBoxShadow( + { + blur: shadow.blur, + color: shadow.color, + inset: false, + offset: A2( + $elm$core$Tuple$mapSecond, + $elm$core$Basics$toFloat, + A2($elm$core$Tuple$mapFirst, $elm$core$Basics$toFloat, shadow.offset)), + size: shadow.size + })); + }, + focus.shadow), + $elm$core$Maybe$Just( + A2($mdgriffith$elm_ui$Internal$Model$Property, 'outline', 'none')) + ]))) + ]); +}; +var $elm$virtual_dom$VirtualDom$node = function (tag) { + return _VirtualDom_node( + _VirtualDom_noScript(tag)); +}; +var $elm$virtual_dom$VirtualDom$property = F2( + function (key, value) { + return A2( + _VirtualDom_property, + _VirtualDom_noInnerHtmlOrFormAction(key), + _VirtualDom_noJavaScriptOrHtmlUri(value)); + }); +var $mdgriffith$elm_ui$Internal$Style$AllChildren = F2( + function (a, b) { + return {$: 'AllChildren', a: a, b: b}; + }); +var $mdgriffith$elm_ui$Internal$Style$Batch = function (a) { + return {$: 'Batch', a: a}; +}; +var $mdgriffith$elm_ui$Internal$Style$Child = F2( + function (a, b) { + return {$: 'Child', a: a, b: b}; + }); +var $mdgriffith$elm_ui$Internal$Style$Class = F2( + function (a, b) { + return {$: 'Class', a: a, b: b}; + }); +var $mdgriffith$elm_ui$Internal$Style$Descriptor = F2( + function (a, b) { + return {$: 'Descriptor', a: a, b: b}; + }); +var $mdgriffith$elm_ui$Internal$Style$Left = {$: 'Left'}; +var $mdgriffith$elm_ui$Internal$Style$Prop = F2( + function (a, b) { + return {$: 'Prop', a: a, b: b}; + }); +var $mdgriffith$elm_ui$Internal$Style$Right = {$: 'Right'}; +var $mdgriffith$elm_ui$Internal$Style$Self = function (a) { + return {$: 'Self', a: a}; +}; +var $mdgriffith$elm_ui$Internal$Style$Supports = F2( + function (a, b) { + return {$: 'Supports', a: a, b: b}; + }); +var $mdgriffith$elm_ui$Internal$Style$Content = function (a) { + return {$: 'Content', a: a}; +}; +var $mdgriffith$elm_ui$Internal$Style$Bottom = {$: 'Bottom'}; +var $mdgriffith$elm_ui$Internal$Style$CenterX = {$: 'CenterX'}; +var $mdgriffith$elm_ui$Internal$Style$CenterY = {$: 'CenterY'}; +var $mdgriffith$elm_ui$Internal$Style$Top = {$: 'Top'}; +var $mdgriffith$elm_ui$Internal$Style$alignments = _List_fromArray( + [$mdgriffith$elm_ui$Internal$Style$Top, $mdgriffith$elm_ui$Internal$Style$Bottom, $mdgriffith$elm_ui$Internal$Style$Right, $mdgriffith$elm_ui$Internal$Style$Left, $mdgriffith$elm_ui$Internal$Style$CenterX, $mdgriffith$elm_ui$Internal$Style$CenterY]); +var $mdgriffith$elm_ui$Internal$Style$contentName = function (desc) { + switch (desc.a.$) { + case 'Top': + var _v1 = desc.a; + return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentTop); + case 'Bottom': + var _v2 = desc.a; + return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentBottom); + case 'Right': + var _v3 = desc.a; + return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentRight); + case 'Left': + var _v4 = desc.a; + return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentLeft); + case 'CenterX': + var _v5 = desc.a; + return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentCenterX); + default: + var _v6 = desc.a; + return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentCenterY); + } +}; +var $mdgriffith$elm_ui$Internal$Style$selfName = function (desc) { + switch (desc.a.$) { + case 'Top': + var _v1 = desc.a; + return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignTop); + case 'Bottom': + var _v2 = desc.a; + return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignBottom); + case 'Right': + var _v3 = desc.a; + return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignRight); + case 'Left': + var _v4 = desc.a; + return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignLeft); + case 'CenterX': + var _v5 = desc.a; + return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterX); + default: + var _v6 = desc.a; + return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterY); + } +}; +var $mdgriffith$elm_ui$Internal$Style$describeAlignment = function (values) { + var createDescription = function (alignment) { + var _v0 = values(alignment); + var content = _v0.a; + var indiv = _v0.b; + return _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$contentName( + $mdgriffith$elm_ui$Internal$Style$Content(alignment)), + content), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$selfName( + $mdgriffith$elm_ui$Internal$Style$Self(alignment)), + indiv) + ])) + ]); + }; + return $mdgriffith$elm_ui$Internal$Style$Batch( + A2($elm$core$List$concatMap, createDescription, $mdgriffith$elm_ui$Internal$Style$alignments)); +}; +var $mdgriffith$elm_ui$Internal$Style$elDescription = _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-direction', 'column'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'pre'), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.hasBehind), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '0'), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.behind), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '-1') + ])) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.seButton), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.text), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'auto !important') + ])) + ])) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightContent), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', 'auto') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '100000') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFillPortion), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthContent), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-start') + ])), + $mdgriffith$elm_ui$Internal$Style$describeAlignment( + function (alignment) { + switch (alignment.$) { + case 'Top': + return _Utils_Tuple2( + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-start') + ]), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto !important'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', '0 !important') + ])); + case 'Bottom': + return _Utils_Tuple2( + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-end') + ]), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto !important'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', '0 !important') + ])); + case 'Right': + return _Utils_Tuple2( + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-end') + ]), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-end') + ])); + case 'Left': + return _Utils_Tuple2( + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-start') + ]), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-start') + ])); + case 'CenterX': + return _Utils_Tuple2( + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'center') + ]), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'center') + ])); + default: + return _Utils_Tuple2( + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto') + ])) + ]), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto !important'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto !important') + ])); + } + }) + ]); +var $mdgriffith$elm_ui$Internal$Style$gridAlignments = function (values) { + var createDescription = function (alignment) { + return _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$selfName( + $mdgriffith$elm_ui$Internal$Style$Self(alignment)), + values(alignment)) + ])) + ]); + }; + return $mdgriffith$elm_ui$Internal$Style$Batch( + A2($elm$core$List$concatMap, createDescription, $mdgriffith$elm_ui$Internal$Style$alignments)); +}; +var $mdgriffith$elm_ui$Internal$Style$Above = {$: 'Above'}; +var $mdgriffith$elm_ui$Internal$Style$Behind = {$: 'Behind'}; +var $mdgriffith$elm_ui$Internal$Style$Below = {$: 'Below'}; +var $mdgriffith$elm_ui$Internal$Style$OnLeft = {$: 'OnLeft'}; +var $mdgriffith$elm_ui$Internal$Style$OnRight = {$: 'OnRight'}; +var $mdgriffith$elm_ui$Internal$Style$Within = {$: 'Within'}; +var $mdgriffith$elm_ui$Internal$Style$locations = function () { + var loc = $mdgriffith$elm_ui$Internal$Style$Above; + var _v0 = function () { + switch (loc.$) { + case 'Above': + return _Utils_Tuple0; + case 'Below': + return _Utils_Tuple0; + case 'OnRight': + return _Utils_Tuple0; + case 'OnLeft': + return _Utils_Tuple0; + case 'Within': + return _Utils_Tuple0; + default: + return _Utils_Tuple0; + } + }(); + return _List_fromArray( + [$mdgriffith$elm_ui$Internal$Style$Above, $mdgriffith$elm_ui$Internal$Style$Below, $mdgriffith$elm_ui$Internal$Style$OnRight, $mdgriffith$elm_ui$Internal$Style$OnLeft, $mdgriffith$elm_ui$Internal$Style$Within, $mdgriffith$elm_ui$Internal$Style$Behind]); +}(); +var $mdgriffith$elm_ui$Internal$Style$baseSheet = _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Style$Class, + 'html,body', + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'padding', '0'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Class, + _Utils_ap( + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any), + _Utils_ap( + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single), + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.imageContainer))), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'block'), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + 'img', + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'max-height', '100%'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'object-fit', 'cover') + ])) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + 'img', + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'max-width', '100%'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'object-fit', 'cover') + ])) + ])) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Class, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ':focus', + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'outline', 'none') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Class, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.root), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', 'auto'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'min-height', '100%'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '0'), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + _Utils_ap( + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any), + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill)), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%') + ])) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inFront), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.nearby), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'fixed'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '20') + ])) + ])) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Class, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.nearby), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'relative'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border', 'none'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-direction', 'row'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto'), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single), + $mdgriffith$elm_ui$Internal$Style$elDescription), + $mdgriffith$elm_ui$Internal$Style$Batch( + function (fn) { + return A2($elm$core$List$map, fn, $mdgriffith$elm_ui$Internal$Style$locations); + }( + function (loc) { + switch (loc.$) { + case 'Above': + return A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.above), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'bottom', '100%'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '0'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '20'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', 'auto') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%') + ])), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + '*', + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto') + ])) + ])); + case 'Below': + return A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.below), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'bottom', '0'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '0'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '0'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '20'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + '*', + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', 'auto') + ])) + ])); + case 'OnRight': + return A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.onRight), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '100%'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'top', '0'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '20'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + '*', + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto') + ])) + ])); + case 'OnLeft': + return A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.onLeft), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'right', '100%'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'top', '0'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '20'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + '*', + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto') + ])) + ])); + case 'Within': + return A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inFront), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '0'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'top', '0'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + '*', + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto') + ])) + ])); + default: + return A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.behind), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '0'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'top', '0'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '0'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + '*', + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto') + ])) + ])); + } + })) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Class, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'relative'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border', 'none'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-shrink', '0'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-direction', 'row'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'resize', 'none'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-feature-settings', 'inherit'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'box-sizing', 'border-box'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'padding', '0'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-width', '0'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-style', 'solid'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-size', 'inherit'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'color', 'inherit'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-family', 'inherit'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'line-height', '1'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', 'inherit'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration', 'none'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-style', 'inherit'), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.wrapped), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-wrap', 'wrap') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.noTextSelection), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, '-moz-user-select', 'none'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, '-webkit-user-select', 'none'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, '-ms-user-select', 'none'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'user-select', 'none') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.cursorPointer), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'cursor', 'pointer') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.cursorText), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'cursor', 'text') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.passPointerEvents), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none !important') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.capturePointerEvents), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto !important') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.transparent), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '0') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.opaque), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '1') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot( + _Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.hover, $mdgriffith$elm_ui$Internal$Style$classes.transparent)) + ':hover', + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '0') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot( + _Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.hover, $mdgriffith$elm_ui$Internal$Style$classes.opaque)) + ':hover', + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '1') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot( + _Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.focus, $mdgriffith$elm_ui$Internal$Style$classes.transparent)) + ':focus', + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '0') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot( + _Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.focus, $mdgriffith$elm_ui$Internal$Style$classes.opaque)) + ':focus', + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '1') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot( + _Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.active, $mdgriffith$elm_ui$Internal$Style$classes.transparent)) + ':active', + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '0') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot( + _Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.active, $mdgriffith$elm_ui$Internal$Style$classes.opaque)) + ':active', + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '1') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.transition), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Style$Prop, + 'transition', + A2( + $elm$core$String$join, + ', ', + A2( + $elm$core$List$map, + function (x) { + return x + ' 160ms'; + }, + _List_fromArray( + ['transform', 'opacity', 'filter', 'background-color', 'color', 'font-size'])))) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.scrollbars), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow', 'auto'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-shrink', '1') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.scrollbarsX), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow-x', 'auto'), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.row), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-shrink', '1') + ])) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.scrollbarsY), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow-y', 'auto'), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.column), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-shrink', '1') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-shrink', '1') + ])) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.clip), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow', 'hidden') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.clipX), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow-x', 'hidden') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.clipY), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow-y', 'hidden') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthContent), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', 'auto') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.borderNone), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-width', '0') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.borderDashed), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-style', 'dashed') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.borderDotted), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-style', 'dotted') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.borderSolid), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-style', 'solid') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.text), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'pre'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline-block') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputText), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'line-height', '1.05'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'background', 'transparent'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'inherit') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single), + $mdgriffith$elm_ui$Internal$Style$elDescription), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.row), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-direction', 'row'), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', '0%'), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthExact), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.link), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto') + ])) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'stretch !important') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFillPortion), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'stretch !important') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '100000') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.container), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'stretch') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + 'u:first-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerRight, + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + 's:first-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX, + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterX), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-left', 'auto !important') + ])) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + 's:last-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX, + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterX), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-right', 'auto !important') + ])) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + 's:only-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX, + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterY), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto !important'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto !important') + ])) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + 's:last-of-type.' + ($mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX + ' ~ u'), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + 'u:first-of-type.' + ($mdgriffith$elm_ui$Internal$Style$classes.alignContainerRight + (' ~ s.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX)), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0') + ])), + $mdgriffith$elm_ui$Internal$Style$describeAlignment( + function (alignment) { + switch (alignment.$) { + case 'Top': + return _Utils_Tuple2( + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-start') + ]), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-start') + ])); + case 'Bottom': + return _Utils_Tuple2( + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-end') + ]), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-end') + ])); + case 'Right': + return _Utils_Tuple2( + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-end') + ]), + _List_Nil); + case 'Left': + return _Utils_Tuple2( + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-start') + ]), + _List_Nil); + case 'CenterX': + return _Utils_Tuple2( + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'center') + ]), + _List_Nil); + default: + return _Utils_Tuple2( + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'center') + ]), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'center') + ])); + } + }), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.spaceEvenly), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'space-between') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputLabel), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'baseline') + ])) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.column), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-direction', 'column'), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', '0px'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'min-height', 'min-content'), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightExact), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto') + ])) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '100000') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFillPortion), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthContent), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-start') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + 'u:first-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerBottom, + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + 's:first-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY, + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterY), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto !important'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', '0 !important') + ])) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + 's:last-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY, + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterY), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto !important'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', '0 !important') + ])) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + 's:only-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY, + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterY), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto !important'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto !important') + ])) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + 's:last-of-type.' + ($mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY + ' ~ u'), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + 'u:first-of-type.' + ($mdgriffith$elm_ui$Internal$Style$classes.alignContainerBottom + (' ~ s.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY)), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0') + ])), + $mdgriffith$elm_ui$Internal$Style$describeAlignment( + function (alignment) { + switch (alignment.$) { + case 'Top': + return _Utils_Tuple2( + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-start') + ]), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto') + ])); + case 'Bottom': + return _Utils_Tuple2( + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-end') + ]), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto') + ])); + case 'Right': + return _Utils_Tuple2( + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-end') + ]), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-end') + ])); + case 'Left': + return _Utils_Tuple2( + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-start') + ]), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-start') + ])); + case 'CenterX': + return _Utils_Tuple2( + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'center') + ]), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'center') + ])); + default: + return _Utils_Tuple2( + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'center') + ]), + _List_Nil); + } + }), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.container), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'stretch !important') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.spaceEvenly), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'space-between') + ])) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.grid), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', '-ms-grid'), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + '.gp', + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%') + ])) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Supports, + _Utils_Tuple2('display', 'grid'), + _List_fromArray( + [ + _Utils_Tuple2('display', 'grid') + ])), + $mdgriffith$elm_ui$Internal$Style$gridAlignments( + function (alignment) { + switch (alignment.$) { + case 'Top': + return _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-start') + ]); + case 'Bottom': + return _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-end') + ]); + case 'Right': + return _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-end') + ]); + case 'Left': + return _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-start') + ]); + case 'CenterX': + return _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'center') + ]); + default: + return _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'center') + ]); + } + }) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.page), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'block'), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any + ':first-child'), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot( + $mdgriffith$elm_ui$Internal$Style$classes.any + ($mdgriffith$elm_ui$Internal$Style$selfName( + $mdgriffith$elm_ui$Internal$Style$Self($mdgriffith$elm_ui$Internal$Style$Left)) + (':first-child + .' + $mdgriffith$elm_ui$Internal$Style$classes.any))), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot( + $mdgriffith$elm_ui$Internal$Style$classes.any + ($mdgriffith$elm_ui$Internal$Style$selfName( + $mdgriffith$elm_ui$Internal$Style$Self($mdgriffith$elm_ui$Internal$Style$Right)) + (':first-child + .' + $mdgriffith$elm_ui$Internal$Style$classes.any))), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important') + ])), + $mdgriffith$elm_ui$Internal$Style$describeAlignment( + function (alignment) { + switch (alignment.$) { + case 'Top': + return _Utils_Tuple2(_List_Nil, _List_Nil); + case 'Bottom': + return _Utils_Tuple2(_List_Nil, _List_Nil); + case 'Right': + return _Utils_Tuple2( + _List_Nil, + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'float', 'right'), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + '::after', + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'content', '\"\"'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'table'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'clear', 'both') + ])) + ])); + case 'Left': + return _Utils_Tuple2( + _List_Nil, + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'float', 'left'), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + '::after', + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'content', '\"\"'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'table'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'clear', 'both') + ])) + ])); + case 'CenterX': + return _Utils_Tuple2(_List_Nil, _List_Nil); + default: + return _Utils_Tuple2(_List_Nil, _List_Nil); + } + }) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputMultiline), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'pre-wrap !important'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'background-color', 'transparent') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputMultilineWrapper), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto') + ])) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputMultilineParent), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'pre-wrap !important'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'cursor', 'text'), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputMultilineFiller), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'pre-wrap !important'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'color', 'transparent') + ])) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.paragraph), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'block'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'normal'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow-wrap', 'break-word'), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.hasBehind), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '0'), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.behind), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '-1') + ])) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$AllChildren, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.text), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'normal') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$AllChildren, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.paragraph), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline'), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + '::after', + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'content', 'none') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + '::before', + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'content', 'none') + ])) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$AllChildren, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'normal'), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthExact), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline-block') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inFront), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.behind), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.above), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.below), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.onRight), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.onLeft), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.text), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'normal') + ])) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.row), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.column), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline-flex') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Child, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.grid), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline-grid') + ])), + $mdgriffith$elm_ui$Internal$Style$describeAlignment( + function (alignment) { + switch (alignment.$) { + case 'Top': + return _Utils_Tuple2(_List_Nil, _List_Nil); + case 'Bottom': + return _Utils_Tuple2(_List_Nil, _List_Nil); + case 'Right': + return _Utils_Tuple2( + _List_Nil, + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'float', 'right') + ])); + case 'Left': + return _Utils_Tuple2( + _List_Nil, + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'float', 'left') + ])); + case 'CenterX': + return _Utils_Tuple2(_List_Nil, _List_Nil); + default: + return _Utils_Tuple2(_List_Nil, _List_Nil); + } + }) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + '.hidden', + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'none') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textThin), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '100') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textExtraLight), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '200') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textLight), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '300') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textNormalWeight), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '400') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textMedium), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '500') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textSemiBold), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '600') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.bold), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '700') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textExtraBold), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '800') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textHeavy), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '900') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.italic), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-style', 'italic') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.strike), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration', 'line-through') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.underline), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration', 'underline'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration-skip-ink', 'auto'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration-skip', 'ink') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + _Utils_ap( + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.underline), + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.strike)), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration', 'line-through underline'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration-skip-ink', 'auto'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration-skip', 'ink') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textUnitalicized), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-style', 'normal') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textJustify), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'justify') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textJustifyAll), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'justify-all') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textCenter), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'center') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textRight), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'right') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textLeft), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'left') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Descriptor, + '.modal', + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'fixed'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '0'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'top', '0'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'), + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none') + ])) + ])) + ]); +var $mdgriffith$elm_ui$Internal$Style$fontVariant = function (_var) { + return _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Style$Class, + '.v-' + _var, + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-feature-settings', '\"' + (_var + '\"')) + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Class, + '.v-' + (_var + '-off'), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-feature-settings', '\"' + (_var + '\" 0')) + ])) + ]); +}; +var $mdgriffith$elm_ui$Internal$Style$commonValues = $elm$core$List$concat( + _List_fromArray( + [ + A2( + $elm$core$List$map, + function (x) { + return A2( + $mdgriffith$elm_ui$Internal$Style$Class, + '.border-' + $elm$core$String$fromInt(x), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Style$Prop, + 'border-width', + $elm$core$String$fromInt(x) + 'px') + ])); + }, + A2($elm$core$List$range, 0, 6)), + A2( + $elm$core$List$map, + function (i) { + return A2( + $mdgriffith$elm_ui$Internal$Style$Class, + '.font-size-' + $elm$core$String$fromInt(i), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Style$Prop, + 'font-size', + $elm$core$String$fromInt(i) + 'px') + ])); + }, + A2($elm$core$List$range, 8, 32)), + A2( + $elm$core$List$map, + function (i) { + return A2( + $mdgriffith$elm_ui$Internal$Style$Class, + '.p-' + $elm$core$String$fromInt(i), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Style$Prop, + 'padding', + $elm$core$String$fromInt(i) + 'px') + ])); + }, + A2($elm$core$List$range, 0, 24)), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Style$Class, + '.v-smcp', + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-variant', 'small-caps') + ])), + A2( + $mdgriffith$elm_ui$Internal$Style$Class, + '.v-smcp-off', + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-variant', 'normal') + ])) + ]), + $mdgriffith$elm_ui$Internal$Style$fontVariant('zero'), + $mdgriffith$elm_ui$Internal$Style$fontVariant('onum'), + $mdgriffith$elm_ui$Internal$Style$fontVariant('liga'), + $mdgriffith$elm_ui$Internal$Style$fontVariant('dlig'), + $mdgriffith$elm_ui$Internal$Style$fontVariant('ordn'), + $mdgriffith$elm_ui$Internal$Style$fontVariant('tnum'), + $mdgriffith$elm_ui$Internal$Style$fontVariant('afrc'), + $mdgriffith$elm_ui$Internal$Style$fontVariant('frac') + ])); +var $mdgriffith$elm_ui$Internal$Style$explainer = '\n.explain {\n border: 6px solid rgb(174, 121, 15) !important;\n}\n.explain > .' + ($mdgriffith$elm_ui$Internal$Style$classes.any + (' {\n border: 4px dashed rgb(0, 151, 167) !important;\n}\n\n.ctr {\n border: none !important;\n}\n.explain > .ctr > .' + ($mdgriffith$elm_ui$Internal$Style$classes.any + ' {\n border: 4px dashed rgb(0, 151, 167) !important;\n}\n\n'))); +var $mdgriffith$elm_ui$Internal$Style$inputTextReset = '\ninput[type="search"],\ninput[type="search"]::-webkit-search-decoration,\ninput[type="search"]::-webkit-search-cancel-button,\ninput[type="search"]::-webkit-search-results-button,\ninput[type="search"]::-webkit-search-results-decoration {\n -webkit-appearance:none;\n}\n'; +var $mdgriffith$elm_ui$Internal$Style$sliderReset = '\ninput[type=range] {\n -webkit-appearance: none; \n background: transparent;\n position:absolute;\n left:0;\n top:0;\n z-index:10;\n width: 100%;\n outline: dashed 1px;\n height: 100%;\n opacity: 0;\n}\n'; +var $mdgriffith$elm_ui$Internal$Style$thumbReset = '\ninput[type=range]::-webkit-slider-thumb {\n -webkit-appearance: none;\n opacity: 0.5;\n width: 80px;\n height: 80px;\n background-color: black;\n border:none;\n border-radius: 5px;\n}\ninput[type=range]::-moz-range-thumb {\n opacity: 0.5;\n width: 80px;\n height: 80px;\n background-color: black;\n border:none;\n border-radius: 5px;\n}\ninput[type=range]::-ms-thumb {\n opacity: 0.5;\n width: 80px;\n height: 80px;\n background-color: black;\n border:none;\n border-radius: 5px;\n}\ninput[type=range][orient=vertical]{\n writing-mode: bt-lr; /* IE */\n -webkit-appearance: slider-vertical; /* WebKit */\n}\n'; +var $mdgriffith$elm_ui$Internal$Style$trackReset = '\ninput[type=range]::-moz-range-track {\n background: transparent;\n cursor: pointer;\n}\ninput[type=range]::-ms-track {\n background: transparent;\n cursor: pointer;\n}\ninput[type=range]::-webkit-slider-runnable-track {\n background: transparent;\n cursor: pointer;\n}\n'; +var $mdgriffith$elm_ui$Internal$Style$overrides = '@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.row) + (' > ' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + (' { flex-basis: auto !important; } ' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.row) + (' > ' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.container) + (' { flex-basis: auto !important; }}' + ($mdgriffith$elm_ui$Internal$Style$inputTextReset + ($mdgriffith$elm_ui$Internal$Style$sliderReset + ($mdgriffith$elm_ui$Internal$Style$trackReset + ($mdgriffith$elm_ui$Internal$Style$thumbReset + $mdgriffith$elm_ui$Internal$Style$explainer))))))))))))))); +var $mdgriffith$elm_ui$Internal$Style$Intermediate = function (a) { + return {$: 'Intermediate', a: a}; +}; +var $mdgriffith$elm_ui$Internal$Style$emptyIntermediate = F2( + function (selector, closing) { + return $mdgriffith$elm_ui$Internal$Style$Intermediate( + {closing: closing, others: _List_Nil, props: _List_Nil, selector: selector}); + }); +var $mdgriffith$elm_ui$Internal$Style$renderRules = F2( + function (_v0, rulesToRender) { + var parent = _v0.a; + var generateIntermediates = F2( + function (rule, rendered) { + switch (rule.$) { + case 'Prop': + var name = rule.a; + var val = rule.b; + return _Utils_update( + rendered, + { + props: A2( + $elm$core$List$cons, + _Utils_Tuple2(name, val), + rendered.props) + }); + case 'Supports': + var _v2 = rule.a; + var prop = _v2.a; + var value = _v2.b; + var props = rule.b; + return _Utils_update( + rendered, + { + others: A2( + $elm$core$List$cons, + $mdgriffith$elm_ui$Internal$Style$Intermediate( + {closing: '\n}', others: _List_Nil, props: props, selector: '@supports (' + (prop + (':' + (value + (') {' + parent.selector))))}), + rendered.others) + }); + case 'Adjacent': + var selector = rule.a; + var adjRules = rule.b; + return _Utils_update( + rendered, + { + others: A2( + $elm$core$List$cons, + A2( + $mdgriffith$elm_ui$Internal$Style$renderRules, + A2($mdgriffith$elm_ui$Internal$Style$emptyIntermediate, parent.selector + (' + ' + selector), ''), + adjRules), + rendered.others) + }); + case 'Child': + var child = rule.a; + var childRules = rule.b; + return _Utils_update( + rendered, + { + others: A2( + $elm$core$List$cons, + A2( + $mdgriffith$elm_ui$Internal$Style$renderRules, + A2($mdgriffith$elm_ui$Internal$Style$emptyIntermediate, parent.selector + (' > ' + child), ''), + childRules), + rendered.others) + }); + case 'AllChildren': + var child = rule.a; + var childRules = rule.b; + return _Utils_update( + rendered, + { + others: A2( + $elm$core$List$cons, + A2( + $mdgriffith$elm_ui$Internal$Style$renderRules, + A2($mdgriffith$elm_ui$Internal$Style$emptyIntermediate, parent.selector + (' ' + child), ''), + childRules), + rendered.others) + }); + case 'Descriptor': + var descriptor = rule.a; + var descriptorRules = rule.b; + return _Utils_update( + rendered, + { + others: A2( + $elm$core$List$cons, + A2( + $mdgriffith$elm_ui$Internal$Style$renderRules, + A2( + $mdgriffith$elm_ui$Internal$Style$emptyIntermediate, + _Utils_ap(parent.selector, descriptor), + ''), + descriptorRules), + rendered.others) + }); + default: + var batched = rule.a; + return _Utils_update( + rendered, + { + others: A2( + $elm$core$List$cons, + A2( + $mdgriffith$elm_ui$Internal$Style$renderRules, + A2($mdgriffith$elm_ui$Internal$Style$emptyIntermediate, parent.selector, ''), + batched), + rendered.others) + }); + } + }); + return $mdgriffith$elm_ui$Internal$Style$Intermediate( + A3($elm$core$List$foldr, generateIntermediates, parent, rulesToRender)); + }); +var $mdgriffith$elm_ui$Internal$Style$renderCompact = function (styleClasses) { + var renderValues = function (values) { + return $elm$core$String$concat( + A2( + $elm$core$List$map, + function (_v3) { + var x = _v3.a; + var y = _v3.b; + return x + (':' + (y + ';')); + }, + values)); + }; + var renderClass = function (rule) { + var _v2 = rule.props; + if (!_v2.b) { + return ''; + } else { + return rule.selector + ('{' + (renderValues(rule.props) + (rule.closing + '}'))); + } + }; + var renderIntermediate = function (_v0) { + var rule = _v0.a; + return _Utils_ap( + renderClass(rule), + $elm$core$String$concat( + A2($elm$core$List$map, renderIntermediate, rule.others))); + }; + return $elm$core$String$concat( + A2( + $elm$core$List$map, + renderIntermediate, + A3( + $elm$core$List$foldr, + F2( + function (_v1, existing) { + var name = _v1.a; + var styleRules = _v1.b; + return A2( + $elm$core$List$cons, + A2( + $mdgriffith$elm_ui$Internal$Style$renderRules, + A2($mdgriffith$elm_ui$Internal$Style$emptyIntermediate, name, ''), + styleRules), + existing); + }), + _List_Nil, + styleClasses))); +}; +var $mdgriffith$elm_ui$Internal$Style$rules = _Utils_ap( + $mdgriffith$elm_ui$Internal$Style$overrides, + $mdgriffith$elm_ui$Internal$Style$renderCompact( + _Utils_ap($mdgriffith$elm_ui$Internal$Style$baseSheet, $mdgriffith$elm_ui$Internal$Style$commonValues))); +var $elm$virtual_dom$VirtualDom$text = _VirtualDom_text; +var $mdgriffith$elm_ui$Internal$Model$staticRoot = function (opts) { + var _v0 = opts.mode; + switch (_v0.$) { + case 'Layout': + return A3( + $elm$virtual_dom$VirtualDom$node, + 'div', + _List_Nil, + _List_fromArray( + [ + A3( + $elm$virtual_dom$VirtualDom$node, + 'style', + _List_Nil, + _List_fromArray( + [ + $elm$virtual_dom$VirtualDom$text($mdgriffith$elm_ui$Internal$Style$rules) + ])) + ])); + case 'NoStaticStyleSheet': + return $elm$virtual_dom$VirtualDom$text(''); + default: + return A3( + $elm$virtual_dom$VirtualDom$node, + 'elm-ui-static-rules', + _List_fromArray( + [ + A2( + $elm$virtual_dom$VirtualDom$property, + 'rules', + $elm$json$Json$Encode$string($mdgriffith$elm_ui$Internal$Style$rules)) + ]), + _List_Nil); + } +}; +var $elm$json$Json$Encode$list = F2( + function (func, entries) { + return _Json_wrap( + A3( + $elm$core$List$foldl, + _Json_addEntry(func), + _Json_emptyArray(_Utils_Tuple0), + entries)); + }); +var $elm$json$Json$Encode$object = function (pairs) { + return _Json_wrap( + A3( + $elm$core$List$foldl, + F2( + function (_v0, obj) { + var k = _v0.a; + var v = _v0.b; + return A3(_Json_addField, k, v, obj); + }), + _Json_emptyObject(_Utils_Tuple0), + pairs)); +}; +var $elm$core$List$any = F2( + function (isOkay, list) { + any: + while (true) { + if (!list.b) { + return false; + } else { + var x = list.a; + var xs = list.b; + if (isOkay(x)) { + return true; + } else { + var $temp$isOkay = isOkay, + $temp$list = xs; + isOkay = $temp$isOkay; + list = $temp$list; + continue any; + } + } + } + }); +var $mdgriffith$elm_ui$Internal$Model$fontName = function (font) { + switch (font.$) { + case 'Serif': + return 'serif'; + case 'SansSerif': + return 'sans-serif'; + case 'Monospace': + return 'monospace'; + case 'Typeface': + var name = font.a; + return '\"' + (name + '\"'); + case 'ImportFont': + var name = font.a; + var url = font.b; + return '\"' + (name + '\"'); + default: + var name = font.a.name; + return '\"' + (name + '\"'); + } +}; +var $mdgriffith$elm_ui$Internal$Model$isSmallCaps = function (_var) { + switch (_var.$) { + case 'VariantActive': + var name = _var.a; + return name === 'smcp'; + case 'VariantOff': + var name = _var.a; + return false; + default: + var name = _var.a; + var index = _var.b; + return (name === 'smcp') && (index === 1); + } +}; +var $mdgriffith$elm_ui$Internal$Model$hasSmallCaps = function (typeface) { + if (typeface.$ === 'FontWith') { + var font = typeface.a; + return A2($elm$core$List$any, $mdgriffith$elm_ui$Internal$Model$isSmallCaps, font.variants); + } else { + return false; + } +}; +var $elm$core$Basics$min = F2( + function (x, y) { + return (_Utils_cmp(x, y) < 0) ? x : y; + }); +var $elm$core$Basics$negate = function (n) { + return -n; +}; +var $mdgriffith$elm_ui$Internal$Model$renderProps = F3( + function (force, _v0, existing) { + var key = _v0.a; + var val = _v0.b; + return force ? (existing + ('\n ' + (key + (': ' + (val + ' !important;'))))) : (existing + ('\n ' + (key + (': ' + (val + ';'))))); + }); +var $mdgriffith$elm_ui$Internal$Model$renderStyle = F4( + function (options, maybePseudo, selector, props) { + if (maybePseudo.$ === 'Nothing') { + return _List_fromArray( + [ + selector + ('{' + (A3( + $elm$core$List$foldl, + $mdgriffith$elm_ui$Internal$Model$renderProps(false), + '', + props) + '\n}')) + ]); + } else { + var pseudo = maybePseudo.a; + switch (pseudo.$) { + case 'Hover': + var _v2 = options.hover; + switch (_v2.$) { + case 'NoHover': + return _List_Nil; + case 'ForceHover': + return _List_fromArray( + [ + selector + ('-hv {' + (A3( + $elm$core$List$foldl, + $mdgriffith$elm_ui$Internal$Model$renderProps(true), + '', + props) + '\n}')) + ]); + default: + return _List_fromArray( + [ + selector + ('-hv:hover {' + (A3( + $elm$core$List$foldl, + $mdgriffith$elm_ui$Internal$Model$renderProps(false), + '', + props) + '\n}')) + ]); + } + case 'Focus': + var renderedProps = A3( + $elm$core$List$foldl, + $mdgriffith$elm_ui$Internal$Model$renderProps(false), + '', + props); + return _List_fromArray( + [ + selector + ('-fs:focus {' + (renderedProps + '\n}')), + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.any + (':focus ' + (selector + '-fs {')))) + (renderedProps + '\n}'), + (selector + '-fs:focus-within {') + (renderedProps + '\n}'), + ('.ui-slide-bar:focus + ' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + (' .focusable-thumb' + (selector + '-fs {')))) + (renderedProps + '\n}') + ]); + default: + return _List_fromArray( + [ + selector + ('-act:active {' + (A3( + $elm$core$List$foldl, + $mdgriffith$elm_ui$Internal$Model$renderProps(false), + '', + props) + '\n}')) + ]); + } + } + }); +var $mdgriffith$elm_ui$Internal$Model$renderVariant = function (_var) { + switch (_var.$) { + case 'VariantActive': + var name = _var.a; + return '\"' + (name + '\"'); + case 'VariantOff': + var name = _var.a; + return '\"' + (name + '\" 0'); + default: + var name = _var.a; + var index = _var.b; + return '\"' + (name + ('\" ' + $elm$core$String$fromInt(index))); + } +}; +var $mdgriffith$elm_ui$Internal$Model$renderVariants = function (typeface) { + if (typeface.$ === 'FontWith') { + var font = typeface.a; + return $elm$core$Maybe$Just( + A2( + $elm$core$String$join, + ', ', + A2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$renderVariant, font.variants))); + } else { + return $elm$core$Maybe$Nothing; + } +}; +var $mdgriffith$elm_ui$Internal$Model$transformValue = function (transform) { + switch (transform.$) { + case 'Untransformed': + return $elm$core$Maybe$Nothing; + case 'Moved': + var _v1 = transform.a; + var x = _v1.a; + var y = _v1.b; + var z = _v1.c; + return $elm$core$Maybe$Just( + 'translate3d(' + ($elm$core$String$fromFloat(x) + ('px, ' + ($elm$core$String$fromFloat(y) + ('px, ' + ($elm$core$String$fromFloat(z) + 'px)')))))); + default: + var _v2 = transform.a; + var tx = _v2.a; + var ty = _v2.b; + var tz = _v2.c; + var _v3 = transform.b; + var sx = _v3.a; + var sy = _v3.b; + var sz = _v3.c; + var _v4 = transform.c; + var ox = _v4.a; + var oy = _v4.b; + var oz = _v4.c; + var angle = transform.d; + var translate = 'translate3d(' + ($elm$core$String$fromFloat(tx) + ('px, ' + ($elm$core$String$fromFloat(ty) + ('px, ' + ($elm$core$String$fromFloat(tz) + 'px)'))))); + var scale = 'scale3d(' + ($elm$core$String$fromFloat(sx) + (', ' + ($elm$core$String$fromFloat(sy) + (', ' + ($elm$core$String$fromFloat(sz) + ')'))))); + var rotate = 'rotate3d(' + ($elm$core$String$fromFloat(ox) + (', ' + ($elm$core$String$fromFloat(oy) + (', ' + ($elm$core$String$fromFloat(oz) + (', ' + ($elm$core$String$fromFloat(angle) + 'rad)'))))))); + return $elm$core$Maybe$Just(translate + (' ' + (scale + (' ' + rotate)))); + } +}; +var $mdgriffith$elm_ui$Internal$Model$renderStyleRule = F3( + function (options, rule, maybePseudo) { + switch (rule.$) { + case 'Style': + var selector = rule.a; + var props = rule.b; + return A4($mdgriffith$elm_ui$Internal$Model$renderStyle, options, maybePseudo, selector, props); + case 'Shadows': + var name = rule.a; + var prop = rule.b; + return A4( + $mdgriffith$elm_ui$Internal$Model$renderStyle, + options, + maybePseudo, + '.' + name, + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Model$Property, 'box-shadow', prop) + ])); + case 'Transparency': + var name = rule.a; + var transparency = rule.b; + var opacity = A2( + $elm$core$Basics$max, + 0, + A2($elm$core$Basics$min, 1, 1 - transparency)); + return A4( + $mdgriffith$elm_ui$Internal$Model$renderStyle, + options, + maybePseudo, + '.' + name, + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Model$Property, + 'opacity', + $elm$core$String$fromFloat(opacity)) + ])); + case 'FontSize': + var i = rule.a; + return A4( + $mdgriffith$elm_ui$Internal$Model$renderStyle, + options, + maybePseudo, + '.font-size-' + $elm$core$String$fromInt(i), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Model$Property, + 'font-size', + $elm$core$String$fromInt(i) + 'px') + ])); + case 'FontFamily': + var name = rule.a; + var typefaces = rule.b; + var features = A2( + $elm$core$String$join, + ', ', + A2($elm$core$List$filterMap, $mdgriffith$elm_ui$Internal$Model$renderVariants, typefaces)); + var families = _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Model$Property, + 'font-family', + A2( + $elm$core$String$join, + ', ', + A2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$fontName, typefaces))), + A2($mdgriffith$elm_ui$Internal$Model$Property, 'font-feature-settings', features), + A2( + $mdgriffith$elm_ui$Internal$Model$Property, + 'font-variant', + A2($elm$core$List$any, $mdgriffith$elm_ui$Internal$Model$hasSmallCaps, typefaces) ? 'small-caps' : 'normal') + ]); + return A4($mdgriffith$elm_ui$Internal$Model$renderStyle, options, maybePseudo, '.' + name, families); + case 'Single': + var _class = rule.a; + var prop = rule.b; + var val = rule.c; + return A4( + $mdgriffith$elm_ui$Internal$Model$renderStyle, + options, + maybePseudo, + '.' + _class, + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Model$Property, prop, val) + ])); + case 'Colored': + var _class = rule.a; + var prop = rule.b; + var color = rule.c; + return A4( + $mdgriffith$elm_ui$Internal$Model$renderStyle, + options, + maybePseudo, + '.' + _class, + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Model$Property, + prop, + $mdgriffith$elm_ui$Internal$Model$formatColor(color)) + ])); + case 'SpacingStyle': + var cls = rule.a; + var x = rule.b; + var y = rule.c; + var yPx = $elm$core$String$fromInt(y) + 'px'; + var xPx = $elm$core$String$fromInt(x) + 'px'; + var single = '.' + $mdgriffith$elm_ui$Internal$Style$classes.single; + var row = '.' + $mdgriffith$elm_ui$Internal$Style$classes.row; + var wrappedRow = '.' + ($mdgriffith$elm_ui$Internal$Style$classes.wrapped + row); + var right = '.' + $mdgriffith$elm_ui$Internal$Style$classes.alignRight; + var paragraph = '.' + $mdgriffith$elm_ui$Internal$Style$classes.paragraph; + var page = '.' + $mdgriffith$elm_ui$Internal$Style$classes.page; + var left = '.' + $mdgriffith$elm_ui$Internal$Style$classes.alignLeft; + var halfY = $elm$core$String$fromFloat(y / 2) + 'px'; + var halfX = $elm$core$String$fromFloat(x / 2) + 'px'; + var column = '.' + $mdgriffith$elm_ui$Internal$Style$classes.column; + var _class = '.' + cls; + var any = '.' + $mdgriffith$elm_ui$Internal$Style$classes.any; + return $elm$core$List$concat( + _List_fromArray( + [ + A4( + $mdgriffith$elm_ui$Internal$Model$renderStyle, + options, + maybePseudo, + _class + (row + (' > ' + (any + (' + ' + any)))), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-left', xPx) + ])), + A4( + $mdgriffith$elm_ui$Internal$Model$renderStyle, + options, + maybePseudo, + _class + (wrappedRow + (' > ' + any)), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin', halfY + (' ' + halfX)) + ])), + A4( + $mdgriffith$elm_ui$Internal$Model$renderStyle, + options, + maybePseudo, + _class + (column + (' > ' + (any + (' + ' + any)))), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-top', yPx) + ])), + A4( + $mdgriffith$elm_ui$Internal$Model$renderStyle, + options, + maybePseudo, + _class + (page + (' > ' + (any + (' + ' + any)))), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-top', yPx) + ])), + A4( + $mdgriffith$elm_ui$Internal$Model$renderStyle, + options, + maybePseudo, + _class + (page + (' > ' + left)), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-right', xPx) + ])), + A4( + $mdgriffith$elm_ui$Internal$Model$renderStyle, + options, + maybePseudo, + _class + (page + (' > ' + right)), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-left', xPx) + ])), + A4( + $mdgriffith$elm_ui$Internal$Model$renderStyle, + options, + maybePseudo, + _Utils_ap(_class, paragraph), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Model$Property, + 'line-height', + 'calc(1em + ' + ($elm$core$String$fromInt(y) + 'px)')) + ])), + A4( + $mdgriffith$elm_ui$Internal$Model$renderStyle, + options, + maybePseudo, + 'textarea' + (any + _class), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Model$Property, + 'line-height', + 'calc(1em + ' + ($elm$core$String$fromInt(y) + 'px)')), + A2( + $mdgriffith$elm_ui$Internal$Model$Property, + 'height', + 'calc(100% + ' + ($elm$core$String$fromInt(y) + 'px)')) + ])), + A4( + $mdgriffith$elm_ui$Internal$Model$renderStyle, + options, + maybePseudo, + _class + (paragraph + (' > ' + left)), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-right', xPx) + ])), + A4( + $mdgriffith$elm_ui$Internal$Model$renderStyle, + options, + maybePseudo, + _class + (paragraph + (' > ' + right)), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-left', xPx) + ])), + A4( + $mdgriffith$elm_ui$Internal$Model$renderStyle, + options, + maybePseudo, + _class + (paragraph + '::after'), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Model$Property, 'content', '\'\''), + A2($mdgriffith$elm_ui$Internal$Model$Property, 'display', 'block'), + A2($mdgriffith$elm_ui$Internal$Model$Property, 'height', '0'), + A2($mdgriffith$elm_ui$Internal$Model$Property, 'width', '0'), + A2( + $mdgriffith$elm_ui$Internal$Model$Property, + 'margin-top', + $elm$core$String$fromInt((-1) * ((y / 2) | 0)) + 'px') + ])), + A4( + $mdgriffith$elm_ui$Internal$Model$renderStyle, + options, + maybePseudo, + _class + (paragraph + '::before'), + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Model$Property, 'content', '\'\''), + A2($mdgriffith$elm_ui$Internal$Model$Property, 'display', 'block'), + A2($mdgriffith$elm_ui$Internal$Model$Property, 'height', '0'), + A2($mdgriffith$elm_ui$Internal$Model$Property, 'width', '0'), + A2( + $mdgriffith$elm_ui$Internal$Model$Property, + 'margin-bottom', + $elm$core$String$fromInt((-1) * ((y / 2) | 0)) + 'px') + ])) + ])); + case 'PaddingStyle': + var cls = rule.a; + var top = rule.b; + var right = rule.c; + var bottom = rule.d; + var left = rule.e; + var _class = '.' + cls; + return A4( + $mdgriffith$elm_ui$Internal$Model$renderStyle, + options, + maybePseudo, + _class, + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Model$Property, + 'padding', + $elm$core$String$fromFloat(top) + ('px ' + ($elm$core$String$fromFloat(right) + ('px ' + ($elm$core$String$fromFloat(bottom) + ('px ' + ($elm$core$String$fromFloat(left) + 'px'))))))) + ])); + case 'BorderWidth': + var cls = rule.a; + var top = rule.b; + var right = rule.c; + var bottom = rule.d; + var left = rule.e; + var _class = '.' + cls; + return A4( + $mdgriffith$elm_ui$Internal$Model$renderStyle, + options, + maybePseudo, + _class, + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Model$Property, + 'border-width', + $elm$core$String$fromInt(top) + ('px ' + ($elm$core$String$fromInt(right) + ('px ' + ($elm$core$String$fromInt(bottom) + ('px ' + ($elm$core$String$fromInt(left) + 'px'))))))) + ])); + case 'GridTemplateStyle': + var template = rule.a; + var toGridLengthHelper = F3( + function (minimum, maximum, x) { + toGridLengthHelper: + while (true) { + switch (x.$) { + case 'Px': + var px = x.a; + return $elm$core$String$fromInt(px) + 'px'; + case 'Content': + var _v2 = _Utils_Tuple2(minimum, maximum); + if (_v2.a.$ === 'Nothing') { + if (_v2.b.$ === 'Nothing') { + var _v3 = _v2.a; + var _v4 = _v2.b; + return 'max-content'; + } else { + var _v6 = _v2.a; + var maxSize = _v2.b.a; + return 'minmax(max-content, ' + ($elm$core$String$fromInt(maxSize) + 'px)'); + } + } else { + if (_v2.b.$ === 'Nothing') { + var minSize = _v2.a.a; + var _v5 = _v2.b; + return 'minmax(' + ($elm$core$String$fromInt(minSize) + ('px, ' + 'max-content)')); + } else { + var minSize = _v2.a.a; + var maxSize = _v2.b.a; + return 'minmax(' + ($elm$core$String$fromInt(minSize) + ('px, ' + ($elm$core$String$fromInt(maxSize) + 'px)'))); + } + } + case 'Fill': + var i = x.a; + var _v7 = _Utils_Tuple2(minimum, maximum); + if (_v7.a.$ === 'Nothing') { + if (_v7.b.$ === 'Nothing') { + var _v8 = _v7.a; + var _v9 = _v7.b; + return $elm$core$String$fromInt(i) + 'fr'; + } else { + var _v11 = _v7.a; + var maxSize = _v7.b.a; + return 'minmax(max-content, ' + ($elm$core$String$fromInt(maxSize) + 'px)'); + } + } else { + if (_v7.b.$ === 'Nothing') { + var minSize = _v7.a.a; + var _v10 = _v7.b; + return 'minmax(' + ($elm$core$String$fromInt(minSize) + ('px, ' + ($elm$core$String$fromInt(i) + ('fr' + 'fr)')))); + } else { + var minSize = _v7.a.a; + var maxSize = _v7.b.a; + return 'minmax(' + ($elm$core$String$fromInt(minSize) + ('px, ' + ($elm$core$String$fromInt(maxSize) + 'px)'))); + } + } + case 'Min': + var m = x.a; + var len = x.b; + var $temp$minimum = $elm$core$Maybe$Just(m), + $temp$maximum = maximum, + $temp$x = len; + minimum = $temp$minimum; + maximum = $temp$maximum; + x = $temp$x; + continue toGridLengthHelper; + default: + var m = x.a; + var len = x.b; + var $temp$minimum = minimum, + $temp$maximum = $elm$core$Maybe$Just(m), + $temp$x = len; + minimum = $temp$minimum; + maximum = $temp$maximum; + x = $temp$x; + continue toGridLengthHelper; + } + } + }); + var toGridLength = function (x) { + return A3(toGridLengthHelper, $elm$core$Maybe$Nothing, $elm$core$Maybe$Nothing, x); + }; + var xSpacing = toGridLength(template.spacing.a); + var ySpacing = toGridLength(template.spacing.b); + var rows = function (x) { + return 'grid-template-rows: ' + (x + ';'); + }( + A2( + $elm$core$String$join, + ' ', + A2($elm$core$List$map, toGridLength, template.rows))); + var msRows = function (x) { + return '-ms-grid-rows: ' + (x + ';'); + }( + A2( + $elm$core$String$join, + ySpacing, + A2($elm$core$List$map, toGridLength, template.columns))); + var msColumns = function (x) { + return '-ms-grid-columns: ' + (x + ';'); + }( + A2( + $elm$core$String$join, + ySpacing, + A2($elm$core$List$map, toGridLength, template.columns))); + var gapY = 'grid-row-gap:' + (toGridLength(template.spacing.b) + ';'); + var gapX = 'grid-column-gap:' + (toGridLength(template.spacing.a) + ';'); + var columns = function (x) { + return 'grid-template-columns: ' + (x + ';'); + }( + A2( + $elm$core$String$join, + ' ', + A2($elm$core$List$map, toGridLength, template.columns))); + var _class = '.grid-rows-' + (A2( + $elm$core$String$join, + '-', + A2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$lengthClassName, template.rows)) + ('-cols-' + (A2( + $elm$core$String$join, + '-', + A2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$lengthClassName, template.columns)) + ('-space-x-' + ($mdgriffith$elm_ui$Internal$Model$lengthClassName(template.spacing.a) + ('-space-y-' + $mdgriffith$elm_ui$Internal$Model$lengthClassName(template.spacing.b))))))); + var modernGrid = _class + ('{' + (columns + (rows + (gapX + (gapY + '}'))))); + var supports = '@supports (display:grid) {' + (modernGrid + '}'); + var base = _class + ('{' + (msColumns + (msRows + '}'))); + return _List_fromArray( + [base, supports]); + case 'GridPosition': + var position = rule.a; + var msPosition = A2( + $elm$core$String$join, + ' ', + _List_fromArray( + [ + '-ms-grid-row: ' + ($elm$core$String$fromInt(position.row) + ';'), + '-ms-grid-row-span: ' + ($elm$core$String$fromInt(position.height) + ';'), + '-ms-grid-column: ' + ($elm$core$String$fromInt(position.col) + ';'), + '-ms-grid-column-span: ' + ($elm$core$String$fromInt(position.width) + ';') + ])); + var modernPosition = A2( + $elm$core$String$join, + ' ', + _List_fromArray( + [ + 'grid-row: ' + ($elm$core$String$fromInt(position.row) + (' / ' + ($elm$core$String$fromInt(position.row + position.height) + ';'))), + 'grid-column: ' + ($elm$core$String$fromInt(position.col) + (' / ' + ($elm$core$String$fromInt(position.col + position.width) + ';'))) + ])); + var _class = '.grid-pos-' + ($elm$core$String$fromInt(position.row) + ('-' + ($elm$core$String$fromInt(position.col) + ('-' + ($elm$core$String$fromInt(position.width) + ('-' + $elm$core$String$fromInt(position.height))))))); + var modernGrid = _class + ('{' + (modernPosition + '}')); + var supports = '@supports (display:grid) {' + (modernGrid + '}'); + var base = _class + ('{' + (msPosition + '}')); + return _List_fromArray( + [base, supports]); + case 'PseudoSelector': + var _class = rule.a; + var styles = rule.b; + var renderPseudoRule = function (style) { + return A3( + $mdgriffith$elm_ui$Internal$Model$renderStyleRule, + options, + style, + $elm$core$Maybe$Just(_class)); + }; + return A2($elm$core$List$concatMap, renderPseudoRule, styles); + default: + var transform = rule.a; + var val = $mdgriffith$elm_ui$Internal$Model$transformValue(transform); + var _class = $mdgriffith$elm_ui$Internal$Model$transformClass(transform); + var _v12 = _Utils_Tuple2(_class, val); + if ((_v12.a.$ === 'Just') && (_v12.b.$ === 'Just')) { + var cls = _v12.a.a; + var v = _v12.b.a; + return A4( + $mdgriffith$elm_ui$Internal$Model$renderStyle, + options, + maybePseudo, + '.' + cls, + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Model$Property, 'transform', v) + ])); + } else { + return _List_Nil; + } + } + }); +var $mdgriffith$elm_ui$Internal$Model$encodeStyles = F2( + function (options, stylesheet) { + return $elm$json$Json$Encode$object( + A2( + $elm$core$List$map, + function (style) { + var styled = A3($mdgriffith$elm_ui$Internal$Model$renderStyleRule, options, style, $elm$core$Maybe$Nothing); + return _Utils_Tuple2( + $mdgriffith$elm_ui$Internal$Model$getStyleName(style), + A2($elm$json$Json$Encode$list, $elm$json$Json$Encode$string, styled)); + }, + stylesheet)); + }); +var $mdgriffith$elm_ui$Internal$Model$bracket = F2( + function (selector, rules) { + var renderPair = function (_v0) { + var name = _v0.a; + var val = _v0.b; + return name + (': ' + (val + ';')); + }; + return selector + (' {' + (A2( + $elm$core$String$join, + '', + A2($elm$core$List$map, renderPair, rules)) + '}')); + }); +var $mdgriffith$elm_ui$Internal$Model$fontRule = F3( + function (name, modifier, _v0) { + var parentAdj = _v0.a; + var textAdjustment = _v0.b; + return _List_fromArray( + [ + A2($mdgriffith$elm_ui$Internal$Model$bracket, '.' + (name + ('.' + (modifier + (', ' + ('.' + (name + (' .' + modifier))))))), parentAdj), + A2($mdgriffith$elm_ui$Internal$Model$bracket, '.' + (name + ('.' + (modifier + ('> .' + ($mdgriffith$elm_ui$Internal$Style$classes.text + (', .' + (name + (' .' + (modifier + (' > .' + $mdgriffith$elm_ui$Internal$Style$classes.text)))))))))), textAdjustment) + ]); + }); +var $mdgriffith$elm_ui$Internal$Model$renderFontAdjustmentRule = F3( + function (fontToAdjust, _v0, otherFontName) { + var full = _v0.a; + var capital = _v0.b; + var name = _Utils_eq(fontToAdjust, otherFontName) ? fontToAdjust : (otherFontName + (' .' + fontToAdjust)); + return A2( + $elm$core$String$join, + ' ', + _Utils_ap( + A3($mdgriffith$elm_ui$Internal$Model$fontRule, name, $mdgriffith$elm_ui$Internal$Style$classes.sizeByCapital, capital), + A3($mdgriffith$elm_ui$Internal$Model$fontRule, name, $mdgriffith$elm_ui$Internal$Style$classes.fullSize, full))); + }); +var $mdgriffith$elm_ui$Internal$Model$renderNullAdjustmentRule = F2( + function (fontToAdjust, otherFontName) { + var name = _Utils_eq(fontToAdjust, otherFontName) ? fontToAdjust : (otherFontName + (' .' + fontToAdjust)); + return A2( + $elm$core$String$join, + ' ', + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Model$bracket, + '.' + (name + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.sizeByCapital + (', ' + ('.' + (name + (' .' + $mdgriffith$elm_ui$Internal$Style$classes.sizeByCapital))))))), + _List_fromArray( + [ + _Utils_Tuple2('line-height', '1') + ])), + A2( + $mdgriffith$elm_ui$Internal$Model$bracket, + '.' + (name + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.sizeByCapital + ('> .' + ($mdgriffith$elm_ui$Internal$Style$classes.text + (', .' + (name + (' .' + ($mdgriffith$elm_ui$Internal$Style$classes.sizeByCapital + (' > .' + $mdgriffith$elm_ui$Internal$Style$classes.text)))))))))), + _List_fromArray( + [ + _Utils_Tuple2('vertical-align', '0'), + _Utils_Tuple2('line-height', '1') + ])) + ])); + }); +var $mdgriffith$elm_ui$Internal$Model$adjust = F3( + function (size, height, vertical) { + return {height: height / size, size: size, vertical: vertical}; + }); +var $elm$core$List$filter = F2( + function (isGood, list) { + return A3( + $elm$core$List$foldr, + F2( + function (x, xs) { + return isGood(x) ? A2($elm$core$List$cons, x, xs) : xs; + }), + _List_Nil, + list); + }); +var $elm$core$List$maximum = function (list) { + if (list.b) { + var x = list.a; + var xs = list.b; + return $elm$core$Maybe$Just( + A3($elm$core$List$foldl, $elm$core$Basics$max, x, xs)); + } else { + return $elm$core$Maybe$Nothing; + } +}; +var $elm$core$List$minimum = function (list) { + if (list.b) { + var x = list.a; + var xs = list.b; + return $elm$core$Maybe$Just( + A3($elm$core$List$foldl, $elm$core$Basics$min, x, xs)); + } else { + return $elm$core$Maybe$Nothing; + } +}; +var $elm$core$Basics$neq = _Utils_notEqual; +var $mdgriffith$elm_ui$Internal$Model$convertAdjustment = function (adjustment) { + var lines = _List_fromArray( + [adjustment.capital, adjustment.baseline, adjustment.descender, adjustment.lowercase]); + var lineHeight = 1.5; + var normalDescender = (lineHeight - 1) / 2; + var oldMiddle = lineHeight / 2; + var descender = A2( + $elm$core$Maybe$withDefault, + adjustment.descender, + $elm$core$List$minimum(lines)); + var newBaseline = A2( + $elm$core$Maybe$withDefault, + adjustment.baseline, + $elm$core$List$minimum( + A2( + $elm$core$List$filter, + function (x) { + return !_Utils_eq(x, descender); + }, + lines))); + var base = lineHeight; + var ascender = A2( + $elm$core$Maybe$withDefault, + adjustment.capital, + $elm$core$List$maximum(lines)); + var capitalSize = 1 / (ascender - newBaseline); + var capitalVertical = 1 - ascender; + var fullSize = 1 / (ascender - descender); + var fullVertical = 1 - ascender; + var newCapitalMiddle = ((ascender - newBaseline) / 2) + newBaseline; + var newFullMiddle = ((ascender - descender) / 2) + descender; + return { + capital: A3($mdgriffith$elm_ui$Internal$Model$adjust, capitalSize, ascender - newBaseline, capitalVertical), + full: A3($mdgriffith$elm_ui$Internal$Model$adjust, fullSize, ascender - descender, fullVertical) + }; +}; +var $mdgriffith$elm_ui$Internal$Model$fontAdjustmentRules = function (converted) { + return _Utils_Tuple2( + _List_fromArray( + [ + _Utils_Tuple2('display', 'block') + ]), + _List_fromArray( + [ + _Utils_Tuple2('display', 'inline-block'), + _Utils_Tuple2( + 'line-height', + $elm$core$String$fromFloat(converted.height)), + _Utils_Tuple2( + 'vertical-align', + $elm$core$String$fromFloat(converted.vertical) + 'em'), + _Utils_Tuple2( + 'font-size', + $elm$core$String$fromFloat(converted.size) + 'em') + ])); +}; +var $mdgriffith$elm_ui$Internal$Model$typefaceAdjustment = function (typefaces) { + return A3( + $elm$core$List$foldl, + F2( + function (face, found) { + if (found.$ === 'Nothing') { + if (face.$ === 'FontWith') { + var _with = face.a; + var _v2 = _with.adjustment; + if (_v2.$ === 'Nothing') { + return found; + } else { + var adjustment = _v2.a; + return $elm$core$Maybe$Just( + _Utils_Tuple2( + $mdgriffith$elm_ui$Internal$Model$fontAdjustmentRules( + function ($) { + return $.full; + }( + $mdgriffith$elm_ui$Internal$Model$convertAdjustment(adjustment))), + $mdgriffith$elm_ui$Internal$Model$fontAdjustmentRules( + function ($) { + return $.capital; + }( + $mdgriffith$elm_ui$Internal$Model$convertAdjustment(adjustment))))); + } + } else { + return found; + } + } else { + return found; + } + }), + $elm$core$Maybe$Nothing, + typefaces); +}; +var $mdgriffith$elm_ui$Internal$Model$renderTopLevelValues = function (rules) { + var withImport = function (font) { + if (font.$ === 'ImportFont') { + var url = font.b; + return $elm$core$Maybe$Just('@import url(\'' + (url + '\');')); + } else { + return $elm$core$Maybe$Nothing; + } + }; + var fontImports = function (_v2) { + var name = _v2.a; + var typefaces = _v2.b; + var imports = A2( + $elm$core$String$join, + '\n', + A2($elm$core$List$filterMap, withImport, typefaces)); + return imports; + }; + var allNames = A2($elm$core$List$map, $elm$core$Tuple$first, rules); + var fontAdjustments = function (_v1) { + var name = _v1.a; + var typefaces = _v1.b; + var _v0 = $mdgriffith$elm_ui$Internal$Model$typefaceAdjustment(typefaces); + if (_v0.$ === 'Nothing') { + return A2( + $elm$core$String$join, + '', + A2( + $elm$core$List$map, + $mdgriffith$elm_ui$Internal$Model$renderNullAdjustmentRule(name), + allNames)); + } else { + var adjustment = _v0.a; + return A2( + $elm$core$String$join, + '', + A2( + $elm$core$List$map, + A2($mdgriffith$elm_ui$Internal$Model$renderFontAdjustmentRule, name, adjustment), + allNames)); + } + }; + return _Utils_ap( + A2( + $elm$core$String$join, + '\n', + A2($elm$core$List$map, fontImports, rules)), + A2( + $elm$core$String$join, + '\n', + A2($elm$core$List$map, fontAdjustments, rules))); +}; +var $mdgriffith$elm_ui$Internal$Model$topLevelValue = function (rule) { + if (rule.$ === 'FontFamily') { + var name = rule.a; + var typefaces = rule.b; + return $elm$core$Maybe$Just( + _Utils_Tuple2(name, typefaces)); + } else { + return $elm$core$Maybe$Nothing; + } +}; +var $mdgriffith$elm_ui$Internal$Model$toStyleSheetString = F2( + function (options, stylesheet) { + var combine = F2( + function (style, rendered) { + return { + rules: _Utils_ap( + rendered.rules, + A3($mdgriffith$elm_ui$Internal$Model$renderStyleRule, options, style, $elm$core$Maybe$Nothing)), + topLevel: function () { + var _v1 = $mdgriffith$elm_ui$Internal$Model$topLevelValue(style); + if (_v1.$ === 'Nothing') { + return rendered.topLevel; + } else { + var topLevel = _v1.a; + return A2($elm$core$List$cons, topLevel, rendered.topLevel); + } + }() + }; + }); + var _v0 = A3( + $elm$core$List$foldl, + combine, + {rules: _List_Nil, topLevel: _List_Nil}, + stylesheet); + var topLevel = _v0.topLevel; + var rules = _v0.rules; + return _Utils_ap( + $mdgriffith$elm_ui$Internal$Model$renderTopLevelValues(topLevel), + $elm$core$String$concat(rules)); + }); +var $mdgriffith$elm_ui$Internal$Model$toStyleSheet = F2( + function (options, styleSheet) { + var _v0 = options.mode; + switch (_v0.$) { + case 'Layout': + return A3( + $elm$virtual_dom$VirtualDom$node, + 'div', + _List_Nil, + _List_fromArray( + [ + A3( + $elm$virtual_dom$VirtualDom$node, + 'style', + _List_Nil, + _List_fromArray( + [ + $elm$virtual_dom$VirtualDom$text( + A2($mdgriffith$elm_ui$Internal$Model$toStyleSheetString, options, styleSheet)) + ])) + ])); + case 'NoStaticStyleSheet': + return A3( + $elm$virtual_dom$VirtualDom$node, + 'div', + _List_Nil, + _List_fromArray( + [ + A3( + $elm$virtual_dom$VirtualDom$node, + 'style', + _List_Nil, + _List_fromArray( + [ + $elm$virtual_dom$VirtualDom$text( + A2($mdgriffith$elm_ui$Internal$Model$toStyleSheetString, options, styleSheet)) + ])) + ])); + default: + return A3( + $elm$virtual_dom$VirtualDom$node, + 'elm-ui-rules', + _List_fromArray( + [ + A2( + $elm$virtual_dom$VirtualDom$property, + 'rules', + A2($mdgriffith$elm_ui$Internal$Model$encodeStyles, options, styleSheet)) + ]), + _List_Nil); + } + }); +var $mdgriffith$elm_ui$Internal$Model$embedKeyed = F4( + function (_static, opts, styles, children) { + var dynamicStyleSheet = A2( + $mdgriffith$elm_ui$Internal$Model$toStyleSheet, + opts, + A3( + $elm$core$List$foldl, + $mdgriffith$elm_ui$Internal$Model$reduceStyles, + _Utils_Tuple2( + $elm$core$Set$empty, + $mdgriffith$elm_ui$Internal$Model$renderFocusStyle(opts.focus)), + styles).b); + return _static ? A2( + $elm$core$List$cons, + _Utils_Tuple2( + 'static-stylesheet', + $mdgriffith$elm_ui$Internal$Model$staticRoot(opts)), + A2( + $elm$core$List$cons, + _Utils_Tuple2('dynamic-stylesheet', dynamicStyleSheet), + children)) : A2( + $elm$core$List$cons, + _Utils_Tuple2('dynamic-stylesheet', dynamicStyleSheet), + children); + }); +var $mdgriffith$elm_ui$Internal$Model$embedWith = F4( + function (_static, opts, styles, children) { + var dynamicStyleSheet = A2( + $mdgriffith$elm_ui$Internal$Model$toStyleSheet, + opts, + A3( + $elm$core$List$foldl, + $mdgriffith$elm_ui$Internal$Model$reduceStyles, + _Utils_Tuple2( + $elm$core$Set$empty, + $mdgriffith$elm_ui$Internal$Model$renderFocusStyle(opts.focus)), + styles).b); + return _static ? A2( + $elm$core$List$cons, + $mdgriffith$elm_ui$Internal$Model$staticRoot(opts), + A2($elm$core$List$cons, dynamicStyleSheet, children)) : A2($elm$core$List$cons, dynamicStyleSheet, children); + }); +var $mdgriffith$elm_ui$Internal$Flag$heightBetween = $mdgriffith$elm_ui$Internal$Flag$flag(45); +var $mdgriffith$elm_ui$Internal$Flag$heightFill = $mdgriffith$elm_ui$Internal$Flag$flag(37); +var $elm$virtual_dom$VirtualDom$keyedNode = function (tag) { + return _VirtualDom_keyedNode( + _VirtualDom_noScript(tag)); +}; +var $elm$core$Basics$not = _Basics_not; +var $elm$html$Html$p = _VirtualDom_node('p'); +var $elm$core$Bitwise$and = _Bitwise_and; +var $mdgriffith$elm_ui$Internal$Flag$present = F2( + function (myFlag, _v0) { + var fieldOne = _v0.a; + var fieldTwo = _v0.b; + if (myFlag.$ === 'Flag') { + var first = myFlag.a; + return _Utils_eq(first & fieldOne, first); + } else { + var second = myFlag.a; + return _Utils_eq(second & fieldTwo, second); + } + }); +var $elm$html$Html$s = _VirtualDom_node('s'); +var $elm$html$Html$u = _VirtualDom_node('u'); +var $mdgriffith$elm_ui$Internal$Flag$widthBetween = $mdgriffith$elm_ui$Internal$Flag$flag(44); +var $mdgriffith$elm_ui$Internal$Flag$widthFill = $mdgriffith$elm_ui$Internal$Flag$flag(39); +var $mdgriffith$elm_ui$Internal$Model$finalizeNode = F6( + function (has, node, attributes, children, embedMode, parentContext) { + var createNode = F2( + function (nodeName, attrs) { + if (children.$ === 'Keyed') { + var keyed = children.a; + return A3( + $elm$virtual_dom$VirtualDom$keyedNode, + nodeName, + attrs, + function () { + switch (embedMode.$) { + case 'NoStyleSheet': + return keyed; + case 'OnlyDynamic': + var opts = embedMode.a; + var styles = embedMode.b; + return A4($mdgriffith$elm_ui$Internal$Model$embedKeyed, false, opts, styles, keyed); + default: + var opts = embedMode.a; + var styles = embedMode.b; + return A4($mdgriffith$elm_ui$Internal$Model$embedKeyed, true, opts, styles, keyed); + } + }()); + } else { + var unkeyed = children.a; + return A2( + function () { + switch (nodeName) { + case 'div': + return $elm$html$Html$div; + case 'p': + return $elm$html$Html$p; + default: + return $elm$virtual_dom$VirtualDom$node(nodeName); + } + }(), + attrs, + function () { + switch (embedMode.$) { + case 'NoStyleSheet': + return unkeyed; + case 'OnlyDynamic': + var opts = embedMode.a; + var styles = embedMode.b; + return A4($mdgriffith$elm_ui$Internal$Model$embedWith, false, opts, styles, unkeyed); + default: + var opts = embedMode.a; + var styles = embedMode.b; + return A4($mdgriffith$elm_ui$Internal$Model$embedWith, true, opts, styles, unkeyed); + } + }()); + } + }); + var html = function () { + switch (node.$) { + case 'Generic': + return A2(createNode, 'div', attributes); + case 'NodeName': + var nodeName = node.a; + return A2(createNode, nodeName, attributes); + default: + var nodeName = node.a; + var internal = node.b; + return A3( + $elm$virtual_dom$VirtualDom$node, + nodeName, + attributes, + _List_fromArray( + [ + A2( + createNode, + internal, + _List_fromArray( + [ + $elm$html$Html$Attributes$class($mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.single)) + ])) + ])); + } + }(); + switch (parentContext.$) { + case 'AsRow': + return (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$widthFill, has) && (!A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$widthBetween, has))) ? html : (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$alignRight, has) ? A2( + $elm$html$Html$u, + _List_fromArray( + [ + $elm$html$Html$Attributes$class( + A2( + $elm$core$String$join, + ' ', + _List_fromArray( + [$mdgriffith$elm_ui$Internal$Style$classes.any, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.container, $mdgriffith$elm_ui$Internal$Style$classes.contentCenterY, $mdgriffith$elm_ui$Internal$Style$classes.alignContainerRight]))) + ]), + _List_fromArray( + [html])) : (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$centerX, has) ? A2( + $elm$html$Html$s, + _List_fromArray( + [ + $elm$html$Html$Attributes$class( + A2( + $elm$core$String$join, + ' ', + _List_fromArray( + [$mdgriffith$elm_ui$Internal$Style$classes.any, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.container, $mdgriffith$elm_ui$Internal$Style$classes.contentCenterY, $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX]))) + ]), + _List_fromArray( + [html])) : html)); + case 'AsColumn': + return (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$heightFill, has) && (!A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$heightBetween, has))) ? html : (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$centerY, has) ? A2( + $elm$html$Html$s, + _List_fromArray( + [ + $elm$html$Html$Attributes$class( + A2( + $elm$core$String$join, + ' ', + _List_fromArray( + [$mdgriffith$elm_ui$Internal$Style$classes.any, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.container, $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY]))) + ]), + _List_fromArray( + [html])) : (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$alignBottom, has) ? A2( + $elm$html$Html$u, + _List_fromArray( + [ + $elm$html$Html$Attributes$class( + A2( + $elm$core$String$join, + ' ', + _List_fromArray( + [$mdgriffith$elm_ui$Internal$Style$classes.any, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.container, $mdgriffith$elm_ui$Internal$Style$classes.alignContainerBottom]))) + ]), + _List_fromArray( + [html])) : html)); + default: + return html; + } + }); +var $elm$core$List$isEmpty = function (xs) { + if (!xs.b) { + return true; + } else { + return false; + } +}; +var $elm$html$Html$text = $elm$virtual_dom$VirtualDom$text; +var $mdgriffith$elm_ui$Internal$Model$textElementClasses = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.text + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.widthContent + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.heightContent))))); +var $mdgriffith$elm_ui$Internal$Model$textElement = function (str) { + return A2( + $elm$html$Html$div, + _List_fromArray( + [ + $elm$html$Html$Attributes$class($mdgriffith$elm_ui$Internal$Model$textElementClasses) + ]), + _List_fromArray( + [ + $elm$html$Html$text(str) + ])); +}; +var $mdgriffith$elm_ui$Internal$Model$textElementFillClasses = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.text + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.widthFill + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.heightFill))))); +var $mdgriffith$elm_ui$Internal$Model$textElementFill = function (str) { + return A2( + $elm$html$Html$div, + _List_fromArray( + [ + $elm$html$Html$Attributes$class($mdgriffith$elm_ui$Internal$Model$textElementFillClasses) + ]), + _List_fromArray( + [ + $elm$html$Html$text(str) + ])); +}; +var $mdgriffith$elm_ui$Internal$Model$createElement = F3( + function (context, children, rendered) { + var gatherKeyed = F2( + function (_v8, _v9) { + var key = _v8.a; + var child = _v8.b; + var htmls = _v9.a; + var existingStyles = _v9.b; + switch (child.$) { + case 'Unstyled': + var html = child.a; + return _Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asParagraph) ? _Utils_Tuple2( + A2( + $elm$core$List$cons, + _Utils_Tuple2( + key, + html(context)), + htmls), + existingStyles) : _Utils_Tuple2( + A2( + $elm$core$List$cons, + _Utils_Tuple2( + key, + html(context)), + htmls), + existingStyles); + case 'Styled': + var styled = child.a; + return _Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asParagraph) ? _Utils_Tuple2( + A2( + $elm$core$List$cons, + _Utils_Tuple2( + key, + A2(styled.html, $mdgriffith$elm_ui$Internal$Model$NoStyleSheet, context)), + htmls), + $elm$core$List$isEmpty(existingStyles) ? styled.styles : _Utils_ap(styled.styles, existingStyles)) : _Utils_Tuple2( + A2( + $elm$core$List$cons, + _Utils_Tuple2( + key, + A2(styled.html, $mdgriffith$elm_ui$Internal$Model$NoStyleSheet, context)), + htmls), + $elm$core$List$isEmpty(existingStyles) ? styled.styles : _Utils_ap(styled.styles, existingStyles)); + case 'Text': + var str = child.a; + return _Utils_Tuple2( + A2( + $elm$core$List$cons, + _Utils_Tuple2( + key, + _Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asEl) ? $mdgriffith$elm_ui$Internal$Model$textElementFill(str) : $mdgriffith$elm_ui$Internal$Model$textElement(str)), + htmls), + existingStyles); + default: + return _Utils_Tuple2(htmls, existingStyles); + } + }); + var gather = F2( + function (child, _v6) { + var htmls = _v6.a; + var existingStyles = _v6.b; + switch (child.$) { + case 'Unstyled': + var html = child.a; + return _Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asParagraph) ? _Utils_Tuple2( + A2( + $elm$core$List$cons, + html(context), + htmls), + existingStyles) : _Utils_Tuple2( + A2( + $elm$core$List$cons, + html(context), + htmls), + existingStyles); + case 'Styled': + var styled = child.a; + return _Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asParagraph) ? _Utils_Tuple2( + A2( + $elm$core$List$cons, + A2(styled.html, $mdgriffith$elm_ui$Internal$Model$NoStyleSheet, context), + htmls), + $elm$core$List$isEmpty(existingStyles) ? styled.styles : _Utils_ap(styled.styles, existingStyles)) : _Utils_Tuple2( + A2( + $elm$core$List$cons, + A2(styled.html, $mdgriffith$elm_ui$Internal$Model$NoStyleSheet, context), + htmls), + $elm$core$List$isEmpty(existingStyles) ? styled.styles : _Utils_ap(styled.styles, existingStyles)); + case 'Text': + var str = child.a; + return _Utils_Tuple2( + A2( + $elm$core$List$cons, + _Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asEl) ? $mdgriffith$elm_ui$Internal$Model$textElementFill(str) : $mdgriffith$elm_ui$Internal$Model$textElement(str), + htmls), + existingStyles); + default: + return _Utils_Tuple2(htmls, existingStyles); + } + }); + if (children.$ === 'Keyed') { + var keyedChildren = children.a; + var _v1 = A3( + $elm$core$List$foldr, + gatherKeyed, + _Utils_Tuple2(_List_Nil, _List_Nil), + keyedChildren); + var keyed = _v1.a; + var styles = _v1.b; + var newStyles = $elm$core$List$isEmpty(styles) ? rendered.styles : _Utils_ap(rendered.styles, styles); + if (!newStyles.b) { + return $mdgriffith$elm_ui$Internal$Model$Unstyled( + A5( + $mdgriffith$elm_ui$Internal$Model$finalizeNode, + rendered.has, + rendered.node, + rendered.attributes, + $mdgriffith$elm_ui$Internal$Model$Keyed( + A3($mdgriffith$elm_ui$Internal$Model$addKeyedChildren, 'nearby-element-pls', keyed, rendered.children)), + $mdgriffith$elm_ui$Internal$Model$NoStyleSheet)); + } else { + var allStyles = newStyles; + return $mdgriffith$elm_ui$Internal$Model$Styled( + { + html: A4( + $mdgriffith$elm_ui$Internal$Model$finalizeNode, + rendered.has, + rendered.node, + rendered.attributes, + $mdgriffith$elm_ui$Internal$Model$Keyed( + A3($mdgriffith$elm_ui$Internal$Model$addKeyedChildren, 'nearby-element-pls', keyed, rendered.children))), + styles: allStyles + }); + } + } else { + var unkeyedChildren = children.a; + var _v3 = A3( + $elm$core$List$foldr, + gather, + _Utils_Tuple2(_List_Nil, _List_Nil), + unkeyedChildren); + var unkeyed = _v3.a; + var styles = _v3.b; + var newStyles = $elm$core$List$isEmpty(styles) ? rendered.styles : _Utils_ap(rendered.styles, styles); + if (!newStyles.b) { + return $mdgriffith$elm_ui$Internal$Model$Unstyled( + A5( + $mdgriffith$elm_ui$Internal$Model$finalizeNode, + rendered.has, + rendered.node, + rendered.attributes, + $mdgriffith$elm_ui$Internal$Model$Unkeyed( + A2($mdgriffith$elm_ui$Internal$Model$addChildren, unkeyed, rendered.children)), + $mdgriffith$elm_ui$Internal$Model$NoStyleSheet)); + } else { + var allStyles = newStyles; + return $mdgriffith$elm_ui$Internal$Model$Styled( + { + html: A4( + $mdgriffith$elm_ui$Internal$Model$finalizeNode, + rendered.has, + rendered.node, + rendered.attributes, + $mdgriffith$elm_ui$Internal$Model$Unkeyed( + A2($mdgriffith$elm_ui$Internal$Model$addChildren, unkeyed, rendered.children))), + styles: allStyles + }); + } + } + }); +var $mdgriffith$elm_ui$Internal$Model$Single = F3( + function (a, b, c) { + return {$: 'Single', a: a, b: b, c: c}; + }); +var $mdgriffith$elm_ui$Internal$Model$Transform = function (a) { + return {$: 'Transform', a: a}; +}; +var $mdgriffith$elm_ui$Internal$Flag$Field = F2( + function (a, b) { + return {$: 'Field', a: a, b: b}; + }); +var $elm$core$Bitwise$or = _Bitwise_or; +var $mdgriffith$elm_ui$Internal$Flag$add = F2( + function (myFlag, _v0) { + var one = _v0.a; + var two = _v0.b; + if (myFlag.$ === 'Flag') { + var first = myFlag.a; + return A2($mdgriffith$elm_ui$Internal$Flag$Field, first | one, two); + } else { + var second = myFlag.a; + return A2($mdgriffith$elm_ui$Internal$Flag$Field, one, second | two); + } + }); +var $mdgriffith$elm_ui$Internal$Model$ChildrenBehind = function (a) { + return {$: 'ChildrenBehind', a: a}; +}; +var $mdgriffith$elm_ui$Internal$Model$ChildrenBehindAndInFront = F2( + function (a, b) { + return {$: 'ChildrenBehindAndInFront', a: a, b: b}; + }); +var $mdgriffith$elm_ui$Internal$Model$ChildrenInFront = function (a) { + return {$: 'ChildrenInFront', a: a}; +}; +var $mdgriffith$elm_ui$Internal$Model$nearbyElement = F2( + function (location, elem) { + return A2( + $elm$html$Html$div, + _List_fromArray( + [ + $elm$html$Html$Attributes$class( + function () { + switch (location.$) { + case 'Above': + return A2( + $elm$core$String$join, + ' ', + _List_fromArray( + [$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.above])); + case 'Below': + return A2( + $elm$core$String$join, + ' ', + _List_fromArray( + [$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.below])); + case 'OnRight': + return A2( + $elm$core$String$join, + ' ', + _List_fromArray( + [$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.onRight])); + case 'OnLeft': + return A2( + $elm$core$String$join, + ' ', + _List_fromArray( + [$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.onLeft])); + case 'InFront': + return A2( + $elm$core$String$join, + ' ', + _List_fromArray( + [$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.inFront])); + default: + return A2( + $elm$core$String$join, + ' ', + _List_fromArray( + [$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.behind])); + } + }()) + ]), + _List_fromArray( + [ + function () { + switch (elem.$) { + case 'Empty': + return $elm$virtual_dom$VirtualDom$text(''); + case 'Text': + var str = elem.a; + return $mdgriffith$elm_ui$Internal$Model$textElement(str); + case 'Unstyled': + var html = elem.a; + return html($mdgriffith$elm_ui$Internal$Model$asEl); + default: + var styled = elem.a; + return A2(styled.html, $mdgriffith$elm_ui$Internal$Model$NoStyleSheet, $mdgriffith$elm_ui$Internal$Model$asEl); + } + }() + ])); + }); +var $mdgriffith$elm_ui$Internal$Model$addNearbyElement = F3( + function (location, elem, existing) { + var nearby = A2($mdgriffith$elm_ui$Internal$Model$nearbyElement, location, elem); + switch (existing.$) { + case 'NoNearbyChildren': + if (location.$ === 'Behind') { + return $mdgriffith$elm_ui$Internal$Model$ChildrenBehind( + _List_fromArray( + [nearby])); + } else { + return $mdgriffith$elm_ui$Internal$Model$ChildrenInFront( + _List_fromArray( + [nearby])); + } + case 'ChildrenBehind': + var existingBehind = existing.a; + if (location.$ === 'Behind') { + return $mdgriffith$elm_ui$Internal$Model$ChildrenBehind( + A2($elm$core$List$cons, nearby, existingBehind)); + } else { + return A2( + $mdgriffith$elm_ui$Internal$Model$ChildrenBehindAndInFront, + existingBehind, + _List_fromArray( + [nearby])); + } + case 'ChildrenInFront': + var existingInFront = existing.a; + if (location.$ === 'Behind') { + return A2( + $mdgriffith$elm_ui$Internal$Model$ChildrenBehindAndInFront, + _List_fromArray( + [nearby]), + existingInFront); + } else { + return $mdgriffith$elm_ui$Internal$Model$ChildrenInFront( + A2($elm$core$List$cons, nearby, existingInFront)); + } + default: + var existingBehind = existing.a; + var existingInFront = existing.b; + if (location.$ === 'Behind') { + return A2( + $mdgriffith$elm_ui$Internal$Model$ChildrenBehindAndInFront, + A2($elm$core$List$cons, nearby, existingBehind), + existingInFront); + } else { + return A2( + $mdgriffith$elm_ui$Internal$Model$ChildrenBehindAndInFront, + existingBehind, + A2($elm$core$List$cons, nearby, existingInFront)); + } + } + }); +var $mdgriffith$elm_ui$Internal$Model$Embedded = F2( + function (a, b) { + return {$: 'Embedded', a: a, b: b}; + }); +var $mdgriffith$elm_ui$Internal$Model$NodeName = function (a) { + return {$: 'NodeName', a: a}; +}; +var $mdgriffith$elm_ui$Internal$Model$addNodeName = F2( + function (newNode, old) { + switch (old.$) { + case 'Generic': + return $mdgriffith$elm_ui$Internal$Model$NodeName(newNode); + case 'NodeName': + var name = old.a; + return A2($mdgriffith$elm_ui$Internal$Model$Embedded, name, newNode); + default: + var x = old.a; + var y = old.b; + return A2($mdgriffith$elm_ui$Internal$Model$Embedded, x, y); + } + }); +var $mdgriffith$elm_ui$Internal$Model$alignXName = function (align) { + switch (align.$) { + case 'Left': + return $mdgriffith$elm_ui$Internal$Style$classes.alignedHorizontally + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignLeft); + case 'Right': + return $mdgriffith$elm_ui$Internal$Style$classes.alignedHorizontally + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignRight); + default: + return $mdgriffith$elm_ui$Internal$Style$classes.alignedHorizontally + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignCenterX); + } +}; +var $mdgriffith$elm_ui$Internal$Model$alignYName = function (align) { + switch (align.$) { + case 'Top': + return $mdgriffith$elm_ui$Internal$Style$classes.alignedVertically + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignTop); + case 'Bottom': + return $mdgriffith$elm_ui$Internal$Style$classes.alignedVertically + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignBottom); + default: + return $mdgriffith$elm_ui$Internal$Style$classes.alignedVertically + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignCenterY); + } +}; +var $elm$virtual_dom$VirtualDom$attribute = F2( + function (key, value) { + return A2( + _VirtualDom_attribute, + _VirtualDom_noOnOrFormAction(key), + _VirtualDom_noJavaScriptOrHtmlUri(value)); + }); +var $mdgriffith$elm_ui$Internal$Model$FullTransform = F4( + function (a, b, c, d) { + return {$: 'FullTransform', a: a, b: b, c: c, d: d}; + }); +var $mdgriffith$elm_ui$Internal$Model$Moved = function (a) { + return {$: 'Moved', a: a}; +}; +var $mdgriffith$elm_ui$Internal$Model$composeTransformation = F2( + function (transform, component) { + switch (transform.$) { + case 'Untransformed': + switch (component.$) { + case 'MoveX': + var x = component.a; + return $mdgriffith$elm_ui$Internal$Model$Moved( + _Utils_Tuple3(x, 0, 0)); + case 'MoveY': + var y = component.a; + return $mdgriffith$elm_ui$Internal$Model$Moved( + _Utils_Tuple3(0, y, 0)); + case 'MoveZ': + var z = component.a; + return $mdgriffith$elm_ui$Internal$Model$Moved( + _Utils_Tuple3(0, 0, z)); + case 'MoveXYZ': + var xyz = component.a; + return $mdgriffith$elm_ui$Internal$Model$Moved(xyz); + case 'Rotate': + var xyz = component.a; + var angle = component.b; + return A4( + $mdgriffith$elm_ui$Internal$Model$FullTransform, + _Utils_Tuple3(0, 0, 0), + _Utils_Tuple3(1, 1, 1), + xyz, + angle); + default: + var xyz = component.a; + return A4( + $mdgriffith$elm_ui$Internal$Model$FullTransform, + _Utils_Tuple3(0, 0, 0), + xyz, + _Utils_Tuple3(0, 0, 1), + 0); + } + case 'Moved': + var moved = transform.a; + var x = moved.a; + var y = moved.b; + var z = moved.c; + switch (component.$) { + case 'MoveX': + var newX = component.a; + return $mdgriffith$elm_ui$Internal$Model$Moved( + _Utils_Tuple3(newX, y, z)); + case 'MoveY': + var newY = component.a; + return $mdgriffith$elm_ui$Internal$Model$Moved( + _Utils_Tuple3(x, newY, z)); + case 'MoveZ': + var newZ = component.a; + return $mdgriffith$elm_ui$Internal$Model$Moved( + _Utils_Tuple3(x, y, newZ)); + case 'MoveXYZ': + var xyz = component.a; + return $mdgriffith$elm_ui$Internal$Model$Moved(xyz); + case 'Rotate': + var xyz = component.a; + var angle = component.b; + return A4( + $mdgriffith$elm_ui$Internal$Model$FullTransform, + moved, + _Utils_Tuple3(1, 1, 1), + xyz, + angle); + default: + var scale = component.a; + return A4( + $mdgriffith$elm_ui$Internal$Model$FullTransform, + moved, + scale, + _Utils_Tuple3(0, 0, 1), + 0); + } + default: + var moved = transform.a; + var x = moved.a; + var y = moved.b; + var z = moved.c; + var scaled = transform.b; + var origin = transform.c; + var angle = transform.d; + switch (component.$) { + case 'MoveX': + var newX = component.a; + return A4( + $mdgriffith$elm_ui$Internal$Model$FullTransform, + _Utils_Tuple3(newX, y, z), + scaled, + origin, + angle); + case 'MoveY': + var newY = component.a; + return A4( + $mdgriffith$elm_ui$Internal$Model$FullTransform, + _Utils_Tuple3(x, newY, z), + scaled, + origin, + angle); + case 'MoveZ': + var newZ = component.a; + return A4( + $mdgriffith$elm_ui$Internal$Model$FullTransform, + _Utils_Tuple3(x, y, newZ), + scaled, + origin, + angle); + case 'MoveXYZ': + var newMove = component.a; + return A4($mdgriffith$elm_ui$Internal$Model$FullTransform, newMove, scaled, origin, angle); + case 'Rotate': + var newOrigin = component.a; + var newAngle = component.b; + return A4($mdgriffith$elm_ui$Internal$Model$FullTransform, moved, scaled, newOrigin, newAngle); + default: + var newScale = component.a; + return A4($mdgriffith$elm_ui$Internal$Model$FullTransform, moved, newScale, origin, angle); + } + } + }); +var $mdgriffith$elm_ui$Internal$Flag$height = $mdgriffith$elm_ui$Internal$Flag$flag(7); +var $mdgriffith$elm_ui$Internal$Flag$heightContent = $mdgriffith$elm_ui$Internal$Flag$flag(36); +var $mdgriffith$elm_ui$Internal$Flag$merge = F2( + function (_v0, _v1) { + var one = _v0.a; + var two = _v0.b; + var three = _v1.a; + var four = _v1.b; + return A2($mdgriffith$elm_ui$Internal$Flag$Field, one | three, two | four); + }); +var $mdgriffith$elm_ui$Internal$Flag$none = A2($mdgriffith$elm_ui$Internal$Flag$Field, 0, 0); +var $mdgriffith$elm_ui$Internal$Model$renderHeight = function (h) { + switch (h.$) { + case 'Px': + var px = h.a; + var val = $elm$core$String$fromInt(px); + var name = 'height-px-' + val; + return _Utils_Tuple3( + $mdgriffith$elm_ui$Internal$Flag$none, + $mdgriffith$elm_ui$Internal$Style$classes.heightExact + (' ' + name), + _List_fromArray( + [ + A3($mdgriffith$elm_ui$Internal$Model$Single, name, 'height', val + 'px') + ])); + case 'Content': + return _Utils_Tuple3( + A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$heightContent, $mdgriffith$elm_ui$Internal$Flag$none), + $mdgriffith$elm_ui$Internal$Style$classes.heightContent, + _List_Nil); + case 'Fill': + var portion = h.a; + return (portion === 1) ? _Utils_Tuple3( + A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$heightFill, $mdgriffith$elm_ui$Internal$Flag$none), + $mdgriffith$elm_ui$Internal$Style$classes.heightFill, + _List_Nil) : _Utils_Tuple3( + A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$heightFill, $mdgriffith$elm_ui$Internal$Flag$none), + $mdgriffith$elm_ui$Internal$Style$classes.heightFillPortion + (' height-fill-' + $elm$core$String$fromInt(portion)), + _List_fromArray( + [ + A3( + $mdgriffith$elm_ui$Internal$Model$Single, + $mdgriffith$elm_ui$Internal$Style$classes.any + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.column + (' > ' + $mdgriffith$elm_ui$Internal$Style$dot( + 'height-fill-' + $elm$core$String$fromInt(portion))))), + 'flex-grow', + $elm$core$String$fromInt(portion * 100000)) + ])); + case 'Min': + var minSize = h.a; + var len = h.b; + var cls = 'min-height-' + $elm$core$String$fromInt(minSize); + var style = A3( + $mdgriffith$elm_ui$Internal$Model$Single, + cls, + 'min-height', + $elm$core$String$fromInt(minSize) + 'px !important'); + var _v1 = $mdgriffith$elm_ui$Internal$Model$renderHeight(len); + var newFlag = _v1.a; + var newAttrs = _v1.b; + var newStyle = _v1.c; + return _Utils_Tuple3( + A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$heightBetween, newFlag), + cls + (' ' + newAttrs), + A2($elm$core$List$cons, style, newStyle)); + default: + var maxSize = h.a; + var len = h.b; + var cls = 'max-height-' + $elm$core$String$fromInt(maxSize); + var style = A3( + $mdgriffith$elm_ui$Internal$Model$Single, + cls, + 'max-height', + $elm$core$String$fromInt(maxSize) + 'px'); + var _v2 = $mdgriffith$elm_ui$Internal$Model$renderHeight(len); + var newFlag = _v2.a; + var newAttrs = _v2.b; + var newStyle = _v2.c; + return _Utils_Tuple3( + A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$heightBetween, newFlag), + cls + (' ' + newAttrs), + A2($elm$core$List$cons, style, newStyle)); + } +}; +var $mdgriffith$elm_ui$Internal$Flag$widthContent = $mdgriffith$elm_ui$Internal$Flag$flag(38); +var $mdgriffith$elm_ui$Internal$Model$renderWidth = function (w) { + switch (w.$) { + case 'Px': + var px = w.a; + return _Utils_Tuple3( + $mdgriffith$elm_ui$Internal$Flag$none, + $mdgriffith$elm_ui$Internal$Style$classes.widthExact + (' width-px-' + $elm$core$String$fromInt(px)), + _List_fromArray( + [ + A3( + $mdgriffith$elm_ui$Internal$Model$Single, + 'width-px-' + $elm$core$String$fromInt(px), + 'width', + $elm$core$String$fromInt(px) + 'px') + ])); + case 'Content': + return _Utils_Tuple3( + A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$widthContent, $mdgriffith$elm_ui$Internal$Flag$none), + $mdgriffith$elm_ui$Internal$Style$classes.widthContent, + _List_Nil); + case 'Fill': + var portion = w.a; + return (portion === 1) ? _Utils_Tuple3( + A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$widthFill, $mdgriffith$elm_ui$Internal$Flag$none), + $mdgriffith$elm_ui$Internal$Style$classes.widthFill, + _List_Nil) : _Utils_Tuple3( + A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$widthFill, $mdgriffith$elm_ui$Internal$Flag$none), + $mdgriffith$elm_ui$Internal$Style$classes.widthFillPortion + (' width-fill-' + $elm$core$String$fromInt(portion)), + _List_fromArray( + [ + A3( + $mdgriffith$elm_ui$Internal$Model$Single, + $mdgriffith$elm_ui$Internal$Style$classes.any + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.row + (' > ' + $mdgriffith$elm_ui$Internal$Style$dot( + 'width-fill-' + $elm$core$String$fromInt(portion))))), + 'flex-grow', + $elm$core$String$fromInt(portion * 100000)) + ])); + case 'Min': + var minSize = w.a; + var len = w.b; + var cls = 'min-width-' + $elm$core$String$fromInt(minSize); + var style = A3( + $mdgriffith$elm_ui$Internal$Model$Single, + cls, + 'min-width', + $elm$core$String$fromInt(minSize) + 'px'); + var _v1 = $mdgriffith$elm_ui$Internal$Model$renderWidth(len); + var newFlag = _v1.a; + var newAttrs = _v1.b; + var newStyle = _v1.c; + return _Utils_Tuple3( + A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$widthBetween, newFlag), + cls + (' ' + newAttrs), + A2($elm$core$List$cons, style, newStyle)); + default: + var maxSize = w.a; + var len = w.b; + var cls = 'max-width-' + $elm$core$String$fromInt(maxSize); + var style = A3( + $mdgriffith$elm_ui$Internal$Model$Single, + cls, + 'max-width', + $elm$core$String$fromInt(maxSize) + 'px'); + var _v2 = $mdgriffith$elm_ui$Internal$Model$renderWidth(len); + var newFlag = _v2.a; + var newAttrs = _v2.b; + var newStyle = _v2.c; + return _Utils_Tuple3( + A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$widthBetween, newFlag), + cls + (' ' + newAttrs), + A2($elm$core$List$cons, style, newStyle)); + } +}; +var $mdgriffith$elm_ui$Internal$Flag$borderWidth = $mdgriffith$elm_ui$Internal$Flag$flag(27); +var $elm$core$Basics$ge = _Utils_ge; +var $mdgriffith$elm_ui$Internal$Model$skippable = F2( + function (flag, style) { + if (_Utils_eq(flag, $mdgriffith$elm_ui$Internal$Flag$borderWidth)) { + if (style.$ === 'Single') { + var val = style.c; + switch (val) { + case '0px': + return true; + case '1px': + return true; + case '2px': + return true; + case '3px': + return true; + case '4px': + return true; + case '5px': + return true; + case '6px': + return true; + default: + return false; + } + } else { + return false; + } + } else { + switch (style.$) { + case 'FontSize': + var i = style.a; + return (i >= 8) && (i <= 32); + case 'PaddingStyle': + var name = style.a; + var t = style.b; + var r = style.c; + var b = style.d; + var l = style.e; + return _Utils_eq(t, b) && (_Utils_eq(t, r) && (_Utils_eq(t, l) && ((t >= 0) && (t <= 24)))); + default: + return false; + } + } + }); +var $mdgriffith$elm_ui$Internal$Flag$width = $mdgriffith$elm_ui$Internal$Flag$flag(6); +var $mdgriffith$elm_ui$Internal$Flag$xAlign = $mdgriffith$elm_ui$Internal$Flag$flag(30); +var $mdgriffith$elm_ui$Internal$Flag$yAlign = $mdgriffith$elm_ui$Internal$Flag$flag(29); +var $mdgriffith$elm_ui$Internal$Model$gatherAttrRecursive = F8( + function (classes, node, has, transform, styles, attrs, children, elementAttrs) { + gatherAttrRecursive: + while (true) { + if (!elementAttrs.b) { + var _v1 = $mdgriffith$elm_ui$Internal$Model$transformClass(transform); + if (_v1.$ === 'Nothing') { + return { + attributes: A2( + $elm$core$List$cons, + $elm$html$Html$Attributes$class(classes), + attrs), + children: children, + has: has, + node: node, + styles: styles + }; + } else { + var _class = _v1.a; + return { + attributes: A2( + $elm$core$List$cons, + $elm$html$Html$Attributes$class(classes + (' ' + _class)), + attrs), + children: children, + has: has, + node: node, + styles: A2( + $elm$core$List$cons, + $mdgriffith$elm_ui$Internal$Model$Transform(transform), + styles) + }; + } + } else { + var attribute = elementAttrs.a; + var remaining = elementAttrs.b; + switch (attribute.$) { + case 'NoAttribute': + var $temp$classes = classes, + $temp$node = node, + $temp$has = has, + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + case 'Class': + var flag = attribute.a; + var exactClassName = attribute.b; + if (A2($mdgriffith$elm_ui$Internal$Flag$present, flag, has)) { + var $temp$classes = classes, + $temp$node = node, + $temp$has = has, + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + } else { + var $temp$classes = exactClassName + (' ' + classes), + $temp$node = node, + $temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, flag, has), + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + } + case 'Attr': + var actualAttribute = attribute.a; + var $temp$classes = classes, + $temp$node = node, + $temp$has = has, + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = A2($elm$core$List$cons, actualAttribute, attrs), + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + case 'StyleClass': + var flag = attribute.a; + var style = attribute.b; + if (A2($mdgriffith$elm_ui$Internal$Flag$present, flag, has)) { + var $temp$classes = classes, + $temp$node = node, + $temp$has = has, + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + } else { + if (A2($mdgriffith$elm_ui$Internal$Model$skippable, flag, style)) { + var $temp$classes = $mdgriffith$elm_ui$Internal$Model$getStyleName(style) + (' ' + classes), + $temp$node = node, + $temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, flag, has), + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + } else { + var $temp$classes = $mdgriffith$elm_ui$Internal$Model$getStyleName(style) + (' ' + classes), + $temp$node = node, + $temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, flag, has), + $temp$transform = transform, + $temp$styles = A2($elm$core$List$cons, style, styles), + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + } + } + case 'TransformComponent': + var flag = attribute.a; + var component = attribute.b; + var $temp$classes = classes, + $temp$node = node, + $temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, flag, has), + $temp$transform = A2($mdgriffith$elm_ui$Internal$Model$composeTransformation, transform, component), + $temp$styles = styles, + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + case 'Width': + var width = attribute.a; + if (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$width, has)) { + var $temp$classes = classes, + $temp$node = node, + $temp$has = has, + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + } else { + switch (width.$) { + case 'Px': + var px = width.a; + var $temp$classes = ($mdgriffith$elm_ui$Internal$Style$classes.widthExact + (' width-px-' + $elm$core$String$fromInt(px))) + (' ' + classes), + $temp$node = node, + $temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$width, has), + $temp$transform = transform, + $temp$styles = A2( + $elm$core$List$cons, + A3( + $mdgriffith$elm_ui$Internal$Model$Single, + 'width-px-' + $elm$core$String$fromInt(px), + 'width', + $elm$core$String$fromInt(px) + 'px'), + styles), + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + case 'Content': + var $temp$classes = classes + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.widthContent), + $temp$node = node, + $temp$has = A2( + $mdgriffith$elm_ui$Internal$Flag$add, + $mdgriffith$elm_ui$Internal$Flag$widthContent, + A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$width, has)), + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + case 'Fill': + var portion = width.a; + if (portion === 1) { + var $temp$classes = classes + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.widthFill), + $temp$node = node, + $temp$has = A2( + $mdgriffith$elm_ui$Internal$Flag$add, + $mdgriffith$elm_ui$Internal$Flag$widthFill, + A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$width, has)), + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + } else { + var $temp$classes = classes + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.widthFillPortion + (' width-fill-' + $elm$core$String$fromInt(portion)))), + $temp$node = node, + $temp$has = A2( + $mdgriffith$elm_ui$Internal$Flag$add, + $mdgriffith$elm_ui$Internal$Flag$widthFill, + A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$width, has)), + $temp$transform = transform, + $temp$styles = A2( + $elm$core$List$cons, + A3( + $mdgriffith$elm_ui$Internal$Model$Single, + $mdgriffith$elm_ui$Internal$Style$classes.any + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.row + (' > ' + $mdgriffith$elm_ui$Internal$Style$dot( + 'width-fill-' + $elm$core$String$fromInt(portion))))), + 'flex-grow', + $elm$core$String$fromInt(portion * 100000)), + styles), + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + } + default: + var _v4 = $mdgriffith$elm_ui$Internal$Model$renderWidth(width); + var addToFlags = _v4.a; + var newClass = _v4.b; + var newStyles = _v4.c; + var $temp$classes = classes + (' ' + newClass), + $temp$node = node, + $temp$has = A2( + $mdgriffith$elm_ui$Internal$Flag$merge, + addToFlags, + A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$width, has)), + $temp$transform = transform, + $temp$styles = _Utils_ap(newStyles, styles), + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + } + } + case 'Height': + var height = attribute.a; + if (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$height, has)) { + var $temp$classes = classes, + $temp$node = node, + $temp$has = has, + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + } else { + switch (height.$) { + case 'Px': + var px = height.a; + var val = $elm$core$String$fromInt(px) + 'px'; + var name = 'height-px-' + val; + var $temp$classes = $mdgriffith$elm_ui$Internal$Style$classes.heightExact + (' ' + (name + (' ' + classes))), + $temp$node = node, + $temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$height, has), + $temp$transform = transform, + $temp$styles = A2( + $elm$core$List$cons, + A3($mdgriffith$elm_ui$Internal$Model$Single, name, 'height ', val), + styles), + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + case 'Content': + var $temp$classes = $mdgriffith$elm_ui$Internal$Style$classes.heightContent + (' ' + classes), + $temp$node = node, + $temp$has = A2( + $mdgriffith$elm_ui$Internal$Flag$add, + $mdgriffith$elm_ui$Internal$Flag$heightContent, + A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$height, has)), + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + case 'Fill': + var portion = height.a; + if (portion === 1) { + var $temp$classes = $mdgriffith$elm_ui$Internal$Style$classes.heightFill + (' ' + classes), + $temp$node = node, + $temp$has = A2( + $mdgriffith$elm_ui$Internal$Flag$add, + $mdgriffith$elm_ui$Internal$Flag$heightFill, + A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$height, has)), + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + } else { + var $temp$classes = classes + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.heightFillPortion + (' height-fill-' + $elm$core$String$fromInt(portion)))), + $temp$node = node, + $temp$has = A2( + $mdgriffith$elm_ui$Internal$Flag$add, + $mdgriffith$elm_ui$Internal$Flag$heightFill, + A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$height, has)), + $temp$transform = transform, + $temp$styles = A2( + $elm$core$List$cons, + A3( + $mdgriffith$elm_ui$Internal$Model$Single, + $mdgriffith$elm_ui$Internal$Style$classes.any + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.column + (' > ' + $mdgriffith$elm_ui$Internal$Style$dot( + 'height-fill-' + $elm$core$String$fromInt(portion))))), + 'flex-grow', + $elm$core$String$fromInt(portion * 100000)), + styles), + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + } + default: + var _v6 = $mdgriffith$elm_ui$Internal$Model$renderHeight(height); + var addToFlags = _v6.a; + var newClass = _v6.b; + var newStyles = _v6.c; + var $temp$classes = classes + (' ' + newClass), + $temp$node = node, + $temp$has = A2( + $mdgriffith$elm_ui$Internal$Flag$merge, + addToFlags, + A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$height, has)), + $temp$transform = transform, + $temp$styles = _Utils_ap(newStyles, styles), + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + } + } + case 'Describe': + var description = attribute.a; + switch (description.$) { + case 'Main': + var $temp$classes = classes, + $temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'main', node), + $temp$has = has, + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + case 'Navigation': + var $temp$classes = classes, + $temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'nav', node), + $temp$has = has, + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + case 'ContentInfo': + var $temp$classes = classes, + $temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'footer', node), + $temp$has = has, + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + case 'Complementary': + var $temp$classes = classes, + $temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'aside', node), + $temp$has = has, + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + case 'Heading': + var i = description.a; + if (i <= 1) { + var $temp$classes = classes, + $temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'h1', node), + $temp$has = has, + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + } else { + if (i < 7) { + var $temp$classes = classes, + $temp$node = A2( + $mdgriffith$elm_ui$Internal$Model$addNodeName, + 'h' + $elm$core$String$fromInt(i), + node), + $temp$has = has, + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + } else { + var $temp$classes = classes, + $temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'h6', node), + $temp$has = has, + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + } + } + case 'Paragraph': + var $temp$classes = classes, + $temp$node = node, + $temp$has = has, + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + case 'Button': + var $temp$classes = classes, + $temp$node = node, + $temp$has = has, + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = A2( + $elm$core$List$cons, + A2($elm$virtual_dom$VirtualDom$attribute, 'role', 'button'), + attrs), + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + case 'Label': + var label = description.a; + var $temp$classes = classes, + $temp$node = node, + $temp$has = has, + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = A2( + $elm$core$List$cons, + A2($elm$virtual_dom$VirtualDom$attribute, 'aria-label', label), + attrs), + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + case 'LivePolite': + var $temp$classes = classes, + $temp$node = node, + $temp$has = has, + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = A2( + $elm$core$List$cons, + A2($elm$virtual_dom$VirtualDom$attribute, 'aria-live', 'polite'), + attrs), + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + default: + var $temp$classes = classes, + $temp$node = node, + $temp$has = has, + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = A2( + $elm$core$List$cons, + A2($elm$virtual_dom$VirtualDom$attribute, 'aria-live', 'assertive'), + attrs), + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + } + case 'Nearby': + var location = attribute.a; + var elem = attribute.b; + var newStyles = function () { + switch (elem.$) { + case 'Empty': + return styles; + case 'Text': + var str = elem.a; + return styles; + case 'Unstyled': + var html = elem.a; + return styles; + default: + var styled = elem.a; + return _Utils_ap(styles, styled.styles); + } + }(); + var $temp$classes = classes, + $temp$node = node, + $temp$has = has, + $temp$transform = transform, + $temp$styles = newStyles, + $temp$attrs = attrs, + $temp$children = A3($mdgriffith$elm_ui$Internal$Model$addNearbyElement, location, elem, children), + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + case 'AlignX': + var x = attribute.a; + if (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$xAlign, has)) { + var $temp$classes = classes, + $temp$node = node, + $temp$has = has, + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + } else { + var $temp$classes = $mdgriffith$elm_ui$Internal$Model$alignXName(x) + (' ' + classes), + $temp$node = node, + $temp$has = function (flags) { + switch (x.$) { + case 'CenterX': + return A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$centerX, flags); + case 'Right': + return A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$alignRight, flags); + default: + return flags; + } + }( + A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$xAlign, has)), + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + } + default: + var y = attribute.a; + if (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$yAlign, has)) { + var $temp$classes = classes, + $temp$node = node, + $temp$has = has, + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + } else { + var $temp$classes = $mdgriffith$elm_ui$Internal$Model$alignYName(y) + (' ' + classes), + $temp$node = node, + $temp$has = function (flags) { + switch (y.$) { + case 'CenterY': + return A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$centerY, flags); + case 'Bottom': + return A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$alignBottom, flags); + default: + return flags; + } + }( + A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$yAlign, has)), + $temp$transform = transform, + $temp$styles = styles, + $temp$attrs = attrs, + $temp$children = children, + $temp$elementAttrs = remaining; + classes = $temp$classes; + node = $temp$node; + has = $temp$has; + transform = $temp$transform; + styles = $temp$styles; + attrs = $temp$attrs; + children = $temp$children; + elementAttrs = $temp$elementAttrs; + continue gatherAttrRecursive; + } + } + } + } + }); +var $mdgriffith$elm_ui$Internal$Model$Untransformed = {$: 'Untransformed'}; +var $mdgriffith$elm_ui$Internal$Model$untransformed = $mdgriffith$elm_ui$Internal$Model$Untransformed; +var $mdgriffith$elm_ui$Internal$Model$element = F4( + function (context, node, attributes, children) { + return A3( + $mdgriffith$elm_ui$Internal$Model$createElement, + context, + children, + A8( + $mdgriffith$elm_ui$Internal$Model$gatherAttrRecursive, + $mdgriffith$elm_ui$Internal$Model$contextClasses(context), + node, + $mdgriffith$elm_ui$Internal$Flag$none, + $mdgriffith$elm_ui$Internal$Model$untransformed, + _List_Nil, + _List_Nil, + $mdgriffith$elm_ui$Internal$Model$NoNearbyChildren, + $elm$core$List$reverse(attributes))); + }); +var $mdgriffith$elm_ui$Internal$Model$AllowHover = {$: 'AllowHover'}; +var $mdgriffith$elm_ui$Internal$Model$Layout = {$: 'Layout'}; +var $mdgriffith$elm_ui$Internal$Model$focusDefaultStyle = { + backgroundColor: $elm$core$Maybe$Nothing, + borderColor: $elm$core$Maybe$Nothing, + shadow: $elm$core$Maybe$Just( + { + blur: 0, + color: A4($mdgriffith$elm_ui$Internal$Model$Rgba, 155 / 255, 203 / 255, 1, 1), + offset: _Utils_Tuple2(0, 0), + size: 3 + }) +}; +var $mdgriffith$elm_ui$Internal$Model$optionsToRecord = function (options) { + var combine = F2( + function (opt, record) { + switch (opt.$) { + case 'HoverOption': + var hoverable = opt.a; + var _v4 = record.hover; + if (_v4.$ === 'Nothing') { + return _Utils_update( + record, + { + hover: $elm$core$Maybe$Just(hoverable) + }); + } else { + return record; + } + case 'FocusStyleOption': + var focusStyle = opt.a; + var _v5 = record.focus; + if (_v5.$ === 'Nothing') { + return _Utils_update( + record, + { + focus: $elm$core$Maybe$Just(focusStyle) + }); + } else { + return record; + } + default: + var renderMode = opt.a; + var _v6 = record.mode; + if (_v6.$ === 'Nothing') { + return _Utils_update( + record, + { + mode: $elm$core$Maybe$Just(renderMode) + }); + } else { + return record; + } + } + }); + var andFinally = function (record) { + return { + focus: function () { + var _v0 = record.focus; + if (_v0.$ === 'Nothing') { + return $mdgriffith$elm_ui$Internal$Model$focusDefaultStyle; + } else { + var focusable = _v0.a; + return focusable; + } + }(), + hover: function () { + var _v1 = record.hover; + if (_v1.$ === 'Nothing') { + return $mdgriffith$elm_ui$Internal$Model$AllowHover; + } else { + var hoverable = _v1.a; + return hoverable; + } + }(), + mode: function () { + var _v2 = record.mode; + if (_v2.$ === 'Nothing') { + return $mdgriffith$elm_ui$Internal$Model$Layout; + } else { + var actualMode = _v2.a; + return actualMode; + } + }() + }; + }; + return andFinally( + A3( + $elm$core$List$foldr, + combine, + {focus: $elm$core$Maybe$Nothing, hover: $elm$core$Maybe$Nothing, mode: $elm$core$Maybe$Nothing}, + options)); +}; +var $mdgriffith$elm_ui$Internal$Model$toHtml = F2( + function (mode, el) { + switch (el.$) { + case 'Unstyled': + var html = el.a; + return html($mdgriffith$elm_ui$Internal$Model$asEl); + case 'Styled': + var styles = el.a.styles; + var html = el.a.html; + return A2( + html, + mode(styles), + $mdgriffith$elm_ui$Internal$Model$asEl); + case 'Text': + var text = el.a; + return $mdgriffith$elm_ui$Internal$Model$textElement(text); + default: + return $mdgriffith$elm_ui$Internal$Model$textElement(''); + } + }); +var $mdgriffith$elm_ui$Internal$Model$renderRoot = F3( + function (optionList, attributes, child) { + var options = $mdgriffith$elm_ui$Internal$Model$optionsToRecord(optionList); + var embedStyle = function () { + var _v0 = options.mode; + if (_v0.$ === 'NoStaticStyleSheet') { + return $mdgriffith$elm_ui$Internal$Model$OnlyDynamic(options); + } else { + return $mdgriffith$elm_ui$Internal$Model$StaticRootAndDynamic(options); + } + }(); + return A2( + $mdgriffith$elm_ui$Internal$Model$toHtml, + embedStyle, + A4( + $mdgriffith$elm_ui$Internal$Model$element, + $mdgriffith$elm_ui$Internal$Model$asEl, + $mdgriffith$elm_ui$Internal$Model$div, + attributes, + $mdgriffith$elm_ui$Internal$Model$Unkeyed( + _List_fromArray( + [child])))); + }); +var $mdgriffith$elm_ui$Internal$Model$Colored = F3( + function (a, b, c) { + return {$: 'Colored', a: a, b: b, c: c}; + }); +var $mdgriffith$elm_ui$Internal$Model$FontFamily = F2( + function (a, b) { + return {$: 'FontFamily', a: a, b: b}; + }); +var $mdgriffith$elm_ui$Internal$Model$FontSize = function (a) { + return {$: 'FontSize', a: a}; +}; +var $mdgriffith$elm_ui$Internal$Model$SansSerif = {$: 'SansSerif'}; +var $mdgriffith$elm_ui$Internal$Model$StyleClass = F2( + function (a, b) { + return {$: 'StyleClass', a: a, b: b}; + }); +var $mdgriffith$elm_ui$Internal$Model$Typeface = function (a) { + return {$: 'Typeface', a: a}; +}; +var $mdgriffith$elm_ui$Internal$Flag$bgColor = $mdgriffith$elm_ui$Internal$Flag$flag(8); +var $mdgriffith$elm_ui$Internal$Flag$fontColor = $mdgriffith$elm_ui$Internal$Flag$flag(14); +var $mdgriffith$elm_ui$Internal$Flag$fontFamily = $mdgriffith$elm_ui$Internal$Flag$flag(5); +var $mdgriffith$elm_ui$Internal$Flag$fontSize = $mdgriffith$elm_ui$Internal$Flag$flag(4); +var $mdgriffith$elm_ui$Internal$Model$formatColorClass = function (_v0) { + var red = _v0.a; + var green = _v0.b; + var blue = _v0.c; + var alpha = _v0.d; + return $mdgriffith$elm_ui$Internal$Model$floatClass(red) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(green) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(blue) + ('-' + $mdgriffith$elm_ui$Internal$Model$floatClass(alpha)))))); +}; +var $elm$core$String$words = _String_words; +var $mdgriffith$elm_ui$Internal$Model$renderFontClassName = F2( + function (font, current) { + return _Utils_ap( + current, + function () { + switch (font.$) { + case 'Serif': + return 'serif'; + case 'SansSerif': + return 'sans-serif'; + case 'Monospace': + return 'monospace'; + case 'Typeface': + var name = font.a; + return A2( + $elm$core$String$join, + '-', + $elm$core$String$words( + $elm$core$String$toLower(name))); + case 'ImportFont': + var name = font.a; + var url = font.b; + return A2( + $elm$core$String$join, + '-', + $elm$core$String$words( + $elm$core$String$toLower(name))); + default: + var name = font.a.name; + return A2( + $elm$core$String$join, + '-', + $elm$core$String$words( + $elm$core$String$toLower(name))); + } + }()); + }); +var $mdgriffith$elm_ui$Internal$Model$rootStyle = function () { + var families = _List_fromArray( + [ + $mdgriffith$elm_ui$Internal$Model$Typeface('Open Sans'), + $mdgriffith$elm_ui$Internal$Model$Typeface('Helvetica'), + $mdgriffith$elm_ui$Internal$Model$Typeface('Verdana'), + $mdgriffith$elm_ui$Internal$Model$SansSerif + ]); + return _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Model$StyleClass, + $mdgriffith$elm_ui$Internal$Flag$bgColor, + A3( + $mdgriffith$elm_ui$Internal$Model$Colored, + 'bg-' + $mdgriffith$elm_ui$Internal$Model$formatColorClass( + A4($mdgriffith$elm_ui$Internal$Model$Rgba, 1, 1, 1, 0)), + 'background-color', + A4($mdgriffith$elm_ui$Internal$Model$Rgba, 1, 1, 1, 0))), + A2( + $mdgriffith$elm_ui$Internal$Model$StyleClass, + $mdgriffith$elm_ui$Internal$Flag$fontColor, + A3( + $mdgriffith$elm_ui$Internal$Model$Colored, + 'fc-' + $mdgriffith$elm_ui$Internal$Model$formatColorClass( + A4($mdgriffith$elm_ui$Internal$Model$Rgba, 0, 0, 0, 1)), + 'color', + A4($mdgriffith$elm_ui$Internal$Model$Rgba, 0, 0, 0, 1))), + A2( + $mdgriffith$elm_ui$Internal$Model$StyleClass, + $mdgriffith$elm_ui$Internal$Flag$fontSize, + $mdgriffith$elm_ui$Internal$Model$FontSize(20)), + A2( + $mdgriffith$elm_ui$Internal$Model$StyleClass, + $mdgriffith$elm_ui$Internal$Flag$fontFamily, + A2( + $mdgriffith$elm_ui$Internal$Model$FontFamily, + A3($elm$core$List$foldl, $mdgriffith$elm_ui$Internal$Model$renderFontClassName, 'font-', families), + families)) + ]); +}(); +var $mdgriffith$elm_ui$Element$layoutWith = F3( + function (_v0, attrs, child) { + var options = _v0.options; + return A3( + $mdgriffith$elm_ui$Internal$Model$renderRoot, + options, + A2( + $elm$core$List$cons, + $mdgriffith$elm_ui$Internal$Model$htmlClass( + A2( + $elm$core$String$join, + ' ', + _List_fromArray( + [$mdgriffith$elm_ui$Internal$Style$classes.root, $mdgriffith$elm_ui$Internal$Style$classes.any, $mdgriffith$elm_ui$Internal$Style$classes.single]))), + _Utils_ap($mdgriffith$elm_ui$Internal$Model$rootStyle, attrs)), + child); + }); +var $mdgriffith$elm_ui$Element$layout = $mdgriffith$elm_ui$Element$layoutWith( + {options: _List_Nil}); +var $elm$core$Basics$abs = function (n) { + return (n < 0) ? (-n) : n; +}; +var $author$project$Morphir$Value$Error$UnexpectedArguments = function (a) { + return {$: 'UnexpectedArguments', a: a}; +}; +var $author$project$Morphir$Value$Native$binaryLazy = function (f) { + return F2( + function (_eval, args) { + if ((args.b && args.b.b) && (!args.b.b.b)) { + var arg1 = args.a; + var _v1 = args.b; + var arg2 = _v1.a; + return A3(f, _eval, arg1, arg2); + } else { + return $elm$core$Result$Err( + $author$project$Morphir$Value$Error$UnexpectedArguments(args)); + } + }); +}; +var $author$project$Morphir$Value$Native$binaryStrict = function (f) { + return $author$project$Morphir$Value$Native$binaryLazy( + F3( + function (_eval, arg1, arg2) { + return A2( + $elm$core$Result$andThen, + function (a1) { + return A2( + $elm$core$Result$andThen, + f(a1), + _eval(arg2)); + }, + _eval(arg1)); + })); +}; +var $author$project$Morphir$Value$Error$ExpectedBoolLiteral = function (a) { + return {$: 'ExpectedBoolLiteral', a: a}; +}; +var $author$project$Morphir$Value$Native$boolLiteral = function (lit) { + if (lit.$ === 'BoolLiteral') { + var v = lit.a; + return $elm$core$Result$Ok(v); + } else { + return $elm$core$Result$Err( + $author$project$Morphir$Value$Error$ExpectedBoolLiteral(lit)); + } +}; +var $author$project$Morphir$Value$Native$charLiteral = function (lit) { + if (lit.$ === 'CharLiteral') { + var v = lit.a; + return $elm$core$Result$Ok(v); + } else { + return $elm$core$Result$Err( + $author$project$Morphir$Value$Error$ExpectedBoolLiteral(lit)); + } +}; +var $author$project$Morphir$Value$Native$eval1 = F5( + function (f, decodeA, encodeB, _eval, args) { + if (args.b && (!args.b.b)) { + var arg1 = args.a; + return A2( + $elm$core$Result$andThen, + function (a) { + return encodeB( + f(a)); + }, + A2(decodeA, _eval, arg1)); + } else { + return $elm$core$Result$Err( + $author$project$Morphir$Value$Error$UnexpectedArguments(args)); + } + }); +var $elm$core$Result$map2 = F3( + function (func, ra, rb) { + if (ra.$ === 'Err') { + var x = ra.a; + return $elm$core$Result$Err(x); + } else { + var a = ra.a; + if (rb.$ === 'Err') { + var x = rb.a; + return $elm$core$Result$Err(x); + } else { + var b = rb.a; + return $elm$core$Result$Ok( + A2(func, a, b)); + } + } + }); +var $author$project$Morphir$Value$Native$eval2 = F6( + function (f, decodeA, decodeB, encodeC, _eval, args) { + if ((args.b && args.b.b) && (!args.b.b.b)) { + var arg1 = args.a; + var _v1 = args.b; + var arg2 = _v1.a; + return A2( + $elm$core$Result$andThen, + $elm$core$Basics$identity, + A3( + $elm$core$Result$map2, + F2( + function (a, b) { + return encodeC( + A2(f, a, b)); + }), + A2(decodeA, _eval, arg1), + A2(decodeB, _eval, arg2))); + } else { + return $elm$core$Result$Err( + $author$project$Morphir$Value$Error$UnexpectedArguments(args)); + } + }); +var $author$project$Morphir$Value$Error$ExpectedLiteral = function (a) { + return {$: 'ExpectedLiteral', a: a}; +}; +var $author$project$Morphir$Value$Native$expectLiteral = F3( + function (decodeLiteral, _eval, value) { + var _v0 = _eval(value); + if (_v0.$ === 'Ok') { + if (_v0.a.$ === 'Literal') { + var _v1 = _v0.a; + var lit = _v1.b; + return decodeLiteral(lit); + } else { + return $elm$core$Result$Err( + $author$project$Morphir$Value$Error$ExpectedLiteral(value)); + } + } else { + var error = _v0.a; + return $elm$core$Result$Err(error); + } + }); +var $author$project$Morphir$Value$Native$floatLiteral = function (lit) { + if (lit.$ === 'FloatLiteral') { + var v = lit.a; + return $elm$core$Result$Ok(v); + } else { + return $elm$core$Result$Err( + $author$project$Morphir$Value$Error$ExpectedBoolLiteral(lit)); + } +}; +var $author$project$Morphir$Value$Native$intLiteral = function (lit) { + if (lit.$ === 'IntLiteral') { + var v = lit.a; + return $elm$core$Result$Ok(v); + } else { + return $elm$core$Result$Err( + $author$project$Morphir$Value$Error$ExpectedBoolLiteral(lit)); + } +}; +var $author$project$Morphir$Value$Error$NotImplemented = {$: 'NotImplemented'}; +var $author$project$Morphir$Value$Native$oneOf = function (funs) { + return A3( + $elm$core$List$foldl, + F2( + function (nextFun, funSoFar) { + return F2( + function (_eval, args) { + var _v0 = A2(funSoFar, _eval, args); + if (_v0.$ === 'Ok') { + var result = _v0.a; + return $elm$core$Result$Ok(result); + } else { + return A2(nextFun, _eval, args); + } + }); + }), + F2( + function (_eval, args) { + return $elm$core$Result$Err($author$project$Morphir$Value$Error$NotImplemented); + }), + funs); +}; +var $author$project$Morphir$Value$Native$returnLiteral = F2( + function (toLit, a) { + return $elm$core$Result$Ok( + A2( + $author$project$Morphir$IR$Value$Literal, + _Utils_Tuple0, + toLit(a))); + }); +var $author$project$Morphir$Value$Native$stringLiteral = function (lit) { + if (lit.$ === 'StringLiteral') { + var v = lit.a; + return $elm$core$Result$Ok(v); + } else { + return $elm$core$Result$Err( + $author$project$Morphir$Value$Error$ExpectedBoolLiteral(lit)); + } +}; +var $elm$core$Basics$xor = _Basics_xor; +var $author$project$Morphir$IR$SDK$Basics$nativeFunctions = _List_fromArray( + [ + _Utils_Tuple2( + 'not', + A3( + $author$project$Morphir$Value$Native$eval1, + $elm$core$Basics$not, + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$boolLiteral), + $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral))), + _Utils_Tuple2( + 'and', + A4( + $author$project$Morphir$Value$Native$eval2, + $elm$core$Basics$and, + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$boolLiteral), + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$boolLiteral), + $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral))), + _Utils_Tuple2( + 'or', + A4( + $author$project$Morphir$Value$Native$eval2, + $elm$core$Basics$or, + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$boolLiteral), + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$boolLiteral), + $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral))), + _Utils_Tuple2( + 'xor', + A4( + $author$project$Morphir$Value$Native$eval2, + $elm$core$Basics$xor, + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$boolLiteral), + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$boolLiteral), + $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral))), + _Utils_Tuple2( + 'add', + $author$project$Morphir$Value$Native$oneOf( + _List_fromArray( + [ + A4( + $author$project$Morphir$Value$Native$eval2, + $elm$core$Basics$add, + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), + $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$IntLiteral)), + A4( + $author$project$Morphir$Value$Native$eval2, + $elm$core$Basics$add, + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), + $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$FloatLiteral)) + ]))), + _Utils_Tuple2( + 'subtract', + $author$project$Morphir$Value$Native$oneOf( + _List_fromArray( + [ + A4( + $author$project$Morphir$Value$Native$eval2, + $elm$core$Basics$sub, + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), + $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$IntLiteral)), + A4( + $author$project$Morphir$Value$Native$eval2, + $elm$core$Basics$sub, + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), + $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$FloatLiteral)) + ]))), + _Utils_Tuple2( + 'multiply', + $author$project$Morphir$Value$Native$oneOf( + _List_fromArray( + [ + A4( + $author$project$Morphir$Value$Native$eval2, + $elm$core$Basics$mul, + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), + $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$IntLiteral)), + A4( + $author$project$Morphir$Value$Native$eval2, + $elm$core$Basics$mul, + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), + $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$FloatLiteral)) + ]))), + _Utils_Tuple2( + 'divide', + A4( + $author$project$Morphir$Value$Native$eval2, + $elm$core$Basics$fdiv, + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), + $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$FloatLiteral))), + _Utils_Tuple2( + 'integerDivide', + A4( + $author$project$Morphir$Value$Native$eval2, + $elm$core$Basics$idiv, + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), + $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$IntLiteral))), + _Utils_Tuple2( + 'equal', + $author$project$Morphir$Value$Native$binaryStrict( + F2( + function (arg1, arg2) { + return $elm$core$Result$Ok( + A2( + $author$project$Morphir$IR$Value$Literal, + _Utils_Tuple0, + $author$project$Morphir$IR$Literal$BoolLiteral( + _Utils_eq(arg1, arg2)))); + }))), + _Utils_Tuple2( + 'notEqual', + $author$project$Morphir$Value$Native$binaryStrict( + F2( + function (arg1, arg2) { + return $elm$core$Result$Ok( + A2( + $author$project$Morphir$IR$Value$Literal, + _Utils_Tuple0, + $author$project$Morphir$IR$Literal$BoolLiteral( + !_Utils_eq(arg1, arg2)))); + }))), + _Utils_Tuple2( + 'lessThan', + $author$project$Morphir$Value$Native$oneOf( + _List_fromArray( + [ + A4( + $author$project$Morphir$Value$Native$eval2, + $elm$core$Basics$lt, + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), + $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)), + A4( + $author$project$Morphir$Value$Native$eval2, + $elm$core$Basics$lt, + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), + $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)), + A4( + $author$project$Morphir$Value$Native$eval2, + $elm$core$Basics$lt, + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$charLiteral), + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$charLiteral), + $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)), + A4( + $author$project$Morphir$Value$Native$eval2, + $elm$core$Basics$lt, + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$stringLiteral), + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$stringLiteral), + $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)) + ]))), + _Utils_Tuple2( + 'greaterThan', + $author$project$Morphir$Value$Native$oneOf( + _List_fromArray( + [ + A4( + $author$project$Morphir$Value$Native$eval2, + $elm$core$Basics$gt, + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), + $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)), + A4( + $author$project$Morphir$Value$Native$eval2, + $elm$core$Basics$gt, + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), + $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)), + A4( + $author$project$Morphir$Value$Native$eval2, + $elm$core$Basics$gt, + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$charLiteral), + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$charLiteral), + $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)), + A4( + $author$project$Morphir$Value$Native$eval2, + $elm$core$Basics$gt, + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$stringLiteral), + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$stringLiteral), + $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)) + ]))), + _Utils_Tuple2( + 'abs', + $author$project$Morphir$Value$Native$oneOf( + _List_fromArray( + [ + A3( + $author$project$Morphir$Value$Native$eval1, + $elm$core$Basics$abs, + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), + $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$IntLiteral)), + A3( + $author$project$Morphir$Value$Native$eval1, + $elm$core$Basics$abs, + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), + $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$FloatLiteral)) + ]))), + _Utils_Tuple2( + 'toFloat', + $author$project$Morphir$Value$Native$oneOf( + _List_fromArray( + [ + A3( + $author$project$Morphir$Value$Native$eval1, + $elm$core$Basics$toFloat, + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), + $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$FloatLiteral)) + ]))), + _Utils_Tuple2( + 'negate', + $author$project$Morphir$Value$Native$oneOf( + _List_fromArray( + [ + A3( + $author$project$Morphir$Value$Native$eval1, + $elm$core$Basics$negate, + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), + $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$IntLiteral)), + A3( + $author$project$Morphir$Value$Native$eval1, + $elm$core$Basics$negate, + $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), + $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$FloatLiteral)) + ]))) + ]); +var $author$project$Morphir$Value$Native$expectFun1 = F2( + function (_eval, fun) { + return $elm$core$Result$Ok( + function (arg) { + return _eval( + A3($author$project$Morphir$IR$Value$Apply, _Utils_Tuple0, fun, arg)); + }); + }); +var $author$project$Morphir$Value$Native$expectList = F2( + function (_eval, value) { + var _v0 = _eval(value); + if (_v0.$ === 'Ok') { + if (_v0.a.$ === 'List') { + var _v1 = _v0.a; + var values = _v1.b; + return $elm$core$Result$Ok(values); + } else { + return $elm$core$Result$Err( + $author$project$Morphir$Value$Error$ExpectedLiteral(value)); + } + } else { + var error = _v0.a; + return $elm$core$Result$Err(error); + } + }); +var $author$project$Morphir$IR$FQName$fqn = F3( + function (packageName, moduleName, localName) { + return A3( + $author$project$Morphir$IR$FQName$fQName, + $author$project$Morphir$IR$Path$fromString(packageName), + $author$project$Morphir$IR$Path$fromString(moduleName), + $author$project$Morphir$IR$Name$fromString(localName)); + }); +var $author$project$Morphir$Value$Native$returnList = function (list) { + return $elm$core$Result$Ok( + A2($author$project$Morphir$IR$Value$List, _Utils_Tuple0, list)); +}; +var $elm$core$List$head = function (list) { + if (list.b) { + var x = list.a; + var xs = list.b; + return $elm$core$Maybe$Just(x); + } else { + return $elm$core$Maybe$Nothing; + } +}; +var $elm$core$Result$toMaybe = function (result) { + if (result.$ === 'Ok') { + var v = result.a; + return $elm$core$Maybe$Just(v); + } else { + return $elm$core$Maybe$Nothing; + } +}; +var $author$project$Morphir$ListOfResults$liftAllErrors = function (results) { + var oks = A2( + $elm$core$List$filterMap, + function (result) { + return $elm$core$Result$toMaybe(result); + }, + results); + var errs = A2( + $elm$core$List$filterMap, + function (result) { + if (result.$ === 'Ok') { + return $elm$core$Maybe$Nothing; + } else { + var e = result.a; + return $elm$core$Maybe$Just(e); + } + }, + results); + if (!errs.b) { + return $elm$core$Result$Ok(oks); + } else { + return $elm$core$Result$Err(errs); + } +}; +var $author$project$Morphir$ListOfResults$liftFirstError = function (results) { + var _v0 = $author$project$Morphir$ListOfResults$liftAllErrors(results); + if (_v0.$ === 'Ok') { + var a = _v0.a; + return $elm$core$Result$Ok(a); + } else { + var errors = _v0.a; + return A2( + $elm$core$Maybe$withDefault, + $elm$core$Result$Ok(_List_Nil), + A2( + $elm$core$Maybe$map, + $elm$core$Result$Err, + $elm$core$List$head(errors))); + } +}; +var $author$project$Morphir$Value$Native$returnResultList = function (listOfValueResults) { + return A2( + $elm$core$Result$map, + $author$project$Morphir$IR$Value$List(_Utils_Tuple0), + $author$project$Morphir$ListOfResults$liftFirstError(listOfValueResults)); +}; +var $author$project$Morphir$Value$Native$unaryLazy = function (f) { + return F2( + function (_eval, args) { + if (args.b && (!args.b.b)) { + var arg = args.a; + return A2(f, _eval, arg); + } else { + return $elm$core$Result$Err( + $author$project$Morphir$Value$Error$UnexpectedArguments(args)); + } + }); +}; +var $author$project$Morphir$Value$Native$unaryStrict = function (f) { + return $author$project$Morphir$Value$Native$unaryLazy( + F2( + function (_eval, arg) { + return A2( + $elm$core$Result$andThen, + f(_eval), + _eval(arg)); + })); +}; +var $author$project$Morphir$IR$SDK$List$nativeFunctions = _List_fromArray( + [ + _Utils_Tuple2( + 'sum', + $author$project$Morphir$Value$Native$unaryStrict( + F2( + function (_eval, arg) { + if (arg.$ === 'List') { + var value = arg.b; + return A3( + $elm$core$List$foldl, + F2( + function (nextElem, resultSoFar) { + return A2( + $elm$core$Result$andThen, + function (resultValue) { + return _eval( + A3( + $author$project$Morphir$IR$Value$Apply, + _Utils_Tuple0, + A3( + $author$project$Morphir$IR$Value$Apply, + _Utils_Tuple0, + A2( + $author$project$Morphir$IR$Value$Reference, + _Utils_Tuple0, + A3($author$project$Morphir$IR$FQName$fqn, 'Morphir.SDK', 'Basics', 'add')), + nextElem), + resultValue)); + }, + resultSoFar); + }), + $elm$core$Result$Ok( + A2( + $author$project$Morphir$IR$Value$Literal, + _Utils_Tuple0, + $author$project$Morphir$IR$Literal$IntLiteral(0))), + value); + } else { + return $elm$core$Result$Err( + $author$project$Morphir$Value$Error$UnexpectedArguments( + _List_fromArray( + [arg]))); + } + }))), + _Utils_Tuple2( + 'map', + A4($author$project$Morphir$Value$Native$eval2, $elm$core$List$map, $author$project$Morphir$Value$Native$expectFun1, $author$project$Morphir$Value$Native$expectList, $author$project$Morphir$Value$Native$returnResultList)), + _Utils_Tuple2( + 'append', + A4($author$project$Morphir$Value$Native$eval2, $elm$core$List$append, $author$project$Morphir$Value$Native$expectList, $author$project$Morphir$Value$Native$expectList, $author$project$Morphir$Value$Native$returnList)) + ]); +var $elm$core$Basics$composeR = F3( + function (f, g, x) { + return g( + f(x)); + }); +var $author$project$Morphir$IR$SDK$String$nativeFunctions = _List_fromArray( + [ + _Utils_Tuple2( + 'concat', + $author$project$Morphir$Value$Native$unaryStrict( + F2( + function (_eval, arg) { + if (arg.$ === 'List') { + var value = arg.b; + return A2( + $elm$core$Result$map, + A2( + $elm$core$Basics$composeR, + $elm$core$String$concat, + A2( + $elm$core$Basics$composeR, + $author$project$Morphir$IR$Literal$StringLiteral, + $author$project$Morphir$IR$Value$Literal(_Utils_Tuple0))), + $author$project$Morphir$ListOfResults$liftFirstError( + A2( + $elm$core$List$map, + function (listItem) { + return A2( + $elm$core$Result$andThen, + function (evaluatedListItem) { + if ((evaluatedListItem.$ === 'Literal') && (evaluatedListItem.b.$ === 'StringLiteral')) { + var argument = evaluatedListItem.b.a; + return $elm$core$Result$Ok(argument); + } else { + return $elm$core$Result$Err( + $author$project$Morphir$Value$Error$UnexpectedArguments( + _List_fromArray( + [arg]))); + } + }, + _eval(listItem)); + }, + value))); + } else { + return $elm$core$Result$Err( + $author$project$Morphir$Value$Error$UnexpectedArguments( + _List_fromArray( + [arg]))); + } + }))) + ]); +var $author$project$Morphir$IR$SDK$packageName = $author$project$Morphir$IR$Path$fromString('Morphir.SDK'); +var $elm$core$Dict$foldl = F3( + function (func, acc, dict) { + foldl: + while (true) { + if (dict.$ === 'RBEmpty_elm_builtin') { + return acc; + } else { + var key = dict.b; + var value = dict.c; + var left = dict.d; + var right = dict.e; + var $temp$func = func, + $temp$acc = A3( + func, + key, + value, + A3($elm$core$Dict$foldl, func, acc, left)), + $temp$dict = right; + func = $temp$func; + acc = $temp$acc; + dict = $temp$dict; + continue foldl; + } + } + }); +var $elm$core$Dict$union = F2( + function (t1, t2) { + return A3($elm$core$Dict$foldl, $elm$core$Dict$insert, t2, t1); + }); +var $author$project$Morphir$IR$SDK$nativeFunctions = function () { + var moduleFunctions = F2( + function (moduleName, functionsByName) { + return $elm$core$Dict$fromList( + A2( + $elm$core$List$map, + function (_v0) { + var localName = _v0.a; + var fun = _v0.b; + return _Utils_Tuple2( + _Utils_Tuple3( + $author$project$Morphir$IR$SDK$packageName, + $author$project$Morphir$IR$Path$fromString(moduleName), + $author$project$Morphir$IR$Name$fromString(localName)), + fun); + }, + functionsByName)); + }); + return A3( + $elm$core$List$foldl, + $elm$core$Dict$union, + $elm$core$Dict$empty, + _List_fromArray( + [ + A2(moduleFunctions, 'Basics', $author$project$Morphir$IR$SDK$Basics$nativeFunctions), + A2(moduleFunctions, 'String', $author$project$Morphir$IR$SDK$String$nativeFunctions), + A2(moduleFunctions, 'List', $author$project$Morphir$IR$SDK$List$nativeFunctions) + ])); +}(); +var $mdgriffith$elm_ui$Internal$Model$PaddingStyle = F5( + function (a, b, c, d, e) { + return {$: 'PaddingStyle', a: a, b: b, c: c, d: d, e: e}; + }); +var $mdgriffith$elm_ui$Internal$Flag$padding = $mdgriffith$elm_ui$Internal$Flag$flag(2); +var $mdgriffith$elm_ui$Element$padding = function (x) { + var f = x; + return A2( + $mdgriffith$elm_ui$Internal$Model$StyleClass, + $mdgriffith$elm_ui$Internal$Flag$padding, + A5( + $mdgriffith$elm_ui$Internal$Model$PaddingStyle, + 'p-' + $elm$core$String$fromInt(x), + f, + f, + f, + f)); +}; +var $mdgriffith$elm_ui$Element$Font$size = function (i) { + return A2( + $mdgriffith$elm_ui$Internal$Model$StyleClass, + $mdgriffith$elm_ui$Internal$Flag$fontSize, + $mdgriffith$elm_ui$Internal$Model$FontSize(i)); +}; +var $elm$core$Basics$pow = _Basics_pow; +var $mdgriffith$elm_ui$Element$modular = F3( + function (normal, ratio, rescale) { + return (!rescale) ? normal : ((rescale < 0) ? (normal * A2($elm$core$Basics$pow, ratio, rescale)) : (normal * A2($elm$core$Basics$pow, ratio, rescale - 1))); + }); +var $author$project$Morphir$Visual$Theme$scaled = F2( + function (scaleValue, theme) { + return $elm$core$Basics$round( + A3($mdgriffith$elm_ui$Element$modular, theme.fontSize, 1.25, scaleValue)); + }); +var $author$project$Morphir$Visual$Theme$smallPadding = function (theme) { + return A2($author$project$Morphir$Visual$Theme$scaled, -3, theme); +}; +var $author$project$Morphir$Visual$Theme$smallSpacing = function (theme) { + return A2($author$project$Morphir$Visual$Theme$scaled, -3, theme); +}; +var $mdgriffith$elm_ui$Internal$Model$SpacingStyle = F3( + function (a, b, c) { + return {$: 'SpacingStyle', a: a, b: b, c: c}; + }); +var $mdgriffith$elm_ui$Internal$Flag$spacing = $mdgriffith$elm_ui$Internal$Flag$flag(3); +var $mdgriffith$elm_ui$Internal$Model$spacingName = F2( + function (x, y) { + return 'spacing-' + ($elm$core$String$fromInt(x) + ('-' + $elm$core$String$fromInt(y))); + }); +var $mdgriffith$elm_ui$Element$spacing = function (x) { + return A2( + $mdgriffith$elm_ui$Internal$Model$StyleClass, + $mdgriffith$elm_ui$Internal$Flag$spacing, + A3( + $mdgriffith$elm_ui$Internal$Model$SpacingStyle, + A2($mdgriffith$elm_ui$Internal$Model$spacingName, x, x), + x, + x)); +}; +var $mdgriffith$elm_ui$Internal$Model$Text = function (a) { + return {$: 'Text', a: a}; +}; +var $mdgriffith$elm_ui$Element$text = function (content) { + return $mdgriffith$elm_ui$Internal$Model$Text(content); +}; +var $mdgriffith$elm_ui$Element$Background$color = function (clr) { + return A2( + $mdgriffith$elm_ui$Internal$Model$StyleClass, + $mdgriffith$elm_ui$Internal$Flag$bgColor, + A3( + $mdgriffith$elm_ui$Internal$Model$Colored, + 'bg-' + $mdgriffith$elm_ui$Internal$Model$formatColorClass(clr), + 'background-color', + clr)); +}; +var $mdgriffith$elm_ui$Element$Font$color = function (fontColor) { + return A2( + $mdgriffith$elm_ui$Internal$Model$StyleClass, + $mdgriffith$elm_ui$Internal$Flag$fontColor, + A3( + $mdgriffith$elm_ui$Internal$Model$Colored, + 'fc-' + $mdgriffith$elm_ui$Internal$Model$formatColorClass(fontColor), + 'color', + fontColor)); +}; +var $mdgriffith$elm_ui$Internal$Model$AsColumn = {$: 'AsColumn'}; +var $mdgriffith$elm_ui$Internal$Model$asColumn = $mdgriffith$elm_ui$Internal$Model$AsColumn; +var $mdgriffith$elm_ui$Internal$Model$Height = function (a) { + return {$: 'Height', a: a}; +}; +var $mdgriffith$elm_ui$Element$height = $mdgriffith$elm_ui$Internal$Model$Height; +var $mdgriffith$elm_ui$Internal$Model$Content = {$: 'Content'}; +var $mdgriffith$elm_ui$Element$shrink = $mdgriffith$elm_ui$Internal$Model$Content; +var $mdgriffith$elm_ui$Internal$Model$Width = function (a) { + return {$: 'Width', a: a}; +}; +var $mdgriffith$elm_ui$Element$width = $mdgriffith$elm_ui$Internal$Model$Width; +var $mdgriffith$elm_ui$Element$column = F2( + function (attrs, children) { + return A4( + $mdgriffith$elm_ui$Internal$Model$element, + $mdgriffith$elm_ui$Internal$Model$asColumn, + $mdgriffith$elm_ui$Internal$Model$div, + A2( + $elm$core$List$cons, + $mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentTop + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.contentLeft)), + A2( + $elm$core$List$cons, + $mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink), + A2( + $elm$core$List$cons, + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink), + attrs))), + $mdgriffith$elm_ui$Internal$Model$Unkeyed(children)); + }); +var $mdgriffith$elm_ui$Element$el = F2( + function (attrs, child) { + return A4( + $mdgriffith$elm_ui$Internal$Model$element, + $mdgriffith$elm_ui$Internal$Model$asEl, + $mdgriffith$elm_ui$Internal$Model$div, + A2( + $elm$core$List$cons, + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink), + A2( + $elm$core$List$cons, + $mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink), + attrs)), + $mdgriffith$elm_ui$Internal$Model$Unkeyed( + _List_fromArray( + [child]))); + }); +var $author$project$Morphir$Visual$Theme$mediumPadding = function (theme) { + return A2($author$project$Morphir$Visual$Theme$scaled, 0, theme); +}; +var $author$project$Morphir$Visual$Theme$mediumSpacing = function (theme) { + return A2($author$project$Morphir$Visual$Theme$scaled, 0, theme); +}; +var $mdgriffith$elm_ui$Internal$Model$paddingName = F4( + function (top, right, bottom, left) { + return 'pad-' + ($elm$core$String$fromInt(top) + ('-' + ($elm$core$String$fromInt(right) + ('-' + ($elm$core$String$fromInt(bottom) + ('-' + $elm$core$String$fromInt(left))))))); + }); +var $mdgriffith$elm_ui$Element$paddingEach = function (_v0) { + var top = _v0.top; + var right = _v0.right; + var bottom = _v0.bottom; + var left = _v0.left; + if (_Utils_eq(top, right) && (_Utils_eq(top, bottom) && _Utils_eq(top, left))) { + var topFloat = top; + return A2( + $mdgriffith$elm_ui$Internal$Model$StyleClass, + $mdgriffith$elm_ui$Internal$Flag$padding, + A5( + $mdgriffith$elm_ui$Internal$Model$PaddingStyle, + 'p-' + $elm$core$String$fromInt(top), + topFloat, + topFloat, + topFloat, + topFloat)); + } else { + return A2( + $mdgriffith$elm_ui$Internal$Model$StyleClass, + $mdgriffith$elm_ui$Internal$Flag$padding, + A5( + $mdgriffith$elm_ui$Internal$Model$PaddingStyle, + A4($mdgriffith$elm_ui$Internal$Model$paddingName, top, right, bottom, left), + top, + right, + bottom, + left)); + } +}; +var $mdgriffith$elm_ui$Internal$Model$AsRow = {$: 'AsRow'}; +var $mdgriffith$elm_ui$Internal$Model$asRow = $mdgriffith$elm_ui$Internal$Model$AsRow; +var $mdgriffith$elm_ui$Element$row = F2( + function (attrs, children) { + return A4( + $mdgriffith$elm_ui$Internal$Model$element, + $mdgriffith$elm_ui$Internal$Model$asRow, + $mdgriffith$elm_ui$Internal$Model$div, + A2( + $elm$core$List$cons, + $mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentLeft + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.contentCenterY)), + A2( + $elm$core$List$cons, + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink), + A2( + $elm$core$List$cons, + $mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink), + attrs))), + $mdgriffith$elm_ui$Internal$Model$Unkeyed(children)); + }); +var $author$project$Morphir$Visual$Common$definition = F3( + function (config, header, body) { + return A2( + $mdgriffith$elm_ui$Element$column, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme)) + ]), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme)) + ]), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [$mdgriffith$elm_ui$Element$Font$bold]), + $mdgriffith$elm_ui$Element$text(header)), + A2( + $mdgriffith$elm_ui$Element$el, + _List_Nil, + $mdgriffith$elm_ui$Element$text('=')) + ])), + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$paddingEach( + { + bottom: 0, + left: $author$project$Morphir$Visual$Theme$mediumPadding(config.state.theme), + right: $author$project$Morphir$Visual$Theme$mediumPadding(config.state.theme), + top: 0 + }) + ]), + body) + ])); + }); +var $elm$core$Dict$isEmpty = function (dict) { + if (dict.$ === 'RBEmpty_elm_builtin') { + return true; + } else { + return false; + } +}; +var $elm$core$Debug$log = _Debug_log; +var $elm$core$String$toUpper = _String_toUpper; +var $author$project$Morphir$IR$Name$toHumanWords = function (name) { + var words = $author$project$Morphir$IR$Name$toList(name); + var join = function (abbrev) { + return $elm$core$String$toUpper( + A2($elm$core$String$join, '', abbrev)); + }; + var process = F3( + function (prefix, abbrev, suffix) { + process: + while (true) { + if (!suffix.b) { + return $elm$core$List$isEmpty(abbrev) ? prefix : A2( + $elm$core$List$append, + prefix, + _List_fromArray( + [ + join(abbrev) + ])); + } else { + var first = suffix.a; + var rest = suffix.b; + if ($elm$core$String$length(first) === 1) { + var $temp$prefix = prefix, + $temp$abbrev = A2( + $elm$core$List$append, + abbrev, + _List_fromArray( + [first])), + $temp$suffix = rest; + prefix = $temp$prefix; + abbrev = $temp$abbrev; + suffix = $temp$suffix; + continue process; + } else { + if (!abbrev.b) { + var $temp$prefix = A2( + $elm$core$List$append, + prefix, + _List_fromArray( + [first])), + $temp$abbrev = _List_Nil, + $temp$suffix = rest; + prefix = $temp$prefix; + abbrev = $temp$abbrev; + suffix = $temp$suffix; + continue process; + } else { + var $temp$prefix = A2( + $elm$core$List$append, + prefix, + _List_fromArray( + [ + join(abbrev), + first + ])), + $temp$abbrev = _List_Nil, + $temp$suffix = rest; + prefix = $temp$prefix; + abbrev = $temp$abbrev; + suffix = $temp$suffix; + continue process; + } + } + } + } + }); + return A3(process, _List_Nil, _List_Nil, words); +}; +var $author$project$Morphir$Visual$Common$nameToText = function (name) { + return A2( + $elm$core$String$join, + ' ', + $author$project$Morphir$IR$Name$toHumanWords(name)); +}; +var $mdgriffith$elm_ui$Internal$Model$Empty = {$: 'Empty'}; +var $mdgriffith$elm_ui$Element$none = $mdgriffith$elm_ui$Internal$Model$Empty; +var $elm$core$Basics$composeL = F3( + function (g, f, x) { + return g( + f(x)); + }); +var $elm$virtual_dom$VirtualDom$Normal = function (a) { + return {$: 'Normal', a: a}; +}; +var $elm$virtual_dom$VirtualDom$on = _VirtualDom_on; +var $elm$html$Html$Events$on = F2( + function (event, decoder) { + return A2( + $elm$virtual_dom$VirtualDom$on, + event, + $elm$virtual_dom$VirtualDom$Normal(decoder)); + }); +var $elm$html$Html$Events$onClick = function (msg) { + return A2( + $elm$html$Html$Events$on, + 'click', + $elm$json$Json$Decode$succeed(msg)); +}; +var $mdgriffith$elm_ui$Element$Events$onClick = A2($elm$core$Basics$composeL, $mdgriffith$elm_ui$Internal$Model$Attr, $elm$html$Html$Events$onClick); +var $mdgriffith$elm_ui$Internal$Flag$borderRound = $mdgriffith$elm_ui$Internal$Flag$flag(17); +var $mdgriffith$elm_ui$Element$Border$rounded = function (radius) { + return A2( + $mdgriffith$elm_ui$Internal$Model$StyleClass, + $mdgriffith$elm_ui$Internal$Flag$borderRound, + A3( + $mdgriffith$elm_ui$Internal$Model$Single, + 'br-' + $elm$core$String$fromInt(radius), + 'border-radius', + $elm$core$String$fromInt(radius) + 'px')); +}; +var $mdgriffith$elm_ui$Internal$Flag$borderStyle = $mdgriffith$elm_ui$Internal$Flag$flag(11); +var $mdgriffith$elm_ui$Element$Border$solid = A2($mdgriffith$elm_ui$Internal$Model$Class, $mdgriffith$elm_ui$Internal$Flag$borderStyle, $mdgriffith$elm_ui$Internal$Style$classes.borderSolid); +var $author$project$Morphir$IR$Value$indexedMapListHelp = F3( + function (f, baseIndex, elemList) { + return A3( + $elm$core$List$foldl, + F2( + function (nextElem, _v0) { + var elemsSoFar = _v0.a; + var lastIndexSoFar = _v0.b; + var _v1 = A2(f, lastIndexSoFar + 1, nextElem); + var mappedElem = _v1.a; + var lastIndex = _v1.b; + return _Utils_Tuple2( + A2( + $elm$core$List$append, + elemsSoFar, + _List_fromArray( + [mappedElem])), + lastIndex); + }), + _Utils_Tuple2(_List_Nil, baseIndex), + elemList); + }); +var $author$project$Morphir$IR$Value$indexedMapPattern = F3( + function (f, baseIndex, pattern) { + switch (pattern.$) { + case 'WildcardPattern': + var a = pattern.a; + return _Utils_Tuple2( + $author$project$Morphir$IR$Value$WildcardPattern( + A2(f, baseIndex, a)), + baseIndex); + case 'AsPattern': + var a = pattern.a; + var aliasedPattern = pattern.b; + var alias = pattern.c; + var _v1 = A3($author$project$Morphir$IR$Value$indexedMapPattern, f, baseIndex + 1, aliasedPattern); + var mappedAliasedPattern = _v1.a; + var lastIndex = _v1.b; + return _Utils_Tuple2( + A3( + $author$project$Morphir$IR$Value$AsPattern, + A2(f, baseIndex, a), + mappedAliasedPattern, + alias), + lastIndex); + case 'TuplePattern': + var a = pattern.a; + var elemPatterns = pattern.b; + var _v2 = A3( + $author$project$Morphir$IR$Value$indexedMapListHelp, + $author$project$Morphir$IR$Value$indexedMapPattern(f), + baseIndex, + elemPatterns); + var mappedElemPatterns = _v2.a; + var elemsLastIndex = _v2.b; + return _Utils_Tuple2( + A2( + $author$project$Morphir$IR$Value$TuplePattern, + A2(f, baseIndex, a), + mappedElemPatterns), + elemsLastIndex); + case 'ConstructorPattern': + var a = pattern.a; + var fQName = pattern.b; + var argPatterns = pattern.c; + var _v3 = A3( + $author$project$Morphir$IR$Value$indexedMapListHelp, + $author$project$Morphir$IR$Value$indexedMapPattern(f), + baseIndex, + argPatterns); + var mappedArgPatterns = _v3.a; + var argPatternsLastIndex = _v3.b; + return _Utils_Tuple2( + A3( + $author$project$Morphir$IR$Value$ConstructorPattern, + A2(f, baseIndex, a), + fQName, + mappedArgPatterns), + argPatternsLastIndex); + case 'EmptyListPattern': + var a = pattern.a; + return _Utils_Tuple2( + $author$project$Morphir$IR$Value$EmptyListPattern( + A2(f, baseIndex, a)), + baseIndex); + case 'HeadTailPattern': + var a = pattern.a; + var headPattern = pattern.b; + var tailPattern = pattern.c; + var _v4 = A3($author$project$Morphir$IR$Value$indexedMapPattern, f, baseIndex + 1, headPattern); + var mappedHeadPattern = _v4.a; + var lastIndexHeadPattern = _v4.b; + var _v5 = A3($author$project$Morphir$IR$Value$indexedMapPattern, f, lastIndexHeadPattern + 1, tailPattern); + var mappedTailPattern = _v5.a; + var lastIndexTailPattern = _v5.b; + return _Utils_Tuple2( + A3( + $author$project$Morphir$IR$Value$HeadTailPattern, + A2(f, baseIndex, a), + mappedHeadPattern, + mappedTailPattern), + lastIndexTailPattern); + case 'LiteralPattern': + var a = pattern.a; + var lit = pattern.b; + return _Utils_Tuple2( + A2( + $author$project$Morphir$IR$Value$LiteralPattern, + A2(f, baseIndex, a), + lit), + baseIndex); + default: + var a = pattern.a; + return _Utils_Tuple2( + $author$project$Morphir$IR$Value$UnitPattern( + A2(f, baseIndex, a)), + baseIndex); + } + }); +var $author$project$Morphir$IR$Value$indexedMapValue = F3( + function (f, baseIndex, value) { + switch (value.$) { + case 'Literal': + var a = value.a; + var lit = value.b; + return _Utils_Tuple2( + A2( + $author$project$Morphir$IR$Value$Literal, + A2(f, baseIndex, a), + lit), + baseIndex); + case 'Constructor': + var a = value.a; + var fullyQualifiedName = value.b; + return _Utils_Tuple2( + A2( + $author$project$Morphir$IR$Value$Constructor, + A2(f, baseIndex, a), + fullyQualifiedName), + baseIndex); + case 'Tuple': + var a = value.a; + var elems = value.b; + var _v1 = A3( + $author$project$Morphir$IR$Value$indexedMapListHelp, + $author$project$Morphir$IR$Value$indexedMapValue(f), + baseIndex, + elems); + var mappedElems = _v1.a; + var elemsLastIndex = _v1.b; + return _Utils_Tuple2( + A2( + $author$project$Morphir$IR$Value$Tuple, + A2(f, baseIndex, a), + mappedElems), + elemsLastIndex); + case 'List': + var a = value.a; + var values = value.b; + var _v2 = A3( + $author$project$Morphir$IR$Value$indexedMapListHelp, + $author$project$Morphir$IR$Value$indexedMapValue(f), + baseIndex, + values); + var mappedValues = _v2.a; + var valuesLastIndex = _v2.b; + return _Utils_Tuple2( + A2( + $author$project$Morphir$IR$Value$List, + A2(f, baseIndex, a), + mappedValues), + valuesLastIndex); + case 'Record': + var a = value.a; + var fields = value.b; + var _v3 = A3( + $author$project$Morphir$IR$Value$indexedMapListHelp, + F2( + function (fieldBaseIndex, _v4) { + var fieldName = _v4.a; + var fieldValue = _v4.b; + var _v5 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, fieldBaseIndex, fieldValue); + var mappedFieldValue = _v5.a; + var lastFieldIndex = _v5.b; + return _Utils_Tuple2( + _Utils_Tuple2(fieldName, mappedFieldValue), + lastFieldIndex); + }), + baseIndex, + fields); + var mappedFields = _v3.a; + var valuesLastIndex = _v3.b; + return _Utils_Tuple2( + A2( + $author$project$Morphir$IR$Value$Record, + A2(f, baseIndex, a), + mappedFields), + valuesLastIndex); + case 'Variable': + var a = value.a; + var name = value.b; + return _Utils_Tuple2( + A2( + $author$project$Morphir$IR$Value$Variable, + A2(f, baseIndex, a), + name), + baseIndex); + case 'Reference': + var a = value.a; + var fQName = value.b; + return _Utils_Tuple2( + A2( + $author$project$Morphir$IR$Value$Reference, + A2(f, baseIndex, a), + fQName), + baseIndex); + case 'Field': + var a = value.a; + var subjectValue = value.b; + var name = value.c; + var _v6 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, baseIndex + 1, subjectValue); + var mappedSubjectValue = _v6.a; + var subjectValueLastIndex = _v6.b; + return _Utils_Tuple2( + A3( + $author$project$Morphir$IR$Value$Field, + A2(f, baseIndex, a), + mappedSubjectValue, + name), + subjectValueLastIndex); + case 'FieldFunction': + var a = value.a; + var name = value.b; + return _Utils_Tuple2( + A2( + $author$project$Morphir$IR$Value$FieldFunction, + A2(f, baseIndex, a), + name), + baseIndex); + case 'Apply': + var a = value.a; + var funValue = value.b; + var argValue = value.c; + var _v7 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, baseIndex + 1, funValue); + var mappedFunValue = _v7.a; + var funValueLastIndex = _v7.b; + var _v8 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, funValueLastIndex + 1, argValue); + var mappedArgValue = _v8.a; + var argValueLastIndex = _v8.b; + return _Utils_Tuple2( + A3( + $author$project$Morphir$IR$Value$Apply, + A2(f, baseIndex, a), + mappedFunValue, + mappedArgValue), + argValueLastIndex); + case 'Lambda': + var a = value.a; + var argPattern = value.b; + var bodyValue = value.c; + var _v9 = A3($author$project$Morphir$IR$Value$indexedMapPattern, f, baseIndex + 1, argPattern); + var mappedArgPattern = _v9.a; + var argPatternLastIndex = _v9.b; + var _v10 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, argPatternLastIndex + 1, bodyValue); + var mappedBodyValue = _v10.a; + var bodyValueLastIndex = _v10.b; + return _Utils_Tuple2( + A3( + $author$project$Morphir$IR$Value$Lambda, + A2(f, baseIndex, a), + mappedArgPattern, + mappedBodyValue), + bodyValueLastIndex); + case 'LetDefinition': + var a = value.a; + var defName = value.b; + var def = value.c; + var inValue = value.d; + var _v11 = A3( + $author$project$Morphir$IR$Value$indexedMapListHelp, + F2( + function (inputBaseIndex, _v12) { + var inputName = _v12.a; + var inputA = _v12.b; + var inputType = _v12.c; + return _Utils_Tuple2( + _Utils_Tuple3( + inputName, + A2(f, inputBaseIndex, inputA), + inputType), + inputBaseIndex); + }), + baseIndex, + def.inputTypes); + var mappedDefArgs = _v11.a; + var defArgsLastIndex = _v11.b; + var _v13 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, defArgsLastIndex + 1, def.body); + var mappedDefBody = _v13.a; + var defBodyLastIndex = _v13.b; + var _v14 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, defBodyLastIndex + 1, inValue); + var mappedInValue = _v14.a; + var inValueLastIndex = _v14.b; + var mappedDef = {body: mappedDefBody, inputTypes: mappedDefArgs, outputType: def.outputType}; + return _Utils_Tuple2( + A4( + $author$project$Morphir$IR$Value$LetDefinition, + A2(f, baseIndex, a), + defName, + mappedDef, + mappedInValue), + inValueLastIndex); + case 'LetRecursion': + var a = value.a; + var defs = value.b; + var inValue = value.c; + var _v15 = $elm$core$Dict$isEmpty(defs) ? _Utils_Tuple2(_List_Nil, baseIndex) : A3( + $author$project$Morphir$IR$Value$indexedMapListHelp, + F2( + function (defBaseIndex, _v16) { + var defName = _v16.a; + var def = _v16.b; + var _v17 = A3( + $author$project$Morphir$IR$Value$indexedMapListHelp, + F2( + function (inputBaseIndex, _v18) { + var inputName = _v18.a; + var inputA = _v18.b; + var inputType = _v18.c; + return _Utils_Tuple2( + _Utils_Tuple3( + inputName, + A2(f, inputBaseIndex, inputA), + inputType), + inputBaseIndex); + }), + defBaseIndex - 1, + def.inputTypes); + var mappedDefArgs = _v17.a; + var defArgsLastIndex = _v17.b; + var _v19 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, defArgsLastIndex + 1, def.body); + var mappedDefBody = _v19.a; + var defBodyLastIndex = _v19.b; + var mappedDef = {body: mappedDefBody, inputTypes: mappedDefArgs, outputType: def.outputType}; + return _Utils_Tuple2( + _Utils_Tuple2(defName, mappedDef), + defBodyLastIndex); + }), + baseIndex, + $elm$core$Dict$toList(defs)); + var mappedDefs = _v15.a; + var defsLastIndex = _v15.b; + var _v20 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, defsLastIndex + 1, inValue); + var mappedInValue = _v20.a; + var inValueLastIndex = _v20.b; + return _Utils_Tuple2( + A3( + $author$project$Morphir$IR$Value$LetRecursion, + A2(f, baseIndex, a), + $elm$core$Dict$fromList(mappedDefs), + mappedInValue), + inValueLastIndex); + case 'Destructure': + var a = value.a; + var bindPattern = value.b; + var bindValue = value.c; + var inValue = value.d; + var _v21 = A3($author$project$Morphir$IR$Value$indexedMapPattern, f, baseIndex + 1, bindPattern); + var mappedBindPattern = _v21.a; + var bindPatternLastIndex = _v21.b; + var _v22 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, bindPatternLastIndex + 1, bindValue); + var mappedBindValue = _v22.a; + var bindValueLastIndex = _v22.b; + var _v23 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, bindValueLastIndex + 1, inValue); + var mappedInValue = _v23.a; + var inValueLastIndex = _v23.b; + return _Utils_Tuple2( + A4( + $author$project$Morphir$IR$Value$Destructure, + A2(f, baseIndex, a), + mappedBindPattern, + mappedBindValue, + mappedInValue), + inValueLastIndex); + case 'IfThenElse': + var a = value.a; + var condValue = value.b; + var thenValue = value.c; + var elseValue = value.d; + var _v24 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, baseIndex + 1, condValue); + var mappedCondValue = _v24.a; + var condValueLastIndex = _v24.b; + var _v25 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, condValueLastIndex + 1, thenValue); + var mappedThenValue = _v25.a; + var thenValueLastIndex = _v25.b; + var _v26 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, thenValueLastIndex + 1, elseValue); + var mappedElseValue = _v26.a; + var elseValueLastIndex = _v26.b; + return _Utils_Tuple2( + A4( + $author$project$Morphir$IR$Value$IfThenElse, + A2(f, baseIndex, a), + mappedCondValue, + mappedThenValue, + mappedElseValue), + elseValueLastIndex); + case 'PatternMatch': + var a = value.a; + var subjectValue = value.b; + var cases = value.c; + var _v27 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, baseIndex + 1, subjectValue); + var mappedSubjectValue = _v27.a; + var subjectValueLastIndex = _v27.b; + var _v28 = A3( + $author$project$Morphir$IR$Value$indexedMapListHelp, + F2( + function (fieldBaseIndex, _v29) { + var casePattern = _v29.a; + var caseBody = _v29.b; + var _v30 = A3($author$project$Morphir$IR$Value$indexedMapPattern, f, fieldBaseIndex, casePattern); + var mappedCasePattern = _v30.a; + var casePatternLastIndex = _v30.b; + var _v31 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, casePatternLastIndex + 1, caseBody); + var mappedCaseBody = _v31.a; + var caseBodyLastIndex = _v31.b; + return _Utils_Tuple2( + _Utils_Tuple2(mappedCasePattern, mappedCaseBody), + caseBodyLastIndex); + }), + subjectValueLastIndex + 1, + cases); + var mappedCases = _v28.a; + var casesLastIndex = _v28.b; + return _Utils_Tuple2( + A3( + $author$project$Morphir$IR$Value$PatternMatch, + A2(f, baseIndex, a), + mappedSubjectValue, + mappedCases), + casesLastIndex); + case 'UpdateRecord': + var a = value.a; + var subjectValue = value.b; + var fields = value.c; + var _v32 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, baseIndex + 1, subjectValue); + var mappedSubjectValue = _v32.a; + var subjectValueLastIndex = _v32.b; + var _v33 = A3( + $author$project$Morphir$IR$Value$indexedMapListHelp, + F2( + function (fieldBaseIndex, _v34) { + var fieldName = _v34.a; + var fieldValue = _v34.b; + var _v35 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, fieldBaseIndex, fieldValue); + var mappedFieldValue = _v35.a; + var lastFieldIndex = _v35.b; + return _Utils_Tuple2( + _Utils_Tuple2(fieldName, mappedFieldValue), + lastFieldIndex); + }), + subjectValueLastIndex + 1, + fields); + var mappedFields = _v33.a; + var valuesLastIndex = _v33.b; + return _Utils_Tuple2( + A3( + $author$project$Morphir$IR$Value$UpdateRecord, + A2(f, baseIndex, a), + mappedSubjectValue, + mappedFields), + valuesLastIndex); + default: + var a = value.a; + return _Utils_Tuple2( + $author$project$Morphir$IR$Value$Unit( + A2(f, baseIndex, a)), + baseIndex); + } + }); +var $author$project$Morphir$Visual$VisualTypedValue$typedToVisualTypedValue = function (typedValue) { + return A3($author$project$Morphir$IR$Value$indexedMapValue, $elm$core$Tuple$pair, 0, typedValue).a; +}; +var $elm$core$Basics$always = F2( + function (a, _v0) { + return a; + }); +var $mdgriffith$elm_ui$Internal$Model$Below = {$: 'Below'}; +var $mdgriffith$elm_ui$Internal$Model$Nearby = F2( + function (a, b) { + return {$: 'Nearby', a: a, b: b}; + }); +var $mdgriffith$elm_ui$Internal$Model$NoAttribute = {$: 'NoAttribute'}; +var $mdgriffith$elm_ui$Element$createNearby = F2( + function (loc, element) { + if (element.$ === 'Empty') { + return $mdgriffith$elm_ui$Internal$Model$NoAttribute; + } else { + return A2($mdgriffith$elm_ui$Internal$Model$Nearby, loc, element); + } + }); +var $mdgriffith$elm_ui$Element$below = function (element) { + return A2($mdgriffith$elm_ui$Element$createNearby, $mdgriffith$elm_ui$Internal$Model$Below, element); +}; +var $author$project$Morphir$IR$SDK$Basics$moduleName = $author$project$Morphir$IR$Path$fromString('Basics'); +var $author$project$Morphir$IR$SDK$Basics$boolType = function (attributes) { + return A3( + $author$project$Morphir$IR$Type$Reference, + attributes, + A2($author$project$Morphir$IR$SDK$Common$toFQName, $author$project$Morphir$IR$SDK$Basics$moduleName, 'Bool'), + _List_Nil); +}; +var $mdgriffith$elm_ui$Internal$Flag$fontAlignment = $mdgriffith$elm_ui$Internal$Flag$flag(12); +var $mdgriffith$elm_ui$Element$Font$center = A2($mdgriffith$elm_ui$Internal$Model$Class, $mdgriffith$elm_ui$Internal$Flag$fontAlignment, $mdgriffith$elm_ui$Internal$Style$classes.textCenter); +var $author$project$Morphir$IR$Value$definitionToValue = function (def) { + var _v0 = def.inputTypes; + if (!_v0.b) { + return def.body; + } else { + var _v1 = _v0.a; + var firstArgName = _v1.a; + var restOfArgs = _v0.b; + return A3( + $author$project$Morphir$IR$Value$Lambda, + _Utils_Tuple0, + A3( + $author$project$Morphir$IR$Value$AsPattern, + _Utils_Tuple0, + $author$project$Morphir$IR$Value$WildcardPattern(_Utils_Tuple0), + firstArgName), + $author$project$Morphir$IR$Value$definitionToValue( + _Utils_update( + def, + {inputTypes: restOfArgs}))); + } +}; +var $author$project$Morphir$Value$Error$BindPatternDidNotMatch = F2( + function (a, b) { + return {$: 'BindPatternDidNotMatch', a: a, b: b}; + }); +var $author$project$Morphir$Value$Error$ErrorWhileEvaluatingReference = F2( + function (a, b) { + return {$: 'ErrorWhileEvaluatingReference', a: a, b: b}; + }); +var $author$project$Morphir$Value$Error$ErrorWhileEvaluatingVariable = F2( + function (a, b) { + return {$: 'ErrorWhileEvaluatingVariable', a: a, b: b}; + }); +var $author$project$Morphir$Value$Error$ExactlyOneArgumentExpected = function (a) { + return {$: 'ExactlyOneArgumentExpected', a: a}; +}; +var $author$project$Morphir$Value$Error$FieldNotFound = F2( + function (a, b) { + return {$: 'FieldNotFound', a: a, b: b}; + }); +var $author$project$Morphir$Value$Error$IfThenElseConditionShouldEvaluateToBool = F2( + function (a, b) { + return {$: 'IfThenElseConditionShouldEvaluateToBool', a: a, b: b}; + }); +var $author$project$Morphir$Value$Error$LambdaArgumentDidNotMatch = function (a) { + return {$: 'LambdaArgumentDidNotMatch', a: a}; +}; +var $author$project$Morphir$Value$Error$NoArgumentToPassToLambda = {$: 'NoArgumentToPassToLambda'}; +var $author$project$Morphir$Value$Error$NoPatternsMatch = F2( + function (a, b) { + return {$: 'NoPatternsMatch', a: a, b: b}; + }); +var $author$project$Morphir$Value$Error$RecordExpected = F2( + function (a, b) { + return {$: 'RecordExpected', a: a, b: b}; + }); +var $author$project$Morphir$Value$Error$ReferenceNotFound = function (a) { + return {$: 'ReferenceNotFound', a: a}; +}; +var $author$project$Morphir$Value$Error$VariableNotFound = function (a) { + return {$: 'VariableNotFound', a: a}; +}; +var $author$project$Morphir$IR$lookupValueDefinition = F2( + function (fqn, ir) { + return A2($elm$core$Dict$get, fqn, ir.valueDefinitions); + }); +var $elm$core$Dict$map = F2( + function (func, dict) { + if (dict.$ === 'RBEmpty_elm_builtin') { + return $elm$core$Dict$RBEmpty_elm_builtin; + } else { + var color = dict.a; + var key = dict.b; + var value = dict.c; + var left = dict.d; + var right = dict.e; + return A5( + $elm$core$Dict$RBNode_elm_builtin, + color, + key, + A2(func, key, value), + A2($elm$core$Dict$map, func, left), + A2($elm$core$Dict$map, func, right)); + } + }); +var $author$project$Morphir$Value$Error$PatternMismatch = F2( + function (a, b) { + return {$: 'PatternMismatch', a: a, b: b}; + }); +var $author$project$Morphir$Value$Interpreter$matchPattern = F2( + function (pattern, value) { + var error = $elm$core$Result$Err( + A2($author$project$Morphir$Value$Error$PatternMismatch, pattern, value)); + switch (pattern.$) { + case 'WildcardPattern': + return $elm$core$Result$Ok($elm$core$Dict$empty); + case 'AsPattern': + var subjectPattern = pattern.b; + var alias = pattern.c; + return A2( + $elm$core$Result$map, + function (subjectVariables) { + return A3($elm$core$Dict$insert, alias, value, subjectVariables); + }, + A2($author$project$Morphir$Value$Interpreter$matchPattern, subjectPattern, value)); + case 'TuplePattern': + var elemPatterns = pattern.b; + if (value.$ === 'Tuple') { + var elemValues = value.b; + var valueLength = $elm$core$List$length(elemValues); + var patternLength = $elm$core$List$length(elemPatterns); + return _Utils_eq(patternLength, valueLength) ? A2( + $elm$core$Result$map, + A2($elm$core$List$foldl, $elm$core$Dict$union, $elm$core$Dict$empty), + $author$project$Morphir$ListOfResults$liftFirstError( + A3($elm$core$List$map2, $author$project$Morphir$Value$Interpreter$matchPattern, elemPatterns, elemValues))) : error; + } else { + return error; + } + case 'ConstructorPattern': + var ctorPatternFQName = pattern.b; + var argPatterns = pattern.c; + var uncurry = function (v) { + if (v.$ === 'Apply') { + var f = v.b; + var a = v.c; + var _v3 = uncurry(f); + var nestedV = _v3.a; + var nestedArgs = _v3.b; + return _Utils_Tuple2( + nestedV, + _Utils_ap( + nestedArgs, + _List_fromArray( + [a]))); + } else { + return _Utils_Tuple2(v, _List_Nil); + } + }; + var _v4 = uncurry(value); + var ctorValue = _v4.a; + var argValues = _v4.b; + if (ctorValue.$ === 'Constructor') { + var ctorFQName = ctorValue.b; + if (_Utils_eq(ctorPatternFQName, ctorFQName)) { + var valueLength = $elm$core$List$length(argValues); + var patternLength = $elm$core$List$length(argPatterns); + return _Utils_eq(patternLength, valueLength) ? A2( + $elm$core$Result$map, + A2($elm$core$List$foldl, $elm$core$Dict$union, $elm$core$Dict$empty), + $author$project$Morphir$ListOfResults$liftFirstError( + A3($elm$core$List$map2, $author$project$Morphir$Value$Interpreter$matchPattern, argPatterns, argValues))) : error; + } else { + return error; + } + } else { + return error; + } + case 'EmptyListPattern': + if ((value.$ === 'List') && (!value.b.b)) { + return $elm$core$Result$Ok($elm$core$Dict$empty); + } else { + return error; + } + case 'HeadTailPattern': + var headPattern = pattern.b; + var tailPattern = pattern.c; + if ((value.$ === 'List') && value.b.b) { + var a = value.a; + var _v8 = value.b; + var headValue = _v8.a; + var tailValue = _v8.b; + return A3( + $elm$core$Result$map2, + $elm$core$Dict$union, + A2($author$project$Morphir$Value$Interpreter$matchPattern, headPattern, headValue), + A2( + $author$project$Morphir$Value$Interpreter$matchPattern, + tailPattern, + A2($author$project$Morphir$IR$Value$List, a, tailValue))); + } else { + return error; + } + case 'LiteralPattern': + var matchLiteral = pattern.b; + if (value.$ === 'Literal') { + var valueLiteral = value.b; + return _Utils_eq(matchLiteral, valueLiteral) ? $elm$core$Result$Ok($elm$core$Dict$empty) : error; + } else { + return error; + } + default: + if (value.$ === 'Unit') { + return $elm$core$Result$Ok($elm$core$Dict$empty); + } else { + return error; + } + } + }); +var $author$project$Morphir$IR$resolveAliases = F2( + function (fQName, ir) { + return A2( + $elm$core$Maybe$withDefault, + fQName, + A2( + $elm$core$Maybe$map, + function (typeSpec) { + if ((typeSpec.$ === 'TypeAliasSpecification') && (typeSpec.b.$ === 'Reference')) { + var _v1 = typeSpec.b; + var aliasFQName = _v1.b; + return aliasFQName; + } else { + return fQName; + } + }, + A2($author$project$Morphir$IR$lookupTypeSpecification, fQName, ir))); + }); +var $author$project$Morphir$IR$Value$mapPatternAttributes = F2( + function (f, p) { + switch (p.$) { + case 'WildcardPattern': + var a = p.a; + return $author$project$Morphir$IR$Value$WildcardPattern( + f(a)); + case 'AsPattern': + var a = p.a; + var p2 = p.b; + var name = p.c; + return A3( + $author$project$Morphir$IR$Value$AsPattern, + f(a), + A2($author$project$Morphir$IR$Value$mapPatternAttributes, f, p2), + name); + case 'TuplePattern': + var a = p.a; + var elementPatterns = p.b; + return A2( + $author$project$Morphir$IR$Value$TuplePattern, + f(a), + A2( + $elm$core$List$map, + $author$project$Morphir$IR$Value$mapPatternAttributes(f), + elementPatterns)); + case 'ConstructorPattern': + var a = p.a; + var constructorName = p.b; + var argumentPatterns = p.c; + return A3( + $author$project$Morphir$IR$Value$ConstructorPattern, + f(a), + constructorName, + A2( + $elm$core$List$map, + $author$project$Morphir$IR$Value$mapPatternAttributes(f), + argumentPatterns)); + case 'EmptyListPattern': + var a = p.a; + return $author$project$Morphir$IR$Value$EmptyListPattern( + f(a)); + case 'HeadTailPattern': + var a = p.a; + var headPattern = p.b; + var tailPattern = p.c; + return A3( + $author$project$Morphir$IR$Value$HeadTailPattern, + f(a), + A2($author$project$Morphir$IR$Value$mapPatternAttributes, f, headPattern), + A2($author$project$Morphir$IR$Value$mapPatternAttributes, f, tailPattern)); + case 'LiteralPattern': + var a = p.a; + var value = p.b; + return A2( + $author$project$Morphir$IR$Value$LiteralPattern, + f(a), + value); + default: + var a = p.a; + return $author$project$Morphir$IR$Value$UnitPattern( + f(a)); + } + }); +var $author$project$Morphir$IR$Type$mapFieldType = F2( + function (f, field) { + return A2( + $author$project$Morphir$IR$Type$Field, + field.name, + f(field.tpe)); + }); +var $author$project$Morphir$IR$Type$mapTypeAttributes = F2( + function (f, tpe) { + switch (tpe.$) { + case 'Variable': + var a = tpe.a; + var name = tpe.b; + return A2( + $author$project$Morphir$IR$Type$Variable, + f(a), + name); + case 'Reference': + var a = tpe.a; + var fQName = tpe.b; + var argTypes = tpe.c; + return A3( + $author$project$Morphir$IR$Type$Reference, + f(a), + fQName, + A2( + $elm$core$List$map, + $author$project$Morphir$IR$Type$mapTypeAttributes(f), + argTypes)); + case 'Tuple': + var a = tpe.a; + var elemTypes = tpe.b; + return A2( + $author$project$Morphir$IR$Type$Tuple, + f(a), + A2( + $elm$core$List$map, + $author$project$Morphir$IR$Type$mapTypeAttributes(f), + elemTypes)); + case 'Record': + var a = tpe.a; + var fields = tpe.b; + return A2( + $author$project$Morphir$IR$Type$Record, + f(a), + A2( + $elm$core$List$map, + $author$project$Morphir$IR$Type$mapFieldType( + $author$project$Morphir$IR$Type$mapTypeAttributes(f)), + fields)); + case 'ExtensibleRecord': + var a = tpe.a; + var name = tpe.b; + var fields = tpe.c; + return A3( + $author$project$Morphir$IR$Type$ExtensibleRecord, + f(a), + name, + A2( + $elm$core$List$map, + $author$project$Morphir$IR$Type$mapFieldType( + $author$project$Morphir$IR$Type$mapTypeAttributes(f)), + fields)); + case 'Function': + var a = tpe.a; + var argType = tpe.b; + var returnType = tpe.c; + return A3( + $author$project$Morphir$IR$Type$Function, + f(a), + A2($author$project$Morphir$IR$Type$mapTypeAttributes, f, argType), + A2($author$project$Morphir$IR$Type$mapTypeAttributes, f, returnType)); + default: + var a = tpe.a; + return $author$project$Morphir$IR$Type$Unit( + f(a)); + } + }); +var $author$project$Morphir$IR$Value$mapDefinitionAttributes = F3( + function (f, g, d) { + return A3( + $author$project$Morphir$IR$Value$Definition, + A2( + $elm$core$List$map, + function (_v5) { + var name = _v5.a; + var attr = _v5.b; + var tpe = _v5.c; + return _Utils_Tuple3( + name, + g(attr), + A2($author$project$Morphir$IR$Type$mapTypeAttributes, f, tpe)); + }, + d.inputTypes), + A2($author$project$Morphir$IR$Type$mapTypeAttributes, f, d.outputType), + A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, d.body)); + }); +var $author$project$Morphir$IR$Value$mapValueAttributes = F3( + function (f, g, v) { + switch (v.$) { + case 'Literal': + var a = v.a; + var value = v.b; + return A2( + $author$project$Morphir$IR$Value$Literal, + g(a), + value); + case 'Constructor': + var a = v.a; + var fullyQualifiedName = v.b; + return A2( + $author$project$Morphir$IR$Value$Constructor, + g(a), + fullyQualifiedName); + case 'Tuple': + var a = v.a; + var elements = v.b; + return A2( + $author$project$Morphir$IR$Value$Tuple, + g(a), + A2( + $elm$core$List$map, + A2($author$project$Morphir$IR$Value$mapValueAttributes, f, g), + elements)); + case 'List': + var a = v.a; + var items = v.b; + return A2( + $author$project$Morphir$IR$Value$List, + g(a), + A2( + $elm$core$List$map, + A2($author$project$Morphir$IR$Value$mapValueAttributes, f, g), + items)); + case 'Record': + var a = v.a; + var fields = v.b; + return A2( + $author$project$Morphir$IR$Value$Record, + g(a), + A2( + $elm$core$List$map, + function (_v1) { + var fieldName = _v1.a; + var fieldValue = _v1.b; + return _Utils_Tuple2( + fieldName, + A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, fieldValue)); + }, + fields)); + case 'Variable': + var a = v.a; + var name = v.b; + return A2( + $author$project$Morphir$IR$Value$Variable, + g(a), + name); + case 'Reference': + var a = v.a; + var fullyQualifiedName = v.b; + return A2( + $author$project$Morphir$IR$Value$Reference, + g(a), + fullyQualifiedName); + case 'Field': + var a = v.a; + var subjectValue = v.b; + var fieldName = v.c; + return A3( + $author$project$Morphir$IR$Value$Field, + g(a), + A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, subjectValue), + fieldName); + case 'FieldFunction': + var a = v.a; + var fieldName = v.b; + return A2( + $author$project$Morphir$IR$Value$FieldFunction, + g(a), + fieldName); + case 'Apply': + var a = v.a; + var _function = v.b; + var argument = v.c; + return A3( + $author$project$Morphir$IR$Value$Apply, + g(a), + A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, _function), + A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, argument)); + case 'Lambda': + var a = v.a; + var argumentPattern = v.b; + var body = v.c; + return A3( + $author$project$Morphir$IR$Value$Lambda, + g(a), + A2($author$project$Morphir$IR$Value$mapPatternAttributes, g, argumentPattern), + A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, body)); + case 'LetDefinition': + var a = v.a; + var valueName = v.b; + var valueDefinition = v.c; + var inValue = v.d; + return A4( + $author$project$Morphir$IR$Value$LetDefinition, + g(a), + valueName, + A3($author$project$Morphir$IR$Value$mapDefinitionAttributes, f, g, valueDefinition), + A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, inValue)); + case 'LetRecursion': + var a = v.a; + var valueDefinitions = v.b; + var inValue = v.c; + return A3( + $author$project$Morphir$IR$Value$LetRecursion, + g(a), + A2( + $elm$core$Dict$map, + F2( + function (_v2, def) { + return A3($author$project$Morphir$IR$Value$mapDefinitionAttributes, f, g, def); + }), + valueDefinitions), + A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, inValue)); + case 'Destructure': + var a = v.a; + var pattern = v.b; + var valueToDestruct = v.c; + var inValue = v.d; + return A4( + $author$project$Morphir$IR$Value$Destructure, + g(a), + A2($author$project$Morphir$IR$Value$mapPatternAttributes, g, pattern), + A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, valueToDestruct), + A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, inValue)); + case 'IfThenElse': + var a = v.a; + var condition = v.b; + var thenBranch = v.c; + var elseBranch = v.d; + return A4( + $author$project$Morphir$IR$Value$IfThenElse, + g(a), + A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, condition), + A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, thenBranch), + A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, elseBranch)); + case 'PatternMatch': + var a = v.a; + var branchOutOn = v.b; + var cases = v.c; + return A3( + $author$project$Morphir$IR$Value$PatternMatch, + g(a), + A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, branchOutOn), + A2( + $elm$core$List$map, + function (_v3) { + var pattern = _v3.a; + var body = _v3.b; + return _Utils_Tuple2( + A2($author$project$Morphir$IR$Value$mapPatternAttributes, g, pattern), + A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, body)); + }, + cases)); + case 'UpdateRecord': + var a = v.a; + var valueToUpdate = v.b; + var fieldsToUpdate = v.c; + return A3( + $author$project$Morphir$IR$Value$UpdateRecord, + g(a), + A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, valueToUpdate), + A2( + $elm$core$List$map, + function (_v4) { + var fieldName = _v4.a; + var fieldValue = _v4.b; + return _Utils_Tuple2( + fieldName, + A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, fieldValue)); + }, + fieldsToUpdate)); + default: + var a = v.a; + return $author$project$Morphir$IR$Value$Unit( + g(a)); + } + }); +var $author$project$Morphir$IR$Value$toRawValue = function (value) { + return A3( + $author$project$Morphir$IR$Value$mapValueAttributes, + $elm$core$Basics$always(_Utils_Tuple0), + $elm$core$Basics$always(_Utils_Tuple0), + value); +}; +var $author$project$Morphir$Value$Interpreter$evaluateValue = F5( + function (nativeFunctions, ir, variables, _arguments, value) { + evaluateValue: + while (true) { + switch (value.$) { + case 'Literal': + return $elm$core$Result$Ok(value); + case 'Constructor': + var fQName = value.b; + var _v1 = A2( + $author$project$Morphir$IR$lookupTypeSpecification, + A2($author$project$Morphir$IR$resolveAliases, fQName, ir), + ir); + if (((_v1.$ === 'Just') && (_v1.a.$ === 'TypeAliasSpecification')) && (_v1.a.b.$ === 'Record')) { + var _v2 = _v1.a; + var _v3 = _v2.b; + var fields = _v3.b; + return $elm$core$Result$Ok( + A2( + $author$project$Morphir$IR$Value$Record, + _Utils_Tuple0, + A3( + $elm$core$List$map2, + $elm$core$Tuple$pair, + A2( + $elm$core$List$map, + function ($) { + return $.name; + }, + fields), + _arguments))); + } else { + var applyArgs = F2( + function (subject, argsReversed) { + if (!argsReversed.b) { + return subject; + } else { + var lastArg = argsReversed.a; + var restOfArgsReversed = argsReversed.b; + return A3( + $author$project$Morphir$IR$Value$Apply, + _Utils_Tuple0, + A2(applyArgs, subject, restOfArgsReversed), + lastArg); + } + }); + return $elm$core$Result$Ok( + A2( + applyArgs, + value, + $elm$core$List$reverse(_arguments))); + } + case 'Tuple': + var elems = value.b; + return A2( + $elm$core$Result$map, + $author$project$Morphir$IR$Value$Tuple(_Utils_Tuple0), + $author$project$Morphir$ListOfResults$liftFirstError( + A2( + $elm$core$List$map, + A4($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil), + elems))); + case 'List': + var items = value.b; + return A2( + $elm$core$Result$map, + $author$project$Morphir$IR$Value$List(_Utils_Tuple0), + $author$project$Morphir$ListOfResults$liftFirstError( + A2( + $elm$core$List$map, + A4($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil), + items))); + case 'Record': + var fields = value.b; + return A2( + $elm$core$Result$map, + $author$project$Morphir$IR$Value$Record(_Utils_Tuple0), + $author$project$Morphir$ListOfResults$liftFirstError( + A2( + $elm$core$List$map, + function (_v5) { + var fieldName = _v5.a; + var fieldValue = _v5.b; + return A2( + $elm$core$Result$map, + $elm$core$Tuple$pair(fieldName), + A5($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil, fieldValue)); + }, + fields))); + case 'Variable': + var varName = value.b; + return A2( + $elm$core$Result$mapError, + $author$project$Morphir$Value$Error$ErrorWhileEvaluatingVariable(varName), + A2( + $elm$core$Result$andThen, + A4($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil), + A2( + $elm$core$Result$fromMaybe, + $author$project$Morphir$Value$Error$VariableNotFound(varName), + A2($elm$core$Dict$get, varName, variables)))); + case 'Reference': + var fQName = value.b; + var packageName = fQName.a; + var moduleName = fQName.b; + var localName = fQName.c; + var _v6 = A2( + $elm$core$Dict$get, + _Utils_Tuple3(packageName, moduleName, localName), + nativeFunctions); + if (_v6.$ === 'Just') { + var nativeFunction = _v6.a; + return A2( + $elm$core$Result$mapError, + $author$project$Morphir$Value$Error$ErrorWhileEvaluatingReference(fQName), + A2( + nativeFunction, + A4($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil), + _arguments)); + } else { + return A2( + $elm$core$Result$andThen, + function (referredValue) { + var rawValue = $author$project$Morphir$IR$Value$toRawValue(referredValue.body); + return A2( + $elm$core$Result$andThen, + function (evaluatedArgs) { + return A5($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, $elm$core$Dict$empty, evaluatedArgs, rawValue); + }, + A2( + $elm$core$Result$mapError, + $author$project$Morphir$Value$Error$ErrorWhileEvaluatingReference(fQName), + $author$project$Morphir$ListOfResults$liftFirstError( + A2( + $elm$core$List$map, + A4($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil), + _arguments)))); + }, + A2( + $elm$core$Result$fromMaybe, + $author$project$Morphir$Value$Error$ReferenceNotFound( + _Utils_Tuple3(packageName, moduleName, localName)), + A2( + $author$project$Morphir$IR$lookupValueDefinition, + _Utils_Tuple3(packageName, moduleName, localName), + ir))); + } + case 'Field': + var subjectValue = value.b; + var fieldName = value.c; + return A2( + $elm$core$Result$andThen, + function (evaluatedSubjectValue) { + if (evaluatedSubjectValue.$ === 'Record') { + var fields = evaluatedSubjectValue.b; + return A2( + $elm$core$Result$fromMaybe, + A2($author$project$Morphir$Value$Error$FieldNotFound, subjectValue, fieldName), + A2( + $elm$core$Dict$get, + fieldName, + $elm$core$Dict$fromList(fields))); + } else { + return $elm$core$Result$Err( + A2($author$project$Morphir$Value$Error$RecordExpected, subjectValue, evaluatedSubjectValue)); + } + }, + A5($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil, subjectValue)); + case 'FieldFunction': + var fieldName = value.b; + if (_arguments.b && (!_arguments.b.b)) { + var subjectValue = _arguments.a; + return A2( + $elm$core$Result$andThen, + function (evaluatedSubjectValue) { + if (evaluatedSubjectValue.$ === 'Record') { + var fields = evaluatedSubjectValue.b; + return A2( + $elm$core$Result$fromMaybe, + A2($author$project$Morphir$Value$Error$FieldNotFound, subjectValue, fieldName), + A2( + $elm$core$Dict$get, + fieldName, + $elm$core$Dict$fromList(fields))); + } else { + return $elm$core$Result$Err( + A2($author$project$Morphir$Value$Error$RecordExpected, subjectValue, evaluatedSubjectValue)); + } + }, + A5($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil, subjectValue)); + } else { + var other = _arguments; + return $elm$core$Result$Err( + $author$project$Morphir$Value$Error$ExactlyOneArgumentExpected(other)); + } + case 'Apply': + var _function = value.b; + var argument = value.c; + var $temp$nativeFunctions = nativeFunctions, + $temp$ir = ir, + $temp$variables = variables, + $temp$arguments = A2($elm$core$List$cons, argument, _arguments), + $temp$value = _function; + nativeFunctions = $temp$nativeFunctions; + ir = $temp$ir; + variables = $temp$variables; + _arguments = $temp$arguments; + value = $temp$value; + continue evaluateValue; + case 'Lambda': + var argumentPattern = value.b; + var body = value.c; + return A2( + $elm$core$Result$andThen, + function (argumentVariables) { + return A5( + $author$project$Morphir$Value$Interpreter$evaluateValue, + nativeFunctions, + ir, + A2($elm$core$Dict$union, argumentVariables, variables), + _List_Nil, + body); + }, + A2( + $elm$core$Result$andThen, + function (argumentValue) { + return A2( + $elm$core$Result$mapError, + $author$project$Morphir$Value$Error$LambdaArgumentDidNotMatch, + A2($author$project$Morphir$Value$Interpreter$matchPattern, argumentPattern, argumentValue)); + }, + A2( + $elm$core$Result$fromMaybe, + $author$project$Morphir$Value$Error$NoArgumentToPassToLambda, + $elm$core$List$head(_arguments)))); + case 'LetDefinition': + var defName = value.b; + var def = value.c; + var inValue = value.d; + return A2( + $elm$core$Result$andThen, + function (defValue) { + return A5( + $author$project$Morphir$Value$Interpreter$evaluateValue, + nativeFunctions, + ir, + A3($elm$core$Dict$insert, defName, defValue, variables), + _List_Nil, + inValue); + }, + A5( + $author$project$Morphir$Value$Interpreter$evaluateValue, + nativeFunctions, + ir, + variables, + _List_Nil, + $author$project$Morphir$IR$Value$definitionToValue(def))); + case 'LetRecursion': + var defs = value.b; + var inValue = value.c; + var defVariables = A2( + $elm$core$Dict$map, + F2( + function (_v10, def) { + return $author$project$Morphir$IR$Value$definitionToValue(def); + }), + defs); + var $temp$nativeFunctions = nativeFunctions, + $temp$ir = ir, + $temp$variables = A2($elm$core$Dict$union, defVariables, variables), + $temp$arguments = _List_Nil, + $temp$value = inValue; + nativeFunctions = $temp$nativeFunctions; + ir = $temp$ir; + variables = $temp$variables; + _arguments = $temp$arguments; + value = $temp$value; + continue evaluateValue; + case 'Destructure': + var bindPattern = value.b; + var bindValue = value.c; + var inValue = value.d; + return A2( + $elm$core$Result$andThen, + function (bindVariables) { + return A5( + $author$project$Morphir$Value$Interpreter$evaluateValue, + nativeFunctions, + ir, + A2($elm$core$Dict$union, bindVariables, variables), + _List_Nil, + inValue); + }, + A2( + $elm$core$Result$andThen, + A2( + $elm$core$Basics$composeR, + $author$project$Morphir$Value$Interpreter$matchPattern(bindPattern), + $elm$core$Result$mapError( + $author$project$Morphir$Value$Error$BindPatternDidNotMatch(bindValue))), + A5($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil, bindValue))); + case 'IfThenElse': + var condition = value.b; + var thenBranch = value.c; + var elseBranch = value.d; + return A2( + $elm$core$Result$andThen, + function (conditionValue) { + if ((conditionValue.$ === 'Literal') && (conditionValue.b.$ === 'BoolLiteral')) { + var conditionTrue = conditionValue.b.a; + var branchToFollow = conditionTrue ? thenBranch : elseBranch; + return A5($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil, branchToFollow); + } else { + return $elm$core$Result$Err( + A2($author$project$Morphir$Value$Error$IfThenElseConditionShouldEvaluateToBool, condition, conditionValue)); + } + }, + A5($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil, condition)); + case 'PatternMatch': + var subjectValue = value.b; + var cases = value.c; + var findMatch = F2( + function (remainingCases, evaluatedSubject) { + findMatch: + while (true) { + if (remainingCases.b) { + var _v13 = remainingCases.a; + var nextPattern = _v13.a; + var nextBody = _v13.b; + var restOfCases = remainingCases.b; + var _v14 = A2($author$project$Morphir$Value$Interpreter$matchPattern, nextPattern, evaluatedSubject); + if (_v14.$ === 'Ok') { + var patternVariables = _v14.a; + return A5( + $author$project$Morphir$Value$Interpreter$evaluateValue, + nativeFunctions, + ir, + A2($elm$core$Dict$union, patternVariables, variables), + _List_Nil, + nextBody); + } else { + var $temp$remainingCases = restOfCases, + $temp$evaluatedSubject = evaluatedSubject; + remainingCases = $temp$remainingCases; + evaluatedSubject = $temp$evaluatedSubject; + continue findMatch; + } + } else { + return $elm$core$Result$Err( + A2( + $author$project$Morphir$Value$Error$NoPatternsMatch, + evaluatedSubject, + A2($elm$core$List$map, $elm$core$Tuple$first, cases))); + } + } + }); + return A2( + $elm$core$Result$andThen, + findMatch(cases), + A5($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil, subjectValue)); + case 'UpdateRecord': + var subjectValue = value.b; + var fieldUpdates = value.c; + return A2( + $elm$core$Result$andThen, + function (evaluatedSubjectValue) { + if (evaluatedSubjectValue.$ === 'Record') { + var fields = evaluatedSubjectValue.b; + return A2( + $elm$core$Result$map, + A2( + $elm$core$Basics$composeR, + $elm$core$Dict$toList, + $author$project$Morphir$IR$Value$Record(_Utils_Tuple0)), + A3( + $elm$core$List$foldl, + F2( + function (_v16, fieldsResultSoFar) { + var fieldName = _v16.a; + var newFieldValue = _v16.b; + return A2( + $elm$core$Result$andThen, + function (fieldsSoFar) { + return A2( + $elm$core$Result$andThen, + function (_v17) { + return A2( + $elm$core$Result$map, + function (evaluatedNewFieldValue) { + return A3($elm$core$Dict$insert, fieldName, evaluatedNewFieldValue, fieldsSoFar); + }, + A5($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil, newFieldValue)); + }, + A2( + $elm$core$Result$fromMaybe, + A2($author$project$Morphir$Value$Error$FieldNotFound, subjectValue, fieldName), + A2($elm$core$Dict$get, fieldName, fieldsSoFar))); + }, + fieldsResultSoFar); + }), + $elm$core$Result$Ok( + $elm$core$Dict$fromList(fields)), + fieldUpdates)); + } else { + return $elm$core$Result$Err( + A2($author$project$Morphir$Value$Error$RecordExpected, subjectValue, evaluatedSubjectValue)); + } + }, + A5($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil, subjectValue)); + default: + return $elm$core$Result$Ok(value); + } + } + }); +var $elm$core$Debug$toString = _Debug_toString; +var $author$project$Morphir$Visual$Config$evaluate = F2( + function (value, config) { + return A2( + $elm$core$Result$mapError, + function (error) { + return $elm$core$Debug$toString( + A2( + $elm$core$Debug$log, + $elm$core$String$concat( + _List_fromArray( + [ + 'Error while evaluating \'', + $elm$core$Debug$toString(value), + '\'' + ])), + error)); + }, + A5( + $author$project$Morphir$Value$Interpreter$evaluateValue, + config.irContext.nativeFunctions, + $author$project$Morphir$IR$fromDistribution(config.irContext.distribution), + config.state.variables, + _List_Nil, + value)); + }); +var $mdgriffith$elm_ui$Internal$Model$Fill = function (a) { + return {$: 'Fill', a: a}; +}; +var $mdgriffith$elm_ui$Element$fill = $mdgriffith$elm_ui$Internal$Model$Fill(1); +var $author$project$Morphir$Visual$Components$AritmeticExpressions$Add = {$: 'Add'}; +var $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticDivisionBranch = function (a) { + return {$: 'ArithmeticDivisionBranch', a: a}; +}; +var $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticOperatorBranch = F2( + function (a, b) { + return {$: 'ArithmeticOperatorBranch', a: a, b: b}; + }); +var $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticValueLeaf = function (a) { + return {$: 'ArithmeticValueLeaf', a: a}; +}; +var $author$project$Morphir$Visual$Components$AritmeticExpressions$Multiply = {$: 'Multiply'}; +var $author$project$Morphir$Visual$Components$AritmeticExpressions$Subtract = {$: 'Subtract'}; +var $author$project$Morphir$Visual$Components$AritmeticExpressions$functionName = F2( + function (moduleName, localName) { + return A2( + $elm$core$String$join, + '.', + _List_fromArray( + [ + A3($author$project$Morphir$IR$Path$toString, $author$project$Morphir$IR$Name$toTitleCase, '.', moduleName), + $author$project$Morphir$IR$Name$toCamelCase(localName) + ])); + }); +var $author$project$Morphir$IR$Value$uncurryApply = F2( + function (fun, lastArg) { + if (fun.$ === 'Apply') { + var nestedFun = fun.b; + var nestedArg = fun.c; + var _v1 = A2($author$project$Morphir$IR$Value$uncurryApply, nestedFun, nestedArg); + var f = _v1.a; + var initArgs = _v1.b; + return _Utils_Tuple2( + f, + A2( + $elm$core$List$append, + initArgs, + _List_fromArray( + [lastArg]))); + } else { + return _Utils_Tuple2( + fun, + _List_fromArray( + [lastArg])); + } + }); +var $author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion = F2( + function (value, operatorName) { + if (value.$ === 'Apply') { + var fun = value.b; + var arg = value.c; + var _v1 = A2($author$project$Morphir$IR$Value$uncurryApply, fun, arg); + var _function = _v1.a; + var args = _v1.b; + var _v2 = _Utils_Tuple2(_function, args); + if ((((_v2.a.$ === 'Reference') && _v2.b.b) && _v2.b.b.b) && (!_v2.b.b.b.b)) { + var _v3 = _v2.a; + var _v4 = _v3.b; + var moduleName = _v4.b; + var localName = _v4.c; + var _v5 = _v2.b; + var arg1 = _v5.a; + var _v6 = _v5.b; + var arg2 = _v6.a; + var _v7 = A2($author$project$Morphir$Visual$Components$AritmeticExpressions$functionName, moduleName, localName); + switch (_v7) { + case 'Basics.add': + return _List_fromArray( + [ + A2( + $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticOperatorBranch, + $author$project$Morphir$Visual$Components$AritmeticExpressions$Add, + _Utils_ap( + A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg1, operatorName), + A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg2, operatorName))) + ]); + case 'Basics.subtract': + return _List_fromArray( + [ + A2( + $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticOperatorBranch, + $author$project$Morphir$Visual$Components$AritmeticExpressions$Subtract, + _Utils_ap( + A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg1, operatorName), + A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg2, operatorName))) + ]); + case 'Basics.multiply': + return _List_fromArray( + [ + A2( + $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticOperatorBranch, + $author$project$Morphir$Visual$Components$AritmeticExpressions$Multiply, + _Utils_ap( + A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg1, operatorName), + A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg2, operatorName))) + ]); + case 'Basics.divide': + return _List_fromArray( + [ + $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticDivisionBranch( + _Utils_ap( + _List_fromArray( + [ + $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticValueLeaf(arg1) + ]), + A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg2, operatorName))) + ]); + default: + return _List_fromArray( + [ + $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticValueLeaf(value) + ]); + } + } else { + return _List_fromArray( + [ + $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticValueLeaf(value) + ]); + } + } else { + return _List_fromArray( + [ + $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticValueLeaf(value) + ]); + } + }); +var $author$project$Morphir$Visual$Components$AritmeticExpressions$fromArithmeticTypedValue = function (typedValue) { + if (typedValue.$ === 'Apply') { + var fun = typedValue.b; + var arg = typedValue.c; + var _v1 = A2($author$project$Morphir$IR$Value$uncurryApply, fun, arg); + var _function = _v1.a; + var args = _v1.b; + var _v2 = _Utils_Tuple2(_function, args); + if ((((_v2.a.$ === 'Reference') && _v2.b.b) && _v2.b.b.b) && (!_v2.b.b.b.b)) { + var _v3 = _v2.a; + var _v4 = _v3.b; + var moduleName = _v4.b; + var localName = _v4.c; + var _v5 = _v2.b; + var arg1 = _v5.a; + var _v6 = _v5.b; + var arg2 = _v6.a; + var operatorName = A2($author$project$Morphir$Visual$Components$AritmeticExpressions$functionName, moduleName, localName); + switch (operatorName) { + case 'Basics.add': + return A2( + $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticOperatorBranch, + $author$project$Morphir$Visual$Components$AritmeticExpressions$Add, + _Utils_ap( + A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg1, operatorName), + A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg2, operatorName))); + case 'Basics.subtract': + return A2( + $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticOperatorBranch, + $author$project$Morphir$Visual$Components$AritmeticExpressions$Subtract, + _Utils_ap( + A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg1, operatorName), + A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg2, operatorName))); + case 'Basics.divide': + return $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticDivisionBranch( + _Utils_ap( + _List_fromArray( + [ + $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticValueLeaf(arg1) + ]), + A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg2, operatorName))); + case 'Basics.multiply': + return A2( + $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticOperatorBranch, + $author$project$Morphir$Visual$Components$AritmeticExpressions$Multiply, + _Utils_ap( + A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg1, operatorName), + A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg2, operatorName))); + default: + return $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticValueLeaf(typedValue); + } + } else { + return $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticValueLeaf(typedValue); + } + } else { + return $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticValueLeaf(typedValue); + } +}; +var $author$project$Morphir$Visual$BoolOperatorTree$And = {$: 'And'}; +var $author$project$Morphir$Visual$BoolOperatorTree$BoolOperatorBranch = F2( + function (a, b) { + return {$: 'BoolOperatorBranch', a: a, b: b}; + }); +var $author$project$Morphir$Visual$BoolOperatorTree$BoolValueLeaf = function (a) { + return {$: 'BoolValueLeaf', a: a}; +}; +var $author$project$Morphir$Visual$BoolOperatorTree$Or = {$: 'Or'}; +var $author$project$Morphir$Visual$BoolOperatorTree$functionName = F2( + function (moduleName, localName) { + return A2( + $elm$core$String$join, + '.', + _List_fromArray( + [ + A3($author$project$Morphir$IR$Path$toString, $author$project$Morphir$IR$Name$toTitleCase, '.', moduleName), + $author$project$Morphir$IR$Name$toCamelCase(localName) + ])); + }); +var $author$project$Morphir$Visual$BoolOperatorTree$fromTypedValue = function (typedValue) { + if (typedValue.$ === 'Apply') { + var fun = typedValue.b; + var arg = typedValue.c; + var _v8 = A2($author$project$Morphir$IR$Value$uncurryApply, fun, arg); + var _function = _v8.a; + var args = _v8.b; + var _v9 = _Utils_Tuple2(_function, args); + if ((((_v9.a.$ === 'Reference') && _v9.b.b) && _v9.b.b.b) && (!_v9.b.b.b.b)) { + var _v10 = _v9.a; + var _v11 = _v10.b; + var moduleName = _v11.b; + var localName = _v11.c; + var _v12 = _v9.b; + var arg1 = _v12.a; + var _v13 = _v12.b; + var arg2 = _v13.a; + var operatorName = A2($author$project$Morphir$Visual$BoolOperatorTree$functionName, moduleName, localName); + switch (operatorName) { + case 'Basics.or': + return A2( + $author$project$Morphir$Visual$BoolOperatorTree$BoolOperatorBranch, + $author$project$Morphir$Visual$BoolOperatorTree$Or, + A2($author$project$Morphir$Visual$BoolOperatorTree$helperFunction, typedValue, operatorName)); + case 'Basics.and': + return A2( + $author$project$Morphir$Visual$BoolOperatorTree$BoolOperatorBranch, + $author$project$Morphir$Visual$BoolOperatorTree$And, + A2($author$project$Morphir$Visual$BoolOperatorTree$helperFunction, typedValue, operatorName)); + default: + return $author$project$Morphir$Visual$BoolOperatorTree$BoolValueLeaf(typedValue); + } + } else { + return $author$project$Morphir$Visual$BoolOperatorTree$BoolValueLeaf(typedValue); + } + } else { + return $author$project$Morphir$Visual$BoolOperatorTree$BoolValueLeaf(typedValue); + } +}; +var $author$project$Morphir$Visual$BoolOperatorTree$helperFunction = F2( + function (value, operatorName) { + if (value.$ === 'Apply') { + var fun = value.b; + var arg = value.c; + var _v1 = A2($author$project$Morphir$IR$Value$uncurryApply, fun, arg); + var _function = _v1.a; + var args = _v1.b; + var _v2 = _Utils_Tuple2(_function, args); + if ((((_v2.a.$ === 'Reference') && _v2.b.b) && _v2.b.b.b) && (!_v2.b.b.b.b)) { + var _v3 = _v2.a; + var _v4 = _v3.b; + var moduleName = _v4.b; + var localName = _v4.c; + var _v5 = _v2.b; + var arg1 = _v5.a; + var _v6 = _v5.b; + var arg2 = _v6.a; + return _Utils_eq( + A2($author$project$Morphir$Visual$BoolOperatorTree$functionName, moduleName, localName), + operatorName) ? _Utils_ap( + A2($author$project$Morphir$Visual$BoolOperatorTree$helperFunction, arg1, operatorName), + A2($author$project$Morphir$Visual$BoolOperatorTree$helperFunction, arg2, operatorName)) : _List_fromArray( + [ + $author$project$Morphir$Visual$BoolOperatorTree$fromTypedValue(value) + ]); + } else { + return _List_fromArray( + [ + $author$project$Morphir$Visual$BoolOperatorTree$BoolValueLeaf(value) + ]); + } + } else { + return _List_fromArray( + [ + $author$project$Morphir$Visual$BoolOperatorTree$BoolValueLeaf(value) + ]); + } + }); +var $mdgriffith$elm_ui$Element$htmlAttribute = $mdgriffith$elm_ui$Internal$Model$Attr; +var $author$project$Morphir$IR$SDK$Basics$isNumber = function (tpe) { + _v0$2: + while (true) { + if ((((((((((((((((((((((tpe.$ === 'Reference') && tpe.b.a.b) && tpe.b.a.a.b) && (tpe.b.a.a.a === 'morphir')) && (!tpe.b.a.a.b.b)) && tpe.b.a.b.b) && tpe.b.a.b.a.b) && (tpe.b.a.b.a.a === 's')) && tpe.b.a.b.a.b.b) && (tpe.b.a.b.a.b.a === 'd')) && tpe.b.a.b.a.b.b.b) && (tpe.b.a.b.a.b.b.a === 'k')) && (!tpe.b.a.b.a.b.b.b.b)) && (!tpe.b.a.b.b.b)) && tpe.b.b.b) && tpe.b.b.a.b) && (tpe.b.b.a.a === 'basics')) && (!tpe.b.b.a.b.b)) && (!tpe.b.b.b.b)) && tpe.b.c.b) && (!tpe.b.c.b.b)) && (!tpe.c.b)) { + switch (tpe.b.c.a) { + case 'float': + var _v1 = tpe.b; + var _v2 = _v1.a; + var _v3 = _v2.a; + var _v4 = _v2.b; + var _v5 = _v4.a; + var _v6 = _v5.b; + var _v7 = _v6.b; + var _v8 = _v1.b; + var _v9 = _v8.a; + var _v10 = _v1.c; + return true; + case 'int': + var _v11 = tpe.b; + var _v12 = _v11.a; + var _v13 = _v12.a; + var _v14 = _v12.b; + var _v15 = _v14.a; + var _v16 = _v15.b; + var _v17 = _v16.b; + var _v18 = _v11.b; + var _v19 = _v18.a; + var _v20 = _v11.c; + return true; + default: + break _v0$2; + } + } else { + break _v0$2; + } + } + return false; +}; +var $elm$html$Html$Events$onMouseEnter = function (msg) { + return A2( + $elm$html$Html$Events$on, + 'mouseenter', + $elm$json$Json$Decode$succeed(msg)); +}; +var $mdgriffith$elm_ui$Element$Events$onMouseEnter = A2($elm$core$Basics$composeL, $mdgriffith$elm_ui$Internal$Model$Attr, $elm$html$Html$Events$onMouseEnter); +var $elm$html$Html$Events$onMouseLeave = function (msg) { + return A2( + $elm$html$Html$Events$on, + 'mouseleave', + $elm$json$Json$Decode$succeed(msg)); +}; +var $mdgriffith$elm_ui$Element$Events$onMouseLeave = A2($elm$core$Basics$composeL, $mdgriffith$elm_ui$Internal$Model$Attr, $elm$html$Html$Events$onMouseLeave); +var $author$project$Morphir$Type$MetaType$variableByIndex = function (i) { + return _Utils_Tuple3(_List_Nil, i, 0); +}; +var $author$project$Morphir$Type$Infer$annotateValue = F2( + function (baseIndex, untypedValue) { + return A3( + $author$project$Morphir$IR$Value$indexedMapValue, + F2( + function (index, va) { + return _Utils_Tuple2( + va, + $author$project$Morphir$Type$MetaType$variableByIndex(index)); + }), + baseIndex, + untypedValue); + }); +var $author$project$Morphir$IR$SDK$Basics$floatType = function (attributes) { + return A3( + $author$project$Morphir$IR$Type$Reference, + attributes, + A2($author$project$Morphir$IR$SDK$Common$toFQName, $author$project$Morphir$IR$SDK$Basics$moduleName, 'Float'), + _List_Nil); +}; +var $author$project$Morphir$IR$Value$rewriteValue = F2( + function (f, value) { + var _v0 = f(value); + if (_v0.$ === 'Just') { + var newValue = _v0.a; + return newValue; + } else { + switch (value.$) { + case 'Tuple': + var va = value.a; + var elems = value.b; + return A2( + $author$project$Morphir$IR$Value$Tuple, + va, + A2( + $elm$core$List$map, + $author$project$Morphir$IR$Value$rewriteValue(f), + elems)); + case 'List': + var va = value.a; + var items = value.b; + return A2( + $author$project$Morphir$IR$Value$List, + va, + A2( + $elm$core$List$map, + $author$project$Morphir$IR$Value$rewriteValue(f), + items)); + case 'Record': + var va = value.a; + var fields = value.b; + return A2( + $author$project$Morphir$IR$Value$Record, + va, + A2( + $elm$core$List$map, + function (_v2) { + var n = _v2.a; + var v = _v2.b; + return _Utils_Tuple2( + n, + A2($author$project$Morphir$IR$Value$rewriteValue, f, v)); + }, + fields)); + case 'Field': + var va = value.a; + var subject = value.b; + var name = value.c; + return A3( + $author$project$Morphir$IR$Value$Field, + va, + A2($author$project$Morphir$IR$Value$rewriteValue, f, subject), + name); + case 'Apply': + var va = value.a; + var fun = value.b; + var arg = value.c; + return A3( + $author$project$Morphir$IR$Value$Apply, + va, + A2($author$project$Morphir$IR$Value$rewriteValue, f, fun), + A2($author$project$Morphir$IR$Value$rewriteValue, f, arg)); + case 'Lambda': + var va = value.a; + var pattern = value.b; + var body = value.c; + return A3( + $author$project$Morphir$IR$Value$Lambda, + va, + pattern, + A2($author$project$Morphir$IR$Value$rewriteValue, f, body)); + case 'LetDefinition': + var va = value.a; + var defName = value.b; + var def = value.c; + var inValue = value.d; + return A4( + $author$project$Morphir$IR$Value$LetDefinition, + va, + defName, + _Utils_update( + def, + { + body: A2($author$project$Morphir$IR$Value$rewriteValue, f, def.body) + }), + A2($author$project$Morphir$IR$Value$rewriteValue, f, inValue)); + case 'LetRecursion': + var va = value.a; + var defs = value.b; + var inValue = value.c; + return A3( + $author$project$Morphir$IR$Value$LetRecursion, + va, + A2( + $elm$core$Dict$map, + F2( + function (_v3, def) { + return _Utils_update( + def, + { + body: A2($author$project$Morphir$IR$Value$rewriteValue, f, def.body) + }); + }), + defs), + A2($author$project$Morphir$IR$Value$rewriteValue, f, inValue)); + case 'Destructure': + var va = value.a; + var bindPattern = value.b; + var bindValue = value.c; + var inValue = value.d; + return A4( + $author$project$Morphir$IR$Value$Destructure, + va, + bindPattern, + A2($author$project$Morphir$IR$Value$rewriteValue, f, bindValue), + A2($author$project$Morphir$IR$Value$rewriteValue, f, inValue)); + case 'IfThenElse': + var va = value.a; + var condition = value.b; + var thenBranch = value.c; + var elseBranch = value.d; + return A4( + $author$project$Morphir$IR$Value$IfThenElse, + va, + A2($author$project$Morphir$IR$Value$rewriteValue, f, condition), + A2($author$project$Morphir$IR$Value$rewriteValue, f, thenBranch), + A2($author$project$Morphir$IR$Value$rewriteValue, f, elseBranch)); + case 'PatternMatch': + var va = value.a; + var subject = value.b; + var cases = value.c; + return A3( + $author$project$Morphir$IR$Value$PatternMatch, + va, + A2($author$project$Morphir$IR$Value$rewriteValue, f, subject), + A2( + $elm$core$List$map, + function (_v4) { + var p = _v4.a; + var v = _v4.b; + return _Utils_Tuple2( + p, + A2($author$project$Morphir$IR$Value$rewriteValue, f, v)); + }, + cases)); + case 'UpdateRecord': + var va = value.a; + var subject = value.b; + var fields = value.c; + return A3( + $author$project$Morphir$IR$Value$UpdateRecord, + va, + A2($author$project$Morphir$IR$Value$rewriteValue, f, subject), + A2( + $elm$core$List$map, + function (_v5) { + var n = _v5.a; + var v = _v5.b; + return _Utils_Tuple2( + n, + A2($author$project$Morphir$IR$Value$rewriteValue, f, v)); + }, + fields)); + default: + return value; + } + } + }); +var $author$project$Morphir$Type$Infer$fixNumberLiterals = function (typedValue) { + return A2( + $author$project$Morphir$IR$Value$rewriteValue, + function (value) { + if ((value.$ === 'Literal') && (value.b.$ === 'IntLiteral')) { + var _v1 = value.a; + var va = _v1.a; + var tpe = _v1.b; + var v = value.b.a; + return _Utils_eq( + tpe, + $author$project$Morphir$IR$SDK$Basics$floatType(_Utils_Tuple0)) ? $elm$core$Maybe$Just( + A2( + $author$project$Morphir$IR$Value$Literal, + _Utils_Tuple2(va, tpe), + $author$project$Morphir$IR$Literal$FloatLiteral(v))) : $elm$core$Maybe$Nothing; + } else { + return $elm$core$Maybe$Nothing; + } + }, + typedValue); +}; +var $author$project$Morphir$Type$Solve$get = F2( + function (_var, _v0) { + var dict = _v0.a; + return A2($elm$core$Dict$get, _var, dict); + }); +var $author$project$Morphir$Type$MetaType$toName = function (_v0) { + var n = _v0.a; + var i = _v0.b; + var s = _v0.c; + return $elm$core$List$isEmpty(n) ? _List_fromArray( + [ + 't', + $elm$core$String$fromInt(i), + $elm$core$String$fromInt(s) + ]) : (((i > 0) || (s > 0)) ? _Utils_ap( + n, + _List_fromArray( + [ + $elm$core$String$fromInt(i), + $elm$core$String$fromInt(s) + ])) : n); +}; +var $author$project$Morphir$Type$MetaTypeMapping$metaTypeToConcreteType = F2( + function (solutionMap, metaType) { + switch (metaType.$) { + case 'MetaVar': + var metaVar = metaType.a; + return A2( + $elm$core$Maybe$withDefault, + A2( + $author$project$Morphir$IR$Type$Variable, + _Utils_Tuple0, + $author$project$Morphir$Type$MetaType$toName(metaVar)), + A2( + $elm$core$Maybe$map, + $author$project$Morphir$Type$MetaTypeMapping$metaTypeToConcreteType(solutionMap), + A2($author$project$Morphir$Type$Solve$get, metaVar, solutionMap))); + case 'MetaTuple': + var metaElems = metaType.b; + return A2( + $author$project$Morphir$IR$Type$Tuple, + _Utils_Tuple0, + A2( + $elm$core$List$map, + $author$project$Morphir$Type$MetaTypeMapping$metaTypeToConcreteType(solutionMap), + metaElems)); + case 'MetaRecord': + var _extends = metaType.b; + var metaFields = metaType.c; + if (_extends.$ === 'Nothing') { + return A2( + $author$project$Morphir$IR$Type$Record, + _Utils_Tuple0, + A2( + $elm$core$List$map, + function (_v2) { + var fieldName = _v2.a; + var fieldType = _v2.b; + return A2( + $author$project$Morphir$IR$Type$Field, + fieldName, + A2($author$project$Morphir$Type$MetaTypeMapping$metaTypeToConcreteType, solutionMap, fieldType)); + }, + $elm$core$Dict$toList(metaFields))); + } else { + var baseType = _extends.a; + return A3( + $author$project$Morphir$IR$Type$ExtensibleRecord, + _Utils_Tuple0, + $author$project$Morphir$Type$MetaType$toName(baseType), + A2( + $elm$core$List$map, + function (_v3) { + var fieldName = _v3.a; + var fieldType = _v3.b; + return A2( + $author$project$Morphir$IR$Type$Field, + fieldName, + A2($author$project$Morphir$Type$MetaTypeMapping$metaTypeToConcreteType, solutionMap, fieldType)); + }, + $elm$core$Dict$toList(metaFields))); + } + case 'MetaFun': + var argType = metaType.b; + var returnType = metaType.c; + return A3( + $author$project$Morphir$IR$Type$Function, + _Utils_Tuple0, + A2($author$project$Morphir$Type$MetaTypeMapping$metaTypeToConcreteType, solutionMap, argType), + A2($author$project$Morphir$Type$MetaTypeMapping$metaTypeToConcreteType, solutionMap, returnType)); + case 'MetaRef': + var fQName = metaType.b; + var args = metaType.c; + return A3( + $author$project$Morphir$IR$Type$Reference, + _Utils_Tuple0, + fQName, + A2( + $elm$core$List$map, + $author$project$Morphir$Type$MetaTypeMapping$metaTypeToConcreteType(solutionMap), + args)); + default: + return $author$project$Morphir$IR$Type$Unit(_Utils_Tuple0); + } + }); +var $author$project$Morphir$Type$Infer$applySolutionToAnnotatedValue = F2( + function (annotatedValue, _v0) { + var residualConstraints = _v0.a; + var solutionMap = _v0.b; + return $author$project$Morphir$Type$Infer$fixNumberLiterals( + A3( + $author$project$Morphir$IR$Value$mapValueAttributes, + $elm$core$Basics$identity, + function (_v1) { + var va = _v1.a; + var metaVar = _v1.b; + return _Utils_Tuple2( + va, + A2( + $elm$core$Maybe$withDefault, + A2( + $author$project$Morphir$IR$Type$Variable, + _Utils_Tuple0, + $author$project$Morphir$Type$MetaType$toName(metaVar)), + A2( + $elm$core$Maybe$map, + $author$project$Morphir$Type$MetaTypeMapping$metaTypeToConcreteType(solutionMap), + A2($author$project$Morphir$Type$Solve$get, metaVar, solutionMap)))); + }, + annotatedValue)); + }); +var $author$project$Morphir$Type$MetaType$MetaRef = F4( + function (a, b, c, d) { + return {$: 'MetaRef', a: a, b: b, c: c, d: d}; + }); +var $elm$core$Set$union = F2( + function (_v0, _v1) { + var dict1 = _v0.a; + var dict2 = _v1.a; + return $elm$core$Set$Set_elm_builtin( + A2($elm$core$Dict$union, dict1, dict2)); + }); +var $elm$core$Dict$singleton = F2( + function (key, value) { + return A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, key, value, $elm$core$Dict$RBEmpty_elm_builtin, $elm$core$Dict$RBEmpty_elm_builtin); + }); +var $elm$core$Set$singleton = function (key) { + return $elm$core$Set$Set_elm_builtin( + A2($elm$core$Dict$singleton, key, _Utils_Tuple0)); +}; +var $author$project$Morphir$Type$MetaType$variables = function (metaType) { + switch (metaType.$) { + case 'MetaVar': + var variable = metaType.a; + return $elm$core$Set$singleton(variable); + case 'MetaRef': + var vars = metaType.a; + return vars; + case 'MetaTuple': + var vars = metaType.a; + return vars; + case 'MetaRecord': + var vars = metaType.a; + return vars; + case 'MetaFun': + var vars = metaType.a; + return vars; + default: + return $elm$core$Set$empty; + } +}; +var $author$project$Morphir$Type$MetaType$metaRef = F2( + function (fQName, args) { + var vars = A3( + $elm$core$List$foldl, + $elm$core$Set$union, + $elm$core$Set$empty, + A2($elm$core$List$map, $author$project$Morphir$Type$MetaType$variables, args)); + return A4($author$project$Morphir$Type$MetaType$MetaRef, vars, fQName, args, $elm$core$Maybe$Nothing); + }); +var $author$project$Morphir$Type$MetaType$boolType = A2( + $author$project$Morphir$Type$MetaType$metaRef, + A3($author$project$Morphir$IR$FQName$fqn, 'Morphir.SDK', 'Basics', 'Bool'), + _List_Nil); +var $author$project$Morphir$IR$Type$collectVariables = function (tpe) { + var collectUnion = function (values) { + return A3( + $elm$core$List$foldl, + $elm$core$Set$union, + $elm$core$Set$empty, + A2($elm$core$List$map, $author$project$Morphir$IR$Type$collectVariables, values)); + }; + switch (tpe.$) { + case 'Variable': + var name = tpe.b; + return $elm$core$Set$singleton(name); + case 'Reference': + var args = tpe.c; + return collectUnion(args); + case 'Tuple': + var elements = tpe.b; + return collectUnion(elements); + case 'Record': + var fields = tpe.b; + return collectUnion( + A2( + $elm$core$List$map, + function ($) { + return $.tpe; + }, + fields)); + case 'ExtensibleRecord': + var subjectName = tpe.b; + var fields = tpe.c; + return A2( + $elm$core$Set$insert, + subjectName, + collectUnion( + A2( + $elm$core$List$map, + function ($) { + return $.tpe; + }, + fields))); + case 'Function': + var argType = tpe.b; + var returnType = tpe.c; + return collectUnion( + _List_fromArray( + [argType, returnType])); + default: + return $elm$core$Set$empty; + } +}; +var $author$project$Morphir$Type$ConstraintSet$ConstraintSet = function (a) { + return {$: 'ConstraintSet', a: a}; +}; +var $author$project$Morphir$Type$ConstraintSet$empty = $author$project$Morphir$Type$ConstraintSet$ConstraintSet(_List_Nil); +var $author$project$Morphir$Type$Constraint$isTrivial = function (constraint) { + if (constraint.$ === 'Equality') { + var metaType1 = constraint.a; + var metaType2 = constraint.b; + return _Utils_eq(metaType1, metaType2); + } else { + return false; + } +}; +var $author$project$Morphir$Type$Constraint$equivalent = F2( + function (constraint1, constraint2) { + if (_Utils_eq(constraint1, constraint2)) { + return true; + } else { + var _v0 = _Utils_Tuple2(constraint1, constraint2); + if ((_v0.a.$ === 'Equality') && (_v0.b.$ === 'Equality')) { + var _v1 = _v0.a; + var a1 = _v1.a; + var a2 = _v1.b; + var _v2 = _v0.b; + var b1 = _v2.a; + var b2 = _v2.b; + return (_Utils_eq(a1, b1) && _Utils_eq(a2, b2)) || (_Utils_eq(a1, b2) && _Utils_eq(a2, b1)); + } else { + return false; + } + } + }); +var $author$project$Morphir$Type$ConstraintSet$member = F2( + function (constraint, _v0) { + var constraints = _v0.a; + return A2( + $elm$core$List$any, + $author$project$Morphir$Type$Constraint$equivalent(constraint), + constraints); + }); +var $author$project$Morphir$Type$ConstraintSet$insert = F2( + function (constraint, constraintSet) { + var constraints = constraintSet.a; + return ($author$project$Morphir$Type$Constraint$isTrivial(constraint) || A2($author$project$Morphir$Type$ConstraintSet$member, constraint, constraintSet)) ? constraintSet : $author$project$Morphir$Type$ConstraintSet$ConstraintSet( + A2($elm$core$List$cons, constraint, constraints)); + }); +var $author$project$Morphir$Type$ConstraintSet$union = F2( + function (constraintSet1, _v0) { + var constraints2 = _v0.a; + return A3($elm$core$List$foldl, $author$project$Morphir$Type$ConstraintSet$insert, constraintSet1, constraints2); + }); +var $author$project$Morphir$Type$ConstraintSet$concat = function (constraintSets) { + return A3($elm$core$List$foldl, $author$project$Morphir$Type$ConstraintSet$union, $author$project$Morphir$Type$ConstraintSet$empty, constraintSets); +}; +var $author$project$Morphir$Type$MetaTypeMapping$CouldNotFindAlias = function (a) { + return {$: 'CouldNotFindAlias', a: a}; +}; +var $author$project$Morphir$Type$MetaTypeMapping$ExpectedAlias = function (a) { + return {$: 'ExpectedAlias', a: a}; +}; +var $author$project$Morphir$Type$MetaTypeMapping$lookupAliasedType = F3( + function (baseVar, ir, typeFQN) { + return A2( + $elm$core$Result$andThen, + function (typeSpec) { + if (typeSpec.$ === 'TypeAliasSpecification') { + var paramNames = typeSpec.a; + var tpe = typeSpec.b; + return $elm$core$Result$Ok(tpe); + } else { + return $elm$core$Result$Err( + $author$project$Morphir$Type$MetaTypeMapping$ExpectedAlias(typeFQN)); + } + }, + A2( + $elm$core$Result$fromMaybe, + $author$project$Morphir$Type$MetaTypeMapping$CouldNotFindAlias(typeFQN), + A2($author$project$Morphir$IR$lookupTypeSpecification, typeFQN, ir))); + }); +var $author$project$Morphir$Type$MetaType$metaAlias = F3( + function (fQName, args, tpe) { + var vars = A2( + $elm$core$Set$union, + $author$project$Morphir$Type$MetaType$variables(tpe), + A3( + $elm$core$List$foldl, + $elm$core$Set$union, + $elm$core$Set$empty, + A2($elm$core$List$map, $author$project$Morphir$Type$MetaType$variables, args))); + return A4( + $author$project$Morphir$Type$MetaType$MetaRef, + vars, + fQName, + args, + $elm$core$Maybe$Just(tpe)); + }); +var $author$project$Morphir$Type$MetaType$MetaFun = F3( + function (a, b, c) { + return {$: 'MetaFun', a: a, b: b, c: c}; + }); +var $author$project$Morphir$Type$MetaType$metaFun = F2( + function (arg, body) { + var vars = A2( + $elm$core$Set$union, + $author$project$Morphir$Type$MetaType$variables(arg), + $author$project$Morphir$Type$MetaType$variables(body)); + return A3($author$project$Morphir$Type$MetaType$MetaFun, vars, arg, body); + }); +var $author$project$Morphir$Type$MetaType$MetaRecord = F3( + function (a, b, c) { + return {$: 'MetaRecord', a: a, b: b, c: c}; + }); +var $author$project$Morphir$Type$MetaType$metaRecord = F2( + function (_extends, fields) { + var fieldVars = A3( + $elm$core$List$foldl, + $elm$core$Set$union, + $elm$core$Set$empty, + A2( + $elm$core$List$map, + A2($elm$core$Basics$composeR, $elm$core$Tuple$second, $author$project$Morphir$Type$MetaType$variables), + $elm$core$Dict$toList(fields))); + var vars = A2( + $elm$core$Maybe$withDefault, + fieldVars, + A2( + $elm$core$Maybe$map, + function (eVar) { + return A2($elm$core$Set$insert, eVar, fieldVars); + }, + _extends)); + return A3($author$project$Morphir$Type$MetaType$MetaRecord, vars, _extends, fields); + }); +var $author$project$Morphir$Type$MetaType$MetaTuple = F2( + function (a, b) { + return {$: 'MetaTuple', a: a, b: b}; + }); +var $author$project$Morphir$Type$MetaType$metaTuple = function (elems) { + var vars = A3( + $elm$core$List$foldl, + $elm$core$Set$union, + $elm$core$Set$empty, + A2($elm$core$List$map, $author$project$Morphir$Type$MetaType$variables, elems)); + return A2($author$project$Morphir$Type$MetaType$MetaTuple, vars, elems); +}; +var $author$project$Morphir$Type$MetaType$MetaUnit = {$: 'MetaUnit'}; +var $author$project$Morphir$Type$MetaType$metaUnit = $author$project$Morphir$Type$MetaType$MetaUnit; +var $author$project$Morphir$Type$MetaType$MetaVar = function (a) { + return {$: 'MetaVar', a: a}; +}; +var $author$project$Morphir$Type$MetaType$metaVar = $author$project$Morphir$Type$MetaType$MetaVar; +var $elm$core$Result$withDefault = F2( + function (def, result) { + if (result.$ === 'Ok') { + var a = result.a; + return a; + } else { + return def; + } + }); +var $author$project$Morphir$Type$MetaTypeMapping$concreteTypeToMetaType = F4( + function (baseVar, ir, varToMeta, tpe) { + switch (tpe.$) { + case 'Variable': + var varName = tpe.b; + return $author$project$Morphir$Type$MetaType$metaVar( + A2( + $elm$core$Maybe$withDefault, + baseVar, + A2($elm$core$Dict$get, varName, varToMeta))); + case 'Reference': + var fQName = tpe.b; + var args = tpe.c; + var resolveAliases = F2( + function (fqn, ars) { + return A2( + $elm$core$Result$withDefault, + A2($author$project$Morphir$Type$MetaType$metaRef, fqn, ars), + A2( + $elm$core$Result$map, + A2( + $elm$core$Basics$composeR, + A3($author$project$Morphir$Type$MetaTypeMapping$concreteTypeToMetaType, baseVar, ir, varToMeta), + A2($author$project$Morphir$Type$MetaType$metaAlias, fqn, ars)), + A3($author$project$Morphir$Type$MetaTypeMapping$lookupAliasedType, baseVar, ir, fqn))); + }); + return A2( + resolveAliases, + fQName, + A2( + $elm$core$List$map, + A3($author$project$Morphir$Type$MetaTypeMapping$concreteTypeToMetaType, baseVar, ir, varToMeta), + args)); + case 'Tuple': + var elemTypes = tpe.b; + return $author$project$Morphir$Type$MetaType$metaTuple( + A2( + $elm$core$List$map, + A3($author$project$Morphir$Type$MetaTypeMapping$concreteTypeToMetaType, baseVar, ir, varToMeta), + elemTypes)); + case 'Record': + var fieldTypes = tpe.b; + return A2( + $author$project$Morphir$Type$MetaType$metaRecord, + $elm$core$Maybe$Nothing, + $elm$core$Dict$fromList( + A2( + $elm$core$List$map, + function (field) { + return _Utils_Tuple2( + field.name, + A4($author$project$Morphir$Type$MetaTypeMapping$concreteTypeToMetaType, baseVar, ir, varToMeta, field.tpe)); + }, + fieldTypes))); + case 'ExtensibleRecord': + var subjectName = tpe.b; + var fieldTypes = tpe.c; + return A2( + $author$project$Morphir$Type$MetaType$metaRecord, + A2($elm$core$Dict$get, subjectName, varToMeta), + $elm$core$Dict$fromList( + A2( + $elm$core$List$map, + function (field) { + return _Utils_Tuple2( + field.name, + A4($author$project$Morphir$Type$MetaTypeMapping$concreteTypeToMetaType, baseVar, ir, varToMeta, field.tpe)); + }, + fieldTypes))); + case 'Function': + var argType = tpe.b; + var returnType = tpe.c; + return A2( + $author$project$Morphir$Type$MetaType$metaFun, + A4($author$project$Morphir$Type$MetaTypeMapping$concreteTypeToMetaType, baseVar, ir, varToMeta, argType), + A4($author$project$Morphir$Type$MetaTypeMapping$concreteTypeToMetaType, baseVar, ir, varToMeta, returnType)); + default: + return $author$project$Morphir$Type$MetaType$metaUnit; + } + }); +var $author$project$Morphir$Type$Class$Number = {$: 'Number'}; +var $author$project$Morphir$Type$MetaType$charType = A2( + $author$project$Morphir$Type$MetaType$metaRef, + A3($author$project$Morphir$IR$FQName$fqn, 'Morphir.SDK', 'Char', 'Char'), + _List_Nil); +var $author$project$Morphir$Type$Constraint$Class = F2( + function (a, b) { + return {$: 'Class', a: a, b: b}; + }); +var $author$project$Morphir$Type$Constraint$class = $author$project$Morphir$Type$Constraint$Class; +var $author$project$Morphir$Type$Constraint$Equality = F2( + function (a, b) { + return {$: 'Equality', a: a, b: b}; + }); +var $author$project$Morphir$Type$Constraint$equality = $author$project$Morphir$Type$Constraint$Equality; +var $author$project$Morphir$Type$MetaType$floatType = A2( + $author$project$Morphir$Type$MetaType$metaRef, + A3($author$project$Morphir$IR$FQName$fqn, 'Morphir.SDK', 'Basics', 'Float'), + _List_Nil); +var $author$project$Morphir$Type$ConstraintSet$singleton = function (constraint) { + return $author$project$Morphir$Type$ConstraintSet$ConstraintSet( + _List_fromArray( + [constraint])); +}; +var $author$project$Morphir$Type$MetaType$stringType = A2( + $author$project$Morphir$Type$MetaType$metaRef, + A3($author$project$Morphir$IR$FQName$fqn, 'Morphir.SDK', 'String', 'String'), + _List_Nil); +var $author$project$Morphir$Type$Infer$constrainLiteral = F2( + function (thisTypeVar, literalValue) { + var expectExactType = function (expectedType) { + return $author$project$Morphir$Type$ConstraintSet$singleton( + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), + expectedType)); + }; + switch (literalValue.$) { + case 'BoolLiteral': + return expectExactType($author$project$Morphir$Type$MetaType$boolType); + case 'CharLiteral': + return expectExactType($author$project$Morphir$Type$MetaType$charType); + case 'StringLiteral': + return expectExactType($author$project$Morphir$Type$MetaType$stringType); + case 'IntLiteral': + return $author$project$Morphir$Type$ConstraintSet$singleton( + A2( + $author$project$Morphir$Type$Constraint$class, + $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), + $author$project$Morphir$Type$Class$Number)); + default: + return expectExactType($author$project$Morphir$Type$MetaType$floatType); + } + }); +var $author$project$Morphir$Type$ConstraintSet$fromList = function (list) { + return A3($elm$core$List$foldl, $author$project$Morphir$Type$ConstraintSet$insert, $author$project$Morphir$Type$ConstraintSet$empty, list); +}; +var $author$project$Morphir$Type$MetaType$listType = function (itemType) { + return A2( + $author$project$Morphir$Type$MetaType$metaRef, + A3($author$project$Morphir$IR$FQName$fqn, 'Morphir.SDK', 'List', 'List'), + _List_fromArray( + [itemType])); +}; +var $author$project$Morphir$Type$MetaTypeMapping$CouldNotFindConstructor = function (a) { + return {$: 'CouldNotFindConstructor', a: a}; +}; +var $author$project$Morphir$Type$MetaType$subVariable = function (_v0) { + var n = _v0.a; + var i = _v0.b; + var s = _v0.c; + return _Utils_Tuple3(n, i, s + 1); +}; +var $author$project$Morphir$Type$MetaTypeMapping$concreteVarsToMetaVars = F2( + function (baseVar, variables) { + return A3( + $elm$core$List$foldl, + F2( + function (varName, _v0) { + var metaVarSoFar = _v0.a; + var varToMetaSoFar = _v0.b; + var nextVar = $author$project$Morphir$Type$MetaType$subVariable(metaVarSoFar); + return _Utils_Tuple2( + nextVar, + A3($elm$core$Dict$insert, varName, nextVar, varToMetaSoFar)); + }), + _Utils_Tuple2(baseVar, $elm$core$Dict$empty), + $elm$core$Set$toList(variables)).b; + }); +var $elm$core$Set$fromList = function (list) { + return A3($elm$core$List$foldl, $elm$core$Set$insert, $elm$core$Set$empty, list); +}; +var $author$project$Morphir$Type$MetaTypeMapping$ctorToMetaType = F5( + function (baseVar, ir, ctorFQName, paramNames, ctorArgs) { + var argVariables = A3( + $elm$core$List$foldl, + $elm$core$Set$union, + $elm$core$Set$empty, + A2($elm$core$List$map, $author$project$Morphir$IR$Type$collectVariables, ctorArgs)); + var allVariables = A2( + $elm$core$Set$union, + argVariables, + $elm$core$Set$fromList(paramNames)); + var varToMeta = A2($author$project$Morphir$Type$MetaTypeMapping$concreteVarsToMetaVars, baseVar, allVariables); + var recurse = function (cargs) { + if (!cargs.b) { + return A2( + $author$project$Morphir$Type$MetaType$metaRef, + ctorFQName, + A2( + $elm$core$List$map, + function (paramName) { + return $author$project$Morphir$Type$MetaType$metaVar( + A2( + $elm$core$Maybe$withDefault, + baseVar, + A2($elm$core$Dict$get, paramName, varToMeta))); + }, + paramNames)); + } else { + var firstCtorArg = cargs.a; + var restOfCtorArgs = cargs.b; + return A2( + $author$project$Morphir$Type$MetaType$metaFun, + A4($author$project$Morphir$Type$MetaTypeMapping$concreteTypeToMetaType, baseVar, ir, varToMeta, firstCtorArg), + recurse(restOfCtorArgs)); + } + }; + return recurse(ctorArgs); + }); +var $author$project$Morphir$IR$lookupTypeConstructor = F2( + function (fqn, ir) { + return A2($elm$core$Dict$get, fqn, ir.typeConstructors); + }); +var $author$project$Morphir$Type$MetaTypeMapping$lookupConstructor = F3( + function (baseVar, ir, ctorFQN) { + return A2( + $elm$core$Result$fromMaybe, + $author$project$Morphir$Type$MetaTypeMapping$CouldNotFindConstructor(ctorFQN), + A2( + $elm$core$Maybe$map, + function (_v0) { + var typeFQN = _v0.a; + var paramNames = _v0.b; + var ctorArgs = _v0.c; + return A5( + $author$project$Morphir$Type$MetaTypeMapping$ctorToMetaType, + baseVar, + ir, + typeFQN, + paramNames, + A2($elm$core$List$map, $elm$core$Tuple$second, ctorArgs)); + }, + A2($author$project$Morphir$IR$lookupTypeConstructor, ctorFQN, ir))); + }); +var $author$project$Morphir$IR$Value$patternAttribute = function (p) { + switch (p.$) { + case 'WildcardPattern': + var a = p.a; + return a; + case 'AsPattern': + var a = p.a; + return a; + case 'TuplePattern': + var a = p.a; + return a; + case 'ConstructorPattern': + var a = p.a; + return a; + case 'EmptyListPattern': + var a = p.a; + return a; + case 'HeadTailPattern': + var a = p.a; + return a; + case 'LiteralPattern': + var a = p.a; + return a; + default: + var a = p.a; + return a; + } +}; +var $author$project$Morphir$Type$Infer$metaTypeVarForPattern = function (pattern) { + return $author$project$Morphir$Type$MetaType$metaVar( + $author$project$Morphir$IR$Value$patternAttribute(pattern).b); +}; +var $elm$core$List$unzip = function (pairs) { + var step = F2( + function (_v0, _v1) { + var x = _v0.a; + var y = _v0.b; + var xs = _v1.a; + var ys = _v1.b; + return _Utils_Tuple2( + A2($elm$core$List$cons, x, xs), + A2($elm$core$List$cons, y, ys)); + }); + return A3( + $elm$core$List$foldr, + step, + _Utils_Tuple2(_List_Nil, _List_Nil), + pairs); +}; +var $author$project$Morphir$Type$Infer$constrainPattern = F2( + function (ir, pattern) { + switch (pattern.$) { + case 'WildcardPattern': + var _v1 = pattern.a; + var va = _v1.a; + var thisTypeVar = _v1.b; + return _Utils_Tuple2($elm$core$Dict$empty, $author$project$Morphir$Type$ConstraintSet$empty); + case 'AsPattern': + var _v2 = pattern.a; + var va = _v2.a; + var thisTypeVar = _v2.b; + var nestedPattern = pattern.b; + var alias = pattern.c; + var thisPatternConstraints = $author$project$Morphir$Type$ConstraintSet$singleton( + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), + $author$project$Morphir$Type$Infer$metaTypeVarForPattern(nestedPattern))); + var _v3 = A2($author$project$Morphir$Type$Infer$constrainPattern, ir, nestedPattern); + var nestedVariables = _v3.a; + var nestedConstraints = _v3.b; + return _Utils_Tuple2( + A3($elm$core$Dict$insert, alias, thisTypeVar, nestedVariables), + A2($author$project$Morphir$Type$ConstraintSet$union, nestedConstraints, thisPatternConstraints)); + case 'TuplePattern': + var _v4 = pattern.a; + var va = _v4.a; + var thisTypeVar = _v4.b; + var elemPatterns = pattern.b; + var tupleConstraint = $author$project$Morphir$Type$ConstraintSet$singleton( + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), + $author$project$Morphir$Type$MetaType$metaTuple( + A2($elm$core$List$map, $author$project$Morphir$Type$Infer$metaTypeVarForPattern, elemPatterns)))); + var _v5 = $elm$core$List$unzip( + A2( + $elm$core$List$map, + $author$project$Morphir$Type$Infer$constrainPattern(ir), + elemPatterns)); + var elemsVariables = _v5.a; + var elemsConstraints = _v5.b; + return _Utils_Tuple2( + A3($elm$core$List$foldl, $elm$core$Dict$union, $elm$core$Dict$empty, elemsVariables), + $author$project$Morphir$Type$ConstraintSet$concat( + A2($elm$core$List$cons, tupleConstraint, elemsConstraints))); + case 'ConstructorPattern': + var _v6 = pattern.a; + var va = _v6.a; + var thisTypeVar = _v6.b; + var fQName = pattern.b; + var argPatterns = pattern.c; + var resultType = function (t) { + resultType: + while (true) { + if (t.$ === 'MetaFun') { + var a = t.b; + var r = t.c; + var $temp$t = r; + t = $temp$t; + continue resultType; + } else { + return t; + } + } + }; + var ctorTypeVar = $author$project$Morphir$Type$MetaType$subVariable(thisTypeVar); + var customTypeConstraint = A2( + $elm$core$Result$withDefault, + $author$project$Morphir$Type$ConstraintSet$empty, + A2( + $elm$core$Result$map, + function (ctorFunType) { + return $author$project$Morphir$Type$ConstraintSet$fromList( + _List_fromArray( + [ + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$MetaType$metaVar(ctorTypeVar), + ctorFunType), + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), + resultType(ctorFunType)) + ])); + }, + A3($author$project$Morphir$Type$MetaTypeMapping$lookupConstructor, ctorTypeVar, ir, fQName))); + var ctorType = function (args) { + if (!args.b) { + return $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar); + } else { + var firstArg = args.a; + var restOfArgs = args.b; + return A2( + $author$project$Morphir$Type$MetaType$metaFun, + firstArg, + ctorType(restOfArgs)); + } + }; + var ctorFunConstraint = $author$project$Morphir$Type$ConstraintSet$singleton( + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$MetaType$metaVar(ctorTypeVar), + ctorType( + A2($elm$core$List$map, $author$project$Morphir$Type$Infer$metaTypeVarForPattern, argPatterns)))); + var _v9 = $elm$core$List$unzip( + A2( + $elm$core$List$map, + $author$project$Morphir$Type$Infer$constrainPattern(ir), + argPatterns)); + var argVariables = _v9.a; + var argConstraints = _v9.b; + return _Utils_Tuple2( + A3($elm$core$List$foldl, $elm$core$Dict$union, $elm$core$Dict$empty, argVariables), + $author$project$Morphir$Type$ConstraintSet$concat( + A2( + $elm$core$List$cons, + customTypeConstraint, + A2($elm$core$List$cons, ctorFunConstraint, argConstraints)))); + case 'EmptyListPattern': + var _v10 = pattern.a; + var va = _v10.a; + var thisTypeVar = _v10.b; + var itemType = $author$project$Morphir$Type$MetaType$metaVar( + $author$project$Morphir$Type$MetaType$subVariable(thisTypeVar)); + var listType = $author$project$Morphir$Type$MetaType$listType(itemType); + return _Utils_Tuple2( + $elm$core$Dict$empty, + $author$project$Morphir$Type$ConstraintSet$singleton( + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), + listType))); + case 'HeadTailPattern': + var _v11 = pattern.a; + var va = _v11.a; + var thisTypeVar = _v11.b; + var headPattern = pattern.b; + var tailPattern = pattern.c; + var itemType = $author$project$Morphir$Type$Infer$metaTypeVarForPattern(headPattern); + var listType = $author$project$Morphir$Type$MetaType$listType(itemType); + var thisPatternConstraints = $author$project$Morphir$Type$ConstraintSet$fromList( + _List_fromArray( + [ + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), + listType), + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$Infer$metaTypeVarForPattern(tailPattern), + listType) + ])); + var _v12 = A2($author$project$Morphir$Type$Infer$constrainPattern, ir, tailPattern); + var tailVariables = _v12.a; + var tailConstraints = _v12.b; + var _v13 = A2($author$project$Morphir$Type$Infer$constrainPattern, ir, headPattern); + var headVariables = _v13.a; + var headConstraints = _v13.b; + return _Utils_Tuple2( + A2($elm$core$Dict$union, headVariables, tailVariables), + $author$project$Morphir$Type$ConstraintSet$concat( + _List_fromArray( + [headConstraints, tailConstraints, thisPatternConstraints]))); + case 'LiteralPattern': + var _v14 = pattern.a; + var va = _v14.a; + var thisTypeVar = _v14.b; + var literalValue = pattern.b; + return _Utils_Tuple2( + $elm$core$Dict$empty, + A2($author$project$Morphir$Type$Infer$constrainLiteral, thisTypeVar, literalValue)); + default: + var _v15 = pattern.a; + var va = _v15.a; + var thisTypeVar = _v15.b; + return _Utils_Tuple2( + $elm$core$Dict$empty, + $author$project$Morphir$Type$ConstraintSet$singleton( + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), + $author$project$Morphir$Type$MetaType$metaUnit))); + } + }); +var $author$project$Morphir$Type$MetaTypeMapping$CouldNotFindValue = function (a) { + return {$: 'CouldNotFindValue', a: a}; +}; +var $author$project$Morphir$IR$lookupValueSpecification = F2( + function (fqn, ir) { + return A2($elm$core$Dict$get, fqn, ir.valueSpecifications); + }); +var $author$project$Morphir$Type$MetaTypeMapping$valueSpecToMetaType = F3( + function (baseVar, ir, valueSpec) { + var specToFunctionType = F2( + function (argTypes, returnType) { + if (!argTypes.b) { + return returnType; + } else { + var firstArg = argTypes.a; + var restOfArgs = argTypes.b; + return A3( + $author$project$Morphir$IR$Type$Function, + _Utils_Tuple0, + firstArg, + A2(specToFunctionType, restOfArgs, returnType)); + } + }); + var functionType = A2( + specToFunctionType, + A2($elm$core$List$map, $elm$core$Tuple$second, valueSpec.inputs), + valueSpec.output); + var varToMeta = A2( + $author$project$Morphir$Type$MetaTypeMapping$concreteVarsToMetaVars, + baseVar, + $author$project$Morphir$IR$Type$collectVariables(functionType)); + return A4($author$project$Morphir$Type$MetaTypeMapping$concreteTypeToMetaType, baseVar, ir, varToMeta, functionType); + }); +var $author$project$Morphir$Type$MetaTypeMapping$lookupValue = F3( + function (baseVar, ir, valueFQN) { + return A2( + $elm$core$Result$fromMaybe, + $author$project$Morphir$Type$MetaTypeMapping$CouldNotFindValue(valueFQN), + A2( + $elm$core$Maybe$map, + A2($author$project$Morphir$Type$MetaTypeMapping$valueSpecToMetaType, baseVar, ir), + A2($author$project$Morphir$IR$lookupValueSpecification, valueFQN, ir))); + }); +var $author$project$Morphir$IR$Value$valueAttribute = function (v) { + switch (v.$) { + case 'Literal': + var a = v.a; + return a; + case 'Constructor': + var a = v.a; + return a; + case 'Tuple': + var a = v.a; + return a; + case 'List': + var a = v.a; + return a; + case 'Record': + var a = v.a; + return a; + case 'Variable': + var a = v.a; + return a; + case 'Reference': + var a = v.a; + return a; + case 'Field': + var a = v.a; + return a; + case 'FieldFunction': + var a = v.a; + return a; + case 'Apply': + var a = v.a; + return a; + case 'Lambda': + var a = v.a; + return a; + case 'LetDefinition': + var a = v.a; + return a; + case 'LetRecursion': + var a = v.a; + return a; + case 'Destructure': + var a = v.a; + return a; + case 'IfThenElse': + var a = v.a; + return a; + case 'PatternMatch': + var a = v.a; + return a; + case 'UpdateRecord': + var a = v.a; + return a; + default: + var a = v.a; + return a; + } +}; +var $author$project$Morphir$Type$Infer$metaTypeVarForValue = function (value) { + return $author$project$Morphir$Type$MetaType$metaVar( + $author$project$Morphir$IR$Value$valueAttribute(value).b); +}; +var $author$project$Morphir$Type$MetaType$variableByName = function (name) { + return _Utils_Tuple3(name, 0, 0); +}; +var $author$project$Morphir$Type$Infer$constrainDefinition = F4( + function (baseVar, ir, vars, def) { + var outputTypeVars = $author$project$Morphir$IR$Type$collectVariables(def.outputType); + var inputVars = $elm$core$Dict$fromList( + A2( + $elm$core$List$map, + function (_v41) { + var name = _v41.a; + var _v42 = _v41.b; + var thisTypeVar = _v42.b; + return _Utils_Tuple2(name, thisTypeVar); + }, + def.inputTypes)); + var inputTypeVars = A3( + $elm$core$List$foldl, + $elm$core$Set$union, + $elm$core$Set$empty, + A2( + $elm$core$List$map, + function (_v40) { + var declaredType = _v40.c; + return $author$project$Morphir$IR$Type$collectVariables(declaredType); + }, + def.inputTypes)); + var varToMeta = $elm$core$Dict$fromList( + A2( + $elm$core$List$map, + function (varName) { + return _Utils_Tuple2( + varName, + $author$project$Morphir$Type$MetaType$variableByName(varName)); + }, + $elm$core$Set$toList( + A2($elm$core$Set$union, inputTypeVars, outputTypeVars)))); + var outputConstraints = $author$project$Morphir$Type$ConstraintSet$singleton( + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$Infer$metaTypeVarForValue(def.body), + A4($author$project$Morphir$Type$MetaTypeMapping$concreteTypeToMetaType, baseVar, ir, varToMeta, def.outputType))); + var inputConstraints = $author$project$Morphir$Type$ConstraintSet$fromList( + A2( + $elm$core$List$map, + function (_v38) { + var _v39 = _v38.b; + var thisTypeVar = _v39.b; + var declaredType = _v38.c; + return A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), + A4($author$project$Morphir$Type$MetaTypeMapping$concreteTypeToMetaType, thisTypeVar, ir, varToMeta, declaredType)); + }, + def.inputTypes)); + var bodyConstraints = A3( + $author$project$Morphir$Type$Infer$constrainValue, + ir, + A2($elm$core$Dict$union, inputVars, vars), + def.body); + return $author$project$Morphir$Type$ConstraintSet$concat( + _List_fromArray( + [inputConstraints, outputConstraints, bodyConstraints])); + }); +var $author$project$Morphir$Type$Infer$constrainValue = F3( + function (ir, vars, annotatedValue) { + switch (annotatedValue.$) { + case 'Literal': + var _v1 = annotatedValue.a; + var thisTypeVar = _v1.b; + var literalValue = annotatedValue.b; + return A2($author$project$Morphir$Type$Infer$constrainLiteral, thisTypeVar, literalValue); + case 'Constructor': + var _v2 = annotatedValue.a; + var thisTypeVar = _v2.b; + var fQName = annotatedValue.b; + return A2( + $elm$core$Result$withDefault, + $author$project$Morphir$Type$ConstraintSet$empty, + A2( + $elm$core$Result$map, + $author$project$Morphir$Type$ConstraintSet$singleton, + A2( + $elm$core$Result$map, + $author$project$Morphir$Type$Constraint$equality( + $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar)), + A3($author$project$Morphir$Type$MetaTypeMapping$lookupConstructor, thisTypeVar, ir, fQName)))); + case 'Tuple': + var _v3 = annotatedValue.a; + var thisTypeVar = _v3.b; + var elems = annotatedValue.b; + var tupleConstraint = $author$project$Morphir$Type$ConstraintSet$singleton( + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), + $author$project$Morphir$Type$MetaType$metaTuple( + A2($elm$core$List$map, $author$project$Morphir$Type$Infer$metaTypeVarForValue, elems)))); + var elemsConstraints = A2( + $elm$core$List$map, + A2($author$project$Morphir$Type$Infer$constrainValue, ir, vars), + elems); + return $author$project$Morphir$Type$ConstraintSet$concat( + A2($elm$core$List$cons, tupleConstraint, elemsConstraints)); + case 'List': + var _v4 = annotatedValue.a; + var thisTypeVar = _v4.b; + var items = annotatedValue.b; + var itemType = $author$project$Morphir$Type$MetaType$metaVar( + $author$project$Morphir$Type$MetaType$subVariable(thisTypeVar)); + var listConstraint = A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), + $author$project$Morphir$Type$MetaType$listType(itemType)); + var itemConstraints = $author$project$Morphir$Type$ConstraintSet$concat( + A2( + $elm$core$List$map, + function (item) { + return A2( + $author$project$Morphir$Type$ConstraintSet$insert, + A2( + $author$project$Morphir$Type$Constraint$equality, + itemType, + $author$project$Morphir$Type$Infer$metaTypeVarForValue(item)), + A3($author$project$Morphir$Type$Infer$constrainValue, ir, vars, item)); + }, + items)); + return A2($author$project$Morphir$Type$ConstraintSet$insert, listConstraint, itemConstraints); + case 'Record': + var _v5 = annotatedValue.a; + var thisTypeVar = _v5.b; + var fieldValues = annotatedValue.b; + var recordType = A2( + $author$project$Morphir$Type$MetaType$metaRecord, + $elm$core$Maybe$Nothing, + $elm$core$Dict$fromList( + A2( + $elm$core$List$map, + function (_v6) { + var fieldName = _v6.a; + var fieldValue = _v6.b; + return _Utils_Tuple2( + fieldName, + $author$project$Morphir$Type$Infer$metaTypeVarForValue(fieldValue)); + }, + fieldValues))); + var recordConstraints = $author$project$Morphir$Type$ConstraintSet$singleton( + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), + recordType)); + var fieldConstraints = $author$project$Morphir$Type$ConstraintSet$concat( + A2( + $elm$core$List$map, + A2( + $elm$core$Basics$composeR, + $elm$core$Tuple$second, + A2($author$project$Morphir$Type$Infer$constrainValue, ir, vars)), + fieldValues)); + return $author$project$Morphir$Type$ConstraintSet$concat( + _List_fromArray( + [fieldConstraints, recordConstraints])); + case 'Variable': + var _v7 = annotatedValue.a; + var varUse = _v7.b; + var varName = annotatedValue.b; + var _v8 = A2($elm$core$Dict$get, varName, vars); + if (_v8.$ === 'Just') { + var varDecl = _v8.a; + return $author$project$Morphir$Type$ConstraintSet$singleton( + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$MetaType$metaVar(varUse), + $author$project$Morphir$Type$MetaType$metaVar(varDecl))); + } else { + return $author$project$Morphir$Type$ConstraintSet$empty; + } + case 'Reference': + var _v9 = annotatedValue.a; + var thisTypeVar = _v9.b; + var fQName = annotatedValue.b; + return A2( + $elm$core$Result$withDefault, + $author$project$Morphir$Type$ConstraintSet$empty, + A2( + $elm$core$Result$map, + $author$project$Morphir$Type$ConstraintSet$singleton, + A2( + $elm$core$Result$map, + $author$project$Morphir$Type$Constraint$equality( + $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar)), + A3($author$project$Morphir$Type$MetaTypeMapping$lookupValue, thisTypeVar, ir, fQName)))); + case 'Field': + var _v10 = annotatedValue.a; + var thisTypeVar = _v10.b; + var subjectValue = annotatedValue.b; + var fieldName = annotatedValue.c; + var extendsVar = $author$project$Morphir$Type$MetaType$subVariable(thisTypeVar); + var fieldType = $author$project$Morphir$Type$MetaType$metaVar( + $author$project$Morphir$Type$MetaType$subVariable(extendsVar)); + var extensibleRecordType = A2( + $author$project$Morphir$Type$MetaType$metaRecord, + $elm$core$Maybe$Just(extendsVar), + A2($elm$core$Dict$singleton, fieldName, fieldType)); + var fieldConstraints = $author$project$Morphir$Type$ConstraintSet$fromList( + _List_fromArray( + [ + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$Infer$metaTypeVarForValue(subjectValue), + extensibleRecordType), + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), + fieldType) + ])); + return $author$project$Morphir$Type$ConstraintSet$concat( + _List_fromArray( + [ + A3($author$project$Morphir$Type$Infer$constrainValue, ir, vars, subjectValue), + fieldConstraints + ])); + case 'FieldFunction': + var _v11 = annotatedValue.a; + var thisTypeVar = _v11.b; + var fieldName = annotatedValue.b; + var extendsVar = $author$project$Morphir$Type$MetaType$subVariable(thisTypeVar); + var fieldType = $author$project$Morphir$Type$MetaType$metaVar( + $author$project$Morphir$Type$MetaType$subVariable(extendsVar)); + var extensibleRecordType = A2( + $author$project$Morphir$Type$MetaType$metaRecord, + $elm$core$Maybe$Just(extendsVar), + A2($elm$core$Dict$singleton, fieldName, fieldType)); + return $author$project$Morphir$Type$ConstraintSet$singleton( + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), + A2($author$project$Morphir$Type$MetaType$metaFun, extensibleRecordType, fieldType))); + case 'Apply': + var _v12 = annotatedValue.a; + var thisTypeVar = _v12.b; + var funValue = annotatedValue.b; + var argValue = annotatedValue.c; + var funType = A2( + $author$project$Morphir$Type$MetaType$metaFun, + $author$project$Morphir$Type$Infer$metaTypeVarForValue(argValue), + $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar)); + var applyConstraints = $author$project$Morphir$Type$ConstraintSet$singleton( + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$Infer$metaTypeVarForValue(funValue), + funType)); + return $author$project$Morphir$Type$ConstraintSet$concat( + _List_fromArray( + [ + A3($author$project$Morphir$Type$Infer$constrainValue, ir, vars, funValue), + A3($author$project$Morphir$Type$Infer$constrainValue, ir, vars, argValue), + applyConstraints + ])); + case 'Lambda': + var _v13 = annotatedValue.a; + var thisTypeVar = _v13.b; + var argPattern = annotatedValue.b; + var bodyValue = annotatedValue.c; + var lambdaType = A2( + $author$project$Morphir$Type$MetaType$metaFun, + $author$project$Morphir$Type$Infer$metaTypeVarForPattern(argPattern), + $author$project$Morphir$Type$Infer$metaTypeVarForValue(bodyValue)); + var lambdaConstraints = $author$project$Morphir$Type$ConstraintSet$singleton( + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), + lambdaType)); + var _v14 = A2($author$project$Morphir$Type$Infer$constrainPattern, ir, argPattern); + var argVariables = _v14.a; + var argConstraints = _v14.b; + var bodyConstraints = A3( + $author$project$Morphir$Type$Infer$constrainValue, + ir, + A2($elm$core$Dict$union, argVariables, vars), + bodyValue); + return $author$project$Morphir$Type$ConstraintSet$concat( + _List_fromArray( + [lambdaConstraints, bodyConstraints, argConstraints])); + case 'LetDefinition': + var _v15 = annotatedValue.a; + var thisTypeVar = _v15.b; + var defName = annotatedValue.b; + var def = annotatedValue.c; + var inValue = annotatedValue.d; + var defTypeVar = $author$project$Morphir$Type$MetaType$subVariable(thisTypeVar); + var inConstraints = A3( + $author$project$Morphir$Type$Infer$constrainValue, + ir, + A3($elm$core$Dict$insert, defName, defTypeVar, vars), + inValue); + var defType = F2( + function (argTypes, returnType) { + if (!argTypes.b) { + return returnType; + } else { + var firstArg = argTypes.a; + var restOfArgs = argTypes.b; + return A2( + $author$project$Morphir$Type$MetaType$metaFun, + firstArg, + A2(defType, restOfArgs, returnType)); + } + }); + var letConstraints = $author$project$Morphir$Type$ConstraintSet$fromList( + _List_fromArray( + [ + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), + $author$project$Morphir$Type$Infer$metaTypeVarForValue(inValue)), + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$MetaType$metaVar(defTypeVar), + A2( + defType, + A2( + $elm$core$List$map, + function (_v17) { + var _v18 = _v17.b; + var argTypeVar = _v18.b; + return $author$project$Morphir$Type$MetaType$metaVar(argTypeVar); + }, + def.inputTypes), + $author$project$Morphir$Type$Infer$metaTypeVarForValue(def.body))) + ])); + var defConstraints = A4($author$project$Morphir$Type$Infer$constrainDefinition, thisTypeVar, ir, vars, def); + return $author$project$Morphir$Type$ConstraintSet$concat( + _List_fromArray( + [defConstraints, inConstraints, letConstraints])); + case 'LetRecursion': + var _v19 = annotatedValue.a; + var thisTypeVar = _v19.b; + var defs = annotatedValue.b; + var inValue = annotatedValue.c; + var letConstraints = $author$project$Morphir$Type$ConstraintSet$fromList( + _List_fromArray( + [ + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), + $author$project$Morphir$Type$Infer$metaTypeVarForValue(inValue)) + ])); + var defType = F2( + function (argTypes, returnType) { + if (!argTypes.b) { + return returnType; + } else { + var firstArg = argTypes.a; + var restOfArgs = argTypes.b; + return A2( + $author$project$Morphir$Type$MetaType$metaFun, + firstArg, + A2(defType, restOfArgs, returnType)); + } + }); + var _v21 = A3( + $elm$core$List$foldl, + F2( + function (_v22, _v23) { + var defName = _v22.a; + var def = _v22.b; + var lastTypeVar = _v23.a; + var constraintsSoFar = _v23.b; + var variablesSoFar = _v23.c; + var nextTypeVar = $author$project$Morphir$Type$MetaType$subVariable(lastTypeVar); + var letConstraint = $author$project$Morphir$Type$ConstraintSet$fromList( + _List_fromArray( + [ + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$MetaType$metaVar(nextTypeVar), + A2( + defType, + A2( + $elm$core$List$map, + function (_v24) { + var _v25 = _v24.b; + var argTypeVar = _v25.b; + return $author$project$Morphir$Type$MetaType$metaVar(argTypeVar); + }, + def.inputTypes), + $author$project$Morphir$Type$Infer$metaTypeVarForValue(def.body))) + ])); + return _Utils_Tuple3( + nextTypeVar, + A2($elm$core$List$cons, letConstraint, constraintsSoFar), + A2( + $elm$core$List$cons, + _Utils_Tuple2(defName, nextTypeVar), + variablesSoFar)); + }), + _Utils_Tuple3(thisTypeVar, _List_Nil, _List_Nil), + $elm$core$Dict$toList(defs)); + var lastDefTypeVar = _v21.a; + var defDeclsConstraints = _v21.b; + var defVariables = _v21.c; + var inConstraints = A3( + $author$project$Morphir$Type$Infer$constrainValue, + ir, + A2( + $elm$core$Dict$union, + $elm$core$Dict$fromList(defVariables), + vars), + inValue); + var defsConstraints = $author$project$Morphir$Type$ConstraintSet$concat( + A3( + $elm$core$List$foldl, + F2( + function (_v26, _v27) { + var def = _v26.b; + var lastTypeVar = _v27.a; + var constraintsSoFar = _v27.b; + var nextTypeVar = $author$project$Morphir$Type$MetaType$subVariable(lastTypeVar); + var defConstraints = A4($author$project$Morphir$Type$Infer$constrainDefinition, lastTypeVar, ir, vars, def); + return _Utils_Tuple2( + nextTypeVar, + A2($elm$core$List$cons, defConstraints, constraintsSoFar)); + }), + _Utils_Tuple2(lastDefTypeVar, defDeclsConstraints), + $elm$core$Dict$toList(defs)).b); + return $author$project$Morphir$Type$ConstraintSet$concat( + _List_fromArray( + [defsConstraints, inConstraints, letConstraints])); + case 'Destructure': + var _v28 = annotatedValue.a; + var thisTypeVar = _v28.b; + var bindPattern = annotatedValue.b; + var bindValue = annotatedValue.c; + var inValue = annotatedValue.d; + var destructureConstraints = $author$project$Morphir$Type$ConstraintSet$fromList( + _List_fromArray( + [ + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), + $author$project$Morphir$Type$Infer$metaTypeVarForValue(inValue)), + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$Infer$metaTypeVarForValue(bindValue), + $author$project$Morphir$Type$Infer$metaTypeVarForPattern(bindPattern)) + ])); + var bindValueConstraints = A3($author$project$Morphir$Type$Infer$constrainValue, ir, vars, bindValue); + var _v29 = A2($author$project$Morphir$Type$Infer$constrainPattern, ir, bindPattern); + var bindPatternVariables = _v29.a; + var bindPatternConstraints = _v29.b; + var inValueConstraints = A3( + $author$project$Morphir$Type$Infer$constrainValue, + ir, + A2($elm$core$Dict$union, bindPatternVariables, vars), + inValue); + return $author$project$Morphir$Type$ConstraintSet$concat( + _List_fromArray( + [bindPatternConstraints, bindValueConstraints, inValueConstraints, destructureConstraints])); + case 'IfThenElse': + var _v30 = annotatedValue.a; + var thisTypeVar = _v30.b; + var condition = annotatedValue.b; + var thenBranch = annotatedValue.c; + var elseBranch = annotatedValue.d; + var specificConstraints = $author$project$Morphir$Type$ConstraintSet$fromList( + _List_fromArray( + [ + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$Infer$metaTypeVarForValue(condition), + $author$project$Morphir$Type$MetaType$boolType), + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$Infer$metaTypeVarForValue(elseBranch), + $author$project$Morphir$Type$Infer$metaTypeVarForValue(thenBranch)), + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), + $author$project$Morphir$Type$Infer$metaTypeVarForValue(thenBranch)) + ])); + var childConstraints = _List_fromArray( + [ + A3($author$project$Morphir$Type$Infer$constrainValue, ir, vars, condition), + A3($author$project$Morphir$Type$Infer$constrainValue, ir, vars, thenBranch), + A3($author$project$Morphir$Type$Infer$constrainValue, ir, vars, elseBranch) + ]); + return $author$project$Morphir$Type$ConstraintSet$concat( + A2($elm$core$List$cons, specificConstraints, childConstraints)); + case 'PatternMatch': + var _v31 = annotatedValue.a; + var thisTypeVar = _v31.b; + var subjectValue = annotatedValue.b; + var cases = annotatedValue.c; + var thisType = $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar); + var subjectType = $author$project$Morphir$Type$Infer$metaTypeVarForValue(subjectValue); + var subjectConstraints = A3($author$project$Morphir$Type$Infer$constrainValue, ir, vars, subjectValue); + var casesConstraints = A2( + $elm$core$List$map, + function (_v32) { + var casePattern = _v32.a; + var caseValue = _v32.b; + var caseConstraints = $author$project$Morphir$Type$ConstraintSet$fromList( + _List_fromArray( + [ + A2( + $author$project$Morphir$Type$Constraint$equality, + subjectType, + $author$project$Morphir$Type$Infer$metaTypeVarForPattern(casePattern)), + A2( + $author$project$Morphir$Type$Constraint$equality, + thisType, + $author$project$Morphir$Type$Infer$metaTypeVarForValue(caseValue)) + ])); + var _v33 = A2($author$project$Morphir$Type$Infer$constrainPattern, ir, casePattern); + var casePatternVariables = _v33.a; + var casePatternConstraints = _v33.b; + var caseValueConstraints = A3( + $author$project$Morphir$Type$Infer$constrainValue, + ir, + A2($elm$core$Dict$union, casePatternVariables, vars), + caseValue); + return $author$project$Morphir$Type$ConstraintSet$concat( + _List_fromArray( + [casePatternConstraints, caseValueConstraints, caseConstraints])); + }, + cases); + return $author$project$Morphir$Type$ConstraintSet$concat( + A2($elm$core$List$cons, subjectConstraints, casesConstraints)); + case 'UpdateRecord': + var _v34 = annotatedValue.a; + var thisTypeVar = _v34.b; + var subjectValue = annotatedValue.b; + var fieldValues = annotatedValue.c; + var fieldValueConstraints = $author$project$Morphir$Type$ConstraintSet$concat( + A2( + $elm$core$List$map, + function (_v36) { + var fieldValue = _v36.b; + return A3($author$project$Morphir$Type$Infer$constrainValue, ir, vars, fieldValue); + }, + fieldValues)); + var extendsVar = $author$project$Morphir$Type$MetaType$subVariable(thisTypeVar); + var extensibleRecordType = A2( + $author$project$Morphir$Type$MetaType$metaRecord, + $elm$core$Maybe$Just(extendsVar), + $elm$core$Dict$fromList( + A2( + $elm$core$List$map, + function (_v35) { + var fieldName = _v35.a; + var fieldValue = _v35.b; + return _Utils_Tuple2( + fieldName, + $author$project$Morphir$Type$Infer$metaTypeVarForValue(fieldValue)); + }, + fieldValues))); + var fieldConstraints = $author$project$Morphir$Type$ConstraintSet$fromList( + _List_fromArray( + [ + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$Infer$metaTypeVarForValue(subjectValue), + extensibleRecordType), + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), + $author$project$Morphir$Type$Infer$metaTypeVarForValue(subjectValue)) + ])); + return $author$project$Morphir$Type$ConstraintSet$concat( + _List_fromArray( + [ + A3($author$project$Morphir$Type$Infer$constrainValue, ir, vars, subjectValue), + fieldValueConstraints, + fieldConstraints + ])); + default: + var _v37 = annotatedValue.a; + var thisTypeVar = _v37.b; + return $author$project$Morphir$Type$ConstraintSet$singleton( + A2( + $author$project$Morphir$Type$Constraint$equality, + $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), + $author$project$Morphir$Type$MetaType$metaUnit)); + } + }); +var $author$project$Morphir$Type$Solve$SolutionMap = function (a) { + return {$: 'SolutionMap', a: a}; +}; +var $author$project$Morphir$Type$Solve$emptySolution = $author$project$Morphir$Type$Solve$SolutionMap($elm$core$Dict$empty); +var $author$project$Morphir$Type$Infer$UnifyError = function (a) { + return {$: 'UnifyError', a: a}; +}; +var $author$project$Morphir$Type$MetaType$substituteVariable = F3( + function (_var, replacement, original) { + if (A2( + $elm$core$Set$member, + _var, + $author$project$Morphir$Type$MetaType$variables(original))) { + switch (original.$) { + case 'MetaVar': + var thisVar = original.a; + return _Utils_eq(thisVar, _var) ? replacement : original; + case 'MetaTuple': + var metaElems = original.b; + return $author$project$Morphir$Type$MetaType$metaTuple( + A2( + $elm$core$List$map, + A2($author$project$Morphir$Type$MetaType$substituteVariable, _var, replacement), + metaElems)); + case 'MetaRecord': + var _extends = original.b; + var metaFields = original.c; + return _Utils_eq( + _extends, + $elm$core$Maybe$Just(_var)) ? replacement : A2( + $author$project$Morphir$Type$MetaType$metaRecord, + _extends, + A2( + $elm$core$Dict$map, + F2( + function (_v1, fieldType) { + return A3($author$project$Morphir$Type$MetaType$substituteVariable, _var, replacement, fieldType); + }), + metaFields)); + case 'MetaFun': + var metaFunc = original.b; + var metaArg = original.c; + return A2( + $author$project$Morphir$Type$MetaType$metaFun, + A3($author$project$Morphir$Type$MetaType$substituteVariable, _var, replacement, metaFunc), + A3($author$project$Morphir$Type$MetaType$substituteVariable, _var, replacement, metaArg)); + case 'MetaRef': + var fQName = original.b; + var args = original.c; + var maybeAliasedType = original.d; + if (maybeAliasedType.$ === 'Just') { + var aliasedType = maybeAliasedType.a; + return A3( + $author$project$Morphir$Type$MetaType$metaAlias, + fQName, + A2( + $elm$core$List$map, + A2($author$project$Morphir$Type$MetaType$substituteVariable, _var, replacement), + args), + A3($author$project$Morphir$Type$MetaType$substituteVariable, _var, replacement, aliasedType)); + } else { + return A2( + $author$project$Morphir$Type$MetaType$metaRef, + fQName, + A2( + $elm$core$List$map, + A2($author$project$Morphir$Type$MetaType$substituteVariable, _var, replacement), + args)); + } + default: + return original; + } + } else { + return original; + } + }); +var $author$project$Morphir$Type$Constraint$substitute = F3( + function (_var, replacement, constraint) { + if (constraint.$ === 'Equality') { + var metaType1 = constraint.a; + var metaType2 = constraint.b; + return A2( + $author$project$Morphir$Type$Constraint$Equality, + A3($author$project$Morphir$Type$MetaType$substituteVariable, _var, replacement, metaType1), + A3($author$project$Morphir$Type$MetaType$substituteVariable, _var, replacement, metaType2)); + } else { + var metaType = constraint.a; + var cls = constraint.b; + return A2( + $author$project$Morphir$Type$Constraint$Class, + A3($author$project$Morphir$Type$MetaType$substituteVariable, _var, replacement, metaType), + cls); + } + }); +var $author$project$Morphir$Type$ConstraintSet$substituteVariable = F3( + function (_var, replacement, _v0) { + var constraints = _v0.a; + return $author$project$Morphir$Type$ConstraintSet$ConstraintSet( + A2( + $elm$core$List$filterMap, + function (constraint) { + var newConstraint = A3($author$project$Morphir$Type$Constraint$substitute, _var, replacement, constraint); + return $author$project$Morphir$Type$Constraint$isTrivial(newConstraint) ? $elm$core$Maybe$Nothing : $elm$core$Maybe$Just(newConstraint); + }, + constraints)); + }); +var $author$project$Morphir$Type$ConstraintSet$applySubstitutions = F2( + function (_v0, constraintSet) { + var substitutions = _v0.a; + return A3( + $elm$core$List$foldl, + F2( + function (_v1, soFar) { + var _var = _v1.a; + var replacement = _v1.b; + return A3($author$project$Morphir$Type$ConstraintSet$substituteVariable, _var, replacement, soFar); + }), + constraintSet, + $elm$core$Dict$toList(substitutions)); + }); +var $author$project$Morphir$Type$Solve$isEmptySolution = function (_v0) { + var solutions = _v0.a; + return $elm$core$Dict$isEmpty(solutions); +}; +var $author$project$Morphir$Type$Solve$CouldNotFindField = function (a) { + return {$: 'CouldNotFindField', a: a}; +}; +var $author$project$Morphir$Type$Solve$CouldNotUnify = F3( + function (a, b, c) { + return {$: 'CouldNotUnify', a: a, b: b, c: c}; + }); +var $author$project$Morphir$Type$Solve$FieldMismatch = {$: 'FieldMismatch'}; +var $author$project$Morphir$Type$Solve$NoUnificationRule = {$: 'NoUnificationRule'}; +var $author$project$Morphir$Type$Solve$RefMismatch = {$: 'RefMismatch'}; +var $author$project$Morphir$Type$Solve$TuplesOfDifferentSize = {$: 'TuplesOfDifferentSize'}; +var $author$project$Morphir$Type$Solve$UnificationErrors = function (a) { + return {$: 'UnificationErrors', a: a}; +}; +var $elm$core$Dict$diff = F2( + function (t1, t2) { + return A3( + $elm$core$Dict$foldl, + F3( + function (k, v, t) { + return A2($elm$core$Dict$remove, k, t); + }), + t1, + t2); + }); +var $elm$core$Dict$filter = F2( + function (isGood, dict) { + return A3( + $elm$core$Dict$foldl, + F3( + function (k, v, d) { + return A2(isGood, k, v) ? A3($elm$core$Dict$insert, k, v, d) : d; + }), + $elm$core$Dict$empty, + dict); + }); +var $elm$core$Dict$intersect = F2( + function (t1, t2) { + return A2( + $elm$core$Dict$filter, + F2( + function (k, _v0) { + return A2($elm$core$Dict$member, k, t2); + }), + t1); + }); +var $author$project$Morphir$Type$MetaType$wrapInAliases = F2( + function (aliases, tpe) { + if (!aliases.b) { + return tpe; + } else { + var _v1 = aliases.a; + var alias = _v1.a; + var aliasArgs = _v1.b; + var restOfAliases = aliases.b; + return A3( + $author$project$Morphir$Type$MetaType$metaAlias, + alias, + aliasArgs, + A2($author$project$Morphir$Type$MetaType$wrapInAliases, restOfAliases, tpe)); + } + }); +var $author$project$Morphir$Type$Solve$singleSolution = F3( + function (aliases, _var, metaType) { + return $author$project$Morphir$Type$Solve$SolutionMap( + A2( + $elm$core$Dict$singleton, + _var, + A2($author$project$Morphir$Type$MetaType$wrapInAliases, aliases, metaType))); + }); +var $author$project$Morphir$Type$Solve$substituteVariable = F3( + function (_var, replacement, _v0) { + var solutions = _v0.a; + return $author$project$Morphir$Type$Solve$SolutionMap( + A2( + $elm$core$Dict$map, + F2( + function (_v1, metaType) { + return A3($author$project$Morphir$Type$MetaType$substituteVariable, _var, replacement, metaType); + }), + solutions)); + }); +var $author$project$Morphir$Type$MetaType$substituteVariables = F2( + function (replacements, original) { + return A3( + $elm$core$List$foldl, + F2( + function (_v0, soFar) { + var _var = _v0.a; + var replacement = _v0.b; + return A3($author$project$Morphir$Type$MetaType$substituteVariable, _var, replacement, soFar); + }), + original, + replacements); + }); +var $author$project$Morphir$Type$Solve$unifyUnit = F2( + function (aliases, metaType2) { + if (metaType2.$ === 'MetaUnit') { + return $elm$core$Result$Ok($author$project$Morphir$Type$Solve$emptySolution); + } else { + return $elm$core$Result$Err( + A3($author$project$Morphir$Type$Solve$CouldNotUnify, $author$project$Morphir$Type$Solve$NoUnificationRule, $author$project$Morphir$Type$MetaType$MetaUnit, metaType2)); + } + }); +var $author$project$Morphir$Type$MetaType$isNamedVariable = function (_v0) { + var name = _v0.a; + return !$elm$core$List$isEmpty(name); +}; +var $author$project$Morphir$Type$Solve$unifyVariable = F3( + function (aliases, var1, metaType2) { + if (metaType2.$ === 'MetaVar') { + var var2 = metaType2.a; + return $author$project$Morphir$Type$MetaType$isNamedVariable(var1) ? $elm$core$Result$Ok( + A3( + $author$project$Morphir$Type$Solve$singleSolution, + aliases, + var2, + $author$project$Morphir$Type$MetaType$metaVar(var1))) : $elm$core$Result$Ok( + A3($author$project$Morphir$Type$Solve$singleSolution, aliases, var1, metaType2)); + } else { + return $elm$core$Result$Ok( + A3($author$project$Morphir$Type$Solve$singleSolution, aliases, var1, metaType2)); + } + }); +var $author$project$Morphir$Type$Solve$addSolution = F4( + function (ir, _var, newSolution, _v14) { + var currentSolutions = _v14.a; + var substitutedNewSolution = A3( + $elm$core$List$foldl, + F2( + function (_v17, soFar) { + var currentVar = _v17.a; + var currentMetaType = _v17.b; + return A3($author$project$Morphir$Type$MetaType$substituteVariable, currentVar, currentMetaType, soFar); + }), + newSolution, + $elm$core$Dict$toList(currentSolutions)); + var _v15 = A2($elm$core$Dict$get, _var, currentSolutions); + if (_v15.$ === 'Just') { + var existingSolution = _v15.a; + return A2( + $elm$core$Result$map, + function (_v16) { + var newSubstitutions = _v16.a; + return A3( + $author$project$Morphir$Type$Solve$substituteVariable, + _var, + substitutedNewSolution, + $author$project$Morphir$Type$Solve$SolutionMap( + A2( + $elm$core$Dict$union, + newSubstitutions, + A3( + $elm$core$Dict$insert, + _var, + A2( + $author$project$Morphir$Type$MetaType$substituteVariables, + $elm$core$Dict$toList(newSubstitutions), + existingSolution), + currentSolutions)))); + }, + A4($author$project$Morphir$Type$Solve$unifyMetaType, ir, _List_Nil, existingSolution, substitutedNewSolution)); + } else { + return $elm$core$Result$Ok( + A3( + $author$project$Morphir$Type$Solve$substituteVariable, + _var, + substitutedNewSolution, + $author$project$Morphir$Type$Solve$SolutionMap( + A3($elm$core$Dict$insert, _var, substitutedNewSolution, currentSolutions)))); + } + }); +var $author$project$Morphir$Type$Solve$concatSolutions = F2( + function (refs, solutionMaps) { + return A3( + $elm$core$List$foldl, + F2( + function (nextSolutions, resultSoFar) { + return A2( + $elm$core$Result$andThen, + function (solutionsSoFar) { + return A3($author$project$Morphir$Type$Solve$mergeSolutions, refs, solutionsSoFar, nextSolutions); + }, + resultSoFar); + }), + $elm$core$Result$Ok($author$project$Morphir$Type$Solve$emptySolution), + solutionMaps); + }); +var $author$project$Morphir$Type$Solve$mergeSolutions = F3( + function (refs, _v12, currentSolutions) { + var newSolutions = _v12.a; + return A3( + $elm$core$List$foldl, + F2( + function (_v13, solutionsSoFar) { + var _var = _v13.a; + var newSolution = _v13.b; + return A2( + $elm$core$Result$andThen, + A3($author$project$Morphir$Type$Solve$addSolution, refs, _var, newSolution), + solutionsSoFar); + }), + $elm$core$Result$Ok(currentSolutions), + $elm$core$Dict$toList(newSolutions)); + }); +var $author$project$Morphir$Type$Solve$unifyFields = F5( + function (ir, oldExtends, oldFields, newExtends, newFields) { + var extraOldFields = A2($elm$core$Dict$diff, oldFields, newFields); + var extraNewFields = A2($elm$core$Dict$diff, newFields, oldFields); + var commonFieldsOldType = A2($elm$core$Dict$intersect, oldFields, newFields); + var fieldSolutionsResult = A2( + $elm$core$Result$andThen, + $author$project$Morphir$Type$Solve$concatSolutions(ir), + A2( + $elm$core$Result$mapError, + $author$project$Morphir$Type$Solve$UnificationErrors, + $author$project$Morphir$ListOfResults$liftAllErrors( + A2( + $elm$core$List$map, + function (_v11) { + var fieldName = _v11.a; + var originalType = _v11.b; + return A2( + $elm$core$Result$andThen, + A3($author$project$Morphir$Type$Solve$unifyMetaType, ir, _List_Nil, originalType), + A2( + $elm$core$Result$fromMaybe, + $author$project$Morphir$Type$Solve$CouldNotFindField(fieldName), + A2($elm$core$Dict$get, fieldName, newFields))); + }, + $elm$core$Dict$toList(commonFieldsOldType))))); + var unifiedFields = A2( + $elm$core$Dict$union, + commonFieldsOldType, + A2($elm$core$Dict$union, extraOldFields, extraNewFields)); + return (_Utils_eq(oldExtends, $elm$core$Maybe$Nothing) && (!$elm$core$Dict$isEmpty(extraNewFields))) ? $elm$core$Result$Err( + A3( + $author$project$Morphir$Type$Solve$CouldNotUnify, + $author$project$Morphir$Type$Solve$FieldMismatch, + A2($author$project$Morphir$Type$MetaType$metaRecord, oldExtends, oldFields), + A2($author$project$Morphir$Type$MetaType$metaRecord, newExtends, newFields))) : ((_Utils_eq(newExtends, $elm$core$Maybe$Nothing) && (!$elm$core$Dict$isEmpty(extraOldFields))) ? $elm$core$Result$Err( + A3( + $author$project$Morphir$Type$Solve$CouldNotUnify, + $author$project$Morphir$Type$Solve$FieldMismatch, + A2($author$project$Morphir$Type$MetaType$metaRecord, oldExtends, oldFields), + A2($author$project$Morphir$Type$MetaType$metaRecord, newExtends, newFields))) : A2( + $elm$core$Result$map, + $elm$core$Tuple$pair(unifiedFields), + fieldSolutionsResult)); + }); +var $author$project$Morphir$Type$Solve$unifyFun = F5( + function (ir, aliases, arg1, return1, metaType2) { + if (metaType2.$ === 'MetaFun') { + var arg2 = metaType2.b; + var return2 = metaType2.c; + return A2( + $elm$core$Result$andThen, + $elm$core$Basics$identity, + A3( + $elm$core$Result$map2, + $author$project$Morphir$Type$Solve$mergeSolutions(ir), + A4($author$project$Morphir$Type$Solve$unifyMetaType, ir, _List_Nil, arg1, arg2), + A4($author$project$Morphir$Type$Solve$unifyMetaType, ir, _List_Nil, return1, return2))); + } else { + return $elm$core$Result$Err( + A3( + $author$project$Morphir$Type$Solve$CouldNotUnify, + $author$project$Morphir$Type$Solve$NoUnificationRule, + A2($author$project$Morphir$Type$MetaType$metaFun, arg1, return1), + metaType2)); + } + }); +var $author$project$Morphir$Type$Solve$unifyMetaType = F4( + function (ir, aliases, metaType1, metaType2) { + unifyMetaType: + while (true) { + var handleCommon = F2( + function (mt2, specific) { + _v9$2: + while (true) { + switch (mt2.$) { + case 'MetaVar': + var var2 = mt2.a; + return A3($author$project$Morphir$Type$Solve$unifyVariable, aliases, var2, metaType1); + case 'MetaRef': + if (mt2.d.$ === 'Just') { + var ref2 = mt2.b; + var args2 = mt2.c; + var aliasedType2 = mt2.d.a; + return A4( + $author$project$Morphir$Type$Solve$unifyMetaType, + ir, + A2( + $elm$core$List$cons, + _Utils_Tuple2(ref2, args2), + aliases), + aliasedType2, + metaType1); + } else { + break _v9$2; + } + default: + break _v9$2; + } + } + return specific(mt2); + }); + if (_Utils_eq(metaType1, metaType2)) { + return $elm$core$Result$Ok($author$project$Morphir$Type$Solve$emptySolution); + } else { + switch (metaType1.$) { + case 'MetaVar': + var var1 = metaType1.a; + return A3($author$project$Morphir$Type$Solve$unifyVariable, aliases, var1, metaType2); + case 'MetaTuple': + var elems1 = metaType1.b; + return A2( + handleCommon, + metaType2, + A3($author$project$Morphir$Type$Solve$unifyTuple, ir, aliases, elems1)); + case 'MetaRef': + if (metaType1.d.$ === 'Nothing') { + var ref1 = metaType1.b; + var args1 = metaType1.c; + var _v8 = metaType1.d; + return A2( + handleCommon, + metaType2, + A4($author$project$Morphir$Type$Solve$unifyRef, ir, aliases, ref1, args1)); + } else { + var ref1 = metaType1.b; + var args1 = metaType1.c; + var aliasedType1 = metaType1.d.a; + var $temp$ir = ir, + $temp$aliases = A2( + $elm$core$List$cons, + _Utils_Tuple2(ref1, args1), + aliases), + $temp$metaType1 = aliasedType1, + $temp$metaType2 = metaType2; + ir = $temp$ir; + aliases = $temp$aliases; + metaType1 = $temp$metaType1; + metaType2 = $temp$metaType2; + continue unifyMetaType; + } + case 'MetaFun': + var arg1 = metaType1.b; + var return1 = metaType1.c; + return A2( + handleCommon, + metaType2, + A4($author$project$Morphir$Type$Solve$unifyFun, ir, aliases, arg1, return1)); + case 'MetaRecord': + var extends1 = metaType1.b; + var fields1 = metaType1.c; + return A2( + handleCommon, + metaType2, + A4($author$project$Morphir$Type$Solve$unifyRecord, ir, aliases, extends1, fields1)); + default: + return A2( + handleCommon, + metaType2, + $author$project$Morphir$Type$Solve$unifyUnit(aliases)); + } + } + } + }); +var $author$project$Morphir$Type$Solve$unifyRecord = F5( + function (refs, aliases, extends1, fields1, metaType2) { + if (metaType2.$ === 'MetaRecord') { + var extends2 = metaType2.b; + var fields2 = metaType2.c; + return A2( + $elm$core$Result$andThen, + function (_v4) { + var newFields = _v4.a; + var fieldSolutions = _v4.b; + if (extends1.$ === 'Just') { + var extendsVar1 = extends1.a; + return A3( + $author$project$Morphir$Type$Solve$mergeSolutions, + refs, + fieldSolutions, + A3( + $author$project$Morphir$Type$Solve$singleSolution, + aliases, + extendsVar1, + A2($author$project$Morphir$Type$MetaType$metaRecord, extends2, newFields))); + } else { + if (extends2.$ === 'Just') { + var extendsVar2 = extends2.a; + return A3( + $author$project$Morphir$Type$Solve$mergeSolutions, + refs, + fieldSolutions, + A3( + $author$project$Morphir$Type$Solve$singleSolution, + aliases, + extendsVar2, + A2($author$project$Morphir$Type$MetaType$metaRecord, extends1, newFields))); + } else { + return $elm$core$Result$Ok(fieldSolutions); + } + } + }, + A5($author$project$Morphir$Type$Solve$unifyFields, refs, extends1, fields1, extends2, fields2)); + } else { + return $elm$core$Result$Err( + A3( + $author$project$Morphir$Type$Solve$CouldNotUnify, + $author$project$Morphir$Type$Solve$NoUnificationRule, + A2($author$project$Morphir$Type$MetaType$metaRecord, extends1, fields1), + metaType2)); + } + }); +var $author$project$Morphir$Type$Solve$unifyRef = F5( + function (ir, aliases, ref1, args1, metaType2) { + _v1$2: + while (true) { + switch (metaType2.$) { + case 'MetaRef': + if (metaType2.d.$ === 'Nothing') { + var ref2 = metaType2.b; + var args2 = metaType2.c; + var _v2 = metaType2.d; + return _Utils_eq(ref1, ref2) ? (_Utils_eq( + $elm$core$List$length(args1), + $elm$core$List$length(args2)) ? A2( + $elm$core$Result$andThen, + $author$project$Morphir$Type$Solve$concatSolutions(ir), + A2( + $elm$core$Result$mapError, + $author$project$Morphir$Type$Solve$UnificationErrors, + $author$project$Morphir$ListOfResults$liftAllErrors( + A3( + $elm$core$List$map2, + A2($author$project$Morphir$Type$Solve$unifyMetaType, ir, _List_Nil), + args1, + args2)))) : $elm$core$Result$Err( + A3( + $author$project$Morphir$Type$Solve$CouldNotUnify, + $author$project$Morphir$Type$Solve$TuplesOfDifferentSize, + A2($author$project$Morphir$Type$MetaType$metaRef, ref1, args1), + metaType2))) : $elm$core$Result$Err( + A3( + $author$project$Morphir$Type$Solve$CouldNotUnify, + $author$project$Morphir$Type$Solve$RefMismatch, + A2($author$project$Morphir$Type$MetaType$metaRef, ref1, args1), + metaType2)); + } else { + break _v1$2; + } + case 'MetaRecord': + var extends2 = metaType2.b; + var fields2 = metaType2.c; + return A5( + $author$project$Morphir$Type$Solve$unifyRecord, + ir, + aliases, + extends2, + fields2, + A2($author$project$Morphir$Type$MetaType$metaRef, ref1, args1)); + default: + break _v1$2; + } + } + return $elm$core$Result$Err( + A3( + $author$project$Morphir$Type$Solve$CouldNotUnify, + $author$project$Morphir$Type$Solve$NoUnificationRule, + A2($author$project$Morphir$Type$MetaType$metaRef, ref1, args1), + metaType2)); + }); +var $author$project$Morphir$Type$Solve$unifyTuple = F4( + function (ir, aliases, elems1, metaType2) { + if (metaType2.$ === 'MetaTuple') { + var elems2 = metaType2.b; + return _Utils_eq( + $elm$core$List$length(elems1), + $elm$core$List$length(elems2)) ? A2( + $elm$core$Result$andThen, + $author$project$Morphir$Type$Solve$concatSolutions(ir), + A2( + $elm$core$Result$mapError, + $author$project$Morphir$Type$Solve$UnificationErrors, + $author$project$Morphir$ListOfResults$liftAllErrors( + A3( + $elm$core$List$map2, + A2($author$project$Morphir$Type$Solve$unifyMetaType, ir, _List_Nil), + elems1, + elems2)))) : $elm$core$Result$Err( + A3( + $author$project$Morphir$Type$Solve$CouldNotUnify, + $author$project$Morphir$Type$Solve$TuplesOfDifferentSize, + $author$project$Morphir$Type$MetaType$metaTuple(elems1), + metaType2)); + } else { + return $elm$core$Result$Err( + A3( + $author$project$Morphir$Type$Solve$CouldNotUnify, + $author$project$Morphir$Type$Solve$NoUnificationRule, + $author$project$Morphir$Type$MetaType$metaTuple(elems1), + metaType2)); + } + }); +var $author$project$Morphir$Type$Solve$findSubstitution = F2( + function (ir, constraints) { + findSubstitution: + while (true) { + if (!constraints.b) { + return $elm$core$Result$Ok($elm$core$Maybe$Nothing); + } else { + var firstConstraint = constraints.a; + var restOfConstraints = constraints.b; + if (firstConstraint.$ === 'Equality') { + var metaType1 = firstConstraint.a; + var metaType2 = firstConstraint.b; + return A2( + $elm$core$Result$andThen, + function (solutions) { + return $author$project$Morphir$Type$Solve$isEmptySolution(solutions) ? A2($author$project$Morphir$Type$Solve$findSubstitution, ir, restOfConstraints) : $elm$core$Result$Ok( + $elm$core$Maybe$Just(solutions)); + }, + A4($author$project$Morphir$Type$Solve$unifyMetaType, ir, _List_Nil, metaType1, metaType2)); + } else { + var $temp$ir = ir, + $temp$constraints = restOfConstraints; + ir = $temp$ir; + constraints = $temp$constraints; + continue findSubstitution; + } + } + } + }); +var $author$project$Morphir$Type$Infer$ClassConstraintViolation = F2( + function (a, b) { + return {$: 'ClassConstraintViolation', a: a, b: b}; + }); +var $elm$core$List$member = F2( + function (x, xs) { + return A2( + $elm$core$List$any, + function (a) { + return _Utils_eq(a, x); + }, + xs); + }); +var $author$project$Morphir$Type$MetaType$intType = A2( + $author$project$Morphir$Type$MetaType$metaRef, + A3($author$project$Morphir$IR$FQName$fqn, 'Morphir.SDK', 'Basics', 'Int'), + _List_Nil); +var $author$project$Morphir$Type$Class$numberTypes = _List_fromArray( + [$author$project$Morphir$Type$MetaType$intType, $author$project$Morphir$Type$MetaType$floatType]); +var $author$project$Morphir$Type$Class$member = F2( + function (metaType, _class) { + var targetType = function (mt) { + targetType: + while (true) { + if ((mt.$ === 'MetaRef') && (mt.d.$ === 'Just')) { + var t = mt.d.a; + var $temp$mt = t; + mt = $temp$mt; + continue targetType; + } else { + return mt; + } + } + }; + return A2( + $elm$core$List$member, + targetType(metaType), + $author$project$Morphir$Type$Class$numberTypes); + }); +var $author$project$Morphir$Type$Infer$TypeErrors = function (a) { + return {$: 'TypeErrors', a: a}; +}; +var $author$project$Morphir$Type$Infer$typeErrors = function (errors) { + if (errors.b && (!errors.b.b)) { + var single = errors.a; + return single; + } else { + return $author$project$Morphir$Type$Infer$TypeErrors(errors); + } +}; +var $author$project$Morphir$Type$Infer$validateConstraints = function (constraints) { + return A2( + $elm$core$Result$mapError, + $author$project$Morphir$Type$Infer$typeErrors, + $author$project$Morphir$ListOfResults$liftAllErrors( + A2( + $elm$core$List$map, + function (constraint) { + if (constraint.$ === 'Class') { + if (constraint.a.$ === 'MetaVar') { + return $elm$core$Result$Ok(constraint); + } else { + var metaType = constraint.a; + var _class = constraint.b; + return A2($author$project$Morphir$Type$Class$member, metaType, _class) ? $elm$core$Result$Ok(constraint) : $elm$core$Result$Err( + A2($author$project$Morphir$Type$Infer$ClassConstraintViolation, metaType, _class)); + } + } else { + return $elm$core$Result$Ok(constraint); + } + }, + constraints))); +}; +var $author$project$Morphir$Type$Infer$solveHelp = F3( + function (refs, solutionsSoFar, constraintSet) { + var constraints = constraintSet.a; + return A2( + $elm$core$Result$andThen, + function (nonTrivialConstraints) { + return A2( + $elm$core$Result$andThen, + function (maybeNewSolutions) { + if (maybeNewSolutions.$ === 'Nothing') { + return $elm$core$Result$Ok( + _Utils_Tuple2( + $author$project$Morphir$Type$ConstraintSet$fromList(nonTrivialConstraints), + solutionsSoFar)); + } else { + var newSolutions = maybeNewSolutions.a; + return A2( + $elm$core$Result$andThen, + function (mergedSolutions) { + return A3( + $author$project$Morphir$Type$Infer$solveHelp, + refs, + mergedSolutions, + A2($author$project$Morphir$Type$ConstraintSet$applySubstitutions, mergedSolutions, constraintSet)); + }, + A2( + $elm$core$Result$mapError, + $author$project$Morphir$Type$Infer$UnifyError, + A3($author$project$Morphir$Type$Solve$mergeSolutions, refs, newSolutions, solutionsSoFar))); + } + }, + A2( + $elm$core$Result$mapError, + $author$project$Morphir$Type$Infer$UnifyError, + A2($author$project$Morphir$Type$Solve$findSubstitution, refs, nonTrivialConstraints))); + }, + $author$project$Morphir$Type$Infer$validateConstraints(constraints)); + }); +var $author$project$Morphir$Type$Infer$solve = F2( + function (refs, constraintSet) { + return A3($author$project$Morphir$Type$Infer$solveHelp, refs, $author$project$Morphir$Type$Solve$emptySolution, constraintSet); + }); +var $author$project$Morphir$Type$Infer$inferValue = F2( + function (ir, untypedValue) { + var _v0 = A2($author$project$Morphir$Type$Infer$annotateValue, 0, untypedValue); + var annotatedValue = _v0.a; + var lastVarIndex = _v0.b; + var constraints = A3($author$project$Morphir$Type$Infer$constrainValue, ir, $elm$core$Dict$empty, annotatedValue); + var solution = A2($author$project$Morphir$Type$Infer$solve, ir, constraints); + return A2( + $elm$core$Result$map, + $author$project$Morphir$Type$Infer$applySolutionToAnnotatedValue(annotatedValue), + solution); + }); +var $author$project$Morphir$Visual$VisualTypedValue$rawToVisualTypedValue = F2( + function (references, rawValue) { + return A2( + $elm$core$Result$andThen, + function (typedValue) { + return $elm$core$Result$Ok( + $author$project$Morphir$Visual$VisualTypedValue$typedToVisualTypedValue( + A3( + $author$project$Morphir$IR$Value$mapValueAttributes, + $elm$core$Basics$identity, + function (_v0) { + var tpe = _v0.b; + return tpe; + }, + typedValue))); + }, + A2($author$project$Morphir$Type$Infer$inferValue, references, rawValue)); + }); +var $mdgriffith$elm_ui$Internal$Model$boxShadowClass = function (shadow) { + return $elm$core$String$concat( + _List_fromArray( + [ + shadow.inset ? 'box-inset' : 'box-', + $mdgriffith$elm_ui$Internal$Model$floatClass(shadow.offset.a) + 'px', + $mdgriffith$elm_ui$Internal$Model$floatClass(shadow.offset.b) + 'px', + $mdgriffith$elm_ui$Internal$Model$floatClass(shadow.blur) + 'px', + $mdgriffith$elm_ui$Internal$Model$floatClass(shadow.size) + 'px', + $mdgriffith$elm_ui$Internal$Model$formatColorClass(shadow.color) + ])); +}; +var $mdgriffith$elm_ui$Internal$Flag$shadows = $mdgriffith$elm_ui$Internal$Flag$flag(19); +var $mdgriffith$elm_ui$Element$Border$shadow = function (almostShade) { + var shade = {blur: almostShade.blur, color: almostShade.color, inset: false, offset: almostShade.offset, size: almostShade.size}; + return A2( + $mdgriffith$elm_ui$Internal$Model$StyleClass, + $mdgriffith$elm_ui$Internal$Flag$shadows, + A3( + $mdgriffith$elm_ui$Internal$Model$Single, + $mdgriffith$elm_ui$Internal$Model$boxShadowClass(shade), + 'box-shadow', + $mdgriffith$elm_ui$Internal$Model$formatBoxShadow(shade))); +}; +var $elm$virtual_dom$VirtualDom$style = _VirtualDom_style; +var $elm$html$Html$Attributes$style = $elm$virtual_dom$VirtualDom$style; +var $author$project$Morphir$Type$Class$toString = function (_class) { + return 'number'; +}; +var $author$project$Morphir$IR$Name$toSnakeCase = function (name) { + return A2( + $elm$core$String$join, + '_', + $author$project$Morphir$IR$Name$toHumanWords(name)); +}; +var $author$project$Morphir$Type$MetaType$toString = function (metaType) { + switch (metaType.$) { + case 'MetaVar': + var _var = metaType.a; + return 'var_' + $author$project$Morphir$IR$Name$toSnakeCase( + $author$project$Morphir$Type$MetaType$toName(_var)); + case 'MetaRef': + var fQName = metaType.b; + var args = metaType.c; + var maybeAliasedType = metaType.d; + var refString = $elm$core$List$isEmpty(args) ? $author$project$Morphir$IR$FQName$toString(fQName) : A2( + $elm$core$String$join, + ' ', + _List_fromArray( + [ + $author$project$Morphir$IR$FQName$toString(fQName), + A2( + $elm$core$String$join, + ' ', + A2( + $elm$core$List$map, + function (arg) { + return $elm$core$String$concat( + _List_fromArray( + [ + '(', + $author$project$Morphir$Type$MetaType$toString(arg), + ')' + ])); + }, + args)) + ])); + if (maybeAliasedType.$ === 'Just') { + var aliasedType = maybeAliasedType.a; + return $elm$core$String$concat( + _List_fromArray( + [ + refString, + ' = ', + $author$project$Morphir$Type$MetaType$toString(aliasedType) + ])); + } else { + return refString; + } + case 'MetaTuple': + var metaTypes = metaType.b; + return $elm$core$String$concat( + _List_fromArray( + [ + '( ', + A2( + $elm$core$String$join, + ', ', + A2($elm$core$List$map, $author$project$Morphir$Type$MetaType$toString, metaTypes)), + ' )' + ])); + case 'MetaRecord': + var _extends = metaType.b; + var fields = metaType.c; + var prefix = function () { + if (_extends.$ === 'Just') { + var _var = _extends.a; + return 'var_' + $author$project$Morphir$IR$Name$toSnakeCase( + $author$project$Morphir$Type$MetaType$toName(_var)); + } else { + return ''; + } + }(); + var fieldStrings = A2( + $elm$core$List$map, + function (_v2) { + var fieldName = _v2.a; + var fieldType = _v2.b; + return $elm$core$String$concat( + _List_fromArray( + [ + $author$project$Morphir$IR$Name$toCamelCase(fieldName), + ' : ', + $author$project$Morphir$Type$MetaType$toString(fieldType) + ])); + }, + $elm$core$Dict$toList(fields)); + return $elm$core$String$concat( + _List_fromArray( + [ + '{ ', + prefix, + A2($elm$core$String$join, ', ', fieldStrings), + ' }' + ])); + case 'MetaFun': + var argType = metaType.b; + var returnType = metaType.c; + return $elm$core$String$concat( + _List_fromArray( + [ + $author$project$Morphir$Type$MetaType$toString(argType), + ' -> ', + $author$project$Morphir$Type$MetaType$toString(returnType) + ])); + default: + return '()'; + } +}; +var $author$project$Morphir$Type$Infer$typeErrorToMessage = function (typeError) { + switch (typeError.$) { + case 'TypeErrors': + var errors = typeError.a; + return $elm$core$String$concat( + _List_fromArray( + [ + 'Multiple errors: ', + A2( + $elm$core$String$join, + ', ', + A2($elm$core$List$map, $author$project$Morphir$Type$Infer$typeErrorToMessage, errors)) + ])); + case 'ClassConstraintViolation': + var metaType = typeError.a; + var _class = typeError.b; + return $elm$core$String$concat( + _List_fromArray( + [ + 'Type \'', + $author$project$Morphir$Type$MetaType$toString(metaType), + '\' is not a ', + $author$project$Morphir$Type$Class$toString(_class) + ])); + case 'LookupError': + var lookupError = typeError.a; + switch (lookupError.$) { + case 'CouldNotFindConstructor': + var fQName = lookupError.a; + return $elm$core$String$concat( + _List_fromArray( + [ + 'Could not find constructor: ', + $author$project$Morphir$IR$FQName$toString(fQName) + ])); + case 'CouldNotFindValue': + var fQName = lookupError.a; + return $elm$core$String$concat( + _List_fromArray( + [ + 'Could not find value: ', + $author$project$Morphir$IR$FQName$toString(fQName) + ])); + case 'CouldNotFindAlias': + var fQName = lookupError.a; + return $elm$core$String$concat( + _List_fromArray( + [ + 'Could not find alias: ', + $author$project$Morphir$IR$FQName$toString(fQName) + ])); + default: + var fQName = lookupError.a; + return $elm$core$String$concat( + _List_fromArray( + [ + 'Expected alias at: ', + $author$project$Morphir$IR$FQName$toString(fQName) + ])); + } + case 'UnknownError': + var message = typeError.a; + return $elm$core$String$concat( + _List_fromArray( + ['Unknown error: ', message])); + default: + var unificationError = typeError.a; + var mapUnificationError = function (uniError) { + switch (uniError.$) { + case 'CouldNotUnify': + var errorType = uniError.a; + var metaType1 = uniError.b; + var metaType2 = uniError.c; + var cause = function () { + switch (errorType.$) { + case 'NoUnificationRule': + return 'there are no unification rules to apply'; + case 'TuplesOfDifferentSize': + return 'they are tuples of different sizes'; + case 'RefMismatch': + return 'the references do not match'; + default: + return 'the fields don\'t match'; + } + }(); + return $elm$core$String$concat( + _List_fromArray( + [ + 'Could not unify \'', + $author$project$Morphir$Type$MetaType$toString(metaType1), + '\' with \'', + $author$project$Morphir$Type$MetaType$toString(metaType2), + '\' because ', + cause + ])); + case 'UnificationErrors': + var unificationErrors = uniError.a; + return A2( + $elm$core$String$join, + '. ', + A2($elm$core$List$map, mapUnificationError, unificationErrors)); + default: + var name = uniError.a; + return $elm$core$String$concat( + _List_fromArray( + [ + 'Could not find field \'', + $author$project$Morphir$IR$Name$toCamelCase(name), + '\'' + ])); + } + }; + return mapUnificationError(unificationError); + } +}; +var $mdgriffith$elm_ui$Internal$Model$AlignX = function (a) { + return {$: 'AlignX', a: a}; +}; +var $mdgriffith$elm_ui$Internal$Model$CenterX = {$: 'CenterX'}; +var $mdgriffith$elm_ui$Element$centerX = $mdgriffith$elm_ui$Internal$Model$AlignX($mdgriffith$elm_ui$Internal$Model$CenterX); +var $author$project$Morphir$Visual$ViewApply$inlineBinaryOperators = $elm$core$Dict$fromList( + _List_fromArray( + [ + _Utils_Tuple2('Basics.equal', '='), + _Utils_Tuple2('Basics.lessThan', '<'), + _Utils_Tuple2('Basics.lessThanOrEqual', '<='), + _Utils_Tuple2('Basics.greaterThan', '>'), + _Utils_Tuple2('Basics.greaterThanOrEqual', '>='), + _Utils_Tuple2('Basics.add', '+'), + _Utils_Tuple2('Basics.subtract', '-'), + _Utils_Tuple2('Basics.multiply', '*'), + _Utils_Tuple2('Basics.divide', '/'), + _Utils_Tuple2('List.append', '+') + ])); +var $mdgriffith$elm_ui$Internal$Model$MoveY = function (a) { + return {$: 'MoveY', a: a}; +}; +var $mdgriffith$elm_ui$Internal$Model$TransformComponent = F2( + function (a, b) { + return {$: 'TransformComponent', a: a, b: b}; + }); +var $mdgriffith$elm_ui$Internal$Flag$moveY = $mdgriffith$elm_ui$Internal$Flag$flag(26); +var $mdgriffith$elm_ui$Element$moveUp = function (y) { + return A2( + $mdgriffith$elm_ui$Internal$Model$TransformComponent, + $mdgriffith$elm_ui$Internal$Flag$moveY, + $mdgriffith$elm_ui$Internal$Model$MoveY(-y)); +}; +var $mdgriffith$elm_ui$Internal$Model$BorderWidth = F5( + function (a, b, c, d, e) { + return {$: 'BorderWidth', a: a, b: b, c: c, d: d, e: e}; + }); +var $mdgriffith$elm_ui$Element$Border$width = function (v) { + return A2( + $mdgriffith$elm_ui$Internal$Model$StyleClass, + $mdgriffith$elm_ui$Internal$Flag$borderWidth, + A5( + $mdgriffith$elm_ui$Internal$Model$BorderWidth, + 'b-' + $elm$core$String$fromInt(v), + v, + v, + v, + v)); +}; +var $mdgriffith$elm_ui$Element$Border$widthXY = F2( + function (x, y) { + return A2( + $mdgriffith$elm_ui$Internal$Model$StyleClass, + $mdgriffith$elm_ui$Internal$Flag$borderWidth, + A5( + $mdgriffith$elm_ui$Internal$Model$BorderWidth, + 'b-' + ($elm$core$String$fromInt(x) + ('-' + $elm$core$String$fromInt(y))), + y, + x, + y, + x)); + }); +var $mdgriffith$elm_ui$Element$Border$widthEach = function (_v0) { + var bottom = _v0.bottom; + var top = _v0.top; + var left = _v0.left; + var right = _v0.right; + return (_Utils_eq(top, bottom) && _Utils_eq(left, right)) ? (_Utils_eq(top, right) ? $mdgriffith$elm_ui$Element$Border$width(top) : A2($mdgriffith$elm_ui$Element$Border$widthXY, left, top)) : A2( + $mdgriffith$elm_ui$Internal$Model$StyleClass, + $mdgriffith$elm_ui$Internal$Flag$borderWidth, + A5( + $mdgriffith$elm_ui$Internal$Model$BorderWidth, + 'b-' + ($elm$core$String$fromInt(top) + ('-' + ($elm$core$String$fromInt(right) + ('-' + ($elm$core$String$fromInt(bottom) + ('-' + $elm$core$String$fromInt(left))))))), + top, + right, + bottom, + left)); +}; +var $author$project$Morphir$Visual$ViewApply$view = F4( + function (config, viewValue, functionValue, argValues) { + var _v0 = _Utils_Tuple2(functionValue, argValues); + _v0$4: + while (true) { + if ((_v0.a.$ === 'Reference') && _v0.b.b) { + if (!_v0.b.b.b) { + if (_v0.a.b.c.b) { + switch (_v0.a.b.c.a) { + case 'is': + var _v1 = _v0.a; + var _v2 = _v1.b; + var localName = _v2.c; + var _v3 = _v0.b; + var argValue = _v3.a; + return A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) + ]), + _List_fromArray( + [ + viewValue(argValue), + $mdgriffith$elm_ui$Element$text( + $author$project$Morphir$Visual$Common$nameToText(localName)) + ])); + case 'negate': + if ((((((((((((((((((_v0.a.b.a.b && _v0.a.b.a.a.b) && (_v0.a.b.a.a.a === 'morphir')) && (!_v0.a.b.a.a.b.b)) && _v0.a.b.a.b.b) && _v0.a.b.a.b.a.b) && (_v0.a.b.a.b.a.a === 's')) && _v0.a.b.a.b.a.b.b) && (_v0.a.b.a.b.a.b.a === 'd')) && _v0.a.b.a.b.a.b.b.b) && (_v0.a.b.a.b.a.b.b.a === 'k')) && (!_v0.a.b.a.b.a.b.b.b.b)) && (!_v0.a.b.a.b.b.b)) && _v0.a.b.b.b) && _v0.a.b.b.a.b) && (_v0.a.b.b.a.a === 'basics')) && (!_v0.a.b.b.a.b.b)) && (!_v0.a.b.b.b.b)) && (!_v0.a.b.c.b.b)) { + var _v4 = _v0.a; + var _v5 = _v4.b; + var _v6 = _v5.a; + var _v7 = _v6.a; + var _v8 = _v6.b; + var _v9 = _v8.a; + var _v10 = _v9.b; + var _v11 = _v10.b; + var _v12 = _v5.b; + var _v13 = _v12.a; + var _v14 = _v5.c; + var _v15 = _v0.b; + var argValue = _v15.a; + return A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) + ]), + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$text('- ('), + viewValue(argValue), + $mdgriffith$elm_ui$Element$text(')') + ])); + } else { + break _v0$4; + } + case 'abs': + if ((((((((((((((((((_v0.a.b.a.b && _v0.a.b.a.a.b) && (_v0.a.b.a.a.a === 'morphir')) && (!_v0.a.b.a.a.b.b)) && _v0.a.b.a.b.b) && _v0.a.b.a.b.a.b) && (_v0.a.b.a.b.a.a === 's')) && _v0.a.b.a.b.a.b.b) && (_v0.a.b.a.b.a.b.a === 'd')) && _v0.a.b.a.b.a.b.b.b) && (_v0.a.b.a.b.a.b.b.a === 'k')) && (!_v0.a.b.a.b.a.b.b.b.b)) && (!_v0.a.b.a.b.b.b)) && _v0.a.b.b.b) && _v0.a.b.b.a.b) && (_v0.a.b.b.a.a === 'basics')) && (!_v0.a.b.b.a.b.b)) && (!_v0.a.b.b.b.b)) && (!_v0.a.b.c.b.b)) { + var _v16 = _v0.a; + var _v17 = _v16.b; + var _v18 = _v17.a; + var _v19 = _v18.a; + var _v20 = _v18.b; + var _v21 = _v20.a; + var _v22 = _v21.b; + var _v23 = _v22.b; + var _v24 = _v17.b; + var _v25 = _v24.a; + var _v26 = _v17.c; + var _v27 = _v0.b; + var argValue = _v27.a; + return A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) + ]), + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$text('abs ('), + viewValue(argValue), + $mdgriffith$elm_ui$Element$text(')') + ])); + } else { + break _v0$4; + } + default: + break _v0$4; + } + } else { + break _v0$4; + } + } else { + if (((((((((((((_v0.a.b.a.b && _v0.a.b.a.a.b) && (_v0.a.b.a.a.a === 'morphir')) && (!_v0.a.b.a.a.b.b)) && _v0.a.b.a.b.b) && _v0.a.b.a.b.a.b) && (_v0.a.b.a.b.a.a === 's')) && _v0.a.b.a.b.a.b.b) && (_v0.a.b.a.b.a.b.a === 'd')) && _v0.a.b.a.b.a.b.b.b) && (_v0.a.b.a.b.a.b.b.a === 'k')) && (!_v0.a.b.a.b.a.b.b.b.b)) && (!_v0.a.b.a.b.b.b)) && (!_v0.b.b.b.b)) { + var _v28 = _v0.a; + var _v29 = _v28.b; + var _v30 = _v29.a; + var _v31 = _v30.a; + var _v32 = _v30.b; + var _v33 = _v32.a; + var _v34 = _v33.b; + var _v35 = _v34.b; + var moduleName = _v29.b; + var localName = _v29.c; + var _v36 = _v0.b; + var argValues1 = _v36.a; + var _v37 = _v36.b; + var argValues2 = _v37.a; + var functionName = A2( + $elm$core$String$join, + '.', + _List_fromArray( + [ + A3($author$project$Morphir$IR$Path$toString, $author$project$Morphir$IR$Name$toTitleCase, '.', moduleName), + $author$project$Morphir$IR$Name$toCamelCase(localName) + ])); + return (A2( + $elm$core$Maybe$withDefault, + '', + A2($elm$core$Dict$get, functionName, $author$project$Morphir$Visual$ViewApply$inlineBinaryOperators)) === '/') ? A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$centerX, + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), + $mdgriffith$elm_ui$Element$spacing(5) + ]), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Element$column, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$centerX, + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) + ]), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$centerX, + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) + ]), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)), + $mdgriffith$elm_ui$Element$padding( + $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)), + $mdgriffith$elm_ui$Element$Border$widthEach( + {bottom: 1, left: 0, right: 0, top: 0}), + $mdgriffith$elm_ui$Element$centerX + ]), + _List_fromArray( + [ + viewValue(argValues1) + ])) + ])), + A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$centerX, + $mdgriffith$elm_ui$Element$Border$solid, + $mdgriffith$elm_ui$Element$Border$widthEach( + {bottom: 0, left: 0, right: 0, top: 1}), + $mdgriffith$elm_ui$Element$moveUp(1), + $mdgriffith$elm_ui$Element$padding( + $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)) + ]), + _List_fromArray( + [ + viewValue(argValues2) + ])) + ])) + ])) : (A2($elm$core$Dict$member, functionName, $author$project$Morphir$Visual$ViewApply$inlineBinaryOperators) ? A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) + ]), + _List_fromArray( + [ + viewValue(argValues1), + $mdgriffith$elm_ui$Element$text( + A2( + $elm$core$Maybe$withDefault, + '', + A2($elm$core$Dict$get, functionName, $author$project$Morphir$Visual$ViewApply$inlineBinaryOperators))), + viewValue(argValues2) + ])) : A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) + ]), + _List_fromArray( + [ + viewValue(argValues1), + viewValue(functionValue), + viewValue(argValues2) + ]))); + } else { + break _v0$4; + } + } + } else { + break _v0$4; + } + } + return A2( + $mdgriffith$elm_ui$Element$column, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) + ]), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Element$column, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), + $mdgriffith$elm_ui$Element$centerX, + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) + ]), + _List_fromArray( + [ + viewValue(functionValue) + ])), + A2( + $mdgriffith$elm_ui$Element$column, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), + $mdgriffith$elm_ui$Element$centerX, + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) + ]), + A2($elm$core$List$map, viewValue, argValues)) + ])); + }); +var $mdgriffith$elm_ui$Internal$Flag$borderColor = $mdgriffith$elm_ui$Internal$Flag$flag(28); +var $mdgriffith$elm_ui$Element$Border$color = function (clr) { + return A2( + $mdgriffith$elm_ui$Internal$Model$StyleClass, + $mdgriffith$elm_ui$Internal$Flag$borderColor, + A3( + $mdgriffith$elm_ui$Internal$Model$Colored, + 'bc-' + $mdgriffith$elm_ui$Internal$Model$formatColorClass(clr), + 'border-color', + clr)); +}; +var $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence = function (operatorName) { + switch (operatorName) { + case 'Basics.add': + return 1; + case 'Basics.subtract': + return 1; + case 'Basics.multiply': + return 2; + case 'Basics.divide': + return 2; + default: + return 0; + } +}; +var $elm$core$List$drop = F2( + function (n, list) { + drop: + while (true) { + if (n <= 0) { + return list; + } else { + if (!list.b) { + return list; + } else { + var x = list.a; + var xs = list.b; + var $temp$n = n - 1, + $temp$list = xs; + n = $temp$n; + list = $temp$list; + continue drop; + } + } + } + }); +var $author$project$Morphir$Visual$ViewArithmetic$functionName = function (ao) { + switch (ao.$) { + case 'Add': + return 'Basics.add'; + case 'Subtract': + return 'Basics.subtract'; + default: + return 'Basics.multiply'; + } +}; +var $author$project$Morphir$Visual$ViewArithmetic$dropInPrecedence = F5( + function (arithmeticOperatorTrees, index, currentPointer, currentPrecedenceValue, previousOperator) { + dropInPrecedence: + while (true) { + if (_Utils_cmp(currentPointer, index) < 0) { + var $temp$arithmeticOperatorTrees = A2($elm$core$List$drop, 1, arithmeticOperatorTrees), + $temp$index = index, + $temp$currentPointer = currentPointer + 1, + $temp$currentPrecedenceValue = currentPrecedenceValue, + $temp$previousOperator = previousOperator; + arithmeticOperatorTrees = $temp$arithmeticOperatorTrees; + index = $temp$index; + currentPointer = $temp$currentPointer; + currentPrecedenceValue = $temp$currentPrecedenceValue; + previousOperator = $temp$previousOperator; + continue dropInPrecedence; + } else { + var _v0 = $elm$core$List$head(arithmeticOperatorTrees); + if (_v0.$ === 'Just') { + var a = _v0.a; + switch (a.$) { + case 'ArithmeticOperatorBranch': + var arithmeticOperator = a.a; + var arithmeticOperatorTrees1 = a.b; + return (_Utils_cmp( + $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( + $author$project$Morphir$Visual$ViewArithmetic$functionName(arithmeticOperator)), + $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( + $author$project$Morphir$Visual$ViewArithmetic$functionName(previousOperator))) < 0) ? true : false; + case 'ArithmeticValueLeaf': + var typedValue = a.a; + var $temp$arithmeticOperatorTrees = A2($elm$core$List$drop, 2, arithmeticOperatorTrees), + $temp$index = index, + $temp$currentPointer = currentPointer + 2, + $temp$currentPrecedenceValue = currentPrecedenceValue, + $temp$previousOperator = previousOperator; + arithmeticOperatorTrees = $temp$arithmeticOperatorTrees; + index = $temp$index; + currentPointer = $temp$currentPointer; + currentPrecedenceValue = $temp$currentPrecedenceValue; + previousOperator = $temp$previousOperator; + continue dropInPrecedence; + default: + if ((a.a.b && a.a.b.b) && (!a.a.b.b.b)) { + var _v3 = a.a; + var arithmeticOperatorTree = _v3.a; + var _v4 = _v3.b; + var arithmeticOperatorTree1 = _v4.a; + return (_Utils_cmp( + $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence('Basics.divide'), + $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( + $author$project$Morphir$Visual$ViewArithmetic$functionName(previousOperator))) < 0) ? true : false; + } else { + return false; + } + } + } else { + return false; + } + } + } + }); +var $author$project$Morphir$Visual$ViewArithmetic$functionNameHelper = function (ao) { + switch (ao.$) { + case 'Add': + return 'Add'; + case 'Subtract': + return 'Subtract'; + default: + return 'Multiply'; + } +}; +var $author$project$Morphir$Visual$ViewArithmetic$inlineBinaryOperators = $elm$core$Dict$fromList( + _List_fromArray( + [ + _Utils_Tuple2('Basics.equal', '='), + _Utils_Tuple2('Basics.lessThan', '<'), + _Utils_Tuple2('Basics.lessThanOrEqual', '<='), + _Utils_Tuple2('Basics.greaterThan', '>'), + _Utils_Tuple2('Basics.greaterThanOrEqual', '>='), + _Utils_Tuple2('Add', '+'), + _Utils_Tuple2('Subtract', '-'), + _Utils_Tuple2('Multiply', '*') + ])); +var $author$project$Morphir$Visual$ViewArithmetic$riseInPrecedence = F5( + function (arithmeticOperatorTrees, index, currentPointer, currentPrecedenceValue, previousOperator) { + riseInPrecedence: + while (true) { + if (_Utils_cmp(currentPointer, index) < 0) { + var $temp$arithmeticOperatorTrees = A2($elm$core$List$drop, 1, arithmeticOperatorTrees), + $temp$index = index, + $temp$currentPointer = currentPointer + 1, + $temp$currentPrecedenceValue = currentPrecedenceValue, + $temp$previousOperator = previousOperator; + arithmeticOperatorTrees = $temp$arithmeticOperatorTrees; + index = $temp$index; + currentPointer = $temp$currentPointer; + currentPrecedenceValue = $temp$currentPrecedenceValue; + previousOperator = $temp$previousOperator; + continue riseInPrecedence; + } else { + var _v0 = $elm$core$List$head(arithmeticOperatorTrees); + if (_v0.$ === 'Just') { + var a = _v0.a; + switch (a.$) { + case 'ArithmeticOperatorBranch': + var arithmeticOperator = a.a; + var arithmeticOperatorTrees1 = a.b; + return (_Utils_cmp( + $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( + $author$project$Morphir$Visual$ViewArithmetic$functionName(arithmeticOperator)), + $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( + $author$project$Morphir$Visual$ViewArithmetic$functionName(previousOperator))) > 0) ? true : false; + case 'ArithmeticValueLeaf': + var typedValue = a.a; + var $temp$arithmeticOperatorTrees = A2($elm$core$List$drop, 2, arithmeticOperatorTrees), + $temp$index = index, + $temp$currentPointer = currentPointer + 2, + $temp$currentPrecedenceValue = currentPrecedenceValue, + $temp$previousOperator = previousOperator; + arithmeticOperatorTrees = $temp$arithmeticOperatorTrees; + index = $temp$index; + currentPointer = $temp$currentPointer; + currentPrecedenceValue = $temp$currentPrecedenceValue; + previousOperator = $temp$previousOperator; + continue riseInPrecedence; + default: + if ((a.a.b && a.a.b.b) && (!a.a.b.b.b)) { + var _v3 = a.a; + var arithmeticOperatorTree = _v3.a; + var _v4 = _v3.b; + var arithmeticOperatorTree1 = _v4.a; + return (_Utils_cmp( + $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence('Basics.divide'), + $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( + $author$project$Morphir$Visual$ViewArithmetic$functionName(previousOperator))) > 0) ? true : false; + } else { + return false; + } + } + } else { + return false; + } + } + } + }); +var $author$project$Morphir$Visual$ViewArithmetic$view = F3( + function (config, viewValue, arithmeticOperatorTree) { + switch (arithmeticOperatorTree.$) { + case 'ArithmeticOperatorBranch': + var arithmeticOperator = arithmeticOperatorTree.a; + var arithmeticOperatorTrees = arithmeticOperatorTree.b; + var separator = A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing(5), + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), + $mdgriffith$elm_ui$Element$centerX + ]), + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$text( + A2( + $elm$core$Maybe$withDefault, + '', + A2( + $elm$core$Dict$get, + $author$project$Morphir$Visual$ViewArithmetic$functionNameHelper(arithmeticOperator), + $author$project$Morphir$Visual$ViewArithmetic$inlineBinaryOperators))) + ])); + return A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing(5), + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), + $mdgriffith$elm_ui$Element$centerX + ]), + A2( + $elm$core$List$indexedMap, + F2( + function (i, b) { + return (A5( + $author$project$Morphir$Visual$ViewArithmetic$dropInPrecedence, + arithmeticOperatorTrees, + i, + 0, + $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( + $author$project$Morphir$Visual$ViewArithmetic$functionName(arithmeticOperator)), + arithmeticOperator) && (_Utils_cmp( + i, + $elm$core$List$length(arithmeticOperatorTrees) - 1) < 0)) ? A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$padding(2), + $mdgriffith$elm_ui$Element$spacing(5), + $mdgriffith$elm_ui$Element$centerX + ]), + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$text('('), + b, + $mdgriffith$elm_ui$Element$text(')'), + separator + ])) : (A5( + $author$project$Morphir$Visual$ViewArithmetic$dropInPrecedence, + arithmeticOperatorTrees, + i, + 0, + $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( + $author$project$Morphir$Visual$ViewArithmetic$functionName(arithmeticOperator)), + arithmeticOperator) ? A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$padding(2), + $mdgriffith$elm_ui$Element$spacing(5), + $mdgriffith$elm_ui$Element$centerX + ]), + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$text('('), + b, + $mdgriffith$elm_ui$Element$text(')') + ])) : ((A5( + $author$project$Morphir$Visual$ViewArithmetic$riseInPrecedence, + arithmeticOperatorTrees, + i, + 0, + $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( + $author$project$Morphir$Visual$ViewArithmetic$functionName(arithmeticOperator)), + arithmeticOperator) && (_Utils_cmp( + i, + $elm$core$List$length(arithmeticOperatorTrees) - 1) < 0)) ? A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$padding(2), + $mdgriffith$elm_ui$Element$spacing(5), + $mdgriffith$elm_ui$Element$centerX + ]), + _List_fromArray( + [b, separator])) : (A5( + $author$project$Morphir$Visual$ViewArithmetic$riseInPrecedence, + arithmeticOperatorTrees, + i, + 0, + $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( + $author$project$Morphir$Visual$ViewArithmetic$functionName(arithmeticOperator)), + arithmeticOperator) ? A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$padding(2), + $mdgriffith$elm_ui$Element$spacing(5), + $mdgriffith$elm_ui$Element$centerX + ]), + _List_fromArray( + [b])) : ((_Utils_cmp( + i, + $elm$core$List$length(arithmeticOperatorTrees) - 1) < 0) ? A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$padding(2), + $mdgriffith$elm_ui$Element$spacing(5), + $mdgriffith$elm_ui$Element$centerX + ]), + _List_fromArray( + [b, separator])) : A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$padding(2), + $mdgriffith$elm_ui$Element$spacing(5), + $mdgriffith$elm_ui$Element$centerX + ]), + _List_fromArray( + [b])))))); + }), + A2( + $elm$core$List$map, + A2($author$project$Morphir$Visual$ViewArithmetic$view, config, viewValue), + arithmeticOperatorTrees))); + case 'ArithmeticDivisionBranch': + if ((arithmeticOperatorTree.a.b && arithmeticOperatorTree.a.b.b) && (!arithmeticOperatorTree.a.b.b.b)) { + var _v1 = arithmeticOperatorTree.a; + var arithmeticOperatorTree1 = _v1.a; + var _v2 = _v1.b; + var arithmeticOperatorTree2 = _v2.a; + if (arithmeticOperatorTree1.$ === 'ArithmeticValueLeaf') { + var typedValue1 = arithmeticOperatorTree1.a; + switch (arithmeticOperatorTree2.$) { + case 'ArithmeticValueLeaf': + var typedValue2 = arithmeticOperatorTree2.a; + return A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$centerX, + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), + $mdgriffith$elm_ui$Element$spacing(5) + ]), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Element$column, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$centerX, + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) + ]), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$centerX, + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) + ]), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)), + $mdgriffith$elm_ui$Element$Border$color( + A3($mdgriffith$elm_ui$Element$rgb, 0, 0.7, 0)), + $mdgriffith$elm_ui$Element$padding( + $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)), + $mdgriffith$elm_ui$Element$centerX + ]), + _List_fromArray( + [ + viewValue(typedValue1) + ])) + ])), + A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$centerX, + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), + $mdgriffith$elm_ui$Element$Border$solid, + $mdgriffith$elm_ui$Element$Border$widthEach( + {bottom: 0, left: 0, right: 0, top: 1}), + $mdgriffith$elm_ui$Element$padding( + $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)) + ]), + _List_fromArray( + [ + viewValue(typedValue2) + ])) + ])) + ])); + case 'ArithmeticOperatorBranch': + var arithmeticOperator = arithmeticOperatorTree2.a; + var arithmeticOperatorTrees = arithmeticOperatorTree2.b; + var separator = A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)), + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), + $mdgriffith$elm_ui$Element$centerX + ]), + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$text( + A2( + $elm$core$Maybe$withDefault, + '', + A2( + $elm$core$Dict$get, + $author$project$Morphir$Visual$ViewArithmetic$functionNameHelper(arithmeticOperator), + $author$project$Morphir$Visual$ViewArithmetic$inlineBinaryOperators))) + ])); + var mainBody = A2( + $elm$core$List$indexedMap, + F2( + function (i, b) { + return (A5( + $author$project$Morphir$Visual$ViewArithmetic$dropInPrecedence, + arithmeticOperatorTrees, + i, + 0, + $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( + $author$project$Morphir$Visual$ViewArithmetic$functionName(arithmeticOperator)), + arithmeticOperator) && (_Utils_cmp( + i, + $elm$core$List$length(arithmeticOperatorTrees) - 1) < 0)) ? A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$padding(2), + $mdgriffith$elm_ui$Element$spacing(5), + $mdgriffith$elm_ui$Element$centerX + ]), + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$text('('), + b, + $mdgriffith$elm_ui$Element$text(')'), + separator + ])) : (A5( + $author$project$Morphir$Visual$ViewArithmetic$dropInPrecedence, + arithmeticOperatorTrees, + i, + 0, + $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( + $author$project$Morphir$Visual$ViewArithmetic$functionName(arithmeticOperator)), + arithmeticOperator) ? A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$padding(2), + $mdgriffith$elm_ui$Element$spacing(5), + $mdgriffith$elm_ui$Element$centerX + ]), + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$text('('), + b, + $mdgriffith$elm_ui$Element$text(')') + ])) : ((A5( + $author$project$Morphir$Visual$ViewArithmetic$riseInPrecedence, + arithmeticOperatorTrees, + i, + 0, + $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( + $author$project$Morphir$Visual$ViewArithmetic$functionName(arithmeticOperator)), + arithmeticOperator) && (_Utils_cmp( + i, + $elm$core$List$length(arithmeticOperatorTrees) - 1) < 0)) ? A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$padding(2), + $mdgriffith$elm_ui$Element$spacing(5), + $mdgriffith$elm_ui$Element$centerX + ]), + _List_fromArray( + [b, separator])) : (A5( + $author$project$Morphir$Visual$ViewArithmetic$riseInPrecedence, + arithmeticOperatorTrees, + i, + 0, + $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( + $author$project$Morphir$Visual$ViewArithmetic$functionName(arithmeticOperator)), + arithmeticOperator) ? A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$padding(2), + $mdgriffith$elm_ui$Element$spacing(5), + $mdgriffith$elm_ui$Element$centerX + ]), + _List_fromArray( + [b])) : ((_Utils_cmp( + i, + $elm$core$List$length(arithmeticOperatorTrees) - 1) < 0) ? A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$padding(2), + $mdgriffith$elm_ui$Element$spacing(5), + $mdgriffith$elm_ui$Element$centerX + ]), + _List_fromArray( + [b, separator])) : A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$padding(2), + $mdgriffith$elm_ui$Element$spacing(5), + $mdgriffith$elm_ui$Element$centerX + ]), + _List_fromArray( + [b])))))); + }), + A2( + $elm$core$List$map, + A2($author$project$Morphir$Visual$ViewArithmetic$view, config, viewValue), + arithmeticOperatorTrees)); + return A2( + $mdgriffith$elm_ui$Element$column, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$centerX, + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) + ]), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$centerX, + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) + ]), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing(5), + $mdgriffith$elm_ui$Element$Border$color( + A3($mdgriffith$elm_ui$Element$rgb, 0, 0.7, 0)), + $mdgriffith$elm_ui$Element$paddingEach( + {bottom: 4, left: 0, right: 0, top: 0}), + $mdgriffith$elm_ui$Element$centerX + ]), + _List_fromArray( + [ + viewValue(typedValue1) + ])) + ])), + A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$centerX, + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), + $mdgriffith$elm_ui$Element$Border$solid, + $mdgriffith$elm_ui$Element$Border$widthEach( + {bottom: 0, left: 0, right: 0, top: 1}), + $mdgriffith$elm_ui$Element$paddingEach( + {bottom: 0, left: 0, right: 0, top: 10}) + ]), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing(5), + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), + $mdgriffith$elm_ui$Element$centerX + ]), + mainBody) + ])) + ])); + default: + return $mdgriffith$elm_ui$Element$none; + } + } else { + return $mdgriffith$elm_ui$Element$none; + } + } else { + return $mdgriffith$elm_ui$Element$none; + } + default: + var typedValue = arithmeticOperatorTree.a; + return viewValue(typedValue); + } + }); +var $author$project$Morphir$Visual$ViewBoolOperatorTree$Vertical = {$: 'Vertical'}; +var $mdgriffith$elm_ui$Internal$Model$AlignY = function (a) { + return {$: 'AlignY', a: a}; +}; +var $mdgriffith$elm_ui$Internal$Model$CenterY = {$: 'CenterY'}; +var $mdgriffith$elm_ui$Element$centerY = $mdgriffith$elm_ui$Internal$Model$AlignY($mdgriffith$elm_ui$Internal$Model$CenterY); +var $author$project$Morphir$Visual$ViewBoolOperatorTree$Horizontal = {$: 'Horizontal'}; +var $author$project$Morphir$Visual$ViewBoolOperatorTree$flipLayoutDirection = function (direction) { + if (direction.$ === 'Horizontal') { + return $author$project$Morphir$Visual$ViewBoolOperatorTree$Vertical; + } else { + return $author$project$Morphir$Visual$ViewBoolOperatorTree$Horizontal; + } +}; +var $elm$core$List$intersperse = F2( + function (sep, xs) { + if (!xs.b) { + return _List_Nil; + } else { + var hd = xs.a; + var tl = xs.b; + var step = F2( + function (x, rest) { + return A2( + $elm$core$List$cons, + sep, + A2($elm$core$List$cons, x, rest)); + }); + var spersed = A3($elm$core$List$foldr, step, _List_Nil, tl); + return A2($elm$core$List$cons, hd, spersed); + } + }); +var $author$project$Morphir$Visual$ViewBoolOperatorTree$operatorToString = function (operator) { + if (operator.$ === 'Or') { + return 'OR'; + } else { + return 'AND'; + } +}; +var $author$project$Morphir$Visual$ViewBoolOperatorTree$viewTreeNode = F4( + function (config, viewValue, direction, boolOperatorTree) { + if (boolOperatorTree.$ === 'BoolOperatorBranch') { + var operator = boolOperatorTree.a; + var values = boolOperatorTree.b; + var separator = function () { + if (direction.$ === 'Horizontal') { + var verticalLine = A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$centerX, + $mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill) + ]), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$Border$widthEach( + {bottom: 0, left: 1, right: 0, top: 0}), + $mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill) + ]), + $mdgriffith$elm_ui$Element$none), + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill) + ]), + $mdgriffith$elm_ui$Element$none) + ])); + return A2( + $mdgriffith$elm_ui$Element$column, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$centerY, + $mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill) + ]), + _List_fromArray( + [ + verticalLine, + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$padding( + $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)), + $mdgriffith$elm_ui$Element$Font$bold + ]), + $mdgriffith$elm_ui$Element$text( + $author$project$Morphir$Visual$ViewBoolOperatorTree$operatorToString(operator))), + verticalLine + ])); + } else { + var horizontalLine = A2( + $mdgriffith$elm_ui$Element$column, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) + ]), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$Border$widthEach( + {bottom: 1, left: 0, right: 0, top: 0}), + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) + ]), + $mdgriffith$elm_ui$Element$none), + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) + ]), + $mdgriffith$elm_ui$Element$none) + ])); + return A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$centerX, + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) + ]), + _List_fromArray( + [ + horizontalLine, + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$padding( + $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)), + $mdgriffith$elm_ui$Element$Font$bold + ]), + $mdgriffith$elm_ui$Element$text( + $author$project$Morphir$Visual$ViewBoolOperatorTree$operatorToString(operator))), + horizontalLine + ])); + } + }(); + var layout = function (elems) { + if (direction.$ === 'Horizontal') { + return A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$centerX, + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) + ]), + elems); + } else { + return A2( + $mdgriffith$elm_ui$Element$column, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$centerY, + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) + ]), + elems); + } + }; + return layout( + A2( + $elm$core$List$intersperse, + separator, + A2( + $elm$core$List$map, + $mdgriffith$elm_ui$Element$el( + _List_fromArray( + [$mdgriffith$elm_ui$Element$centerX])), + A2( + $elm$core$List$map, + A3( + $author$project$Morphir$Visual$ViewBoolOperatorTree$viewTreeNode, + config, + viewValue, + $author$project$Morphir$Visual$ViewBoolOperatorTree$flipLayoutDirection(direction)), + values)))); + } else { + var value = boolOperatorTree.a; + return viewValue(value); + } + }); +var $author$project$Morphir$Visual$ViewBoolOperatorTree$view = F3( + function (config, viewValue, boolOperatorTree) { + return A4($author$project$Morphir$Visual$ViewBoolOperatorTree$viewTreeNode, config, viewValue, $author$project$Morphir$Visual$ViewBoolOperatorTree$Vertical, boolOperatorTree); + }); +var $author$project$Morphir$Visual$ViewField$view = F3( + function (viewValue, subjectValue, fieldName) { + if (subjectValue.$ === 'Variable') { + var variableName = subjectValue.b; + return $mdgriffith$elm_ui$Element$text( + $elm$core$String$concat( + _List_fromArray( + [ + 'the ', + $author$project$Morphir$Visual$Common$nameToText(variableName), + '\'s ', + $author$project$Morphir$Visual$Common$nameToText(fieldName) + ]))); + } else { + return A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) + ]), + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$text( + $elm$core$String$concat( + _List_fromArray( + [ + 'the ', + $author$project$Morphir$Visual$Common$nameToText(fieldName), + ' field of ' + ]))), + viewValue(subjectValue) + ])); + } + }); +var $author$project$Morphir$Visual$Components$DecisionTree$NotHighlighted = {$: 'NotHighlighted'}; +var $author$project$Morphir$Visual$Components$DecisionTree$Highlighted = function (a) { + return {$: 'Highlighted', a: a}; +}; +var $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToBorderWidth = function (state) { + if (state.$ === 'Highlighted') { + return 4; + } else { + return 2; + } +}; +var $author$project$Morphir$Visual$Components$DecisionTree$Color = F3( + function (a, b, c) { + return {$: 'Color', a: a, b: b, c: c}; + }); +var $author$project$Morphir$Visual$Components$DecisionTree$highlightColor = { + _default: A3($author$project$Morphir$Visual$Components$DecisionTree$Color, 120, 120, 120), + _false: A3($author$project$Morphir$Visual$Components$DecisionTree$Color, 180, 100, 100), + _true: A3($author$project$Morphir$Visual$Components$DecisionTree$Color, 100, 180, 100) +}; +var $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToColor = function (state) { + if (state.$ === 'Highlighted') { + var bool = state.a; + return bool ? $author$project$Morphir$Visual$Components$DecisionTree$highlightColor._true : $author$project$Morphir$Visual$Components$DecisionTree$highlightColor._false; + } else { + return $author$project$Morphir$Visual$Components$DecisionTree$highlightColor._default; + } +}; +var $mdgriffith$elm_ui$Element$Font$regular = A2($mdgriffith$elm_ui$Internal$Model$Class, $mdgriffith$elm_ui$Internal$Flag$fontWeight, $mdgriffith$elm_ui$Internal$Style$classes.textNormalWeight); +var $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToFontWeight = function (state) { + if (state.$ === 'Highlighted') { + return $mdgriffith$elm_ui$Element$Font$bold; + } else { + return $mdgriffith$elm_ui$Element$Font$regular; + } +}; +var $mdgriffith$elm_ui$Internal$Model$Left = {$: 'Left'}; +var $mdgriffith$elm_ui$Element$alignLeft = $mdgriffith$elm_ui$Internal$Model$AlignX($mdgriffith$elm_ui$Internal$Model$Left); +var $mdgriffith$elm_ui$Internal$Model$Top = {$: 'Top'}; +var $mdgriffith$elm_ui$Element$alignTop = $mdgriffith$elm_ui$Internal$Model$AlignY($mdgriffith$elm_ui$Internal$Model$Top); +var $elm$html$Html$Attributes$colspan = function (n) { + return A2( + _VirtualDom_attribute, + 'colspan', + $elm$core$String$fromInt(n)); +}; +var $elm$svg$Svg$Attributes$height = _VirtualDom_attribute('height'); +var $elm$svg$Svg$Attributes$points = _VirtualDom_attribute('points'); +var $elm$svg$Svg$trustedNode = _VirtualDom_nodeNS('http://www.w3.org/2000/svg'); +var $elm$svg$Svg$polygon = $elm$svg$Svg$trustedNode('polygon'); +var $elm$svg$Svg$Attributes$style = _VirtualDom_attribute('style'); +var $elm$svg$Svg$svg = $elm$svg$Svg$trustedNode('svg'); +var $author$project$Morphir$Visual$Components$DecisionTree$toCssColor = function (_v0) { + var r = _v0.a; + var g = _v0.b; + var b = _v0.c; + return $elm$core$String$concat( + _List_fromArray( + [ + 'rgb(', + $elm$core$String$fromInt(r), + ',', + $elm$core$String$fromInt(g), + ',', + $elm$core$String$fromInt(b), + ')' + ])); +}; +var $elm$svg$Svg$Attributes$viewBox = _VirtualDom_attribute('viewBox'); +var $elm$svg$Svg$Attributes$width = _VirtualDom_attribute('width'); +var $author$project$Morphir$Visual$Components$DecisionTree$downArrowHead = F2( + function (config, highlightState) { + return A2( + $elm$svg$Svg$svg, + _List_fromArray( + [ + $elm$svg$Svg$Attributes$width( + _Utils_eq(highlightState, $author$project$Morphir$Visual$Components$DecisionTree$NotHighlighted) ? $elm$core$String$fromInt( + $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme)) : $elm$core$String$fromInt( + $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme))), + $elm$svg$Svg$Attributes$height( + _Utils_eq(highlightState, $author$project$Morphir$Visual$Components$DecisionTree$NotHighlighted) ? $elm$core$String$fromInt( + $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme)) : $elm$core$String$fromInt( + $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme))), + $elm$svg$Svg$Attributes$viewBox('0 0 200 200') + ]), + _List_fromArray( + [ + A2( + $elm$svg$Svg$polygon, + _List_fromArray( + [ + $elm$svg$Svg$Attributes$points('0,0 100,200 200,0'), + $elm$svg$Svg$Attributes$style( + 'fill:' + $author$project$Morphir$Visual$Components$DecisionTree$toCssColor( + $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToColor(highlightState))) + ]), + _List_Nil) + ])); + }); +var $mdgriffith$elm_ui$Internal$Model$NoStaticStyleSheet = {$: 'NoStaticStyleSheet'}; +var $mdgriffith$elm_ui$Internal$Model$RenderModeOption = function (a) { + return {$: 'RenderModeOption', a: a}; +}; +var $mdgriffith$elm_ui$Element$noStaticStyleSheet = $mdgriffith$elm_ui$Internal$Model$RenderModeOption($mdgriffith$elm_ui$Internal$Model$NoStaticStyleSheet); +var $author$project$Morphir$Visual$Common$element = function (elem) { + return A3( + $mdgriffith$elm_ui$Element$layoutWith, + { + options: _List_fromArray( + [$mdgriffith$elm_ui$Element$noStaticStyleSheet]) + }, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink), + $mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink) + ]), + elem); +}; +var $mdgriffith$elm_ui$Internal$Model$unstyled = A2($elm$core$Basics$composeL, $mdgriffith$elm_ui$Internal$Model$Unstyled, $elm$core$Basics$always); +var $mdgriffith$elm_ui$Element$html = $mdgriffith$elm_ui$Internal$Model$unstyled; +var $elm$html$Html$table = _VirtualDom_node('table'); +var $elm$html$Html$td = _VirtualDom_node('td'); +var $elm$html$Html$tr = _VirtualDom_node('tr'); +var $author$project$Morphir$Visual$Components$DecisionTree$downArrow = F2( + function (config, highlightState) { + return A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), + $mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill) + ]), + $mdgriffith$elm_ui$Element$html( + A2( + $elm$html$Html$table, + _List_fromArray( + [ + A2($elm$html$Html$Attributes$style, 'border-collapse', 'collapse'), + A2($elm$html$Html$Attributes$style, 'height', '100%') + ]), + _List_fromArray( + [ + A2( + $elm$html$Html$tr, + _List_fromArray( + [ + A2($elm$html$Html$Attributes$style, 'height', '100%') + ]), + _List_fromArray( + [ + A2( + $elm$html$Html$td, + _List_fromArray( + [ + A2( + $elm$html$Html$Attributes$style, + 'border-right', + $elm$core$String$concat( + _List_fromArray( + [ + 'solid ', + $elm$core$String$fromInt( + $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToBorderWidth(highlightState)), + 'px ', + $author$project$Morphir$Visual$Components$DecisionTree$toCssColor( + $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToColor(highlightState)) + ]))) + ]), + _List_Nil), + A2($elm$html$Html$td, _List_Nil, _List_Nil) + ])), + A2( + $elm$html$Html$tr, + _List_Nil, + _List_fromArray( + [ + A2( + $elm$html$Html$td, + _List_fromArray( + [ + $elm$html$Html$Attributes$colspan(2) + ]), + _List_fromArray( + [ + $author$project$Morphir$Visual$Common$element( + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [$mdgriffith$elm_ui$Element$centerX]), + $mdgriffith$elm_ui$Element$html( + A2($author$project$Morphir$Visual$Components$DecisionTree$downArrowHead, config, highlightState)))) + ])) + ])) + ])))); + }); +var $author$project$Morphir$Visual$Components$DecisionTree$noPadding = {bottom: 0, left: 0, right: 0, top: 0}; +var $mdgriffith$elm_ui$Element$paddingXY = F2( + function (x, y) { + if (_Utils_eq(x, y)) { + var f = x; + return A2( + $mdgriffith$elm_ui$Internal$Model$StyleClass, + $mdgriffith$elm_ui$Internal$Flag$padding, + A5( + $mdgriffith$elm_ui$Internal$Model$PaddingStyle, + 'p-' + $elm$core$String$fromInt(x), + f, + f, + f, + f)); + } else { + var yFloat = y; + var xFloat = x; + return A2( + $mdgriffith$elm_ui$Internal$Model$StyleClass, + $mdgriffith$elm_ui$Internal$Flag$padding, + A5( + $mdgriffith$elm_ui$Internal$Model$PaddingStyle, + 'p-' + ($elm$core$String$fromInt(x) + ('-' + $elm$core$String$fromInt(y))), + yFloat, + xFloat, + yFloat, + xFloat)); + } + }); +var $author$project$Morphir$Visual$Components$DecisionTree$rightArrowHead = F2( + function (config, highlightState) { + return A2( + $elm$svg$Svg$svg, + _List_fromArray( + [ + $elm$svg$Svg$Attributes$width( + _Utils_eq(highlightState, $author$project$Morphir$Visual$Components$DecisionTree$NotHighlighted) ? $elm$core$String$fromInt( + $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme)) : $elm$core$String$fromInt( + $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme))), + $elm$svg$Svg$Attributes$height( + _Utils_eq(highlightState, $author$project$Morphir$Visual$Components$DecisionTree$NotHighlighted) ? $elm$core$String$fromInt( + $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme)) : $elm$core$String$fromInt( + $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme))), + $elm$svg$Svg$Attributes$viewBox('0 0 200 200') + ]), + _List_fromArray( + [ + A2( + $elm$svg$Svg$polygon, + _List_fromArray( + [ + $elm$svg$Svg$Attributes$points('0,0 200,100 0,200'), + $elm$svg$Svg$Attributes$style( + 'fill:' + $author$project$Morphir$Visual$Components$DecisionTree$toCssColor( + $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToColor(highlightState))) + ]), + _List_Nil) + ])); + }); +var $elm$html$Html$Attributes$rowspan = function (n) { + return A2( + _VirtualDom_attribute, + 'rowspan', + $elm$core$String$fromInt(n)); +}; +var $author$project$Morphir$Visual$Components$DecisionTree$rightArrow = F2( + function (config, highlightState) { + return A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), + $mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill) + ]), + $mdgriffith$elm_ui$Element$html( + A2( + $elm$html$Html$table, + _List_fromArray( + [ + A2($elm$html$Html$Attributes$style, 'border-collapse', 'collapse'), + A2($elm$html$Html$Attributes$style, 'width', '100%') + ]), + _List_fromArray( + [ + A2( + $elm$html$Html$tr, + _List_Nil, + _List_fromArray( + [ + A2( + $elm$html$Html$td, + _List_fromArray( + [ + A2( + $elm$html$Html$Attributes$style, + 'border-bottom', + $elm$core$String$concat( + _List_fromArray( + [ + 'solid ', + $elm$core$String$fromInt( + $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToBorderWidth(highlightState)), + 'px ', + $author$project$Morphir$Visual$Components$DecisionTree$toCssColor( + $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToColor(highlightState)) + ]))), + A2($elm$html$Html$Attributes$style, 'width', '100%') + ]), + _List_Nil), + A2( + $elm$html$Html$td, + _List_fromArray( + [ + $elm$html$Html$Attributes$rowspan(2) + ]), + _List_fromArray( + [ + $author$project$Morphir$Visual$Common$element( + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [$mdgriffith$elm_ui$Element$centerY]), + $mdgriffith$elm_ui$Element$html( + A2($author$project$Morphir$Visual$Components$DecisionTree$rightArrowHead, config, highlightState)))) + ])) + ])), + A2( + $elm$html$Html$tr, + _List_Nil, + _List_fromArray( + [ + A2($elm$html$Html$td, _List_Nil, _List_Nil) + ])) + ])))); + }); +var $author$project$Morphir$Visual$Components$DecisionTree$horizontalLayout = F8( + function (config, condition, branch1Label, branch1State, branch1, branch2Label, branch2State, branch2) { + return A2( + $mdgriffith$elm_ui$Element$row, + _List_Nil, + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Element$column, + _List_fromArray( + [$mdgriffith$elm_ui$Element$alignTop]), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) + ]), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Element$column, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$alignTop, + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink) + ]), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink) + ]), + condition), + A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$alignLeft, + $mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill), + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) + ]), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$paddingEach( + _Utils_update( + $author$project$Morphir$Visual$Components$DecisionTree$noPadding, + { + left: $author$project$Morphir$Visual$Theme$mediumPadding(config.state.theme) + })), + $mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill) + ]), + A2($author$project$Morphir$Visual$Components$DecisionTree$downArrow, config, branch1State)), + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$centerY, + A2( + $mdgriffith$elm_ui$Element$paddingXY, + 0, + $author$project$Morphir$Visual$Theme$mediumPadding(config.state.theme)) + ]), + branch1Label) + ])) + ])), + A2( + $mdgriffith$elm_ui$Element$column, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$alignTop, + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) + ]), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), + $mdgriffith$elm_ui$Element$paddingEach( + _Utils_update( + $author$project$Morphir$Visual$Components$DecisionTree$noPadding, + { + top: $author$project$Morphir$Visual$Theme$mediumPadding(config.state.theme) + })) + ]), + A2($author$project$Morphir$Visual$Components$DecisionTree$rightArrow, config, branch2State)), + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$centerX, + $mdgriffith$elm_ui$Element$padding( + $author$project$Morphir$Visual$Theme$mediumPadding(config.state.theme)) + ]), + branch2Label) + ])) + ])), + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$paddingEach( + _Utils_update( + $author$project$Morphir$Visual$Components$DecisionTree$noPadding, + { + right: $author$project$Morphir$Visual$Theme$mediumPadding(config.state.theme) + })) + ]), + branch1) + ])), + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [$mdgriffith$elm_ui$Element$alignTop]), + branch2) + ])); + }); +var $author$project$Morphir$Visual$Components$DecisionTree$toElementColor = function (_v0) { + var r = _v0.a; + var g = _v0.b; + var b = _v0.c; + return A3($mdgriffith$elm_ui$Element$rgb255, r, g, b); +}; +var $author$project$Morphir$Visual$Components$DecisionTree$layoutHelp = F4( + function (config, highlightState, viewValue, rootNode) { + var depthOf = F2( + function (f, node) { + if (node.$ === 'Branch') { + var branch = node.a; + return A2( + depthOf, + f, + f(branch)) + 1; + } else { + return 1; + } + }); + if (rootNode.$ === 'Branch') { + var branch = rootNode.a; + var thenState = function () { + var _v4 = branch.conditionValue; + if (_v4.$ === 'Just') { + var v = _v4.a; + return v ? $author$project$Morphir$Visual$Components$DecisionTree$Highlighted(true) : $author$project$Morphir$Visual$Components$DecisionTree$NotHighlighted; + } else { + return $author$project$Morphir$Visual$Components$DecisionTree$NotHighlighted; + } + }(); + var elseState = function () { + var _v3 = branch.conditionValue; + if (_v3.$ === 'Just') { + var v = _v3.a; + return v ? $author$project$Morphir$Visual$Components$DecisionTree$NotHighlighted : $author$project$Morphir$Visual$Components$DecisionTree$Highlighted(false); + } else { + return $author$project$Morphir$Visual$Components$DecisionTree$NotHighlighted; + } + }(); + var conditionState = function () { + var _v2 = branch.conditionValue; + if (_v2.$ === 'Just') { + var v = _v2.a; + return $author$project$Morphir$Visual$Components$DecisionTree$Highlighted(v); + } else { + return $author$project$Morphir$Visual$Components$DecisionTree$NotHighlighted; + } + }(); + return A8( + $author$project$Morphir$Visual$Components$DecisionTree$horizontalLayout, + config, + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$Border$width( + $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToBorderWidth(conditionState)), + $mdgriffith$elm_ui$Element$Border$rounded(6), + $mdgriffith$elm_ui$Element$Border$color( + $author$project$Morphir$Visual$Components$DecisionTree$toElementColor( + $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToColor(conditionState))), + $mdgriffith$elm_ui$Element$padding( + $author$project$Morphir$Visual$Theme$mediumPadding(config.state.theme)) + ]), + viewValue(branch.condition)), + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$Font$color( + $author$project$Morphir$Visual$Components$DecisionTree$toElementColor( + $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToColor(thenState))), + $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToFontWeight(thenState) + ]), + $mdgriffith$elm_ui$Element$text('Yes')), + thenState, + A4($author$project$Morphir$Visual$Components$DecisionTree$layoutHelp, config, thenState, viewValue, branch.thenBranch), + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$Font$color( + $author$project$Morphir$Visual$Components$DecisionTree$toElementColor( + $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToColor(elseState))), + $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToFontWeight(elseState) + ]), + $mdgriffith$elm_ui$Element$text('No')), + elseState, + A4($author$project$Morphir$Visual$Components$DecisionTree$layoutHelp, config, elseState, viewValue, branch.elseBranch)); + } else { + var value = rootNode.a; + return A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$Border$width( + $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToBorderWidth(highlightState)), + $mdgriffith$elm_ui$Element$Border$rounded(6), + $mdgriffith$elm_ui$Element$Border$color( + $author$project$Morphir$Visual$Components$DecisionTree$toElementColor( + $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToColor(highlightState))), + $mdgriffith$elm_ui$Element$padding( + $author$project$Morphir$Visual$Theme$mediumPadding(config.state.theme)) + ]), + viewValue(value)); + } + }); +var $author$project$Morphir$Visual$Components$DecisionTree$layout = F3( + function (config, viewValue, rootNode) { + return A4($author$project$Morphir$Visual$Components$DecisionTree$layoutHelp, config, $author$project$Morphir$Visual$Components$DecisionTree$NotHighlighted, viewValue, rootNode); + }); +var $author$project$Morphir$Visual$Components$DecisionTree$Branch = function (a) { + return {$: 'Branch', a: a}; +}; +var $author$project$Morphir$Visual$Components$DecisionTree$Leaf = function (a) { + return {$: 'Leaf', a: a}; +}; +var $author$project$Morphir$Visual$ViewIfThenElse$valueToTree = F3( + function (config, doEval, value) { + valueToTree: + while (true) { + switch (value.$) { + case 'IfThenElse': + var condition = value.b; + var thenBranch = value.c; + var elseBranch = value.d; + var result = function () { + if (doEval) { + var _v1 = A2( + $author$project$Morphir$Visual$Config$evaluate, + $author$project$Morphir$IR$Value$toRawValue(condition), + config); + if (((_v1.$ === 'Ok') && (_v1.a.$ === 'Literal')) && (_v1.a.b.$ === 'BoolLiteral')) { + var _v2 = _v1.a; + var v = _v2.b.a; + return $elm$core$Maybe$Just(v); + } else { + return $elm$core$Maybe$Nothing; + } + } else { + return $elm$core$Maybe$Nothing; + } + }(); + return $author$project$Morphir$Visual$Components$DecisionTree$Branch( + { + condition: condition, + conditionValue: result, + elseBranch: A3( + $author$project$Morphir$Visual$ViewIfThenElse$valueToTree, + config, + _Utils_eq( + result, + $elm$core$Maybe$Just(false)), + elseBranch), + thenBranch: A3( + $author$project$Morphir$Visual$ViewIfThenElse$valueToTree, + config, + _Utils_eq( + result, + $elm$core$Maybe$Just(true)), + thenBranch) + }); + case 'LetDefinition': + var defName = value.b; + var defValue = value.c; + var inValue = value.d; + var currentState = config.state; + var newState = _Utils_update( + currentState, + { + variables: A2( + $elm$core$Result$withDefault, + currentState.variables, + A2( + $elm$core$Result$map, + function (evaluatedDefValue) { + return A3($elm$core$Dict$insert, defName, evaluatedDefValue, currentState.variables); + }, + A2( + $author$project$Morphir$Visual$Config$evaluate, + $author$project$Morphir$IR$Value$definitionToValue( + A3( + $author$project$Morphir$IR$Value$mapDefinitionAttributes, + $elm$core$Basics$identity, + $elm$core$Basics$always(_Utils_Tuple0), + defValue)), + config))) + }); + var $temp$config = _Utils_update( + config, + {state: newState}), + $temp$doEval = doEval, + $temp$value = inValue; + config = $temp$config; + doEval = $temp$doEval; + value = $temp$value; + continue valueToTree; + default: + return $author$project$Morphir$Visual$Components$DecisionTree$Leaf(value); + } + } + }); +var $author$project$Morphir$Visual$ViewIfThenElse$view = F3( + function (config, viewValue, value) { + return A3( + $author$project$Morphir$Visual$Components$DecisionTree$layout, + config, + viewValue, + A3($author$project$Morphir$Visual$ViewIfThenElse$valueToTree, config, true, value)); + }); +var $mdgriffith$elm_ui$Element$InternalIndexedColumn = function (a) { + return {$: 'InternalIndexedColumn', a: a}; +}; +var $mdgriffith$elm_ui$Internal$Model$GridPosition = function (a) { + return {$: 'GridPosition', a: a}; +}; +var $mdgriffith$elm_ui$Internal$Model$GridTemplateStyle = function (a) { + return {$: 'GridTemplateStyle', a: a}; +}; +var $elm$core$List$all = F2( + function (isOkay, list) { + return !A2( + $elm$core$List$any, + A2($elm$core$Basics$composeL, $elm$core$Basics$not, isOkay), + list); + }); +var $mdgriffith$elm_ui$Internal$Model$AsGrid = {$: 'AsGrid'}; +var $mdgriffith$elm_ui$Internal$Model$asGrid = $mdgriffith$elm_ui$Internal$Model$AsGrid; +var $mdgriffith$elm_ui$Internal$Model$getSpacing = F2( + function (attrs, _default) { + return A2( + $elm$core$Maybe$withDefault, + _default, + A3( + $elm$core$List$foldr, + F2( + function (attr, acc) { + if (acc.$ === 'Just') { + var x = acc.a; + return $elm$core$Maybe$Just(x); + } else { + if ((attr.$ === 'StyleClass') && (attr.b.$ === 'SpacingStyle')) { + var _v2 = attr.b; + var x = _v2.b; + var y = _v2.c; + return $elm$core$Maybe$Just( + _Utils_Tuple2(x, y)); + } else { + return $elm$core$Maybe$Nothing; + } + } + }), + $elm$core$Maybe$Nothing, + attrs)); + }); +var $mdgriffith$elm_ui$Internal$Flag$gridPosition = $mdgriffith$elm_ui$Internal$Flag$flag(35); +var $mdgriffith$elm_ui$Internal$Flag$gridTemplate = $mdgriffith$elm_ui$Internal$Flag$flag(34); +var $mdgriffith$elm_ui$Internal$Model$Px = function (a) { + return {$: 'Px', a: a}; +}; +var $mdgriffith$elm_ui$Element$px = $mdgriffith$elm_ui$Internal$Model$Px; +var $elm$core$List$repeatHelp = F3( + function (result, n, value) { + repeatHelp: + while (true) { + if (n <= 0) { + return result; + } else { + var $temp$result = A2($elm$core$List$cons, value, result), + $temp$n = n - 1, + $temp$value = value; + result = $temp$result; + n = $temp$n; + value = $temp$value; + continue repeatHelp; + } + } + }); +var $elm$core$List$repeat = F2( + function (n, value) { + return A3($elm$core$List$repeatHelp, _List_Nil, n, value); + }); +var $mdgriffith$elm_ui$Element$tableHelper = F2( + function (attrs, config) { + var onGrid = F3( + function (rowLevel, columnLevel, elem) { + return A4( + $mdgriffith$elm_ui$Internal$Model$element, + $mdgriffith$elm_ui$Internal$Model$asEl, + $mdgriffith$elm_ui$Internal$Model$div, + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Internal$Model$StyleClass, + $mdgriffith$elm_ui$Internal$Flag$gridPosition, + $mdgriffith$elm_ui$Internal$Model$GridPosition( + {col: columnLevel, height: 1, row: rowLevel, width: 1})) + ]), + $mdgriffith$elm_ui$Internal$Model$Unkeyed( + _List_fromArray( + [elem]))); + }); + var columnWidth = function (col) { + if (col.$ === 'InternalIndexedColumn') { + var colConfig = col.a; + return colConfig.width; + } else { + var colConfig = col.a; + return colConfig.width; + } + }; + var columnHeader = function (col) { + if (col.$ === 'InternalIndexedColumn') { + var colConfig = col.a; + return colConfig.header; + } else { + var colConfig = col.a; + return colConfig.header; + } + }; + var maybeHeaders = function (headers) { + return A2( + $elm$core$List$all, + $elm$core$Basics$eq($mdgriffith$elm_ui$Internal$Model$Empty), + headers) ? $elm$core$Maybe$Nothing : $elm$core$Maybe$Just( + A2( + $elm$core$List$indexedMap, + F2( + function (col, header) { + return A3(onGrid, 1, col + 1, header); + }), + headers)); + }( + A2($elm$core$List$map, columnHeader, config.columns)); + var add = F3( + function (cell, columnConfig, cursor) { + if (columnConfig.$ === 'InternalIndexedColumn') { + var col = columnConfig.a; + return _Utils_update( + cursor, + { + column: cursor.column + 1, + elements: A2( + $elm$core$List$cons, + A3( + onGrid, + cursor.row, + cursor.column, + A2( + col.view, + _Utils_eq(maybeHeaders, $elm$core$Maybe$Nothing) ? (cursor.row - 1) : (cursor.row - 2), + cell)), + cursor.elements) + }); + } else { + var col = columnConfig.a; + return { + column: cursor.column + 1, + elements: A2( + $elm$core$List$cons, + A3( + onGrid, + cursor.row, + cursor.column, + col.view(cell)), + cursor.elements), + row: cursor.row + }; + } + }); + var build = F3( + function (columns, rowData, cursor) { + var newCursor = A3( + $elm$core$List$foldl, + add(rowData), + cursor, + columns); + return {column: 1, elements: newCursor.elements, row: cursor.row + 1}; + }); + var children = A3( + $elm$core$List$foldl, + build(config.columns), + { + column: 1, + elements: _List_Nil, + row: _Utils_eq(maybeHeaders, $elm$core$Maybe$Nothing) ? 1 : 2 + }, + config.data); + var _v0 = A2( + $mdgriffith$elm_ui$Internal$Model$getSpacing, + attrs, + _Utils_Tuple2(0, 0)); + var sX = _v0.a; + var sY = _v0.b; + var template = A2( + $mdgriffith$elm_ui$Internal$Model$StyleClass, + $mdgriffith$elm_ui$Internal$Flag$gridTemplate, + $mdgriffith$elm_ui$Internal$Model$GridTemplateStyle( + { + columns: A2($elm$core$List$map, columnWidth, config.columns), + rows: A2( + $elm$core$List$repeat, + $elm$core$List$length(config.data), + $mdgriffith$elm_ui$Internal$Model$Content), + spacing: _Utils_Tuple2( + $mdgriffith$elm_ui$Element$px(sX), + $mdgriffith$elm_ui$Element$px(sY)) + })); + return A4( + $mdgriffith$elm_ui$Internal$Model$element, + $mdgriffith$elm_ui$Internal$Model$asGrid, + $mdgriffith$elm_ui$Internal$Model$div, + A2( + $elm$core$List$cons, + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), + A2($elm$core$List$cons, template, attrs)), + $mdgriffith$elm_ui$Internal$Model$Unkeyed( + function () { + if (maybeHeaders.$ === 'Nothing') { + return children.elements; + } else { + var renderedHeaders = maybeHeaders.a; + return _Utils_ap( + renderedHeaders, + $elm$core$List$reverse(children.elements)); + } + }())); + }); +var $mdgriffith$elm_ui$Element$indexedTable = F2( + function (attrs, config) { + return A2( + $mdgriffith$elm_ui$Element$tableHelper, + attrs, + { + columns: A2($elm$core$List$map, $mdgriffith$elm_ui$Element$InternalIndexedColumn, config.columns), + data: config.data + }); + }); +var $author$project$Morphir$IR$Module$definitionToSpecification = function (def) { + return { + types: $elm$core$Dict$fromList( + A2( + $elm$core$List$filterMap, + function (_v0) { + var path = _v0.a; + var accessControlledType = _v0.b; + return A2( + $elm$core$Maybe$map, + function (typeDef) { + return _Utils_Tuple2( + path, + A2($author$project$Morphir$IR$Documented$map, $author$project$Morphir$IR$Type$definitionToSpecification, typeDef)); + }, + $author$project$Morphir$IR$AccessControlled$withPublicAccess(accessControlledType)); + }, + $elm$core$Dict$toList(def.types))), + values: $elm$core$Dict$fromList( + A2( + $elm$core$List$filterMap, + function (_v1) { + var path = _v1.a; + var accessControlledValue = _v1.b; + return A2( + $elm$core$Maybe$map, + function (valueDef) { + return _Utils_Tuple2( + path, + $author$project$Morphir$IR$Value$definitionToSpecification(valueDef)); + }, + $author$project$Morphir$IR$AccessControlled$withPublicAccess(accessControlledValue)); + }, + $elm$core$Dict$toList(def.values))) + }; +}; +var $author$project$Morphir$IR$Package$definitionToSpecification = function (def) { + return { + modules: $elm$core$Dict$fromList( + A2( + $elm$core$List$filterMap, + function (_v0) { + var path = _v0.a; + var accessControlledModule = _v0.b; + return A2( + $elm$core$Maybe$map, + function (moduleDef) { + return _Utils_Tuple2( + path, + $author$project$Morphir$IR$Module$definitionToSpecification(moduleDef)); + }, + $author$project$Morphir$IR$AccessControlled$withPublicAccess(accessControlledModule)); + }, + $elm$core$Dict$toList(def.modules))) + }; +}; +var $author$project$Morphir$IR$Package$lookupModuleSpecification = F2( + function (modulePath, packageSpec) { + return A2($elm$core$Dict$get, modulePath, packageSpec.modules); + }); +var $author$project$Morphir$IR$Distribution$lookupModuleSpecification = F3( + function (packageName, modulePath, distribution) { + var libraryPackageName = distribution.a; + var dependencies = distribution.b; + var packageDef = distribution.c; + return _Utils_eq(packageName, libraryPackageName) ? A2( + $author$project$Morphir$IR$Package$lookupModuleSpecification, + modulePath, + $author$project$Morphir$IR$Package$definitionToSpecification(packageDef)) : A2( + $elm$core$Maybe$andThen, + $author$project$Morphir$IR$Package$lookupModuleSpecification(modulePath), + A2($elm$core$Dict$get, packageName, dependencies)); + }); +var $author$project$Morphir$IR$Module$lookupTypeSpecification = F2( + function (localName, moduleSpec) { + return A2( + $elm$core$Maybe$map, + function ($) { + return $.value; + }, + A2($elm$core$Dict$get, localName, moduleSpec.types)); + }); +var $author$project$Morphir$IR$Distribution$lookupTypeSpecification = F4( + function (packageName, moduleName, localName, distribution) { + return A2( + $elm$core$Maybe$andThen, + $author$project$Morphir$IR$Module$lookupTypeSpecification(localName), + A3($author$project$Morphir$IR$Distribution$lookupModuleSpecification, packageName, moduleName, distribution)); + }); +var $author$project$Morphir$IR$Distribution$resolveRecordConstructors = F2( + function (value, distribution) { + return A2( + $author$project$Morphir$IR$Value$rewriteValue, + function (v) { + if (v.$ === 'Apply') { + var fun = v.b; + var lastArg = v.c; + var _v1 = A2($author$project$Morphir$IR$Value$uncurryApply, fun, lastArg); + var bottomFun = _v1.a; + var args = _v1.b; + if (bottomFun.$ === 'Constructor') { + var va = bottomFun.a; + var _v3 = bottomFun.b; + var packageName = _v3.a; + var moduleName = _v3.b; + var localName = _v3.c; + return A2( + $elm$core$Maybe$andThen, + function (typeSpec) { + if ((typeSpec.$ === 'TypeAliasSpecification') && (typeSpec.b.$ === 'Record')) { + var _v5 = typeSpec.b; + var fields = _v5.b; + return $elm$core$Maybe$Just( + A2( + $author$project$Morphir$IR$Value$Record, + va, + A3( + $elm$core$List$map2, + $elm$core$Tuple$pair, + A2( + $elm$core$List$map, + function ($) { + return $.name; + }, + fields), + args))); + } else { + return $elm$core$Maybe$Nothing; + } + }, + A4($author$project$Morphir$IR$Distribution$lookupTypeSpecification, packageName, moduleName, localName, distribution)); + } else { + return $elm$core$Maybe$Nothing; + } + } else { + return $elm$core$Maybe$Nothing; + } + }, + value); + }); +var $author$project$Morphir$IR$Distribution$resolveTypeReference = F3( + function (fQName, typeArgs, distribution) { + var packageName = fQName.a; + var moduleName = fQName.b; + var localName = fQName.c; + var _v0 = A4($author$project$Morphir$IR$Distribution$lookupTypeSpecification, packageName, moduleName, localName, distribution); + if (_v0.$ === 'Just') { + var typeSpec = _v0.a; + switch (typeSpec.$) { + case 'TypeAliasSpecification': + var paramNames = typeSpec.a; + var tpe = typeSpec.b; + var paramMapping = $elm$core$Dict$fromList( + A3($elm$core$List$map2, $elm$core$Tuple$pair, paramNames, typeArgs)); + return $elm$core$Result$Ok( + A2($author$project$Morphir$IR$Type$substituteTypeVariables, paramMapping, tpe)); + case 'OpaqueTypeSpecification': + return $elm$core$Result$Err( + $elm$core$String$concat( + _List_fromArray( + [ + 'Opaque types cannot be resolved: ', + $author$project$Morphir$IR$FQName$toString(fQName) + ]))); + default: + return $elm$core$Result$Err( + $elm$core$String$concat( + _List_fromArray( + [ + 'Custom types cannot be resolved: ', + $author$project$Morphir$IR$FQName$toString(fQName) + ]))); + } + } else { + return $elm$core$Result$Err( + $elm$core$String$concat( + _List_fromArray( + [ + 'Type specification not found: ', + $author$project$Morphir$IR$FQName$toString(fQName) + ]))); + } + }); +var $mdgriffith$elm_ui$Element$InternalColumn = function (a) { + return {$: 'InternalColumn', a: a}; +}; +var $mdgriffith$elm_ui$Element$table = F2( + function (attrs, config) { + return A2( + $mdgriffith$elm_ui$Element$tableHelper, + attrs, + { + columns: A2($elm$core$List$map, $mdgriffith$elm_ui$Element$InternalColumn, config.columns), + data: config.data + }); + }); +var $author$project$Morphir$Visual$ViewList$viewAsList = F3( + function (config, viewValue, items) { + return A2( + $mdgriffith$elm_ui$Element$table, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) + ]), + { + columns: _List_fromArray( + [ + {header: $mdgriffith$elm_ui$Element$none, view: viewValue, width: $mdgriffith$elm_ui$Element$fill} + ]), + data: items + }); + }); +var $author$project$Morphir$Visual$ViewList$view = F4( + function (config, viewValue, itemType, items) { + view: + while (true) { + if ($elm$core$List$isEmpty(items)) { + return A2( + $mdgriffith$elm_ui$Element$el, + _List_Nil, + $mdgriffith$elm_ui$Element$text('[ ]')); + } else { + switch (itemType.$) { + case 'Record': + var fields = itemType.b; + return A2( + $mdgriffith$elm_ui$Element$indexedTable, + _List_fromArray( + [$mdgriffith$elm_ui$Element$centerX, $mdgriffith$elm_ui$Element$centerY]), + { + columns: A2( + $elm$core$List$map, + function (field) { + return { + header: A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$Border$widthEach( + {bottom: 1, left: 0, right: 0, top: 0}), + $mdgriffith$elm_ui$Element$padding( + $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)) + ]), + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [$mdgriffith$elm_ui$Element$centerY, $mdgriffith$elm_ui$Element$centerX]), + $mdgriffith$elm_ui$Element$text( + A2( + $elm$core$String$join, + ' ', + $author$project$Morphir$IR$Name$toHumanWords(field.name))))), + view: F2( + function (rowIndex, item) { + return A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$padding( + $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)), + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), + $mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill) + ]), + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [$mdgriffith$elm_ui$Element$centerX, $mdgriffith$elm_ui$Element$centerY]), + function () { + if (item.$ === 'Record') { + var fieldValues = item.b; + return A2( + $elm$core$Maybe$withDefault, + $mdgriffith$elm_ui$Element$text('???'), + A2( + $elm$core$Maybe$map, + viewValue, + A2( + $elm$core$Dict$get, + field.name, + $elm$core$Dict$fromList(fieldValues)))); + } else { + return viewValue(item); + } + }())); + }), + width: $mdgriffith$elm_ui$Element$fill + }; + }, + fields), + data: A2( + $elm$core$List$map, + function (item) { + return A2($author$project$Morphir$IR$Distribution$resolveRecordConstructors, item, config.irContext.distribution); + }, + items) + }); + case 'Reference': + var fQName = itemType.b; + var typeArgs = itemType.c; + var _v2 = A3($author$project$Morphir$IR$Distribution$resolveTypeReference, fQName, typeArgs, config.irContext.distribution); + if (_v2.$ === 'Ok') { + var resolvedItemType = _v2.a; + var $temp$config = config, + $temp$viewValue = viewValue, + $temp$itemType = resolvedItemType, + $temp$items = items; + config = $temp$config; + viewValue = $temp$viewValue; + itemType = $temp$itemType; + items = $temp$items; + continue view; + } else { + return A3($author$project$Morphir$Visual$ViewList$viewAsList, config, viewValue, items); + } + default: + return A3($author$project$Morphir$Visual$ViewList$viewAsList, config, viewValue, items); + } + } + } + }); +var $cuducos$elm_format_number$FormatNumber$Locales$Exact = function (a) { + return {$: 'Exact', a: a}; +}; +var $cuducos$elm_format_number$FormatNumber$Parser$FormattedNumber = F5( + function (original, integers, decimals, prefix, suffix) { + return {decimals: decimals, integers: integers, original: original, prefix: prefix, suffix: suffix}; + }); +var $cuducos$elm_format_number$FormatNumber$Parser$Negative = {$: 'Negative'}; +var $cuducos$elm_format_number$FormatNumber$Parser$Positive = {$: 'Positive'}; +var $cuducos$elm_format_number$FormatNumber$Parser$Zero = {$: 'Zero'}; +var $elm$core$List$singleton = function (value) { + return _List_fromArray( + [value]); +}; +var $cuducos$elm_format_number$FormatNumber$Parser$classify = function (formatted) { + var onlyZeros = A2( + $elm$core$String$all, + function (_char) { + return _Utils_eq( + _char, + _Utils_chr('0')); + }, + $elm$core$String$concat( + A2( + $elm$core$List$append, + formatted.integers, + $elm$core$List$singleton(formatted.decimals)))); + return onlyZeros ? $cuducos$elm_format_number$FormatNumber$Parser$Zero : ((formatted.original < 0) ? $cuducos$elm_format_number$FormatNumber$Parser$Negative : $cuducos$elm_format_number$FormatNumber$Parser$Positive); +}; +var $elm$core$String$filter = _String_filter; +var $elm$core$Bitwise$shiftRightBy = _Bitwise_shiftRightBy; +var $elm$core$String$repeatHelp = F3( + function (n, chunk, result) { + return (n <= 0) ? result : A3( + $elm$core$String$repeatHelp, + n >> 1, + _Utils_ap(chunk, chunk), + (!(n & 1)) ? result : _Utils_ap(result, chunk)); + }); +var $elm$core$String$repeat = F2( + function (n, chunk) { + return A3($elm$core$String$repeatHelp, n, chunk, ''); + }); +var $cuducos$elm_format_number$FormatNumber$Parser$addZerosToFit = F2( + function (desiredLength, value) { + var length = $elm$core$String$length(value); + var missing = (_Utils_cmp(length, desiredLength) < 0) ? $elm$core$Basics$abs(desiredLength - length) : 0; + return _Utils_ap( + value, + A2($elm$core$String$repeat, missing, '0')); + }); +var $elm$core$String$dropRight = F2( + function (n, string) { + return (n < 1) ? string : A3($elm$core$String$slice, 0, -n, string); + }); +var $elm$core$String$right = F2( + function (n, string) { + return (n < 1) ? '' : A3( + $elm$core$String$slice, + -n, + $elm$core$String$length(string), + string); + }); +var $cuducos$elm_format_number$FormatNumber$Parser$removeZeros = function (decimals) { + return (A2($elm$core$String$right, 1, decimals) !== '0') ? decimals : $cuducos$elm_format_number$FormatNumber$Parser$removeZeros( + A2($elm$core$String$dropRight, 1, decimals)); +}; +var $cuducos$elm_format_number$FormatNumber$Parser$getDecimals = F2( + function (locale, digits) { + var _v0 = locale.decimals; + switch (_v0.$) { + case 'Max': + return $cuducos$elm_format_number$FormatNumber$Parser$removeZeros(digits); + case 'Exact': + return digits; + default: + var min = _v0.a; + return A2($cuducos$elm_format_number$FormatNumber$Parser$addZerosToFit, min, digits); + } + }); +var $elm$core$String$foldr = _String_foldr; +var $elm$core$String$toList = function (string) { + return A3($elm$core$String$foldr, $elm$core$List$cons, _List_Nil, string); +}; +var $myrho$elm_round$Round$addSign = F2( + function (signed, str) { + var isNotZero = A2( + $elm$core$List$any, + function (c) { + return (!_Utils_eq( + c, + _Utils_chr('0'))) && (!_Utils_eq( + c, + _Utils_chr('.'))); + }, + $elm$core$String$toList(str)); + return _Utils_ap( + (signed && isNotZero) ? '-' : '', + str); + }); +var $elm$core$Char$fromCode = _Char_fromCode; +var $myrho$elm_round$Round$increaseNum = function (_v0) { + var head = _v0.a; + var tail = _v0.b; + if (_Utils_eq( + head, + _Utils_chr('9'))) { + var _v1 = $elm$core$String$uncons(tail); + if (_v1.$ === 'Nothing') { + return '01'; + } else { + var headtail = _v1.a; + return A2( + $elm$core$String$cons, + _Utils_chr('0'), + $myrho$elm_round$Round$increaseNum(headtail)); + } + } else { + var c = $elm$core$Char$toCode(head); + return ((c >= 48) && (c < 57)) ? A2( + $elm$core$String$cons, + $elm$core$Char$fromCode(c + 1), + tail) : '0'; + } +}; +var $elm$core$Basics$isInfinite = _Basics_isInfinite; +var $elm$core$Basics$isNaN = _Basics_isNaN; +var $elm$core$String$fromChar = function (_char) { + return A2($elm$core$String$cons, _char, ''); +}; +var $elm$core$String$padRight = F3( + function (n, _char, string) { + return _Utils_ap( + string, + A2( + $elm$core$String$repeat, + n - $elm$core$String$length(string), + $elm$core$String$fromChar(_char))); + }); +var $elm$core$String$reverse = _String_reverse; +var $myrho$elm_round$Round$splitComma = function (str) { + var _v0 = A2($elm$core$String$split, '.', str); + if (_v0.b) { + if (_v0.b.b) { + var before = _v0.a; + var _v1 = _v0.b; + var after = _v1.a; + return _Utils_Tuple2(before, after); + } else { + var before = _v0.a; + return _Utils_Tuple2(before, '0'); + } + } else { + return _Utils_Tuple2('0', '0'); + } +}; +var $myrho$elm_round$Round$toDecimal = function (fl) { + var _v0 = A2( + $elm$core$String$split, + 'e', + $elm$core$String$fromFloat( + $elm$core$Basics$abs(fl))); + if (_v0.b) { + if (_v0.b.b) { + var num = _v0.a; + var _v1 = _v0.b; + var exp = _v1.a; + var e = A2( + $elm$core$Maybe$withDefault, + 0, + $elm$core$String$toInt( + A2($elm$core$String$startsWith, '+', exp) ? A2($elm$core$String$dropLeft, 1, exp) : exp)); + var _v2 = $myrho$elm_round$Round$splitComma(num); + var before = _v2.a; + var after = _v2.b; + var total = _Utils_ap(before, after); + var zeroed = (e < 0) ? A2( + $elm$core$Maybe$withDefault, + '0', + A2( + $elm$core$Maybe$map, + function (_v3) { + var a = _v3.a; + var b = _v3.b; + return a + ('.' + b); + }, + A2( + $elm$core$Maybe$map, + $elm$core$Tuple$mapFirst($elm$core$String$fromChar), + $elm$core$String$uncons( + _Utils_ap( + A2( + $elm$core$String$repeat, + $elm$core$Basics$abs(e), + '0'), + total))))) : A3( + $elm$core$String$padRight, + e + 1, + _Utils_chr('0'), + total); + return _Utils_ap( + (fl < 0) ? '-' : '', + zeroed); + } else { + var num = _v0.a; + return _Utils_ap( + (fl < 0) ? '-' : '', + num); + } + } else { + return ''; + } +}; +var $myrho$elm_round$Round$roundFun = F3( + function (functor, s, fl) { + if ($elm$core$Basics$isInfinite(fl) || $elm$core$Basics$isNaN(fl)) { + return $elm$core$String$fromFloat(fl); + } else { + var signed = fl < 0; + var _v0 = $myrho$elm_round$Round$splitComma( + $myrho$elm_round$Round$toDecimal( + $elm$core$Basics$abs(fl))); + var before = _v0.a; + var after = _v0.b; + var r = $elm$core$String$length(before) + s; + var normalized = _Utils_ap( + A2($elm$core$String$repeat, (-r) + 1, '0'), + A3( + $elm$core$String$padRight, + r, + _Utils_chr('0'), + _Utils_ap(before, after))); + var totalLen = $elm$core$String$length(normalized); + var roundDigitIndex = A2($elm$core$Basics$max, 1, r); + var increase = A2( + functor, + signed, + A3($elm$core$String$slice, roundDigitIndex, totalLen, normalized)); + var remains = A3($elm$core$String$slice, 0, roundDigitIndex, normalized); + var num = increase ? $elm$core$String$reverse( + A2( + $elm$core$Maybe$withDefault, + '1', + A2( + $elm$core$Maybe$map, + $myrho$elm_round$Round$increaseNum, + $elm$core$String$uncons( + $elm$core$String$reverse(remains))))) : remains; + var numLen = $elm$core$String$length(num); + var numZeroed = (num === '0') ? num : ((s <= 0) ? _Utils_ap( + num, + A2( + $elm$core$String$repeat, + $elm$core$Basics$abs(s), + '0')) : ((_Utils_cmp( + s, + $elm$core$String$length(after)) < 0) ? (A3($elm$core$String$slice, 0, numLen - s, num) + ('.' + A3($elm$core$String$slice, numLen - s, numLen, num))) : _Utils_ap( + before + '.', + A3( + $elm$core$String$padRight, + s, + _Utils_chr('0'), + after)))); + return A2($myrho$elm_round$Round$addSign, signed, numZeroed); + } + }); +var $myrho$elm_round$Round$round = $myrho$elm_round$Round$roundFun( + F2( + function (signed, str) { + var _v0 = $elm$core$String$uncons(str); + if (_v0.$ === 'Nothing') { + return false; + } else { + if ('5' === _v0.a.a.valueOf()) { + if (_v0.a.b === '') { + var _v1 = _v0.a; + return !signed; + } else { + var _v2 = _v0.a; + return true; + } + } else { + var _v3 = _v0.a; + var _int = _v3.a; + return function (i) { + return ((i > 53) && signed) || ((i >= 53) && (!signed)); + }( + $elm$core$Char$toCode(_int)); + } + } + })); +var $elm$core$List$tail = function (list) { + if (list.b) { + var x = list.a; + var xs = list.b; + return $elm$core$Maybe$Just(xs); + } else { + return $elm$core$Maybe$Nothing; + } +}; +var $cuducos$elm_format_number$FormatNumber$Parser$splitInParts = F2( + function (locale, value) { + var toString = function () { + var _v1 = locale.decimals; + switch (_v1.$) { + case 'Max': + var max = _v1.a; + return $myrho$elm_round$Round$round(max); + case 'Min': + return $elm$core$String$fromFloat; + default: + var exact = _v1.a; + return $myrho$elm_round$Round$round(exact); + } + }(); + var asList = A2( + $elm$core$String$split, + '.', + toString(value)); + var decimals = function () { + var _v0 = $elm$core$List$tail(asList); + if (_v0.$ === 'Just') { + var values = _v0.a; + return A2( + $elm$core$Maybe$withDefault, + '', + $elm$core$List$head(values)); + } else { + return ''; + } + }(); + var integers = A2( + $elm$core$Maybe$withDefault, + '', + $elm$core$List$head(asList)); + return _Utils_Tuple2(integers, decimals); + }); +var $cuducos$elm_format_number$FormatNumber$Parser$splitThousands = function (integers) { + var reversedSplitThousands = function (value) { + return ($elm$core$String$length(value) > 3) ? A2( + $elm$core$List$cons, + A2($elm$core$String$right, 3, value), + reversedSplitThousands( + A2($elm$core$String$dropRight, 3, value))) : _List_fromArray( + [value]); + }; + return $elm$core$List$reverse( + reversedSplitThousands(integers)); +}; +var $cuducos$elm_format_number$FormatNumber$Parser$parse = F2( + function (locale, original) { + var parts = A2($cuducos$elm_format_number$FormatNumber$Parser$splitInParts, locale, original); + var integers = $cuducos$elm_format_number$FormatNumber$Parser$splitThousands( + A2($elm$core$String$filter, $elm$core$Char$isDigit, parts.a)); + var decimals = A2($cuducos$elm_format_number$FormatNumber$Parser$getDecimals, locale, parts.b); + var partial = A5($cuducos$elm_format_number$FormatNumber$Parser$FormattedNumber, original, integers, decimals, '', ''); + var _v0 = $cuducos$elm_format_number$FormatNumber$Parser$classify(partial); + switch (_v0.$) { + case 'Negative': + return _Utils_update( + partial, + {prefix: locale.negativePrefix, suffix: locale.negativeSuffix}); + case 'Positive': + return _Utils_update( + partial, + {prefix: locale.positivePrefix, suffix: locale.positiveSuffix}); + default: + return _Utils_update( + partial, + {prefix: locale.zeroPrefix, suffix: locale.zeroSuffix}); + } + }); +var $cuducos$elm_format_number$FormatNumber$Stringfy$formatDecimals = F2( + function (locale, decimals) { + return (decimals === '') ? '' : _Utils_ap(locale.decimalSeparator, decimals); + }); +var $cuducos$elm_format_number$FormatNumber$Stringfy$stringfy = F2( + function (locale, formatted) { + var stringfyDecimals = $cuducos$elm_format_number$FormatNumber$Stringfy$formatDecimals(locale); + var integers = A2($elm$core$String$join, locale.thousandSeparator, formatted.integers); + var decimals = stringfyDecimals(formatted.decimals); + return $elm$core$String$concat( + _List_fromArray( + [formatted.prefix, integers, decimals, formatted.suffix])); + }); +var $cuducos$elm_format_number$FormatNumber$format = F2( + function (locale, number_) { + return A2( + $cuducos$elm_format_number$FormatNumber$Stringfy$stringfy, + locale, + A2($cuducos$elm_format_number$FormatNumber$Parser$parse, locale, number_)); + }); +var $cuducos$elm_format_number$FormatNumber$Locales$Min = function (a) { + return {$: 'Min', a: a}; +}; +var $cuducos$elm_format_number$FormatNumber$Locales$base = { + decimalSeparator: '.', + decimals: $cuducos$elm_format_number$FormatNumber$Locales$Min(0), + negativePrefix: '−', + negativeSuffix: '', + positivePrefix: '', + positiveSuffix: '', + thousandSeparator: '', + zeroPrefix: '', + zeroSuffix: '' +}; +var $cuducos$elm_format_number$FormatNumber$Locales$usLocale = _Utils_update( + $cuducos$elm_format_number$FormatNumber$Locales$base, + { + decimals: $cuducos$elm_format_number$FormatNumber$Locales$Exact(2), + thousandSeparator: ',' + }); +var $author$project$Morphir$Visual$Common$cssClass = function (className) { + return $mdgriffith$elm_ui$Element$htmlAttribute( + $elm$html$Html$Attributes$class(className)); +}; +var $author$project$Morphir$Visual$ViewLiteral$viewLiteralText = F2( + function (className, literalText) { + return A2( + $mdgriffith$elm_ui$Element$el, + _List_Nil, + A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $author$project$Morphir$Visual$Common$cssClass(className) + ]), + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$text(literalText) + ]))); + }); +var $author$project$Morphir$Visual$ViewLiteral$view = F2( + function (config, literal) { + switch (literal.$) { + case 'BoolLiteral': + var bool = literal.a; + return A2( + $author$project$Morphir$Visual$ViewLiteral$viewLiteralText, + 'bool-literal', + function () { + if (bool) { + return 'True'; + } else { + return 'False'; + } + }()); + case 'CharLiteral': + var _char = literal.a; + return A2( + $author$project$Morphir$Visual$ViewLiteral$viewLiteralText, + 'char-literal', + $elm$core$String$concat( + _List_fromArray( + [ + '\'', + $elm$core$String$fromChar(_char), + '\'' + ]))); + case 'StringLiteral': + var string = literal.a; + return A2( + $author$project$Morphir$Visual$ViewLiteral$viewLiteralText, + 'string-literal', + $elm$core$String$concat( + _List_fromArray( + ['\"', string, '\"']))); + case 'IntLiteral': + var _int = literal.a; + return A2( + $author$project$Morphir$Visual$ViewLiteral$viewLiteralText, + 'int-literal', + A2( + $cuducos$elm_format_number$FormatNumber$format, + _Utils_update( + $cuducos$elm_format_number$FormatNumber$Locales$usLocale, + { + decimals: $cuducos$elm_format_number$FormatNumber$Locales$Exact(0), + negativePrefix: '- ( ', + negativeSuffix: ' )' + }), + _int)); + default: + var _float = literal.a; + return A2( + $author$project$Morphir$Visual$ViewLiteral$viewLiteralText, + 'float-literal', + A2( + $cuducos$elm_format_number$FormatNumber$format, + _Utils_update( + $cuducos$elm_format_number$FormatNumber$Locales$usLocale, + { + decimals: $cuducos$elm_format_number$FormatNumber$Locales$Exact(config.state.theme.decimalDigit), + negativePrefix: '- ( ', + negativeSuffix: ' )' + }), + _float)); + } + }); +var $mdgriffith$elm_ui$Element$Column = F3( + function (header, width, view) { + return {header: header, view: view, width: width}; + }); +var $author$project$Morphir$IR$FQName$getLocalName = function (_v0) { + var l = _v0.c; + return l; +}; +var $author$project$Morphir$Visual$DecisionTable$Pattern = function (a) { + return {$: 'Pattern', a: a}; +}; +var $author$project$Morphir$Visual$DecisionTable$toTypedPattern = function (match) { + return A2( + $author$project$Morphir$IR$Value$mapPatternAttributes, + $elm$core$Basics$always( + $author$project$Morphir$IR$Value$patternAttribute(match)), + match); +}; +var $author$project$Morphir$Visual$DecisionTable$patternToMatch = function (pattern) { + return $author$project$Morphir$Visual$DecisionTable$Pattern( + $author$project$Morphir$Visual$DecisionTable$toTypedPattern(pattern)); +}; +var $author$project$Morphir$Visual$DecisionTable$toVisualTypedValue = function (typedValue) { + return A3($author$project$Morphir$IR$Value$indexedMapValue, $elm$core$Tuple$pair, 0, typedValue).a; +}; +var $author$project$Morphir$Visual$DecisionTable$getCaseFromIndex = F2( + function (viewValue, rules) { + getCaseFromIndex: + while (true) { + if (rules.$ === 'Just') { + var match = rules.a; + if (match.$ === 'Pattern') { + var pattern = match.a; + switch (pattern.$) { + case 'WildcardPattern': + return A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$Background$color( + A3($mdgriffith$elm_ui$Element$rgb255, 200, 200, 200)) + ]), + $mdgriffith$elm_ui$Element$text(' ')); + case 'LiteralPattern': + var va = pattern.a; + var literal = pattern.b; + var value = $author$project$Morphir$Visual$DecisionTable$toVisualTypedValue( + A2($author$project$Morphir$IR$Value$Literal, va, literal)); + return viewValue(value); + case 'ConstructorPattern': + var tpe = pattern.a; + var fQName = pattern.b; + var matches = pattern.c; + var patternToMaybeMatch = function (input) { + return $elm$core$Maybe$Just( + $author$project$Morphir$Visual$DecisionTable$patternToMatch(input)); + }; + var maybeMatches = A2($elm$core$List$map, patternToMaybeMatch, matches); + var parsedMatches = A2( + $elm$core$List$map, + $author$project$Morphir$Visual$DecisionTable$getCaseFromIndex(viewValue), + maybeMatches); + return A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing(5), + $mdgriffith$elm_ui$Element$Border$widthEach( + {bottom: 0, left: 2, right: 0, top: 0}) + ]), + $elm$core$List$concat( + _List_fromArray( + [ + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$text( + $author$project$Morphir$Visual$Common$nameToText( + $author$project$Morphir$IR$FQName$getLocalName(fQName))) + ]), + parsedMatches + ]))); + case 'AsPattern': + var tpe = pattern.a; + var asPattern = pattern.b; + var name = pattern.c; + var $temp$viewValue = viewValue, + $temp$rules = $elm$core$Maybe$Just( + $author$project$Morphir$Visual$DecisionTable$patternToMatch(asPattern)); + viewValue = $temp$viewValue; + rules = $temp$rules; + continue getCaseFromIndex; + default: + return $mdgriffith$elm_ui$Element$text('pattern type not implemented'); + } + } else { + return $mdgriffith$elm_ui$Element$text('guard'); + } + } else { + return $mdgriffith$elm_ui$Element$text('nothing'); + } + } + }); +var $author$project$Morphir$Visual$DecisionTable$columnHelper = F3( + function (viewValue, header, index) { + var head = $author$project$Morphir$Visual$DecisionTable$toVisualTypedValue(header); + return _List_fromArray( + [ + A3( + $mdgriffith$elm_ui$Element$Column, + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$Border$widthEach( + {bottom: 1, left: 0, right: 0, top: 0}) + ]), + viewValue(head)), + $mdgriffith$elm_ui$Element$fill, + function (rules) { + return A2( + $author$project$Morphir$Visual$DecisionTable$getCaseFromIndex, + viewValue, + $elm$core$List$head( + A2($elm$core$List$drop, index, rules.a))); + }) + ]); + }); +var $author$project$Morphir$Visual$DecisionTable$getColumnFromHeader = F3( + function (viewValue, index, decomposeInput) { + if (decomposeInput.b) { + if (!decomposeInput.b.b) { + var inputHead = decomposeInput.a; + return A3($author$project$Morphir$Visual$DecisionTable$columnHelper, viewValue, inputHead, index); + } else { + var inputHead = decomposeInput.a; + var inputTail = decomposeInput.b; + return $elm$core$List$concat( + _List_fromArray( + [ + A3($author$project$Morphir$Visual$DecisionTable$columnHelper, viewValue, inputHead, index), + A3($author$project$Morphir$Visual$DecisionTable$getColumnFromHeader, viewValue, index + 1, inputTail) + ])); + } + } else { + return _List_Nil; + } + }); +var $author$project$Morphir$Visual$DecisionTable$tableHelp = F3( + function (viewValue, headerFunctions, rows) { + return A2( + $mdgriffith$elm_ui$Element$table, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing(10), + $mdgriffith$elm_ui$Element$padding(10), + $mdgriffith$elm_ui$Element$Border$solid, + $mdgriffith$elm_ui$Element$Border$width(1) + ]), + { + columns: A2( + $elm$core$List$append, + A3($author$project$Morphir$Visual$DecisionTable$getColumnFromHeader, viewValue, 0, headerFunctions), + _List_fromArray( + [ + A3( + $mdgriffith$elm_ui$Element$Column, + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$Border$widthEach( + {bottom: 1, left: 0, right: 0, top: 0}) + ]), + $mdgriffith$elm_ui$Element$text('Result')), + $mdgriffith$elm_ui$Element$fill, + function (rules) { + return viewValue( + $author$project$Morphir$Visual$DecisionTable$toVisualTypedValue(rules.b)); + }) + ])), + data: rows + }); + }); +var $author$project$Morphir$Visual$DecisionTable$displayTable = F2( + function (viewValue, table) { + return A3($author$project$Morphir$Visual$DecisionTable$tableHelp, viewValue, table.decomposeInput, table.rules); + }); +var $author$project$Morphir$Visual$ViewPatternMatch$decomposeInput = function (subject) { + if (subject.$ === 'Tuple') { + var elems = subject.b; + return A2($elm$core$List$concatMap, $author$project$Morphir$Visual$ViewPatternMatch$decomposeInput, elems); + } else { + return _List_fromArray( + [subject]); + } +}; +var $author$project$Morphir$Visual$ViewPatternMatch$decomposePattern = F2( + function (subject, match) { + switch (match.a.$) { + case 'WildcardPattern': + var tpe = match.a.a; + var wildcardMatch = $author$project$Morphir$Visual$DecisionTable$Pattern(match.a); + return _List_fromArray( + [ + _Utils_Tuple2( + A2( + $elm$core$List$repeat, + $elm$core$List$length(subject), + wildcardMatch), + match.b) + ]); + case 'LiteralPattern': + var _v1 = match.a; + var tpe = _v1.a; + var literal = _v1.b; + var literalMatch = $author$project$Morphir$Visual$DecisionTable$Pattern(match.a); + return _List_fromArray( + [ + _Utils_Tuple2( + _List_fromArray( + [literalMatch]), + match.b) + ]); + case 'TuplePattern': + var _v2 = match.a; + var tpe = _v2.a; + var matches = _v2.b; + var tupleMatch = A2($elm$core$List$map, $author$project$Morphir$Visual$DecisionTable$Pattern, matches); + return _List_fromArray( + [ + _Utils_Tuple2(tupleMatch, match.b) + ]); + case 'ConstructorPattern': + var _v3 = match.a; + var tpe = _v3.a; + var fQName = _v3.b; + var matches = _v3.c; + var constructorMatch = $author$project$Morphir$Visual$DecisionTable$Pattern(match.a); + return _List_fromArray( + [ + _Utils_Tuple2( + _List_fromArray( + [constructorMatch]), + match.b) + ]); + case 'AsPattern': + var _v4 = match.a; + var tpe = _v4.a; + var pattern = _v4.b; + var name = _v4.c; + var asMatch = $author$project$Morphir$Visual$DecisionTable$Pattern(match.a); + return _List_fromArray( + [ + _Utils_Tuple2( + _List_fromArray( + [asMatch]), + match.b) + ]); + default: + return _List_Nil; + } + }); +var $author$project$Morphir$Visual$ViewPatternMatch$getRules = F2( + function (subject, matches) { + return A2( + $elm$core$List$concatMap, + $author$project$Morphir$Visual$ViewPatternMatch$decomposePattern(subject), + matches); + }); +var $author$project$Morphir$Visual$ViewPatternMatch$toDecisionTable = F2( + function (subject, matches) { + var decomposedInput = $author$project$Morphir$Visual$ViewPatternMatch$decomposeInput(subject); + return { + decomposeInput: decomposedInput, + rules: A2($author$project$Morphir$Visual$ViewPatternMatch$getRules, decomposedInput, matches) + }; + }); +var $author$project$Morphir$Visual$ViewPatternMatch$toTypedPattern = function (match) { + return A2( + $author$project$Morphir$IR$Value$mapPatternAttributes, + A2( + $elm$core$Basics$always, + $elm$core$Tuple$second, + $author$project$Morphir$IR$Value$patternAttribute(match)), + match); +}; +var $author$project$Morphir$Visual$ViewPatternMatch$toTypedValue = function (visualTypedValue) { + return A3( + $author$project$Morphir$IR$Value$mapValueAttributes, + $elm$core$Basics$always(_Utils_Tuple0), + A2( + $elm$core$Basics$always, + $elm$core$Tuple$second, + $author$project$Morphir$IR$Value$valueAttribute(visualTypedValue)), + visualTypedValue); +}; +var $author$project$Morphir$Visual$ViewPatternMatch$view = F4( + function (config, viewValue, subject, matches) { + var typedSubject = $author$project$Morphir$Visual$ViewPatternMatch$toTypedValue(subject); + var typedMatches = A2( + $elm$core$List$map, + function (_v0) { + var a = _v0.a; + var b = _v0.b; + return _Utils_Tuple2( + $author$project$Morphir$Visual$ViewPatternMatch$toTypedPattern(a), + $author$project$Morphir$Visual$ViewPatternMatch$toTypedValue(b)); + }, + matches); + var decisionTable = A2($author$project$Morphir$Visual$ViewPatternMatch$toDecisionTable, typedSubject, typedMatches); + return A2($author$project$Morphir$Visual$DecisionTable$displayTable, viewValue, decisionTable); + }); +var $author$project$Morphir$Visual$ViewReference$view = F3( + function (config, viewValue, fQName) { + var packageName = fQName.a; + var moduleName = fQName.b; + var localName = fQName.c; + return A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$padding( + $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)), + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)), + $mdgriffith$elm_ui$Element$Events$onClick( + A2(config.handlers.onReferenceClicked, fQName, false)) + ]), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Element$el, + _List_Nil, + $mdgriffith$elm_ui$Element$text( + $author$project$Morphir$Visual$Common$nameToText(localName))) + ])); + }); +var $mdgriffith$elm_ui$Internal$Model$MoveX = function (a) { + return {$: 'MoveX', a: a}; +}; +var $mdgriffith$elm_ui$Internal$Flag$moveX = $mdgriffith$elm_ui$Internal$Flag$flag(25); +var $mdgriffith$elm_ui$Element$moveRight = function (x) { + return A2( + $mdgriffith$elm_ui$Internal$Model$TransformComponent, + $mdgriffith$elm_ui$Internal$Flag$moveX, + $mdgriffith$elm_ui$Internal$Model$MoveX(x)); +}; +var $author$project$Morphir$Visual$ViewTuple$view = F3( + function (config, viewValue, elems) { + var tupleCase = function () { + var _v0 = $elm$core$List$length(elems); + switch (_v0) { + case 2: + return 'pair'; + case 3: + return 'triple'; + default: + return 'tuple'; + } + }(); + return A2( + $mdgriffith$elm_ui$Element$column, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) + ]), + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$text(tupleCase + ' of'), + A2( + $mdgriffith$elm_ui$Element$column, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$moveRight(10), + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) + ]), + A2($elm$core$List$map, viewValue, elems)) + ])); + }); +var $author$project$Morphir$Visual$XRayView$viewType = function (tpe) { + switch (tpe.$) { + case 'Variable': + var varName = tpe.b; + return $mdgriffith$elm_ui$Element$text( + $author$project$Morphir$IR$Name$toCamelCase(varName)); + case 'Reference': + var _v1 = tpe.b; + var localName = _v1.c; + var argTypes = tpe.c; + return $elm$core$List$isEmpty(argTypes) ? $mdgriffith$elm_ui$Element$text( + $author$project$Morphir$IR$Name$toTitleCase(localName)) : A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing(6) + ]), + $elm$core$List$concat( + _List_fromArray( + [ + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$text( + $author$project$Morphir$IR$Name$toTitleCase(localName)) + ]), + A2($elm$core$List$map, $author$project$Morphir$Visual$XRayView$viewType, argTypes) + ]))); + case 'Tuple': + var a = tpe.a; + var elems = tpe.b; + var elemsView = A2( + $mdgriffith$elm_ui$Element$row, + _List_Nil, + A2( + $elm$core$List$intersperse, + $mdgriffith$elm_ui$Element$text(', '), + A2($elm$core$List$map, $author$project$Morphir$Visual$XRayView$viewType, elems))); + return A2( + $mdgriffith$elm_ui$Element$row, + _List_Nil, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$text('( '), + elemsView, + $mdgriffith$elm_ui$Element$text(' )') + ])); + case 'Record': + var a = tpe.a; + var fields = tpe.b; + var fieldsView = A2( + $mdgriffith$elm_ui$Element$row, + _List_Nil, + A2( + $elm$core$List$intersperse, + $mdgriffith$elm_ui$Element$text(', '), + A2( + $elm$core$List$map, + function (field) { + return A2( + $mdgriffith$elm_ui$Element$row, + _List_Nil, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$text( + $author$project$Morphir$IR$Name$toCamelCase(field.name)), + $mdgriffith$elm_ui$Element$text(' : '), + $author$project$Morphir$Visual$XRayView$viewType(field.tpe) + ])); + }, + fields))); + return A2( + $mdgriffith$elm_ui$Element$row, + _List_Nil, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$text('{ '), + fieldsView, + $mdgriffith$elm_ui$Element$text(' }') + ])); + case 'ExtensibleRecord': + var a = tpe.a; + var varName = tpe.b; + var fields = tpe.c; + var fieldsView = A2( + $mdgriffith$elm_ui$Element$row, + _List_Nil, + A2( + $elm$core$List$intersperse, + $mdgriffith$elm_ui$Element$text(', '), + A2( + $elm$core$List$map, + function (field) { + return A2( + $mdgriffith$elm_ui$Element$row, + _List_Nil, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$text( + $author$project$Morphir$IR$Name$toCamelCase(field.name)), + $mdgriffith$elm_ui$Element$text(' : '), + $author$project$Morphir$Visual$XRayView$viewType(field.tpe) + ])); + }, + fields))); + return A2( + $mdgriffith$elm_ui$Element$row, + _List_Nil, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$text('{ '), + $mdgriffith$elm_ui$Element$text( + $author$project$Morphir$IR$Name$toCamelCase(varName)), + $mdgriffith$elm_ui$Element$text(' | '), + fieldsView, + $mdgriffith$elm_ui$Element$text(' }') + ])); + case 'Function': + var argType = tpe.b; + var returnType = tpe.c; + return A2( + $mdgriffith$elm_ui$Element$row, + _List_Nil, + _List_fromArray( + [ + $author$project$Morphir$Visual$XRayView$viewType(argType), + $mdgriffith$elm_ui$Element$text(' -> '), + $author$project$Morphir$Visual$XRayView$viewType(returnType) + ])); + default: + return $mdgriffith$elm_ui$Element$text('()'); + } +}; +var $mdgriffith$elm_ui$Element$Font$family = function (families) { + return A2( + $mdgriffith$elm_ui$Internal$Model$StyleClass, + $mdgriffith$elm_ui$Internal$Flag$fontFamily, + A2( + $mdgriffith$elm_ui$Internal$Model$FontFamily, + A3($elm$core$List$foldl, $mdgriffith$elm_ui$Internal$Model$renderFontClassName, 'ff-', families), + families)); +}; +var $author$project$Morphir$Visual$Common$grayScale = function (v) { + return A3($mdgriffith$elm_ui$Element$rgb, v, v, v); +}; +var $mdgriffith$elm_ui$Internal$Model$Monospace = {$: 'Monospace'}; +var $mdgriffith$elm_ui$Element$Font$monospace = $mdgriffith$elm_ui$Internal$Model$Monospace; +var $author$project$Morphir$Visual$XRayView$TreeNode = F3( + function (a, b, c) { + return {$: 'TreeNode', a: a, b: b, c: c}; + }); +var $author$project$Morphir$Visual$XRayView$ValueNode = function (a) { + return {$: 'ValueNode', a: a}; +}; +var $author$project$Morphir$Visual$XRayView$PatternNode = function (a) { + return {$: 'PatternNode', a: a}; +}; +var $author$project$Morphir$Visual$XRayView$patternToNode = F2( + function (maybeTag, pattern) { + switch (pattern.$) { + case 'AsPattern': + var target = pattern.b; + return A3( + $author$project$Morphir$Visual$XRayView$TreeNode, + maybeTag, + $author$project$Morphir$Visual$XRayView$PatternNode(pattern), + _List_fromArray( + [ + A2($author$project$Morphir$Visual$XRayView$patternToNode, $elm$core$Maybe$Nothing, target) + ])); + case 'TuplePattern': + var elems = pattern.b; + return A3( + $author$project$Morphir$Visual$XRayView$TreeNode, + maybeTag, + $author$project$Morphir$Visual$XRayView$PatternNode(pattern), + A2( + $elm$core$List$map, + $author$project$Morphir$Visual$XRayView$patternToNode($elm$core$Maybe$Nothing), + elems)); + case 'ConstructorPattern': + var args = pattern.c; + return A3( + $author$project$Morphir$Visual$XRayView$TreeNode, + maybeTag, + $author$project$Morphir$Visual$XRayView$PatternNode(pattern), + A2( + $elm$core$List$map, + $author$project$Morphir$Visual$XRayView$patternToNode($elm$core$Maybe$Nothing), + args)); + case 'HeadTailPattern': + var head = pattern.b; + var tail = pattern.c; + return A3( + $author$project$Morphir$Visual$XRayView$TreeNode, + maybeTag, + $author$project$Morphir$Visual$XRayView$PatternNode(pattern), + _List_fromArray( + [ + A2($author$project$Morphir$Visual$XRayView$patternToNode, $elm$core$Maybe$Nothing, head), + A2($author$project$Morphir$Visual$XRayView$patternToNode, $elm$core$Maybe$Nothing, tail) + ])); + default: + return A3( + $author$project$Morphir$Visual$XRayView$TreeNode, + maybeTag, + $author$project$Morphir$Visual$XRayView$PatternNode(pattern), + _List_Nil); + } + }); +var $author$project$Morphir$Visual$XRayView$valueToNode = F2( + function (tag, value) { + switch (value.$) { + case 'Tuple': + var elems = value.b; + return A3( + $author$project$Morphir$Visual$XRayView$TreeNode, + tag, + $author$project$Morphir$Visual$XRayView$ValueNode(value), + A2( + $elm$core$List$map, + $author$project$Morphir$Visual$XRayView$valueToNode($elm$core$Maybe$Nothing), + elems)); + case 'List': + var items = value.b; + return A3( + $author$project$Morphir$Visual$XRayView$TreeNode, + tag, + $author$project$Morphir$Visual$XRayView$ValueNode(value), + A2( + $elm$core$List$map, + $author$project$Morphir$Visual$XRayView$valueToNode($elm$core$Maybe$Nothing), + items)); + case 'Record': + var fields = value.b; + return A3( + $author$project$Morphir$Visual$XRayView$TreeNode, + tag, + $author$project$Morphir$Visual$XRayView$ValueNode(value), + A2( + $elm$core$List$map, + function (_v1) { + var fieldName = _v1.a; + var fieldValue = _v1.b; + return A2( + $author$project$Morphir$Visual$XRayView$valueToNode, + $elm$core$Maybe$Just( + $author$project$Morphir$IR$Name$toCamelCase(fieldName)), + fieldValue); + }, + fields)); + case 'Field': + var subject = value.b; + return A3( + $author$project$Morphir$Visual$XRayView$TreeNode, + tag, + $author$project$Morphir$Visual$XRayView$ValueNode(value), + _List_fromArray( + [ + A2( + $author$project$Morphir$Visual$XRayView$valueToNode, + $elm$core$Maybe$Just('subject'), + subject) + ])); + case 'Apply': + var fun = value.b; + var arg = value.c; + return A3( + $author$project$Morphir$Visual$XRayView$TreeNode, + tag, + $author$project$Morphir$Visual$XRayView$ValueNode(value), + _List_fromArray( + [ + A2( + $author$project$Morphir$Visual$XRayView$valueToNode, + $elm$core$Maybe$Just('fun'), + fun), + A2( + $author$project$Morphir$Visual$XRayView$valueToNode, + $elm$core$Maybe$Just('arg'), + arg) + ])); + case 'Lambda': + var arg = value.b; + var body = value.c; + return A3( + $author$project$Morphir$Visual$XRayView$TreeNode, + tag, + $author$project$Morphir$Visual$XRayView$ValueNode(value), + _List_fromArray( + [ + A2( + $author$project$Morphir$Visual$XRayView$patternToNode, + $elm$core$Maybe$Just('\\'), + arg), + A2( + $author$project$Morphir$Visual$XRayView$valueToNode, + $elm$core$Maybe$Just('->'), + body) + ])); + case 'LetDefinition': + var flattenLet = function (v) { + if (v.$ === 'LetDefinition') { + var defName = v.b; + var def = v.c; + var inValue = v.d; + var _v3 = flattenLet(inValue); + var subInValue = _v3.a; + var subDefs = _v3.b; + return _Utils_Tuple2( + subInValue, + A2( + $elm$core$List$cons, + _Utils_Tuple2(defName, def), + subDefs)); + } else { + return _Utils_Tuple2(v, _List_Nil); + } + }; + var _v4 = flattenLet(value); + var bottomInValue = _v4.a; + var defs = _v4.b; + return A3( + $author$project$Morphir$Visual$XRayView$TreeNode, + tag, + $author$project$Morphir$Visual$XRayView$ValueNode(value), + $elm$core$List$concat( + _List_fromArray( + [ + A2( + $elm$core$List$map, + function (_v5) { + var defName = _v5.a; + var def = _v5.b; + return A2( + $author$project$Morphir$Visual$XRayView$valueToNode, + $elm$core$Maybe$Just( + $author$project$Morphir$IR$Name$toCamelCase(defName)), + def.body); + }, + defs), + _List_fromArray( + [ + A2( + $author$project$Morphir$Visual$XRayView$valueToNode, + $elm$core$Maybe$Just('in'), + bottomInValue) + ]) + ]))); + case 'LetRecursion': + var defs = value.b; + var inValue = value.c; + return A3( + $author$project$Morphir$Visual$XRayView$TreeNode, + tag, + $author$project$Morphir$Visual$XRayView$ValueNode(value), + $elm$core$List$concat( + _List_fromArray( + [ + A2( + $elm$core$List$map, + function (_v6) { + var defName = _v6.a; + var def = _v6.b; + return A2( + $author$project$Morphir$Visual$XRayView$valueToNode, + $elm$core$Maybe$Just( + $author$project$Morphir$IR$Name$toCamelCase(defName)), + def.body); + }, + $elm$core$Dict$toList(defs)), + _List_fromArray( + [ + A2( + $author$project$Morphir$Visual$XRayView$valueToNode, + $elm$core$Maybe$Just('in'), + inValue) + ]) + ]))); + case 'Destructure': + var pattern = value.b; + var subject = value.c; + var inValue = value.d; + return A3( + $author$project$Morphir$Visual$XRayView$TreeNode, + tag, + $author$project$Morphir$Visual$XRayView$ValueNode(value), + _List_fromArray( + [ + A2($author$project$Morphir$Visual$XRayView$patternToNode, $elm$core$Maybe$Nothing, pattern), + A2( + $author$project$Morphir$Visual$XRayView$valueToNode, + $elm$core$Maybe$Just('='), + subject), + A2( + $author$project$Morphir$Visual$XRayView$valueToNode, + $elm$core$Maybe$Just('in'), + inValue) + ])); + case 'IfThenElse': + var cond = value.b; + var thenBranch = value.c; + var elseBranch = value.d; + return A3( + $author$project$Morphir$Visual$XRayView$TreeNode, + tag, + $author$project$Morphir$Visual$XRayView$ValueNode(value), + _List_fromArray( + [ + A2( + $author$project$Morphir$Visual$XRayView$valueToNode, + $elm$core$Maybe$Just('cond'), + cond), + A2( + $author$project$Morphir$Visual$XRayView$valueToNode, + $elm$core$Maybe$Just('then'), + thenBranch), + A2( + $author$project$Morphir$Visual$XRayView$valueToNode, + $elm$core$Maybe$Just('else'), + elseBranch) + ])); + case 'PatternMatch': + var subject = value.b; + var cases = value.c; + return A3( + $author$project$Morphir$Visual$XRayView$TreeNode, + tag, + $author$project$Morphir$Visual$XRayView$ValueNode(value), + $elm$core$List$concat( + _List_fromArray( + [ + _List_fromArray( + [ + A2( + $author$project$Morphir$Visual$XRayView$valueToNode, + $elm$core$Maybe$Just('case'), + subject) + ]), + $elm$core$List$concat( + A2( + $elm$core$List$indexedMap, + F2( + function (index, _v7) { + var casePattern = _v7.a; + var caseValue = _v7.b; + return _List_fromArray( + [ + A2($author$project$Morphir$Visual$XRayView$patternToNode, $elm$core$Maybe$Nothing, casePattern), + A2( + $author$project$Morphir$Visual$XRayView$valueToNode, + $elm$core$Maybe$Just('->'), + caseValue) + ]); + }), + cases)) + ]))); + case 'UpdateRecord': + var subject = value.b; + var fields = value.c; + return A3( + $author$project$Morphir$Visual$XRayView$TreeNode, + tag, + $author$project$Morphir$Visual$XRayView$ValueNode(value), + $elm$core$List$concat( + _List_fromArray( + [ + _List_fromArray( + [ + A2($author$project$Morphir$Visual$XRayView$valueToNode, $elm$core$Maybe$Nothing, subject) + ]), + A2( + $elm$core$List$map, + function (_v8) { + var fieldName = _v8.a; + var fieldValue = _v8.b; + return A2( + $author$project$Morphir$Visual$XRayView$valueToNode, + $elm$core$Maybe$Just( + $author$project$Morphir$IR$Name$toCamelCase(fieldName)), + fieldValue); + }, + fields) + ]))); + default: + return A3( + $author$project$Morphir$Visual$XRayView$TreeNode, + tag, + $author$project$Morphir$Visual$XRayView$ValueNode(value), + _List_Nil); + } + }); +var $author$project$Morphir$Visual$XRayView$noPadding = {bottom: 0, left: 0, right: 0, top: 0}; +var $author$project$Morphir$Visual$XRayView$viewConstructorName = function (_v0) { + var localName = _v0.c; + return $mdgriffith$elm_ui$Element$text( + $author$project$Morphir$IR$Name$toTitleCase(localName)); +}; +var $author$project$Morphir$Visual$XRayView$viewLiteral = function (lit) { + switch (lit.$) { + case 'BoolLiteral': + var bool = lit.a; + return bool ? $mdgriffith$elm_ui$Element$text('True') : $mdgriffith$elm_ui$Element$text('False'); + case 'CharLiteral': + var _char = lit.a; + return $mdgriffith$elm_ui$Element$text( + $elm$core$String$concat( + _List_fromArray( + [ + '\'', + $elm$core$String$fromChar(_char), + '\'' + ]))); + case 'StringLiteral': + var string = lit.a; + return $mdgriffith$elm_ui$Element$text( + $elm$core$String$concat( + _List_fromArray( + ['\"', string, '\"']))); + case 'IntLiteral': + var _int = lit.a; + return $mdgriffith$elm_ui$Element$text( + $elm$core$String$fromInt(_int)); + default: + var _float = lit.a; + return $mdgriffith$elm_ui$Element$text( + $elm$core$String$fromFloat(_float)); + } +}; +var $author$project$Morphir$Visual$XRayView$viewPatternAsHeader = function (pattern) { + var nodeLabel = function (labelText) { + return A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Element$paddingXY, 6, 3), + $mdgriffith$elm_ui$Element$Border$rounded(3), + $mdgriffith$elm_ui$Element$Background$color( + A3($mdgriffith$elm_ui$Element$rgb, 1, 0.9, 1)) + ]), + $mdgriffith$elm_ui$Element$text(labelText)); + }; + var header = function (elems) { + return A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing(5) + ]), + elems); + }; + switch (pattern.$) { + case 'WildcardPattern': + var a = pattern.a; + return header( + _List_fromArray( + [ + nodeLabel('WildcardPattern') + ])); + case 'AsPattern': + var a = pattern.a; + var name = pattern.c; + return header( + _List_fromArray( + [ + nodeLabel('AsPattern'), + $mdgriffith$elm_ui$Element$text( + $author$project$Morphir$IR$Name$toCamelCase(name)) + ])); + case 'TuplePattern': + var a = pattern.a; + return header( + _List_fromArray( + [ + nodeLabel('TuplePattern') + ])); + case 'ConstructorPattern': + var a = pattern.a; + var fQName = pattern.b; + return header( + _List_fromArray( + [ + nodeLabel('ConstructorPattern'), + $author$project$Morphir$Visual$XRayView$viewConstructorName(fQName) + ])); + case 'EmptyListPattern': + var a = pattern.a; + return header( + _List_fromArray( + [ + nodeLabel('EmptyListPattern') + ])); + case 'HeadTailPattern': + var a = pattern.a; + return header( + _List_fromArray( + [ + nodeLabel('HeadTailPattern') + ])); + case 'LiteralPattern': + var a = pattern.a; + var literal = pattern.b; + return header( + _List_fromArray( + [ + nodeLabel('LiteralPattern'), + $author$project$Morphir$Visual$XRayView$viewLiteral(literal) + ])); + default: + var a = pattern.a; + return header( + _List_fromArray( + [ + nodeLabel('UnitPattern') + ])); + } +}; +var $author$project$Morphir$Visual$XRayView$viewReferenceName = function (_v0) { + var localName = _v0.c; + return $mdgriffith$elm_ui$Element$text( + $author$project$Morphir$IR$Name$toCamelCase(localName)); +}; +var $author$project$Morphir$Visual$XRayView$viewValueAsHeader = function (value) { + var nodeLabel = function (labelText) { + return A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Element$paddingXY, 6, 3), + $mdgriffith$elm_ui$Element$Border$rounded(3), + $mdgriffith$elm_ui$Element$Background$color( + A3($mdgriffith$elm_ui$Element$rgb, 0.9, 1, 0.9)) + ]), + $mdgriffith$elm_ui$Element$text(labelText)); + }; + var header = function (elems) { + return A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing(5) + ]), + elems); + }; + switch (value.$) { + case 'Literal': + var lit = value.b; + return header( + _List_fromArray( + [ + nodeLabel('Literal'), + $author$project$Morphir$Visual$XRayView$viewLiteral(lit) + ])); + case 'Constructor': + var fQName = value.b; + return header( + _List_fromArray( + [ + nodeLabel('Constructor'), + $author$project$Morphir$Visual$XRayView$viewConstructorName(fQName) + ])); + case 'Tuple': + var items = value.b; + return $elm$core$List$isEmpty(items) ? header( + _List_fromArray( + [ + nodeLabel('Tuple'), + $mdgriffith$elm_ui$Element$text('()') + ])) : header( + _List_fromArray( + [ + nodeLabel('Tuple') + ])); + case 'List': + var items = value.b; + return $elm$core$List$isEmpty(items) ? header( + _List_fromArray( + [ + nodeLabel('List'), + $mdgriffith$elm_ui$Element$text('[]') + ])) : header( + _List_fromArray( + [ + nodeLabel('List') + ])); + case 'Record': + var fields = value.b; + return $elm$core$List$isEmpty(fields) ? header( + _List_fromArray( + [ + nodeLabel('Record'), + $mdgriffith$elm_ui$Element$text('{}') + ])) : header( + _List_fromArray( + [ + nodeLabel('Record') + ])); + case 'Variable': + var varName = value.b; + return header( + _List_fromArray( + [ + nodeLabel('Variable'), + $mdgriffith$elm_ui$Element$text( + $author$project$Morphir$IR$Name$toCamelCase(varName)) + ])); + case 'Reference': + var fQName = value.b; + return header( + _List_fromArray( + [ + nodeLabel('Reference'), + $author$project$Morphir$Visual$XRayView$viewReferenceName(fQName) + ])); + case 'Field': + var fieldName = value.c; + return header( + _List_fromArray( + [ + nodeLabel('Field'), + $mdgriffith$elm_ui$Element$text( + $author$project$Morphir$IR$Name$toCamelCase(fieldName)) + ])); + case 'FieldFunction': + var fieldName = value.b; + return header( + _List_fromArray( + [ + nodeLabel('FieldFunction'), + $mdgriffith$elm_ui$Element$text( + $author$project$Morphir$IR$Name$toCamelCase(fieldName)) + ])); + case 'Apply': + return header( + _List_fromArray( + [ + nodeLabel('Apply') + ])); + case 'Lambda': + return header( + _List_fromArray( + [ + nodeLabel('Lambda') + ])); + case 'LetDefinition': + return header( + _List_fromArray( + [ + nodeLabel('LetDefinition') + ])); + case 'LetRecursion': + return header( + _List_fromArray( + [ + nodeLabel('LetRecursion') + ])); + case 'Destructure': + return header( + _List_fromArray( + [ + nodeLabel('Destructure') + ])); + case 'IfThenElse': + return header( + _List_fromArray( + [ + nodeLabel('IfThenElse') + ])); + case 'PatternMatch': + return header( + _List_fromArray( + [ + nodeLabel('PatternMatch') + ])); + case 'UpdateRecord': + return header( + _List_fromArray( + [ + nodeLabel('UpdateRecord') + ])); + default: + return header( + _List_fromArray( + [ + nodeLabel('Unit') + ])); + } +}; +var $author$project$Morphir$Visual$XRayView$viewTreeNode = F2( + function (viewValueAttr, _v0) { + var maybeTag = _v0.a; + var nodeType = _v0.b; + var treeNodes = _v0.c; + var viewHeaderAndChildren = F3( + function (header, attr, children) { + return A2( + $mdgriffith$elm_ui$Element$column, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), + $mdgriffith$elm_ui$Element$spacing(5) + ]), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), + $mdgriffith$elm_ui$Element$spacing(5) + ]), + _List_fromArray( + [ + function () { + if (maybeTag.$ === 'Just') { + var tag = maybeTag.a; + return A2( + $mdgriffith$elm_ui$Element$row, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing(5) + ]), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$Font$color( + $author$project$Morphir$Visual$Common$grayScale(0.7)) + ]), + $mdgriffith$elm_ui$Element$text(tag)), + header + ])); + } else { + return header; + } + }(), + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + A2($mdgriffith$elm_ui$Element$paddingXY, 10, 2), + $mdgriffith$elm_ui$Element$Background$color( + A3($mdgriffith$elm_ui$Element$rgb, 1, 0.9, 0.8)), + $mdgriffith$elm_ui$Element$Border$rounded(3) + ]), + attr) + ])), + A2( + $mdgriffith$elm_ui$Element$column, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), + $mdgriffith$elm_ui$Element$paddingEach( + _Utils_update( + $author$project$Morphir$Visual$XRayView$noPadding, + {left: 20})) + ]), + children) + ])); + }); + if (nodeType.$ === 'ValueNode') { + var value = nodeType.a; + return A3( + viewHeaderAndChildren, + $author$project$Morphir$Visual$XRayView$viewValueAsHeader(value), + viewValueAttr( + $author$project$Morphir$IR$Value$valueAttribute(value)), + A2( + $elm$core$List$map, + $author$project$Morphir$Visual$XRayView$viewTreeNode(viewValueAttr), + treeNodes)); + } else { + var pattern = nodeType.a; + return A3( + viewHeaderAndChildren, + $author$project$Morphir$Visual$XRayView$viewPatternAsHeader(pattern), + viewValueAttr( + $author$project$Morphir$IR$Value$patternAttribute(pattern)), + A2( + $elm$core$List$map, + $author$project$Morphir$Visual$XRayView$viewTreeNode(viewValueAttr), + treeNodes)); + } + }); +var $author$project$Morphir$Visual$XRayView$viewValue = F2( + function (viewValueAttr, value) { + return A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$Font$family( + _List_fromArray( + [$mdgriffith$elm_ui$Element$Font$monospace])), + $mdgriffith$elm_ui$Element$Font$color( + $author$project$Morphir$Visual$Common$grayScale(0.3)) + ]), + A2( + $author$project$Morphir$Visual$XRayView$viewTreeNode, + viewValueAttr, + A2($author$project$Morphir$Visual$XRayView$valueToNode, $elm$core$Maybe$Nothing, value))); + }); +var $author$project$Morphir$Visual$ViewValue$viewPopup = function (config) { + return A2( + $elm$core$Maybe$withDefault, + A2( + $mdgriffith$elm_ui$Element$el, + _List_Nil, + $mdgriffith$elm_ui$Element$text('')), + A2( + $elm$core$Maybe$map, + function (rawValue) { + var visualTypedVal = A2( + $author$project$Morphir$Visual$VisualTypedValue$rawToVisualTypedValue, + $author$project$Morphir$IR$fromDistribution(config.irContext.distribution), + rawValue); + var popUpStyle = function (element) { + return A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$Border$shadow( + { + blur: 2, + color: config.state.theme.colors.darkest, + offset: _Utils_Tuple2(2, 2), + size: 2 + }), + $mdgriffith$elm_ui$Element$Background$color(config.state.theme.colors.lightest), + $mdgriffith$elm_ui$Element$Font$bold, + $mdgriffith$elm_ui$Element$Font$color(config.state.theme.colors.darkest), + $mdgriffith$elm_ui$Element$Border$rounded(4), + $mdgriffith$elm_ui$Element$Font$center, + $mdgriffith$elm_ui$Element$padding( + $author$project$Morphir$Visual$Theme$mediumPadding(config.state.theme)), + $mdgriffith$elm_ui$Element$htmlAttribute( + A2($elm$html$Html$Attributes$style, 'position', 'absolute')), + $mdgriffith$elm_ui$Element$htmlAttribute( + A2($elm$html$Html$Attributes$style, 'transition', 'all 0.2s ease-in-out')) + ]), + element); + }; + if (visualTypedVal.$ === 'Ok') { + var visualTypedValue = visualTypedVal.a; + return popUpStyle( + A2($author$project$Morphir$Visual$ViewValue$viewValue, config, visualTypedValue)); + } else { + var error = visualTypedVal.a; + return popUpStyle( + $mdgriffith$elm_ui$Element$text( + $author$project$Morphir$Type$Infer$typeErrorToMessage(error))); + } + }, + config.state.popupVariables.variableValue)); +}; +var $author$project$Morphir$Visual$ViewValue$viewValue = F2( + function (config, value) { + return A2($author$project$Morphir$Visual$ViewValue$viewValueByValueType, config, value); + }); +var $author$project$Morphir$Visual$ViewValue$viewValueByLanguageFeature = F2( + function (config, value) { + var valueElem = function () { + _v0$12: + while (true) { + switch (value.$) { + case 'Literal': + var literal = value.b; + return A2($author$project$Morphir$Visual$ViewLiteral$view, config, literal); + case 'Constructor': + var fQName = value.b; + return A3( + $author$project$Morphir$Visual$ViewReference$view, + config, + $author$project$Morphir$Visual$ViewValue$viewValue(config), + fQName); + case 'Tuple': + var elems = value.b; + return A3( + $author$project$Morphir$Visual$ViewTuple$view, + config, + $author$project$Morphir$Visual$ViewValue$viewValue(config), + elems); + case 'List': + if ((((((((((((((((((((((((value.a.b.$ === 'Reference') && value.a.b.b.a.b) && value.a.b.b.a.a.b) && (value.a.b.b.a.a.a === 'morphir')) && (!value.a.b.b.a.a.b.b)) && value.a.b.b.a.b.b) && value.a.b.b.a.b.a.b) && (value.a.b.b.a.b.a.a === 's')) && value.a.b.b.a.b.a.b.b) && (value.a.b.b.a.b.a.b.a === 'd')) && value.a.b.b.a.b.a.b.b.b) && (value.a.b.b.a.b.a.b.b.a === 'k')) && (!value.a.b.b.a.b.a.b.b.b.b)) && (!value.a.b.b.a.b.b.b)) && value.a.b.b.b.b) && value.a.b.b.b.a.b) && (value.a.b.b.b.a.a === 'list')) && (!value.a.b.b.b.a.b.b)) && (!value.a.b.b.b.b.b)) && value.a.b.b.c.b) && (value.a.b.b.c.a === 'list')) && (!value.a.b.b.c.b.b)) && value.a.b.c.b) && (!value.a.b.c.b.b)) { + var _v1 = value.a; + var index = _v1.a; + var _v2 = _v1.b; + var _v3 = _v2.b; + var _v4 = _v3.a; + var _v5 = _v4.a; + var _v6 = _v4.b; + var _v7 = _v6.a; + var _v8 = _v7.b; + var _v9 = _v8.b; + var _v10 = _v3.b; + var _v11 = _v10.a; + var _v12 = _v3.c; + var _v13 = _v2.c; + var itemType = _v13.a; + var items = value.b; + return A4( + $author$project$Morphir$Visual$ViewList$view, + config, + $author$project$Morphir$Visual$ViewValue$viewValue(config), + itemType, + items); + } else { + break _v0$12; + } + case 'Variable': + var _v14 = value.a; + var index = _v14.a; + var tpe = _v14.b; + var name = value.b; + var variableValue = A2($elm$core$Dict$get, name, config.state.variables); + return A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$Events$onMouseEnter( + A2(config.handlers.onHoverOver, index, variableValue)), + $mdgriffith$elm_ui$Element$Events$onMouseLeave( + config.handlers.onHoverLeave(index)), + $mdgriffith$elm_ui$Element$below( + _Utils_eq(config.state.popupVariables.variableIndex, index) ? A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$padding( + $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)) + ]), + $author$project$Morphir$Visual$ViewValue$viewPopup(config)) : $mdgriffith$elm_ui$Element$none), + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), + $mdgriffith$elm_ui$Element$Font$center + ]), + $mdgriffith$elm_ui$Element$text( + $author$project$Morphir$Visual$Common$nameToText(name))); + case 'Reference': + var fQName = value.b; + return A3( + $author$project$Morphir$Visual$ViewReference$view, + config, + $author$project$Morphir$Visual$ViewValue$viewValue(config), + fQName); + case 'Field': + var subjectValue = value.b; + var fieldName = value.c; + return A3( + $author$project$Morphir$Visual$ViewField$view, + $author$project$Morphir$Visual$ViewValue$viewValue(config), + subjectValue, + fieldName); + case 'Apply': + var fun = value.b; + var arg = value.c; + var _v15 = A2($author$project$Morphir$IR$Value$uncurryApply, fun, arg); + var _function = _v15.a; + var args = _v15.b; + return A4( + $author$project$Morphir$Visual$ViewApply$view, + config, + $author$project$Morphir$Visual$ViewValue$viewValue(config), + _function, + args); + case 'LetDefinition': + var unnest = F2( + function (conf, v) { + if (v.$ === 'LetDefinition') { + var defName = v.b; + var def = v.c; + var inVal = v.d; + var currentState = conf.state; + var newState = _Utils_update( + currentState, + { + variables: A2( + $elm$core$Result$withDefault, + currentState.variables, + A2( + $elm$core$Result$map, + function (evaluatedDefValue) { + return A3($elm$core$Dict$insert, defName, evaluatedDefValue, currentState.variables); + }, + A2( + $author$project$Morphir$Visual$Config$evaluate, + $author$project$Morphir$IR$Value$definitionToValue( + A3( + $author$project$Morphir$IR$Value$mapDefinitionAttributes, + $elm$core$Basics$always(_Utils_Tuple0), + $elm$core$Basics$always(_Utils_Tuple0), + def)), + conf))) + }); + var _v17 = A2( + unnest, + _Utils_update( + conf, + {state: newState}), + inVal); + var defs = _v17.a; + var bottomIn = _v17.b; + return _Utils_Tuple2( + A2( + $elm$core$List$cons, + _Utils_Tuple2( + defName, + A2($author$project$Morphir$Visual$ViewValue$viewValue, conf, def.body)), + defs), + bottomIn); + } else { + var notLet = v; + return _Utils_Tuple2( + _List_Nil, + A2($author$project$Morphir$Visual$ViewValue$viewValue, conf, notLet)); + } + }); + var _v18 = A2(unnest, config, value); + var definitions = _v18.a; + var inValueElem = _v18.b; + return A2( + $mdgriffith$elm_ui$Element$column, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme)) + ]), + _List_fromArray( + [ + inValueElem, + A2( + $mdgriffith$elm_ui$Element$column, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme)) + ]), + A2( + $elm$core$List$map, + function (_v19) { + var defName = _v19.a; + var defElem = _v19.b; + return A2( + $mdgriffith$elm_ui$Element$column, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme)) + ]), + _List_fromArray( + [ + A3( + $author$project$Morphir$Visual$Common$definition, + config, + $author$project$Morphir$Visual$Common$nameToText(defName), + defElem) + ])); + }, + definitions)) + ])); + case 'IfThenElse': + return A3( + $author$project$Morphir$Visual$ViewIfThenElse$view, + config, + $author$project$Morphir$Visual$ViewValue$viewValue(config), + value); + case 'PatternMatch': + var tpe = value.a; + var param = value.b; + var patterns = value.c; + return A4( + $author$project$Morphir$Visual$ViewPatternMatch$view, + config, + $author$project$Morphir$Visual$ViewValue$viewValue(config), + param, + patterns); + case 'Unit': + return A2( + $mdgriffith$elm_ui$Element$el, + _List_Nil, + $mdgriffith$elm_ui$Element$text('not set')); + default: + break _v0$12; + } + } + var other = value; + return A2( + $mdgriffith$elm_ui$Element$column, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$Background$color( + A3($mdgriffith$elm_ui$Element$rgb, 1, 0.6, 0.6)), + $mdgriffith$elm_ui$Element$padding( + $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)), + $mdgriffith$elm_ui$Element$Border$rounded(6) + ]), + _List_fromArray( + [ + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$padding( + $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)), + $mdgriffith$elm_ui$Element$Font$bold + ]), + $mdgriffith$elm_ui$Element$text('No visual mapping found for:')), + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$Background$color( + A3($mdgriffith$elm_ui$Element$rgb, 1, 1, 1)), + $mdgriffith$elm_ui$Element$padding( + $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)), + $mdgriffith$elm_ui$Element$Border$rounded(6), + $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) + ]), + A2( + $author$project$Morphir$Visual$XRayView$viewValue, + $author$project$Morphir$Visual$XRayView$viewType, + A3( + $author$project$Morphir$IR$Value$mapValueAttributes, + $elm$core$Basics$identity, + function (_v20) { + var tpe = _v20.b; + return tpe; + }, + other))) + ])); + }(); + return valueElem; + }); +var $author$project$Morphir$Visual$ViewValue$viewValueByValueType = F2( + function (config, typedValue) { + var valueType = $author$project$Morphir$IR$Value$valueAttribute(typedValue).b; + if (_Utils_eq( + valueType, + $author$project$Morphir$IR$SDK$Basics$boolType(_Utils_Tuple0))) { + var boolOperatorTree = $author$project$Morphir$Visual$BoolOperatorTree$fromTypedValue(typedValue); + return A3( + $author$project$Morphir$Visual$ViewBoolOperatorTree$view, + config, + $author$project$Morphir$Visual$ViewValue$viewValueByLanguageFeature(config), + boolOperatorTree); + } else { + if ($author$project$Morphir$IR$SDK$Basics$isNumber(valueType)) { + var arithmeticOperatorTree = $author$project$Morphir$Visual$Components$AritmeticExpressions$fromArithmeticTypedValue(typedValue); + return A3( + $author$project$Morphir$Visual$ViewArithmetic$view, + config, + $author$project$Morphir$Visual$ViewValue$viewValueByLanguageFeature(config), + arithmeticOperatorTree); + } else { + return A2($author$project$Morphir$Visual$ViewValue$viewValueByLanguageFeature, config, typedValue); + } + } + }); +var $author$project$Morphir$Visual$ViewValue$viewDefinition = F3( + function (config, _v0, valueDef) { + var valueName = _v0.c; + var definitionElem = A3( + $author$project$Morphir$Visual$Common$definition, + config, + $author$project$Morphir$Visual$Common$nameToText(valueName), + A2( + $author$project$Morphir$Visual$ViewValue$viewValue, + config, + $author$project$Morphir$Visual$VisualTypedValue$typedToVisualTypedValue(valueDef.body))); + var _v1 = A2($elm$core$Debug$log, 'variables', config.state.variables); + return A2( + $mdgriffith$elm_ui$Element$column, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme)) + ]), + _List_fromArray( + [ + definitionElem, + $elm$core$Dict$isEmpty(config.state.expandedFunctions) ? $mdgriffith$elm_ui$Element$none : A2( + $mdgriffith$elm_ui$Element$column, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme)) + ]), + A2( + $elm$core$List$map, + function (_v2) { + var fqName = _v2.a; + var localName = fqName.c; + var valDef = _v2.b; + return A2( + $mdgriffith$elm_ui$Element$column, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) + ]), + _List_fromArray( + [ + A3( + $author$project$Morphir$Visual$Common$definition, + config, + $author$project$Morphir$Visual$Common$nameToText(localName), + A2( + $author$project$Morphir$Visual$ViewValue$viewValue, + config, + $author$project$Morphir$Visual$VisualTypedValue$typedToVisualTypedValue(valDef.body))), + A2( + $mdgriffith$elm_ui$Element$el, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$Font$bold, + $mdgriffith$elm_ui$Element$Border$solid, + $mdgriffith$elm_ui$Element$Border$rounded(3), + $mdgriffith$elm_ui$Element$Background$color(config.state.theme.colors.lightest), + $mdgriffith$elm_ui$Element$Font$color(config.state.theme.colors.darkest), + $mdgriffith$elm_ui$Element$padding( + $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)), + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)), + $mdgriffith$elm_ui$Element$Events$onClick( + A2(config.handlers.onReferenceClicked, fqName, true)) + ]), + $mdgriffith$elm_ui$Element$text('Close')) + ])); + }, + $elm$core$List$reverse( + $elm$core$Dict$toList(config.state.expandedFunctions)))) + ])); + }); +var $author$project$Morphir$Web$Insight$view = function (model) { + var _v0 = model.modelState; + switch (_v0.$) { + case 'IRLoaded': + return A2($elm$html$Html$div, _List_Nil, _List_Nil); + case 'Failed': + var string = _v0.a; + return A2( + $mdgriffith$elm_ui$Element$layout, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$Font$size(model.theme.fontSize), + $mdgriffith$elm_ui$Element$padding( + $author$project$Morphir$Visual$Theme$smallPadding(model.theme)), + $mdgriffith$elm_ui$Element$Font$bold + ]), + $mdgriffith$elm_ui$Element$text(string)); + default: + var visualizationState = _v0.a; + var valueFQName = function () { + var _v2 = _Utils_Tuple2(visualizationState.distribution, visualizationState.selectedFunction); + var _v3 = _v2.a; + var packageName = _v3.a; + var _v4 = _v2.b; + var moduleName = _v4.a; + var localName = _v4.b; + return _Utils_Tuple3(packageName, moduleName, localName); + }(); + var validArgValues = $elm$core$Dict$fromList( + A3( + $elm$core$List$map2, + F2( + function (_v1, argValue) { + var argName = _v1.a; + return _Utils_Tuple2(argName, argValue); + }), + visualizationState.functionDefinition.inputTypes, + visualizationState.functionArguments)); + var config = { + handlers: {onHoverLeave: $author$project$Morphir$Web$Insight$ShrinkVariable, onHoverOver: $author$project$Morphir$Web$Insight$ExpandVariable, onReferenceClicked: $author$project$Morphir$Web$Insight$ExpandReference}, + irContext: {distribution: visualizationState.distribution, nativeFunctions: $author$project$Morphir$IR$SDK$nativeFunctions}, + state: {expandedFunctions: visualizationState.expandedFunctions, popupVariables: visualizationState.popupVariables, theme: model.theme, variables: validArgValues} + }; + return A2( + $mdgriffith$elm_ui$Element$layout, + _List_fromArray( + [ + $mdgriffith$elm_ui$Element$Font$size(model.theme.fontSize), + $mdgriffith$elm_ui$Element$padding( + $author$project$Morphir$Visual$Theme$smallPadding(model.theme)), + $mdgriffith$elm_ui$Element$spacing( + $author$project$Morphir$Visual$Theme$smallSpacing(model.theme)) + ]), + A3($author$project$Morphir$Visual$ViewValue$viewDefinition, config, valueFQName, visualizationState.functionDefinition)); + } +}; +var $author$project$Morphir$Web$Insight$main = $elm$browser$Browser$element( + {init: $author$project$Morphir$Web$Insight$init, subscriptions: $author$project$Morphir$Web$Insight$subscriptions, update: $author$project$Morphir$Web$Insight$update, view: $author$project$Morphir$Web$Insight$view}); +_Platform_export({'Morphir':{'Web':{'Insight':{'init':$author$project$Morphir$Web$Insight$main($elm$json$Json$Decode$value)(0)}}}});}(this)); \ No newline at end of file diff --git a/example_app_model/doc/morphir-ir.json b/example_app_model/doc/morphir-ir.json new file mode 100644 index 0000000..be21acf --- /dev/null +++ b/example_app_model/doc/morphir-ir.json @@ -0,0 +1,2596 @@ +{ + "formatVersion": 1, + "distribution": [ + "library", + [ + [ + "morphir" + ], + [ + "example" + ], + [ + "app" + ] + ], + [], + { + "modules": [ + { + "name": [ + [ + "rentals" + ] + ], + "def": [ + "public", + { + "types": [], + "values": [ + [ + [ + "request" + ], + [ + "public", + { + "inputTypes": [ + [ + [ + "inventory" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ] + ], + [ + [ + "reservations" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ] + ], + [ + [ + "returns" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ] + ], + [ + [ + "requested", + "amount" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ] + ], + [ + [ + "allow", + "partial" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + "outputType": [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "result" + ] + ], + [ + "result" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ] + ] + ], + "body": [ + "let_definition", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "result" + ] + ], + [ + "result" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ] + ] + ], + [ + "availability" + ], + { + "inputTypes": [], + "outputType": [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + "body": [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "add" + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "subtract" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "inventory" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "reservations" + ] + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "returns" + ] + ] + ] + }, + [ + "if_then_else", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "result" + ] + ], + [ + "result" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "less", + "than", + "or", + "equal" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "requested", + "amount" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "availability" + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "result" + ] + ], + [ + "result" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ] + ] + ], + [ + "constructor", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "result" + ] + ], + [ + "result" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "result" + ] + ], + [ + "ok" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "requested", + "amount" + ] + ] + ], + [ + "if_then_else", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "result" + ] + ], + [ + "result" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "and" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "allow", + "partial" + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "greater", + "than" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "availability" + ] + ] + ], + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "int_literal", + 0 + ] + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "result" + ] + ], + [ + "result" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ] + ] + ], + [ + "constructor", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "result" + ] + ], + [ + "result" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "result" + ] + ], + [ + "ok" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "availability" + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "result" + ] + ], + [ + "result" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ] + ] + ], + [ + "constructor", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "result" + ] + ], + [ + "result" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "result" + ] + ], + [ + "err" + ] + ] + ], + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "Insufficient inventory" + ] + ] + ] + ] + ] + ] + } + ] + ] + ] + } + ] + } + ] + } + ] +} \ No newline at end of file From f5a8ace547e20260174d6776154a6689f48b5fae Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum <129341+stephengoldbaum@users.noreply.github.com> Date: Tue, 1 Jun 2021 17:52:04 -0400 Subject: [PATCH 47/88] Update insight.html --- example_app_model/doc/insight.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/example_app_model/doc/insight.html b/example_app_model/doc/insight.html index 96ccec7..8d432bf 100644 --- a/example_app_model/doc/insight.html +++ b/example_app_model/doc/insight.html @@ -20,7 +20,7 @@ } //HTTP GET request to fetch distribution JSON from server - var distribution = httpGet("morphir-ir.json"); + var distribution = httpGet("example_app_model/doc/morphir-ir.json"); //ELM integration in JavaScript for interoperability var app = Elm.Morphir.Web.Insight.init({ @@ -40,4 +40,4 @@ Welcome - \ No newline at end of file + From e58849b0da019702ec4de609fd6044c9b0d21316 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum <129341+stephengoldbaum@users.noreply.github.com> Date: Tue, 1 Jun 2021 17:54:39 -0400 Subject: [PATCH 48/88] updated resource paths for github docs --- example_app_model/doc/insight.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example_app_model/doc/insight.html b/example_app_model/doc/insight.html index 8d432bf..31645fb 100644 --- a/example_app_model/doc/insight.html +++ b/example_app_model/doc/insight.html @@ -15,7 +15,7 @@ { var xmlHttp = new XMLHttpRequest(); xmlHttp.open( "GET", theUrl, false ); // false for synchronous request - xmlHttp.send(""); + xmlHttp.send(null); return JSON.parse(xmlHttp.responseText); } From 1f3a2146de28a651895ddae883b1bee8189f69b0 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum <129341+stephengoldbaum@users.noreply.github.com> Date: Tue, 1 Jun 2021 18:00:49 -0400 Subject: [PATCH 49/88] trying full url --- example_app_model/doc/insight.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example_app_model/doc/insight.html b/example_app_model/doc/insight.html index 31645fb..78a4987 100644 --- a/example_app_model/doc/insight.html +++ b/example_app_model/doc/insight.html @@ -20,7 +20,7 @@ } //HTTP GET request to fetch distribution JSON from server - var distribution = httpGet("example_app_model/doc/morphir-ir.json"); + var distribution = httpGet("https://finos.github.io/morphir-examples/example_app_model/doc/morphir-ir.json"); //ELM integration in JavaScript for interoperability var app = Elm.Morphir.Web.Insight.init({ From 771e6ab7a4139c630a569460c1de9368e6558223 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum <129341+stephengoldbaum@users.noreply.github.com> Date: Tue, 1 Jun 2021 18:36:53 -0400 Subject: [PATCH 50/88] debugging github io in github --- example_app_model/doc/insight.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/example_app_model/doc/insight.html b/example_app_model/doc/insight.html index 78a4987..dee4b13 100644 --- a/example_app_model/doc/insight.html +++ b/example_app_model/doc/insight.html @@ -34,8 +34,8 @@ app.ports.receiveFunctionName.send("Insight.UseCase1:limitTracking"); //Sending Arguments List threw port - var argsList = [10 ,13 ,-16 ,15 ,-10]; - app.ports.receiveFunctionArguments.send(argsList); + // var argsList = [10 ,13 ,-16 ,15 ,-10]; + // app.ports.receiveFunctionArguments.send(argsList); From d237a143a69ade4af221fadd1d377bd46d1e2d95 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Tue, 1 Jun 2021 18:48:08 -0400 Subject: [PATCH 51/88] full web files for sample insight --- .../doc/assets/2020_Morphir_Logo_Icon_WHT.svg | 22 + example_app_model/doc/index.html | 30778 ++++++++++++ example_app_model/doc/insight.html | 6 +- example_app_model/doc/main.js | 18834 ++++++++ example_app_model/doc/try-morphir.html | 39981 ++++++++++++++++ example_app_model/morphir-ir.json | 2596 + 6 files changed, 92213 insertions(+), 4 deletions(-) create mode 100644 example_app_model/doc/assets/2020_Morphir_Logo_Icon_WHT.svg create mode 100644 example_app_model/doc/index.html create mode 100644 example_app_model/doc/main.js create mode 100644 example_app_model/doc/try-morphir.html create mode 100644 example_app_model/morphir-ir.json diff --git a/example_app_model/doc/assets/2020_Morphir_Logo_Icon_WHT.svg b/example_app_model/doc/assets/2020_Morphir_Logo_Icon_WHT.svg new file mode 100644 index 0000000..3a4ab96 --- /dev/null +++ b/example_app_model/doc/assets/2020_Morphir_Logo_Icon_WHT.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + diff --git a/example_app_model/doc/index.html b/example_app_model/doc/index.html new file mode 100644 index 0000000..2d842d9 --- /dev/null +++ b/example_app_model/doc/index.html @@ -0,0 +1,30778 @@ + + + + + Morphir.Web.DevelopApp + + + + + +

+
+
+
+
+
\ No newline at end of file
diff --git a/example_app_model/doc/insight.html b/example_app_model/doc/insight.html
index 96ccec7..d66e73f 100644
--- a/example_app_model/doc/insight.html
+++ b/example_app_model/doc/insight.html
@@ -15,12 +15,12 @@
     {
         var xmlHttp = new XMLHttpRequest();
         xmlHttp.open( "GET", theUrl, false ); // false for synchronous request
-        xmlHttp.send("");
+        xmlHttp.send(null);
         return JSON.parse(xmlHttp.responseText);
     }
 
     //HTTP GET request to fetch distribution JSON from server
-    var distribution = httpGet("morphir-ir.json");
+    var distribution = httpGet("http://localhost:8000/server/morphir-ir.json");
 
     //ELM integration in JavaScript for interoperability
     var app = Elm.Morphir.Web.Insight.init({
@@ -38,6 +38,4 @@
     app.ports.receiveFunctionArguments.send(argsList);
 
 
-
-Welcome
 
\ No newline at end of file
diff --git a/example_app_model/doc/main.js b/example_app_model/doc/main.js
new file mode 100644
index 0000000..48474ae
--- /dev/null
+++ b/example_app_model/doc/main.js
@@ -0,0 +1,18834 @@
+(function(scope){
+'use strict';
+
+function F(arity, fun, wrapper) {
+  wrapper.a = arity;
+  wrapper.f = fun;
+  return wrapper;
+}
+
+function F2(fun) {
+  return F(2, fun, function(a) { return function(b) { return fun(a,b); }; })
+}
+function F3(fun) {
+  return F(3, fun, function(a) {
+    return function(b) { return function(c) { return fun(a, b, c); }; };
+  });
+}
+function F4(fun) {
+  return F(4, fun, function(a) { return function(b) { return function(c) {
+    return function(d) { return fun(a, b, c, d); }; }; };
+  });
+}
+function F5(fun) {
+  return F(5, fun, function(a) { return function(b) { return function(c) {
+    return function(d) { return function(e) { return fun(a, b, c, d, e); }; }; }; };
+  });
+}
+function F6(fun) {
+  return F(6, fun, function(a) { return function(b) { return function(c) {
+    return function(d) { return function(e) { return function(f) {
+    return fun(a, b, c, d, e, f); }; }; }; }; };
+  });
+}
+function F7(fun) {
+  return F(7, fun, function(a) { return function(b) { return function(c) {
+    return function(d) { return function(e) { return function(f) {
+    return function(g) { return fun(a, b, c, d, e, f, g); }; }; }; }; }; };
+  });
+}
+function F8(fun) {
+  return F(8, fun, function(a) { return function(b) { return function(c) {
+    return function(d) { return function(e) { return function(f) {
+    return function(g) { return function(h) {
+    return fun(a, b, c, d, e, f, g, h); }; }; }; }; }; }; };
+  });
+}
+function F9(fun) {
+  return F(9, fun, function(a) { return function(b) { return function(c) {
+    return function(d) { return function(e) { return function(f) {
+    return function(g) { return function(h) { return function(i) {
+    return fun(a, b, c, d, e, f, g, h, i); }; }; }; }; }; }; }; };
+  });
+}
+
+function A2(fun, a, b) {
+  return fun.a === 2 ? fun.f(a, b) : fun(a)(b);
+}
+function A3(fun, a, b, c) {
+  return fun.a === 3 ? fun.f(a, b, c) : fun(a)(b)(c);
+}
+function A4(fun, a, b, c, d) {
+  return fun.a === 4 ? fun.f(a, b, c, d) : fun(a)(b)(c)(d);
+}
+function A5(fun, a, b, c, d, e) {
+  return fun.a === 5 ? fun.f(a, b, c, d, e) : fun(a)(b)(c)(d)(e);
+}
+function A6(fun, a, b, c, d, e, f) {
+  return fun.a === 6 ? fun.f(a, b, c, d, e, f) : fun(a)(b)(c)(d)(e)(f);
+}
+function A7(fun, a, b, c, d, e, f, g) {
+  return fun.a === 7 ? fun.f(a, b, c, d, e, f, g) : fun(a)(b)(c)(d)(e)(f)(g);
+}
+function A8(fun, a, b, c, d, e, f, g, h) {
+  return fun.a === 8 ? fun.f(a, b, c, d, e, f, g, h) : fun(a)(b)(c)(d)(e)(f)(g)(h);
+}
+function A9(fun, a, b, c, d, e, f, g, h, i) {
+  return fun.a === 9 ? fun.f(a, b, c, d, e, f, g, h, i) : fun(a)(b)(c)(d)(e)(f)(g)(h)(i);
+}
+
+console.warn('Compiled in DEV mode. Follow the advice at https://elm-lang.org/0.19.1/optimize for better performance and smaller assets.');
+
+
+// EQUALITY
+
+function _Utils_eq(x, y)
+{
+	for (
+		var pair, stack = [], isEqual = _Utils_eqHelp(x, y, 0, stack);
+		isEqual && (pair = stack.pop());
+		isEqual = _Utils_eqHelp(pair.a, pair.b, 0, stack)
+		)
+	{}
+
+	return isEqual;
+}
+
+function _Utils_eqHelp(x, y, depth, stack)
+{
+	if (x === y)
+	{
+		return true;
+	}
+
+	if (typeof x !== 'object' || x === null || y === null)
+	{
+		typeof x === 'function' && _Debug_crash(5);
+		return false;
+	}
+
+	if (depth > 100)
+	{
+		stack.push(_Utils_Tuple2(x,y));
+		return true;
+	}
+
+	/**/
+	if (x.$ === 'Set_elm_builtin')
+	{
+		x = $elm$core$Set$toList(x);
+		y = $elm$core$Set$toList(y);
+	}
+	if (x.$ === 'RBNode_elm_builtin' || x.$ === 'RBEmpty_elm_builtin')
+	{
+		x = $elm$core$Dict$toList(x);
+		y = $elm$core$Dict$toList(y);
+	}
+	//*/
+
+	/**_UNUSED/
+	if (x.$ < 0)
+	{
+		x = $elm$core$Dict$toList(x);
+		y = $elm$core$Dict$toList(y);
+	}
+	//*/
+
+	for (var key in x)
+	{
+		if (!_Utils_eqHelp(x[key], y[key], depth + 1, stack))
+		{
+			return false;
+		}
+	}
+	return true;
+}
+
+var _Utils_equal = F2(_Utils_eq);
+var _Utils_notEqual = F2(function(a, b) { return !_Utils_eq(a,b); });
+
+
+
+// COMPARISONS
+
+// Code in Generate/JavaScript.hs, Basics.js, and List.js depends on
+// the particular integer values assigned to LT, EQ, and GT.
+
+function _Utils_cmp(x, y, ord)
+{
+	if (typeof x !== 'object')
+	{
+		return x === y ? /*EQ*/ 0 : x < y ? /*LT*/ -1 : /*GT*/ 1;
+	}
+
+	/**/
+	if (x instanceof String)
+	{
+		var a = x.valueOf();
+		var b = y.valueOf();
+		return a === b ? 0 : a < b ? -1 : 1;
+	}
+	//*/
+
+	/**_UNUSED/
+	if (typeof x.$ === 'undefined')
+	//*/
+	/**/
+	if (x.$[0] === '#')
+	//*/
+	{
+		return (ord = _Utils_cmp(x.a, y.a))
+			? ord
+			: (ord = _Utils_cmp(x.b, y.b))
+				? ord
+				: _Utils_cmp(x.c, y.c);
+	}
+
+	// traverse conses until end of a list or a mismatch
+	for (; x.b && y.b && !(ord = _Utils_cmp(x.a, y.a)); x = x.b, y = y.b) {} // WHILE_CONSES
+	return ord || (x.b ? /*GT*/ 1 : y.b ? /*LT*/ -1 : /*EQ*/ 0);
+}
+
+var _Utils_lt = F2(function(a, b) { return _Utils_cmp(a, b) < 0; });
+var _Utils_le = F2(function(a, b) { return _Utils_cmp(a, b) < 1; });
+var _Utils_gt = F2(function(a, b) { return _Utils_cmp(a, b) > 0; });
+var _Utils_ge = F2(function(a, b) { return _Utils_cmp(a, b) >= 0; });
+
+var _Utils_compare = F2(function(x, y)
+{
+	var n = _Utils_cmp(x, y);
+	return n < 0 ? $elm$core$Basics$LT : n ? $elm$core$Basics$GT : $elm$core$Basics$EQ;
+});
+
+
+// COMMON VALUES
+
+var _Utils_Tuple0_UNUSED = 0;
+var _Utils_Tuple0 = { $: '#0' };
+
+function _Utils_Tuple2_UNUSED(a, b) { return { a: a, b: b }; }
+function _Utils_Tuple2(a, b) { return { $: '#2', a: a, b: b }; }
+
+function _Utils_Tuple3_UNUSED(a, b, c) { return { a: a, b: b, c: c }; }
+function _Utils_Tuple3(a, b, c) { return { $: '#3', a: a, b: b, c: c }; }
+
+function _Utils_chr_UNUSED(c) { return c; }
+function _Utils_chr(c) { return new String(c); }
+
+
+// RECORDS
+
+function _Utils_update(oldRecord, updatedFields)
+{
+	var newRecord = {};
+
+	for (var key in oldRecord)
+	{
+		newRecord[key] = oldRecord[key];
+	}
+
+	for (var key in updatedFields)
+	{
+		newRecord[key] = updatedFields[key];
+	}
+
+	return newRecord;
+}
+
+
+// APPEND
+
+var _Utils_append = F2(_Utils_ap);
+
+function _Utils_ap(xs, ys)
+{
+	// append Strings
+	if (typeof xs === 'string')
+	{
+		return xs + ys;
+	}
+
+	// append Lists
+	if (!xs.b)
+	{
+		return ys;
+	}
+	var root = _List_Cons(xs.a, ys);
+	xs = xs.b
+	for (var curr = root; xs.b; xs = xs.b) // WHILE_CONS
+	{
+		curr = curr.b = _List_Cons(xs.a, ys);
+	}
+	return root;
+}
+
+
+
+var _List_Nil_UNUSED = { $: 0 };
+var _List_Nil = { $: '[]' };
+
+function _List_Cons_UNUSED(hd, tl) { return { $: 1, a: hd, b: tl }; }
+function _List_Cons(hd, tl) { return { $: '::', a: hd, b: tl }; }
+
+
+var _List_cons = F2(_List_Cons);
+
+function _List_fromArray(arr)
+{
+	var out = _List_Nil;
+	for (var i = arr.length; i--; )
+	{
+		out = _List_Cons(arr[i], out);
+	}
+	return out;
+}
+
+function _List_toArray(xs)
+{
+	for (var out = []; xs.b; xs = xs.b) // WHILE_CONS
+	{
+		out.push(xs.a);
+	}
+	return out;
+}
+
+var _List_map2 = F3(function(f, xs, ys)
+{
+	for (var arr = []; xs.b && ys.b; xs = xs.b, ys = ys.b) // WHILE_CONSES
+	{
+		arr.push(A2(f, xs.a, ys.a));
+	}
+	return _List_fromArray(arr);
+});
+
+var _List_map3 = F4(function(f, xs, ys, zs)
+{
+	for (var arr = []; xs.b && ys.b && zs.b; xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES
+	{
+		arr.push(A3(f, xs.a, ys.a, zs.a));
+	}
+	return _List_fromArray(arr);
+});
+
+var _List_map4 = F5(function(f, ws, xs, ys, zs)
+{
+	for (var arr = []; ws.b && xs.b && ys.b && zs.b; ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES
+	{
+		arr.push(A4(f, ws.a, xs.a, ys.a, zs.a));
+	}
+	return _List_fromArray(arr);
+});
+
+var _List_map5 = F6(function(f, vs, ws, xs, ys, zs)
+{
+	for (var arr = []; vs.b && ws.b && xs.b && ys.b && zs.b; vs = vs.b, ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES
+	{
+		arr.push(A5(f, vs.a, ws.a, xs.a, ys.a, zs.a));
+	}
+	return _List_fromArray(arr);
+});
+
+var _List_sortBy = F2(function(f, xs)
+{
+	return _List_fromArray(_List_toArray(xs).sort(function(a, b) {
+		return _Utils_cmp(f(a), f(b));
+	}));
+});
+
+var _List_sortWith = F2(function(f, xs)
+{
+	return _List_fromArray(_List_toArray(xs).sort(function(a, b) {
+		var ord = A2(f, a, b);
+		return ord === $elm$core$Basics$EQ ? 0 : ord === $elm$core$Basics$LT ? -1 : 1;
+	}));
+});
+
+
+
+var _JsArray_empty = [];
+
+function _JsArray_singleton(value)
+{
+    return [value];
+}
+
+function _JsArray_length(array)
+{
+    return array.length;
+}
+
+var _JsArray_initialize = F3(function(size, offset, func)
+{
+    var result = new Array(size);
+
+    for (var i = 0; i < size; i++)
+    {
+        result[i] = func(offset + i);
+    }
+
+    return result;
+});
+
+var _JsArray_initializeFromList = F2(function (max, ls)
+{
+    var result = new Array(max);
+
+    for (var i = 0; i < max && ls.b; i++)
+    {
+        result[i] = ls.a;
+        ls = ls.b;
+    }
+
+    result.length = i;
+    return _Utils_Tuple2(result, ls);
+});
+
+var _JsArray_unsafeGet = F2(function(index, array)
+{
+    return array[index];
+});
+
+var _JsArray_unsafeSet = F3(function(index, value, array)
+{
+    var length = array.length;
+    var result = new Array(length);
+
+    for (var i = 0; i < length; i++)
+    {
+        result[i] = array[i];
+    }
+
+    result[index] = value;
+    return result;
+});
+
+var _JsArray_push = F2(function(value, array)
+{
+    var length = array.length;
+    var result = new Array(length + 1);
+
+    for (var i = 0; i < length; i++)
+    {
+        result[i] = array[i];
+    }
+
+    result[length] = value;
+    return result;
+});
+
+var _JsArray_foldl = F3(function(func, acc, array)
+{
+    var length = array.length;
+
+    for (var i = 0; i < length; i++)
+    {
+        acc = A2(func, array[i], acc);
+    }
+
+    return acc;
+});
+
+var _JsArray_foldr = F3(function(func, acc, array)
+{
+    for (var i = array.length - 1; i >= 0; i--)
+    {
+        acc = A2(func, array[i], acc);
+    }
+
+    return acc;
+});
+
+var _JsArray_map = F2(function(func, array)
+{
+    var length = array.length;
+    var result = new Array(length);
+
+    for (var i = 0; i < length; i++)
+    {
+        result[i] = func(array[i]);
+    }
+
+    return result;
+});
+
+var _JsArray_indexedMap = F3(function(func, offset, array)
+{
+    var length = array.length;
+    var result = new Array(length);
+
+    for (var i = 0; i < length; i++)
+    {
+        result[i] = A2(func, offset + i, array[i]);
+    }
+
+    return result;
+});
+
+var _JsArray_slice = F3(function(from, to, array)
+{
+    return array.slice(from, to);
+});
+
+var _JsArray_appendN = F3(function(n, dest, source)
+{
+    var destLen = dest.length;
+    var itemsToCopy = n - destLen;
+
+    if (itemsToCopy > source.length)
+    {
+        itemsToCopy = source.length;
+    }
+
+    var size = destLen + itemsToCopy;
+    var result = new Array(size);
+
+    for (var i = 0; i < destLen; i++)
+    {
+        result[i] = dest[i];
+    }
+
+    for (var i = 0; i < itemsToCopy; i++)
+    {
+        result[i + destLen] = source[i];
+    }
+
+    return result;
+});
+
+
+
+// LOG
+
+var _Debug_log_UNUSED = F2(function(tag, value)
+{
+	return value;
+});
+
+var _Debug_log = F2(function(tag, value)
+{
+	console.log(tag + ': ' + _Debug_toString(value));
+	return value;
+});
+
+
+// TODOS
+
+function _Debug_todo(moduleName, region)
+{
+	return function(message) {
+		_Debug_crash(8, moduleName, region, message);
+	};
+}
+
+function _Debug_todoCase(moduleName, region, value)
+{
+	return function(message) {
+		_Debug_crash(9, moduleName, region, value, message);
+	};
+}
+
+
+// TO STRING
+
+function _Debug_toString_UNUSED(value)
+{
+	return '';
+}
+
+function _Debug_toString(value)
+{
+	return _Debug_toAnsiString(false, value);
+}
+
+function _Debug_toAnsiString(ansi, value)
+{
+	if (typeof value === 'function')
+	{
+		return _Debug_internalColor(ansi, '');
+	}
+
+	if (typeof value === 'boolean')
+	{
+		return _Debug_ctorColor(ansi, value ? 'True' : 'False');
+	}
+
+	if (typeof value === 'number')
+	{
+		return _Debug_numberColor(ansi, value + '');
+	}
+
+	if (value instanceof String)
+	{
+		return _Debug_charColor(ansi, "'" + _Debug_addSlashes(value, true) + "'");
+	}
+
+	if (typeof value === 'string')
+	{
+		return _Debug_stringColor(ansi, '"' + _Debug_addSlashes(value, false) + '"');
+	}
+
+	if (typeof value === 'object' && '$' in value)
+	{
+		var tag = value.$;
+
+		if (typeof tag === 'number')
+		{
+			return _Debug_internalColor(ansi, '');
+		}
+
+		if (tag[0] === '#')
+		{
+			var output = [];
+			for (var k in value)
+			{
+				if (k === '$') continue;
+				output.push(_Debug_toAnsiString(ansi, value[k]));
+			}
+			return '(' + output.join(',') + ')';
+		}
+
+		if (tag === 'Set_elm_builtin')
+		{
+			return _Debug_ctorColor(ansi, 'Set')
+				+ _Debug_fadeColor(ansi, '.fromList') + ' '
+				+ _Debug_toAnsiString(ansi, $elm$core$Set$toList(value));
+		}
+
+		if (tag === 'RBNode_elm_builtin' || tag === 'RBEmpty_elm_builtin')
+		{
+			return _Debug_ctorColor(ansi, 'Dict')
+				+ _Debug_fadeColor(ansi, '.fromList') + ' '
+				+ _Debug_toAnsiString(ansi, $elm$core$Dict$toList(value));
+		}
+
+		if (tag === 'Array_elm_builtin')
+		{
+			return _Debug_ctorColor(ansi, 'Array')
+				+ _Debug_fadeColor(ansi, '.fromList') + ' '
+				+ _Debug_toAnsiString(ansi, $elm$core$Array$toList(value));
+		}
+
+		if (tag === '::' || tag === '[]')
+		{
+			var output = '[';
+
+			value.b && (output += _Debug_toAnsiString(ansi, value.a), value = value.b)
+
+			for (; value.b; value = value.b) // WHILE_CONS
+			{
+				output += ',' + _Debug_toAnsiString(ansi, value.a);
+			}
+			return output + ']';
+		}
+
+		var output = '';
+		for (var i in value)
+		{
+			if (i === '$') continue;
+			var str = _Debug_toAnsiString(ansi, value[i]);
+			var c0 = str[0];
+			var parenless = c0 === '{' || c0 === '(' || c0 === '[' || c0 === '<' || c0 === '"' || str.indexOf(' ') < 0;
+			output += ' ' + (parenless ? str : '(' + str + ')');
+		}
+		return _Debug_ctorColor(ansi, tag) + output;
+	}
+
+	if (typeof DataView === 'function' && value instanceof DataView)
+	{
+		return _Debug_stringColor(ansi, '<' + value.byteLength + ' bytes>');
+	}
+
+	if (typeof File !== 'undefined' && value instanceof File)
+	{
+		return _Debug_internalColor(ansi, '<' + value.name + '>');
+	}
+
+	if (typeof value === 'object')
+	{
+		var output = [];
+		for (var key in value)
+		{
+			var field = key[0] === '_' ? key.slice(1) : key;
+			output.push(_Debug_fadeColor(ansi, field) + ' = ' + _Debug_toAnsiString(ansi, value[key]));
+		}
+		if (output.length === 0)
+		{
+			return '{}';
+		}
+		return '{ ' + output.join(', ') + ' }';
+	}
+
+	return _Debug_internalColor(ansi, '');
+}
+
+function _Debug_addSlashes(str, isChar)
+{
+	var s = str
+		.replace(/\\/g, '\\\\')
+		.replace(/\n/g, '\\n')
+		.replace(/\t/g, '\\t')
+		.replace(/\r/g, '\\r')
+		.replace(/\v/g, '\\v')
+		.replace(/\0/g, '\\0');
+
+	if (isChar)
+	{
+		return s.replace(/\'/g, '\\\'');
+	}
+	else
+	{
+		return s.replace(/\"/g, '\\"');
+	}
+}
+
+function _Debug_ctorColor(ansi, string)
+{
+	return ansi ? '\x1b[96m' + string + '\x1b[0m' : string;
+}
+
+function _Debug_numberColor(ansi, string)
+{
+	return ansi ? '\x1b[95m' + string + '\x1b[0m' : string;
+}
+
+function _Debug_stringColor(ansi, string)
+{
+	return ansi ? '\x1b[93m' + string + '\x1b[0m' : string;
+}
+
+function _Debug_charColor(ansi, string)
+{
+	return ansi ? '\x1b[92m' + string + '\x1b[0m' : string;
+}
+
+function _Debug_fadeColor(ansi, string)
+{
+	return ansi ? '\x1b[37m' + string + '\x1b[0m' : string;
+}
+
+function _Debug_internalColor(ansi, string)
+{
+	return ansi ? '\x1b[36m' + string + '\x1b[0m' : string;
+}
+
+function _Debug_toHexDigit(n)
+{
+	return String.fromCharCode(n < 10 ? 48 + n : 55 + n);
+}
+
+
+// CRASH
+
+
+function _Debug_crash_UNUSED(identifier)
+{
+	throw new Error('https://github.com/elm/core/blob/1.0.0/hints/' + identifier + '.md');
+}
+
+
+function _Debug_crash(identifier, fact1, fact2, fact3, fact4)
+{
+	switch(identifier)
+	{
+		case 0:
+			throw new Error('What node should I take over? In JavaScript I need something like:\n\n    Elm.Main.init({\n        node: document.getElementById("elm-node")\n    })\n\nYou need to do this with any Browser.sandbox or Browser.element program.');
+
+		case 1:
+			throw new Error('Browser.application programs cannot handle URLs like this:\n\n    ' + document.location.href + '\n\nWhat is the root? The root of your file system? Try looking at this program with `elm reactor` or some other server.');
+
+		case 2:
+			var jsonErrorString = fact1;
+			throw new Error('Problem with the flags given to your Elm program on initialization.\n\n' + jsonErrorString);
+
+		case 3:
+			var portName = fact1;
+			throw new Error('There can only be one port named `' + portName + '`, but your program has multiple.');
+
+		case 4:
+			var portName = fact1;
+			var problem = fact2;
+			throw new Error('Trying to send an unexpected type of value through port `' + portName + '`:\n' + problem);
+
+		case 5:
+			throw new Error('Trying to use `(==)` on functions.\nThere is no way to know if functions are "the same" in the Elm sense.\nRead more about this at https://package.elm-lang.org/packages/elm/core/latest/Basics#== which describes why it is this way and what the better version will look like.');
+
+		case 6:
+			var moduleName = fact1;
+			throw new Error('Your page is loading multiple Elm scripts with a module named ' + moduleName + '. Maybe a duplicate script is getting loaded accidentally? If not, rename one of them so I know which is which!');
+
+		case 8:
+			var moduleName = fact1;
+			var region = fact2;
+			var message = fact3;
+			throw new Error('TODO in module `' + moduleName + '` ' + _Debug_regionToString(region) + '\n\n' + message);
+
+		case 9:
+			var moduleName = fact1;
+			var region = fact2;
+			var value = fact3;
+			var message = fact4;
+			throw new Error(
+				'TODO in module `' + moduleName + '` from the `case` expression '
+				+ _Debug_regionToString(region) + '\n\nIt received the following value:\n\n    '
+				+ _Debug_toString(value).replace('\n', '\n    ')
+				+ '\n\nBut the branch that handles it says:\n\n    ' + message.replace('\n', '\n    ')
+			);
+
+		case 10:
+			throw new Error('Bug in https://github.com/elm/virtual-dom/issues');
+
+		case 11:
+			throw new Error('Cannot perform mod 0. Division by zero error.');
+	}
+}
+
+function _Debug_regionToString(region)
+{
+	if (region.start.line === region.end.line)
+	{
+		return 'on line ' + region.start.line;
+	}
+	return 'on lines ' + region.start.line + ' through ' + region.end.line;
+}
+
+
+
+// MATH
+
+var _Basics_add = F2(function(a, b) { return a + b; });
+var _Basics_sub = F2(function(a, b) { return a - b; });
+var _Basics_mul = F2(function(a, b) { return a * b; });
+var _Basics_fdiv = F2(function(a, b) { return a / b; });
+var _Basics_idiv = F2(function(a, b) { return (a / b) | 0; });
+var _Basics_pow = F2(Math.pow);
+
+var _Basics_remainderBy = F2(function(b, a) { return a % b; });
+
+// https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/divmodnote-letter.pdf
+var _Basics_modBy = F2(function(modulus, x)
+{
+	var answer = x % modulus;
+	return modulus === 0
+		? _Debug_crash(11)
+		:
+	((answer > 0 && modulus < 0) || (answer < 0 && modulus > 0))
+		? answer + modulus
+		: answer;
+});
+
+
+// TRIGONOMETRY
+
+var _Basics_pi = Math.PI;
+var _Basics_e = Math.E;
+var _Basics_cos = Math.cos;
+var _Basics_sin = Math.sin;
+var _Basics_tan = Math.tan;
+var _Basics_acos = Math.acos;
+var _Basics_asin = Math.asin;
+var _Basics_atan = Math.atan;
+var _Basics_atan2 = F2(Math.atan2);
+
+
+// MORE MATH
+
+function _Basics_toFloat(x) { return x; }
+function _Basics_truncate(n) { return n | 0; }
+function _Basics_isInfinite(n) { return n === Infinity || n === -Infinity; }
+
+var _Basics_ceiling = Math.ceil;
+var _Basics_floor = Math.floor;
+var _Basics_round = Math.round;
+var _Basics_sqrt = Math.sqrt;
+var _Basics_log = Math.log;
+var _Basics_isNaN = isNaN;
+
+
+// BOOLEANS
+
+function _Basics_not(bool) { return !bool; }
+var _Basics_and = F2(function(a, b) { return a && b; });
+var _Basics_or  = F2(function(a, b) { return a || b; });
+var _Basics_xor = F2(function(a, b) { return a !== b; });
+
+
+
+var _String_cons = F2(function(chr, str)
+{
+	return chr + str;
+});
+
+function _String_uncons(string)
+{
+	var word = string.charCodeAt(0);
+	return !isNaN(word)
+		? $elm$core$Maybe$Just(
+			0xD800 <= word && word <= 0xDBFF
+				? _Utils_Tuple2(_Utils_chr(string[0] + string[1]), string.slice(2))
+				: _Utils_Tuple2(_Utils_chr(string[0]), string.slice(1))
+		)
+		: $elm$core$Maybe$Nothing;
+}
+
+var _String_append = F2(function(a, b)
+{
+	return a + b;
+});
+
+function _String_length(str)
+{
+	return str.length;
+}
+
+var _String_map = F2(function(func, string)
+{
+	var len = string.length;
+	var array = new Array(len);
+	var i = 0;
+	while (i < len)
+	{
+		var word = string.charCodeAt(i);
+		if (0xD800 <= word && word <= 0xDBFF)
+		{
+			array[i] = func(_Utils_chr(string[i] + string[i+1]));
+			i += 2;
+			continue;
+		}
+		array[i] = func(_Utils_chr(string[i]));
+		i++;
+	}
+	return array.join('');
+});
+
+var _String_filter = F2(function(isGood, str)
+{
+	var arr = [];
+	var len = str.length;
+	var i = 0;
+	while (i < len)
+	{
+		var char = str[i];
+		var word = str.charCodeAt(i);
+		i++;
+		if (0xD800 <= word && word <= 0xDBFF)
+		{
+			char += str[i];
+			i++;
+		}
+
+		if (isGood(_Utils_chr(char)))
+		{
+			arr.push(char);
+		}
+	}
+	return arr.join('');
+});
+
+function _String_reverse(str)
+{
+	var len = str.length;
+	var arr = new Array(len);
+	var i = 0;
+	while (i < len)
+	{
+		var word = str.charCodeAt(i);
+		if (0xD800 <= word && word <= 0xDBFF)
+		{
+			arr[len - i] = str[i + 1];
+			i++;
+			arr[len - i] = str[i - 1];
+			i++;
+		}
+		else
+		{
+			arr[len - i] = str[i];
+			i++;
+		}
+	}
+	return arr.join('');
+}
+
+var _String_foldl = F3(function(func, state, string)
+{
+	var len = string.length;
+	var i = 0;
+	while (i < len)
+	{
+		var char = string[i];
+		var word = string.charCodeAt(i);
+		i++;
+		if (0xD800 <= word && word <= 0xDBFF)
+		{
+			char += string[i];
+			i++;
+		}
+		state = A2(func, _Utils_chr(char), state);
+	}
+	return state;
+});
+
+var _String_foldr = F3(function(func, state, string)
+{
+	var i = string.length;
+	while (i--)
+	{
+		var char = string[i];
+		var word = string.charCodeAt(i);
+		if (0xDC00 <= word && word <= 0xDFFF)
+		{
+			i--;
+			char = string[i] + char;
+		}
+		state = A2(func, _Utils_chr(char), state);
+	}
+	return state;
+});
+
+var _String_split = F2(function(sep, str)
+{
+	return str.split(sep);
+});
+
+var _String_join = F2(function(sep, strs)
+{
+	return strs.join(sep);
+});
+
+var _String_slice = F3(function(start, end, str) {
+	return str.slice(start, end);
+});
+
+function _String_trim(str)
+{
+	return str.trim();
+}
+
+function _String_trimLeft(str)
+{
+	return str.replace(/^\s+/, '');
+}
+
+function _String_trimRight(str)
+{
+	return str.replace(/\s+$/, '');
+}
+
+function _String_words(str)
+{
+	return _List_fromArray(str.trim().split(/\s+/g));
+}
+
+function _String_lines(str)
+{
+	return _List_fromArray(str.split(/\r\n|\r|\n/g));
+}
+
+function _String_toUpper(str)
+{
+	return str.toUpperCase();
+}
+
+function _String_toLower(str)
+{
+	return str.toLowerCase();
+}
+
+var _String_any = F2(function(isGood, string)
+{
+	var i = string.length;
+	while (i--)
+	{
+		var char = string[i];
+		var word = string.charCodeAt(i);
+		if (0xDC00 <= word && word <= 0xDFFF)
+		{
+			i--;
+			char = string[i] + char;
+		}
+		if (isGood(_Utils_chr(char)))
+		{
+			return true;
+		}
+	}
+	return false;
+});
+
+var _String_all = F2(function(isGood, string)
+{
+	var i = string.length;
+	while (i--)
+	{
+		var char = string[i];
+		var word = string.charCodeAt(i);
+		if (0xDC00 <= word && word <= 0xDFFF)
+		{
+			i--;
+			char = string[i] + char;
+		}
+		if (!isGood(_Utils_chr(char)))
+		{
+			return false;
+		}
+	}
+	return true;
+});
+
+var _String_contains = F2(function(sub, str)
+{
+	return str.indexOf(sub) > -1;
+});
+
+var _String_startsWith = F2(function(sub, str)
+{
+	return str.indexOf(sub) === 0;
+});
+
+var _String_endsWith = F2(function(sub, str)
+{
+	return str.length >= sub.length &&
+		str.lastIndexOf(sub) === str.length - sub.length;
+});
+
+var _String_indexes = F2(function(sub, str)
+{
+	var subLen = sub.length;
+
+	if (subLen < 1)
+	{
+		return _List_Nil;
+	}
+
+	var i = 0;
+	var is = [];
+
+	while ((i = str.indexOf(sub, i)) > -1)
+	{
+		is.push(i);
+		i = i + subLen;
+	}
+
+	return _List_fromArray(is);
+});
+
+
+// TO STRING
+
+function _String_fromNumber(number)
+{
+	return number + '';
+}
+
+
+// INT CONVERSIONS
+
+function _String_toInt(str)
+{
+	var total = 0;
+	var code0 = str.charCodeAt(0);
+	var start = code0 == 0x2B /* + */ || code0 == 0x2D /* - */ ? 1 : 0;
+
+	for (var i = start; i < str.length; ++i)
+	{
+		var code = str.charCodeAt(i);
+		if (code < 0x30 || 0x39 < code)
+		{
+			return $elm$core$Maybe$Nothing;
+		}
+		total = 10 * total + code - 0x30;
+	}
+
+	return i == start
+		? $elm$core$Maybe$Nothing
+		: $elm$core$Maybe$Just(code0 == 0x2D ? -total : total);
+}
+
+
+// FLOAT CONVERSIONS
+
+function _String_toFloat(s)
+{
+	// check if it is a hex, octal, or binary number
+	if (s.length === 0 || /[\sxbo]/.test(s))
+	{
+		return $elm$core$Maybe$Nothing;
+	}
+	var n = +s;
+	// faster isNaN check
+	return n === n ? $elm$core$Maybe$Just(n) : $elm$core$Maybe$Nothing;
+}
+
+function _String_fromList(chars)
+{
+	return _List_toArray(chars).join('');
+}
+
+
+
+
+function _Char_toCode(char)
+{
+	var code = char.charCodeAt(0);
+	if (0xD800 <= code && code <= 0xDBFF)
+	{
+		return (code - 0xD800) * 0x400 + char.charCodeAt(1) - 0xDC00 + 0x10000
+	}
+	return code;
+}
+
+function _Char_fromCode(code)
+{
+	return _Utils_chr(
+		(code < 0 || 0x10FFFF < code)
+			? '\uFFFD'
+			:
+		(code <= 0xFFFF)
+			? String.fromCharCode(code)
+			:
+		(code -= 0x10000,
+			String.fromCharCode(Math.floor(code / 0x400) + 0xD800, code % 0x400 + 0xDC00)
+		)
+	);
+}
+
+function _Char_toUpper(char)
+{
+	return _Utils_chr(char.toUpperCase());
+}
+
+function _Char_toLower(char)
+{
+	return _Utils_chr(char.toLowerCase());
+}
+
+function _Char_toLocaleUpper(char)
+{
+	return _Utils_chr(char.toLocaleUpperCase());
+}
+
+function _Char_toLocaleLower(char)
+{
+	return _Utils_chr(char.toLocaleLowerCase());
+}
+
+
+
+/**/
+function _Json_errorToString(error)
+{
+	return $elm$json$Json$Decode$errorToString(error);
+}
+//*/
+
+
+// CORE DECODERS
+
+function _Json_succeed(msg)
+{
+	return {
+		$: 0,
+		a: msg
+	};
+}
+
+function _Json_fail(msg)
+{
+	return {
+		$: 1,
+		a: msg
+	};
+}
+
+function _Json_decodePrim(decoder)
+{
+	return { $: 2, b: decoder };
+}
+
+var _Json_decodeInt = _Json_decodePrim(function(value) {
+	return (typeof value !== 'number')
+		? _Json_expecting('an INT', value)
+		:
+	(-2147483647 < value && value < 2147483647 && (value | 0) === value)
+		? $elm$core$Result$Ok(value)
+		:
+	(isFinite(value) && !(value % 1))
+		? $elm$core$Result$Ok(value)
+		: _Json_expecting('an INT', value);
+});
+
+var _Json_decodeBool = _Json_decodePrim(function(value) {
+	return (typeof value === 'boolean')
+		? $elm$core$Result$Ok(value)
+		: _Json_expecting('a BOOL', value);
+});
+
+var _Json_decodeFloat = _Json_decodePrim(function(value) {
+	return (typeof value === 'number')
+		? $elm$core$Result$Ok(value)
+		: _Json_expecting('a FLOAT', value);
+});
+
+var _Json_decodeValue = _Json_decodePrim(function(value) {
+	return $elm$core$Result$Ok(_Json_wrap(value));
+});
+
+var _Json_decodeString = _Json_decodePrim(function(value) {
+	return (typeof value === 'string')
+		? $elm$core$Result$Ok(value)
+		: (value instanceof String)
+			? $elm$core$Result$Ok(value + '')
+			: _Json_expecting('a STRING', value);
+});
+
+function _Json_decodeList(decoder) { return { $: 3, b: decoder }; }
+function _Json_decodeArray(decoder) { return { $: 4, b: decoder }; }
+
+function _Json_decodeNull(value) { return { $: 5, c: value }; }
+
+var _Json_decodeField = F2(function(field, decoder)
+{
+	return {
+		$: 6,
+		d: field,
+		b: decoder
+	};
+});
+
+var _Json_decodeIndex = F2(function(index, decoder)
+{
+	return {
+		$: 7,
+		e: index,
+		b: decoder
+	};
+});
+
+function _Json_decodeKeyValuePairs(decoder)
+{
+	return {
+		$: 8,
+		b: decoder
+	};
+}
+
+function _Json_mapMany(f, decoders)
+{
+	return {
+		$: 9,
+		f: f,
+		g: decoders
+	};
+}
+
+var _Json_andThen = F2(function(callback, decoder)
+{
+	return {
+		$: 10,
+		b: decoder,
+		h: callback
+	};
+});
+
+function _Json_oneOf(decoders)
+{
+	return {
+		$: 11,
+		g: decoders
+	};
+}
+
+
+// DECODING OBJECTS
+
+var _Json_map1 = F2(function(f, d1)
+{
+	return _Json_mapMany(f, [d1]);
+});
+
+var _Json_map2 = F3(function(f, d1, d2)
+{
+	return _Json_mapMany(f, [d1, d2]);
+});
+
+var _Json_map3 = F4(function(f, d1, d2, d3)
+{
+	return _Json_mapMany(f, [d1, d2, d3]);
+});
+
+var _Json_map4 = F5(function(f, d1, d2, d3, d4)
+{
+	return _Json_mapMany(f, [d1, d2, d3, d4]);
+});
+
+var _Json_map5 = F6(function(f, d1, d2, d3, d4, d5)
+{
+	return _Json_mapMany(f, [d1, d2, d3, d4, d5]);
+});
+
+var _Json_map6 = F7(function(f, d1, d2, d3, d4, d5, d6)
+{
+	return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6]);
+});
+
+var _Json_map7 = F8(function(f, d1, d2, d3, d4, d5, d6, d7)
+{
+	return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7]);
+});
+
+var _Json_map8 = F9(function(f, d1, d2, d3, d4, d5, d6, d7, d8)
+{
+	return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7, d8]);
+});
+
+
+// DECODE
+
+var _Json_runOnString = F2(function(decoder, string)
+{
+	try
+	{
+		var value = JSON.parse(string);
+		return _Json_runHelp(decoder, value);
+	}
+	catch (e)
+	{
+		return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, 'This is not valid JSON! ' + e.message, _Json_wrap(string)));
+	}
+});
+
+var _Json_run = F2(function(decoder, value)
+{
+	return _Json_runHelp(decoder, _Json_unwrap(value));
+});
+
+function _Json_runHelp(decoder, value)
+{
+	switch (decoder.$)
+	{
+		case 2:
+			return decoder.b(value);
+
+		case 5:
+			return (value === null)
+				? $elm$core$Result$Ok(decoder.c)
+				: _Json_expecting('null', value);
+
+		case 3:
+			if (!_Json_isArray(value))
+			{
+				return _Json_expecting('a LIST', value);
+			}
+			return _Json_runArrayDecoder(decoder.b, value, _List_fromArray);
+
+		case 4:
+			if (!_Json_isArray(value))
+			{
+				return _Json_expecting('an ARRAY', value);
+			}
+			return _Json_runArrayDecoder(decoder.b, value, _Json_toElmArray);
+
+		case 6:
+			var field = decoder.d;
+			if (typeof value !== 'object' || value === null || !(field in value))
+			{
+				return _Json_expecting('an OBJECT with a field named `' + field + '`', value);
+			}
+			var result = _Json_runHelp(decoder.b, value[field]);
+			return ($elm$core$Result$isOk(result)) ? result : $elm$core$Result$Err(A2($elm$json$Json$Decode$Field, field, result.a));
+
+		case 7:
+			var index = decoder.e;
+			if (!_Json_isArray(value))
+			{
+				return _Json_expecting('an ARRAY', value);
+			}
+			if (index >= value.length)
+			{
+				return _Json_expecting('a LONGER array. Need index ' + index + ' but only see ' + value.length + ' entries', value);
+			}
+			var result = _Json_runHelp(decoder.b, value[index]);
+			return ($elm$core$Result$isOk(result)) ? result : $elm$core$Result$Err(A2($elm$json$Json$Decode$Index, index, result.a));
+
+		case 8:
+			if (typeof value !== 'object' || value === null || _Json_isArray(value))
+			{
+				return _Json_expecting('an OBJECT', value);
+			}
+
+			var keyValuePairs = _List_Nil;
+			// TODO test perf of Object.keys and switch when support is good enough
+			for (var key in value)
+			{
+				if (value.hasOwnProperty(key))
+				{
+					var result = _Json_runHelp(decoder.b, value[key]);
+					if (!$elm$core$Result$isOk(result))
+					{
+						return $elm$core$Result$Err(A2($elm$json$Json$Decode$Field, key, result.a));
+					}
+					keyValuePairs = _List_Cons(_Utils_Tuple2(key, result.a), keyValuePairs);
+				}
+			}
+			return $elm$core$Result$Ok($elm$core$List$reverse(keyValuePairs));
+
+		case 9:
+			var answer = decoder.f;
+			var decoders = decoder.g;
+			for (var i = 0; i < decoders.length; i++)
+			{
+				var result = _Json_runHelp(decoders[i], value);
+				if (!$elm$core$Result$isOk(result))
+				{
+					return result;
+				}
+				answer = answer(result.a);
+			}
+			return $elm$core$Result$Ok(answer);
+
+		case 10:
+			var result = _Json_runHelp(decoder.b, value);
+			return (!$elm$core$Result$isOk(result))
+				? result
+				: _Json_runHelp(decoder.h(result.a), value);
+
+		case 11:
+			var errors = _List_Nil;
+			for (var temp = decoder.g; temp.b; temp = temp.b) // WHILE_CONS
+			{
+				var result = _Json_runHelp(temp.a, value);
+				if ($elm$core$Result$isOk(result))
+				{
+					return result;
+				}
+				errors = _List_Cons(result.a, errors);
+			}
+			return $elm$core$Result$Err($elm$json$Json$Decode$OneOf($elm$core$List$reverse(errors)));
+
+		case 1:
+			return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, decoder.a, _Json_wrap(value)));
+
+		case 0:
+			return $elm$core$Result$Ok(decoder.a);
+	}
+}
+
+function _Json_runArrayDecoder(decoder, value, toElmValue)
+{
+	var len = value.length;
+	var array = new Array(len);
+	for (var i = 0; i < len; i++)
+	{
+		var result = _Json_runHelp(decoder, value[i]);
+		if (!$elm$core$Result$isOk(result))
+		{
+			return $elm$core$Result$Err(A2($elm$json$Json$Decode$Index, i, result.a));
+		}
+		array[i] = result.a;
+	}
+	return $elm$core$Result$Ok(toElmValue(array));
+}
+
+function _Json_isArray(value)
+{
+	return Array.isArray(value) || (typeof FileList !== 'undefined' && value instanceof FileList);
+}
+
+function _Json_toElmArray(array)
+{
+	return A2($elm$core$Array$initialize, array.length, function(i) { return array[i]; });
+}
+
+function _Json_expecting(type, value)
+{
+	return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, 'Expecting ' + type, _Json_wrap(value)));
+}
+
+
+// EQUALITY
+
+function _Json_equality(x, y)
+{
+	if (x === y)
+	{
+		return true;
+	}
+
+	if (x.$ !== y.$)
+	{
+		return false;
+	}
+
+	switch (x.$)
+	{
+		case 0:
+		case 1:
+			return x.a === y.a;
+
+		case 2:
+			return x.b === y.b;
+
+		case 5:
+			return x.c === y.c;
+
+		case 3:
+		case 4:
+		case 8:
+			return _Json_equality(x.b, y.b);
+
+		case 6:
+			return x.d === y.d && _Json_equality(x.b, y.b);
+
+		case 7:
+			return x.e === y.e && _Json_equality(x.b, y.b);
+
+		case 9:
+			return x.f === y.f && _Json_listEquality(x.g, y.g);
+
+		case 10:
+			return x.h === y.h && _Json_equality(x.b, y.b);
+
+		case 11:
+			return _Json_listEquality(x.g, y.g);
+	}
+}
+
+function _Json_listEquality(aDecoders, bDecoders)
+{
+	var len = aDecoders.length;
+	if (len !== bDecoders.length)
+	{
+		return false;
+	}
+	for (var i = 0; i < len; i++)
+	{
+		if (!_Json_equality(aDecoders[i], bDecoders[i]))
+		{
+			return false;
+		}
+	}
+	return true;
+}
+
+
+// ENCODE
+
+var _Json_encode = F2(function(indentLevel, value)
+{
+	return JSON.stringify(_Json_unwrap(value), null, indentLevel) + '';
+});
+
+function _Json_wrap(value) { return { $: 0, a: value }; }
+function _Json_unwrap(value) { return value.a; }
+
+function _Json_wrap_UNUSED(value) { return value; }
+function _Json_unwrap_UNUSED(value) { return value; }
+
+function _Json_emptyArray() { return []; }
+function _Json_emptyObject() { return {}; }
+
+var _Json_addField = F3(function(key, value, object)
+{
+	object[key] = _Json_unwrap(value);
+	return object;
+});
+
+function _Json_addEntry(func)
+{
+	return F2(function(entry, array)
+	{
+		array.push(_Json_unwrap(func(entry)));
+		return array;
+	});
+}
+
+var _Json_encodeNull = _Json_wrap(null);
+
+
+
+// TASKS
+
+function _Scheduler_succeed(value)
+{
+	return {
+		$: 0,
+		a: value
+	};
+}
+
+function _Scheduler_fail(error)
+{
+	return {
+		$: 1,
+		a: error
+	};
+}
+
+function _Scheduler_binding(callback)
+{
+	return {
+		$: 2,
+		b: callback,
+		c: null
+	};
+}
+
+var _Scheduler_andThen = F2(function(callback, task)
+{
+	return {
+		$: 3,
+		b: callback,
+		d: task
+	};
+});
+
+var _Scheduler_onError = F2(function(callback, task)
+{
+	return {
+		$: 4,
+		b: callback,
+		d: task
+	};
+});
+
+function _Scheduler_receive(callback)
+{
+	return {
+		$: 5,
+		b: callback
+	};
+}
+
+
+// PROCESSES
+
+var _Scheduler_guid = 0;
+
+function _Scheduler_rawSpawn(task)
+{
+	var proc = {
+		$: 0,
+		e: _Scheduler_guid++,
+		f: task,
+		g: null,
+		h: []
+	};
+
+	_Scheduler_enqueue(proc);
+
+	return proc;
+}
+
+function _Scheduler_spawn(task)
+{
+	return _Scheduler_binding(function(callback) {
+		callback(_Scheduler_succeed(_Scheduler_rawSpawn(task)));
+	});
+}
+
+function _Scheduler_rawSend(proc, msg)
+{
+	proc.h.push(msg);
+	_Scheduler_enqueue(proc);
+}
+
+var _Scheduler_send = F2(function(proc, msg)
+{
+	return _Scheduler_binding(function(callback) {
+		_Scheduler_rawSend(proc, msg);
+		callback(_Scheduler_succeed(_Utils_Tuple0));
+	});
+});
+
+function _Scheduler_kill(proc)
+{
+	return _Scheduler_binding(function(callback) {
+		var task = proc.f;
+		if (task.$ === 2 && task.c)
+		{
+			task.c();
+		}
+
+		proc.f = null;
+
+		callback(_Scheduler_succeed(_Utils_Tuple0));
+	});
+}
+
+
+/* STEP PROCESSES
+
+type alias Process =
+  { $ : tag
+  , id : unique_id
+  , root : Task
+  , stack : null | { $: SUCCEED | FAIL, a: callback, b: stack }
+  , mailbox : [msg]
+  }
+
+*/
+
+
+var _Scheduler_working = false;
+var _Scheduler_queue = [];
+
+
+function _Scheduler_enqueue(proc)
+{
+	_Scheduler_queue.push(proc);
+	if (_Scheduler_working)
+	{
+		return;
+	}
+	_Scheduler_working = true;
+	while (proc = _Scheduler_queue.shift())
+	{
+		_Scheduler_step(proc);
+	}
+	_Scheduler_working = false;
+}
+
+
+function _Scheduler_step(proc)
+{
+	while (proc.f)
+	{
+		var rootTag = proc.f.$;
+		if (rootTag === 0 || rootTag === 1)
+		{
+			while (proc.g && proc.g.$ !== rootTag)
+			{
+				proc.g = proc.g.i;
+			}
+			if (!proc.g)
+			{
+				return;
+			}
+			proc.f = proc.g.b(proc.f.a);
+			proc.g = proc.g.i;
+		}
+		else if (rootTag === 2)
+		{
+			proc.f.c = proc.f.b(function(newRoot) {
+				proc.f = newRoot;
+				_Scheduler_enqueue(proc);
+			});
+			return;
+		}
+		else if (rootTag === 5)
+		{
+			if (proc.h.length === 0)
+			{
+				return;
+			}
+			proc.f = proc.f.b(proc.h.shift());
+		}
+		else // if (rootTag === 3 || rootTag === 4)
+		{
+			proc.g = {
+				$: rootTag === 3 ? 0 : 1,
+				b: proc.f.b,
+				i: proc.g
+			};
+			proc.f = proc.f.d;
+		}
+	}
+}
+
+
+
+function _Process_sleep(time)
+{
+	return _Scheduler_binding(function(callback) {
+		var id = setTimeout(function() {
+			callback(_Scheduler_succeed(_Utils_Tuple0));
+		}, time);
+
+		return function() { clearTimeout(id); };
+	});
+}
+
+
+
+
+// PROGRAMS
+
+
+var _Platform_worker = F4(function(impl, flagDecoder, debugMetadata, args)
+{
+	return _Platform_initialize(
+		flagDecoder,
+		args,
+		impl.init,
+		impl.update,
+		impl.subscriptions,
+		function() { return function() {} }
+	);
+});
+
+
+
+// INITIALIZE A PROGRAM
+
+
+function _Platform_initialize(flagDecoder, args, init, update, subscriptions, stepperBuilder)
+{
+	var result = A2(_Json_run, flagDecoder, _Json_wrap(args ? args['flags'] : undefined));
+	$elm$core$Result$isOk(result) || _Debug_crash(2 /**/, _Json_errorToString(result.a) /**/);
+	var managers = {};
+	var initPair = init(result.a);
+	var model = initPair.a;
+	var stepper = stepperBuilder(sendToApp, model);
+	var ports = _Platform_setupEffects(managers, sendToApp);
+
+	function sendToApp(msg, viewMetadata)
+	{
+		var pair = A2(update, msg, model);
+		stepper(model = pair.a, viewMetadata);
+		_Platform_enqueueEffects(managers, pair.b, subscriptions(model));
+	}
+
+	_Platform_enqueueEffects(managers, initPair.b, subscriptions(model));
+
+	return ports ? { ports: ports } : {};
+}
+
+
+
+// TRACK PRELOADS
+//
+// This is used by code in elm/browser and elm/http
+// to register any HTTP requests that are triggered by init.
+//
+
+
+var _Platform_preload;
+
+
+function _Platform_registerPreload(url)
+{
+	_Platform_preload.add(url);
+}
+
+
+
+// EFFECT MANAGERS
+
+
+var _Platform_effectManagers = {};
+
+
+function _Platform_setupEffects(managers, sendToApp)
+{
+	var ports;
+
+	// setup all necessary effect managers
+	for (var key in _Platform_effectManagers)
+	{
+		var manager = _Platform_effectManagers[key];
+
+		if (manager.a)
+		{
+			ports = ports || {};
+			ports[key] = manager.a(key, sendToApp);
+		}
+
+		managers[key] = _Platform_instantiateManager(manager, sendToApp);
+	}
+
+	return ports;
+}
+
+
+function _Platform_createManager(init, onEffects, onSelfMsg, cmdMap, subMap)
+{
+	return {
+		b: init,
+		c: onEffects,
+		d: onSelfMsg,
+		e: cmdMap,
+		f: subMap
+	};
+}
+
+
+function _Platform_instantiateManager(info, sendToApp)
+{
+	var router = {
+		g: sendToApp,
+		h: undefined
+	};
+
+	var onEffects = info.c;
+	var onSelfMsg = info.d;
+	var cmdMap = info.e;
+	var subMap = info.f;
+
+	function loop(state)
+	{
+		return A2(_Scheduler_andThen, loop, _Scheduler_receive(function(msg)
+		{
+			var value = msg.a;
+
+			if (msg.$ === 0)
+			{
+				return A3(onSelfMsg, router, value, state);
+			}
+
+			return cmdMap && subMap
+				? A4(onEffects, router, value.i, value.j, state)
+				: A3(onEffects, router, cmdMap ? value.i : value.j, state);
+		}));
+	}
+
+	return router.h = _Scheduler_rawSpawn(A2(_Scheduler_andThen, loop, info.b));
+}
+
+
+
+// ROUTING
+
+
+var _Platform_sendToApp = F2(function(router, msg)
+{
+	return _Scheduler_binding(function(callback)
+	{
+		router.g(msg);
+		callback(_Scheduler_succeed(_Utils_Tuple0));
+	});
+});
+
+
+var _Platform_sendToSelf = F2(function(router, msg)
+{
+	return A2(_Scheduler_send, router.h, {
+		$: 0,
+		a: msg
+	});
+});
+
+
+
+// BAGS
+
+
+function _Platform_leaf(home)
+{
+	return function(value)
+	{
+		return {
+			$: 1,
+			k: home,
+			l: value
+		};
+	};
+}
+
+
+function _Platform_batch(list)
+{
+	return {
+		$: 2,
+		m: list
+	};
+}
+
+
+var _Platform_map = F2(function(tagger, bag)
+{
+	return {
+		$: 3,
+		n: tagger,
+		o: bag
+	}
+});
+
+
+
+// PIPE BAGS INTO EFFECT MANAGERS
+//
+// Effects must be queued!
+//
+// Say your init contains a synchronous command, like Time.now or Time.here
+//
+//   - This will produce a batch of effects (FX_1)
+//   - The synchronous task triggers the subsequent `update` call
+//   - This will produce a batch of effects (FX_2)
+//
+// If we just start dispatching FX_2, subscriptions from FX_2 can be processed
+// before subscriptions from FX_1. No good! Earlier versions of this code had
+// this problem, leading to these reports:
+//
+//   https://github.com/elm/core/issues/980
+//   https://github.com/elm/core/pull/981
+//   https://github.com/elm/compiler/issues/1776
+//
+// The queue is necessary to avoid ordering issues for synchronous commands.
+
+
+// Why use true/false here? Why not just check the length of the queue?
+// The goal is to detect "are we currently dispatching effects?" If we
+// are, we need to bail and let the ongoing while loop handle things.
+//
+// Now say the queue has 1 element. When we dequeue the final element,
+// the queue will be empty, but we are still actively dispatching effects.
+// So you could get queue jumping in a really tricky category of cases.
+//
+var _Platform_effectsQueue = [];
+var _Platform_effectsActive = false;
+
+
+function _Platform_enqueueEffects(managers, cmdBag, subBag)
+{
+	_Platform_effectsQueue.push({ p: managers, q: cmdBag, r: subBag });
+
+	if (_Platform_effectsActive) return;
+
+	_Platform_effectsActive = true;
+	for (var fx; fx = _Platform_effectsQueue.shift(); )
+	{
+		_Platform_dispatchEffects(fx.p, fx.q, fx.r);
+	}
+	_Platform_effectsActive = false;
+}
+
+
+function _Platform_dispatchEffects(managers, cmdBag, subBag)
+{
+	var effectsDict = {};
+	_Platform_gatherEffects(true, cmdBag, effectsDict, null);
+	_Platform_gatherEffects(false, subBag, effectsDict, null);
+
+	for (var home in managers)
+	{
+		_Scheduler_rawSend(managers[home], {
+			$: 'fx',
+			a: effectsDict[home] || { i: _List_Nil, j: _List_Nil }
+		});
+	}
+}
+
+
+function _Platform_gatherEffects(isCmd, bag, effectsDict, taggers)
+{
+	switch (bag.$)
+	{
+		case 1:
+			var home = bag.k;
+			var effect = _Platform_toEffect(isCmd, home, taggers, bag.l);
+			effectsDict[home] = _Platform_insert(isCmd, effect, effectsDict[home]);
+			return;
+
+		case 2:
+			for (var list = bag.m; list.b; list = list.b) // WHILE_CONS
+			{
+				_Platform_gatherEffects(isCmd, list.a, effectsDict, taggers);
+			}
+			return;
+
+		case 3:
+			_Platform_gatherEffects(isCmd, bag.o, effectsDict, {
+				s: bag.n,
+				t: taggers
+			});
+			return;
+	}
+}
+
+
+function _Platform_toEffect(isCmd, home, taggers, value)
+{
+	function applyTaggers(x)
+	{
+		for (var temp = taggers; temp; temp = temp.t)
+		{
+			x = temp.s(x);
+		}
+		return x;
+	}
+
+	var map = isCmd
+		? _Platform_effectManagers[home].e
+		: _Platform_effectManagers[home].f;
+
+	return A2(map, applyTaggers, value)
+}
+
+
+function _Platform_insert(isCmd, newEffect, effects)
+{
+	effects = effects || { i: _List_Nil, j: _List_Nil };
+
+	isCmd
+		? (effects.i = _List_Cons(newEffect, effects.i))
+		: (effects.j = _List_Cons(newEffect, effects.j));
+
+	return effects;
+}
+
+
+
+// PORTS
+
+
+function _Platform_checkPortName(name)
+{
+	if (_Platform_effectManagers[name])
+	{
+		_Debug_crash(3, name)
+	}
+}
+
+
+
+// OUTGOING PORTS
+
+
+function _Platform_outgoingPort(name, converter)
+{
+	_Platform_checkPortName(name);
+	_Platform_effectManagers[name] = {
+		e: _Platform_outgoingPortMap,
+		u: converter,
+		a: _Platform_setupOutgoingPort
+	};
+	return _Platform_leaf(name);
+}
+
+
+var _Platform_outgoingPortMap = F2(function(tagger, value) { return value; });
+
+
+function _Platform_setupOutgoingPort(name)
+{
+	var subs = [];
+	var converter = _Platform_effectManagers[name].u;
+
+	// CREATE MANAGER
+
+	var init = _Process_sleep(0);
+
+	_Platform_effectManagers[name].b = init;
+	_Platform_effectManagers[name].c = F3(function(router, cmdList, state)
+	{
+		for ( ; cmdList.b; cmdList = cmdList.b) // WHILE_CONS
+		{
+			// grab a separate reference to subs in case unsubscribe is called
+			var currentSubs = subs;
+			var value = _Json_unwrap(converter(cmdList.a));
+			for (var i = 0; i < currentSubs.length; i++)
+			{
+				currentSubs[i](value);
+			}
+		}
+		return init;
+	});
+
+	// PUBLIC API
+
+	function subscribe(callback)
+	{
+		subs.push(callback);
+	}
+
+	function unsubscribe(callback)
+	{
+		// copy subs into a new array in case unsubscribe is called within a
+		// subscribed callback
+		subs = subs.slice();
+		var index = subs.indexOf(callback);
+		if (index >= 0)
+		{
+			subs.splice(index, 1);
+		}
+	}
+
+	return {
+		subscribe: subscribe,
+		unsubscribe: unsubscribe
+	};
+}
+
+
+
+// INCOMING PORTS
+
+
+function _Platform_incomingPort(name, converter)
+{
+	_Platform_checkPortName(name);
+	_Platform_effectManagers[name] = {
+		f: _Platform_incomingPortMap,
+		u: converter,
+		a: _Platform_setupIncomingPort
+	};
+	return _Platform_leaf(name);
+}
+
+
+var _Platform_incomingPortMap = F2(function(tagger, finalTagger)
+{
+	return function(value)
+	{
+		return tagger(finalTagger(value));
+	};
+});
+
+
+function _Platform_setupIncomingPort(name, sendToApp)
+{
+	var subs = _List_Nil;
+	var converter = _Platform_effectManagers[name].u;
+
+	// CREATE MANAGER
+
+	var init = _Scheduler_succeed(null);
+
+	_Platform_effectManagers[name].b = init;
+	_Platform_effectManagers[name].c = F3(function(router, subList, state)
+	{
+		subs = subList;
+		return init;
+	});
+
+	// PUBLIC API
+
+	function send(incomingValue)
+	{
+		var result = A2(_Json_run, converter, _Json_wrap(incomingValue));
+
+		$elm$core$Result$isOk(result) || _Debug_crash(4, name, result.a);
+
+		var value = result.a;
+		for (var temp = subs; temp.b; temp = temp.b) // WHILE_CONS
+		{
+			sendToApp(temp.a(value));
+		}
+	}
+
+	return { send: send };
+}
+
+
+
+// EXPORT ELM MODULES
+//
+// Have DEBUG and PROD versions so that we can (1) give nicer errors in
+// debug mode and (2) not pay for the bits needed for that in prod mode.
+//
+
+
+function _Platform_export_UNUSED(exports)
+{
+	scope['Elm']
+		? _Platform_mergeExportsProd(scope['Elm'], exports)
+		: scope['Elm'] = exports;
+}
+
+
+function _Platform_mergeExportsProd(obj, exports)
+{
+	for (var name in exports)
+	{
+		(name in obj)
+			? (name == 'init')
+				? _Debug_crash(6)
+				: _Platform_mergeExportsProd(obj[name], exports[name])
+			: (obj[name] = exports[name]);
+	}
+}
+
+
+function _Platform_export(exports)
+{
+	scope['Elm']
+		? _Platform_mergeExportsDebug('Elm', scope['Elm'], exports)
+		: scope['Elm'] = exports;
+}
+
+
+function _Platform_mergeExportsDebug(moduleName, obj, exports)
+{
+	for (var name in exports)
+	{
+		(name in obj)
+			? (name == 'init')
+				? _Debug_crash(6, moduleName)
+				: _Platform_mergeExportsDebug(moduleName + '.' + name, obj[name], exports[name])
+			: (obj[name] = exports[name]);
+	}
+}
+
+
+
+
+// HELPERS
+
+
+var _VirtualDom_divertHrefToApp;
+
+var _VirtualDom_doc = typeof document !== 'undefined' ? document : {};
+
+
+function _VirtualDom_appendChild(parent, child)
+{
+	parent.appendChild(child);
+}
+
+var _VirtualDom_init = F4(function(virtualNode, flagDecoder, debugMetadata, args)
+{
+	// NOTE: this function needs _Platform_export available to work
+
+	/**_UNUSED/
+	var node = args['node'];
+	//*/
+	/**/
+	var node = args && args['node'] ? args['node'] : _Debug_crash(0);
+	//*/
+
+	node.parentNode.replaceChild(
+		_VirtualDom_render(virtualNode, function() {}),
+		node
+	);
+
+	return {};
+});
+
+
+
+// TEXT
+
+
+function _VirtualDom_text(string)
+{
+	return {
+		$: 0,
+		a: string
+	};
+}
+
+
+
+// NODE
+
+
+var _VirtualDom_nodeNS = F2(function(namespace, tag)
+{
+	return F2(function(factList, kidList)
+	{
+		for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS
+		{
+			var kid = kidList.a;
+			descendantsCount += (kid.b || 0);
+			kids.push(kid);
+		}
+		descendantsCount += kids.length;
+
+		return {
+			$: 1,
+			c: tag,
+			d: _VirtualDom_organizeFacts(factList),
+			e: kids,
+			f: namespace,
+			b: descendantsCount
+		};
+	});
+});
+
+
+var _VirtualDom_node = _VirtualDom_nodeNS(undefined);
+
+
+
+// KEYED NODE
+
+
+var _VirtualDom_keyedNodeNS = F2(function(namespace, tag)
+{
+	return F2(function(factList, kidList)
+	{
+		for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS
+		{
+			var kid = kidList.a;
+			descendantsCount += (kid.b.b || 0);
+			kids.push(kid);
+		}
+		descendantsCount += kids.length;
+
+		return {
+			$: 2,
+			c: tag,
+			d: _VirtualDom_organizeFacts(factList),
+			e: kids,
+			f: namespace,
+			b: descendantsCount
+		};
+	});
+});
+
+
+var _VirtualDom_keyedNode = _VirtualDom_keyedNodeNS(undefined);
+
+
+
+// CUSTOM
+
+
+function _VirtualDom_custom(factList, model, render, diff)
+{
+	return {
+		$: 3,
+		d: _VirtualDom_organizeFacts(factList),
+		g: model,
+		h: render,
+		i: diff
+	};
+}
+
+
+
+// MAP
+
+
+var _VirtualDom_map = F2(function(tagger, node)
+{
+	return {
+		$: 4,
+		j: tagger,
+		k: node,
+		b: 1 + (node.b || 0)
+	};
+});
+
+
+
+// LAZY
+
+
+function _VirtualDom_thunk(refs, thunk)
+{
+	return {
+		$: 5,
+		l: refs,
+		m: thunk,
+		k: undefined
+	};
+}
+
+var _VirtualDom_lazy = F2(function(func, a)
+{
+	return _VirtualDom_thunk([func, a], function() {
+		return func(a);
+	});
+});
+
+var _VirtualDom_lazy2 = F3(function(func, a, b)
+{
+	return _VirtualDom_thunk([func, a, b], function() {
+		return A2(func, a, b);
+	});
+});
+
+var _VirtualDom_lazy3 = F4(function(func, a, b, c)
+{
+	return _VirtualDom_thunk([func, a, b, c], function() {
+		return A3(func, a, b, c);
+	});
+});
+
+var _VirtualDom_lazy4 = F5(function(func, a, b, c, d)
+{
+	return _VirtualDom_thunk([func, a, b, c, d], function() {
+		return A4(func, a, b, c, d);
+	});
+});
+
+var _VirtualDom_lazy5 = F6(function(func, a, b, c, d, e)
+{
+	return _VirtualDom_thunk([func, a, b, c, d, e], function() {
+		return A5(func, a, b, c, d, e);
+	});
+});
+
+var _VirtualDom_lazy6 = F7(function(func, a, b, c, d, e, f)
+{
+	return _VirtualDom_thunk([func, a, b, c, d, e, f], function() {
+		return A6(func, a, b, c, d, e, f);
+	});
+});
+
+var _VirtualDom_lazy7 = F8(function(func, a, b, c, d, e, f, g)
+{
+	return _VirtualDom_thunk([func, a, b, c, d, e, f, g], function() {
+		return A7(func, a, b, c, d, e, f, g);
+	});
+});
+
+var _VirtualDom_lazy8 = F9(function(func, a, b, c, d, e, f, g, h)
+{
+	return _VirtualDom_thunk([func, a, b, c, d, e, f, g, h], function() {
+		return A8(func, a, b, c, d, e, f, g, h);
+	});
+});
+
+
+
+// FACTS
+
+
+var _VirtualDom_on = F2(function(key, handler)
+{
+	return {
+		$: 'a0',
+		n: key,
+		o: handler
+	};
+});
+var _VirtualDom_style = F2(function(key, value)
+{
+	return {
+		$: 'a1',
+		n: key,
+		o: value
+	};
+});
+var _VirtualDom_property = F2(function(key, value)
+{
+	return {
+		$: 'a2',
+		n: key,
+		o: value
+	};
+});
+var _VirtualDom_attribute = F2(function(key, value)
+{
+	return {
+		$: 'a3',
+		n: key,
+		o: value
+	};
+});
+var _VirtualDom_attributeNS = F3(function(namespace, key, value)
+{
+	return {
+		$: 'a4',
+		n: key,
+		o: { f: namespace, o: value }
+	};
+});
+
+
+
+// XSS ATTACK VECTOR CHECKS
+
+
+function _VirtualDom_noScript(tag)
+{
+	return tag == 'script' ? 'p' : tag;
+}
+
+function _VirtualDom_noOnOrFormAction(key)
+{
+	return /^(on|formAction$)/i.test(key) ? 'data-' + key : key;
+}
+
+function _VirtualDom_noInnerHtmlOrFormAction(key)
+{
+	return key == 'innerHTML' || key == 'formAction' ? 'data-' + key : key;
+}
+
+function _VirtualDom_noJavaScriptUri_UNUSED(value)
+{
+	return /^javascript:/i.test(value.replace(/\s/g,'')) ? '' : value;
+}
+
+function _VirtualDom_noJavaScriptUri(value)
+{
+	return /^javascript:/i.test(value.replace(/\s/g,''))
+		? 'javascript:alert("This is an XSS vector. Please use ports or web components instead.")'
+		: value;
+}
+
+function _VirtualDom_noJavaScriptOrHtmlUri_UNUSED(value)
+{
+	return /^\s*(javascript:|data:text\/html)/i.test(value) ? '' : value;
+}
+
+function _VirtualDom_noJavaScriptOrHtmlUri(value)
+{
+	return /^\s*(javascript:|data:text\/html)/i.test(value)
+		? 'javascript:alert("This is an XSS vector. Please use ports or web components instead.")'
+		: value;
+}
+
+
+
+// MAP FACTS
+
+
+var _VirtualDom_mapAttribute = F2(function(func, attr)
+{
+	return (attr.$ === 'a0')
+		? A2(_VirtualDom_on, attr.n, _VirtualDom_mapHandler(func, attr.o))
+		: attr;
+});
+
+function _VirtualDom_mapHandler(func, handler)
+{
+	var tag = $elm$virtual_dom$VirtualDom$toHandlerInt(handler);
+
+	// 0 = Normal
+	// 1 = MayStopPropagation
+	// 2 = MayPreventDefault
+	// 3 = Custom
+
+	return {
+		$: handler.$,
+		a:
+			!tag
+				? A2($elm$json$Json$Decode$map, func, handler.a)
+				:
+			A3($elm$json$Json$Decode$map2,
+				tag < 3
+					? _VirtualDom_mapEventTuple
+					: _VirtualDom_mapEventRecord,
+				$elm$json$Json$Decode$succeed(func),
+				handler.a
+			)
+	};
+}
+
+var _VirtualDom_mapEventTuple = F2(function(func, tuple)
+{
+	return _Utils_Tuple2(func(tuple.a), tuple.b);
+});
+
+var _VirtualDom_mapEventRecord = F2(function(func, record)
+{
+	return {
+		message: func(record.message),
+		stopPropagation: record.stopPropagation,
+		preventDefault: record.preventDefault
+	}
+});
+
+
+
+// ORGANIZE FACTS
+
+
+function _VirtualDom_organizeFacts(factList)
+{
+	for (var facts = {}; factList.b; factList = factList.b) // WHILE_CONS
+	{
+		var entry = factList.a;
+
+		var tag = entry.$;
+		var key = entry.n;
+		var value = entry.o;
+
+		if (tag === 'a2')
+		{
+			(key === 'className')
+				? _VirtualDom_addClass(facts, key, _Json_unwrap(value))
+				: facts[key] = _Json_unwrap(value);
+
+			continue;
+		}
+
+		var subFacts = facts[tag] || (facts[tag] = {});
+		(tag === 'a3' && key === 'class')
+			? _VirtualDom_addClass(subFacts, key, value)
+			: subFacts[key] = value;
+	}
+
+	return facts;
+}
+
+function _VirtualDom_addClass(object, key, newClass)
+{
+	var classes = object[key];
+	object[key] = classes ? classes + ' ' + newClass : newClass;
+}
+
+
+
+// RENDER
+
+
+function _VirtualDom_render(vNode, eventNode)
+{
+	var tag = vNode.$;
+
+	if (tag === 5)
+	{
+		return _VirtualDom_render(vNode.k || (vNode.k = vNode.m()), eventNode);
+	}
+
+	if (tag === 0)
+	{
+		return _VirtualDom_doc.createTextNode(vNode.a);
+	}
+
+	if (tag === 4)
+	{
+		var subNode = vNode.k;
+		var tagger = vNode.j;
+
+		while (subNode.$ === 4)
+		{
+			typeof tagger !== 'object'
+				? tagger = [tagger, subNode.j]
+				: tagger.push(subNode.j);
+
+			subNode = subNode.k;
+		}
+
+		var subEventRoot = { j: tagger, p: eventNode };
+		var domNode = _VirtualDom_render(subNode, subEventRoot);
+		domNode.elm_event_node_ref = subEventRoot;
+		return domNode;
+	}
+
+	if (tag === 3)
+	{
+		var domNode = vNode.h(vNode.g);
+		_VirtualDom_applyFacts(domNode, eventNode, vNode.d);
+		return domNode;
+	}
+
+	// at this point `tag` must be 1 or 2
+
+	var domNode = vNode.f
+		? _VirtualDom_doc.createElementNS(vNode.f, vNode.c)
+		: _VirtualDom_doc.createElement(vNode.c);
+
+	if (_VirtualDom_divertHrefToApp && vNode.c == 'a')
+	{
+		domNode.addEventListener('click', _VirtualDom_divertHrefToApp(domNode));
+	}
+
+	_VirtualDom_applyFacts(domNode, eventNode, vNode.d);
+
+	for (var kids = vNode.e, i = 0; i < kids.length; i++)
+	{
+		_VirtualDom_appendChild(domNode, _VirtualDom_render(tag === 1 ? kids[i] : kids[i].b, eventNode));
+	}
+
+	return domNode;
+}
+
+
+
+// APPLY FACTS
+
+
+function _VirtualDom_applyFacts(domNode, eventNode, facts)
+{
+	for (var key in facts)
+	{
+		var value = facts[key];
+
+		key === 'a1'
+			? _VirtualDom_applyStyles(domNode, value)
+			:
+		key === 'a0'
+			? _VirtualDom_applyEvents(domNode, eventNode, value)
+			:
+		key === 'a3'
+			? _VirtualDom_applyAttrs(domNode, value)
+			:
+		key === 'a4'
+			? _VirtualDom_applyAttrsNS(domNode, value)
+			:
+		((key !== 'value' && key !== 'checked') || domNode[key] !== value) && (domNode[key] = value);
+	}
+}
+
+
+
+// APPLY STYLES
+
+
+function _VirtualDom_applyStyles(domNode, styles)
+{
+	var domNodeStyle = domNode.style;
+
+	for (var key in styles)
+	{
+		domNodeStyle[key] = styles[key];
+	}
+}
+
+
+
+// APPLY ATTRS
+
+
+function _VirtualDom_applyAttrs(domNode, attrs)
+{
+	for (var key in attrs)
+	{
+		var value = attrs[key];
+		typeof value !== 'undefined'
+			? domNode.setAttribute(key, value)
+			: domNode.removeAttribute(key);
+	}
+}
+
+
+
+// APPLY NAMESPACED ATTRS
+
+
+function _VirtualDom_applyAttrsNS(domNode, nsAttrs)
+{
+	for (var key in nsAttrs)
+	{
+		var pair = nsAttrs[key];
+		var namespace = pair.f;
+		var value = pair.o;
+
+		typeof value !== 'undefined'
+			? domNode.setAttributeNS(namespace, key, value)
+			: domNode.removeAttributeNS(namespace, key);
+	}
+}
+
+
+
+// APPLY EVENTS
+
+
+function _VirtualDom_applyEvents(domNode, eventNode, events)
+{
+	var allCallbacks = domNode.elmFs || (domNode.elmFs = {});
+
+	for (var key in events)
+	{
+		var newHandler = events[key];
+		var oldCallback = allCallbacks[key];
+
+		if (!newHandler)
+		{
+			domNode.removeEventListener(key, oldCallback);
+			allCallbacks[key] = undefined;
+			continue;
+		}
+
+		if (oldCallback)
+		{
+			var oldHandler = oldCallback.q;
+			if (oldHandler.$ === newHandler.$)
+			{
+				oldCallback.q = newHandler;
+				continue;
+			}
+			domNode.removeEventListener(key, oldCallback);
+		}
+
+		oldCallback = _VirtualDom_makeCallback(eventNode, newHandler);
+		domNode.addEventListener(key, oldCallback,
+			_VirtualDom_passiveSupported
+			&& { passive: $elm$virtual_dom$VirtualDom$toHandlerInt(newHandler) < 2 }
+		);
+		allCallbacks[key] = oldCallback;
+	}
+}
+
+
+
+// PASSIVE EVENTS
+
+
+var _VirtualDom_passiveSupported;
+
+try
+{
+	window.addEventListener('t', null, Object.defineProperty({}, 'passive', {
+		get: function() { _VirtualDom_passiveSupported = true; }
+	}));
+}
+catch(e) {}
+
+
+
+// EVENT HANDLERS
+
+
+function _VirtualDom_makeCallback(eventNode, initialHandler)
+{
+	function callback(event)
+	{
+		var handler = callback.q;
+		var result = _Json_runHelp(handler.a, event);
+
+		if (!$elm$core$Result$isOk(result))
+		{
+			return;
+		}
+
+		var tag = $elm$virtual_dom$VirtualDom$toHandlerInt(handler);
+
+		// 0 = Normal
+		// 1 = MayStopPropagation
+		// 2 = MayPreventDefault
+		// 3 = Custom
+
+		var value = result.a;
+		var message = !tag ? value : tag < 3 ? value.a : value.message;
+		var stopPropagation = tag == 1 ? value.b : tag == 3 && value.stopPropagation;
+		var currentEventNode = (
+			stopPropagation && event.stopPropagation(),
+			(tag == 2 ? value.b : tag == 3 && value.preventDefault) && event.preventDefault(),
+			eventNode
+		);
+		var tagger;
+		var i;
+		while (tagger = currentEventNode.j)
+		{
+			if (typeof tagger == 'function')
+			{
+				message = tagger(message);
+			}
+			else
+			{
+				for (var i = tagger.length; i--; )
+				{
+					message = tagger[i](message);
+				}
+			}
+			currentEventNode = currentEventNode.p;
+		}
+		currentEventNode(message, stopPropagation); // stopPropagation implies isSync
+	}
+
+	callback.q = initialHandler;
+
+	return callback;
+}
+
+function _VirtualDom_equalEvents(x, y)
+{
+	return x.$ == y.$ && _Json_equality(x.a, y.a);
+}
+
+
+
+// DIFF
+
+
+// TODO: Should we do patches like in iOS?
+//
+// type Patch
+//   = At Int Patch
+//   | Batch (List Patch)
+//   | Change ...
+//
+// How could it not be better?
+//
+function _VirtualDom_diff(x, y)
+{
+	var patches = [];
+	_VirtualDom_diffHelp(x, y, patches, 0);
+	return patches;
+}
+
+
+function _VirtualDom_pushPatch(patches, type, index, data)
+{
+	var patch = {
+		$: type,
+		r: index,
+		s: data,
+		t: undefined,
+		u: undefined
+	};
+	patches.push(patch);
+	return patch;
+}
+
+
+function _VirtualDom_diffHelp(x, y, patches, index)
+{
+	if (x === y)
+	{
+		return;
+	}
+
+	var xType = x.$;
+	var yType = y.$;
+
+	// Bail if you run into different types of nodes. Implies that the
+	// structure has changed significantly and it's not worth a diff.
+	if (xType !== yType)
+	{
+		if (xType === 1 && yType === 2)
+		{
+			y = _VirtualDom_dekey(y);
+			yType = 1;
+		}
+		else
+		{
+			_VirtualDom_pushPatch(patches, 0, index, y);
+			return;
+		}
+	}
+
+	// Now we know that both nodes are the same $.
+	switch (yType)
+	{
+		case 5:
+			var xRefs = x.l;
+			var yRefs = y.l;
+			var i = xRefs.length;
+			var same = i === yRefs.length;
+			while (same && i--)
+			{
+				same = xRefs[i] === yRefs[i];
+			}
+			if (same)
+			{
+				y.k = x.k;
+				return;
+			}
+			y.k = y.m();
+			var subPatches = [];
+			_VirtualDom_diffHelp(x.k, y.k, subPatches, 0);
+			subPatches.length > 0 && _VirtualDom_pushPatch(patches, 1, index, subPatches);
+			return;
+
+		case 4:
+			// gather nested taggers
+			var xTaggers = x.j;
+			var yTaggers = y.j;
+			var nesting = false;
+
+			var xSubNode = x.k;
+			while (xSubNode.$ === 4)
+			{
+				nesting = true;
+
+				typeof xTaggers !== 'object'
+					? xTaggers = [xTaggers, xSubNode.j]
+					: xTaggers.push(xSubNode.j);
+
+				xSubNode = xSubNode.k;
+			}
+
+			var ySubNode = y.k;
+			while (ySubNode.$ === 4)
+			{
+				nesting = true;
+
+				typeof yTaggers !== 'object'
+					? yTaggers = [yTaggers, ySubNode.j]
+					: yTaggers.push(ySubNode.j);
+
+				ySubNode = ySubNode.k;
+			}
+
+			// Just bail if different numbers of taggers. This implies the
+			// structure of the virtual DOM has changed.
+			if (nesting && xTaggers.length !== yTaggers.length)
+			{
+				_VirtualDom_pushPatch(patches, 0, index, y);
+				return;
+			}
+
+			// check if taggers are "the same"
+			if (nesting ? !_VirtualDom_pairwiseRefEqual(xTaggers, yTaggers) : xTaggers !== yTaggers)
+			{
+				_VirtualDom_pushPatch(patches, 2, index, yTaggers);
+			}
+
+			// diff everything below the taggers
+			_VirtualDom_diffHelp(xSubNode, ySubNode, patches, index + 1);
+			return;
+
+		case 0:
+			if (x.a !== y.a)
+			{
+				_VirtualDom_pushPatch(patches, 3, index, y.a);
+			}
+			return;
+
+		case 1:
+			_VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKids);
+			return;
+
+		case 2:
+			_VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKeyedKids);
+			return;
+
+		case 3:
+			if (x.h !== y.h)
+			{
+				_VirtualDom_pushPatch(patches, 0, index, y);
+				return;
+			}
+
+			var factsDiff = _VirtualDom_diffFacts(x.d, y.d);
+			factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff);
+
+			var patch = y.i(x.g, y.g);
+			patch && _VirtualDom_pushPatch(patches, 5, index, patch);
+
+			return;
+	}
+}
+
+// assumes the incoming arrays are the same length
+function _VirtualDom_pairwiseRefEqual(as, bs)
+{
+	for (var i = 0; i < as.length; i++)
+	{
+		if (as[i] !== bs[i])
+		{
+			return false;
+		}
+	}
+
+	return true;
+}
+
+function _VirtualDom_diffNodes(x, y, patches, index, diffKids)
+{
+	// Bail if obvious indicators have changed. Implies more serious
+	// structural changes such that it's not worth it to diff.
+	if (x.c !== y.c || x.f !== y.f)
+	{
+		_VirtualDom_pushPatch(patches, 0, index, y);
+		return;
+	}
+
+	var factsDiff = _VirtualDom_diffFacts(x.d, y.d);
+	factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff);
+
+	diffKids(x, y, patches, index);
+}
+
+
+
+// DIFF FACTS
+
+
+// TODO Instead of creating a new diff object, it's possible to just test if
+// there *is* a diff. During the actual patch, do the diff again and make the
+// modifications directly. This way, there's no new allocations. Worth it?
+function _VirtualDom_diffFacts(x, y, category)
+{
+	var diff;
+
+	// look for changes and removals
+	for (var xKey in x)
+	{
+		if (xKey === 'a1' || xKey === 'a0' || xKey === 'a3' || xKey === 'a4')
+		{
+			var subDiff = _VirtualDom_diffFacts(x[xKey], y[xKey] || {}, xKey);
+			if (subDiff)
+			{
+				diff = diff || {};
+				diff[xKey] = subDiff;
+			}
+			continue;
+		}
+
+		// remove if not in the new facts
+		if (!(xKey in y))
+		{
+			diff = diff || {};
+			diff[xKey] =
+				!category
+					? (typeof x[xKey] === 'string' ? '' : null)
+					:
+				(category === 'a1')
+					? ''
+					:
+				(category === 'a0' || category === 'a3')
+					? undefined
+					:
+				{ f: x[xKey].f, o: undefined };
+
+			continue;
+		}
+
+		var xValue = x[xKey];
+		var yValue = y[xKey];
+
+		// reference equal, so don't worry about it
+		if (xValue === yValue && xKey !== 'value' && xKey !== 'checked'
+			|| category === 'a0' && _VirtualDom_equalEvents(xValue, yValue))
+		{
+			continue;
+		}
+
+		diff = diff || {};
+		diff[xKey] = yValue;
+	}
+
+	// add new stuff
+	for (var yKey in y)
+	{
+		if (!(yKey in x))
+		{
+			diff = diff || {};
+			diff[yKey] = y[yKey];
+		}
+	}
+
+	return diff;
+}
+
+
+
+// DIFF KIDS
+
+
+function _VirtualDom_diffKids(xParent, yParent, patches, index)
+{
+	var xKids = xParent.e;
+	var yKids = yParent.e;
+
+	var xLen = xKids.length;
+	var yLen = yKids.length;
+
+	// FIGURE OUT IF THERE ARE INSERTS OR REMOVALS
+
+	if (xLen > yLen)
+	{
+		_VirtualDom_pushPatch(patches, 6, index, {
+			v: yLen,
+			i: xLen - yLen
+		});
+	}
+	else if (xLen < yLen)
+	{
+		_VirtualDom_pushPatch(patches, 7, index, {
+			v: xLen,
+			e: yKids
+		});
+	}
+
+	// PAIRWISE DIFF EVERYTHING ELSE
+
+	for (var minLen = xLen < yLen ? xLen : yLen, i = 0; i < minLen; i++)
+	{
+		var xKid = xKids[i];
+		_VirtualDom_diffHelp(xKid, yKids[i], patches, ++index);
+		index += xKid.b || 0;
+	}
+}
+
+
+
+// KEYED DIFF
+
+
+function _VirtualDom_diffKeyedKids(xParent, yParent, patches, rootIndex)
+{
+	var localPatches = [];
+
+	var changes = {}; // Dict String Entry
+	var inserts = []; // Array { index : Int, entry : Entry }
+	// type Entry = { tag : String, vnode : VNode, index : Int, data : _ }
+
+	var xKids = xParent.e;
+	var yKids = yParent.e;
+	var xLen = xKids.length;
+	var yLen = yKids.length;
+	var xIndex = 0;
+	var yIndex = 0;
+
+	var index = rootIndex;
+
+	while (xIndex < xLen && yIndex < yLen)
+	{
+		var x = xKids[xIndex];
+		var y = yKids[yIndex];
+
+		var xKey = x.a;
+		var yKey = y.a;
+		var xNode = x.b;
+		var yNode = y.b;
+
+		var newMatch = undefined;
+		var oldMatch = undefined;
+
+		// check if keys match
+
+		if (xKey === yKey)
+		{
+			index++;
+			_VirtualDom_diffHelp(xNode, yNode, localPatches, index);
+			index += xNode.b || 0;
+
+			xIndex++;
+			yIndex++;
+			continue;
+		}
+
+		// look ahead 1 to detect insertions and removals.
+
+		var xNext = xKids[xIndex + 1];
+		var yNext = yKids[yIndex + 1];
+
+		if (xNext)
+		{
+			var xNextKey = xNext.a;
+			var xNextNode = xNext.b;
+			oldMatch = yKey === xNextKey;
+		}
+
+		if (yNext)
+		{
+			var yNextKey = yNext.a;
+			var yNextNode = yNext.b;
+			newMatch = xKey === yNextKey;
+		}
+
+
+		// swap x and y
+		if (newMatch && oldMatch)
+		{
+			index++;
+			_VirtualDom_diffHelp(xNode, yNextNode, localPatches, index);
+			_VirtualDom_insertNode(changes, localPatches, xKey, yNode, yIndex, inserts);
+			index += xNode.b || 0;
+
+			index++;
+			_VirtualDom_removeNode(changes, localPatches, xKey, xNextNode, index);
+			index += xNextNode.b || 0;
+
+			xIndex += 2;
+			yIndex += 2;
+			continue;
+		}
+
+		// insert y
+		if (newMatch)
+		{
+			index++;
+			_VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts);
+			_VirtualDom_diffHelp(xNode, yNextNode, localPatches, index);
+			index += xNode.b || 0;
+
+			xIndex += 1;
+			yIndex += 2;
+			continue;
+		}
+
+		// remove x
+		if (oldMatch)
+		{
+			index++;
+			_VirtualDom_removeNode(changes, localPatches, xKey, xNode, index);
+			index += xNode.b || 0;
+
+			index++;
+			_VirtualDom_diffHelp(xNextNode, yNode, localPatches, index);
+			index += xNextNode.b || 0;
+
+			xIndex += 2;
+			yIndex += 1;
+			continue;
+		}
+
+		// remove x, insert y
+		if (xNext && xNextKey === yNextKey)
+		{
+			index++;
+			_VirtualDom_removeNode(changes, localPatches, xKey, xNode, index);
+			_VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts);
+			index += xNode.b || 0;
+
+			index++;
+			_VirtualDom_diffHelp(xNextNode, yNextNode, localPatches, index);
+			index += xNextNode.b || 0;
+
+			xIndex += 2;
+			yIndex += 2;
+			continue;
+		}
+
+		break;
+	}
+
+	// eat up any remaining nodes with removeNode and insertNode
+
+	while (xIndex < xLen)
+	{
+		index++;
+		var x = xKids[xIndex];
+		var xNode = x.b;
+		_VirtualDom_removeNode(changes, localPatches, x.a, xNode, index);
+		index += xNode.b || 0;
+		xIndex++;
+	}
+
+	while (yIndex < yLen)
+	{
+		var endInserts = endInserts || [];
+		var y = yKids[yIndex];
+		_VirtualDom_insertNode(changes, localPatches, y.a, y.b, undefined, endInserts);
+		yIndex++;
+	}
+
+	if (localPatches.length > 0 || inserts.length > 0 || endInserts)
+	{
+		_VirtualDom_pushPatch(patches, 8, rootIndex, {
+			w: localPatches,
+			x: inserts,
+			y: endInserts
+		});
+	}
+}
+
+
+
+// CHANGES FROM KEYED DIFF
+
+
+var _VirtualDom_POSTFIX = '_elmW6BL';
+
+
+function _VirtualDom_insertNode(changes, localPatches, key, vnode, yIndex, inserts)
+{
+	var entry = changes[key];
+
+	// never seen this key before
+	if (!entry)
+	{
+		entry = {
+			c: 0,
+			z: vnode,
+			r: yIndex,
+			s: undefined
+		};
+
+		inserts.push({ r: yIndex, A: entry });
+		changes[key] = entry;
+
+		return;
+	}
+
+	// this key was removed earlier, a match!
+	if (entry.c === 1)
+	{
+		inserts.push({ r: yIndex, A: entry });
+
+		entry.c = 2;
+		var subPatches = [];
+		_VirtualDom_diffHelp(entry.z, vnode, subPatches, entry.r);
+		entry.r = yIndex;
+		entry.s.s = {
+			w: subPatches,
+			A: entry
+		};
+
+		return;
+	}
+
+	// this key has already been inserted or moved, a duplicate!
+	_VirtualDom_insertNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, yIndex, inserts);
+}
+
+
+function _VirtualDom_removeNode(changes, localPatches, key, vnode, index)
+{
+	var entry = changes[key];
+
+	// never seen this key before
+	if (!entry)
+	{
+		var patch = _VirtualDom_pushPatch(localPatches, 9, index, undefined);
+
+		changes[key] = {
+			c: 1,
+			z: vnode,
+			r: index,
+			s: patch
+		};
+
+		return;
+	}
+
+	// this key was inserted earlier, a match!
+	if (entry.c === 0)
+	{
+		entry.c = 2;
+		var subPatches = [];
+		_VirtualDom_diffHelp(vnode, entry.z, subPatches, index);
+
+		_VirtualDom_pushPatch(localPatches, 9, index, {
+			w: subPatches,
+			A: entry
+		});
+
+		return;
+	}
+
+	// this key has already been removed or moved, a duplicate!
+	_VirtualDom_removeNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, index);
+}
+
+
+
+// ADD DOM NODES
+//
+// Each DOM node has an "index" assigned in order of traversal. It is important
+// to minimize our crawl over the actual DOM, so these indexes (along with the
+// descendantsCount of virtual nodes) let us skip touching entire subtrees of
+// the DOM if we know there are no patches there.
+
+
+function _VirtualDom_addDomNodes(domNode, vNode, patches, eventNode)
+{
+	_VirtualDom_addDomNodesHelp(domNode, vNode, patches, 0, 0, vNode.b, eventNode);
+}
+
+
+// assumes `patches` is non-empty and indexes increase monotonically.
+function _VirtualDom_addDomNodesHelp(domNode, vNode, patches, i, low, high, eventNode)
+{
+	var patch = patches[i];
+	var index = patch.r;
+
+	while (index === low)
+	{
+		var patchType = patch.$;
+
+		if (patchType === 1)
+		{
+			_VirtualDom_addDomNodes(domNode, vNode.k, patch.s, eventNode);
+		}
+		else if (patchType === 8)
+		{
+			patch.t = domNode;
+			patch.u = eventNode;
+
+			var subPatches = patch.s.w;
+			if (subPatches.length > 0)
+			{
+				_VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode);
+			}
+		}
+		else if (patchType === 9)
+		{
+			patch.t = domNode;
+			patch.u = eventNode;
+
+			var data = patch.s;
+			if (data)
+			{
+				data.A.s = domNode;
+				var subPatches = data.w;
+				if (subPatches.length > 0)
+				{
+					_VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode);
+				}
+			}
+		}
+		else
+		{
+			patch.t = domNode;
+			patch.u = eventNode;
+		}
+
+		i++;
+
+		if (!(patch = patches[i]) || (index = patch.r) > high)
+		{
+			return i;
+		}
+	}
+
+	var tag = vNode.$;
+
+	if (tag === 4)
+	{
+		var subNode = vNode.k;
+
+		while (subNode.$ === 4)
+		{
+			subNode = subNode.k;
+		}
+
+		return _VirtualDom_addDomNodesHelp(domNode, subNode, patches, i, low + 1, high, domNode.elm_event_node_ref);
+	}
+
+	// tag must be 1 or 2 at this point
+
+	var vKids = vNode.e;
+	var childNodes = domNode.childNodes;
+	for (var j = 0; j < vKids.length; j++)
+	{
+		low++;
+		var vKid = tag === 1 ? vKids[j] : vKids[j].b;
+		var nextLow = low + (vKid.b || 0);
+		if (low <= index && index <= nextLow)
+		{
+			i = _VirtualDom_addDomNodesHelp(childNodes[j], vKid, patches, i, low, nextLow, eventNode);
+			if (!(patch = patches[i]) || (index = patch.r) > high)
+			{
+				return i;
+			}
+		}
+		low = nextLow;
+	}
+	return i;
+}
+
+
+
+// APPLY PATCHES
+
+
+function _VirtualDom_applyPatches(rootDomNode, oldVirtualNode, patches, eventNode)
+{
+	if (patches.length === 0)
+	{
+		return rootDomNode;
+	}
+
+	_VirtualDom_addDomNodes(rootDomNode, oldVirtualNode, patches, eventNode);
+	return _VirtualDom_applyPatchesHelp(rootDomNode, patches);
+}
+
+function _VirtualDom_applyPatchesHelp(rootDomNode, patches)
+{
+	for (var i = 0; i < patches.length; i++)
+	{
+		var patch = patches[i];
+		var localDomNode = patch.t
+		var newNode = _VirtualDom_applyPatch(localDomNode, patch);
+		if (localDomNode === rootDomNode)
+		{
+			rootDomNode = newNode;
+		}
+	}
+	return rootDomNode;
+}
+
+function _VirtualDom_applyPatch(domNode, patch)
+{
+	switch (patch.$)
+	{
+		case 0:
+			return _VirtualDom_applyPatchRedraw(domNode, patch.s, patch.u);
+
+		case 4:
+			_VirtualDom_applyFacts(domNode, patch.u, patch.s);
+			return domNode;
+
+		case 3:
+			domNode.replaceData(0, domNode.length, patch.s);
+			return domNode;
+
+		case 1:
+			return _VirtualDom_applyPatchesHelp(domNode, patch.s);
+
+		case 2:
+			if (domNode.elm_event_node_ref)
+			{
+				domNode.elm_event_node_ref.j = patch.s;
+			}
+			else
+			{
+				domNode.elm_event_node_ref = { j: patch.s, p: patch.u };
+			}
+			return domNode;
+
+		case 6:
+			var data = patch.s;
+			for (var i = 0; i < data.i; i++)
+			{
+				domNode.removeChild(domNode.childNodes[data.v]);
+			}
+			return domNode;
+
+		case 7:
+			var data = patch.s;
+			var kids = data.e;
+			var i = data.v;
+			var theEnd = domNode.childNodes[i];
+			for (; i < kids.length; i++)
+			{
+				domNode.insertBefore(_VirtualDom_render(kids[i], patch.u), theEnd);
+			}
+			return domNode;
+
+		case 9:
+			var data = patch.s;
+			if (!data)
+			{
+				domNode.parentNode.removeChild(domNode);
+				return domNode;
+			}
+			var entry = data.A;
+			if (typeof entry.r !== 'undefined')
+			{
+				domNode.parentNode.removeChild(domNode);
+			}
+			entry.s = _VirtualDom_applyPatchesHelp(domNode, data.w);
+			return domNode;
+
+		case 8:
+			return _VirtualDom_applyPatchReorder(domNode, patch);
+
+		case 5:
+			return patch.s(domNode);
+
+		default:
+			_Debug_crash(10); // 'Ran into an unknown patch!'
+	}
+}
+
+
+function _VirtualDom_applyPatchRedraw(domNode, vNode, eventNode)
+{
+	var parentNode = domNode.parentNode;
+	var newNode = _VirtualDom_render(vNode, eventNode);
+
+	if (!newNode.elm_event_node_ref)
+	{
+		newNode.elm_event_node_ref = domNode.elm_event_node_ref;
+	}
+
+	if (parentNode && newNode !== domNode)
+	{
+		parentNode.replaceChild(newNode, domNode);
+	}
+	return newNode;
+}
+
+
+function _VirtualDom_applyPatchReorder(domNode, patch)
+{
+	var data = patch.s;
+
+	// remove end inserts
+	var frag = _VirtualDom_applyPatchReorderEndInsertsHelp(data.y, patch);
+
+	// removals
+	domNode = _VirtualDom_applyPatchesHelp(domNode, data.w);
+
+	// inserts
+	var inserts = data.x;
+	for (var i = 0; i < inserts.length; i++)
+	{
+		var insert = inserts[i];
+		var entry = insert.A;
+		var node = entry.c === 2
+			? entry.s
+			: _VirtualDom_render(entry.z, patch.u);
+		domNode.insertBefore(node, domNode.childNodes[insert.r]);
+	}
+
+	// add end inserts
+	if (frag)
+	{
+		_VirtualDom_appendChild(domNode, frag);
+	}
+
+	return domNode;
+}
+
+
+function _VirtualDom_applyPatchReorderEndInsertsHelp(endInserts, patch)
+{
+	if (!endInserts)
+	{
+		return;
+	}
+
+	var frag = _VirtualDom_doc.createDocumentFragment();
+	for (var i = 0; i < endInserts.length; i++)
+	{
+		var insert = endInserts[i];
+		var entry = insert.A;
+		_VirtualDom_appendChild(frag, entry.c === 2
+			? entry.s
+			: _VirtualDom_render(entry.z, patch.u)
+		);
+	}
+	return frag;
+}
+
+
+function _VirtualDom_virtualize(node)
+{
+	// TEXT NODES
+
+	if (node.nodeType === 3)
+	{
+		return _VirtualDom_text(node.textContent);
+	}
+
+
+	// WEIRD NODES
+
+	if (node.nodeType !== 1)
+	{
+		return _VirtualDom_text('');
+	}
+
+
+	// ELEMENT NODES
+
+	var attrList = _List_Nil;
+	var attrs = node.attributes;
+	for (var i = attrs.length; i--; )
+	{
+		var attr = attrs[i];
+		var name = attr.name;
+		var value = attr.value;
+		attrList = _List_Cons( A2(_VirtualDom_attribute, name, value), attrList );
+	}
+
+	var tag = node.tagName.toLowerCase();
+	var kidList = _List_Nil;
+	var kids = node.childNodes;
+
+	for (var i = kids.length; i--; )
+	{
+		kidList = _List_Cons(_VirtualDom_virtualize(kids[i]), kidList);
+	}
+	return A3(_VirtualDom_node, tag, attrList, kidList);
+}
+
+function _VirtualDom_dekey(keyedNode)
+{
+	var keyedKids = keyedNode.e;
+	var len = keyedKids.length;
+	var kids = new Array(len);
+	for (var i = 0; i < len; i++)
+	{
+		kids[i] = keyedKids[i].b;
+	}
+
+	return {
+		$: 1,
+		c: keyedNode.c,
+		d: keyedNode.d,
+		e: kids,
+		f: keyedNode.f,
+		b: keyedNode.b
+	};
+}
+
+
+
+
+// ELEMENT
+
+
+var _Debugger_element;
+
+var _Browser_element = _Debugger_element || F4(function(impl, flagDecoder, debugMetadata, args)
+{
+	return _Platform_initialize(
+		flagDecoder,
+		args,
+		impl.init,
+		impl.update,
+		impl.subscriptions,
+		function(sendToApp, initialModel) {
+			var view = impl.view;
+			/**_UNUSED/
+			var domNode = args['node'];
+			//*/
+			/**/
+			var domNode = args && args['node'] ? args['node'] : _Debug_crash(0);
+			//*/
+			var currNode = _VirtualDom_virtualize(domNode);
+
+			return _Browser_makeAnimator(initialModel, function(model)
+			{
+				var nextNode = view(model);
+				var patches = _VirtualDom_diff(currNode, nextNode);
+				domNode = _VirtualDom_applyPatches(domNode, currNode, patches, sendToApp);
+				currNode = nextNode;
+			});
+		}
+	);
+});
+
+
+
+// DOCUMENT
+
+
+var _Debugger_document;
+
+var _Browser_document = _Debugger_document || F4(function(impl, flagDecoder, debugMetadata, args)
+{
+	return _Platform_initialize(
+		flagDecoder,
+		args,
+		impl.init,
+		impl.update,
+		impl.subscriptions,
+		function(sendToApp, initialModel) {
+			var divertHrefToApp = impl.setup && impl.setup(sendToApp)
+			var view = impl.view;
+			var title = _VirtualDom_doc.title;
+			var bodyNode = _VirtualDom_doc.body;
+			var currNode = _VirtualDom_virtualize(bodyNode);
+			return _Browser_makeAnimator(initialModel, function(model)
+			{
+				_VirtualDom_divertHrefToApp = divertHrefToApp;
+				var doc = view(model);
+				var nextNode = _VirtualDom_node('body')(_List_Nil)(doc.body);
+				var patches = _VirtualDom_diff(currNode, nextNode);
+				bodyNode = _VirtualDom_applyPatches(bodyNode, currNode, patches, sendToApp);
+				currNode = nextNode;
+				_VirtualDom_divertHrefToApp = 0;
+				(title !== doc.title) && (_VirtualDom_doc.title = title = doc.title);
+			});
+		}
+	);
+});
+
+
+
+// ANIMATION
+
+
+var _Browser_cancelAnimationFrame =
+	typeof cancelAnimationFrame !== 'undefined'
+		? cancelAnimationFrame
+		: function(id) { clearTimeout(id); };
+
+var _Browser_requestAnimationFrame =
+	typeof requestAnimationFrame !== 'undefined'
+		? requestAnimationFrame
+		: function(callback) { return setTimeout(callback, 1000 / 60); };
+
+
+function _Browser_makeAnimator(model, draw)
+{
+	draw(model);
+
+	var state = 0;
+
+	function updateIfNeeded()
+	{
+		state = state === 1
+			? 0
+			: ( _Browser_requestAnimationFrame(updateIfNeeded), draw(model), 1 );
+	}
+
+	return function(nextModel, isSync)
+	{
+		model = nextModel;
+
+		isSync
+			? ( draw(model),
+				state === 2 && (state = 1)
+				)
+			: ( state === 0 && _Browser_requestAnimationFrame(updateIfNeeded),
+				state = 2
+				);
+	};
+}
+
+
+
+// APPLICATION
+
+
+function _Browser_application(impl)
+{
+	var onUrlChange = impl.onUrlChange;
+	var onUrlRequest = impl.onUrlRequest;
+	var key = function() { key.a(onUrlChange(_Browser_getUrl())); };
+
+	return _Browser_document({
+		setup: function(sendToApp)
+		{
+			key.a = sendToApp;
+			_Browser_window.addEventListener('popstate', key);
+			_Browser_window.navigator.userAgent.indexOf('Trident') < 0 || _Browser_window.addEventListener('hashchange', key);
+
+			return F2(function(domNode, event)
+			{
+				if (!event.ctrlKey && !event.metaKey && !event.shiftKey && event.button < 1 && !domNode.target && !domNode.hasAttribute('download'))
+				{
+					event.preventDefault();
+					var href = domNode.href;
+					var curr = _Browser_getUrl();
+					var next = $elm$url$Url$fromString(href).a;
+					sendToApp(onUrlRequest(
+						(next
+							&& curr.protocol === next.protocol
+							&& curr.host === next.host
+							&& curr.port_.a === next.port_.a
+						)
+							? $elm$browser$Browser$Internal(next)
+							: $elm$browser$Browser$External(href)
+					));
+				}
+			});
+		},
+		init: function(flags)
+		{
+			return A3(impl.init, flags, _Browser_getUrl(), key);
+		},
+		view: impl.view,
+		update: impl.update,
+		subscriptions: impl.subscriptions
+	});
+}
+
+function _Browser_getUrl()
+{
+	return $elm$url$Url$fromString(_VirtualDom_doc.location.href).a || _Debug_crash(1);
+}
+
+var _Browser_go = F2(function(key, n)
+{
+	return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {
+		n && history.go(n);
+		key();
+	}));
+});
+
+var _Browser_pushUrl = F2(function(key, url)
+{
+	return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {
+		history.pushState({}, '', url);
+		key();
+	}));
+});
+
+var _Browser_replaceUrl = F2(function(key, url)
+{
+	return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {
+		history.replaceState({}, '', url);
+		key();
+	}));
+});
+
+
+
+// GLOBAL EVENTS
+
+
+var _Browser_fakeNode = { addEventListener: function() {}, removeEventListener: function() {} };
+var _Browser_doc = typeof document !== 'undefined' ? document : _Browser_fakeNode;
+var _Browser_window = typeof window !== 'undefined' ? window : _Browser_fakeNode;
+
+var _Browser_on = F3(function(node, eventName, sendToSelf)
+{
+	return _Scheduler_spawn(_Scheduler_binding(function(callback)
+	{
+		function handler(event)	{ _Scheduler_rawSpawn(sendToSelf(event)); }
+		node.addEventListener(eventName, handler, _VirtualDom_passiveSupported && { passive: true });
+		return function() { node.removeEventListener(eventName, handler); };
+	}));
+});
+
+var _Browser_decodeEvent = F2(function(decoder, event)
+{
+	var result = _Json_runHelp(decoder, event);
+	return $elm$core$Result$isOk(result) ? $elm$core$Maybe$Just(result.a) : $elm$core$Maybe$Nothing;
+});
+
+
+
+// PAGE VISIBILITY
+
+
+function _Browser_visibilityInfo()
+{
+	return (typeof _VirtualDom_doc.hidden !== 'undefined')
+		? { hidden: 'hidden', change: 'visibilitychange' }
+		:
+	(typeof _VirtualDom_doc.mozHidden !== 'undefined')
+		? { hidden: 'mozHidden', change: 'mozvisibilitychange' }
+		:
+	(typeof _VirtualDom_doc.msHidden !== 'undefined')
+		? { hidden: 'msHidden', change: 'msvisibilitychange' }
+		:
+	(typeof _VirtualDom_doc.webkitHidden !== 'undefined')
+		? { hidden: 'webkitHidden', change: 'webkitvisibilitychange' }
+		: { hidden: 'hidden', change: 'visibilitychange' };
+}
+
+
+
+// ANIMATION FRAMES
+
+
+function _Browser_rAF()
+{
+	return _Scheduler_binding(function(callback)
+	{
+		var id = _Browser_requestAnimationFrame(function() {
+			callback(_Scheduler_succeed(Date.now()));
+		});
+
+		return function() {
+			_Browser_cancelAnimationFrame(id);
+		};
+	});
+}
+
+
+function _Browser_now()
+{
+	return _Scheduler_binding(function(callback)
+	{
+		callback(_Scheduler_succeed(Date.now()));
+	});
+}
+
+
+
+// DOM STUFF
+
+
+function _Browser_withNode(id, doStuff)
+{
+	return _Scheduler_binding(function(callback)
+	{
+		_Browser_requestAnimationFrame(function() {
+			var node = document.getElementById(id);
+			callback(node
+				? _Scheduler_succeed(doStuff(node))
+				: _Scheduler_fail($elm$browser$Browser$Dom$NotFound(id))
+			);
+		});
+	});
+}
+
+
+function _Browser_withWindow(doStuff)
+{
+	return _Scheduler_binding(function(callback)
+	{
+		_Browser_requestAnimationFrame(function() {
+			callback(_Scheduler_succeed(doStuff()));
+		});
+	});
+}
+
+
+// FOCUS and BLUR
+
+
+var _Browser_call = F2(function(functionName, id)
+{
+	return _Browser_withNode(id, function(node) {
+		node[functionName]();
+		return _Utils_Tuple0;
+	});
+});
+
+
+
+// WINDOW VIEWPORT
+
+
+function _Browser_getViewport()
+{
+	return {
+		scene: _Browser_getScene(),
+		viewport: {
+			x: _Browser_window.pageXOffset,
+			y: _Browser_window.pageYOffset,
+			width: _Browser_doc.documentElement.clientWidth,
+			height: _Browser_doc.documentElement.clientHeight
+		}
+	};
+}
+
+function _Browser_getScene()
+{
+	var body = _Browser_doc.body;
+	var elem = _Browser_doc.documentElement;
+	return {
+		width: Math.max(body.scrollWidth, body.offsetWidth, elem.scrollWidth, elem.offsetWidth, elem.clientWidth),
+		height: Math.max(body.scrollHeight, body.offsetHeight, elem.scrollHeight, elem.offsetHeight, elem.clientHeight)
+	};
+}
+
+var _Browser_setViewport = F2(function(x, y)
+{
+	return _Browser_withWindow(function()
+	{
+		_Browser_window.scroll(x, y);
+		return _Utils_Tuple0;
+	});
+});
+
+
+
+// ELEMENT VIEWPORT
+
+
+function _Browser_getViewportOf(id)
+{
+	return _Browser_withNode(id, function(node)
+	{
+		return {
+			scene: {
+				width: node.scrollWidth,
+				height: node.scrollHeight
+			},
+			viewport: {
+				x: node.scrollLeft,
+				y: node.scrollTop,
+				width: node.clientWidth,
+				height: node.clientHeight
+			}
+		};
+	});
+}
+
+
+var _Browser_setViewportOf = F3(function(id, x, y)
+{
+	return _Browser_withNode(id, function(node)
+	{
+		node.scrollLeft = x;
+		node.scrollTop = y;
+		return _Utils_Tuple0;
+	});
+});
+
+
+
+// ELEMENT
+
+
+function _Browser_getElement(id)
+{
+	return _Browser_withNode(id, function(node)
+	{
+		var rect = node.getBoundingClientRect();
+		var x = _Browser_window.pageXOffset;
+		var y = _Browser_window.pageYOffset;
+		return {
+			scene: _Browser_getScene(),
+			viewport: {
+				x: x,
+				y: y,
+				width: _Browser_doc.documentElement.clientWidth,
+				height: _Browser_doc.documentElement.clientHeight
+			},
+			element: {
+				x: x + rect.left,
+				y: y + rect.top,
+				width: rect.width,
+				height: rect.height
+			}
+		};
+	});
+}
+
+
+
+// LOAD and RELOAD
+
+
+function _Browser_reload(skipCache)
+{
+	return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function(callback)
+	{
+		_VirtualDom_doc.location.reload(skipCache);
+	}));
+}
+
+function _Browser_load(url)
+{
+	return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function(callback)
+	{
+		try
+		{
+			_Browser_window.location = url;
+		}
+		catch(err)
+		{
+			// Only Firefox can throw a NS_ERROR_MALFORMED_URI exception here.
+			// Other browsers reload the page, so let's be consistent about that.
+			_VirtualDom_doc.location.reload(false);
+		}
+	}));
+}
+
+
+
+// SEND REQUEST
+
+var _Http_toTask = F3(function(router, toTask, request)
+{
+	return _Scheduler_binding(function(callback)
+	{
+		function done(response) {
+			callback(toTask(request.expect.a(response)));
+		}
+
+		var xhr = new XMLHttpRequest();
+		xhr.addEventListener('error', function() { done($elm$http$Http$NetworkError_); });
+		xhr.addEventListener('timeout', function() { done($elm$http$Http$Timeout_); });
+		xhr.addEventListener('load', function() { done(_Http_toResponse(request.expect.b, xhr)); });
+		$elm$core$Maybe$isJust(request.tracker) && _Http_track(router, xhr, request.tracker.a);
+
+		try {
+			xhr.open(request.method, request.url, true);
+		} catch (e) {
+			return done($elm$http$Http$BadUrl_(request.url));
+		}
+
+		_Http_configureRequest(xhr, request);
+
+		request.body.a && xhr.setRequestHeader('Content-Type', request.body.a);
+		xhr.send(request.body.b);
+
+		return function() { xhr.c = true; xhr.abort(); };
+	});
+});
+
+
+// CONFIGURE
+
+function _Http_configureRequest(xhr, request)
+{
+	for (var headers = request.headers; headers.b; headers = headers.b) // WHILE_CONS
+	{
+		xhr.setRequestHeader(headers.a.a, headers.a.b);
+	}
+	xhr.timeout = request.timeout.a || 0;
+	xhr.responseType = request.expect.d;
+	xhr.withCredentials = request.allowCookiesFromOtherDomains;
+}
+
+
+// RESPONSES
+
+function _Http_toResponse(toBody, xhr)
+{
+	return A2(
+		200 <= xhr.status && xhr.status < 300 ? $elm$http$Http$GoodStatus_ : $elm$http$Http$BadStatus_,
+		_Http_toMetadata(xhr),
+		toBody(xhr.response)
+	);
+}
+
+
+// METADATA
+
+function _Http_toMetadata(xhr)
+{
+	return {
+		url: xhr.responseURL,
+		statusCode: xhr.status,
+		statusText: xhr.statusText,
+		headers: _Http_parseHeaders(xhr.getAllResponseHeaders())
+	};
+}
+
+
+// HEADERS
+
+function _Http_parseHeaders(rawHeaders)
+{
+	if (!rawHeaders)
+	{
+		return $elm$core$Dict$empty;
+	}
+
+	var headers = $elm$core$Dict$empty;
+	var headerPairs = rawHeaders.split('\r\n');
+	for (var i = headerPairs.length; i--; )
+	{
+		var headerPair = headerPairs[i];
+		var index = headerPair.indexOf(': ');
+		if (index > 0)
+		{
+			var key = headerPair.substring(0, index);
+			var value = headerPair.substring(index + 2);
+
+			headers = A3($elm$core$Dict$update, key, function(oldValue) {
+				return $elm$core$Maybe$Just($elm$core$Maybe$isJust(oldValue)
+					? value + ', ' + oldValue.a
+					: value
+				);
+			}, headers);
+		}
+	}
+	return headers;
+}
+
+
+// EXPECT
+
+var _Http_expect = F3(function(type, toBody, toValue)
+{
+	return {
+		$: 0,
+		d: type,
+		b: toBody,
+		a: toValue
+	};
+});
+
+var _Http_mapExpect = F2(function(func, expect)
+{
+	return {
+		$: 0,
+		d: expect.d,
+		b: expect.b,
+		a: function(x) { return func(expect.a(x)); }
+	};
+});
+
+function _Http_toDataView(arrayBuffer)
+{
+	return new DataView(arrayBuffer);
+}
+
+
+// BODY and PARTS
+
+var _Http_emptyBody = { $: 0 };
+var _Http_pair = F2(function(a, b) { return { $: 0, a: a, b: b }; });
+
+function _Http_toFormData(parts)
+{
+	for (var formData = new FormData(); parts.b; parts = parts.b) // WHILE_CONS
+	{
+		var part = parts.a;
+		formData.append(part.a, part.b);
+	}
+	return formData;
+}
+
+var _Http_bytesToBlob = F2(function(mime, bytes)
+{
+	return new Blob([bytes], { type: mime });
+});
+
+
+// PROGRESS
+
+function _Http_track(router, xhr, tracker)
+{
+	// TODO check out lengthComputable on loadstart event
+
+	xhr.upload.addEventListener('progress', function(event) {
+		if (xhr.c) { return; }
+		_Scheduler_rawSpawn(A2($elm$core$Platform$sendToSelf, router, _Utils_Tuple2(tracker, $elm$http$Http$Sending({
+			sent: event.loaded,
+			size: event.total
+		}))));
+	});
+	xhr.addEventListener('progress', function(event) {
+		if (xhr.c) { return; }
+		_Scheduler_rawSpawn(A2($elm$core$Platform$sendToSelf, router, _Utils_Tuple2(tracker, $elm$http$Http$Receiving({
+			received: event.loaded,
+			size: event.lengthComputable ? $elm$core$Maybe$Just(event.total) : $elm$core$Maybe$Nothing
+		}))));
+	});
+}
+
+// CREATE
+
+var _Regex_never = /.^/;
+
+var _Regex_fromStringWith = F2(function(options, string)
+{
+	var flags = 'g';
+	if (options.multiline) { flags += 'm'; }
+	if (options.caseInsensitive) { flags += 'i'; }
+
+	try
+	{
+		return $elm$core$Maybe$Just(new RegExp(string, flags));
+	}
+	catch(error)
+	{
+		return $elm$core$Maybe$Nothing;
+	}
+});
+
+
+// USE
+
+var _Regex_contains = F2(function(re, string)
+{
+	return string.match(re) !== null;
+});
+
+
+var _Regex_findAtMost = F3(function(n, re, str)
+{
+	var out = [];
+	var number = 0;
+	var string = str;
+	var lastIndex = re.lastIndex;
+	var prevLastIndex = -1;
+	var result;
+	while (number++ < n && (result = re.exec(string)))
+	{
+		if (prevLastIndex == re.lastIndex) break;
+		var i = result.length - 1;
+		var subs = new Array(i);
+		while (i > 0)
+		{
+			var submatch = result[i];
+			subs[--i] = submatch
+				? $elm$core$Maybe$Just(submatch)
+				: $elm$core$Maybe$Nothing;
+		}
+		out.push(A4($elm$regex$Regex$Match, result[0], result.index, number, _List_fromArray(subs)));
+		prevLastIndex = re.lastIndex;
+	}
+	re.lastIndex = lastIndex;
+	return _List_fromArray(out);
+});
+
+
+var _Regex_replaceAtMost = F4(function(n, re, replacer, string)
+{
+	var count = 0;
+	function jsReplacer(match)
+	{
+		if (count++ >= n)
+		{
+			return match;
+		}
+		var i = arguments.length - 3;
+		var submatches = new Array(i);
+		while (i > 0)
+		{
+			var submatch = arguments[i];
+			submatches[--i] = submatch
+				? $elm$core$Maybe$Just(submatch)
+				: $elm$core$Maybe$Nothing;
+		}
+		return replacer(A4($elm$regex$Regex$Match, match, arguments[arguments.length - 2], count, _List_fromArray(submatches)));
+	}
+	return string.replace(re, jsReplacer);
+});
+
+var _Regex_splitAtMost = F3(function(n, re, str)
+{
+	var string = str;
+	var out = [];
+	var start = re.lastIndex;
+	var restoreLastIndex = re.lastIndex;
+	while (n--)
+	{
+		var result = re.exec(string);
+		if (!result) break;
+		out.push(string.slice(start, result.index));
+		start = re.lastIndex;
+	}
+	out.push(string.slice(start));
+	re.lastIndex = restoreLastIndex;
+	return _List_fromArray(out);
+});
+
+var _Regex_infinity = Infinity;
+
+
+
+var _Bitwise_and = F2(function(a, b)
+{
+	return a & b;
+});
+
+var _Bitwise_or = F2(function(a, b)
+{
+	return a | b;
+});
+
+var _Bitwise_xor = F2(function(a, b)
+{
+	return a ^ b;
+});
+
+function _Bitwise_complement(a)
+{
+	return ~a;
+};
+
+var _Bitwise_shiftLeftBy = F2(function(offset, a)
+{
+	return a << offset;
+});
+
+var _Bitwise_shiftRightBy = F2(function(offset, a)
+{
+	return a >> offset;
+});
+
+var _Bitwise_shiftRightZfBy = F2(function(offset, a)
+{
+	return a >>> offset;
+});
+var $elm$core$Basics$EQ = {$: 'EQ'};
+var $elm$core$Basics$GT = {$: 'GT'};
+var $elm$core$Basics$LT = {$: 'LT'};
+var $elm$core$List$cons = _List_cons;
+var $elm$core$Dict$foldr = F3(
+	function (func, acc, t) {
+		foldr:
+		while (true) {
+			if (t.$ === 'RBEmpty_elm_builtin') {
+				return acc;
+			} else {
+				var key = t.b;
+				var value = t.c;
+				var left = t.d;
+				var right = t.e;
+				var $temp$func = func,
+					$temp$acc = A3(
+					func,
+					key,
+					value,
+					A3($elm$core$Dict$foldr, func, acc, right)),
+					$temp$t = left;
+				func = $temp$func;
+				acc = $temp$acc;
+				t = $temp$t;
+				continue foldr;
+			}
+		}
+	});
+var $elm$core$Dict$toList = function (dict) {
+	return A3(
+		$elm$core$Dict$foldr,
+		F3(
+			function (key, value, list) {
+				return A2(
+					$elm$core$List$cons,
+					_Utils_Tuple2(key, value),
+					list);
+			}),
+		_List_Nil,
+		dict);
+};
+var $elm$core$Dict$keys = function (dict) {
+	return A3(
+		$elm$core$Dict$foldr,
+		F3(
+			function (key, value, keyList) {
+				return A2($elm$core$List$cons, key, keyList);
+			}),
+		_List_Nil,
+		dict);
+};
+var $elm$core$Set$toList = function (_v0) {
+	var dict = _v0.a;
+	return $elm$core$Dict$keys(dict);
+};
+var $elm$core$Elm$JsArray$foldr = _JsArray_foldr;
+var $elm$core$Array$foldr = F3(
+	function (func, baseCase, _v0) {
+		var tree = _v0.c;
+		var tail = _v0.d;
+		var helper = F2(
+			function (node, acc) {
+				if (node.$ === 'SubTree') {
+					var subTree = node.a;
+					return A3($elm$core$Elm$JsArray$foldr, helper, acc, subTree);
+				} else {
+					var values = node.a;
+					return A3($elm$core$Elm$JsArray$foldr, func, acc, values);
+				}
+			});
+		return A3(
+			$elm$core$Elm$JsArray$foldr,
+			helper,
+			A3($elm$core$Elm$JsArray$foldr, func, baseCase, tail),
+			tree);
+	});
+var $elm$core$Array$toList = function (array) {
+	return A3($elm$core$Array$foldr, $elm$core$List$cons, _List_Nil, array);
+};
+var $elm$core$Result$Err = function (a) {
+	return {$: 'Err', a: a};
+};
+var $elm$json$Json$Decode$Failure = F2(
+	function (a, b) {
+		return {$: 'Failure', a: a, b: b};
+	});
+var $elm$json$Json$Decode$Field = F2(
+	function (a, b) {
+		return {$: 'Field', a: a, b: b};
+	});
+var $elm$json$Json$Decode$Index = F2(
+	function (a, b) {
+		return {$: 'Index', a: a, b: b};
+	});
+var $elm$core$Result$Ok = function (a) {
+	return {$: 'Ok', a: a};
+};
+var $elm$json$Json$Decode$OneOf = function (a) {
+	return {$: 'OneOf', a: a};
+};
+var $elm$core$Basics$False = {$: 'False'};
+var $elm$core$Basics$add = _Basics_add;
+var $elm$core$Maybe$Just = function (a) {
+	return {$: 'Just', a: a};
+};
+var $elm$core$Maybe$Nothing = {$: 'Nothing'};
+var $elm$core$String$all = _String_all;
+var $elm$core$Basics$and = _Basics_and;
+var $elm$core$Basics$append = _Utils_append;
+var $elm$json$Json$Encode$encode = _Json_encode;
+var $elm$core$String$fromInt = _String_fromNumber;
+var $elm$core$String$join = F2(
+	function (sep, chunks) {
+		return A2(
+			_String_join,
+			sep,
+			_List_toArray(chunks));
+	});
+var $elm$core$String$split = F2(
+	function (sep, string) {
+		return _List_fromArray(
+			A2(_String_split, sep, string));
+	});
+var $elm$json$Json$Decode$indent = function (str) {
+	return A2(
+		$elm$core$String$join,
+		'\n    ',
+		A2($elm$core$String$split, '\n', str));
+};
+var $elm$core$List$foldl = F3(
+	function (func, acc, list) {
+		foldl:
+		while (true) {
+			if (!list.b) {
+				return acc;
+			} else {
+				var x = list.a;
+				var xs = list.b;
+				var $temp$func = func,
+					$temp$acc = A2(func, x, acc),
+					$temp$list = xs;
+				func = $temp$func;
+				acc = $temp$acc;
+				list = $temp$list;
+				continue foldl;
+			}
+		}
+	});
+var $elm$core$List$length = function (xs) {
+	return A3(
+		$elm$core$List$foldl,
+		F2(
+			function (_v0, i) {
+				return i + 1;
+			}),
+		0,
+		xs);
+};
+var $elm$core$List$map2 = _List_map2;
+var $elm$core$Basics$le = _Utils_le;
+var $elm$core$Basics$sub = _Basics_sub;
+var $elm$core$List$rangeHelp = F3(
+	function (lo, hi, list) {
+		rangeHelp:
+		while (true) {
+			if (_Utils_cmp(lo, hi) < 1) {
+				var $temp$lo = lo,
+					$temp$hi = hi - 1,
+					$temp$list = A2($elm$core$List$cons, hi, list);
+				lo = $temp$lo;
+				hi = $temp$hi;
+				list = $temp$list;
+				continue rangeHelp;
+			} else {
+				return list;
+			}
+		}
+	});
+var $elm$core$List$range = F2(
+	function (lo, hi) {
+		return A3($elm$core$List$rangeHelp, lo, hi, _List_Nil);
+	});
+var $elm$core$List$indexedMap = F2(
+	function (f, xs) {
+		return A3(
+			$elm$core$List$map2,
+			f,
+			A2(
+				$elm$core$List$range,
+				0,
+				$elm$core$List$length(xs) - 1),
+			xs);
+	});
+var $elm$core$Char$toCode = _Char_toCode;
+var $elm$core$Char$isLower = function (_char) {
+	var code = $elm$core$Char$toCode(_char);
+	return (97 <= code) && (code <= 122);
+};
+var $elm$core$Char$isUpper = function (_char) {
+	var code = $elm$core$Char$toCode(_char);
+	return (code <= 90) && (65 <= code);
+};
+var $elm$core$Basics$or = _Basics_or;
+var $elm$core$Char$isAlpha = function (_char) {
+	return $elm$core$Char$isLower(_char) || $elm$core$Char$isUpper(_char);
+};
+var $elm$core$Char$isDigit = function (_char) {
+	var code = $elm$core$Char$toCode(_char);
+	return (code <= 57) && (48 <= code);
+};
+var $elm$core$Char$isAlphaNum = function (_char) {
+	return $elm$core$Char$isLower(_char) || ($elm$core$Char$isUpper(_char) || $elm$core$Char$isDigit(_char));
+};
+var $elm$core$List$reverse = function (list) {
+	return A3($elm$core$List$foldl, $elm$core$List$cons, _List_Nil, list);
+};
+var $elm$core$String$uncons = _String_uncons;
+var $elm$json$Json$Decode$errorOneOf = F2(
+	function (i, error) {
+		return '\n\n(' + ($elm$core$String$fromInt(i + 1) + (') ' + $elm$json$Json$Decode$indent(
+			$elm$json$Json$Decode$errorToString(error))));
+	});
+var $elm$json$Json$Decode$errorToString = function (error) {
+	return A2($elm$json$Json$Decode$errorToStringHelp, error, _List_Nil);
+};
+var $elm$json$Json$Decode$errorToStringHelp = F2(
+	function (error, context) {
+		errorToStringHelp:
+		while (true) {
+			switch (error.$) {
+				case 'Field':
+					var f = error.a;
+					var err = error.b;
+					var isSimple = function () {
+						var _v1 = $elm$core$String$uncons(f);
+						if (_v1.$ === 'Nothing') {
+							return false;
+						} else {
+							var _v2 = _v1.a;
+							var _char = _v2.a;
+							var rest = _v2.b;
+							return $elm$core$Char$isAlpha(_char) && A2($elm$core$String$all, $elm$core$Char$isAlphaNum, rest);
+						}
+					}();
+					var fieldName = isSimple ? ('.' + f) : ('[\'' + (f + '\']'));
+					var $temp$error = err,
+						$temp$context = A2($elm$core$List$cons, fieldName, context);
+					error = $temp$error;
+					context = $temp$context;
+					continue errorToStringHelp;
+				case 'Index':
+					var i = error.a;
+					var err = error.b;
+					var indexName = '[' + ($elm$core$String$fromInt(i) + ']');
+					var $temp$error = err,
+						$temp$context = A2($elm$core$List$cons, indexName, context);
+					error = $temp$error;
+					context = $temp$context;
+					continue errorToStringHelp;
+				case 'OneOf':
+					var errors = error.a;
+					if (!errors.b) {
+						return 'Ran into a Json.Decode.oneOf with no possibilities' + function () {
+							if (!context.b) {
+								return '!';
+							} else {
+								return ' at json' + A2(
+									$elm$core$String$join,
+									'',
+									$elm$core$List$reverse(context));
+							}
+						}();
+					} else {
+						if (!errors.b.b) {
+							var err = errors.a;
+							var $temp$error = err,
+								$temp$context = context;
+							error = $temp$error;
+							context = $temp$context;
+							continue errorToStringHelp;
+						} else {
+							var starter = function () {
+								if (!context.b) {
+									return 'Json.Decode.oneOf';
+								} else {
+									return 'The Json.Decode.oneOf at json' + A2(
+										$elm$core$String$join,
+										'',
+										$elm$core$List$reverse(context));
+								}
+							}();
+							var introduction = starter + (' failed in the following ' + ($elm$core$String$fromInt(
+								$elm$core$List$length(errors)) + ' ways:'));
+							return A2(
+								$elm$core$String$join,
+								'\n\n',
+								A2(
+									$elm$core$List$cons,
+									introduction,
+									A2($elm$core$List$indexedMap, $elm$json$Json$Decode$errorOneOf, errors)));
+						}
+					}
+				default:
+					var msg = error.a;
+					var json = error.b;
+					var introduction = function () {
+						if (!context.b) {
+							return 'Problem with the given value:\n\n';
+						} else {
+							return 'Problem with the value at json' + (A2(
+								$elm$core$String$join,
+								'',
+								$elm$core$List$reverse(context)) + ':\n\n    ');
+						}
+					}();
+					return introduction + ($elm$json$Json$Decode$indent(
+						A2($elm$json$Json$Encode$encode, 4, json)) + ('\n\n' + msg));
+			}
+		}
+	});
+var $elm$core$Array$branchFactor = 32;
+var $elm$core$Array$Array_elm_builtin = F4(
+	function (a, b, c, d) {
+		return {$: 'Array_elm_builtin', a: a, b: b, c: c, d: d};
+	});
+var $elm$core$Elm$JsArray$empty = _JsArray_empty;
+var $elm$core$Basics$ceiling = _Basics_ceiling;
+var $elm$core$Basics$fdiv = _Basics_fdiv;
+var $elm$core$Basics$logBase = F2(
+	function (base, number) {
+		return _Basics_log(number) / _Basics_log(base);
+	});
+var $elm$core$Basics$toFloat = _Basics_toFloat;
+var $elm$core$Array$shiftStep = $elm$core$Basics$ceiling(
+	A2($elm$core$Basics$logBase, 2, $elm$core$Array$branchFactor));
+var $elm$core$Array$empty = A4($elm$core$Array$Array_elm_builtin, 0, $elm$core$Array$shiftStep, $elm$core$Elm$JsArray$empty, $elm$core$Elm$JsArray$empty);
+var $elm$core$Elm$JsArray$initialize = _JsArray_initialize;
+var $elm$core$Array$Leaf = function (a) {
+	return {$: 'Leaf', a: a};
+};
+var $elm$core$Basics$apL = F2(
+	function (f, x) {
+		return f(x);
+	});
+var $elm$core$Basics$apR = F2(
+	function (x, f) {
+		return f(x);
+	});
+var $elm$core$Basics$eq = _Utils_equal;
+var $elm$core$Basics$floor = _Basics_floor;
+var $elm$core$Elm$JsArray$length = _JsArray_length;
+var $elm$core$Basics$gt = _Utils_gt;
+var $elm$core$Basics$max = F2(
+	function (x, y) {
+		return (_Utils_cmp(x, y) > 0) ? x : y;
+	});
+var $elm$core$Basics$mul = _Basics_mul;
+var $elm$core$Array$SubTree = function (a) {
+	return {$: 'SubTree', a: a};
+};
+var $elm$core$Elm$JsArray$initializeFromList = _JsArray_initializeFromList;
+var $elm$core$Array$compressNodes = F2(
+	function (nodes, acc) {
+		compressNodes:
+		while (true) {
+			var _v0 = A2($elm$core$Elm$JsArray$initializeFromList, $elm$core$Array$branchFactor, nodes);
+			var node = _v0.a;
+			var remainingNodes = _v0.b;
+			var newAcc = A2(
+				$elm$core$List$cons,
+				$elm$core$Array$SubTree(node),
+				acc);
+			if (!remainingNodes.b) {
+				return $elm$core$List$reverse(newAcc);
+			} else {
+				var $temp$nodes = remainingNodes,
+					$temp$acc = newAcc;
+				nodes = $temp$nodes;
+				acc = $temp$acc;
+				continue compressNodes;
+			}
+		}
+	});
+var $elm$core$Tuple$first = function (_v0) {
+	var x = _v0.a;
+	return x;
+};
+var $elm$core$Array$treeFromBuilder = F2(
+	function (nodeList, nodeListSize) {
+		treeFromBuilder:
+		while (true) {
+			var newNodeSize = $elm$core$Basics$ceiling(nodeListSize / $elm$core$Array$branchFactor);
+			if (newNodeSize === 1) {
+				return A2($elm$core$Elm$JsArray$initializeFromList, $elm$core$Array$branchFactor, nodeList).a;
+			} else {
+				var $temp$nodeList = A2($elm$core$Array$compressNodes, nodeList, _List_Nil),
+					$temp$nodeListSize = newNodeSize;
+				nodeList = $temp$nodeList;
+				nodeListSize = $temp$nodeListSize;
+				continue treeFromBuilder;
+			}
+		}
+	});
+var $elm$core$Array$builderToArray = F2(
+	function (reverseNodeList, builder) {
+		if (!builder.nodeListSize) {
+			return A4(
+				$elm$core$Array$Array_elm_builtin,
+				$elm$core$Elm$JsArray$length(builder.tail),
+				$elm$core$Array$shiftStep,
+				$elm$core$Elm$JsArray$empty,
+				builder.tail);
+		} else {
+			var treeLen = builder.nodeListSize * $elm$core$Array$branchFactor;
+			var depth = $elm$core$Basics$floor(
+				A2($elm$core$Basics$logBase, $elm$core$Array$branchFactor, treeLen - 1));
+			var correctNodeList = reverseNodeList ? $elm$core$List$reverse(builder.nodeList) : builder.nodeList;
+			var tree = A2($elm$core$Array$treeFromBuilder, correctNodeList, builder.nodeListSize);
+			return A4(
+				$elm$core$Array$Array_elm_builtin,
+				$elm$core$Elm$JsArray$length(builder.tail) + treeLen,
+				A2($elm$core$Basics$max, 5, depth * $elm$core$Array$shiftStep),
+				tree,
+				builder.tail);
+		}
+	});
+var $elm$core$Basics$idiv = _Basics_idiv;
+var $elm$core$Basics$lt = _Utils_lt;
+var $elm$core$Array$initializeHelp = F5(
+	function (fn, fromIndex, len, nodeList, tail) {
+		initializeHelp:
+		while (true) {
+			if (fromIndex < 0) {
+				return A2(
+					$elm$core$Array$builderToArray,
+					false,
+					{nodeList: nodeList, nodeListSize: (len / $elm$core$Array$branchFactor) | 0, tail: tail});
+			} else {
+				var leaf = $elm$core$Array$Leaf(
+					A3($elm$core$Elm$JsArray$initialize, $elm$core$Array$branchFactor, fromIndex, fn));
+				var $temp$fn = fn,
+					$temp$fromIndex = fromIndex - $elm$core$Array$branchFactor,
+					$temp$len = len,
+					$temp$nodeList = A2($elm$core$List$cons, leaf, nodeList),
+					$temp$tail = tail;
+				fn = $temp$fn;
+				fromIndex = $temp$fromIndex;
+				len = $temp$len;
+				nodeList = $temp$nodeList;
+				tail = $temp$tail;
+				continue initializeHelp;
+			}
+		}
+	});
+var $elm$core$Basics$remainderBy = _Basics_remainderBy;
+var $elm$core$Array$initialize = F2(
+	function (len, fn) {
+		if (len <= 0) {
+			return $elm$core$Array$empty;
+		} else {
+			var tailLen = len % $elm$core$Array$branchFactor;
+			var tail = A3($elm$core$Elm$JsArray$initialize, tailLen, len - tailLen, fn);
+			var initialFromIndex = (len - tailLen) - $elm$core$Array$branchFactor;
+			return A5($elm$core$Array$initializeHelp, fn, initialFromIndex, len, _List_Nil, tail);
+		}
+	});
+var $elm$core$Basics$True = {$: 'True'};
+var $elm$core$Result$isOk = function (result) {
+	if (result.$ === 'Ok') {
+		return true;
+	} else {
+		return false;
+	}
+};
+var $elm$json$Json$Decode$map = _Json_map1;
+var $elm$json$Json$Decode$map2 = _Json_map2;
+var $elm$json$Json$Decode$succeed = _Json_succeed;
+var $elm$virtual_dom$VirtualDom$toHandlerInt = function (handler) {
+	switch (handler.$) {
+		case 'Normal':
+			return 0;
+		case 'MayStopPropagation':
+			return 1;
+		case 'MayPreventDefault':
+			return 2;
+		default:
+			return 3;
+	}
+};
+var $elm$browser$Browser$External = function (a) {
+	return {$: 'External', a: a};
+};
+var $elm$browser$Browser$Internal = function (a) {
+	return {$: 'Internal', a: a};
+};
+var $elm$core$Basics$identity = function (x) {
+	return x;
+};
+var $elm$browser$Browser$Dom$NotFound = function (a) {
+	return {$: 'NotFound', a: a};
+};
+var $elm$url$Url$Http = {$: 'Http'};
+var $elm$url$Url$Https = {$: 'Https'};
+var $elm$url$Url$Url = F6(
+	function (protocol, host, port_, path, query, fragment) {
+		return {fragment: fragment, host: host, path: path, port_: port_, protocol: protocol, query: query};
+	});
+var $elm$core$String$contains = _String_contains;
+var $elm$core$String$length = _String_length;
+var $elm$core$String$slice = _String_slice;
+var $elm$core$String$dropLeft = F2(
+	function (n, string) {
+		return (n < 1) ? string : A3(
+			$elm$core$String$slice,
+			n,
+			$elm$core$String$length(string),
+			string);
+	});
+var $elm$core$String$indexes = _String_indexes;
+var $elm$core$String$isEmpty = function (string) {
+	return string === '';
+};
+var $elm$core$String$left = F2(
+	function (n, string) {
+		return (n < 1) ? '' : A3($elm$core$String$slice, 0, n, string);
+	});
+var $elm$core$String$toInt = _String_toInt;
+var $elm$url$Url$chompBeforePath = F5(
+	function (protocol, path, params, frag, str) {
+		if ($elm$core$String$isEmpty(str) || A2($elm$core$String$contains, '@', str)) {
+			return $elm$core$Maybe$Nothing;
+		} else {
+			var _v0 = A2($elm$core$String$indexes, ':', str);
+			if (!_v0.b) {
+				return $elm$core$Maybe$Just(
+					A6($elm$url$Url$Url, protocol, str, $elm$core$Maybe$Nothing, path, params, frag));
+			} else {
+				if (!_v0.b.b) {
+					var i = _v0.a;
+					var _v1 = $elm$core$String$toInt(
+						A2($elm$core$String$dropLeft, i + 1, str));
+					if (_v1.$ === 'Nothing') {
+						return $elm$core$Maybe$Nothing;
+					} else {
+						var port_ = _v1;
+						return $elm$core$Maybe$Just(
+							A6(
+								$elm$url$Url$Url,
+								protocol,
+								A2($elm$core$String$left, i, str),
+								port_,
+								path,
+								params,
+								frag));
+					}
+				} else {
+					return $elm$core$Maybe$Nothing;
+				}
+			}
+		}
+	});
+var $elm$url$Url$chompBeforeQuery = F4(
+	function (protocol, params, frag, str) {
+		if ($elm$core$String$isEmpty(str)) {
+			return $elm$core$Maybe$Nothing;
+		} else {
+			var _v0 = A2($elm$core$String$indexes, '/', str);
+			if (!_v0.b) {
+				return A5($elm$url$Url$chompBeforePath, protocol, '/', params, frag, str);
+			} else {
+				var i = _v0.a;
+				return A5(
+					$elm$url$Url$chompBeforePath,
+					protocol,
+					A2($elm$core$String$dropLeft, i, str),
+					params,
+					frag,
+					A2($elm$core$String$left, i, str));
+			}
+		}
+	});
+var $elm$url$Url$chompBeforeFragment = F3(
+	function (protocol, frag, str) {
+		if ($elm$core$String$isEmpty(str)) {
+			return $elm$core$Maybe$Nothing;
+		} else {
+			var _v0 = A2($elm$core$String$indexes, '?', str);
+			if (!_v0.b) {
+				return A4($elm$url$Url$chompBeforeQuery, protocol, $elm$core$Maybe$Nothing, frag, str);
+			} else {
+				var i = _v0.a;
+				return A4(
+					$elm$url$Url$chompBeforeQuery,
+					protocol,
+					$elm$core$Maybe$Just(
+						A2($elm$core$String$dropLeft, i + 1, str)),
+					frag,
+					A2($elm$core$String$left, i, str));
+			}
+		}
+	});
+var $elm$url$Url$chompAfterProtocol = F2(
+	function (protocol, str) {
+		if ($elm$core$String$isEmpty(str)) {
+			return $elm$core$Maybe$Nothing;
+		} else {
+			var _v0 = A2($elm$core$String$indexes, '#', str);
+			if (!_v0.b) {
+				return A3($elm$url$Url$chompBeforeFragment, protocol, $elm$core$Maybe$Nothing, str);
+			} else {
+				var i = _v0.a;
+				return A3(
+					$elm$url$Url$chompBeforeFragment,
+					protocol,
+					$elm$core$Maybe$Just(
+						A2($elm$core$String$dropLeft, i + 1, str)),
+					A2($elm$core$String$left, i, str));
+			}
+		}
+	});
+var $elm$core$String$startsWith = _String_startsWith;
+var $elm$url$Url$fromString = function (str) {
+	return A2($elm$core$String$startsWith, 'http://', str) ? A2(
+		$elm$url$Url$chompAfterProtocol,
+		$elm$url$Url$Http,
+		A2($elm$core$String$dropLeft, 7, str)) : (A2($elm$core$String$startsWith, 'https://', str) ? A2(
+		$elm$url$Url$chompAfterProtocol,
+		$elm$url$Url$Https,
+		A2($elm$core$String$dropLeft, 8, str)) : $elm$core$Maybe$Nothing);
+};
+var $elm$core$Basics$never = function (_v0) {
+	never:
+	while (true) {
+		var nvr = _v0.a;
+		var $temp$_v0 = nvr;
+		_v0 = $temp$_v0;
+		continue never;
+	}
+};
+var $elm$core$Task$Perform = function (a) {
+	return {$: 'Perform', a: a};
+};
+var $elm$core$Task$succeed = _Scheduler_succeed;
+var $elm$core$Task$init = $elm$core$Task$succeed(_Utils_Tuple0);
+var $elm$core$List$foldrHelper = F4(
+	function (fn, acc, ctr, ls) {
+		if (!ls.b) {
+			return acc;
+		} else {
+			var a = ls.a;
+			var r1 = ls.b;
+			if (!r1.b) {
+				return A2(fn, a, acc);
+			} else {
+				var b = r1.a;
+				var r2 = r1.b;
+				if (!r2.b) {
+					return A2(
+						fn,
+						a,
+						A2(fn, b, acc));
+				} else {
+					var c = r2.a;
+					var r3 = r2.b;
+					if (!r3.b) {
+						return A2(
+							fn,
+							a,
+							A2(
+								fn,
+								b,
+								A2(fn, c, acc)));
+					} else {
+						var d = r3.a;
+						var r4 = r3.b;
+						var res = (ctr > 500) ? A3(
+							$elm$core$List$foldl,
+							fn,
+							acc,
+							$elm$core$List$reverse(r4)) : A4($elm$core$List$foldrHelper, fn, acc, ctr + 1, r4);
+						return A2(
+							fn,
+							a,
+							A2(
+								fn,
+								b,
+								A2(
+									fn,
+									c,
+									A2(fn, d, res))));
+					}
+				}
+			}
+		}
+	});
+var $elm$core$List$foldr = F3(
+	function (fn, acc, ls) {
+		return A4($elm$core$List$foldrHelper, fn, acc, 0, ls);
+	});
+var $elm$core$List$map = F2(
+	function (f, xs) {
+		return A3(
+			$elm$core$List$foldr,
+			F2(
+				function (x, acc) {
+					return A2(
+						$elm$core$List$cons,
+						f(x),
+						acc);
+				}),
+			_List_Nil,
+			xs);
+	});
+var $elm$core$Task$andThen = _Scheduler_andThen;
+var $elm$core$Task$map = F2(
+	function (func, taskA) {
+		return A2(
+			$elm$core$Task$andThen,
+			function (a) {
+				return $elm$core$Task$succeed(
+					func(a));
+			},
+			taskA);
+	});
+var $elm$core$Task$map2 = F3(
+	function (func, taskA, taskB) {
+		return A2(
+			$elm$core$Task$andThen,
+			function (a) {
+				return A2(
+					$elm$core$Task$andThen,
+					function (b) {
+						return $elm$core$Task$succeed(
+							A2(func, a, b));
+					},
+					taskB);
+			},
+			taskA);
+	});
+var $elm$core$Task$sequence = function (tasks) {
+	return A3(
+		$elm$core$List$foldr,
+		$elm$core$Task$map2($elm$core$List$cons),
+		$elm$core$Task$succeed(_List_Nil),
+		tasks);
+};
+var $elm$core$Platform$sendToApp = _Platform_sendToApp;
+var $elm$core$Task$spawnCmd = F2(
+	function (router, _v0) {
+		var task = _v0.a;
+		return _Scheduler_spawn(
+			A2(
+				$elm$core$Task$andThen,
+				$elm$core$Platform$sendToApp(router),
+				task));
+	});
+var $elm$core$Task$onEffects = F3(
+	function (router, commands, state) {
+		return A2(
+			$elm$core$Task$map,
+			function (_v0) {
+				return _Utils_Tuple0;
+			},
+			$elm$core$Task$sequence(
+				A2(
+					$elm$core$List$map,
+					$elm$core$Task$spawnCmd(router),
+					commands)));
+	});
+var $elm$core$Task$onSelfMsg = F3(
+	function (_v0, _v1, _v2) {
+		return $elm$core$Task$succeed(_Utils_Tuple0);
+	});
+var $elm$core$Task$cmdMap = F2(
+	function (tagger, _v0) {
+		var task = _v0.a;
+		return $elm$core$Task$Perform(
+			A2($elm$core$Task$map, tagger, task));
+	});
+_Platform_effectManagers['Task'] = _Platform_createManager($elm$core$Task$init, $elm$core$Task$onEffects, $elm$core$Task$onSelfMsg, $elm$core$Task$cmdMap);
+var $elm$core$Task$command = _Platform_leaf('Task');
+var $elm$core$Task$perform = F2(
+	function (toMessage, task) {
+		return $elm$core$Task$command(
+			$elm$core$Task$Perform(
+				A2($elm$core$Task$map, toMessage, task)));
+	});
+var $elm$browser$Browser$element = _Browser_element;
+var $author$project$Morphir$Web$DevelopMain$WaitingForResponse = {$: 'WaitingForResponse'};
+var $author$project$Morphir$Web$DevelopMain$MakeResult = function (a) {
+	return {$: 'MakeResult', a: a};
+};
+var $elm$json$Json$Decode$andThen = _Json_andThen;
+var $author$project$Morphir$IR$Distribution$Library = F3(
+	function (a, b, c) {
+		return {$: 'Library', a: a, b: b, c: c};
+	});
+var $author$project$Morphir$IR$Package$Definition = function (modules) {
+	return {modules: modules};
+};
+var $author$project$Morphir$IR$AccessControlled$AccessControlled = F2(
+	function (access, value) {
+		return {access: access, value: value};
+	});
+var $author$project$Morphir$IR$AccessControlled$Private = {$: 'Private'};
+var $author$project$Morphir$IR$AccessControlled$Public = {$: 'Public'};
+var $elm$json$Json$Decode$fail = _Json_fail;
+var $elm$json$Json$Decode$index = _Json_decodeIndex;
+var $elm$json$Json$Decode$string = _Json_decodeString;
+var $author$project$Morphir$IR$AccessControlled$Codec$decodeAccessControlled = function (decodeValue) {
+	return A2(
+		$elm$json$Json$Decode$andThen,
+		function (tag) {
+			switch (tag) {
+				case 'public':
+					return A2(
+						$elm$json$Json$Decode$map,
+						$author$project$Morphir$IR$AccessControlled$AccessControlled($author$project$Morphir$IR$AccessControlled$Public),
+						A2($elm$json$Json$Decode$index, 1, decodeValue));
+				case 'private':
+					return A2(
+						$elm$json$Json$Decode$map,
+						$author$project$Morphir$IR$AccessControlled$AccessControlled($author$project$Morphir$IR$AccessControlled$Private),
+						A2($elm$json$Json$Decode$index, 1, decodeValue));
+				default:
+					var other = tag;
+					return $elm$json$Json$Decode$fail('Unknown access controlled type: ' + other);
+			}
+		},
+		A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string));
+};
+var $author$project$Morphir$IR$Module$Definition = F2(
+	function (types, values) {
+		return {types: types, values: values};
+	});
+var $author$project$Morphir$IR$Type$CustomTypeDefinition = F2(
+	function (a, b) {
+		return {$: 'CustomTypeDefinition', a: a, b: b};
+	});
+var $author$project$Morphir$IR$Type$TypeAliasDefinition = F2(
+	function (a, b) {
+		return {$: 'TypeAliasDefinition', a: a, b: b};
+	});
+var $author$project$Morphir$IR$Type$Constructor = F2(
+	function (a, b) {
+		return {$: 'Constructor', a: a, b: b};
+	});
+var $author$project$Morphir$IR$Name$fromList = function (words) {
+	return words;
+};
+var $elm$json$Json$Decode$list = _Json_decodeList;
+var $author$project$Morphir$IR$Name$Codec$decodeName = A2(
+	$elm$json$Json$Decode$map,
+	$author$project$Morphir$IR$Name$fromList,
+	$elm$json$Json$Decode$list($elm$json$Json$Decode$string));
+var $author$project$Morphir$IR$Type$ExtensibleRecord = F3(
+	function (a, b, c) {
+		return {$: 'ExtensibleRecord', a: a, b: b, c: c};
+	});
+var $author$project$Morphir$IR$Type$Field = F2(
+	function (name, tpe) {
+		return {name: name, tpe: tpe};
+	});
+var $author$project$Morphir$IR$Type$Function = F3(
+	function (a, b, c) {
+		return {$: 'Function', a: a, b: b, c: c};
+	});
+var $author$project$Morphir$IR$Type$Record = F2(
+	function (a, b) {
+		return {$: 'Record', a: a, b: b};
+	});
+var $author$project$Morphir$IR$Type$Reference = F3(
+	function (a, b, c) {
+		return {$: 'Reference', a: a, b: b, c: c};
+	});
+var $author$project$Morphir$IR$Type$Tuple = F2(
+	function (a, b) {
+		return {$: 'Tuple', a: a, b: b};
+	});
+var $author$project$Morphir$IR$Type$Unit = function (a) {
+	return {$: 'Unit', a: a};
+};
+var $author$project$Morphir$IR$Type$Variable = F2(
+	function (a, b) {
+		return {$: 'Variable', a: a, b: b};
+	});
+var $author$project$Morphir$IR$FQName$FQName = F3(
+	function (a, b, c) {
+		return {$: 'FQName', a: a, b: b, c: c};
+	});
+var $author$project$Morphir$IR$Path$fromList = function (names) {
+	return names;
+};
+var $author$project$Morphir$IR$Path$Codec$decodePath = A2(
+	$elm$json$Json$Decode$map,
+	$author$project$Morphir$IR$Path$fromList,
+	$elm$json$Json$Decode$list($author$project$Morphir$IR$Name$Codec$decodeName));
+var $elm$json$Json$Decode$map3 = _Json_map3;
+var $author$project$Morphir$IR$FQName$Codec$decodeFQName = A4(
+	$elm$json$Json$Decode$map3,
+	$author$project$Morphir$IR$FQName$FQName,
+	A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Path$Codec$decodePath),
+	A2($elm$json$Json$Decode$index, 1, $author$project$Morphir$IR$Path$Codec$decodePath),
+	A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Name$Codec$decodeName));
+var $elm$json$Json$Decode$lazy = function (thunk) {
+	return A2(
+		$elm$json$Json$Decode$andThen,
+		thunk,
+		$elm$json$Json$Decode$succeed(_Utils_Tuple0));
+};
+var $author$project$Morphir$IR$Type$Codec$decodeField = function (decodeAttributes) {
+	return A3(
+		$elm$json$Json$Decode$map2,
+		$author$project$Morphir$IR$Type$Field,
+		A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName),
+		A2(
+			$elm$json$Json$Decode$index,
+			1,
+			$author$project$Morphir$IR$Type$Codec$decodeType(decodeAttributes)));
+};
+var $author$project$Morphir$IR$Type$Codec$decodeType = function (decodeAttributes) {
+	var lazyDecodeType = $elm$json$Json$Decode$lazy(
+		function (_v3) {
+			return $author$project$Morphir$IR$Type$Codec$decodeType(decodeAttributes);
+		});
+	var lazyDecodeField = $elm$json$Json$Decode$lazy(
+		function (_v2) {
+			return $author$project$Morphir$IR$Type$Codec$decodeField(decodeAttributes);
+		});
+	return A2(
+		$elm$json$Json$Decode$andThen,
+		function (kind) {
+			switch (kind) {
+				case 'variable':
+					return A3(
+						$elm$json$Json$Decode$map2,
+						$author$project$Morphir$IR$Type$Variable,
+						A2($elm$json$Json$Decode$index, 1, decodeAttributes),
+						A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Name$Codec$decodeName));
+				case 'reference':
+					return A4(
+						$elm$json$Json$Decode$map3,
+						$author$project$Morphir$IR$Type$Reference,
+						A2($elm$json$Json$Decode$index, 1, decodeAttributes),
+						A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$FQName$Codec$decodeFQName),
+						A2(
+							$elm$json$Json$Decode$index,
+							3,
+							$elm$json$Json$Decode$list(
+								$elm$json$Json$Decode$lazy(
+									function (_v1) {
+										return $author$project$Morphir$IR$Type$Codec$decodeType(decodeAttributes);
+									}))));
+				case 'tuple':
+					return A3(
+						$elm$json$Json$Decode$map2,
+						$author$project$Morphir$IR$Type$Tuple,
+						A2($elm$json$Json$Decode$index, 1, decodeAttributes),
+						A2(
+							$elm$json$Json$Decode$index,
+							2,
+							$elm$json$Json$Decode$list(lazyDecodeType)));
+				case 'record':
+					return A3(
+						$elm$json$Json$Decode$map2,
+						$author$project$Morphir$IR$Type$Record,
+						A2($elm$json$Json$Decode$index, 1, decodeAttributes),
+						A2(
+							$elm$json$Json$Decode$index,
+							2,
+							$elm$json$Json$Decode$list(lazyDecodeField)));
+				case 'extensible_record':
+					return A4(
+						$elm$json$Json$Decode$map3,
+						$author$project$Morphir$IR$Type$ExtensibleRecord,
+						A2($elm$json$Json$Decode$index, 1, decodeAttributes),
+						A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Name$Codec$decodeName),
+						A2(
+							$elm$json$Json$Decode$index,
+							3,
+							$elm$json$Json$Decode$list(lazyDecodeField)));
+				case 'function':
+					return A4(
+						$elm$json$Json$Decode$map3,
+						$author$project$Morphir$IR$Type$Function,
+						A2($elm$json$Json$Decode$index, 1, decodeAttributes),
+						A2($elm$json$Json$Decode$index, 2, lazyDecodeType),
+						A2($elm$json$Json$Decode$index, 3, lazyDecodeType));
+				case 'unit':
+					return A2(
+						$elm$json$Json$Decode$map,
+						$author$project$Morphir$IR$Type$Unit,
+						A2($elm$json$Json$Decode$index, 1, decodeAttributes));
+				default:
+					return $elm$json$Json$Decode$fail('Unknown kind: ' + kind);
+			}
+		},
+		A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string));
+};
+var $elm$core$Tuple$pair = F2(
+	function (a, b) {
+		return _Utils_Tuple2(a, b);
+	});
+var $author$project$Morphir$IR$Type$Codec$decodeConstructors = function (decodeAttributes) {
+	return $elm$json$Json$Decode$list(
+		A2(
+			$elm$json$Json$Decode$andThen,
+			function (kind) {
+				if (kind === 'constructor') {
+					return A3(
+						$elm$json$Json$Decode$map2,
+						$author$project$Morphir$IR$Type$Constructor,
+						A2($elm$json$Json$Decode$index, 1, $author$project$Morphir$IR$Name$Codec$decodeName),
+						A2(
+							$elm$json$Json$Decode$index,
+							2,
+							$elm$json$Json$Decode$list(
+								A3(
+									$elm$json$Json$Decode$map2,
+									$elm$core$Tuple$pair,
+									A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName),
+									A2(
+										$elm$json$Json$Decode$index,
+										1,
+										$author$project$Morphir$IR$Type$Codec$decodeType(decodeAttributes))))));
+				} else {
+					return $elm$json$Json$Decode$fail('Unknown kind: ' + kind);
+				}
+			},
+			A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string)));
+};
+var $author$project$Morphir$IR$Type$Codec$decodeDefinition = function (decodeAttributes) {
+	return A2(
+		$elm$json$Json$Decode$andThen,
+		function (kind) {
+			switch (kind) {
+				case 'type_alias_definition':
+					return A3(
+						$elm$json$Json$Decode$map2,
+						$author$project$Morphir$IR$Type$TypeAliasDefinition,
+						A2(
+							$elm$json$Json$Decode$index,
+							1,
+							$elm$json$Json$Decode$list($author$project$Morphir$IR$Name$Codec$decodeName)),
+						A2(
+							$elm$json$Json$Decode$index,
+							2,
+							$author$project$Morphir$IR$Type$Codec$decodeType(decodeAttributes)));
+				case 'custom_type_definition':
+					return A3(
+						$elm$json$Json$Decode$map2,
+						$author$project$Morphir$IR$Type$CustomTypeDefinition,
+						A2(
+							$elm$json$Json$Decode$index,
+							1,
+							$elm$json$Json$Decode$list($author$project$Morphir$IR$Name$Codec$decodeName)),
+						A2(
+							$elm$json$Json$Decode$index,
+							2,
+							$author$project$Morphir$IR$AccessControlled$Codec$decodeAccessControlled(
+								$author$project$Morphir$IR$Type$Codec$decodeConstructors(decodeAttributes))));
+				default:
+					return $elm$json$Json$Decode$fail('Unknown kind: ' + kind);
+			}
+		},
+		A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string));
+};
+var $author$project$Morphir$IR$Value$Apply = F3(
+	function (a, b, c) {
+		return {$: 'Apply', a: a, b: b, c: c};
+	});
+var $author$project$Morphir$IR$Value$Constructor = F2(
+	function (a, b) {
+		return {$: 'Constructor', a: a, b: b};
+	});
+var $author$project$Morphir$IR$Value$Definition = F3(
+	function (inputTypes, outputType, body) {
+		return {body: body, inputTypes: inputTypes, outputType: outputType};
+	});
+var $author$project$Morphir$IR$Value$Destructure = F4(
+	function (a, b, c, d) {
+		return {$: 'Destructure', a: a, b: b, c: c, d: d};
+	});
+var $author$project$Morphir$IR$Value$Field = F3(
+	function (a, b, c) {
+		return {$: 'Field', a: a, b: b, c: c};
+	});
+var $author$project$Morphir$IR$Value$FieldFunction = F2(
+	function (a, b) {
+		return {$: 'FieldFunction', a: a, b: b};
+	});
+var $author$project$Morphir$IR$Value$IfThenElse = F4(
+	function (a, b, c, d) {
+		return {$: 'IfThenElse', a: a, b: b, c: c, d: d};
+	});
+var $author$project$Morphir$IR$Value$Lambda = F3(
+	function (a, b, c) {
+		return {$: 'Lambda', a: a, b: b, c: c};
+	});
+var $author$project$Morphir$IR$Value$LetDefinition = F4(
+	function (a, b, c, d) {
+		return {$: 'LetDefinition', a: a, b: b, c: c, d: d};
+	});
+var $author$project$Morphir$IR$Value$LetRecursion = F3(
+	function (a, b, c) {
+		return {$: 'LetRecursion', a: a, b: b, c: c};
+	});
+var $author$project$Morphir$IR$Value$List = F2(
+	function (a, b) {
+		return {$: 'List', a: a, b: b};
+	});
+var $author$project$Morphir$IR$Value$Literal = F2(
+	function (a, b) {
+		return {$: 'Literal', a: a, b: b};
+	});
+var $author$project$Morphir$IR$Value$PatternMatch = F3(
+	function (a, b, c) {
+		return {$: 'PatternMatch', a: a, b: b, c: c};
+	});
+var $author$project$Morphir$IR$Value$Record = F2(
+	function (a, b) {
+		return {$: 'Record', a: a, b: b};
+	});
+var $author$project$Morphir$IR$Value$Reference = F2(
+	function (a, b) {
+		return {$: 'Reference', a: a, b: b};
+	});
+var $author$project$Morphir$IR$Value$Tuple = F2(
+	function (a, b) {
+		return {$: 'Tuple', a: a, b: b};
+	});
+var $author$project$Morphir$IR$Value$Unit = function (a) {
+	return {$: 'Unit', a: a};
+};
+var $author$project$Morphir$IR$Value$UpdateRecord = F3(
+	function (a, b, c) {
+		return {$: 'UpdateRecord', a: a, b: b, c: c};
+	});
+var $author$project$Morphir$IR$Value$Variable = F2(
+	function (a, b) {
+		return {$: 'Variable', a: a, b: b};
+	});
+var $author$project$Morphir$IR$Literal$BoolLiteral = function (a) {
+	return {$: 'BoolLiteral', a: a};
+};
+var $author$project$Morphir$IR$Literal$CharLiteral = function (a) {
+	return {$: 'CharLiteral', a: a};
+};
+var $author$project$Morphir$IR$Literal$FloatLiteral = function (a) {
+	return {$: 'FloatLiteral', a: a};
+};
+var $author$project$Morphir$IR$Literal$IntLiteral = function (a) {
+	return {$: 'IntLiteral', a: a};
+};
+var $author$project$Morphir$IR$Literal$StringLiteral = function (a) {
+	return {$: 'StringLiteral', a: a};
+};
+var $elm$json$Json$Decode$bool = _Json_decodeBool;
+var $elm$json$Json$Decode$float = _Json_decodeFloat;
+var $elm$json$Json$Decode$int = _Json_decodeInt;
+var $author$project$Morphir$IR$Literal$Codec$decodeLiteral = A2(
+	$elm$json$Json$Decode$andThen,
+	function (kind) {
+		switch (kind) {
+			case 'bool_literal':
+				return A2(
+					$elm$json$Json$Decode$map,
+					$author$project$Morphir$IR$Literal$BoolLiteral,
+					A2($elm$json$Json$Decode$index, 1, $elm$json$Json$Decode$bool));
+			case 'char_literal':
+				return A2(
+					$elm$json$Json$Decode$map,
+					$author$project$Morphir$IR$Literal$CharLiteral,
+					A2(
+						$elm$json$Json$Decode$andThen,
+						function (str) {
+							var _v1 = $elm$core$String$uncons(str);
+							if (_v1.$ === 'Just') {
+								var _v2 = _v1.a;
+								var ch = _v2.a;
+								return $elm$json$Json$Decode$succeed(ch);
+							} else {
+								return $elm$json$Json$Decode$fail('Single char expected');
+							}
+						},
+						A2($elm$json$Json$Decode$index, 1, $elm$json$Json$Decode$string)));
+			case 'string_literal':
+				return A2(
+					$elm$json$Json$Decode$map,
+					$author$project$Morphir$IR$Literal$StringLiteral,
+					A2($elm$json$Json$Decode$index, 1, $elm$json$Json$Decode$string));
+			case 'int_literal':
+				return A2(
+					$elm$json$Json$Decode$map,
+					$author$project$Morphir$IR$Literal$IntLiteral,
+					A2($elm$json$Json$Decode$index, 1, $elm$json$Json$Decode$int));
+			case 'float_literal':
+				return A2(
+					$elm$json$Json$Decode$map,
+					$author$project$Morphir$IR$Literal$FloatLiteral,
+					A2($elm$json$Json$Decode$index, 1, $elm$json$Json$Decode$float));
+			default:
+				var other = kind;
+				return $elm$json$Json$Decode$fail('Unknown literal type: ' + other);
+		}
+	},
+	A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string));
+var $author$project$Morphir$IR$Value$AsPattern = F3(
+	function (a, b, c) {
+		return {$: 'AsPattern', a: a, b: b, c: c};
+	});
+var $author$project$Morphir$IR$Value$ConstructorPattern = F3(
+	function (a, b, c) {
+		return {$: 'ConstructorPattern', a: a, b: b, c: c};
+	});
+var $author$project$Morphir$IR$Value$EmptyListPattern = function (a) {
+	return {$: 'EmptyListPattern', a: a};
+};
+var $author$project$Morphir$IR$Value$HeadTailPattern = F3(
+	function (a, b, c) {
+		return {$: 'HeadTailPattern', a: a, b: b, c: c};
+	});
+var $author$project$Morphir$IR$Value$LiteralPattern = F2(
+	function (a, b) {
+		return {$: 'LiteralPattern', a: a, b: b};
+	});
+var $author$project$Morphir$IR$Value$TuplePattern = F2(
+	function (a, b) {
+		return {$: 'TuplePattern', a: a, b: b};
+	});
+var $author$project$Morphir$IR$Value$UnitPattern = function (a) {
+	return {$: 'UnitPattern', a: a};
+};
+var $author$project$Morphir$IR$Value$WildcardPattern = function (a) {
+	return {$: 'WildcardPattern', a: a};
+};
+var $author$project$Morphir$IR$Value$Codec$decodePattern = function (decodeAttributes) {
+	var lazyDecodePattern = $elm$json$Json$Decode$lazy(
+		function (_v1) {
+			return $author$project$Morphir$IR$Value$Codec$decodePattern(decodeAttributes);
+		});
+	return A2(
+		$elm$json$Json$Decode$andThen,
+		function (kind) {
+			switch (kind) {
+				case 'wildcard_pattern':
+					return A2(
+						$elm$json$Json$Decode$map,
+						$author$project$Morphir$IR$Value$WildcardPattern,
+						A2($elm$json$Json$Decode$index, 1, decodeAttributes));
+				case 'as_pattern':
+					return A4(
+						$elm$json$Json$Decode$map3,
+						$author$project$Morphir$IR$Value$AsPattern,
+						A2($elm$json$Json$Decode$index, 1, decodeAttributes),
+						A2($elm$json$Json$Decode$index, 2, lazyDecodePattern),
+						A2($elm$json$Json$Decode$index, 3, $author$project$Morphir$IR$Name$Codec$decodeName));
+				case 'tuple_pattern':
+					return A3(
+						$elm$json$Json$Decode$map2,
+						$author$project$Morphir$IR$Value$TuplePattern,
+						A2($elm$json$Json$Decode$index, 1, decodeAttributes),
+						A2(
+							$elm$json$Json$Decode$index,
+							2,
+							$elm$json$Json$Decode$list(lazyDecodePattern)));
+				case 'constructor_pattern':
+					return A4(
+						$elm$json$Json$Decode$map3,
+						$author$project$Morphir$IR$Value$ConstructorPattern,
+						A2($elm$json$Json$Decode$index, 1, decodeAttributes),
+						A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$FQName$Codec$decodeFQName),
+						A2(
+							$elm$json$Json$Decode$index,
+							3,
+							$elm$json$Json$Decode$list(lazyDecodePattern)));
+				case 'empty_list_pattern':
+					return A2(
+						$elm$json$Json$Decode$map,
+						$author$project$Morphir$IR$Value$EmptyListPattern,
+						A2($elm$json$Json$Decode$index, 1, decodeAttributes));
+				case 'head_tail_pattern':
+					return A4(
+						$elm$json$Json$Decode$map3,
+						$author$project$Morphir$IR$Value$HeadTailPattern,
+						A2($elm$json$Json$Decode$index, 1, decodeAttributes),
+						A2($elm$json$Json$Decode$index, 2, lazyDecodePattern),
+						A2($elm$json$Json$Decode$index, 3, lazyDecodePattern));
+				case 'literal_pattern':
+					return A3(
+						$elm$json$Json$Decode$map2,
+						$author$project$Morphir$IR$Value$LiteralPattern,
+						A2($elm$json$Json$Decode$index, 1, decodeAttributes),
+						A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Literal$Codec$decodeLiteral));
+				case 'unit_pattern':
+					return A2(
+						$elm$json$Json$Decode$map,
+						$author$project$Morphir$IR$Value$UnitPattern,
+						A2($elm$json$Json$Decode$index, 1, decodeAttributes));
+				default:
+					var other = kind;
+					return $elm$json$Json$Decode$fail('Unknown pattern type: ' + other);
+			}
+		},
+		A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string));
+};
+var $elm$json$Json$Decode$field = _Json_decodeField;
+var $elm$core$Dict$RBEmpty_elm_builtin = {$: 'RBEmpty_elm_builtin'};
+var $elm$core$Dict$empty = $elm$core$Dict$RBEmpty_elm_builtin;
+var $elm$core$Dict$Black = {$: 'Black'};
+var $elm$core$Dict$RBNode_elm_builtin = F5(
+	function (a, b, c, d, e) {
+		return {$: 'RBNode_elm_builtin', a: a, b: b, c: c, d: d, e: e};
+	});
+var $elm$core$Dict$Red = {$: 'Red'};
+var $elm$core$Dict$balance = F5(
+	function (color, key, value, left, right) {
+		if ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Red')) {
+			var _v1 = right.a;
+			var rK = right.b;
+			var rV = right.c;
+			var rLeft = right.d;
+			var rRight = right.e;
+			if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) {
+				var _v3 = left.a;
+				var lK = left.b;
+				var lV = left.c;
+				var lLeft = left.d;
+				var lRight = left.e;
+				return A5(
+					$elm$core$Dict$RBNode_elm_builtin,
+					$elm$core$Dict$Red,
+					key,
+					value,
+					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, lK, lV, lLeft, lRight),
+					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, rK, rV, rLeft, rRight));
+			} else {
+				return A5(
+					$elm$core$Dict$RBNode_elm_builtin,
+					color,
+					rK,
+					rV,
+					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, key, value, left, rLeft),
+					rRight);
+			}
+		} else {
+			if ((((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) && (left.d.$ === 'RBNode_elm_builtin')) && (left.d.a.$ === 'Red')) {
+				var _v5 = left.a;
+				var lK = left.b;
+				var lV = left.c;
+				var _v6 = left.d;
+				var _v7 = _v6.a;
+				var llK = _v6.b;
+				var llV = _v6.c;
+				var llLeft = _v6.d;
+				var llRight = _v6.e;
+				var lRight = left.e;
+				return A5(
+					$elm$core$Dict$RBNode_elm_builtin,
+					$elm$core$Dict$Red,
+					lK,
+					lV,
+					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, llK, llV, llLeft, llRight),
+					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, key, value, lRight, right));
+			} else {
+				return A5($elm$core$Dict$RBNode_elm_builtin, color, key, value, left, right);
+			}
+		}
+	});
+var $elm$core$Basics$compare = _Utils_compare;
+var $elm$core$Dict$insertHelp = F3(
+	function (key, value, dict) {
+		if (dict.$ === 'RBEmpty_elm_builtin') {
+			return A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, key, value, $elm$core$Dict$RBEmpty_elm_builtin, $elm$core$Dict$RBEmpty_elm_builtin);
+		} else {
+			var nColor = dict.a;
+			var nKey = dict.b;
+			var nValue = dict.c;
+			var nLeft = dict.d;
+			var nRight = dict.e;
+			var _v1 = A2($elm$core$Basics$compare, key, nKey);
+			switch (_v1.$) {
+				case 'LT':
+					return A5(
+						$elm$core$Dict$balance,
+						nColor,
+						nKey,
+						nValue,
+						A3($elm$core$Dict$insertHelp, key, value, nLeft),
+						nRight);
+				case 'EQ':
+					return A5($elm$core$Dict$RBNode_elm_builtin, nColor, nKey, value, nLeft, nRight);
+				default:
+					return A5(
+						$elm$core$Dict$balance,
+						nColor,
+						nKey,
+						nValue,
+						nLeft,
+						A3($elm$core$Dict$insertHelp, key, value, nRight));
+			}
+		}
+	});
+var $elm$core$Dict$insert = F3(
+	function (key, value, dict) {
+		var _v0 = A3($elm$core$Dict$insertHelp, key, value, dict);
+		if ((_v0.$ === 'RBNode_elm_builtin') && (_v0.a.$ === 'Red')) {
+			var _v1 = _v0.a;
+			var k = _v0.b;
+			var v = _v0.c;
+			var l = _v0.d;
+			var r = _v0.e;
+			return A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, k, v, l, r);
+		} else {
+			var x = _v0;
+			return x;
+		}
+	});
+var $elm$core$Dict$fromList = function (assocs) {
+	return A3(
+		$elm$core$List$foldl,
+		F2(
+			function (_v0, dict) {
+				var key = _v0.a;
+				var value = _v0.b;
+				return A3($elm$core$Dict$insert, key, value, dict);
+			}),
+		$elm$core$Dict$empty,
+		assocs);
+};
+var $elm$json$Json$Decode$map4 = _Json_map4;
+var $author$project$Morphir$IR$Value$Codec$decodeDefinition = F2(
+	function (decodeTypeAttributes, decodeValueAttributes) {
+		return A4(
+			$elm$json$Json$Decode$map3,
+			$author$project$Morphir$IR$Value$Definition,
+			A2(
+				$elm$json$Json$Decode$field,
+				'inputTypes',
+				$elm$json$Json$Decode$list(
+					A4(
+						$elm$json$Json$Decode$map3,
+						F3(
+							function (n, a, t) {
+								return _Utils_Tuple3(n, a, t);
+							}),
+						A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName),
+						A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
+						A2(
+							$elm$json$Json$Decode$index,
+							2,
+							$author$project$Morphir$IR$Type$Codec$decodeType(decodeTypeAttributes))))),
+			A2(
+				$elm$json$Json$Decode$field,
+				'outputType',
+				$author$project$Morphir$IR$Type$Codec$decodeType(decodeTypeAttributes)),
+			A2(
+				$elm$json$Json$Decode$field,
+				'body',
+				$elm$json$Json$Decode$lazy(
+					function (_v2) {
+						return A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes);
+					})));
+	});
+var $author$project$Morphir$IR$Value$Codec$decodeValue = F2(
+	function (decodeTypeAttributes, decodeValueAttributes) {
+		var lazyDecodeValue = $elm$json$Json$Decode$lazy(
+			function (_v1) {
+				return A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes);
+			});
+		return A2(
+			$elm$json$Json$Decode$andThen,
+			function (kind) {
+				switch (kind) {
+					case 'literal':
+						return A3(
+							$elm$json$Json$Decode$map2,
+							$author$project$Morphir$IR$Value$Literal,
+							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
+							A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Literal$Codec$decodeLiteral));
+					case 'constructor':
+						return A3(
+							$elm$json$Json$Decode$map2,
+							$author$project$Morphir$IR$Value$Constructor,
+							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
+							A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$FQName$Codec$decodeFQName));
+					case 'tuple':
+						return A3(
+							$elm$json$Json$Decode$map2,
+							$author$project$Morphir$IR$Value$Tuple,
+							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
+							A2(
+								$elm$json$Json$Decode$index,
+								2,
+								$elm$json$Json$Decode$list(lazyDecodeValue)));
+					case 'list':
+						return A3(
+							$elm$json$Json$Decode$map2,
+							$author$project$Morphir$IR$Value$List,
+							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
+							A2(
+								$elm$json$Json$Decode$index,
+								2,
+								$elm$json$Json$Decode$list(lazyDecodeValue)));
+					case 'record':
+						return A3(
+							$elm$json$Json$Decode$map2,
+							$author$project$Morphir$IR$Value$Record,
+							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
+							A2(
+								$elm$json$Json$Decode$index,
+								2,
+								$elm$json$Json$Decode$list(
+									A3(
+										$elm$json$Json$Decode$map2,
+										$elm$core$Tuple$pair,
+										A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName),
+										A2(
+											$elm$json$Json$Decode$index,
+											1,
+											A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes))))));
+					case 'variable':
+						return A3(
+							$elm$json$Json$Decode$map2,
+							$author$project$Morphir$IR$Value$Variable,
+							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
+							A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Name$Codec$decodeName));
+					case 'reference':
+						return A3(
+							$elm$json$Json$Decode$map2,
+							$author$project$Morphir$IR$Value$Reference,
+							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
+							A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$FQName$Codec$decodeFQName));
+					case 'field':
+						return A4(
+							$elm$json$Json$Decode$map3,
+							$author$project$Morphir$IR$Value$Field,
+							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
+							A2(
+								$elm$json$Json$Decode$index,
+								2,
+								A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)),
+							A2($elm$json$Json$Decode$index, 3, $author$project$Morphir$IR$Name$Codec$decodeName));
+					case 'field_function':
+						return A3(
+							$elm$json$Json$Decode$map2,
+							$author$project$Morphir$IR$Value$FieldFunction,
+							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
+							A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Name$Codec$decodeName));
+					case 'apply':
+						return A4(
+							$elm$json$Json$Decode$map3,
+							$author$project$Morphir$IR$Value$Apply,
+							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
+							A2(
+								$elm$json$Json$Decode$index,
+								2,
+								A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)),
+							A2(
+								$elm$json$Json$Decode$index,
+								3,
+								A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)));
+					case 'lambda':
+						return A4(
+							$elm$json$Json$Decode$map3,
+							$author$project$Morphir$IR$Value$Lambda,
+							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
+							A2(
+								$elm$json$Json$Decode$index,
+								2,
+								$author$project$Morphir$IR$Value$Codec$decodePattern(decodeValueAttributes)),
+							A2(
+								$elm$json$Json$Decode$index,
+								3,
+								A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)));
+					case 'let_definition':
+						return A5(
+							$elm$json$Json$Decode$map4,
+							$author$project$Morphir$IR$Value$LetDefinition,
+							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
+							A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Name$Codec$decodeName),
+							A2(
+								$elm$json$Json$Decode$index,
+								3,
+								A2($author$project$Morphir$IR$Value$Codec$decodeDefinition, decodeTypeAttributes, decodeValueAttributes)),
+							A2(
+								$elm$json$Json$Decode$index,
+								4,
+								A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)));
+					case 'let_recursion':
+						return A4(
+							$elm$json$Json$Decode$map3,
+							$author$project$Morphir$IR$Value$LetRecursion,
+							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
+							A2(
+								$elm$json$Json$Decode$index,
+								2,
+								A2(
+									$elm$json$Json$Decode$map,
+									$elm$core$Dict$fromList,
+									$elm$json$Json$Decode$list(
+										A3(
+											$elm$json$Json$Decode$map2,
+											$elm$core$Tuple$pair,
+											A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName),
+											A2(
+												$elm$json$Json$Decode$index,
+												1,
+												A2($author$project$Morphir$IR$Value$Codec$decodeDefinition, decodeTypeAttributes, decodeValueAttributes)))))),
+							A2(
+								$elm$json$Json$Decode$index,
+								3,
+								A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)));
+					case 'destructure':
+						return A5(
+							$elm$json$Json$Decode$map4,
+							$author$project$Morphir$IR$Value$Destructure,
+							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
+							A2(
+								$elm$json$Json$Decode$index,
+								2,
+								$author$project$Morphir$IR$Value$Codec$decodePattern(decodeValueAttributes)),
+							A2(
+								$elm$json$Json$Decode$index,
+								3,
+								A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)),
+							A2(
+								$elm$json$Json$Decode$index,
+								4,
+								A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)));
+					case 'if_then_else':
+						return A5(
+							$elm$json$Json$Decode$map4,
+							$author$project$Morphir$IR$Value$IfThenElse,
+							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
+							A2(
+								$elm$json$Json$Decode$index,
+								2,
+								A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)),
+							A2(
+								$elm$json$Json$Decode$index,
+								3,
+								A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)),
+							A2(
+								$elm$json$Json$Decode$index,
+								4,
+								A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)));
+					case 'pattern_match':
+						return A4(
+							$elm$json$Json$Decode$map3,
+							$author$project$Morphir$IR$Value$PatternMatch,
+							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
+							A2(
+								$elm$json$Json$Decode$index,
+								2,
+								A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)),
+							A2(
+								$elm$json$Json$Decode$index,
+								3,
+								$elm$json$Json$Decode$list(
+									A3(
+										$elm$json$Json$Decode$map2,
+										$elm$core$Tuple$pair,
+										A2(
+											$elm$json$Json$Decode$index,
+											0,
+											$author$project$Morphir$IR$Value$Codec$decodePattern(decodeValueAttributes)),
+										A2(
+											$elm$json$Json$Decode$index,
+											1,
+											A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes))))));
+					case 'update_record':
+						return A4(
+							$elm$json$Json$Decode$map3,
+							$author$project$Morphir$IR$Value$UpdateRecord,
+							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
+							A2(
+								$elm$json$Json$Decode$index,
+								2,
+								A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)),
+							A2(
+								$elm$json$Json$Decode$index,
+								3,
+								$elm$json$Json$Decode$list(
+									A3(
+										$elm$json$Json$Decode$map2,
+										$elm$core$Tuple$pair,
+										A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName),
+										A2(
+											$elm$json$Json$Decode$index,
+											1,
+											A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes))))));
+					case 'unit':
+						return A2(
+							$elm$json$Json$Decode$map,
+							$author$project$Morphir$IR$Value$Unit,
+							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes));
+					default:
+						var other = kind;
+						return $elm$json$Json$Decode$fail('Unknown value type: ' + other);
+				}
+			},
+			A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string));
+	});
+var $author$project$Morphir$IR$Documented$Documented = F2(
+	function (doc, value) {
+		return {doc: doc, value: value};
+	});
+var $author$project$Morphir$IR$Documented$Codec$decodeDocumented = function (decodeValue) {
+	return A3(
+		$elm$json$Json$Decode$map2,
+		$author$project$Morphir$IR$Documented$Documented,
+		A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string),
+		A2($elm$json$Json$Decode$index, 1, decodeValue));
+};
+var $author$project$Morphir$IR$Module$Codec$decodeDefinition = F2(
+	function (decodeTypeAttributes, decodeValueAttributes) {
+		return A3(
+			$elm$json$Json$Decode$map2,
+			$author$project$Morphir$IR$Module$Definition,
+			A2(
+				$elm$json$Json$Decode$field,
+				'types',
+				A2(
+					$elm$json$Json$Decode$map,
+					$elm$core$Dict$fromList,
+					$elm$json$Json$Decode$list(
+						A3(
+							$elm$json$Json$Decode$map2,
+							$elm$core$Tuple$pair,
+							A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName),
+							A2(
+								$elm$json$Json$Decode$index,
+								1,
+								$author$project$Morphir$IR$AccessControlled$Codec$decodeAccessControlled(
+									$author$project$Morphir$IR$Documented$Codec$decodeDocumented(
+										$author$project$Morphir$IR$Type$Codec$decodeDefinition(decodeTypeAttributes)))))))),
+			A2(
+				$elm$json$Json$Decode$field,
+				'values',
+				A2(
+					$elm$json$Json$Decode$map,
+					$elm$core$Dict$fromList,
+					$elm$json$Json$Decode$list(
+						A3(
+							$elm$json$Json$Decode$map2,
+							$elm$core$Tuple$pair,
+							A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName),
+							A2(
+								$elm$json$Json$Decode$index,
+								1,
+								$author$project$Morphir$IR$AccessControlled$Codec$decodeAccessControlled(
+									A2($author$project$Morphir$IR$Value$Codec$decodeDefinition, decodeTypeAttributes, decodeValueAttributes))))))));
+	});
+var $author$project$Morphir$IR$Package$Codec$decodeDefinition = F2(
+	function (decodeAttributes, decodeAttributes2) {
+		return A2(
+			$elm$json$Json$Decode$map,
+			$author$project$Morphir$IR$Package$Definition,
+			A2(
+				$elm$json$Json$Decode$field,
+				'modules',
+				A2(
+					$elm$json$Json$Decode$map,
+					$elm$core$Dict$fromList,
+					$elm$json$Json$Decode$list(
+						A3(
+							$elm$json$Json$Decode$map2,
+							$elm$core$Tuple$pair,
+							A2($elm$json$Json$Decode$field, 'name', $author$project$Morphir$IR$Path$Codec$decodePath),
+							A2(
+								$elm$json$Json$Decode$field,
+								'def',
+								$author$project$Morphir$IR$AccessControlled$Codec$decodeAccessControlled(
+									A2($author$project$Morphir$IR$Module$Codec$decodeDefinition, decodeAttributes, decodeAttributes2))))))));
+	});
+var $author$project$Morphir$IR$Package$Specification = function (modules) {
+	return {modules: modules};
+};
+var $author$project$Morphir$IR$Module$Specification = F2(
+	function (types, values) {
+		return {types: types, values: values};
+	});
+var $author$project$Morphir$IR$Type$CustomTypeSpecification = F2(
+	function (a, b) {
+		return {$: 'CustomTypeSpecification', a: a, b: b};
+	});
+var $author$project$Morphir$IR$Type$OpaqueTypeSpecification = function (a) {
+	return {$: 'OpaqueTypeSpecification', a: a};
+};
+var $author$project$Morphir$IR$Type$TypeAliasSpecification = F2(
+	function (a, b) {
+		return {$: 'TypeAliasSpecification', a: a, b: b};
+	});
+var $author$project$Morphir$IR$Type$Codec$decodeSpecification = function (decodeAttributes) {
+	return A2(
+		$elm$json$Json$Decode$andThen,
+		function (kind) {
+			switch (kind) {
+				case 'type_alias_specification':
+					return A3(
+						$elm$json$Json$Decode$map2,
+						$author$project$Morphir$IR$Type$TypeAliasSpecification,
+						A2(
+							$elm$json$Json$Decode$index,
+							1,
+							$elm$json$Json$Decode$list($author$project$Morphir$IR$Name$Codec$decodeName)),
+						A2(
+							$elm$json$Json$Decode$index,
+							2,
+							$author$project$Morphir$IR$Type$Codec$decodeType(decodeAttributes)));
+				case 'opaque_type_specification':
+					return A2(
+						$elm$json$Json$Decode$map,
+						$author$project$Morphir$IR$Type$OpaqueTypeSpecification,
+						A2(
+							$elm$json$Json$Decode$index,
+							1,
+							$elm$json$Json$Decode$list($author$project$Morphir$IR$Name$Codec$decodeName)));
+				case 'custom_type_specification':
+					return A3(
+						$elm$json$Json$Decode$map2,
+						$author$project$Morphir$IR$Type$CustomTypeSpecification,
+						A2(
+							$elm$json$Json$Decode$index,
+							1,
+							$elm$json$Json$Decode$list($author$project$Morphir$IR$Name$Codec$decodeName)),
+						A2(
+							$elm$json$Json$Decode$index,
+							2,
+							$author$project$Morphir$IR$Type$Codec$decodeConstructors(decodeAttributes)));
+				default:
+					return $elm$json$Json$Decode$fail('Unknown kind: ' + kind);
+			}
+		},
+		A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string));
+};
+var $author$project$Morphir$IR$Value$Specification = F2(
+	function (inputs, output) {
+		return {inputs: inputs, output: output};
+	});
+var $author$project$Morphir$IR$Value$Codec$decodeSpecification = function (decodeTypeAttributes) {
+	return A3(
+		$elm$json$Json$Decode$map2,
+		$author$project$Morphir$IR$Value$Specification,
+		A2(
+			$elm$json$Json$Decode$field,
+			'inputs',
+			$elm$json$Json$Decode$list(
+				A3(
+					$elm$json$Json$Decode$map2,
+					$elm$core$Tuple$pair,
+					A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName),
+					A2(
+						$elm$json$Json$Decode$index,
+						1,
+						$author$project$Morphir$IR$Type$Codec$decodeType(decodeTypeAttributes))))),
+		A2(
+			$elm$json$Json$Decode$field,
+			'output',
+			$author$project$Morphir$IR$Type$Codec$decodeType(decodeTypeAttributes)));
+};
+var $author$project$Morphir$IR$Module$Codec$decodeSpecification = function (decodeTypeAttributes) {
+	return A3(
+		$elm$json$Json$Decode$map2,
+		$author$project$Morphir$IR$Module$Specification,
+		A2(
+			$elm$json$Json$Decode$field,
+			'types',
+			A2(
+				$elm$json$Json$Decode$map,
+				$elm$core$Dict$fromList,
+				$elm$json$Json$Decode$list(
+					A3(
+						$elm$json$Json$Decode$map2,
+						$elm$core$Tuple$pair,
+						A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName),
+						A2(
+							$elm$json$Json$Decode$index,
+							1,
+							$author$project$Morphir$IR$Documented$Codec$decodeDocumented(
+								$author$project$Morphir$IR$Type$Codec$decodeSpecification(decodeTypeAttributes))))))),
+		A2(
+			$elm$json$Json$Decode$field,
+			'values',
+			A2(
+				$elm$json$Json$Decode$map,
+				$elm$core$Dict$fromList,
+				$elm$json$Json$Decode$list(
+					A3(
+						$elm$json$Json$Decode$map2,
+						$elm$core$Tuple$pair,
+						A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName),
+						A2(
+							$elm$json$Json$Decode$index,
+							1,
+							$author$project$Morphir$IR$Value$Codec$decodeSpecification(decodeTypeAttributes)))))));
+};
+var $author$project$Morphir$IR$Package$Codec$decodeSpecification = function (decodeAttributes) {
+	return A2(
+		$elm$json$Json$Decode$map,
+		$author$project$Morphir$IR$Package$Specification,
+		A2(
+			$elm$json$Json$Decode$field,
+			'modules',
+			A2(
+				$elm$json$Json$Decode$map,
+				$elm$core$Dict$fromList,
+				$elm$json$Json$Decode$list(
+					A3(
+						$elm$json$Json$Decode$map2,
+						$elm$core$Tuple$pair,
+						A2($elm$json$Json$Decode$field, 'name', $author$project$Morphir$IR$Path$Codec$decodePath),
+						A2(
+							$elm$json$Json$Decode$field,
+							'spec',
+							$author$project$Morphir$IR$Module$Codec$decodeSpecification(decodeAttributes)))))));
+};
+var $author$project$Morphir$Codec$decodeUnit = $elm$json$Json$Decode$succeed(_Utils_Tuple0);
+var $author$project$Morphir$IR$Distribution$Codec$decodeDistribution = A2(
+	$elm$json$Json$Decode$andThen,
+	function (kind) {
+		if (kind === 'library') {
+			return A4(
+				$elm$json$Json$Decode$map3,
+				$author$project$Morphir$IR$Distribution$Library,
+				A2($elm$json$Json$Decode$index, 1, $author$project$Morphir$IR$Path$Codec$decodePath),
+				A2(
+					$elm$json$Json$Decode$index,
+					2,
+					A2(
+						$elm$json$Json$Decode$map,
+						$elm$core$Dict$fromList,
+						$elm$json$Json$Decode$list(
+							A3(
+								$elm$json$Json$Decode$map2,
+								$elm$core$Tuple$pair,
+								A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Path$Codec$decodePath),
+								A2(
+									$elm$json$Json$Decode$index,
+									1,
+									$author$project$Morphir$IR$Package$Codec$decodeSpecification($author$project$Morphir$Codec$decodeUnit)))))),
+				A2(
+					$elm$json$Json$Decode$index,
+					3,
+					A2(
+						$author$project$Morphir$IR$Package$Codec$decodeDefinition,
+						$author$project$Morphir$Codec$decodeUnit,
+						$author$project$Morphir$IR$Type$Codec$decodeType($author$project$Morphir$Codec$decodeUnit))));
+		} else {
+			var other = kind;
+			return $elm$json$Json$Decode$fail('Unknown value type: ' + other);
+		}
+	},
+	A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string));
+var $author$project$Morphir$Web$DevelopMain$distributionDecoder = A2(
+	$elm$json$Json$Decode$andThen,
+	function (tag) {
+		switch (tag) {
+			case 'ok':
+				return A2(
+					$elm$json$Json$Decode$map,
+					$elm$core$Result$Ok,
+					A2($elm$json$Json$Decode$index, 1, $author$project$Morphir$IR$Distribution$Codec$decodeDistribution));
+			case 'err':
+				return A2(
+					$elm$json$Json$Decode$map,
+					$elm$core$Result$Err,
+					A2(
+						$elm$json$Json$Decode$index,
+						1,
+						$elm$json$Json$Decode$succeed(_List_Nil)));
+			default:
+				var other = tag;
+				return $elm$json$Json$Decode$fail('Unexpected Result tag: ' + other);
+		}
+	},
+	A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string));
+var $elm$json$Json$Decode$decodeString = _Json_runOnString;
+var $elm$http$Http$BadStatus_ = F2(
+	function (a, b) {
+		return {$: 'BadStatus_', a: a, b: b};
+	});
+var $elm$http$Http$BadUrl_ = function (a) {
+	return {$: 'BadUrl_', a: a};
+};
+var $elm$http$Http$GoodStatus_ = F2(
+	function (a, b) {
+		return {$: 'GoodStatus_', a: a, b: b};
+	});
+var $elm$http$Http$NetworkError_ = {$: 'NetworkError_'};
+var $elm$http$Http$Receiving = function (a) {
+	return {$: 'Receiving', a: a};
+};
+var $elm$http$Http$Sending = function (a) {
+	return {$: 'Sending', a: a};
+};
+var $elm$http$Http$Timeout_ = {$: 'Timeout_'};
+var $elm$core$Maybe$isJust = function (maybe) {
+	if (maybe.$ === 'Just') {
+		return true;
+	} else {
+		return false;
+	}
+};
+var $elm$core$Platform$sendToSelf = _Platform_sendToSelf;
+var $elm$core$Dict$get = F2(
+	function (targetKey, dict) {
+		get:
+		while (true) {
+			if (dict.$ === 'RBEmpty_elm_builtin') {
+				return $elm$core$Maybe$Nothing;
+			} else {
+				var key = dict.b;
+				var value = dict.c;
+				var left = dict.d;
+				var right = dict.e;
+				var _v1 = A2($elm$core$Basics$compare, targetKey, key);
+				switch (_v1.$) {
+					case 'LT':
+						var $temp$targetKey = targetKey,
+							$temp$dict = left;
+						targetKey = $temp$targetKey;
+						dict = $temp$dict;
+						continue get;
+					case 'EQ':
+						return $elm$core$Maybe$Just(value);
+					default:
+						var $temp$targetKey = targetKey,
+							$temp$dict = right;
+						targetKey = $temp$targetKey;
+						dict = $temp$dict;
+						continue get;
+				}
+			}
+		}
+	});
+var $elm$core$Dict$getMin = function (dict) {
+	getMin:
+	while (true) {
+		if ((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) {
+			var left = dict.d;
+			var $temp$dict = left;
+			dict = $temp$dict;
+			continue getMin;
+		} else {
+			return dict;
+		}
+	}
+};
+var $elm$core$Dict$moveRedLeft = function (dict) {
+	if (((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) && (dict.e.$ === 'RBNode_elm_builtin')) {
+		if ((dict.e.d.$ === 'RBNode_elm_builtin') && (dict.e.d.a.$ === 'Red')) {
+			var clr = dict.a;
+			var k = dict.b;
+			var v = dict.c;
+			var _v1 = dict.d;
+			var lClr = _v1.a;
+			var lK = _v1.b;
+			var lV = _v1.c;
+			var lLeft = _v1.d;
+			var lRight = _v1.e;
+			var _v2 = dict.e;
+			var rClr = _v2.a;
+			var rK = _v2.b;
+			var rV = _v2.c;
+			var rLeft = _v2.d;
+			var _v3 = rLeft.a;
+			var rlK = rLeft.b;
+			var rlV = rLeft.c;
+			var rlL = rLeft.d;
+			var rlR = rLeft.e;
+			var rRight = _v2.e;
+			return A5(
+				$elm$core$Dict$RBNode_elm_builtin,
+				$elm$core$Dict$Red,
+				rlK,
+				rlV,
+				A5(
+					$elm$core$Dict$RBNode_elm_builtin,
+					$elm$core$Dict$Black,
+					k,
+					v,
+					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),
+					rlL),
+				A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, rK, rV, rlR, rRight));
+		} else {
+			var clr = dict.a;
+			var k = dict.b;
+			var v = dict.c;
+			var _v4 = dict.d;
+			var lClr = _v4.a;
+			var lK = _v4.b;
+			var lV = _v4.c;
+			var lLeft = _v4.d;
+			var lRight = _v4.e;
+			var _v5 = dict.e;
+			var rClr = _v5.a;
+			var rK = _v5.b;
+			var rV = _v5.c;
+			var rLeft = _v5.d;
+			var rRight = _v5.e;
+			if (clr.$ === 'Black') {
+				return A5(
+					$elm$core$Dict$RBNode_elm_builtin,
+					$elm$core$Dict$Black,
+					k,
+					v,
+					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),
+					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight));
+			} else {
+				return A5(
+					$elm$core$Dict$RBNode_elm_builtin,
+					$elm$core$Dict$Black,
+					k,
+					v,
+					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),
+					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight));
+			}
+		}
+	} else {
+		return dict;
+	}
+};
+var $elm$core$Dict$moveRedRight = function (dict) {
+	if (((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) && (dict.e.$ === 'RBNode_elm_builtin')) {
+		if ((dict.d.d.$ === 'RBNode_elm_builtin') && (dict.d.d.a.$ === 'Red')) {
+			var clr = dict.a;
+			var k = dict.b;
+			var v = dict.c;
+			var _v1 = dict.d;
+			var lClr = _v1.a;
+			var lK = _v1.b;
+			var lV = _v1.c;
+			var _v2 = _v1.d;
+			var _v3 = _v2.a;
+			var llK = _v2.b;
+			var llV = _v2.c;
+			var llLeft = _v2.d;
+			var llRight = _v2.e;
+			var lRight = _v1.e;
+			var _v4 = dict.e;
+			var rClr = _v4.a;
+			var rK = _v4.b;
+			var rV = _v4.c;
+			var rLeft = _v4.d;
+			var rRight = _v4.e;
+			return A5(
+				$elm$core$Dict$RBNode_elm_builtin,
+				$elm$core$Dict$Red,
+				lK,
+				lV,
+				A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, llK, llV, llLeft, llRight),
+				A5(
+					$elm$core$Dict$RBNode_elm_builtin,
+					$elm$core$Dict$Black,
+					k,
+					v,
+					lRight,
+					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight)));
+		} else {
+			var clr = dict.a;
+			var k = dict.b;
+			var v = dict.c;
+			var _v5 = dict.d;
+			var lClr = _v5.a;
+			var lK = _v5.b;
+			var lV = _v5.c;
+			var lLeft = _v5.d;
+			var lRight = _v5.e;
+			var _v6 = dict.e;
+			var rClr = _v6.a;
+			var rK = _v6.b;
+			var rV = _v6.c;
+			var rLeft = _v6.d;
+			var rRight = _v6.e;
+			if (clr.$ === 'Black') {
+				return A5(
+					$elm$core$Dict$RBNode_elm_builtin,
+					$elm$core$Dict$Black,
+					k,
+					v,
+					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),
+					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight));
+			} else {
+				return A5(
+					$elm$core$Dict$RBNode_elm_builtin,
+					$elm$core$Dict$Black,
+					k,
+					v,
+					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),
+					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight));
+			}
+		}
+	} else {
+		return dict;
+	}
+};
+var $elm$core$Dict$removeHelpPrepEQGT = F7(
+	function (targetKey, dict, color, key, value, left, right) {
+		if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) {
+			var _v1 = left.a;
+			var lK = left.b;
+			var lV = left.c;
+			var lLeft = left.d;
+			var lRight = left.e;
+			return A5(
+				$elm$core$Dict$RBNode_elm_builtin,
+				color,
+				lK,
+				lV,
+				lLeft,
+				A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, key, value, lRight, right));
+		} else {
+			_v2$2:
+			while (true) {
+				if ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Black')) {
+					if (right.d.$ === 'RBNode_elm_builtin') {
+						if (right.d.a.$ === 'Black') {
+							var _v3 = right.a;
+							var _v4 = right.d;
+							var _v5 = _v4.a;
+							return $elm$core$Dict$moveRedRight(dict);
+						} else {
+							break _v2$2;
+						}
+					} else {
+						var _v6 = right.a;
+						var _v7 = right.d;
+						return $elm$core$Dict$moveRedRight(dict);
+					}
+				} else {
+					break _v2$2;
+				}
+			}
+			return dict;
+		}
+	});
+var $elm$core$Dict$removeMin = function (dict) {
+	if ((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) {
+		var color = dict.a;
+		var key = dict.b;
+		var value = dict.c;
+		var left = dict.d;
+		var lColor = left.a;
+		var lLeft = left.d;
+		var right = dict.e;
+		if (lColor.$ === 'Black') {
+			if ((lLeft.$ === 'RBNode_elm_builtin') && (lLeft.a.$ === 'Red')) {
+				var _v3 = lLeft.a;
+				return A5(
+					$elm$core$Dict$RBNode_elm_builtin,
+					color,
+					key,
+					value,
+					$elm$core$Dict$removeMin(left),
+					right);
+			} else {
+				var _v4 = $elm$core$Dict$moveRedLeft(dict);
+				if (_v4.$ === 'RBNode_elm_builtin') {
+					var nColor = _v4.a;
+					var nKey = _v4.b;
+					var nValue = _v4.c;
+					var nLeft = _v4.d;
+					var nRight = _v4.e;
+					return A5(
+						$elm$core$Dict$balance,
+						nColor,
+						nKey,
+						nValue,
+						$elm$core$Dict$removeMin(nLeft),
+						nRight);
+				} else {
+					return $elm$core$Dict$RBEmpty_elm_builtin;
+				}
+			}
+		} else {
+			return A5(
+				$elm$core$Dict$RBNode_elm_builtin,
+				color,
+				key,
+				value,
+				$elm$core$Dict$removeMin(left),
+				right);
+		}
+	} else {
+		return $elm$core$Dict$RBEmpty_elm_builtin;
+	}
+};
+var $elm$core$Dict$removeHelp = F2(
+	function (targetKey, dict) {
+		if (dict.$ === 'RBEmpty_elm_builtin') {
+			return $elm$core$Dict$RBEmpty_elm_builtin;
+		} else {
+			var color = dict.a;
+			var key = dict.b;
+			var value = dict.c;
+			var left = dict.d;
+			var right = dict.e;
+			if (_Utils_cmp(targetKey, key) < 0) {
+				if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Black')) {
+					var _v4 = left.a;
+					var lLeft = left.d;
+					if ((lLeft.$ === 'RBNode_elm_builtin') && (lLeft.a.$ === 'Red')) {
+						var _v6 = lLeft.a;
+						return A5(
+							$elm$core$Dict$RBNode_elm_builtin,
+							color,
+							key,
+							value,
+							A2($elm$core$Dict$removeHelp, targetKey, left),
+							right);
+					} else {
+						var _v7 = $elm$core$Dict$moveRedLeft(dict);
+						if (_v7.$ === 'RBNode_elm_builtin') {
+							var nColor = _v7.a;
+							var nKey = _v7.b;
+							var nValue = _v7.c;
+							var nLeft = _v7.d;
+							var nRight = _v7.e;
+							return A5(
+								$elm$core$Dict$balance,
+								nColor,
+								nKey,
+								nValue,
+								A2($elm$core$Dict$removeHelp, targetKey, nLeft),
+								nRight);
+						} else {
+							return $elm$core$Dict$RBEmpty_elm_builtin;
+						}
+					}
+				} else {
+					return A5(
+						$elm$core$Dict$RBNode_elm_builtin,
+						color,
+						key,
+						value,
+						A2($elm$core$Dict$removeHelp, targetKey, left),
+						right);
+				}
+			} else {
+				return A2(
+					$elm$core$Dict$removeHelpEQGT,
+					targetKey,
+					A7($elm$core$Dict$removeHelpPrepEQGT, targetKey, dict, color, key, value, left, right));
+			}
+		}
+	});
+var $elm$core$Dict$removeHelpEQGT = F2(
+	function (targetKey, dict) {
+		if (dict.$ === 'RBNode_elm_builtin') {
+			var color = dict.a;
+			var key = dict.b;
+			var value = dict.c;
+			var left = dict.d;
+			var right = dict.e;
+			if (_Utils_eq(targetKey, key)) {
+				var _v1 = $elm$core$Dict$getMin(right);
+				if (_v1.$ === 'RBNode_elm_builtin') {
+					var minKey = _v1.b;
+					var minValue = _v1.c;
+					return A5(
+						$elm$core$Dict$balance,
+						color,
+						minKey,
+						minValue,
+						left,
+						$elm$core$Dict$removeMin(right));
+				} else {
+					return $elm$core$Dict$RBEmpty_elm_builtin;
+				}
+			} else {
+				return A5(
+					$elm$core$Dict$balance,
+					color,
+					key,
+					value,
+					left,
+					A2($elm$core$Dict$removeHelp, targetKey, right));
+			}
+		} else {
+			return $elm$core$Dict$RBEmpty_elm_builtin;
+		}
+	});
+var $elm$core$Dict$remove = F2(
+	function (key, dict) {
+		var _v0 = A2($elm$core$Dict$removeHelp, key, dict);
+		if ((_v0.$ === 'RBNode_elm_builtin') && (_v0.a.$ === 'Red')) {
+			var _v1 = _v0.a;
+			var k = _v0.b;
+			var v = _v0.c;
+			var l = _v0.d;
+			var r = _v0.e;
+			return A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, k, v, l, r);
+		} else {
+			var x = _v0;
+			return x;
+		}
+	});
+var $elm$core$Dict$update = F3(
+	function (targetKey, alter, dictionary) {
+		var _v0 = alter(
+			A2($elm$core$Dict$get, targetKey, dictionary));
+		if (_v0.$ === 'Just') {
+			var value = _v0.a;
+			return A3($elm$core$Dict$insert, targetKey, value, dictionary);
+		} else {
+			return A2($elm$core$Dict$remove, targetKey, dictionary);
+		}
+	});
+var $elm$core$Basics$composeR = F3(
+	function (f, g, x) {
+		return g(
+			f(x));
+	});
+var $elm$http$Http$expectStringResponse = F2(
+	function (toMsg, toResult) {
+		return A3(
+			_Http_expect,
+			'',
+			$elm$core$Basics$identity,
+			A2($elm$core$Basics$composeR, toResult, toMsg));
+	});
+var $elm$core$Result$mapError = F2(
+	function (f, result) {
+		if (result.$ === 'Ok') {
+			var v = result.a;
+			return $elm$core$Result$Ok(v);
+		} else {
+			var e = result.a;
+			return $elm$core$Result$Err(
+				f(e));
+		}
+	});
+var $elm$http$Http$BadBody = function (a) {
+	return {$: 'BadBody', a: a};
+};
+var $elm$http$Http$BadStatus = function (a) {
+	return {$: 'BadStatus', a: a};
+};
+var $elm$http$Http$BadUrl = function (a) {
+	return {$: 'BadUrl', a: a};
+};
+var $elm$http$Http$NetworkError = {$: 'NetworkError'};
+var $elm$http$Http$Timeout = {$: 'Timeout'};
+var $elm$http$Http$resolve = F2(
+	function (toResult, response) {
+		switch (response.$) {
+			case 'BadUrl_':
+				var url = response.a;
+				return $elm$core$Result$Err(
+					$elm$http$Http$BadUrl(url));
+			case 'Timeout_':
+				return $elm$core$Result$Err($elm$http$Http$Timeout);
+			case 'NetworkError_':
+				return $elm$core$Result$Err($elm$http$Http$NetworkError);
+			case 'BadStatus_':
+				var metadata = response.a;
+				return $elm$core$Result$Err(
+					$elm$http$Http$BadStatus(metadata.statusCode));
+			default:
+				var body = response.b;
+				return A2(
+					$elm$core$Result$mapError,
+					$elm$http$Http$BadBody,
+					toResult(body));
+		}
+	});
+var $elm$http$Http$expectJson = F2(
+	function (toMsg, decoder) {
+		return A2(
+			$elm$http$Http$expectStringResponse,
+			toMsg,
+			$elm$http$Http$resolve(
+				function (string) {
+					return A2(
+						$elm$core$Result$mapError,
+						$elm$json$Json$Decode$errorToString,
+						A2($elm$json$Json$Decode$decodeString, decoder, string));
+				}));
+	});
+var $elm$http$Http$emptyBody = _Http_emptyBody;
+var $elm$http$Http$Request = function (a) {
+	return {$: 'Request', a: a};
+};
+var $elm$http$Http$State = F2(
+	function (reqs, subs) {
+		return {reqs: reqs, subs: subs};
+	});
+var $elm$http$Http$init = $elm$core$Task$succeed(
+	A2($elm$http$Http$State, $elm$core$Dict$empty, _List_Nil));
+var $elm$core$Process$kill = _Scheduler_kill;
+var $elm$core$Process$spawn = _Scheduler_spawn;
+var $elm$http$Http$updateReqs = F3(
+	function (router, cmds, reqs) {
+		updateReqs:
+		while (true) {
+			if (!cmds.b) {
+				return $elm$core$Task$succeed(reqs);
+			} else {
+				var cmd = cmds.a;
+				var otherCmds = cmds.b;
+				if (cmd.$ === 'Cancel') {
+					var tracker = cmd.a;
+					var _v2 = A2($elm$core$Dict$get, tracker, reqs);
+					if (_v2.$ === 'Nothing') {
+						var $temp$router = router,
+							$temp$cmds = otherCmds,
+							$temp$reqs = reqs;
+						router = $temp$router;
+						cmds = $temp$cmds;
+						reqs = $temp$reqs;
+						continue updateReqs;
+					} else {
+						var pid = _v2.a;
+						return A2(
+							$elm$core$Task$andThen,
+							function (_v3) {
+								return A3(
+									$elm$http$Http$updateReqs,
+									router,
+									otherCmds,
+									A2($elm$core$Dict$remove, tracker, reqs));
+							},
+							$elm$core$Process$kill(pid));
+					}
+				} else {
+					var req = cmd.a;
+					return A2(
+						$elm$core$Task$andThen,
+						function (pid) {
+							var _v4 = req.tracker;
+							if (_v4.$ === 'Nothing') {
+								return A3($elm$http$Http$updateReqs, router, otherCmds, reqs);
+							} else {
+								var tracker = _v4.a;
+								return A3(
+									$elm$http$Http$updateReqs,
+									router,
+									otherCmds,
+									A3($elm$core$Dict$insert, tracker, pid, reqs));
+							}
+						},
+						$elm$core$Process$spawn(
+							A3(
+								_Http_toTask,
+								router,
+								$elm$core$Platform$sendToApp(router),
+								req)));
+				}
+			}
+		}
+	});
+var $elm$http$Http$onEffects = F4(
+	function (router, cmds, subs, state) {
+		return A2(
+			$elm$core$Task$andThen,
+			function (reqs) {
+				return $elm$core$Task$succeed(
+					A2($elm$http$Http$State, reqs, subs));
+			},
+			A3($elm$http$Http$updateReqs, router, cmds, state.reqs));
+	});
+var $elm$core$List$maybeCons = F3(
+	function (f, mx, xs) {
+		var _v0 = f(mx);
+		if (_v0.$ === 'Just') {
+			var x = _v0.a;
+			return A2($elm$core$List$cons, x, xs);
+		} else {
+			return xs;
+		}
+	});
+var $elm$core$List$filterMap = F2(
+	function (f, xs) {
+		return A3(
+			$elm$core$List$foldr,
+			$elm$core$List$maybeCons(f),
+			_List_Nil,
+			xs);
+	});
+var $elm$http$Http$maybeSend = F4(
+	function (router, desiredTracker, progress, _v0) {
+		var actualTracker = _v0.a;
+		var toMsg = _v0.b;
+		return _Utils_eq(desiredTracker, actualTracker) ? $elm$core$Maybe$Just(
+			A2(
+				$elm$core$Platform$sendToApp,
+				router,
+				toMsg(progress))) : $elm$core$Maybe$Nothing;
+	});
+var $elm$http$Http$onSelfMsg = F3(
+	function (router, _v0, state) {
+		var tracker = _v0.a;
+		var progress = _v0.b;
+		return A2(
+			$elm$core$Task$andThen,
+			function (_v1) {
+				return $elm$core$Task$succeed(state);
+			},
+			$elm$core$Task$sequence(
+				A2(
+					$elm$core$List$filterMap,
+					A3($elm$http$Http$maybeSend, router, tracker, progress),
+					state.subs)));
+	});
+var $elm$http$Http$Cancel = function (a) {
+	return {$: 'Cancel', a: a};
+};
+var $elm$http$Http$cmdMap = F2(
+	function (func, cmd) {
+		if (cmd.$ === 'Cancel') {
+			var tracker = cmd.a;
+			return $elm$http$Http$Cancel(tracker);
+		} else {
+			var r = cmd.a;
+			return $elm$http$Http$Request(
+				{
+					allowCookiesFromOtherDomains: r.allowCookiesFromOtherDomains,
+					body: r.body,
+					expect: A2(_Http_mapExpect, func, r.expect),
+					headers: r.headers,
+					method: r.method,
+					timeout: r.timeout,
+					tracker: r.tracker,
+					url: r.url
+				});
+		}
+	});
+var $elm$http$Http$MySub = F2(
+	function (a, b) {
+		return {$: 'MySub', a: a, b: b};
+	});
+var $elm$http$Http$subMap = F2(
+	function (func, _v0) {
+		var tracker = _v0.a;
+		var toMsg = _v0.b;
+		return A2(
+			$elm$http$Http$MySub,
+			tracker,
+			A2($elm$core$Basics$composeR, toMsg, func));
+	});
+_Platform_effectManagers['Http'] = _Platform_createManager($elm$http$Http$init, $elm$http$Http$onEffects, $elm$http$Http$onSelfMsg, $elm$http$Http$cmdMap, $elm$http$Http$subMap);
+var $elm$http$Http$command = _Platform_leaf('Http');
+var $elm$http$Http$subscription = _Platform_leaf('Http');
+var $elm$http$Http$request = function (r) {
+	return $elm$http$Http$command(
+		$elm$http$Http$Request(
+			{allowCookiesFromOtherDomains: false, body: r.body, expect: r.expect, headers: r.headers, method: r.method, timeout: r.timeout, tracker: r.tracker, url: r.url}));
+};
+var $elm$http$Http$get = function (r) {
+	return $elm$http$Http$request(
+		{body: $elm$http$Http$emptyBody, expect: r.expect, headers: _List_Nil, method: 'GET', timeout: $elm$core$Maybe$Nothing, tracker: $elm$core$Maybe$Nothing, url: r.url});
+};
+var $author$project$Morphir$Web$DevelopMain$makeModel = $elm$http$Http$get(
+	{
+		expect: A2($elm$http$Http$expectJson, $author$project$Morphir$Web$DevelopMain$MakeResult, $author$project$Morphir$Web$DevelopMain$distributionDecoder),
+		url: '/server/make'
+	});
+var $author$project$Morphir$Web$DevelopMain$init = function (_v0) {
+	return _Utils_Tuple2($author$project$Morphir$Web$DevelopMain$WaitingForResponse, $author$project$Morphir$Web$DevelopMain$makeModel);
+};
+var $elm$core$Platform$Sub$batch = _Platform_batch;
+var $elm$core$Platform$Sub$none = $elm$core$Platform$Sub$batch(_List_Nil);
+var $author$project$Morphir$Web$DevelopMain$subscriptions = function (model) {
+	return $elm$core$Platform$Sub$none;
+};
+var $author$project$Morphir$Web$DevelopMain$FunctionSelected = F4(
+	function (a, b, c, d) {
+		return {$: 'FunctionSelected', a: a, b: b, c: c, d: d};
+	});
+var $author$project$Morphir$Web$DevelopMain$HttpFailure = function (a) {
+	return {$: 'HttpFailure', a: a};
+};
+var $author$project$Morphir$Web$DevelopMain$MakeComplete = function (a) {
+	return {$: 'MakeComplete', a: a};
+};
+var $elm$core$Maybe$andThen = F2(
+	function (callback, maybeValue) {
+		if (maybeValue.$ === 'Just') {
+			var value = maybeValue.a;
+			return callback(value);
+		} else {
+			return $elm$core$Maybe$Nothing;
+		}
+	});
+var $author$project$Morphir$IR$QName$QName = F2(
+	function (a, b) {
+		return {$: 'QName', a: a, b: b};
+	});
+var $elm$regex$Regex$Match = F4(
+	function (match, index, number, submatches) {
+		return {index: index, match: match, number: number, submatches: submatches};
+	});
+var $elm$regex$Regex$find = _Regex_findAtMost(_Regex_infinity);
+var $elm$regex$Regex$fromStringWith = _Regex_fromStringWith;
+var $elm$regex$Regex$fromString = function (string) {
+	return A2(
+		$elm$regex$Regex$fromStringWith,
+		{caseInsensitive: false, multiline: false},
+		string);
+};
+var $elm$regex$Regex$never = _Regex_never;
+var $elm$core$String$toLower = _String_toLower;
+var $elm$core$Maybe$withDefault = F2(
+	function (_default, maybe) {
+		if (maybe.$ === 'Just') {
+			var value = maybe.a;
+			return value;
+		} else {
+			return _default;
+		}
+	});
+var $author$project$Morphir$IR$Name$fromString = function (string) {
+	var wordPattern = A2(
+		$elm$core$Maybe$withDefault,
+		$elm$regex$Regex$never,
+		$elm$regex$Regex$fromString('([a-zA-Z][a-z]*|[0-9]+)'));
+	return $author$project$Morphir$IR$Name$fromList(
+		A2(
+			$elm$core$List$map,
+			$elm$core$String$toLower,
+			A2(
+				$elm$core$List$map,
+				function ($) {
+					return $.match;
+				},
+				A2($elm$regex$Regex$find, wordPattern, string))));
+};
+var $elm$regex$Regex$split = _Regex_splitAtMost(_Regex_infinity);
+var $author$project$Morphir$IR$Path$fromString = function (string) {
+	var separatorRegex = A2(
+		$elm$core$Maybe$withDefault,
+		$elm$regex$Regex$never,
+		$elm$regex$Regex$fromString('[^\\w\\s]+'));
+	return $author$project$Morphir$IR$Path$fromList(
+		A2(
+			$elm$core$List$map,
+			$author$project$Morphir$IR$Name$fromString,
+			A2($elm$regex$Regex$split, separatorRegex, string)));
+};
+var $author$project$Morphir$IR$QName$fromString = function (qNameString) {
+	var _v0 = A2($elm$core$String$split, ':', qNameString);
+	if ((_v0.b && _v0.b.b) && (!_v0.b.b.b)) {
+		var packageNameString = _v0.a;
+		var _v1 = _v0.b;
+		var localNameString = _v1.a;
+		return $elm$core$Maybe$Just(
+			A2(
+				$author$project$Morphir$IR$QName$QName,
+				$author$project$Morphir$IR$Path$fromString(packageNameString),
+				$author$project$Morphir$IR$Name$fromString(localNameString)));
+	} else {
+		return $elm$core$Maybe$Nothing;
+	}
+};
+var $elm$core$Maybe$map = F2(
+	function (f, maybe) {
+		if (maybe.$ === 'Just') {
+			var value = maybe.a;
+			return $elm$core$Maybe$Just(
+				f(value));
+		} else {
+			return $elm$core$Maybe$Nothing;
+		}
+	});
+var $author$project$Morphir$IR$AccessControlled$withPrivateAccess = function (ac) {
+	var _v0 = ac.access;
+	if (_v0.$ === 'Public') {
+		return ac.value;
+	} else {
+		return ac.value;
+	}
+};
+var $author$project$Morphir$IR$Package$lookupModuleDefinition = F2(
+	function (modulePath, packageDef) {
+		return A2(
+			$elm$core$Maybe$map,
+			$author$project$Morphir$IR$AccessControlled$withPrivateAccess,
+			A2($elm$core$Dict$get, modulePath, packageDef.modules));
+	});
+var $author$project$Morphir$IR$Module$lookupValueDefinition = F2(
+	function (localName, moduleDef) {
+		return A2(
+			$elm$core$Maybe$map,
+			$author$project$Morphir$IR$AccessControlled$withPrivateAccess,
+			A2($elm$core$Dict$get, localName, moduleDef.values));
+	});
+var $author$project$Morphir$IR$Distribution$lookupValueDefinition = F2(
+	function (_v0, distribution) {
+		var moduleName = _v0.a;
+		var localName = _v0.b;
+		var packageDef = distribution.c;
+		return A2(
+			$elm$core$Maybe$andThen,
+			$author$project$Morphir$IR$Module$lookupValueDefinition(localName),
+			A2($author$project$Morphir$IR$Package$lookupModuleDefinition, moduleName, packageDef));
+	});
+var $elm$core$Platform$Cmd$batch = _Platform_batch;
+var $elm$core$Platform$Cmd$none = $elm$core$Platform$Cmd$batch(_List_Nil);
+var $elm$core$Result$toMaybe = function (result) {
+	if (result.$ === 'Ok') {
+		var v = result.a;
+		return $elm$core$Maybe$Just(v);
+	} else {
+		return $elm$core$Maybe$Nothing;
+	}
+};
+var $author$project$Morphir$Web$DevelopMain$update = F2(
+	function (msg, model) {
+		var getDistribution = function () {
+			switch (model.$) {
+				case 'MakeComplete':
+					var result = model.a;
+					return $elm$core$Result$toMaybe(result);
+				case 'FunctionSelected':
+					var distribution = model.a;
+					return $elm$core$Maybe$Just(distribution);
+				default:
+					return $elm$core$Maybe$Nothing;
+			}
+		}();
+		switch (msg.$) {
+			case 'Make':
+				return _Utils_Tuple2($author$project$Morphir$Web$DevelopMain$WaitingForResponse, $author$project$Morphir$Web$DevelopMain$makeModel);
+			case 'MakeResult':
+				var result = msg.a;
+				if (result.$ === 'Ok') {
+					var distributionResult = result.a;
+					return _Utils_Tuple2(
+						$author$project$Morphir$Web$DevelopMain$MakeComplete(distributionResult),
+						$elm$core$Platform$Cmd$none);
+				} else {
+					var error = result.a;
+					return _Utils_Tuple2(
+						$author$project$Morphir$Web$DevelopMain$HttpFailure(error),
+						$elm$core$Platform$Cmd$none);
+				}
+			case 'SelectFunction':
+				var valueID = msg.a;
+				return A2(
+					$elm$core$Maybe$withDefault,
+					_Utils_Tuple2(model, $elm$core$Platform$Cmd$none),
+					A2(
+						$elm$core$Maybe$andThen,
+						function (qName) {
+							return A2(
+								$elm$core$Maybe$map,
+								function (m) {
+									return _Utils_Tuple2(m, $elm$core$Platform$Cmd$none);
+								},
+								A2(
+									$elm$core$Maybe$andThen,
+									function (distribution) {
+										return A2(
+											$elm$core$Maybe$map,
+											function (valueDef) {
+												return A4($author$project$Morphir$Web$DevelopMain$FunctionSelected, distribution, qName, valueDef, $elm$core$Dict$empty);
+											},
+											A2($author$project$Morphir$IR$Distribution$lookupValueDefinition, qName, distribution));
+									},
+									getDistribution));
+						},
+						$author$project$Morphir$IR$QName$fromString(valueID)));
+			case 'UpdateArgumentValue':
+				var argName = msg.a;
+				var argValue = msg.b;
+				if (model.$ === 'FunctionSelected') {
+					var distribution = model.a;
+					var qName = model.b;
+					var valueDef = model.c;
+					var argValues = model.d;
+					return _Utils_Tuple2(
+						A4(
+							$author$project$Morphir$Web$DevelopMain$FunctionSelected,
+							distribution,
+							qName,
+							valueDef,
+							A3(
+								$elm$core$Dict$insert,
+								argName,
+								$elm$core$Result$Ok(argValue),
+								argValues)),
+						$elm$core$Platform$Cmd$none);
+				} else {
+					return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
+				}
+			default:
+				var argName = msg.a;
+				var message = msg.b;
+				if (model.$ === 'FunctionSelected') {
+					var distribution = model.a;
+					var qName = model.b;
+					var valueDef = model.c;
+					var argValues = model.d;
+					return _Utils_Tuple2(
+						A4(
+							$author$project$Morphir$Web$DevelopMain$FunctionSelected,
+							distribution,
+							qName,
+							valueDef,
+							A3(
+								$elm$core$Dict$insert,
+								argName,
+								$elm$core$Result$Err(message),
+								argValues)),
+						$elm$core$Platform$Cmd$none);
+				} else {
+					return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
+				}
+		}
+	});
+var $author$project$Morphir$Web$DevelopMain$Make = {$: 'Make'};
+var $mdgriffith$elm_ui$Internal$Model$Rgba = F4(
+	function (a, b, c, d) {
+		return {$: 'Rgba', a: a, b: b, c: c, d: d};
+	});
+var $mdgriffith$elm_ui$Element$rgb255 = F3(
+	function (red, green, blue) {
+		return A4($mdgriffith$elm_ui$Internal$Model$Rgba, red / 255, green / 255, blue / 255, 1);
+	});
+var $author$project$Morphir$Web$Theme$Light$blue = A3($mdgriffith$elm_ui$Element$rgb255, 0, 163, 225);
+var $mdgriffith$elm_ui$Internal$Model$Colored = F3(
+	function (a, b, c) {
+		return {$: 'Colored', a: a, b: b, c: c};
+	});
+var $mdgriffith$elm_ui$Internal$Model$StyleClass = F2(
+	function (a, b) {
+		return {$: 'StyleClass', a: a, b: b};
+	});
+var $mdgriffith$elm_ui$Internal$Flag$Flag = function (a) {
+	return {$: 'Flag', a: a};
+};
+var $mdgriffith$elm_ui$Internal$Flag$Second = function (a) {
+	return {$: 'Second', a: a};
+};
+var $elm$core$Bitwise$shiftLeftBy = _Bitwise_shiftLeftBy;
+var $mdgriffith$elm_ui$Internal$Flag$flag = function (i) {
+	return (i > 31) ? $mdgriffith$elm_ui$Internal$Flag$Second(1 << (i - 32)) : $mdgriffith$elm_ui$Internal$Flag$Flag(1 << i);
+};
+var $mdgriffith$elm_ui$Internal$Flag$bgColor = $mdgriffith$elm_ui$Internal$Flag$flag(8);
+var $elm$core$Basics$round = _Basics_round;
+var $mdgriffith$elm_ui$Internal$Model$floatClass = function (x) {
+	return $elm$core$String$fromInt(
+		$elm$core$Basics$round(x * 255));
+};
+var $mdgriffith$elm_ui$Internal$Model$formatColorClass = function (_v0) {
+	var red = _v0.a;
+	var green = _v0.b;
+	var blue = _v0.c;
+	var alpha = _v0.d;
+	return $mdgriffith$elm_ui$Internal$Model$floatClass(red) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(green) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(blue) + ('-' + $mdgriffith$elm_ui$Internal$Model$floatClass(alpha))))));
+};
+var $mdgriffith$elm_ui$Element$Background$color = function (clr) {
+	return A2(
+		$mdgriffith$elm_ui$Internal$Model$StyleClass,
+		$mdgriffith$elm_ui$Internal$Flag$bgColor,
+		A3(
+			$mdgriffith$elm_ui$Internal$Model$Colored,
+			'bg-' + $mdgriffith$elm_ui$Internal$Model$formatColorClass(clr),
+			'background-color',
+			clr));
+};
+var $mdgriffith$elm_ui$Internal$Model$Unkeyed = function (a) {
+	return {$: 'Unkeyed', a: a};
+};
+var $mdgriffith$elm_ui$Internal$Model$AsColumn = {$: 'AsColumn'};
+var $mdgriffith$elm_ui$Internal$Model$asColumn = $mdgriffith$elm_ui$Internal$Model$AsColumn;
+var $mdgriffith$elm_ui$Internal$Style$classes = {above: 'a', active: 'atv', alignBottom: 'ab', alignCenterX: 'cx', alignCenterY: 'cy', alignContainerBottom: 'acb', alignContainerCenterX: 'accx', alignContainerCenterY: 'accy', alignContainerRight: 'acr', alignLeft: 'al', alignRight: 'ar', alignTop: 'at', alignedHorizontally: 'ah', alignedVertically: 'av', any: 's', behind: 'bh', below: 'b', bold: 'w7', borderDashed: 'bd', borderDotted: 'bdt', borderNone: 'bn', borderSolid: 'bs', capturePointerEvents: 'cpe', clip: 'cp', clipX: 'cpx', clipY: 'cpy', column: 'c', container: 'ctr', contentBottom: 'cb', contentCenterX: 'ccx', contentCenterY: 'ccy', contentLeft: 'cl', contentRight: 'cr', contentTop: 'ct', cursorPointer: 'cptr', cursorText: 'ctxt', focus: 'fcs', focusedWithin: 'focus-within', fullSize: 'fs', grid: 'g', hasBehind: 'hbh', heightContent: 'hc', heightExact: 'he', heightFill: 'hf', heightFillPortion: 'hfp', hover: 'hv', imageContainer: 'ic', inFront: 'fr', inputLabel: 'lbl', inputMultiline: 'iml', inputMultilineFiller: 'imlf', inputMultilineParent: 'imlp', inputMultilineWrapper: 'implw', inputText: 'it', italic: 'i', link: 'lnk', nearby: 'nb', noTextSelection: 'notxt', onLeft: 'ol', onRight: 'or', opaque: 'oq', overflowHidden: 'oh', page: 'pg', paragraph: 'p', passPointerEvents: 'ppe', root: 'ui', row: 'r', scrollbars: 'sb', scrollbarsX: 'sbx', scrollbarsY: 'sby', seButton: 'sbt', single: 'e', sizeByCapital: 'cap', spaceEvenly: 'sev', strike: 'sk', text: 't', textCenter: 'tc', textExtraBold: 'w8', textExtraLight: 'w2', textHeavy: 'w9', textJustify: 'tj', textJustifyAll: 'tja', textLeft: 'tl', textLight: 'w3', textMedium: 'w5', textNormalWeight: 'w4', textRight: 'tr', textSemiBold: 'w6', textThin: 'w1', textUnitalicized: 'tun', transition: 'ts', transparent: 'clr', underline: 'u', widthContent: 'wc', widthExact: 'we', widthFill: 'wf', widthFillPortion: 'wfp', wrapped: 'wrp'};
+var $mdgriffith$elm_ui$Internal$Model$Generic = {$: 'Generic'};
+var $mdgriffith$elm_ui$Internal$Model$div = $mdgriffith$elm_ui$Internal$Model$Generic;
+var $mdgriffith$elm_ui$Internal$Model$NoNearbyChildren = {$: 'NoNearbyChildren'};
+var $mdgriffith$elm_ui$Internal$Model$columnClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.column);
+var $mdgriffith$elm_ui$Internal$Model$gridClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.grid);
+var $mdgriffith$elm_ui$Internal$Model$pageClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.page);
+var $mdgriffith$elm_ui$Internal$Model$paragraphClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.paragraph);
+var $mdgriffith$elm_ui$Internal$Model$rowClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.row);
+var $mdgriffith$elm_ui$Internal$Model$singleClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.single);
+var $mdgriffith$elm_ui$Internal$Model$contextClasses = function (context) {
+	switch (context.$) {
+		case 'AsRow':
+			return $mdgriffith$elm_ui$Internal$Model$rowClass;
+		case 'AsColumn':
+			return $mdgriffith$elm_ui$Internal$Model$columnClass;
+		case 'AsEl':
+			return $mdgriffith$elm_ui$Internal$Model$singleClass;
+		case 'AsGrid':
+			return $mdgriffith$elm_ui$Internal$Model$gridClass;
+		case 'AsParagraph':
+			return $mdgriffith$elm_ui$Internal$Model$paragraphClass;
+		default:
+			return $mdgriffith$elm_ui$Internal$Model$pageClass;
+	}
+};
+var $mdgriffith$elm_ui$Internal$Model$Keyed = function (a) {
+	return {$: 'Keyed', a: a};
+};
+var $mdgriffith$elm_ui$Internal$Model$NoStyleSheet = {$: 'NoStyleSheet'};
+var $mdgriffith$elm_ui$Internal$Model$Styled = function (a) {
+	return {$: 'Styled', a: a};
+};
+var $mdgriffith$elm_ui$Internal$Model$Unstyled = function (a) {
+	return {$: 'Unstyled', a: a};
+};
+var $mdgriffith$elm_ui$Internal$Model$addChildren = F2(
+	function (existing, nearbyChildren) {
+		switch (nearbyChildren.$) {
+			case 'NoNearbyChildren':
+				return existing;
+			case 'ChildrenBehind':
+				var behind = nearbyChildren.a;
+				return _Utils_ap(behind, existing);
+			case 'ChildrenInFront':
+				var inFront = nearbyChildren.a;
+				return _Utils_ap(existing, inFront);
+			default:
+				var behind = nearbyChildren.a;
+				var inFront = nearbyChildren.b;
+				return _Utils_ap(
+					behind,
+					_Utils_ap(existing, inFront));
+		}
+	});
+var $mdgriffith$elm_ui$Internal$Model$addKeyedChildren = F3(
+	function (key, existing, nearbyChildren) {
+		switch (nearbyChildren.$) {
+			case 'NoNearbyChildren':
+				return existing;
+			case 'ChildrenBehind':
+				var behind = nearbyChildren.a;
+				return _Utils_ap(
+					A2(
+						$elm$core$List$map,
+						function (x) {
+							return _Utils_Tuple2(key, x);
+						},
+						behind),
+					existing);
+			case 'ChildrenInFront':
+				var inFront = nearbyChildren.a;
+				return _Utils_ap(
+					existing,
+					A2(
+						$elm$core$List$map,
+						function (x) {
+							return _Utils_Tuple2(key, x);
+						},
+						inFront));
+			default:
+				var behind = nearbyChildren.a;
+				var inFront = nearbyChildren.b;
+				return _Utils_ap(
+					A2(
+						$elm$core$List$map,
+						function (x) {
+							return _Utils_Tuple2(key, x);
+						},
+						behind),
+					_Utils_ap(
+						existing,
+						A2(
+							$elm$core$List$map,
+							function (x) {
+								return _Utils_Tuple2(key, x);
+							},
+							inFront)));
+		}
+	});
+var $mdgriffith$elm_ui$Internal$Model$AsEl = {$: 'AsEl'};
+var $mdgriffith$elm_ui$Internal$Model$asEl = $mdgriffith$elm_ui$Internal$Model$AsEl;
+var $mdgriffith$elm_ui$Internal$Model$AsParagraph = {$: 'AsParagraph'};
+var $mdgriffith$elm_ui$Internal$Model$asParagraph = $mdgriffith$elm_ui$Internal$Model$AsParagraph;
+var $mdgriffith$elm_ui$Internal$Flag$alignBottom = $mdgriffith$elm_ui$Internal$Flag$flag(41);
+var $mdgriffith$elm_ui$Internal$Flag$alignRight = $mdgriffith$elm_ui$Internal$Flag$flag(40);
+var $mdgriffith$elm_ui$Internal$Flag$centerX = $mdgriffith$elm_ui$Internal$Flag$flag(42);
+var $mdgriffith$elm_ui$Internal$Flag$centerY = $mdgriffith$elm_ui$Internal$Flag$flag(43);
+var $elm$json$Json$Encode$string = _Json_wrap;
+var $elm$html$Html$Attributes$stringProperty = F2(
+	function (key, string) {
+		return A2(
+			_VirtualDom_property,
+			key,
+			$elm$json$Json$Encode$string(string));
+	});
+var $elm$html$Html$Attributes$class = $elm$html$Html$Attributes$stringProperty('className');
+var $elm$html$Html$div = _VirtualDom_node('div');
+var $elm$core$Set$Set_elm_builtin = function (a) {
+	return {$: 'Set_elm_builtin', a: a};
+};
+var $elm$core$Set$empty = $elm$core$Set$Set_elm_builtin($elm$core$Dict$empty);
+var $mdgriffith$elm_ui$Internal$Model$lengthClassName = function (x) {
+	switch (x.$) {
+		case 'Px':
+			var px = x.a;
+			return $elm$core$String$fromInt(px) + 'px';
+		case 'Content':
+			return 'auto';
+		case 'Fill':
+			var i = x.a;
+			return $elm$core$String$fromInt(i) + 'fr';
+		case 'Min':
+			var min = x.a;
+			var len = x.b;
+			return 'min' + ($elm$core$String$fromInt(min) + $mdgriffith$elm_ui$Internal$Model$lengthClassName(len));
+		default:
+			var max = x.a;
+			var len = x.b;
+			return 'max' + ($elm$core$String$fromInt(max) + $mdgriffith$elm_ui$Internal$Model$lengthClassName(len));
+	}
+};
+var $elm$core$Tuple$second = function (_v0) {
+	var y = _v0.b;
+	return y;
+};
+var $mdgriffith$elm_ui$Internal$Model$transformClass = function (transform) {
+	switch (transform.$) {
+		case 'Untransformed':
+			return $elm$core$Maybe$Nothing;
+		case 'Moved':
+			var _v1 = transform.a;
+			var x = _v1.a;
+			var y = _v1.b;
+			var z = _v1.c;
+			return $elm$core$Maybe$Just(
+				'mv-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(x) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(y) + ('-' + $mdgriffith$elm_ui$Internal$Model$floatClass(z))))));
+		default:
+			var _v2 = transform.a;
+			var tx = _v2.a;
+			var ty = _v2.b;
+			var tz = _v2.c;
+			var _v3 = transform.b;
+			var sx = _v3.a;
+			var sy = _v3.b;
+			var sz = _v3.c;
+			var _v4 = transform.c;
+			var ox = _v4.a;
+			var oy = _v4.b;
+			var oz = _v4.c;
+			var angle = transform.d;
+			return $elm$core$Maybe$Just(
+				'tfrm-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(tx) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(ty) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(tz) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(sx) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(sy) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(sz) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(ox) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(oy) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(oz) + ('-' + $mdgriffith$elm_ui$Internal$Model$floatClass(angle))))))))))))))))))));
+	}
+};
+var $mdgriffith$elm_ui$Internal$Model$getStyleName = function (style) {
+	switch (style.$) {
+		case 'Shadows':
+			var name = style.a;
+			return name;
+		case 'Transparency':
+			var name = style.a;
+			var o = style.b;
+			return name;
+		case 'Style':
+			var _class = style.a;
+			return _class;
+		case 'FontFamily':
+			var name = style.a;
+			return name;
+		case 'FontSize':
+			var i = style.a;
+			return 'font-size-' + $elm$core$String$fromInt(i);
+		case 'Single':
+			var _class = style.a;
+			return _class;
+		case 'Colored':
+			var _class = style.a;
+			return _class;
+		case 'SpacingStyle':
+			var cls = style.a;
+			var x = style.b;
+			var y = style.c;
+			return cls;
+		case 'PaddingStyle':
+			var cls = style.a;
+			var top = style.b;
+			var right = style.c;
+			var bottom = style.d;
+			var left = style.e;
+			return cls;
+		case 'BorderWidth':
+			var cls = style.a;
+			var top = style.b;
+			var right = style.c;
+			var bottom = style.d;
+			var left = style.e;
+			return cls;
+		case 'GridTemplateStyle':
+			var template = style.a;
+			return 'grid-rows-' + (A2(
+				$elm$core$String$join,
+				'-',
+				A2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$lengthClassName, template.rows)) + ('-cols-' + (A2(
+				$elm$core$String$join,
+				'-',
+				A2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$lengthClassName, template.columns)) + ('-space-x-' + ($mdgriffith$elm_ui$Internal$Model$lengthClassName(template.spacing.a) + ('-space-y-' + $mdgriffith$elm_ui$Internal$Model$lengthClassName(template.spacing.b)))))));
+		case 'GridPosition':
+			var pos = style.a;
+			return 'gp grid-pos-' + ($elm$core$String$fromInt(pos.row) + ('-' + ($elm$core$String$fromInt(pos.col) + ('-' + ($elm$core$String$fromInt(pos.width) + ('-' + $elm$core$String$fromInt(pos.height)))))));
+		case 'PseudoSelector':
+			var selector = style.a;
+			var subStyle = style.b;
+			var name = function () {
+				switch (selector.$) {
+					case 'Focus':
+						return 'fs';
+					case 'Hover':
+						return 'hv';
+					default:
+						return 'act';
+				}
+			}();
+			return A2(
+				$elm$core$String$join,
+				' ',
+				A2(
+					$elm$core$List$map,
+					function (sty) {
+						var _v1 = $mdgriffith$elm_ui$Internal$Model$getStyleName(sty);
+						if (_v1 === '') {
+							return '';
+						} else {
+							var styleName = _v1;
+							return styleName + ('-' + name);
+						}
+					},
+					subStyle));
+		default:
+			var x = style.a;
+			return A2(
+				$elm$core$Maybe$withDefault,
+				'',
+				$mdgriffith$elm_ui$Internal$Model$transformClass(x));
+	}
+};
+var $elm$core$Set$insert = F2(
+	function (key, _v0) {
+		var dict = _v0.a;
+		return $elm$core$Set$Set_elm_builtin(
+			A3($elm$core$Dict$insert, key, _Utils_Tuple0, dict));
+	});
+var $elm$core$Dict$member = F2(
+	function (key, dict) {
+		var _v0 = A2($elm$core$Dict$get, key, dict);
+		if (_v0.$ === 'Just') {
+			return true;
+		} else {
+			return false;
+		}
+	});
+var $elm$core$Set$member = F2(
+	function (key, _v0) {
+		var dict = _v0.a;
+		return A2($elm$core$Dict$member, key, dict);
+	});
+var $mdgriffith$elm_ui$Internal$Model$reduceStyles = F2(
+	function (style, nevermind) {
+		var cache = nevermind.a;
+		var existing = nevermind.b;
+		var styleName = $mdgriffith$elm_ui$Internal$Model$getStyleName(style);
+		return A2($elm$core$Set$member, styleName, cache) ? nevermind : _Utils_Tuple2(
+			A2($elm$core$Set$insert, styleName, cache),
+			A2($elm$core$List$cons, style, existing));
+	});
+var $mdgriffith$elm_ui$Internal$Model$Property = F2(
+	function (a, b) {
+		return {$: 'Property', a: a, b: b};
+	});
+var $mdgriffith$elm_ui$Internal$Model$Style = F2(
+	function (a, b) {
+		return {$: 'Style', a: a, b: b};
+	});
+var $mdgriffith$elm_ui$Internal$Style$dot = function (c) {
+	return '.' + c;
+};
+var $elm$core$String$fromFloat = _String_fromNumber;
+var $mdgriffith$elm_ui$Internal$Model$formatColor = function (_v0) {
+	var red = _v0.a;
+	var green = _v0.b;
+	var blue = _v0.c;
+	var alpha = _v0.d;
+	return 'rgba(' + ($elm$core$String$fromInt(
+		$elm$core$Basics$round(red * 255)) + ((',' + $elm$core$String$fromInt(
+		$elm$core$Basics$round(green * 255))) + ((',' + $elm$core$String$fromInt(
+		$elm$core$Basics$round(blue * 255))) + (',' + ($elm$core$String$fromFloat(alpha) + ')')))));
+};
+var $mdgriffith$elm_ui$Internal$Model$formatBoxShadow = function (shadow) {
+	return A2(
+		$elm$core$String$join,
+		' ',
+		A2(
+			$elm$core$List$filterMap,
+			$elm$core$Basics$identity,
+			_List_fromArray(
+				[
+					shadow.inset ? $elm$core$Maybe$Just('inset') : $elm$core$Maybe$Nothing,
+					$elm$core$Maybe$Just(
+					$elm$core$String$fromFloat(shadow.offset.a) + 'px'),
+					$elm$core$Maybe$Just(
+					$elm$core$String$fromFloat(shadow.offset.b) + 'px'),
+					$elm$core$Maybe$Just(
+					$elm$core$String$fromFloat(shadow.blur) + 'px'),
+					$elm$core$Maybe$Just(
+					$elm$core$String$fromFloat(shadow.size) + 'px'),
+					$elm$core$Maybe$Just(
+					$mdgriffith$elm_ui$Internal$Model$formatColor(shadow.color))
+				])));
+};
+var $elm$core$Tuple$mapFirst = F2(
+	function (func, _v0) {
+		var x = _v0.a;
+		var y = _v0.b;
+		return _Utils_Tuple2(
+			func(x),
+			y);
+	});
+var $elm$core$Tuple$mapSecond = F2(
+	function (func, _v0) {
+		var x = _v0.a;
+		var y = _v0.b;
+		return _Utils_Tuple2(
+			x,
+			func(y));
+	});
+var $mdgriffith$elm_ui$Internal$Model$renderFocusStyle = function (focus) {
+	return _List_fromArray(
+		[
+			A2(
+			$mdgriffith$elm_ui$Internal$Model$Style,
+			$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.focusedWithin) + ':focus-within',
+			A2(
+				$elm$core$List$filterMap,
+				$elm$core$Basics$identity,
+				_List_fromArray(
+					[
+						A2(
+						$elm$core$Maybe$map,
+						function (color) {
+							return A2(
+								$mdgriffith$elm_ui$Internal$Model$Property,
+								'border-color',
+								$mdgriffith$elm_ui$Internal$Model$formatColor(color));
+						},
+						focus.borderColor),
+						A2(
+						$elm$core$Maybe$map,
+						function (color) {
+							return A2(
+								$mdgriffith$elm_ui$Internal$Model$Property,
+								'background-color',
+								$mdgriffith$elm_ui$Internal$Model$formatColor(color));
+						},
+						focus.backgroundColor),
+						A2(
+						$elm$core$Maybe$map,
+						function (shadow) {
+							return A2(
+								$mdgriffith$elm_ui$Internal$Model$Property,
+								'box-shadow',
+								$mdgriffith$elm_ui$Internal$Model$formatBoxShadow(
+									{
+										blur: shadow.blur,
+										color: shadow.color,
+										inset: false,
+										offset: A2(
+											$elm$core$Tuple$mapSecond,
+											$elm$core$Basics$toFloat,
+											A2($elm$core$Tuple$mapFirst, $elm$core$Basics$toFloat, shadow.offset)),
+										size: shadow.size
+									}));
+						},
+						focus.shadow),
+						$elm$core$Maybe$Just(
+						A2($mdgriffith$elm_ui$Internal$Model$Property, 'outline', 'none'))
+					]))),
+			A2(
+			$mdgriffith$elm_ui$Internal$Model$Style,
+			($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ':focus .focusable, ') + (($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + '.focusable:focus, ') + ('.ui-slide-bar:focus + ' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ' .focusable-thumb'))),
+			A2(
+				$elm$core$List$filterMap,
+				$elm$core$Basics$identity,
+				_List_fromArray(
+					[
+						A2(
+						$elm$core$Maybe$map,
+						function (color) {
+							return A2(
+								$mdgriffith$elm_ui$Internal$Model$Property,
+								'border-color',
+								$mdgriffith$elm_ui$Internal$Model$formatColor(color));
+						},
+						focus.borderColor),
+						A2(
+						$elm$core$Maybe$map,
+						function (color) {
+							return A2(
+								$mdgriffith$elm_ui$Internal$Model$Property,
+								'background-color',
+								$mdgriffith$elm_ui$Internal$Model$formatColor(color));
+						},
+						focus.backgroundColor),
+						A2(
+						$elm$core$Maybe$map,
+						function (shadow) {
+							return A2(
+								$mdgriffith$elm_ui$Internal$Model$Property,
+								'box-shadow',
+								$mdgriffith$elm_ui$Internal$Model$formatBoxShadow(
+									{
+										blur: shadow.blur,
+										color: shadow.color,
+										inset: false,
+										offset: A2(
+											$elm$core$Tuple$mapSecond,
+											$elm$core$Basics$toFloat,
+											A2($elm$core$Tuple$mapFirst, $elm$core$Basics$toFloat, shadow.offset)),
+										size: shadow.size
+									}));
+						},
+						focus.shadow),
+						$elm$core$Maybe$Just(
+						A2($mdgriffith$elm_ui$Internal$Model$Property, 'outline', 'none'))
+					])))
+		]);
+};
+var $elm$virtual_dom$VirtualDom$node = function (tag) {
+	return _VirtualDom_node(
+		_VirtualDom_noScript(tag));
+};
+var $elm$virtual_dom$VirtualDom$property = F2(
+	function (key, value) {
+		return A2(
+			_VirtualDom_property,
+			_VirtualDom_noInnerHtmlOrFormAction(key),
+			_VirtualDom_noJavaScriptOrHtmlUri(value));
+	});
+var $mdgriffith$elm_ui$Internal$Style$AllChildren = F2(
+	function (a, b) {
+		return {$: 'AllChildren', a: a, b: b};
+	});
+var $mdgriffith$elm_ui$Internal$Style$Batch = function (a) {
+	return {$: 'Batch', a: a};
+};
+var $mdgriffith$elm_ui$Internal$Style$Child = F2(
+	function (a, b) {
+		return {$: 'Child', a: a, b: b};
+	});
+var $mdgriffith$elm_ui$Internal$Style$Class = F2(
+	function (a, b) {
+		return {$: 'Class', a: a, b: b};
+	});
+var $mdgriffith$elm_ui$Internal$Style$Descriptor = F2(
+	function (a, b) {
+		return {$: 'Descriptor', a: a, b: b};
+	});
+var $mdgriffith$elm_ui$Internal$Style$Left = {$: 'Left'};
+var $mdgriffith$elm_ui$Internal$Style$Prop = F2(
+	function (a, b) {
+		return {$: 'Prop', a: a, b: b};
+	});
+var $mdgriffith$elm_ui$Internal$Style$Right = {$: 'Right'};
+var $mdgriffith$elm_ui$Internal$Style$Self = function (a) {
+	return {$: 'Self', a: a};
+};
+var $mdgriffith$elm_ui$Internal$Style$Supports = F2(
+	function (a, b) {
+		return {$: 'Supports', a: a, b: b};
+	});
+var $mdgriffith$elm_ui$Internal$Style$Content = function (a) {
+	return {$: 'Content', a: a};
+};
+var $mdgriffith$elm_ui$Internal$Style$Bottom = {$: 'Bottom'};
+var $mdgriffith$elm_ui$Internal$Style$CenterX = {$: 'CenterX'};
+var $mdgriffith$elm_ui$Internal$Style$CenterY = {$: 'CenterY'};
+var $mdgriffith$elm_ui$Internal$Style$Top = {$: 'Top'};
+var $mdgriffith$elm_ui$Internal$Style$alignments = _List_fromArray(
+	[$mdgriffith$elm_ui$Internal$Style$Top, $mdgriffith$elm_ui$Internal$Style$Bottom, $mdgriffith$elm_ui$Internal$Style$Right, $mdgriffith$elm_ui$Internal$Style$Left, $mdgriffith$elm_ui$Internal$Style$CenterX, $mdgriffith$elm_ui$Internal$Style$CenterY]);
+var $elm$core$List$append = F2(
+	function (xs, ys) {
+		if (!ys.b) {
+			return xs;
+		} else {
+			return A3($elm$core$List$foldr, $elm$core$List$cons, ys, xs);
+		}
+	});
+var $elm$core$List$concat = function (lists) {
+	return A3($elm$core$List$foldr, $elm$core$List$append, _List_Nil, lists);
+};
+var $elm$core$List$concatMap = F2(
+	function (f, list) {
+		return $elm$core$List$concat(
+			A2($elm$core$List$map, f, list));
+	});
+var $mdgriffith$elm_ui$Internal$Style$contentName = function (desc) {
+	switch (desc.a.$) {
+		case 'Top':
+			var _v1 = desc.a;
+			return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentTop);
+		case 'Bottom':
+			var _v2 = desc.a;
+			return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentBottom);
+		case 'Right':
+			var _v3 = desc.a;
+			return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentRight);
+		case 'Left':
+			var _v4 = desc.a;
+			return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentLeft);
+		case 'CenterX':
+			var _v5 = desc.a;
+			return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentCenterX);
+		default:
+			var _v6 = desc.a;
+			return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentCenterY);
+	}
+};
+var $mdgriffith$elm_ui$Internal$Style$selfName = function (desc) {
+	switch (desc.a.$) {
+		case 'Top':
+			var _v1 = desc.a;
+			return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignTop);
+		case 'Bottom':
+			var _v2 = desc.a;
+			return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignBottom);
+		case 'Right':
+			var _v3 = desc.a;
+			return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignRight);
+		case 'Left':
+			var _v4 = desc.a;
+			return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignLeft);
+		case 'CenterX':
+			var _v5 = desc.a;
+			return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterX);
+		default:
+			var _v6 = desc.a;
+			return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterY);
+	}
+};
+var $mdgriffith$elm_ui$Internal$Style$describeAlignment = function (values) {
+	var createDescription = function (alignment) {
+		var _v0 = values(alignment);
+		var content = _v0.a;
+		var indiv = _v0.b;
+		return _List_fromArray(
+			[
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$contentName(
+					$mdgriffith$elm_ui$Internal$Style$Content(alignment)),
+				content),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Child,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),
+				_List_fromArray(
+					[
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Descriptor,
+						$mdgriffith$elm_ui$Internal$Style$selfName(
+							$mdgriffith$elm_ui$Internal$Style$Self(alignment)),
+						indiv)
+					]))
+			]);
+	};
+	return $mdgriffith$elm_ui$Internal$Style$Batch(
+		A2($elm$core$List$concatMap, createDescription, $mdgriffith$elm_ui$Internal$Style$alignments));
+};
+var $mdgriffith$elm_ui$Internal$Style$elDescription = _List_fromArray(
+	[
+		A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex'),
+		A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-direction', 'column'),
+		A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'pre'),
+		A2(
+		$mdgriffith$elm_ui$Internal$Style$Descriptor,
+		$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.hasBehind),
+		_List_fromArray(
+			[
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '0'),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Child,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.behind),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '-1')
+					]))
+			])),
+		A2(
+		$mdgriffith$elm_ui$Internal$Style$Descriptor,
+		$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.seButton),
+		_List_fromArray(
+			[
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Child,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.text),
+				_List_fromArray(
+					[
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Descriptor,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0')
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Descriptor,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'auto !important')
+							]))
+					]))
+			])),
+		A2(
+		$mdgriffith$elm_ui$Internal$Style$Child,
+		$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightContent),
+		_List_fromArray(
+			[
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', 'auto')
+			])),
+		A2(
+		$mdgriffith$elm_ui$Internal$Style$Child,
+		$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill),
+		_List_fromArray(
+			[
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '100000')
+			])),
+		A2(
+		$mdgriffith$elm_ui$Internal$Style$Child,
+		$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill),
+		_List_fromArray(
+			[
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%')
+			])),
+		A2(
+		$mdgriffith$elm_ui$Internal$Style$Child,
+		$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFillPortion),
+		_List_fromArray(
+			[
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%')
+			])),
+		A2(
+		$mdgriffith$elm_ui$Internal$Style$Child,
+		$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthContent),
+		_List_fromArray(
+			[
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-start')
+			])),
+		$mdgriffith$elm_ui$Internal$Style$describeAlignment(
+		function (alignment) {
+			switch (alignment.$) {
+				case 'Top':
+					return _Utils_Tuple2(
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-start')
+							]),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto !important'),
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', '0 !important')
+							]));
+				case 'Bottom':
+					return _Utils_Tuple2(
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-end')
+							]),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto !important'),
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', '0 !important')
+							]));
+				case 'Right':
+					return _Utils_Tuple2(
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-end')
+							]),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-end')
+							]));
+				case 'Left':
+					return _Utils_Tuple2(
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-start')
+							]),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-start')
+							]));
+				case 'CenterX':
+					return _Utils_Tuple2(
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'center')
+							]),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'center')
+							]));
+				default:
+					return _Utils_Tuple2(
+						_List_fromArray(
+							[
+								A2(
+								$mdgriffith$elm_ui$Internal$Style$Child,
+								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),
+								_List_fromArray(
+									[
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto'),
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto')
+									]))
+							]),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto !important'),
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto !important')
+							]));
+			}
+		})
+	]);
+var $mdgriffith$elm_ui$Internal$Style$gridAlignments = function (values) {
+	var createDescription = function (alignment) {
+		return _List_fromArray(
+			[
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Child,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),
+				_List_fromArray(
+					[
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Descriptor,
+						$mdgriffith$elm_ui$Internal$Style$selfName(
+							$mdgriffith$elm_ui$Internal$Style$Self(alignment)),
+						values(alignment))
+					]))
+			]);
+	};
+	return $mdgriffith$elm_ui$Internal$Style$Batch(
+		A2($elm$core$List$concatMap, createDescription, $mdgriffith$elm_ui$Internal$Style$alignments));
+};
+var $mdgriffith$elm_ui$Internal$Style$Above = {$: 'Above'};
+var $mdgriffith$elm_ui$Internal$Style$Behind = {$: 'Behind'};
+var $mdgriffith$elm_ui$Internal$Style$Below = {$: 'Below'};
+var $mdgriffith$elm_ui$Internal$Style$OnLeft = {$: 'OnLeft'};
+var $mdgriffith$elm_ui$Internal$Style$OnRight = {$: 'OnRight'};
+var $mdgriffith$elm_ui$Internal$Style$Within = {$: 'Within'};
+var $mdgriffith$elm_ui$Internal$Style$locations = function () {
+	var loc = $mdgriffith$elm_ui$Internal$Style$Above;
+	var _v0 = function () {
+		switch (loc.$) {
+			case 'Above':
+				return _Utils_Tuple0;
+			case 'Below':
+				return _Utils_Tuple0;
+			case 'OnRight':
+				return _Utils_Tuple0;
+			case 'OnLeft':
+				return _Utils_Tuple0;
+			case 'Within':
+				return _Utils_Tuple0;
+			default:
+				return _Utils_Tuple0;
+		}
+	}();
+	return _List_fromArray(
+		[$mdgriffith$elm_ui$Internal$Style$Above, $mdgriffith$elm_ui$Internal$Style$Below, $mdgriffith$elm_ui$Internal$Style$OnRight, $mdgriffith$elm_ui$Internal$Style$OnLeft, $mdgriffith$elm_ui$Internal$Style$Within, $mdgriffith$elm_ui$Internal$Style$Behind]);
+}();
+var $mdgriffith$elm_ui$Internal$Style$baseSheet = _List_fromArray(
+	[
+		A2(
+		$mdgriffith$elm_ui$Internal$Style$Class,
+		'html,body',
+		_List_fromArray(
+			[
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'padding', '0'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0')
+			])),
+		A2(
+		$mdgriffith$elm_ui$Internal$Style$Class,
+		_Utils_ap(
+			$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),
+			_Utils_ap(
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single),
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.imageContainer))),
+		_List_fromArray(
+			[
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'block'),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill),
+				_List_fromArray(
+					[
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						'img',
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'max-height', '100%'),
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'object-fit', 'cover')
+							]))
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill),
+				_List_fromArray(
+					[
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						'img',
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'max-width', '100%'),
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'object-fit', 'cover')
+							]))
+					]))
+			])),
+		A2(
+		$mdgriffith$elm_ui$Internal$Style$Class,
+		$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ':focus',
+		_List_fromArray(
+			[
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'outline', 'none')
+			])),
+		A2(
+		$mdgriffith$elm_ui$Internal$Style$Class,
+		$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.root),
+		_List_fromArray(
+			[
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', 'auto'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'min-height', '100%'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '0'),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				_Utils_ap(
+					$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),
+					$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill)),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%')
+							]))
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Child,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inFront),
+				_List_fromArray(
+					[
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Descriptor,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.nearby),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'fixed'),
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '20')
+							]))
+					]))
+			])),
+		A2(
+		$mdgriffith$elm_ui$Internal$Style$Class,
+		$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.nearby),
+		_List_fromArray(
+			[
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'relative'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border', 'none'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-direction', 'row'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto'),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single),
+				$mdgriffith$elm_ui$Internal$Style$elDescription),
+				$mdgriffith$elm_ui$Internal$Style$Batch(
+				function (fn) {
+					return A2($elm$core$List$map, fn, $mdgriffith$elm_ui$Internal$Style$locations);
+				}(
+					function (loc) {
+						switch (loc.$) {
+							case 'Above':
+								return A2(
+									$mdgriffith$elm_ui$Internal$Style$Descriptor,
+									$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.above),
+									_List_fromArray(
+										[
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'bottom', '100%'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '0'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '20'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'),
+											A2(
+											$mdgriffith$elm_ui$Internal$Style$Child,
+											$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill),
+											_List_fromArray(
+												[
+													A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', 'auto')
+												])),
+											A2(
+											$mdgriffith$elm_ui$Internal$Style$Child,
+											$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill),
+											_List_fromArray(
+												[
+													A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%')
+												])),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'),
+											A2(
+											$mdgriffith$elm_ui$Internal$Style$Child,
+											'*',
+											_List_fromArray(
+												[
+													A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto')
+												]))
+										]));
+							case 'Below':
+								return A2(
+									$mdgriffith$elm_ui$Internal$Style$Descriptor,
+									$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.below),
+									_List_fromArray(
+										[
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'bottom', '0'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '0'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '0'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '20'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'),
+											A2(
+											$mdgriffith$elm_ui$Internal$Style$Child,
+											'*',
+											_List_fromArray(
+												[
+													A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto')
+												])),
+											A2(
+											$mdgriffith$elm_ui$Internal$Style$Child,
+											$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill),
+											_List_fromArray(
+												[
+													A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', 'auto')
+												]))
+										]));
+							case 'OnRight':
+								return A2(
+									$mdgriffith$elm_ui$Internal$Style$Descriptor,
+									$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.onRight),
+									_List_fromArray(
+										[
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '100%'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'top', '0'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '20'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'),
+											A2(
+											$mdgriffith$elm_ui$Internal$Style$Child,
+											'*',
+											_List_fromArray(
+												[
+													A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto')
+												]))
+										]));
+							case 'OnLeft':
+								return A2(
+									$mdgriffith$elm_ui$Internal$Style$Descriptor,
+									$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.onLeft),
+									_List_fromArray(
+										[
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'right', '100%'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'top', '0'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '20'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'),
+											A2(
+											$mdgriffith$elm_ui$Internal$Style$Child,
+											'*',
+											_List_fromArray(
+												[
+													A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto')
+												]))
+										]));
+							case 'Within':
+								return A2(
+									$mdgriffith$elm_ui$Internal$Style$Descriptor,
+									$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inFront),
+									_List_fromArray(
+										[
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '0'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'top', '0'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'),
+											A2(
+											$mdgriffith$elm_ui$Internal$Style$Child,
+											'*',
+											_List_fromArray(
+												[
+													A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto')
+												]))
+										]));
+							default:
+								return A2(
+									$mdgriffith$elm_ui$Internal$Style$Descriptor,
+									$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.behind),
+									_List_fromArray(
+										[
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '0'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'top', '0'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '0'),
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'),
+											A2(
+											$mdgriffith$elm_ui$Internal$Style$Child,
+											'*',
+											_List_fromArray(
+												[
+													A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto')
+												]))
+										]));
+						}
+					}))
+			])),
+		A2(
+		$mdgriffith$elm_ui$Internal$Style$Class,
+		$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),
+		_List_fromArray(
+			[
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'relative'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border', 'none'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-shrink', '0'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-direction', 'row'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'resize', 'none'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-feature-settings', 'inherit'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'box-sizing', 'border-box'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'padding', '0'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-width', '0'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-style', 'solid'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-size', 'inherit'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'color', 'inherit'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-family', 'inherit'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'line-height', '1'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', 'inherit'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration', 'none'),
+				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-style', 'inherit'),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.wrapped),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-wrap', 'wrap')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.noTextSelection),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, '-moz-user-select', 'none'),
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, '-webkit-user-select', 'none'),
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, '-ms-user-select', 'none'),
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'user-select', 'none')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.cursorPointer),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'cursor', 'pointer')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.cursorText),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'cursor', 'text')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.passPointerEvents),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none !important')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.capturePointerEvents),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto !important')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.transparent),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '0')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.opaque),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '1')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot(
+					_Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.hover, $mdgriffith$elm_ui$Internal$Style$classes.transparent)) + ':hover',
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '0')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot(
+					_Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.hover, $mdgriffith$elm_ui$Internal$Style$classes.opaque)) + ':hover',
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '1')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot(
+					_Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.focus, $mdgriffith$elm_ui$Internal$Style$classes.transparent)) + ':focus',
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '0')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot(
+					_Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.focus, $mdgriffith$elm_ui$Internal$Style$classes.opaque)) + ':focus',
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '1')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot(
+					_Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.active, $mdgriffith$elm_ui$Internal$Style$classes.transparent)) + ':active',
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '0')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot(
+					_Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.active, $mdgriffith$elm_ui$Internal$Style$classes.opaque)) + ':active',
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '1')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.transition),
+				_List_fromArray(
+					[
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Prop,
+						'transition',
+						A2(
+							$elm$core$String$join,
+							', ',
+							A2(
+								$elm$core$List$map,
+								function (x) {
+									return x + ' 160ms';
+								},
+								_List_fromArray(
+									['transform', 'opacity', 'filter', 'background-color', 'color', 'font-size']))))
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.scrollbars),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow', 'auto'),
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-shrink', '1')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.scrollbarsX),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow-x', 'auto'),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Descriptor,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.row),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-shrink', '1')
+							]))
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.scrollbarsY),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow-y', 'auto'),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Descriptor,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.column),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-shrink', '1')
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Descriptor,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-shrink', '1')
+							]))
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.clip),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow', 'hidden')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.clipX),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow-x', 'hidden')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.clipY),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow-y', 'hidden')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthContent),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', 'auto')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.borderNone),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-width', '0')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.borderDashed),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-style', 'dashed')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.borderDotted),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-style', 'dotted')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.borderSolid),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-style', 'solid')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.text),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'pre'),
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline-block')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputText),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'line-height', '1.05'),
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'background', 'transparent'),
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'inherit')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single),
+				$mdgriffith$elm_ui$Internal$Style$elDescription),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.row),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex'),
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-direction', 'row'),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', '0%'),
+								A2(
+								$mdgriffith$elm_ui$Internal$Style$Descriptor,
+								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthExact),
+								_List_fromArray(
+									[
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto')
+									])),
+								A2(
+								$mdgriffith$elm_ui$Internal$Style$Descriptor,
+								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.link),
+								_List_fromArray(
+									[
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto')
+									]))
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'stretch !important')
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFillPortion),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'stretch !important')
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '100000')
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.container),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0'),
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto'),
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'stretch')
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						'u:first-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerRight,
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1')
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						's:first-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX,
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'),
+								A2(
+								$mdgriffith$elm_ui$Internal$Style$Child,
+								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterX),
+								_List_fromArray(
+									[
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-left', 'auto !important')
+									]))
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						's:last-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX,
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'),
+								A2(
+								$mdgriffith$elm_ui$Internal$Style$Child,
+								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterX),
+								_List_fromArray(
+									[
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-right', 'auto !important')
+									]))
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						's:only-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX,
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'),
+								A2(
+								$mdgriffith$elm_ui$Internal$Style$Child,
+								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterY),
+								_List_fromArray(
+									[
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto !important'),
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto !important')
+									]))
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						's:last-of-type.' + ($mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX + ' ~ u'),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0')
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						'u:first-of-type.' + ($mdgriffith$elm_ui$Internal$Style$classes.alignContainerRight + (' ~ s.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX)),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0')
+							])),
+						$mdgriffith$elm_ui$Internal$Style$describeAlignment(
+						function (alignment) {
+							switch (alignment.$) {
+								case 'Top':
+									return _Utils_Tuple2(
+										_List_fromArray(
+											[
+												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-start')
+											]),
+										_List_fromArray(
+											[
+												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-start')
+											]));
+								case 'Bottom':
+									return _Utils_Tuple2(
+										_List_fromArray(
+											[
+												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-end')
+											]),
+										_List_fromArray(
+											[
+												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-end')
+											]));
+								case 'Right':
+									return _Utils_Tuple2(
+										_List_fromArray(
+											[
+												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-end')
+											]),
+										_List_Nil);
+								case 'Left':
+									return _Utils_Tuple2(
+										_List_fromArray(
+											[
+												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-start')
+											]),
+										_List_Nil);
+								case 'CenterX':
+									return _Utils_Tuple2(
+										_List_fromArray(
+											[
+												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'center')
+											]),
+										_List_Nil);
+								default:
+									return _Utils_Tuple2(
+										_List_fromArray(
+											[
+												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'center')
+											]),
+										_List_fromArray(
+											[
+												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'center')
+											]));
+							}
+						}),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Descriptor,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.spaceEvenly),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'space-between')
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Descriptor,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputLabel),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'baseline')
+							]))
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.column),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex'),
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-direction', 'column'),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', '0px'),
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'min-height', 'min-content'),
+								A2(
+								$mdgriffith$elm_ui$Internal$Style$Descriptor,
+								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightExact),
+								_List_fromArray(
+									[
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto')
+									]))
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '100000')
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%')
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFillPortion),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%')
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthContent),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-start')
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						'u:first-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerBottom,
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1')
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						's:first-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY,
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'),
+								A2(
+								$mdgriffith$elm_ui$Internal$Style$Child,
+								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterY),
+								_List_fromArray(
+									[
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto !important'),
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', '0 !important')
+									]))
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						's:last-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY,
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'),
+								A2(
+								$mdgriffith$elm_ui$Internal$Style$Child,
+								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterY),
+								_List_fromArray(
+									[
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto !important'),
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', '0 !important')
+									]))
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						's:only-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY,
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'),
+								A2(
+								$mdgriffith$elm_ui$Internal$Style$Child,
+								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterY),
+								_List_fromArray(
+									[
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto !important'),
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto !important')
+									]))
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						's:last-of-type.' + ($mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY + ' ~ u'),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0')
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						'u:first-of-type.' + ($mdgriffith$elm_ui$Internal$Style$classes.alignContainerBottom + (' ~ s.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY)),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0')
+							])),
+						$mdgriffith$elm_ui$Internal$Style$describeAlignment(
+						function (alignment) {
+							switch (alignment.$) {
+								case 'Top':
+									return _Utils_Tuple2(
+										_List_fromArray(
+											[
+												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-start')
+											]),
+										_List_fromArray(
+											[
+												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto')
+											]));
+								case 'Bottom':
+									return _Utils_Tuple2(
+										_List_fromArray(
+											[
+												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-end')
+											]),
+										_List_fromArray(
+											[
+												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto')
+											]));
+								case 'Right':
+									return _Utils_Tuple2(
+										_List_fromArray(
+											[
+												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-end')
+											]),
+										_List_fromArray(
+											[
+												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-end')
+											]));
+								case 'Left':
+									return _Utils_Tuple2(
+										_List_fromArray(
+											[
+												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-start')
+											]),
+										_List_fromArray(
+											[
+												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-start')
+											]));
+								case 'CenterX':
+									return _Utils_Tuple2(
+										_List_fromArray(
+											[
+												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'center')
+											]),
+										_List_fromArray(
+											[
+												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'center')
+											]));
+								default:
+									return _Utils_Tuple2(
+										_List_fromArray(
+											[
+												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'center')
+											]),
+										_List_Nil);
+							}
+						}),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.container),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0'),
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto'),
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'),
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'stretch !important')
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Descriptor,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.spaceEvenly),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'space-between')
+							]))
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.grid),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', '-ms-grid'),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						'.gp',
+						_List_fromArray(
+							[
+								A2(
+								$mdgriffith$elm_ui$Internal$Style$Child,
+								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),
+								_List_fromArray(
+									[
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%')
+									]))
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Supports,
+						_Utils_Tuple2('display', 'grid'),
+						_List_fromArray(
+							[
+								_Utils_Tuple2('display', 'grid')
+							])),
+						$mdgriffith$elm_ui$Internal$Style$gridAlignments(
+						function (alignment) {
+							switch (alignment.$) {
+								case 'Top':
+									return _List_fromArray(
+										[
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-start')
+										]);
+								case 'Bottom':
+									return _List_fromArray(
+										[
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-end')
+										]);
+								case 'Right':
+									return _List_fromArray(
+										[
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-end')
+										]);
+								case 'Left':
+									return _List_fromArray(
+										[
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-start')
+										]);
+								case 'CenterX':
+									return _List_fromArray(
+										[
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'center')
+										]);
+								default:
+									return _List_fromArray(
+										[
+											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'center')
+										]);
+							}
+						})
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.page),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'block'),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any + ':first-child'),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important')
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						$mdgriffith$elm_ui$Internal$Style$dot(
+							$mdgriffith$elm_ui$Internal$Style$classes.any + ($mdgriffith$elm_ui$Internal$Style$selfName(
+								$mdgriffith$elm_ui$Internal$Style$Self($mdgriffith$elm_ui$Internal$Style$Left)) + (':first-child + .' + $mdgriffith$elm_ui$Internal$Style$classes.any))),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important')
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						$mdgriffith$elm_ui$Internal$Style$dot(
+							$mdgriffith$elm_ui$Internal$Style$classes.any + ($mdgriffith$elm_ui$Internal$Style$selfName(
+								$mdgriffith$elm_ui$Internal$Style$Self($mdgriffith$elm_ui$Internal$Style$Right)) + (':first-child + .' + $mdgriffith$elm_ui$Internal$Style$classes.any))),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important')
+							])),
+						$mdgriffith$elm_ui$Internal$Style$describeAlignment(
+						function (alignment) {
+							switch (alignment.$) {
+								case 'Top':
+									return _Utils_Tuple2(_List_Nil, _List_Nil);
+								case 'Bottom':
+									return _Utils_Tuple2(_List_Nil, _List_Nil);
+								case 'Right':
+									return _Utils_Tuple2(
+										_List_Nil,
+										_List_fromArray(
+											[
+												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'float', 'right'),
+												A2(
+												$mdgriffith$elm_ui$Internal$Style$Descriptor,
+												'::after',
+												_List_fromArray(
+													[
+														A2($mdgriffith$elm_ui$Internal$Style$Prop, 'content', '\"\"'),
+														A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'table'),
+														A2($mdgriffith$elm_ui$Internal$Style$Prop, 'clear', 'both')
+													]))
+											]));
+								case 'Left':
+									return _Utils_Tuple2(
+										_List_Nil,
+										_List_fromArray(
+											[
+												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'float', 'left'),
+												A2(
+												$mdgriffith$elm_ui$Internal$Style$Descriptor,
+												'::after',
+												_List_fromArray(
+													[
+														A2($mdgriffith$elm_ui$Internal$Style$Prop, 'content', '\"\"'),
+														A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'table'),
+														A2($mdgriffith$elm_ui$Internal$Style$Prop, 'clear', 'both')
+													]))
+											]));
+								case 'CenterX':
+									return _Utils_Tuple2(_List_Nil, _List_Nil);
+								default:
+									return _Utils_Tuple2(_List_Nil, _List_Nil);
+							}
+						})
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputMultiline),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'pre-wrap !important'),
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'),
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'),
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'background-color', 'transparent')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputMultilineWrapper),
+				_List_fromArray(
+					[
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Descriptor,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto')
+							]))
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputMultilineParent),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'pre-wrap !important'),
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'cursor', 'text'),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputMultilineFiller),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'pre-wrap !important'),
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'color', 'transparent')
+							]))
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.paragraph),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'block'),
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'normal'),
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow-wrap', 'break-word'),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Descriptor,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.hasBehind),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '0'),
+								A2(
+								$mdgriffith$elm_ui$Internal$Style$Child,
+								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.behind),
+								_List_fromArray(
+									[
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '-1')
+									]))
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$AllChildren,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.text),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline'),
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'normal')
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$AllChildren,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.paragraph),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline'),
+								A2(
+								$mdgriffith$elm_ui$Internal$Style$Descriptor,
+								'::after',
+								_List_fromArray(
+									[
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'content', 'none')
+									])),
+								A2(
+								$mdgriffith$elm_ui$Internal$Style$Descriptor,
+								'::before',
+								_List_fromArray(
+									[
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'content', 'none')
+									]))
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$AllChildren,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline'),
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'normal'),
+								A2(
+								$mdgriffith$elm_ui$Internal$Style$Descriptor,
+								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthExact),
+								_List_fromArray(
+									[
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline-block')
+									])),
+								A2(
+								$mdgriffith$elm_ui$Internal$Style$Descriptor,
+								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inFront),
+								_List_fromArray(
+									[
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex')
+									])),
+								A2(
+								$mdgriffith$elm_ui$Internal$Style$Descriptor,
+								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.behind),
+								_List_fromArray(
+									[
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex')
+									])),
+								A2(
+								$mdgriffith$elm_ui$Internal$Style$Descriptor,
+								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.above),
+								_List_fromArray(
+									[
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex')
+									])),
+								A2(
+								$mdgriffith$elm_ui$Internal$Style$Descriptor,
+								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.below),
+								_List_fromArray(
+									[
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex')
+									])),
+								A2(
+								$mdgriffith$elm_ui$Internal$Style$Descriptor,
+								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.onRight),
+								_List_fromArray(
+									[
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex')
+									])),
+								A2(
+								$mdgriffith$elm_ui$Internal$Style$Descriptor,
+								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.onLeft),
+								_List_fromArray(
+									[
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex')
+									])),
+								A2(
+								$mdgriffith$elm_ui$Internal$Style$Child,
+								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.text),
+								_List_fromArray(
+									[
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline'),
+										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'normal')
+									]))
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.row),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline')
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.column),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline-flex')
+							])),
+						A2(
+						$mdgriffith$elm_ui$Internal$Style$Child,
+						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.grid),
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline-grid')
+							])),
+						$mdgriffith$elm_ui$Internal$Style$describeAlignment(
+						function (alignment) {
+							switch (alignment.$) {
+								case 'Top':
+									return _Utils_Tuple2(_List_Nil, _List_Nil);
+								case 'Bottom':
+									return _Utils_Tuple2(_List_Nil, _List_Nil);
+								case 'Right':
+									return _Utils_Tuple2(
+										_List_Nil,
+										_List_fromArray(
+											[
+												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'float', 'right')
+											]));
+								case 'Left':
+									return _Utils_Tuple2(
+										_List_Nil,
+										_List_fromArray(
+											[
+												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'float', 'left')
+											]));
+								case 'CenterX':
+									return _Utils_Tuple2(_List_Nil, _List_Nil);
+								default:
+									return _Utils_Tuple2(_List_Nil, _List_Nil);
+							}
+						})
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				'.hidden',
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'none')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textThin),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '100')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textExtraLight),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '200')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textLight),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '300')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textNormalWeight),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '400')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textMedium),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '500')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textSemiBold),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '600')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.bold),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '700')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textExtraBold),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '800')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textHeavy),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '900')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.italic),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-style', 'italic')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.strike),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration', 'line-through')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.underline),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration', 'underline'),
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration-skip-ink', 'auto'),
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration-skip', 'ink')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				_Utils_ap(
+					$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.underline),
+					$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.strike)),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration', 'line-through underline'),
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration-skip-ink', 'auto'),
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration-skip', 'ink')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textUnitalicized),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-style', 'normal')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textJustify),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'justify')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textJustifyAll),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'justify-all')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textCenter),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'center')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textRight),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'right')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textLeft),
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'left')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Descriptor,
+				'.modal',
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'fixed'),
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '0'),
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'top', '0'),
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'),
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'),
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none')
+					]))
+			]))
+	]);
+var $mdgriffith$elm_ui$Internal$Style$fontVariant = function (_var) {
+	return _List_fromArray(
+		[
+			A2(
+			$mdgriffith$elm_ui$Internal$Style$Class,
+			'.v-' + _var,
+			_List_fromArray(
+				[
+					A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-feature-settings', '\"' + (_var + '\"'))
+				])),
+			A2(
+			$mdgriffith$elm_ui$Internal$Style$Class,
+			'.v-' + (_var + '-off'),
+			_List_fromArray(
+				[
+					A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-feature-settings', '\"' + (_var + '\" 0'))
+				]))
+		]);
+};
+var $mdgriffith$elm_ui$Internal$Style$commonValues = $elm$core$List$concat(
+	_List_fromArray(
+		[
+			A2(
+			$elm$core$List$map,
+			function (x) {
+				return A2(
+					$mdgriffith$elm_ui$Internal$Style$Class,
+					'.border-' + $elm$core$String$fromInt(x),
+					_List_fromArray(
+						[
+							A2(
+							$mdgriffith$elm_ui$Internal$Style$Prop,
+							'border-width',
+							$elm$core$String$fromInt(x) + 'px')
+						]));
+			},
+			A2($elm$core$List$range, 0, 6)),
+			A2(
+			$elm$core$List$map,
+			function (i) {
+				return A2(
+					$mdgriffith$elm_ui$Internal$Style$Class,
+					'.font-size-' + $elm$core$String$fromInt(i),
+					_List_fromArray(
+						[
+							A2(
+							$mdgriffith$elm_ui$Internal$Style$Prop,
+							'font-size',
+							$elm$core$String$fromInt(i) + 'px')
+						]));
+			},
+			A2($elm$core$List$range, 8, 32)),
+			A2(
+			$elm$core$List$map,
+			function (i) {
+				return A2(
+					$mdgriffith$elm_ui$Internal$Style$Class,
+					'.p-' + $elm$core$String$fromInt(i),
+					_List_fromArray(
+						[
+							A2(
+							$mdgriffith$elm_ui$Internal$Style$Prop,
+							'padding',
+							$elm$core$String$fromInt(i) + 'px')
+						]));
+			},
+			A2($elm$core$List$range, 0, 24)),
+			_List_fromArray(
+			[
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Class,
+				'.v-smcp',
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-variant', 'small-caps')
+					])),
+				A2(
+				$mdgriffith$elm_ui$Internal$Style$Class,
+				'.v-smcp-off',
+				_List_fromArray(
+					[
+						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-variant', 'normal')
+					]))
+			]),
+			$mdgriffith$elm_ui$Internal$Style$fontVariant('zero'),
+			$mdgriffith$elm_ui$Internal$Style$fontVariant('onum'),
+			$mdgriffith$elm_ui$Internal$Style$fontVariant('liga'),
+			$mdgriffith$elm_ui$Internal$Style$fontVariant('dlig'),
+			$mdgriffith$elm_ui$Internal$Style$fontVariant('ordn'),
+			$mdgriffith$elm_ui$Internal$Style$fontVariant('tnum'),
+			$mdgriffith$elm_ui$Internal$Style$fontVariant('afrc'),
+			$mdgriffith$elm_ui$Internal$Style$fontVariant('frac')
+		]));
+var $mdgriffith$elm_ui$Internal$Style$explainer = '\n.explain {\n    border: 6px solid rgb(174, 121, 15) !important;\n}\n.explain > .' + ($mdgriffith$elm_ui$Internal$Style$classes.any + (' {\n    border: 4px dashed rgb(0, 151, 167) !important;\n}\n\n.ctr {\n    border: none !important;\n}\n.explain > .ctr > .' + ($mdgriffith$elm_ui$Internal$Style$classes.any + ' {\n    border: 4px dashed rgb(0, 151, 167) !important;\n}\n\n')));
+var $mdgriffith$elm_ui$Internal$Style$inputTextReset = '\ninput[type="search"],\ninput[type="search"]::-webkit-search-decoration,\ninput[type="search"]::-webkit-search-cancel-button,\ninput[type="search"]::-webkit-search-results-button,\ninput[type="search"]::-webkit-search-results-decoration {\n  -webkit-appearance:none;\n}\n';
+var $mdgriffith$elm_ui$Internal$Style$sliderReset = '\ninput[type=range] {\n  -webkit-appearance: none; \n  background: transparent;\n  position:absolute;\n  left:0;\n  top:0;\n  z-index:10;\n  width: 100%;\n  outline: dashed 1px;\n  height: 100%;\n  opacity: 0;\n}\n';
+var $mdgriffith$elm_ui$Internal$Style$thumbReset = '\ninput[type=range]::-webkit-slider-thumb {\n    -webkit-appearance: none;\n    opacity: 0.5;\n    width: 80px;\n    height: 80px;\n    background-color: black;\n    border:none;\n    border-radius: 5px;\n}\ninput[type=range]::-moz-range-thumb {\n    opacity: 0.5;\n    width: 80px;\n    height: 80px;\n    background-color: black;\n    border:none;\n    border-radius: 5px;\n}\ninput[type=range]::-ms-thumb {\n    opacity: 0.5;\n    width: 80px;\n    height: 80px;\n    background-color: black;\n    border:none;\n    border-radius: 5px;\n}\ninput[type=range][orient=vertical]{\n    writing-mode: bt-lr; /* IE */\n    -webkit-appearance: slider-vertical;  /* WebKit */\n}\n';
+var $mdgriffith$elm_ui$Internal$Style$trackReset = '\ninput[type=range]::-moz-range-track {\n    background: transparent;\n    cursor: pointer;\n}\ninput[type=range]::-ms-track {\n    background: transparent;\n    cursor: pointer;\n}\ninput[type=range]::-webkit-slider-runnable-track {\n    background: transparent;\n    cursor: pointer;\n}\n';
+var $mdgriffith$elm_ui$Internal$Style$overrides = '@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.row) + (' > ' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + (' { flex-basis: auto !important; } ' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.row) + (' > ' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.container) + (' { flex-basis: auto !important; }}' + ($mdgriffith$elm_ui$Internal$Style$inputTextReset + ($mdgriffith$elm_ui$Internal$Style$sliderReset + ($mdgriffith$elm_ui$Internal$Style$trackReset + ($mdgriffith$elm_ui$Internal$Style$thumbReset + $mdgriffith$elm_ui$Internal$Style$explainer)))))))))))))));
+var $elm$core$String$concat = function (strings) {
+	return A2($elm$core$String$join, '', strings);
+};
+var $mdgriffith$elm_ui$Internal$Style$Intermediate = function (a) {
+	return {$: 'Intermediate', a: a};
+};
+var $mdgriffith$elm_ui$Internal$Style$emptyIntermediate = F2(
+	function (selector, closing) {
+		return $mdgriffith$elm_ui$Internal$Style$Intermediate(
+			{closing: closing, others: _List_Nil, props: _List_Nil, selector: selector});
+	});
+var $mdgriffith$elm_ui$Internal$Style$renderRules = F2(
+	function (_v0, rulesToRender) {
+		var parent = _v0.a;
+		var generateIntermediates = F2(
+			function (rule, rendered) {
+				switch (rule.$) {
+					case 'Prop':
+						var name = rule.a;
+						var val = rule.b;
+						return _Utils_update(
+							rendered,
+							{
+								props: A2(
+									$elm$core$List$cons,
+									_Utils_Tuple2(name, val),
+									rendered.props)
+							});
+					case 'Supports':
+						var _v2 = rule.a;
+						var prop = _v2.a;
+						var value = _v2.b;
+						var props = rule.b;
+						return _Utils_update(
+							rendered,
+							{
+								others: A2(
+									$elm$core$List$cons,
+									$mdgriffith$elm_ui$Internal$Style$Intermediate(
+										{closing: '\n}', others: _List_Nil, props: props, selector: '@supports (' + (prop + (':' + (value + (') {' + parent.selector))))}),
+									rendered.others)
+							});
+					case 'Adjacent':
+						var selector = rule.a;
+						var adjRules = rule.b;
+						return _Utils_update(
+							rendered,
+							{
+								others: A2(
+									$elm$core$List$cons,
+									A2(
+										$mdgriffith$elm_ui$Internal$Style$renderRules,
+										A2($mdgriffith$elm_ui$Internal$Style$emptyIntermediate, parent.selector + (' + ' + selector), ''),
+										adjRules),
+									rendered.others)
+							});
+					case 'Child':
+						var child = rule.a;
+						var childRules = rule.b;
+						return _Utils_update(
+							rendered,
+							{
+								others: A2(
+									$elm$core$List$cons,
+									A2(
+										$mdgriffith$elm_ui$Internal$Style$renderRules,
+										A2($mdgriffith$elm_ui$Internal$Style$emptyIntermediate, parent.selector + (' > ' + child), ''),
+										childRules),
+									rendered.others)
+							});
+					case 'AllChildren':
+						var child = rule.a;
+						var childRules = rule.b;
+						return _Utils_update(
+							rendered,
+							{
+								others: A2(
+									$elm$core$List$cons,
+									A2(
+										$mdgriffith$elm_ui$Internal$Style$renderRules,
+										A2($mdgriffith$elm_ui$Internal$Style$emptyIntermediate, parent.selector + (' ' + child), ''),
+										childRules),
+									rendered.others)
+							});
+					case 'Descriptor':
+						var descriptor = rule.a;
+						var descriptorRules = rule.b;
+						return _Utils_update(
+							rendered,
+							{
+								others: A2(
+									$elm$core$List$cons,
+									A2(
+										$mdgriffith$elm_ui$Internal$Style$renderRules,
+										A2(
+											$mdgriffith$elm_ui$Internal$Style$emptyIntermediate,
+											_Utils_ap(parent.selector, descriptor),
+											''),
+										descriptorRules),
+									rendered.others)
+							});
+					default:
+						var batched = rule.a;
+						return _Utils_update(
+							rendered,
+							{
+								others: A2(
+									$elm$core$List$cons,
+									A2(
+										$mdgriffith$elm_ui$Internal$Style$renderRules,
+										A2($mdgriffith$elm_ui$Internal$Style$emptyIntermediate, parent.selector, ''),
+										batched),
+									rendered.others)
+							});
+				}
+			});
+		return $mdgriffith$elm_ui$Internal$Style$Intermediate(
+			A3($elm$core$List$foldr, generateIntermediates, parent, rulesToRender));
+	});
+var $mdgriffith$elm_ui$Internal$Style$renderCompact = function (styleClasses) {
+	var renderValues = function (values) {
+		return $elm$core$String$concat(
+			A2(
+				$elm$core$List$map,
+				function (_v3) {
+					var x = _v3.a;
+					var y = _v3.b;
+					return x + (':' + (y + ';'));
+				},
+				values));
+	};
+	var renderClass = function (rule) {
+		var _v2 = rule.props;
+		if (!_v2.b) {
+			return '';
+		} else {
+			return rule.selector + ('{' + (renderValues(rule.props) + (rule.closing + '}')));
+		}
+	};
+	var renderIntermediate = function (_v0) {
+		var rule = _v0.a;
+		return _Utils_ap(
+			renderClass(rule),
+			$elm$core$String$concat(
+				A2($elm$core$List$map, renderIntermediate, rule.others)));
+	};
+	return $elm$core$String$concat(
+		A2(
+			$elm$core$List$map,
+			renderIntermediate,
+			A3(
+				$elm$core$List$foldr,
+				F2(
+					function (_v1, existing) {
+						var name = _v1.a;
+						var styleRules = _v1.b;
+						return A2(
+							$elm$core$List$cons,
+							A2(
+								$mdgriffith$elm_ui$Internal$Style$renderRules,
+								A2($mdgriffith$elm_ui$Internal$Style$emptyIntermediate, name, ''),
+								styleRules),
+							existing);
+					}),
+				_List_Nil,
+				styleClasses)));
+};
+var $mdgriffith$elm_ui$Internal$Style$rules = _Utils_ap(
+	$mdgriffith$elm_ui$Internal$Style$overrides,
+	$mdgriffith$elm_ui$Internal$Style$renderCompact(
+		_Utils_ap($mdgriffith$elm_ui$Internal$Style$baseSheet, $mdgriffith$elm_ui$Internal$Style$commonValues)));
+var $elm$virtual_dom$VirtualDom$text = _VirtualDom_text;
+var $mdgriffith$elm_ui$Internal$Model$staticRoot = function (opts) {
+	var _v0 = opts.mode;
+	switch (_v0.$) {
+		case 'Layout':
+			return A3(
+				$elm$virtual_dom$VirtualDom$node,
+				'div',
+				_List_Nil,
+				_List_fromArray(
+					[
+						A3(
+						$elm$virtual_dom$VirtualDom$node,
+						'style',
+						_List_Nil,
+						_List_fromArray(
+							[
+								$elm$virtual_dom$VirtualDom$text($mdgriffith$elm_ui$Internal$Style$rules)
+							]))
+					]));
+		case 'NoStaticStyleSheet':
+			return $elm$virtual_dom$VirtualDom$text('');
+		default:
+			return A3(
+				$elm$virtual_dom$VirtualDom$node,
+				'elm-ui-static-rules',
+				_List_fromArray(
+					[
+						A2(
+						$elm$virtual_dom$VirtualDom$property,
+						'rules',
+						$elm$json$Json$Encode$string($mdgriffith$elm_ui$Internal$Style$rules))
+					]),
+				_List_Nil);
+	}
+};
+var $elm$json$Json$Encode$list = F2(
+	function (func, entries) {
+		return _Json_wrap(
+			A3(
+				$elm$core$List$foldl,
+				_Json_addEntry(func),
+				_Json_emptyArray(_Utils_Tuple0),
+				entries));
+	});
+var $elm$json$Json$Encode$object = function (pairs) {
+	return _Json_wrap(
+		A3(
+			$elm$core$List$foldl,
+			F2(
+				function (_v0, obj) {
+					var k = _v0.a;
+					var v = _v0.b;
+					return A3(_Json_addField, k, v, obj);
+				}),
+			_Json_emptyObject(_Utils_Tuple0),
+			pairs));
+};
+var $elm$core$List$any = F2(
+	function (isOkay, list) {
+		any:
+		while (true) {
+			if (!list.b) {
+				return false;
+			} else {
+				var x = list.a;
+				var xs = list.b;
+				if (isOkay(x)) {
+					return true;
+				} else {
+					var $temp$isOkay = isOkay,
+						$temp$list = xs;
+					isOkay = $temp$isOkay;
+					list = $temp$list;
+					continue any;
+				}
+			}
+		}
+	});
+var $mdgriffith$elm_ui$Internal$Model$fontName = function (font) {
+	switch (font.$) {
+		case 'Serif':
+			return 'serif';
+		case 'SansSerif':
+			return 'sans-serif';
+		case 'Monospace':
+			return 'monospace';
+		case 'Typeface':
+			var name = font.a;
+			return '\"' + (name + '\"');
+		case 'ImportFont':
+			var name = font.a;
+			var url = font.b;
+			return '\"' + (name + '\"');
+		default:
+			var name = font.a.name;
+			return '\"' + (name + '\"');
+	}
+};
+var $mdgriffith$elm_ui$Internal$Model$isSmallCaps = function (_var) {
+	switch (_var.$) {
+		case 'VariantActive':
+			var name = _var.a;
+			return name === 'smcp';
+		case 'VariantOff':
+			var name = _var.a;
+			return false;
+		default:
+			var name = _var.a;
+			var index = _var.b;
+			return (name === 'smcp') && (index === 1);
+	}
+};
+var $mdgriffith$elm_ui$Internal$Model$hasSmallCaps = function (typeface) {
+	if (typeface.$ === 'FontWith') {
+		var font = typeface.a;
+		return A2($elm$core$List$any, $mdgriffith$elm_ui$Internal$Model$isSmallCaps, font.variants);
+	} else {
+		return false;
+	}
+};
+var $elm$core$Basics$min = F2(
+	function (x, y) {
+		return (_Utils_cmp(x, y) < 0) ? x : y;
+	});
+var $elm$core$Basics$negate = function (n) {
+	return -n;
+};
+var $mdgriffith$elm_ui$Internal$Model$renderProps = F3(
+	function (force, _v0, existing) {
+		var key = _v0.a;
+		var val = _v0.b;
+		return force ? (existing + ('\n  ' + (key + (': ' + (val + ' !important;'))))) : (existing + ('\n  ' + (key + (': ' + (val + ';')))));
+	});
+var $mdgriffith$elm_ui$Internal$Model$renderStyle = F4(
+	function (options, maybePseudo, selector, props) {
+		if (maybePseudo.$ === 'Nothing') {
+			return _List_fromArray(
+				[
+					selector + ('{' + (A3(
+					$elm$core$List$foldl,
+					$mdgriffith$elm_ui$Internal$Model$renderProps(false),
+					'',
+					props) + '\n}'))
+				]);
+		} else {
+			var pseudo = maybePseudo.a;
+			switch (pseudo.$) {
+				case 'Hover':
+					var _v2 = options.hover;
+					switch (_v2.$) {
+						case 'NoHover':
+							return _List_Nil;
+						case 'ForceHover':
+							return _List_fromArray(
+								[
+									selector + ('-hv {' + (A3(
+									$elm$core$List$foldl,
+									$mdgriffith$elm_ui$Internal$Model$renderProps(true),
+									'',
+									props) + '\n}'))
+								]);
+						default:
+							return _List_fromArray(
+								[
+									selector + ('-hv:hover {' + (A3(
+									$elm$core$List$foldl,
+									$mdgriffith$elm_ui$Internal$Model$renderProps(false),
+									'',
+									props) + '\n}'))
+								]);
+					}
+				case 'Focus':
+					var renderedProps = A3(
+						$elm$core$List$foldl,
+						$mdgriffith$elm_ui$Internal$Model$renderProps(false),
+						'',
+						props);
+					return _List_fromArray(
+						[
+							selector + ('-fs:focus {' + (renderedProps + '\n}')),
+							('.' + ($mdgriffith$elm_ui$Internal$Style$classes.any + (':focus ' + (selector + '-fs  {')))) + (renderedProps + '\n}'),
+							(selector + '-fs:focus-within {') + (renderedProps + '\n}'),
+							('.ui-slide-bar:focus + ' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + (' .focusable-thumb' + (selector + '-fs {')))) + (renderedProps + '\n}')
+						]);
+				default:
+					return _List_fromArray(
+						[
+							selector + ('-act:active {' + (A3(
+							$elm$core$List$foldl,
+							$mdgriffith$elm_ui$Internal$Model$renderProps(false),
+							'',
+							props) + '\n}'))
+						]);
+			}
+		}
+	});
+var $mdgriffith$elm_ui$Internal$Model$renderVariant = function (_var) {
+	switch (_var.$) {
+		case 'VariantActive':
+			var name = _var.a;
+			return '\"' + (name + '\"');
+		case 'VariantOff':
+			var name = _var.a;
+			return '\"' + (name + '\" 0');
+		default:
+			var name = _var.a;
+			var index = _var.b;
+			return '\"' + (name + ('\" ' + $elm$core$String$fromInt(index)));
+	}
+};
+var $mdgriffith$elm_ui$Internal$Model$renderVariants = function (typeface) {
+	if (typeface.$ === 'FontWith') {
+		var font = typeface.a;
+		return $elm$core$Maybe$Just(
+			A2(
+				$elm$core$String$join,
+				', ',
+				A2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$renderVariant, font.variants)));
+	} else {
+		return $elm$core$Maybe$Nothing;
+	}
+};
+var $mdgriffith$elm_ui$Internal$Model$transformValue = function (transform) {
+	switch (transform.$) {
+		case 'Untransformed':
+			return $elm$core$Maybe$Nothing;
+		case 'Moved':
+			var _v1 = transform.a;
+			var x = _v1.a;
+			var y = _v1.b;
+			var z = _v1.c;
+			return $elm$core$Maybe$Just(
+				'translate3d(' + ($elm$core$String$fromFloat(x) + ('px, ' + ($elm$core$String$fromFloat(y) + ('px, ' + ($elm$core$String$fromFloat(z) + 'px)'))))));
+		default:
+			var _v2 = transform.a;
+			var tx = _v2.a;
+			var ty = _v2.b;
+			var tz = _v2.c;
+			var _v3 = transform.b;
+			var sx = _v3.a;
+			var sy = _v3.b;
+			var sz = _v3.c;
+			var _v4 = transform.c;
+			var ox = _v4.a;
+			var oy = _v4.b;
+			var oz = _v4.c;
+			var angle = transform.d;
+			var translate = 'translate3d(' + ($elm$core$String$fromFloat(tx) + ('px, ' + ($elm$core$String$fromFloat(ty) + ('px, ' + ($elm$core$String$fromFloat(tz) + 'px)')))));
+			var scale = 'scale3d(' + ($elm$core$String$fromFloat(sx) + (', ' + ($elm$core$String$fromFloat(sy) + (', ' + ($elm$core$String$fromFloat(sz) + ')')))));
+			var rotate = 'rotate3d(' + ($elm$core$String$fromFloat(ox) + (', ' + ($elm$core$String$fromFloat(oy) + (', ' + ($elm$core$String$fromFloat(oz) + (', ' + ($elm$core$String$fromFloat(angle) + 'rad)')))))));
+			return $elm$core$Maybe$Just(translate + (' ' + (scale + (' ' + rotate))));
+	}
+};
+var $mdgriffith$elm_ui$Internal$Model$renderStyleRule = F3(
+	function (options, rule, maybePseudo) {
+		switch (rule.$) {
+			case 'Style':
+				var selector = rule.a;
+				var props = rule.b;
+				return A4($mdgriffith$elm_ui$Internal$Model$renderStyle, options, maybePseudo, selector, props);
+			case 'Shadows':
+				var name = rule.a;
+				var prop = rule.b;
+				return A4(
+					$mdgriffith$elm_ui$Internal$Model$renderStyle,
+					options,
+					maybePseudo,
+					'.' + name,
+					_List_fromArray(
+						[
+							A2($mdgriffith$elm_ui$Internal$Model$Property, 'box-shadow', prop)
+						]));
+			case 'Transparency':
+				var name = rule.a;
+				var transparency = rule.b;
+				var opacity = A2(
+					$elm$core$Basics$max,
+					0,
+					A2($elm$core$Basics$min, 1, 1 - transparency));
+				return A4(
+					$mdgriffith$elm_ui$Internal$Model$renderStyle,
+					options,
+					maybePseudo,
+					'.' + name,
+					_List_fromArray(
+						[
+							A2(
+							$mdgriffith$elm_ui$Internal$Model$Property,
+							'opacity',
+							$elm$core$String$fromFloat(opacity))
+						]));
+			case 'FontSize':
+				var i = rule.a;
+				return A4(
+					$mdgriffith$elm_ui$Internal$Model$renderStyle,
+					options,
+					maybePseudo,
+					'.font-size-' + $elm$core$String$fromInt(i),
+					_List_fromArray(
+						[
+							A2(
+							$mdgriffith$elm_ui$Internal$Model$Property,
+							'font-size',
+							$elm$core$String$fromInt(i) + 'px')
+						]));
+			case 'FontFamily':
+				var name = rule.a;
+				var typefaces = rule.b;
+				var features = A2(
+					$elm$core$String$join,
+					', ',
+					A2($elm$core$List$filterMap, $mdgriffith$elm_ui$Internal$Model$renderVariants, typefaces));
+				var families = _List_fromArray(
+					[
+						A2(
+						$mdgriffith$elm_ui$Internal$Model$Property,
+						'font-family',
+						A2(
+							$elm$core$String$join,
+							', ',
+							A2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$fontName, typefaces))),
+						A2($mdgriffith$elm_ui$Internal$Model$Property, 'font-feature-settings', features),
+						A2(
+						$mdgriffith$elm_ui$Internal$Model$Property,
+						'font-variant',
+						A2($elm$core$List$any, $mdgriffith$elm_ui$Internal$Model$hasSmallCaps, typefaces) ? 'small-caps' : 'normal')
+					]);
+				return A4($mdgriffith$elm_ui$Internal$Model$renderStyle, options, maybePseudo, '.' + name, families);
+			case 'Single':
+				var _class = rule.a;
+				var prop = rule.b;
+				var val = rule.c;
+				return A4(
+					$mdgriffith$elm_ui$Internal$Model$renderStyle,
+					options,
+					maybePseudo,
+					'.' + _class,
+					_List_fromArray(
+						[
+							A2($mdgriffith$elm_ui$Internal$Model$Property, prop, val)
+						]));
+			case 'Colored':
+				var _class = rule.a;
+				var prop = rule.b;
+				var color = rule.c;
+				return A4(
+					$mdgriffith$elm_ui$Internal$Model$renderStyle,
+					options,
+					maybePseudo,
+					'.' + _class,
+					_List_fromArray(
+						[
+							A2(
+							$mdgriffith$elm_ui$Internal$Model$Property,
+							prop,
+							$mdgriffith$elm_ui$Internal$Model$formatColor(color))
+						]));
+			case 'SpacingStyle':
+				var cls = rule.a;
+				var x = rule.b;
+				var y = rule.c;
+				var yPx = $elm$core$String$fromInt(y) + 'px';
+				var xPx = $elm$core$String$fromInt(x) + 'px';
+				var single = '.' + $mdgriffith$elm_ui$Internal$Style$classes.single;
+				var row = '.' + $mdgriffith$elm_ui$Internal$Style$classes.row;
+				var wrappedRow = '.' + ($mdgriffith$elm_ui$Internal$Style$classes.wrapped + row);
+				var right = '.' + $mdgriffith$elm_ui$Internal$Style$classes.alignRight;
+				var paragraph = '.' + $mdgriffith$elm_ui$Internal$Style$classes.paragraph;
+				var page = '.' + $mdgriffith$elm_ui$Internal$Style$classes.page;
+				var left = '.' + $mdgriffith$elm_ui$Internal$Style$classes.alignLeft;
+				var halfY = $elm$core$String$fromFloat(y / 2) + 'px';
+				var halfX = $elm$core$String$fromFloat(x / 2) + 'px';
+				var column = '.' + $mdgriffith$elm_ui$Internal$Style$classes.column;
+				var _class = '.' + cls;
+				var any = '.' + $mdgriffith$elm_ui$Internal$Style$classes.any;
+				return $elm$core$List$concat(
+					_List_fromArray(
+						[
+							A4(
+							$mdgriffith$elm_ui$Internal$Model$renderStyle,
+							options,
+							maybePseudo,
+							_class + (row + (' > ' + (any + (' + ' + any)))),
+							_List_fromArray(
+								[
+									A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-left', xPx)
+								])),
+							A4(
+							$mdgriffith$elm_ui$Internal$Model$renderStyle,
+							options,
+							maybePseudo,
+							_class + (wrappedRow + (' > ' + any)),
+							_List_fromArray(
+								[
+									A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin', halfY + (' ' + halfX))
+								])),
+							A4(
+							$mdgriffith$elm_ui$Internal$Model$renderStyle,
+							options,
+							maybePseudo,
+							_class + (column + (' > ' + (any + (' + ' + any)))),
+							_List_fromArray(
+								[
+									A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-top', yPx)
+								])),
+							A4(
+							$mdgriffith$elm_ui$Internal$Model$renderStyle,
+							options,
+							maybePseudo,
+							_class + (page + (' > ' + (any + (' + ' + any)))),
+							_List_fromArray(
+								[
+									A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-top', yPx)
+								])),
+							A4(
+							$mdgriffith$elm_ui$Internal$Model$renderStyle,
+							options,
+							maybePseudo,
+							_class + (page + (' > ' + left)),
+							_List_fromArray(
+								[
+									A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-right', xPx)
+								])),
+							A4(
+							$mdgriffith$elm_ui$Internal$Model$renderStyle,
+							options,
+							maybePseudo,
+							_class + (page + (' > ' + right)),
+							_List_fromArray(
+								[
+									A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-left', xPx)
+								])),
+							A4(
+							$mdgriffith$elm_ui$Internal$Model$renderStyle,
+							options,
+							maybePseudo,
+							_Utils_ap(_class, paragraph),
+							_List_fromArray(
+								[
+									A2(
+									$mdgriffith$elm_ui$Internal$Model$Property,
+									'line-height',
+									'calc(1em + ' + ($elm$core$String$fromInt(y) + 'px)'))
+								])),
+							A4(
+							$mdgriffith$elm_ui$Internal$Model$renderStyle,
+							options,
+							maybePseudo,
+							'textarea' + (any + _class),
+							_List_fromArray(
+								[
+									A2(
+									$mdgriffith$elm_ui$Internal$Model$Property,
+									'line-height',
+									'calc(1em + ' + ($elm$core$String$fromInt(y) + 'px)')),
+									A2(
+									$mdgriffith$elm_ui$Internal$Model$Property,
+									'height',
+									'calc(100% + ' + ($elm$core$String$fromInt(y) + 'px)'))
+								])),
+							A4(
+							$mdgriffith$elm_ui$Internal$Model$renderStyle,
+							options,
+							maybePseudo,
+							_class + (paragraph + (' > ' + left)),
+							_List_fromArray(
+								[
+									A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-right', xPx)
+								])),
+							A4(
+							$mdgriffith$elm_ui$Internal$Model$renderStyle,
+							options,
+							maybePseudo,
+							_class + (paragraph + (' > ' + right)),
+							_List_fromArray(
+								[
+									A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-left', xPx)
+								])),
+							A4(
+							$mdgriffith$elm_ui$Internal$Model$renderStyle,
+							options,
+							maybePseudo,
+							_class + (paragraph + '::after'),
+							_List_fromArray(
+								[
+									A2($mdgriffith$elm_ui$Internal$Model$Property, 'content', '\'\''),
+									A2($mdgriffith$elm_ui$Internal$Model$Property, 'display', 'block'),
+									A2($mdgriffith$elm_ui$Internal$Model$Property, 'height', '0'),
+									A2($mdgriffith$elm_ui$Internal$Model$Property, 'width', '0'),
+									A2(
+									$mdgriffith$elm_ui$Internal$Model$Property,
+									'margin-top',
+									$elm$core$String$fromInt((-1) * ((y / 2) | 0)) + 'px')
+								])),
+							A4(
+							$mdgriffith$elm_ui$Internal$Model$renderStyle,
+							options,
+							maybePseudo,
+							_class + (paragraph + '::before'),
+							_List_fromArray(
+								[
+									A2($mdgriffith$elm_ui$Internal$Model$Property, 'content', '\'\''),
+									A2($mdgriffith$elm_ui$Internal$Model$Property, 'display', 'block'),
+									A2($mdgriffith$elm_ui$Internal$Model$Property, 'height', '0'),
+									A2($mdgriffith$elm_ui$Internal$Model$Property, 'width', '0'),
+									A2(
+									$mdgriffith$elm_ui$Internal$Model$Property,
+									'margin-bottom',
+									$elm$core$String$fromInt((-1) * ((y / 2) | 0)) + 'px')
+								]))
+						]));
+			case 'PaddingStyle':
+				var cls = rule.a;
+				var top = rule.b;
+				var right = rule.c;
+				var bottom = rule.d;
+				var left = rule.e;
+				var _class = '.' + cls;
+				return A4(
+					$mdgriffith$elm_ui$Internal$Model$renderStyle,
+					options,
+					maybePseudo,
+					_class,
+					_List_fromArray(
+						[
+							A2(
+							$mdgriffith$elm_ui$Internal$Model$Property,
+							'padding',
+							$elm$core$String$fromFloat(top) + ('px ' + ($elm$core$String$fromFloat(right) + ('px ' + ($elm$core$String$fromFloat(bottom) + ('px ' + ($elm$core$String$fromFloat(left) + 'px')))))))
+						]));
+			case 'BorderWidth':
+				var cls = rule.a;
+				var top = rule.b;
+				var right = rule.c;
+				var bottom = rule.d;
+				var left = rule.e;
+				var _class = '.' + cls;
+				return A4(
+					$mdgriffith$elm_ui$Internal$Model$renderStyle,
+					options,
+					maybePseudo,
+					_class,
+					_List_fromArray(
+						[
+							A2(
+							$mdgriffith$elm_ui$Internal$Model$Property,
+							'border-width',
+							$elm$core$String$fromInt(top) + ('px ' + ($elm$core$String$fromInt(right) + ('px ' + ($elm$core$String$fromInt(bottom) + ('px ' + ($elm$core$String$fromInt(left) + 'px')))))))
+						]));
+			case 'GridTemplateStyle':
+				var template = rule.a;
+				var toGridLengthHelper = F3(
+					function (minimum, maximum, x) {
+						toGridLengthHelper:
+						while (true) {
+							switch (x.$) {
+								case 'Px':
+									var px = x.a;
+									return $elm$core$String$fromInt(px) + 'px';
+								case 'Content':
+									var _v2 = _Utils_Tuple2(minimum, maximum);
+									if (_v2.a.$ === 'Nothing') {
+										if (_v2.b.$ === 'Nothing') {
+											var _v3 = _v2.a;
+											var _v4 = _v2.b;
+											return 'max-content';
+										} else {
+											var _v6 = _v2.a;
+											var maxSize = _v2.b.a;
+											return 'minmax(max-content, ' + ($elm$core$String$fromInt(maxSize) + 'px)');
+										}
+									} else {
+										if (_v2.b.$ === 'Nothing') {
+											var minSize = _v2.a.a;
+											var _v5 = _v2.b;
+											return 'minmax(' + ($elm$core$String$fromInt(minSize) + ('px, ' + 'max-content)'));
+										} else {
+											var minSize = _v2.a.a;
+											var maxSize = _v2.b.a;
+											return 'minmax(' + ($elm$core$String$fromInt(minSize) + ('px, ' + ($elm$core$String$fromInt(maxSize) + 'px)')));
+										}
+									}
+								case 'Fill':
+									var i = x.a;
+									var _v7 = _Utils_Tuple2(minimum, maximum);
+									if (_v7.a.$ === 'Nothing') {
+										if (_v7.b.$ === 'Nothing') {
+											var _v8 = _v7.a;
+											var _v9 = _v7.b;
+											return $elm$core$String$fromInt(i) + 'fr';
+										} else {
+											var _v11 = _v7.a;
+											var maxSize = _v7.b.a;
+											return 'minmax(max-content, ' + ($elm$core$String$fromInt(maxSize) + 'px)');
+										}
+									} else {
+										if (_v7.b.$ === 'Nothing') {
+											var minSize = _v7.a.a;
+											var _v10 = _v7.b;
+											return 'minmax(' + ($elm$core$String$fromInt(minSize) + ('px, ' + ($elm$core$String$fromInt(i) + ('fr' + 'fr)'))));
+										} else {
+											var minSize = _v7.a.a;
+											var maxSize = _v7.b.a;
+											return 'minmax(' + ($elm$core$String$fromInt(minSize) + ('px, ' + ($elm$core$String$fromInt(maxSize) + 'px)')));
+										}
+									}
+								case 'Min':
+									var m = x.a;
+									var len = x.b;
+									var $temp$minimum = $elm$core$Maybe$Just(m),
+										$temp$maximum = maximum,
+										$temp$x = len;
+									minimum = $temp$minimum;
+									maximum = $temp$maximum;
+									x = $temp$x;
+									continue toGridLengthHelper;
+								default:
+									var m = x.a;
+									var len = x.b;
+									var $temp$minimum = minimum,
+										$temp$maximum = $elm$core$Maybe$Just(m),
+										$temp$x = len;
+									minimum = $temp$minimum;
+									maximum = $temp$maximum;
+									x = $temp$x;
+									continue toGridLengthHelper;
+							}
+						}
+					});
+				var toGridLength = function (x) {
+					return A3(toGridLengthHelper, $elm$core$Maybe$Nothing, $elm$core$Maybe$Nothing, x);
+				};
+				var xSpacing = toGridLength(template.spacing.a);
+				var ySpacing = toGridLength(template.spacing.b);
+				var rows = function (x) {
+					return 'grid-template-rows: ' + (x + ';');
+				}(
+					A2(
+						$elm$core$String$join,
+						' ',
+						A2($elm$core$List$map, toGridLength, template.rows)));
+				var msRows = function (x) {
+					return '-ms-grid-rows: ' + (x + ';');
+				}(
+					A2(
+						$elm$core$String$join,
+						ySpacing,
+						A2($elm$core$List$map, toGridLength, template.columns)));
+				var msColumns = function (x) {
+					return '-ms-grid-columns: ' + (x + ';');
+				}(
+					A2(
+						$elm$core$String$join,
+						ySpacing,
+						A2($elm$core$List$map, toGridLength, template.columns)));
+				var gapY = 'grid-row-gap:' + (toGridLength(template.spacing.b) + ';');
+				var gapX = 'grid-column-gap:' + (toGridLength(template.spacing.a) + ';');
+				var columns = function (x) {
+					return 'grid-template-columns: ' + (x + ';');
+				}(
+					A2(
+						$elm$core$String$join,
+						' ',
+						A2($elm$core$List$map, toGridLength, template.columns)));
+				var _class = '.grid-rows-' + (A2(
+					$elm$core$String$join,
+					'-',
+					A2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$lengthClassName, template.rows)) + ('-cols-' + (A2(
+					$elm$core$String$join,
+					'-',
+					A2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$lengthClassName, template.columns)) + ('-space-x-' + ($mdgriffith$elm_ui$Internal$Model$lengthClassName(template.spacing.a) + ('-space-y-' + $mdgriffith$elm_ui$Internal$Model$lengthClassName(template.spacing.b)))))));
+				var modernGrid = _class + ('{' + (columns + (rows + (gapX + (gapY + '}')))));
+				var supports = '@supports (display:grid) {' + (modernGrid + '}');
+				var base = _class + ('{' + (msColumns + (msRows + '}')));
+				return _List_fromArray(
+					[base, supports]);
+			case 'GridPosition':
+				var position = rule.a;
+				var msPosition = A2(
+					$elm$core$String$join,
+					' ',
+					_List_fromArray(
+						[
+							'-ms-grid-row: ' + ($elm$core$String$fromInt(position.row) + ';'),
+							'-ms-grid-row-span: ' + ($elm$core$String$fromInt(position.height) + ';'),
+							'-ms-grid-column: ' + ($elm$core$String$fromInt(position.col) + ';'),
+							'-ms-grid-column-span: ' + ($elm$core$String$fromInt(position.width) + ';')
+						]));
+				var modernPosition = A2(
+					$elm$core$String$join,
+					' ',
+					_List_fromArray(
+						[
+							'grid-row: ' + ($elm$core$String$fromInt(position.row) + (' / ' + ($elm$core$String$fromInt(position.row + position.height) + ';'))),
+							'grid-column: ' + ($elm$core$String$fromInt(position.col) + (' / ' + ($elm$core$String$fromInt(position.col + position.width) + ';')))
+						]));
+				var _class = '.grid-pos-' + ($elm$core$String$fromInt(position.row) + ('-' + ($elm$core$String$fromInt(position.col) + ('-' + ($elm$core$String$fromInt(position.width) + ('-' + $elm$core$String$fromInt(position.height)))))));
+				var modernGrid = _class + ('{' + (modernPosition + '}'));
+				var supports = '@supports (display:grid) {' + (modernGrid + '}');
+				var base = _class + ('{' + (msPosition + '}'));
+				return _List_fromArray(
+					[base, supports]);
+			case 'PseudoSelector':
+				var _class = rule.a;
+				var styles = rule.b;
+				var renderPseudoRule = function (style) {
+					return A3(
+						$mdgriffith$elm_ui$Internal$Model$renderStyleRule,
+						options,
+						style,
+						$elm$core$Maybe$Just(_class));
+				};
+				return A2($elm$core$List$concatMap, renderPseudoRule, styles);
+			default:
+				var transform = rule.a;
+				var val = $mdgriffith$elm_ui$Internal$Model$transformValue(transform);
+				var _class = $mdgriffith$elm_ui$Internal$Model$transformClass(transform);
+				var _v12 = _Utils_Tuple2(_class, val);
+				if ((_v12.a.$ === 'Just') && (_v12.b.$ === 'Just')) {
+					var cls = _v12.a.a;
+					var v = _v12.b.a;
+					return A4(
+						$mdgriffith$elm_ui$Internal$Model$renderStyle,
+						options,
+						maybePseudo,
+						'.' + cls,
+						_List_fromArray(
+							[
+								A2($mdgriffith$elm_ui$Internal$Model$Property, 'transform', v)
+							]));
+				} else {
+					return _List_Nil;
+				}
+		}
+	});
+var $mdgriffith$elm_ui$Internal$Model$encodeStyles = F2(
+	function (options, stylesheet) {
+		return $elm$json$Json$Encode$object(
+			A2(
+				$elm$core$List$map,
+				function (style) {
+					var styled = A3($mdgriffith$elm_ui$Internal$Model$renderStyleRule, options, style, $elm$core$Maybe$Nothing);
+					return _Utils_Tuple2(
+						$mdgriffith$elm_ui$Internal$Model$getStyleName(style),
+						A2($elm$json$Json$Encode$list, $elm$json$Json$Encode$string, styled));
+				},
+				stylesheet));
+	});
+var $mdgriffith$elm_ui$Internal$Model$bracket = F2(
+	function (selector, rules) {
+		var renderPair = function (_v0) {
+			var name = _v0.a;
+			var val = _v0.b;
+			return name + (': ' + (val + ';'));
+		};
+		return selector + (' {' + (A2(
+			$elm$core$String$join,
+			'',
+			A2($elm$core$List$map, renderPair, rules)) + '}'));
+	});
+var $mdgriffith$elm_ui$Internal$Model$fontRule = F3(
+	function (name, modifier, _v0) {
+		var parentAdj = _v0.a;
+		var textAdjustment = _v0.b;
+		return _List_fromArray(
+			[
+				A2($mdgriffith$elm_ui$Internal$Model$bracket, '.' + (name + ('.' + (modifier + (', ' + ('.' + (name + (' .' + modifier))))))), parentAdj),
+				A2($mdgriffith$elm_ui$Internal$Model$bracket, '.' + (name + ('.' + (modifier + ('> .' + ($mdgriffith$elm_ui$Internal$Style$classes.text + (', .' + (name + (' .' + (modifier + (' > .' + $mdgriffith$elm_ui$Internal$Style$classes.text)))))))))), textAdjustment)
+			]);
+	});
+var $mdgriffith$elm_ui$Internal$Model$renderFontAdjustmentRule = F3(
+	function (fontToAdjust, _v0, otherFontName) {
+		var full = _v0.a;
+		var capital = _v0.b;
+		var name = _Utils_eq(fontToAdjust, otherFontName) ? fontToAdjust : (otherFontName + (' .' + fontToAdjust));
+		return A2(
+			$elm$core$String$join,
+			' ',
+			_Utils_ap(
+				A3($mdgriffith$elm_ui$Internal$Model$fontRule, name, $mdgriffith$elm_ui$Internal$Style$classes.sizeByCapital, capital),
+				A3($mdgriffith$elm_ui$Internal$Model$fontRule, name, $mdgriffith$elm_ui$Internal$Style$classes.fullSize, full)));
+	});
+var $mdgriffith$elm_ui$Internal$Model$renderNullAdjustmentRule = F2(
+	function (fontToAdjust, otherFontName) {
+		var name = _Utils_eq(fontToAdjust, otherFontName) ? fontToAdjust : (otherFontName + (' .' + fontToAdjust));
+		return A2(
+			$elm$core$String$join,
+			' ',
+			_List_fromArray(
+				[
+					A2(
+					$mdgriffith$elm_ui$Internal$Model$bracket,
+					'.' + (name + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.sizeByCapital + (', ' + ('.' + (name + (' .' + $mdgriffith$elm_ui$Internal$Style$classes.sizeByCapital))))))),
+					_List_fromArray(
+						[
+							_Utils_Tuple2('line-height', '1')
+						])),
+					A2(
+					$mdgriffith$elm_ui$Internal$Model$bracket,
+					'.' + (name + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.sizeByCapital + ('> .' + ($mdgriffith$elm_ui$Internal$Style$classes.text + (', .' + (name + (' .' + ($mdgriffith$elm_ui$Internal$Style$classes.sizeByCapital + (' > .' + $mdgriffith$elm_ui$Internal$Style$classes.text)))))))))),
+					_List_fromArray(
+						[
+							_Utils_Tuple2('vertical-align', '0'),
+							_Utils_Tuple2('line-height', '1')
+						]))
+				]));
+	});
+var $mdgriffith$elm_ui$Internal$Model$adjust = F3(
+	function (size, height, vertical) {
+		return {height: height / size, size: size, vertical: vertical};
+	});
+var $elm$core$List$filter = F2(
+	function (isGood, list) {
+		return A3(
+			$elm$core$List$foldr,
+			F2(
+				function (x, xs) {
+					return isGood(x) ? A2($elm$core$List$cons, x, xs) : xs;
+				}),
+			_List_Nil,
+			list);
+	});
+var $elm$core$List$maximum = function (list) {
+	if (list.b) {
+		var x = list.a;
+		var xs = list.b;
+		return $elm$core$Maybe$Just(
+			A3($elm$core$List$foldl, $elm$core$Basics$max, x, xs));
+	} else {
+		return $elm$core$Maybe$Nothing;
+	}
+};
+var $elm$core$List$minimum = function (list) {
+	if (list.b) {
+		var x = list.a;
+		var xs = list.b;
+		return $elm$core$Maybe$Just(
+			A3($elm$core$List$foldl, $elm$core$Basics$min, x, xs));
+	} else {
+		return $elm$core$Maybe$Nothing;
+	}
+};
+var $elm$core$Basics$neq = _Utils_notEqual;
+var $mdgriffith$elm_ui$Internal$Model$convertAdjustment = function (adjustment) {
+	var lines = _List_fromArray(
+		[adjustment.capital, adjustment.baseline, adjustment.descender, adjustment.lowercase]);
+	var lineHeight = 1.5;
+	var normalDescender = (lineHeight - 1) / 2;
+	var oldMiddle = lineHeight / 2;
+	var descender = A2(
+		$elm$core$Maybe$withDefault,
+		adjustment.descender,
+		$elm$core$List$minimum(lines));
+	var newBaseline = A2(
+		$elm$core$Maybe$withDefault,
+		adjustment.baseline,
+		$elm$core$List$minimum(
+			A2(
+				$elm$core$List$filter,
+				function (x) {
+					return !_Utils_eq(x, descender);
+				},
+				lines)));
+	var base = lineHeight;
+	var ascender = A2(
+		$elm$core$Maybe$withDefault,
+		adjustment.capital,
+		$elm$core$List$maximum(lines));
+	var capitalSize = 1 / (ascender - newBaseline);
+	var capitalVertical = 1 - ascender;
+	var fullSize = 1 / (ascender - descender);
+	var fullVertical = 1 - ascender;
+	var newCapitalMiddle = ((ascender - newBaseline) / 2) + newBaseline;
+	var newFullMiddle = ((ascender - descender) / 2) + descender;
+	return {
+		capital: A3($mdgriffith$elm_ui$Internal$Model$adjust, capitalSize, ascender - newBaseline, capitalVertical),
+		full: A3($mdgriffith$elm_ui$Internal$Model$adjust, fullSize, ascender - descender, fullVertical)
+	};
+};
+var $mdgriffith$elm_ui$Internal$Model$fontAdjustmentRules = function (converted) {
+	return _Utils_Tuple2(
+		_List_fromArray(
+			[
+				_Utils_Tuple2('display', 'block')
+			]),
+		_List_fromArray(
+			[
+				_Utils_Tuple2('display', 'inline-block'),
+				_Utils_Tuple2(
+				'line-height',
+				$elm$core$String$fromFloat(converted.height)),
+				_Utils_Tuple2(
+				'vertical-align',
+				$elm$core$String$fromFloat(converted.vertical) + 'em'),
+				_Utils_Tuple2(
+				'font-size',
+				$elm$core$String$fromFloat(converted.size) + 'em')
+			]));
+};
+var $mdgriffith$elm_ui$Internal$Model$typefaceAdjustment = function (typefaces) {
+	return A3(
+		$elm$core$List$foldl,
+		F2(
+			function (face, found) {
+				if (found.$ === 'Nothing') {
+					if (face.$ === 'FontWith') {
+						var _with = face.a;
+						var _v2 = _with.adjustment;
+						if (_v2.$ === 'Nothing') {
+							return found;
+						} else {
+							var adjustment = _v2.a;
+							return $elm$core$Maybe$Just(
+								_Utils_Tuple2(
+									$mdgriffith$elm_ui$Internal$Model$fontAdjustmentRules(
+										function ($) {
+											return $.full;
+										}(
+											$mdgriffith$elm_ui$Internal$Model$convertAdjustment(adjustment))),
+									$mdgriffith$elm_ui$Internal$Model$fontAdjustmentRules(
+										function ($) {
+											return $.capital;
+										}(
+											$mdgriffith$elm_ui$Internal$Model$convertAdjustment(adjustment)))));
+						}
+					} else {
+						return found;
+					}
+				} else {
+					return found;
+				}
+			}),
+		$elm$core$Maybe$Nothing,
+		typefaces);
+};
+var $mdgriffith$elm_ui$Internal$Model$renderTopLevelValues = function (rules) {
+	var withImport = function (font) {
+		if (font.$ === 'ImportFont') {
+			var url = font.b;
+			return $elm$core$Maybe$Just('@import url(\'' + (url + '\');'));
+		} else {
+			return $elm$core$Maybe$Nothing;
+		}
+	};
+	var fontImports = function (_v2) {
+		var name = _v2.a;
+		var typefaces = _v2.b;
+		var imports = A2(
+			$elm$core$String$join,
+			'\n',
+			A2($elm$core$List$filterMap, withImport, typefaces));
+		return imports;
+	};
+	var allNames = A2($elm$core$List$map, $elm$core$Tuple$first, rules);
+	var fontAdjustments = function (_v1) {
+		var name = _v1.a;
+		var typefaces = _v1.b;
+		var _v0 = $mdgriffith$elm_ui$Internal$Model$typefaceAdjustment(typefaces);
+		if (_v0.$ === 'Nothing') {
+			return A2(
+				$elm$core$String$join,
+				'',
+				A2(
+					$elm$core$List$map,
+					$mdgriffith$elm_ui$Internal$Model$renderNullAdjustmentRule(name),
+					allNames));
+		} else {
+			var adjustment = _v0.a;
+			return A2(
+				$elm$core$String$join,
+				'',
+				A2(
+					$elm$core$List$map,
+					A2($mdgriffith$elm_ui$Internal$Model$renderFontAdjustmentRule, name, adjustment),
+					allNames));
+		}
+	};
+	return _Utils_ap(
+		A2(
+			$elm$core$String$join,
+			'\n',
+			A2($elm$core$List$map, fontImports, rules)),
+		A2(
+			$elm$core$String$join,
+			'\n',
+			A2($elm$core$List$map, fontAdjustments, rules)));
+};
+var $mdgriffith$elm_ui$Internal$Model$topLevelValue = function (rule) {
+	if (rule.$ === 'FontFamily') {
+		var name = rule.a;
+		var typefaces = rule.b;
+		return $elm$core$Maybe$Just(
+			_Utils_Tuple2(name, typefaces));
+	} else {
+		return $elm$core$Maybe$Nothing;
+	}
+};
+var $mdgriffith$elm_ui$Internal$Model$toStyleSheetString = F2(
+	function (options, stylesheet) {
+		var combine = F2(
+			function (style, rendered) {
+				return {
+					rules: _Utils_ap(
+						rendered.rules,
+						A3($mdgriffith$elm_ui$Internal$Model$renderStyleRule, options, style, $elm$core$Maybe$Nothing)),
+					topLevel: function () {
+						var _v1 = $mdgriffith$elm_ui$Internal$Model$topLevelValue(style);
+						if (_v1.$ === 'Nothing') {
+							return rendered.topLevel;
+						} else {
+							var topLevel = _v1.a;
+							return A2($elm$core$List$cons, topLevel, rendered.topLevel);
+						}
+					}()
+				};
+			});
+		var _v0 = A3(
+			$elm$core$List$foldl,
+			combine,
+			{rules: _List_Nil, topLevel: _List_Nil},
+			stylesheet);
+		var topLevel = _v0.topLevel;
+		var rules = _v0.rules;
+		return _Utils_ap(
+			$mdgriffith$elm_ui$Internal$Model$renderTopLevelValues(topLevel),
+			$elm$core$String$concat(rules));
+	});
+var $mdgriffith$elm_ui$Internal$Model$toStyleSheet = F2(
+	function (options, styleSheet) {
+		var _v0 = options.mode;
+		switch (_v0.$) {
+			case 'Layout':
+				return A3(
+					$elm$virtual_dom$VirtualDom$node,
+					'div',
+					_List_Nil,
+					_List_fromArray(
+						[
+							A3(
+							$elm$virtual_dom$VirtualDom$node,
+							'style',
+							_List_Nil,
+							_List_fromArray(
+								[
+									$elm$virtual_dom$VirtualDom$text(
+									A2($mdgriffith$elm_ui$Internal$Model$toStyleSheetString, options, styleSheet))
+								]))
+						]));
+			case 'NoStaticStyleSheet':
+				return A3(
+					$elm$virtual_dom$VirtualDom$node,
+					'div',
+					_List_Nil,
+					_List_fromArray(
+						[
+							A3(
+							$elm$virtual_dom$VirtualDom$node,
+							'style',
+							_List_Nil,
+							_List_fromArray(
+								[
+									$elm$virtual_dom$VirtualDom$text(
+									A2($mdgriffith$elm_ui$Internal$Model$toStyleSheetString, options, styleSheet))
+								]))
+						]));
+			default:
+				return A3(
+					$elm$virtual_dom$VirtualDom$node,
+					'elm-ui-rules',
+					_List_fromArray(
+						[
+							A2(
+							$elm$virtual_dom$VirtualDom$property,
+							'rules',
+							A2($mdgriffith$elm_ui$Internal$Model$encodeStyles, options, styleSheet))
+						]),
+					_List_Nil);
+		}
+	});
+var $mdgriffith$elm_ui$Internal$Model$embedKeyed = F4(
+	function (_static, opts, styles, children) {
+		var dynamicStyleSheet = A2(
+			$mdgriffith$elm_ui$Internal$Model$toStyleSheet,
+			opts,
+			A3(
+				$elm$core$List$foldl,
+				$mdgriffith$elm_ui$Internal$Model$reduceStyles,
+				_Utils_Tuple2(
+					$elm$core$Set$empty,
+					$mdgriffith$elm_ui$Internal$Model$renderFocusStyle(opts.focus)),
+				styles).b);
+		return _static ? A2(
+			$elm$core$List$cons,
+			_Utils_Tuple2(
+				'static-stylesheet',
+				$mdgriffith$elm_ui$Internal$Model$staticRoot(opts)),
+			A2(
+				$elm$core$List$cons,
+				_Utils_Tuple2('dynamic-stylesheet', dynamicStyleSheet),
+				children)) : A2(
+			$elm$core$List$cons,
+			_Utils_Tuple2('dynamic-stylesheet', dynamicStyleSheet),
+			children);
+	});
+var $mdgriffith$elm_ui$Internal$Model$embedWith = F4(
+	function (_static, opts, styles, children) {
+		var dynamicStyleSheet = A2(
+			$mdgriffith$elm_ui$Internal$Model$toStyleSheet,
+			opts,
+			A3(
+				$elm$core$List$foldl,
+				$mdgriffith$elm_ui$Internal$Model$reduceStyles,
+				_Utils_Tuple2(
+					$elm$core$Set$empty,
+					$mdgriffith$elm_ui$Internal$Model$renderFocusStyle(opts.focus)),
+				styles).b);
+		return _static ? A2(
+			$elm$core$List$cons,
+			$mdgriffith$elm_ui$Internal$Model$staticRoot(opts),
+			A2($elm$core$List$cons, dynamicStyleSheet, children)) : A2($elm$core$List$cons, dynamicStyleSheet, children);
+	});
+var $mdgriffith$elm_ui$Internal$Flag$heightBetween = $mdgriffith$elm_ui$Internal$Flag$flag(45);
+var $mdgriffith$elm_ui$Internal$Flag$heightFill = $mdgriffith$elm_ui$Internal$Flag$flag(37);
+var $elm$virtual_dom$VirtualDom$keyedNode = function (tag) {
+	return _VirtualDom_keyedNode(
+		_VirtualDom_noScript(tag));
+};
+var $elm$core$Basics$not = _Basics_not;
+var $elm$html$Html$p = _VirtualDom_node('p');
+var $elm$core$Bitwise$and = _Bitwise_and;
+var $mdgriffith$elm_ui$Internal$Flag$present = F2(
+	function (myFlag, _v0) {
+		var fieldOne = _v0.a;
+		var fieldTwo = _v0.b;
+		if (myFlag.$ === 'Flag') {
+			var first = myFlag.a;
+			return _Utils_eq(first & fieldOne, first);
+		} else {
+			var second = myFlag.a;
+			return _Utils_eq(second & fieldTwo, second);
+		}
+	});
+var $elm$html$Html$s = _VirtualDom_node('s');
+var $elm$html$Html$u = _VirtualDom_node('u');
+var $mdgriffith$elm_ui$Internal$Flag$widthBetween = $mdgriffith$elm_ui$Internal$Flag$flag(44);
+var $mdgriffith$elm_ui$Internal$Flag$widthFill = $mdgriffith$elm_ui$Internal$Flag$flag(39);
+var $mdgriffith$elm_ui$Internal$Model$finalizeNode = F6(
+	function (has, node, attributes, children, embedMode, parentContext) {
+		var createNode = F2(
+			function (nodeName, attrs) {
+				if (children.$ === 'Keyed') {
+					var keyed = children.a;
+					return A3(
+						$elm$virtual_dom$VirtualDom$keyedNode,
+						nodeName,
+						attrs,
+						function () {
+							switch (embedMode.$) {
+								case 'NoStyleSheet':
+									return keyed;
+								case 'OnlyDynamic':
+									var opts = embedMode.a;
+									var styles = embedMode.b;
+									return A4($mdgriffith$elm_ui$Internal$Model$embedKeyed, false, opts, styles, keyed);
+								default:
+									var opts = embedMode.a;
+									var styles = embedMode.b;
+									return A4($mdgriffith$elm_ui$Internal$Model$embedKeyed, true, opts, styles, keyed);
+							}
+						}());
+				} else {
+					var unkeyed = children.a;
+					return A2(
+						function () {
+							switch (nodeName) {
+								case 'div':
+									return $elm$html$Html$div;
+								case 'p':
+									return $elm$html$Html$p;
+								default:
+									return $elm$virtual_dom$VirtualDom$node(nodeName);
+							}
+						}(),
+						attrs,
+						function () {
+							switch (embedMode.$) {
+								case 'NoStyleSheet':
+									return unkeyed;
+								case 'OnlyDynamic':
+									var opts = embedMode.a;
+									var styles = embedMode.b;
+									return A4($mdgriffith$elm_ui$Internal$Model$embedWith, false, opts, styles, unkeyed);
+								default:
+									var opts = embedMode.a;
+									var styles = embedMode.b;
+									return A4($mdgriffith$elm_ui$Internal$Model$embedWith, true, opts, styles, unkeyed);
+							}
+						}());
+				}
+			});
+		var html = function () {
+			switch (node.$) {
+				case 'Generic':
+					return A2(createNode, 'div', attributes);
+				case 'NodeName':
+					var nodeName = node.a;
+					return A2(createNode, nodeName, attributes);
+				default:
+					var nodeName = node.a;
+					var internal = node.b;
+					return A3(
+						$elm$virtual_dom$VirtualDom$node,
+						nodeName,
+						attributes,
+						_List_fromArray(
+							[
+								A2(
+								createNode,
+								internal,
+								_List_fromArray(
+									[
+										$elm$html$Html$Attributes$class($mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.single))
+									]))
+							]));
+			}
+		}();
+		switch (parentContext.$) {
+			case 'AsRow':
+				return (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$widthFill, has) && (!A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$widthBetween, has))) ? html : (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$alignRight, has) ? A2(
+					$elm$html$Html$u,
+					_List_fromArray(
+						[
+							$elm$html$Html$Attributes$class(
+							A2(
+								$elm$core$String$join,
+								' ',
+								_List_fromArray(
+									[$mdgriffith$elm_ui$Internal$Style$classes.any, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.container, $mdgriffith$elm_ui$Internal$Style$classes.contentCenterY, $mdgriffith$elm_ui$Internal$Style$classes.alignContainerRight])))
+						]),
+					_List_fromArray(
+						[html])) : (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$centerX, has) ? A2(
+					$elm$html$Html$s,
+					_List_fromArray(
+						[
+							$elm$html$Html$Attributes$class(
+							A2(
+								$elm$core$String$join,
+								' ',
+								_List_fromArray(
+									[$mdgriffith$elm_ui$Internal$Style$classes.any, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.container, $mdgriffith$elm_ui$Internal$Style$classes.contentCenterY, $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX])))
+						]),
+					_List_fromArray(
+						[html])) : html));
+			case 'AsColumn':
+				return (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$heightFill, has) && (!A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$heightBetween, has))) ? html : (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$centerY, has) ? A2(
+					$elm$html$Html$s,
+					_List_fromArray(
+						[
+							$elm$html$Html$Attributes$class(
+							A2(
+								$elm$core$String$join,
+								' ',
+								_List_fromArray(
+									[$mdgriffith$elm_ui$Internal$Style$classes.any, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.container, $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY])))
+						]),
+					_List_fromArray(
+						[html])) : (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$alignBottom, has) ? A2(
+					$elm$html$Html$u,
+					_List_fromArray(
+						[
+							$elm$html$Html$Attributes$class(
+							A2(
+								$elm$core$String$join,
+								' ',
+								_List_fromArray(
+									[$mdgriffith$elm_ui$Internal$Style$classes.any, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.container, $mdgriffith$elm_ui$Internal$Style$classes.alignContainerBottom])))
+						]),
+					_List_fromArray(
+						[html])) : html));
+			default:
+				return html;
+		}
+	});
+var $elm$core$List$isEmpty = function (xs) {
+	if (!xs.b) {
+		return true;
+	} else {
+		return false;
+	}
+};
+var $elm$html$Html$text = $elm$virtual_dom$VirtualDom$text;
+var $mdgriffith$elm_ui$Internal$Model$textElementClasses = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.text + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.widthContent + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.heightContent)))));
+var $mdgriffith$elm_ui$Internal$Model$textElement = function (str) {
+	return A2(
+		$elm$html$Html$div,
+		_List_fromArray(
+			[
+				$elm$html$Html$Attributes$class($mdgriffith$elm_ui$Internal$Model$textElementClasses)
+			]),
+		_List_fromArray(
+			[
+				$elm$html$Html$text(str)
+			]));
+};
+var $mdgriffith$elm_ui$Internal$Model$textElementFillClasses = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.text + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.widthFill + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.heightFill)))));
+var $mdgriffith$elm_ui$Internal$Model$textElementFill = function (str) {
+	return A2(
+		$elm$html$Html$div,
+		_List_fromArray(
+			[
+				$elm$html$Html$Attributes$class($mdgriffith$elm_ui$Internal$Model$textElementFillClasses)
+			]),
+		_List_fromArray(
+			[
+				$elm$html$Html$text(str)
+			]));
+};
+var $mdgriffith$elm_ui$Internal$Model$createElement = F3(
+	function (context, children, rendered) {
+		var gatherKeyed = F2(
+			function (_v8, _v9) {
+				var key = _v8.a;
+				var child = _v8.b;
+				var htmls = _v9.a;
+				var existingStyles = _v9.b;
+				switch (child.$) {
+					case 'Unstyled':
+						var html = child.a;
+						return _Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asParagraph) ? _Utils_Tuple2(
+							A2(
+								$elm$core$List$cons,
+								_Utils_Tuple2(
+									key,
+									html(context)),
+								htmls),
+							existingStyles) : _Utils_Tuple2(
+							A2(
+								$elm$core$List$cons,
+								_Utils_Tuple2(
+									key,
+									html(context)),
+								htmls),
+							existingStyles);
+					case 'Styled':
+						var styled = child.a;
+						return _Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asParagraph) ? _Utils_Tuple2(
+							A2(
+								$elm$core$List$cons,
+								_Utils_Tuple2(
+									key,
+									A2(styled.html, $mdgriffith$elm_ui$Internal$Model$NoStyleSheet, context)),
+								htmls),
+							$elm$core$List$isEmpty(existingStyles) ? styled.styles : _Utils_ap(styled.styles, existingStyles)) : _Utils_Tuple2(
+							A2(
+								$elm$core$List$cons,
+								_Utils_Tuple2(
+									key,
+									A2(styled.html, $mdgriffith$elm_ui$Internal$Model$NoStyleSheet, context)),
+								htmls),
+							$elm$core$List$isEmpty(existingStyles) ? styled.styles : _Utils_ap(styled.styles, existingStyles));
+					case 'Text':
+						var str = child.a;
+						return _Utils_Tuple2(
+							A2(
+								$elm$core$List$cons,
+								_Utils_Tuple2(
+									key,
+									_Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asEl) ? $mdgriffith$elm_ui$Internal$Model$textElementFill(str) : $mdgriffith$elm_ui$Internal$Model$textElement(str)),
+								htmls),
+							existingStyles);
+					default:
+						return _Utils_Tuple2(htmls, existingStyles);
+				}
+			});
+		var gather = F2(
+			function (child, _v6) {
+				var htmls = _v6.a;
+				var existingStyles = _v6.b;
+				switch (child.$) {
+					case 'Unstyled':
+						var html = child.a;
+						return _Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asParagraph) ? _Utils_Tuple2(
+							A2(
+								$elm$core$List$cons,
+								html(context),
+								htmls),
+							existingStyles) : _Utils_Tuple2(
+							A2(
+								$elm$core$List$cons,
+								html(context),
+								htmls),
+							existingStyles);
+					case 'Styled':
+						var styled = child.a;
+						return _Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asParagraph) ? _Utils_Tuple2(
+							A2(
+								$elm$core$List$cons,
+								A2(styled.html, $mdgriffith$elm_ui$Internal$Model$NoStyleSheet, context),
+								htmls),
+							$elm$core$List$isEmpty(existingStyles) ? styled.styles : _Utils_ap(styled.styles, existingStyles)) : _Utils_Tuple2(
+							A2(
+								$elm$core$List$cons,
+								A2(styled.html, $mdgriffith$elm_ui$Internal$Model$NoStyleSheet, context),
+								htmls),
+							$elm$core$List$isEmpty(existingStyles) ? styled.styles : _Utils_ap(styled.styles, existingStyles));
+					case 'Text':
+						var str = child.a;
+						return _Utils_Tuple2(
+							A2(
+								$elm$core$List$cons,
+								_Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asEl) ? $mdgriffith$elm_ui$Internal$Model$textElementFill(str) : $mdgriffith$elm_ui$Internal$Model$textElement(str),
+								htmls),
+							existingStyles);
+					default:
+						return _Utils_Tuple2(htmls, existingStyles);
+				}
+			});
+		if (children.$ === 'Keyed') {
+			var keyedChildren = children.a;
+			var _v1 = A3(
+				$elm$core$List$foldr,
+				gatherKeyed,
+				_Utils_Tuple2(_List_Nil, _List_Nil),
+				keyedChildren);
+			var keyed = _v1.a;
+			var styles = _v1.b;
+			var newStyles = $elm$core$List$isEmpty(styles) ? rendered.styles : _Utils_ap(rendered.styles, styles);
+			if (!newStyles.b) {
+				return $mdgriffith$elm_ui$Internal$Model$Unstyled(
+					A5(
+						$mdgriffith$elm_ui$Internal$Model$finalizeNode,
+						rendered.has,
+						rendered.node,
+						rendered.attributes,
+						$mdgriffith$elm_ui$Internal$Model$Keyed(
+							A3($mdgriffith$elm_ui$Internal$Model$addKeyedChildren, 'nearby-element-pls', keyed, rendered.children)),
+						$mdgriffith$elm_ui$Internal$Model$NoStyleSheet));
+			} else {
+				var allStyles = newStyles;
+				return $mdgriffith$elm_ui$Internal$Model$Styled(
+					{
+						html: A4(
+							$mdgriffith$elm_ui$Internal$Model$finalizeNode,
+							rendered.has,
+							rendered.node,
+							rendered.attributes,
+							$mdgriffith$elm_ui$Internal$Model$Keyed(
+								A3($mdgriffith$elm_ui$Internal$Model$addKeyedChildren, 'nearby-element-pls', keyed, rendered.children))),
+						styles: allStyles
+					});
+			}
+		} else {
+			var unkeyedChildren = children.a;
+			var _v3 = A3(
+				$elm$core$List$foldr,
+				gather,
+				_Utils_Tuple2(_List_Nil, _List_Nil),
+				unkeyedChildren);
+			var unkeyed = _v3.a;
+			var styles = _v3.b;
+			var newStyles = $elm$core$List$isEmpty(styles) ? rendered.styles : _Utils_ap(rendered.styles, styles);
+			if (!newStyles.b) {
+				return $mdgriffith$elm_ui$Internal$Model$Unstyled(
+					A5(
+						$mdgriffith$elm_ui$Internal$Model$finalizeNode,
+						rendered.has,
+						rendered.node,
+						rendered.attributes,
+						$mdgriffith$elm_ui$Internal$Model$Unkeyed(
+							A2($mdgriffith$elm_ui$Internal$Model$addChildren, unkeyed, rendered.children)),
+						$mdgriffith$elm_ui$Internal$Model$NoStyleSheet));
+			} else {
+				var allStyles = newStyles;
+				return $mdgriffith$elm_ui$Internal$Model$Styled(
+					{
+						html: A4(
+							$mdgriffith$elm_ui$Internal$Model$finalizeNode,
+							rendered.has,
+							rendered.node,
+							rendered.attributes,
+							$mdgriffith$elm_ui$Internal$Model$Unkeyed(
+								A2($mdgriffith$elm_ui$Internal$Model$addChildren, unkeyed, rendered.children))),
+						styles: allStyles
+					});
+			}
+		}
+	});
+var $mdgriffith$elm_ui$Internal$Model$Single = F3(
+	function (a, b, c) {
+		return {$: 'Single', a: a, b: b, c: c};
+	});
+var $mdgriffith$elm_ui$Internal$Model$Transform = function (a) {
+	return {$: 'Transform', a: a};
+};
+var $mdgriffith$elm_ui$Internal$Flag$Field = F2(
+	function (a, b) {
+		return {$: 'Field', a: a, b: b};
+	});
+var $elm$core$Bitwise$or = _Bitwise_or;
+var $mdgriffith$elm_ui$Internal$Flag$add = F2(
+	function (myFlag, _v0) {
+		var one = _v0.a;
+		var two = _v0.b;
+		if (myFlag.$ === 'Flag') {
+			var first = myFlag.a;
+			return A2($mdgriffith$elm_ui$Internal$Flag$Field, first | one, two);
+		} else {
+			var second = myFlag.a;
+			return A2($mdgriffith$elm_ui$Internal$Flag$Field, one, second | two);
+		}
+	});
+var $mdgriffith$elm_ui$Internal$Model$ChildrenBehind = function (a) {
+	return {$: 'ChildrenBehind', a: a};
+};
+var $mdgriffith$elm_ui$Internal$Model$ChildrenBehindAndInFront = F2(
+	function (a, b) {
+		return {$: 'ChildrenBehindAndInFront', a: a, b: b};
+	});
+var $mdgriffith$elm_ui$Internal$Model$ChildrenInFront = function (a) {
+	return {$: 'ChildrenInFront', a: a};
+};
+var $mdgriffith$elm_ui$Internal$Model$nearbyElement = F2(
+	function (location, elem) {
+		return A2(
+			$elm$html$Html$div,
+			_List_fromArray(
+				[
+					$elm$html$Html$Attributes$class(
+					function () {
+						switch (location.$) {
+							case 'Above':
+								return A2(
+									$elm$core$String$join,
+									' ',
+									_List_fromArray(
+										[$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.above]));
+							case 'Below':
+								return A2(
+									$elm$core$String$join,
+									' ',
+									_List_fromArray(
+										[$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.below]));
+							case 'OnRight':
+								return A2(
+									$elm$core$String$join,
+									' ',
+									_List_fromArray(
+										[$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.onRight]));
+							case 'OnLeft':
+								return A2(
+									$elm$core$String$join,
+									' ',
+									_List_fromArray(
+										[$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.onLeft]));
+							case 'InFront':
+								return A2(
+									$elm$core$String$join,
+									' ',
+									_List_fromArray(
+										[$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.inFront]));
+							default:
+								return A2(
+									$elm$core$String$join,
+									' ',
+									_List_fromArray(
+										[$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.behind]));
+						}
+					}())
+				]),
+			_List_fromArray(
+				[
+					function () {
+					switch (elem.$) {
+						case 'Empty':
+							return $elm$virtual_dom$VirtualDom$text('');
+						case 'Text':
+							var str = elem.a;
+							return $mdgriffith$elm_ui$Internal$Model$textElement(str);
+						case 'Unstyled':
+							var html = elem.a;
+							return html($mdgriffith$elm_ui$Internal$Model$asEl);
+						default:
+							var styled = elem.a;
+							return A2(styled.html, $mdgriffith$elm_ui$Internal$Model$NoStyleSheet, $mdgriffith$elm_ui$Internal$Model$asEl);
+					}
+				}()
+				]));
+	});
+var $mdgriffith$elm_ui$Internal$Model$addNearbyElement = F3(
+	function (location, elem, existing) {
+		var nearby = A2($mdgriffith$elm_ui$Internal$Model$nearbyElement, location, elem);
+		switch (existing.$) {
+			case 'NoNearbyChildren':
+				if (location.$ === 'Behind') {
+					return $mdgriffith$elm_ui$Internal$Model$ChildrenBehind(
+						_List_fromArray(
+							[nearby]));
+				} else {
+					return $mdgriffith$elm_ui$Internal$Model$ChildrenInFront(
+						_List_fromArray(
+							[nearby]));
+				}
+			case 'ChildrenBehind':
+				var existingBehind = existing.a;
+				if (location.$ === 'Behind') {
+					return $mdgriffith$elm_ui$Internal$Model$ChildrenBehind(
+						A2($elm$core$List$cons, nearby, existingBehind));
+				} else {
+					return A2(
+						$mdgriffith$elm_ui$Internal$Model$ChildrenBehindAndInFront,
+						existingBehind,
+						_List_fromArray(
+							[nearby]));
+				}
+			case 'ChildrenInFront':
+				var existingInFront = existing.a;
+				if (location.$ === 'Behind') {
+					return A2(
+						$mdgriffith$elm_ui$Internal$Model$ChildrenBehindAndInFront,
+						_List_fromArray(
+							[nearby]),
+						existingInFront);
+				} else {
+					return $mdgriffith$elm_ui$Internal$Model$ChildrenInFront(
+						A2($elm$core$List$cons, nearby, existingInFront));
+				}
+			default:
+				var existingBehind = existing.a;
+				var existingInFront = existing.b;
+				if (location.$ === 'Behind') {
+					return A2(
+						$mdgriffith$elm_ui$Internal$Model$ChildrenBehindAndInFront,
+						A2($elm$core$List$cons, nearby, existingBehind),
+						existingInFront);
+				} else {
+					return A2(
+						$mdgriffith$elm_ui$Internal$Model$ChildrenBehindAndInFront,
+						existingBehind,
+						A2($elm$core$List$cons, nearby, existingInFront));
+				}
+		}
+	});
+var $mdgriffith$elm_ui$Internal$Model$Embedded = F2(
+	function (a, b) {
+		return {$: 'Embedded', a: a, b: b};
+	});
+var $mdgriffith$elm_ui$Internal$Model$NodeName = function (a) {
+	return {$: 'NodeName', a: a};
+};
+var $mdgriffith$elm_ui$Internal$Model$addNodeName = F2(
+	function (newNode, old) {
+		switch (old.$) {
+			case 'Generic':
+				return $mdgriffith$elm_ui$Internal$Model$NodeName(newNode);
+			case 'NodeName':
+				var name = old.a;
+				return A2($mdgriffith$elm_ui$Internal$Model$Embedded, name, newNode);
+			default:
+				var x = old.a;
+				var y = old.b;
+				return A2($mdgriffith$elm_ui$Internal$Model$Embedded, x, y);
+		}
+	});
+var $mdgriffith$elm_ui$Internal$Model$alignXName = function (align) {
+	switch (align.$) {
+		case 'Left':
+			return $mdgriffith$elm_ui$Internal$Style$classes.alignedHorizontally + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignLeft);
+		case 'Right':
+			return $mdgriffith$elm_ui$Internal$Style$classes.alignedHorizontally + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignRight);
+		default:
+			return $mdgriffith$elm_ui$Internal$Style$classes.alignedHorizontally + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignCenterX);
+	}
+};
+var $mdgriffith$elm_ui$Internal$Model$alignYName = function (align) {
+	switch (align.$) {
+		case 'Top':
+			return $mdgriffith$elm_ui$Internal$Style$classes.alignedVertically + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignTop);
+		case 'Bottom':
+			return $mdgriffith$elm_ui$Internal$Style$classes.alignedVertically + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignBottom);
+		default:
+			return $mdgriffith$elm_ui$Internal$Style$classes.alignedVertically + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignCenterY);
+	}
+};
+var $elm$virtual_dom$VirtualDom$attribute = F2(
+	function (key, value) {
+		return A2(
+			_VirtualDom_attribute,
+			_VirtualDom_noOnOrFormAction(key),
+			_VirtualDom_noJavaScriptOrHtmlUri(value));
+	});
+var $mdgriffith$elm_ui$Internal$Model$FullTransform = F4(
+	function (a, b, c, d) {
+		return {$: 'FullTransform', a: a, b: b, c: c, d: d};
+	});
+var $mdgriffith$elm_ui$Internal$Model$Moved = function (a) {
+	return {$: 'Moved', a: a};
+};
+var $mdgriffith$elm_ui$Internal$Model$composeTransformation = F2(
+	function (transform, component) {
+		switch (transform.$) {
+			case 'Untransformed':
+				switch (component.$) {
+					case 'MoveX':
+						var x = component.a;
+						return $mdgriffith$elm_ui$Internal$Model$Moved(
+							_Utils_Tuple3(x, 0, 0));
+					case 'MoveY':
+						var y = component.a;
+						return $mdgriffith$elm_ui$Internal$Model$Moved(
+							_Utils_Tuple3(0, y, 0));
+					case 'MoveZ':
+						var z = component.a;
+						return $mdgriffith$elm_ui$Internal$Model$Moved(
+							_Utils_Tuple3(0, 0, z));
+					case 'MoveXYZ':
+						var xyz = component.a;
+						return $mdgriffith$elm_ui$Internal$Model$Moved(xyz);
+					case 'Rotate':
+						var xyz = component.a;
+						var angle = component.b;
+						return A4(
+							$mdgriffith$elm_ui$Internal$Model$FullTransform,
+							_Utils_Tuple3(0, 0, 0),
+							_Utils_Tuple3(1, 1, 1),
+							xyz,
+							angle);
+					default:
+						var xyz = component.a;
+						return A4(
+							$mdgriffith$elm_ui$Internal$Model$FullTransform,
+							_Utils_Tuple3(0, 0, 0),
+							xyz,
+							_Utils_Tuple3(0, 0, 1),
+							0);
+				}
+			case 'Moved':
+				var moved = transform.a;
+				var x = moved.a;
+				var y = moved.b;
+				var z = moved.c;
+				switch (component.$) {
+					case 'MoveX':
+						var newX = component.a;
+						return $mdgriffith$elm_ui$Internal$Model$Moved(
+							_Utils_Tuple3(newX, y, z));
+					case 'MoveY':
+						var newY = component.a;
+						return $mdgriffith$elm_ui$Internal$Model$Moved(
+							_Utils_Tuple3(x, newY, z));
+					case 'MoveZ':
+						var newZ = component.a;
+						return $mdgriffith$elm_ui$Internal$Model$Moved(
+							_Utils_Tuple3(x, y, newZ));
+					case 'MoveXYZ':
+						var xyz = component.a;
+						return $mdgriffith$elm_ui$Internal$Model$Moved(xyz);
+					case 'Rotate':
+						var xyz = component.a;
+						var angle = component.b;
+						return A4(
+							$mdgriffith$elm_ui$Internal$Model$FullTransform,
+							moved,
+							_Utils_Tuple3(1, 1, 1),
+							xyz,
+							angle);
+					default:
+						var scale = component.a;
+						return A4(
+							$mdgriffith$elm_ui$Internal$Model$FullTransform,
+							moved,
+							scale,
+							_Utils_Tuple3(0, 0, 1),
+							0);
+				}
+			default:
+				var moved = transform.a;
+				var x = moved.a;
+				var y = moved.b;
+				var z = moved.c;
+				var scaled = transform.b;
+				var origin = transform.c;
+				var angle = transform.d;
+				switch (component.$) {
+					case 'MoveX':
+						var newX = component.a;
+						return A4(
+							$mdgriffith$elm_ui$Internal$Model$FullTransform,
+							_Utils_Tuple3(newX, y, z),
+							scaled,
+							origin,
+							angle);
+					case 'MoveY':
+						var newY = component.a;
+						return A4(
+							$mdgriffith$elm_ui$Internal$Model$FullTransform,
+							_Utils_Tuple3(x, newY, z),
+							scaled,
+							origin,
+							angle);
+					case 'MoveZ':
+						var newZ = component.a;
+						return A4(
+							$mdgriffith$elm_ui$Internal$Model$FullTransform,
+							_Utils_Tuple3(x, y, newZ),
+							scaled,
+							origin,
+							angle);
+					case 'MoveXYZ':
+						var newMove = component.a;
+						return A4($mdgriffith$elm_ui$Internal$Model$FullTransform, newMove, scaled, origin, angle);
+					case 'Rotate':
+						var newOrigin = component.a;
+						var newAngle = component.b;
+						return A4($mdgriffith$elm_ui$Internal$Model$FullTransform, moved, scaled, newOrigin, newAngle);
+					default:
+						var newScale = component.a;
+						return A4($mdgriffith$elm_ui$Internal$Model$FullTransform, moved, newScale, origin, angle);
+				}
+		}
+	});
+var $mdgriffith$elm_ui$Internal$Flag$height = $mdgriffith$elm_ui$Internal$Flag$flag(7);
+var $mdgriffith$elm_ui$Internal$Flag$heightContent = $mdgriffith$elm_ui$Internal$Flag$flag(36);
+var $mdgriffith$elm_ui$Internal$Flag$merge = F2(
+	function (_v0, _v1) {
+		var one = _v0.a;
+		var two = _v0.b;
+		var three = _v1.a;
+		var four = _v1.b;
+		return A2($mdgriffith$elm_ui$Internal$Flag$Field, one | three, two | four);
+	});
+var $mdgriffith$elm_ui$Internal$Flag$none = A2($mdgriffith$elm_ui$Internal$Flag$Field, 0, 0);
+var $mdgriffith$elm_ui$Internal$Model$renderHeight = function (h) {
+	switch (h.$) {
+		case 'Px':
+			var px = h.a;
+			var val = $elm$core$String$fromInt(px);
+			var name = 'height-px-' + val;
+			return _Utils_Tuple3(
+				$mdgriffith$elm_ui$Internal$Flag$none,
+				$mdgriffith$elm_ui$Internal$Style$classes.heightExact + (' ' + name),
+				_List_fromArray(
+					[
+						A3($mdgriffith$elm_ui$Internal$Model$Single, name, 'height', val + 'px')
+					]));
+		case 'Content':
+			return _Utils_Tuple3(
+				A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$heightContent, $mdgriffith$elm_ui$Internal$Flag$none),
+				$mdgriffith$elm_ui$Internal$Style$classes.heightContent,
+				_List_Nil);
+		case 'Fill':
+			var portion = h.a;
+			return (portion === 1) ? _Utils_Tuple3(
+				A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$heightFill, $mdgriffith$elm_ui$Internal$Flag$none),
+				$mdgriffith$elm_ui$Internal$Style$classes.heightFill,
+				_List_Nil) : _Utils_Tuple3(
+				A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$heightFill, $mdgriffith$elm_ui$Internal$Flag$none),
+				$mdgriffith$elm_ui$Internal$Style$classes.heightFillPortion + (' height-fill-' + $elm$core$String$fromInt(portion)),
+				_List_fromArray(
+					[
+						A3(
+						$mdgriffith$elm_ui$Internal$Model$Single,
+						$mdgriffith$elm_ui$Internal$Style$classes.any + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.column + (' > ' + $mdgriffith$elm_ui$Internal$Style$dot(
+							'height-fill-' + $elm$core$String$fromInt(portion))))),
+						'flex-grow',
+						$elm$core$String$fromInt(portion * 100000))
+					]));
+		case 'Min':
+			var minSize = h.a;
+			var len = h.b;
+			var cls = 'min-height-' + $elm$core$String$fromInt(minSize);
+			var style = A3(
+				$mdgriffith$elm_ui$Internal$Model$Single,
+				cls,
+				'min-height',
+				$elm$core$String$fromInt(minSize) + 'px !important');
+			var _v1 = $mdgriffith$elm_ui$Internal$Model$renderHeight(len);
+			var newFlag = _v1.a;
+			var newAttrs = _v1.b;
+			var newStyle = _v1.c;
+			return _Utils_Tuple3(
+				A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$heightBetween, newFlag),
+				cls + (' ' + newAttrs),
+				A2($elm$core$List$cons, style, newStyle));
+		default:
+			var maxSize = h.a;
+			var len = h.b;
+			var cls = 'max-height-' + $elm$core$String$fromInt(maxSize);
+			var style = A3(
+				$mdgriffith$elm_ui$Internal$Model$Single,
+				cls,
+				'max-height',
+				$elm$core$String$fromInt(maxSize) + 'px');
+			var _v2 = $mdgriffith$elm_ui$Internal$Model$renderHeight(len);
+			var newFlag = _v2.a;
+			var newAttrs = _v2.b;
+			var newStyle = _v2.c;
+			return _Utils_Tuple3(
+				A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$heightBetween, newFlag),
+				cls + (' ' + newAttrs),
+				A2($elm$core$List$cons, style, newStyle));
+	}
+};
+var $mdgriffith$elm_ui$Internal$Flag$widthContent = $mdgriffith$elm_ui$Internal$Flag$flag(38);
+var $mdgriffith$elm_ui$Internal$Model$renderWidth = function (w) {
+	switch (w.$) {
+		case 'Px':
+			var px = w.a;
+			return _Utils_Tuple3(
+				$mdgriffith$elm_ui$Internal$Flag$none,
+				$mdgriffith$elm_ui$Internal$Style$classes.widthExact + (' width-px-' + $elm$core$String$fromInt(px)),
+				_List_fromArray(
+					[
+						A3(
+						$mdgriffith$elm_ui$Internal$Model$Single,
+						'width-px-' + $elm$core$String$fromInt(px),
+						'width',
+						$elm$core$String$fromInt(px) + 'px')
+					]));
+		case 'Content':
+			return _Utils_Tuple3(
+				A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$widthContent, $mdgriffith$elm_ui$Internal$Flag$none),
+				$mdgriffith$elm_ui$Internal$Style$classes.widthContent,
+				_List_Nil);
+		case 'Fill':
+			var portion = w.a;
+			return (portion === 1) ? _Utils_Tuple3(
+				A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$widthFill, $mdgriffith$elm_ui$Internal$Flag$none),
+				$mdgriffith$elm_ui$Internal$Style$classes.widthFill,
+				_List_Nil) : _Utils_Tuple3(
+				A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$widthFill, $mdgriffith$elm_ui$Internal$Flag$none),
+				$mdgriffith$elm_ui$Internal$Style$classes.widthFillPortion + (' width-fill-' + $elm$core$String$fromInt(portion)),
+				_List_fromArray(
+					[
+						A3(
+						$mdgriffith$elm_ui$Internal$Model$Single,
+						$mdgriffith$elm_ui$Internal$Style$classes.any + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.row + (' > ' + $mdgriffith$elm_ui$Internal$Style$dot(
+							'width-fill-' + $elm$core$String$fromInt(portion))))),
+						'flex-grow',
+						$elm$core$String$fromInt(portion * 100000))
+					]));
+		case 'Min':
+			var minSize = w.a;
+			var len = w.b;
+			var cls = 'min-width-' + $elm$core$String$fromInt(minSize);
+			var style = A3(
+				$mdgriffith$elm_ui$Internal$Model$Single,
+				cls,
+				'min-width',
+				$elm$core$String$fromInt(minSize) + 'px');
+			var _v1 = $mdgriffith$elm_ui$Internal$Model$renderWidth(len);
+			var newFlag = _v1.a;
+			var newAttrs = _v1.b;
+			var newStyle = _v1.c;
+			return _Utils_Tuple3(
+				A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$widthBetween, newFlag),
+				cls + (' ' + newAttrs),
+				A2($elm$core$List$cons, style, newStyle));
+		default:
+			var maxSize = w.a;
+			var len = w.b;
+			var cls = 'max-width-' + $elm$core$String$fromInt(maxSize);
+			var style = A3(
+				$mdgriffith$elm_ui$Internal$Model$Single,
+				cls,
+				'max-width',
+				$elm$core$String$fromInt(maxSize) + 'px');
+			var _v2 = $mdgriffith$elm_ui$Internal$Model$renderWidth(len);
+			var newFlag = _v2.a;
+			var newAttrs = _v2.b;
+			var newStyle = _v2.c;
+			return _Utils_Tuple3(
+				A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$widthBetween, newFlag),
+				cls + (' ' + newAttrs),
+				A2($elm$core$List$cons, style, newStyle));
+	}
+};
+var $mdgriffith$elm_ui$Internal$Flag$borderWidth = $mdgriffith$elm_ui$Internal$Flag$flag(27);
+var $elm$core$Basics$ge = _Utils_ge;
+var $mdgriffith$elm_ui$Internal$Model$skippable = F2(
+	function (flag, style) {
+		if (_Utils_eq(flag, $mdgriffith$elm_ui$Internal$Flag$borderWidth)) {
+			if (style.$ === 'Single') {
+				var val = style.c;
+				switch (val) {
+					case '0px':
+						return true;
+					case '1px':
+						return true;
+					case '2px':
+						return true;
+					case '3px':
+						return true;
+					case '4px':
+						return true;
+					case '5px':
+						return true;
+					case '6px':
+						return true;
+					default:
+						return false;
+				}
+			} else {
+				return false;
+			}
+		} else {
+			switch (style.$) {
+				case 'FontSize':
+					var i = style.a;
+					return (i >= 8) && (i <= 32);
+				case 'PaddingStyle':
+					var name = style.a;
+					var t = style.b;
+					var r = style.c;
+					var b = style.d;
+					var l = style.e;
+					return _Utils_eq(t, b) && (_Utils_eq(t, r) && (_Utils_eq(t, l) && ((t >= 0) && (t <= 24))));
+				default:
+					return false;
+			}
+		}
+	});
+var $mdgriffith$elm_ui$Internal$Flag$width = $mdgriffith$elm_ui$Internal$Flag$flag(6);
+var $mdgriffith$elm_ui$Internal$Flag$xAlign = $mdgriffith$elm_ui$Internal$Flag$flag(30);
+var $mdgriffith$elm_ui$Internal$Flag$yAlign = $mdgriffith$elm_ui$Internal$Flag$flag(29);
+var $mdgriffith$elm_ui$Internal$Model$gatherAttrRecursive = F8(
+	function (classes, node, has, transform, styles, attrs, children, elementAttrs) {
+		gatherAttrRecursive:
+		while (true) {
+			if (!elementAttrs.b) {
+				var _v1 = $mdgriffith$elm_ui$Internal$Model$transformClass(transform);
+				if (_v1.$ === 'Nothing') {
+					return {
+						attributes: A2(
+							$elm$core$List$cons,
+							$elm$html$Html$Attributes$class(classes),
+							attrs),
+						children: children,
+						has: has,
+						node: node,
+						styles: styles
+					};
+				} else {
+					var _class = _v1.a;
+					return {
+						attributes: A2(
+							$elm$core$List$cons,
+							$elm$html$Html$Attributes$class(classes + (' ' + _class)),
+							attrs),
+						children: children,
+						has: has,
+						node: node,
+						styles: A2(
+							$elm$core$List$cons,
+							$mdgriffith$elm_ui$Internal$Model$Transform(transform),
+							styles)
+					};
+				}
+			} else {
+				var attribute = elementAttrs.a;
+				var remaining = elementAttrs.b;
+				switch (attribute.$) {
+					case 'NoAttribute':
+						var $temp$classes = classes,
+							$temp$node = node,
+							$temp$has = has,
+							$temp$transform = transform,
+							$temp$styles = styles,
+							$temp$attrs = attrs,
+							$temp$children = children,
+							$temp$elementAttrs = remaining;
+						classes = $temp$classes;
+						node = $temp$node;
+						has = $temp$has;
+						transform = $temp$transform;
+						styles = $temp$styles;
+						attrs = $temp$attrs;
+						children = $temp$children;
+						elementAttrs = $temp$elementAttrs;
+						continue gatherAttrRecursive;
+					case 'Class':
+						var flag = attribute.a;
+						var exactClassName = attribute.b;
+						if (A2($mdgriffith$elm_ui$Internal$Flag$present, flag, has)) {
+							var $temp$classes = classes,
+								$temp$node = node,
+								$temp$has = has,
+								$temp$transform = transform,
+								$temp$styles = styles,
+								$temp$attrs = attrs,
+								$temp$children = children,
+								$temp$elementAttrs = remaining;
+							classes = $temp$classes;
+							node = $temp$node;
+							has = $temp$has;
+							transform = $temp$transform;
+							styles = $temp$styles;
+							attrs = $temp$attrs;
+							children = $temp$children;
+							elementAttrs = $temp$elementAttrs;
+							continue gatherAttrRecursive;
+						} else {
+							var $temp$classes = exactClassName + (' ' + classes),
+								$temp$node = node,
+								$temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, flag, has),
+								$temp$transform = transform,
+								$temp$styles = styles,
+								$temp$attrs = attrs,
+								$temp$children = children,
+								$temp$elementAttrs = remaining;
+							classes = $temp$classes;
+							node = $temp$node;
+							has = $temp$has;
+							transform = $temp$transform;
+							styles = $temp$styles;
+							attrs = $temp$attrs;
+							children = $temp$children;
+							elementAttrs = $temp$elementAttrs;
+							continue gatherAttrRecursive;
+						}
+					case 'Attr':
+						var actualAttribute = attribute.a;
+						var $temp$classes = classes,
+							$temp$node = node,
+							$temp$has = has,
+							$temp$transform = transform,
+							$temp$styles = styles,
+							$temp$attrs = A2($elm$core$List$cons, actualAttribute, attrs),
+							$temp$children = children,
+							$temp$elementAttrs = remaining;
+						classes = $temp$classes;
+						node = $temp$node;
+						has = $temp$has;
+						transform = $temp$transform;
+						styles = $temp$styles;
+						attrs = $temp$attrs;
+						children = $temp$children;
+						elementAttrs = $temp$elementAttrs;
+						continue gatherAttrRecursive;
+					case 'StyleClass':
+						var flag = attribute.a;
+						var style = attribute.b;
+						if (A2($mdgriffith$elm_ui$Internal$Flag$present, flag, has)) {
+							var $temp$classes = classes,
+								$temp$node = node,
+								$temp$has = has,
+								$temp$transform = transform,
+								$temp$styles = styles,
+								$temp$attrs = attrs,
+								$temp$children = children,
+								$temp$elementAttrs = remaining;
+							classes = $temp$classes;
+							node = $temp$node;
+							has = $temp$has;
+							transform = $temp$transform;
+							styles = $temp$styles;
+							attrs = $temp$attrs;
+							children = $temp$children;
+							elementAttrs = $temp$elementAttrs;
+							continue gatherAttrRecursive;
+						} else {
+							if (A2($mdgriffith$elm_ui$Internal$Model$skippable, flag, style)) {
+								var $temp$classes = $mdgriffith$elm_ui$Internal$Model$getStyleName(style) + (' ' + classes),
+									$temp$node = node,
+									$temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, flag, has),
+									$temp$transform = transform,
+									$temp$styles = styles,
+									$temp$attrs = attrs,
+									$temp$children = children,
+									$temp$elementAttrs = remaining;
+								classes = $temp$classes;
+								node = $temp$node;
+								has = $temp$has;
+								transform = $temp$transform;
+								styles = $temp$styles;
+								attrs = $temp$attrs;
+								children = $temp$children;
+								elementAttrs = $temp$elementAttrs;
+								continue gatherAttrRecursive;
+							} else {
+								var $temp$classes = $mdgriffith$elm_ui$Internal$Model$getStyleName(style) + (' ' + classes),
+									$temp$node = node,
+									$temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, flag, has),
+									$temp$transform = transform,
+									$temp$styles = A2($elm$core$List$cons, style, styles),
+									$temp$attrs = attrs,
+									$temp$children = children,
+									$temp$elementAttrs = remaining;
+								classes = $temp$classes;
+								node = $temp$node;
+								has = $temp$has;
+								transform = $temp$transform;
+								styles = $temp$styles;
+								attrs = $temp$attrs;
+								children = $temp$children;
+								elementAttrs = $temp$elementAttrs;
+								continue gatherAttrRecursive;
+							}
+						}
+					case 'TransformComponent':
+						var flag = attribute.a;
+						var component = attribute.b;
+						var $temp$classes = classes,
+							$temp$node = node,
+							$temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, flag, has),
+							$temp$transform = A2($mdgriffith$elm_ui$Internal$Model$composeTransformation, transform, component),
+							$temp$styles = styles,
+							$temp$attrs = attrs,
+							$temp$children = children,
+							$temp$elementAttrs = remaining;
+						classes = $temp$classes;
+						node = $temp$node;
+						has = $temp$has;
+						transform = $temp$transform;
+						styles = $temp$styles;
+						attrs = $temp$attrs;
+						children = $temp$children;
+						elementAttrs = $temp$elementAttrs;
+						continue gatherAttrRecursive;
+					case 'Width':
+						var width = attribute.a;
+						if (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$width, has)) {
+							var $temp$classes = classes,
+								$temp$node = node,
+								$temp$has = has,
+								$temp$transform = transform,
+								$temp$styles = styles,
+								$temp$attrs = attrs,
+								$temp$children = children,
+								$temp$elementAttrs = remaining;
+							classes = $temp$classes;
+							node = $temp$node;
+							has = $temp$has;
+							transform = $temp$transform;
+							styles = $temp$styles;
+							attrs = $temp$attrs;
+							children = $temp$children;
+							elementAttrs = $temp$elementAttrs;
+							continue gatherAttrRecursive;
+						} else {
+							switch (width.$) {
+								case 'Px':
+									var px = width.a;
+									var $temp$classes = ($mdgriffith$elm_ui$Internal$Style$classes.widthExact + (' width-px-' + $elm$core$String$fromInt(px))) + (' ' + classes),
+										$temp$node = node,
+										$temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$width, has),
+										$temp$transform = transform,
+										$temp$styles = A2(
+										$elm$core$List$cons,
+										A3(
+											$mdgriffith$elm_ui$Internal$Model$Single,
+											'width-px-' + $elm$core$String$fromInt(px),
+											'width',
+											$elm$core$String$fromInt(px) + 'px'),
+										styles),
+										$temp$attrs = attrs,
+										$temp$children = children,
+										$temp$elementAttrs = remaining;
+									classes = $temp$classes;
+									node = $temp$node;
+									has = $temp$has;
+									transform = $temp$transform;
+									styles = $temp$styles;
+									attrs = $temp$attrs;
+									children = $temp$children;
+									elementAttrs = $temp$elementAttrs;
+									continue gatherAttrRecursive;
+								case 'Content':
+									var $temp$classes = classes + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.widthContent),
+										$temp$node = node,
+										$temp$has = A2(
+										$mdgriffith$elm_ui$Internal$Flag$add,
+										$mdgriffith$elm_ui$Internal$Flag$widthContent,
+										A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$width, has)),
+										$temp$transform = transform,
+										$temp$styles = styles,
+										$temp$attrs = attrs,
+										$temp$children = children,
+										$temp$elementAttrs = remaining;
+									classes = $temp$classes;
+									node = $temp$node;
+									has = $temp$has;
+									transform = $temp$transform;
+									styles = $temp$styles;
+									attrs = $temp$attrs;
+									children = $temp$children;
+									elementAttrs = $temp$elementAttrs;
+									continue gatherAttrRecursive;
+								case 'Fill':
+									var portion = width.a;
+									if (portion === 1) {
+										var $temp$classes = classes + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.widthFill),
+											$temp$node = node,
+											$temp$has = A2(
+											$mdgriffith$elm_ui$Internal$Flag$add,
+											$mdgriffith$elm_ui$Internal$Flag$widthFill,
+											A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$width, has)),
+											$temp$transform = transform,
+											$temp$styles = styles,
+											$temp$attrs = attrs,
+											$temp$children = children,
+											$temp$elementAttrs = remaining;
+										classes = $temp$classes;
+										node = $temp$node;
+										has = $temp$has;
+										transform = $temp$transform;
+										styles = $temp$styles;
+										attrs = $temp$attrs;
+										children = $temp$children;
+										elementAttrs = $temp$elementAttrs;
+										continue gatherAttrRecursive;
+									} else {
+										var $temp$classes = classes + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.widthFillPortion + (' width-fill-' + $elm$core$String$fromInt(portion)))),
+											$temp$node = node,
+											$temp$has = A2(
+											$mdgriffith$elm_ui$Internal$Flag$add,
+											$mdgriffith$elm_ui$Internal$Flag$widthFill,
+											A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$width, has)),
+											$temp$transform = transform,
+											$temp$styles = A2(
+											$elm$core$List$cons,
+											A3(
+												$mdgriffith$elm_ui$Internal$Model$Single,
+												$mdgriffith$elm_ui$Internal$Style$classes.any + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.row + (' > ' + $mdgriffith$elm_ui$Internal$Style$dot(
+													'width-fill-' + $elm$core$String$fromInt(portion))))),
+												'flex-grow',
+												$elm$core$String$fromInt(portion * 100000)),
+											styles),
+											$temp$attrs = attrs,
+											$temp$children = children,
+											$temp$elementAttrs = remaining;
+										classes = $temp$classes;
+										node = $temp$node;
+										has = $temp$has;
+										transform = $temp$transform;
+										styles = $temp$styles;
+										attrs = $temp$attrs;
+										children = $temp$children;
+										elementAttrs = $temp$elementAttrs;
+										continue gatherAttrRecursive;
+									}
+								default:
+									var _v4 = $mdgriffith$elm_ui$Internal$Model$renderWidth(width);
+									var addToFlags = _v4.a;
+									var newClass = _v4.b;
+									var newStyles = _v4.c;
+									var $temp$classes = classes + (' ' + newClass),
+										$temp$node = node,
+										$temp$has = A2(
+										$mdgriffith$elm_ui$Internal$Flag$merge,
+										addToFlags,
+										A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$width, has)),
+										$temp$transform = transform,
+										$temp$styles = _Utils_ap(newStyles, styles),
+										$temp$attrs = attrs,
+										$temp$children = children,
+										$temp$elementAttrs = remaining;
+									classes = $temp$classes;
+									node = $temp$node;
+									has = $temp$has;
+									transform = $temp$transform;
+									styles = $temp$styles;
+									attrs = $temp$attrs;
+									children = $temp$children;
+									elementAttrs = $temp$elementAttrs;
+									continue gatherAttrRecursive;
+							}
+						}
+					case 'Height':
+						var height = attribute.a;
+						if (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$height, has)) {
+							var $temp$classes = classes,
+								$temp$node = node,
+								$temp$has = has,
+								$temp$transform = transform,
+								$temp$styles = styles,
+								$temp$attrs = attrs,
+								$temp$children = children,
+								$temp$elementAttrs = remaining;
+							classes = $temp$classes;
+							node = $temp$node;
+							has = $temp$has;
+							transform = $temp$transform;
+							styles = $temp$styles;
+							attrs = $temp$attrs;
+							children = $temp$children;
+							elementAttrs = $temp$elementAttrs;
+							continue gatherAttrRecursive;
+						} else {
+							switch (height.$) {
+								case 'Px':
+									var px = height.a;
+									var val = $elm$core$String$fromInt(px) + 'px';
+									var name = 'height-px-' + val;
+									var $temp$classes = $mdgriffith$elm_ui$Internal$Style$classes.heightExact + (' ' + (name + (' ' + classes))),
+										$temp$node = node,
+										$temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$height, has),
+										$temp$transform = transform,
+										$temp$styles = A2(
+										$elm$core$List$cons,
+										A3($mdgriffith$elm_ui$Internal$Model$Single, name, 'height ', val),
+										styles),
+										$temp$attrs = attrs,
+										$temp$children = children,
+										$temp$elementAttrs = remaining;
+									classes = $temp$classes;
+									node = $temp$node;
+									has = $temp$has;
+									transform = $temp$transform;
+									styles = $temp$styles;
+									attrs = $temp$attrs;
+									children = $temp$children;
+									elementAttrs = $temp$elementAttrs;
+									continue gatherAttrRecursive;
+								case 'Content':
+									var $temp$classes = $mdgriffith$elm_ui$Internal$Style$classes.heightContent + (' ' + classes),
+										$temp$node = node,
+										$temp$has = A2(
+										$mdgriffith$elm_ui$Internal$Flag$add,
+										$mdgriffith$elm_ui$Internal$Flag$heightContent,
+										A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$height, has)),
+										$temp$transform = transform,
+										$temp$styles = styles,
+										$temp$attrs = attrs,
+										$temp$children = children,
+										$temp$elementAttrs = remaining;
+									classes = $temp$classes;
+									node = $temp$node;
+									has = $temp$has;
+									transform = $temp$transform;
+									styles = $temp$styles;
+									attrs = $temp$attrs;
+									children = $temp$children;
+									elementAttrs = $temp$elementAttrs;
+									continue gatherAttrRecursive;
+								case 'Fill':
+									var portion = height.a;
+									if (portion === 1) {
+										var $temp$classes = $mdgriffith$elm_ui$Internal$Style$classes.heightFill + (' ' + classes),
+											$temp$node = node,
+											$temp$has = A2(
+											$mdgriffith$elm_ui$Internal$Flag$add,
+											$mdgriffith$elm_ui$Internal$Flag$heightFill,
+											A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$height, has)),
+											$temp$transform = transform,
+											$temp$styles = styles,
+											$temp$attrs = attrs,
+											$temp$children = children,
+											$temp$elementAttrs = remaining;
+										classes = $temp$classes;
+										node = $temp$node;
+										has = $temp$has;
+										transform = $temp$transform;
+										styles = $temp$styles;
+										attrs = $temp$attrs;
+										children = $temp$children;
+										elementAttrs = $temp$elementAttrs;
+										continue gatherAttrRecursive;
+									} else {
+										var $temp$classes = classes + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.heightFillPortion + (' height-fill-' + $elm$core$String$fromInt(portion)))),
+											$temp$node = node,
+											$temp$has = A2(
+											$mdgriffith$elm_ui$Internal$Flag$add,
+											$mdgriffith$elm_ui$Internal$Flag$heightFill,
+											A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$height, has)),
+											$temp$transform = transform,
+											$temp$styles = A2(
+											$elm$core$List$cons,
+											A3(
+												$mdgriffith$elm_ui$Internal$Model$Single,
+												$mdgriffith$elm_ui$Internal$Style$classes.any + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.column + (' > ' + $mdgriffith$elm_ui$Internal$Style$dot(
+													'height-fill-' + $elm$core$String$fromInt(portion))))),
+												'flex-grow',
+												$elm$core$String$fromInt(portion * 100000)),
+											styles),
+											$temp$attrs = attrs,
+											$temp$children = children,
+											$temp$elementAttrs = remaining;
+										classes = $temp$classes;
+										node = $temp$node;
+										has = $temp$has;
+										transform = $temp$transform;
+										styles = $temp$styles;
+										attrs = $temp$attrs;
+										children = $temp$children;
+										elementAttrs = $temp$elementAttrs;
+										continue gatherAttrRecursive;
+									}
+								default:
+									var _v6 = $mdgriffith$elm_ui$Internal$Model$renderHeight(height);
+									var addToFlags = _v6.a;
+									var newClass = _v6.b;
+									var newStyles = _v6.c;
+									var $temp$classes = classes + (' ' + newClass),
+										$temp$node = node,
+										$temp$has = A2(
+										$mdgriffith$elm_ui$Internal$Flag$merge,
+										addToFlags,
+										A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$height, has)),
+										$temp$transform = transform,
+										$temp$styles = _Utils_ap(newStyles, styles),
+										$temp$attrs = attrs,
+										$temp$children = children,
+										$temp$elementAttrs = remaining;
+									classes = $temp$classes;
+									node = $temp$node;
+									has = $temp$has;
+									transform = $temp$transform;
+									styles = $temp$styles;
+									attrs = $temp$attrs;
+									children = $temp$children;
+									elementAttrs = $temp$elementAttrs;
+									continue gatherAttrRecursive;
+							}
+						}
+					case 'Describe':
+						var description = attribute.a;
+						switch (description.$) {
+							case 'Main':
+								var $temp$classes = classes,
+									$temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'main', node),
+									$temp$has = has,
+									$temp$transform = transform,
+									$temp$styles = styles,
+									$temp$attrs = attrs,
+									$temp$children = children,
+									$temp$elementAttrs = remaining;
+								classes = $temp$classes;
+								node = $temp$node;
+								has = $temp$has;
+								transform = $temp$transform;
+								styles = $temp$styles;
+								attrs = $temp$attrs;
+								children = $temp$children;
+								elementAttrs = $temp$elementAttrs;
+								continue gatherAttrRecursive;
+							case 'Navigation':
+								var $temp$classes = classes,
+									$temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'nav', node),
+									$temp$has = has,
+									$temp$transform = transform,
+									$temp$styles = styles,
+									$temp$attrs = attrs,
+									$temp$children = children,
+									$temp$elementAttrs = remaining;
+								classes = $temp$classes;
+								node = $temp$node;
+								has = $temp$has;
+								transform = $temp$transform;
+								styles = $temp$styles;
+								attrs = $temp$attrs;
+								children = $temp$children;
+								elementAttrs = $temp$elementAttrs;
+								continue gatherAttrRecursive;
+							case 'ContentInfo':
+								var $temp$classes = classes,
+									$temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'footer', node),
+									$temp$has = has,
+									$temp$transform = transform,
+									$temp$styles = styles,
+									$temp$attrs = attrs,
+									$temp$children = children,
+									$temp$elementAttrs = remaining;
+								classes = $temp$classes;
+								node = $temp$node;
+								has = $temp$has;
+								transform = $temp$transform;
+								styles = $temp$styles;
+								attrs = $temp$attrs;
+								children = $temp$children;
+								elementAttrs = $temp$elementAttrs;
+								continue gatherAttrRecursive;
+							case 'Complementary':
+								var $temp$classes = classes,
+									$temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'aside', node),
+									$temp$has = has,
+									$temp$transform = transform,
+									$temp$styles = styles,
+									$temp$attrs = attrs,
+									$temp$children = children,
+									$temp$elementAttrs = remaining;
+								classes = $temp$classes;
+								node = $temp$node;
+								has = $temp$has;
+								transform = $temp$transform;
+								styles = $temp$styles;
+								attrs = $temp$attrs;
+								children = $temp$children;
+								elementAttrs = $temp$elementAttrs;
+								continue gatherAttrRecursive;
+							case 'Heading':
+								var i = description.a;
+								if (i <= 1) {
+									var $temp$classes = classes,
+										$temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'h1', node),
+										$temp$has = has,
+										$temp$transform = transform,
+										$temp$styles = styles,
+										$temp$attrs = attrs,
+										$temp$children = children,
+										$temp$elementAttrs = remaining;
+									classes = $temp$classes;
+									node = $temp$node;
+									has = $temp$has;
+									transform = $temp$transform;
+									styles = $temp$styles;
+									attrs = $temp$attrs;
+									children = $temp$children;
+									elementAttrs = $temp$elementAttrs;
+									continue gatherAttrRecursive;
+								} else {
+									if (i < 7) {
+										var $temp$classes = classes,
+											$temp$node = A2(
+											$mdgriffith$elm_ui$Internal$Model$addNodeName,
+											'h' + $elm$core$String$fromInt(i),
+											node),
+											$temp$has = has,
+											$temp$transform = transform,
+											$temp$styles = styles,
+											$temp$attrs = attrs,
+											$temp$children = children,
+											$temp$elementAttrs = remaining;
+										classes = $temp$classes;
+										node = $temp$node;
+										has = $temp$has;
+										transform = $temp$transform;
+										styles = $temp$styles;
+										attrs = $temp$attrs;
+										children = $temp$children;
+										elementAttrs = $temp$elementAttrs;
+										continue gatherAttrRecursive;
+									} else {
+										var $temp$classes = classes,
+											$temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'h6', node),
+											$temp$has = has,
+											$temp$transform = transform,
+											$temp$styles = styles,
+											$temp$attrs = attrs,
+											$temp$children = children,
+											$temp$elementAttrs = remaining;
+										classes = $temp$classes;
+										node = $temp$node;
+										has = $temp$has;
+										transform = $temp$transform;
+										styles = $temp$styles;
+										attrs = $temp$attrs;
+										children = $temp$children;
+										elementAttrs = $temp$elementAttrs;
+										continue gatherAttrRecursive;
+									}
+								}
+							case 'Paragraph':
+								var $temp$classes = classes,
+									$temp$node = node,
+									$temp$has = has,
+									$temp$transform = transform,
+									$temp$styles = styles,
+									$temp$attrs = attrs,
+									$temp$children = children,
+									$temp$elementAttrs = remaining;
+								classes = $temp$classes;
+								node = $temp$node;
+								has = $temp$has;
+								transform = $temp$transform;
+								styles = $temp$styles;
+								attrs = $temp$attrs;
+								children = $temp$children;
+								elementAttrs = $temp$elementAttrs;
+								continue gatherAttrRecursive;
+							case 'Button':
+								var $temp$classes = classes,
+									$temp$node = node,
+									$temp$has = has,
+									$temp$transform = transform,
+									$temp$styles = styles,
+									$temp$attrs = A2(
+									$elm$core$List$cons,
+									A2($elm$virtual_dom$VirtualDom$attribute, 'role', 'button'),
+									attrs),
+									$temp$children = children,
+									$temp$elementAttrs = remaining;
+								classes = $temp$classes;
+								node = $temp$node;
+								has = $temp$has;
+								transform = $temp$transform;
+								styles = $temp$styles;
+								attrs = $temp$attrs;
+								children = $temp$children;
+								elementAttrs = $temp$elementAttrs;
+								continue gatherAttrRecursive;
+							case 'Label':
+								var label = description.a;
+								var $temp$classes = classes,
+									$temp$node = node,
+									$temp$has = has,
+									$temp$transform = transform,
+									$temp$styles = styles,
+									$temp$attrs = A2(
+									$elm$core$List$cons,
+									A2($elm$virtual_dom$VirtualDom$attribute, 'aria-label', label),
+									attrs),
+									$temp$children = children,
+									$temp$elementAttrs = remaining;
+								classes = $temp$classes;
+								node = $temp$node;
+								has = $temp$has;
+								transform = $temp$transform;
+								styles = $temp$styles;
+								attrs = $temp$attrs;
+								children = $temp$children;
+								elementAttrs = $temp$elementAttrs;
+								continue gatherAttrRecursive;
+							case 'LivePolite':
+								var $temp$classes = classes,
+									$temp$node = node,
+									$temp$has = has,
+									$temp$transform = transform,
+									$temp$styles = styles,
+									$temp$attrs = A2(
+									$elm$core$List$cons,
+									A2($elm$virtual_dom$VirtualDom$attribute, 'aria-live', 'polite'),
+									attrs),
+									$temp$children = children,
+									$temp$elementAttrs = remaining;
+								classes = $temp$classes;
+								node = $temp$node;
+								has = $temp$has;
+								transform = $temp$transform;
+								styles = $temp$styles;
+								attrs = $temp$attrs;
+								children = $temp$children;
+								elementAttrs = $temp$elementAttrs;
+								continue gatherAttrRecursive;
+							default:
+								var $temp$classes = classes,
+									$temp$node = node,
+									$temp$has = has,
+									$temp$transform = transform,
+									$temp$styles = styles,
+									$temp$attrs = A2(
+									$elm$core$List$cons,
+									A2($elm$virtual_dom$VirtualDom$attribute, 'aria-live', 'assertive'),
+									attrs),
+									$temp$children = children,
+									$temp$elementAttrs = remaining;
+								classes = $temp$classes;
+								node = $temp$node;
+								has = $temp$has;
+								transform = $temp$transform;
+								styles = $temp$styles;
+								attrs = $temp$attrs;
+								children = $temp$children;
+								elementAttrs = $temp$elementAttrs;
+								continue gatherAttrRecursive;
+						}
+					case 'Nearby':
+						var location = attribute.a;
+						var elem = attribute.b;
+						var newStyles = function () {
+							switch (elem.$) {
+								case 'Empty':
+									return styles;
+								case 'Text':
+									var str = elem.a;
+									return styles;
+								case 'Unstyled':
+									var html = elem.a;
+									return styles;
+								default:
+									var styled = elem.a;
+									return _Utils_ap(styles, styled.styles);
+							}
+						}();
+						var $temp$classes = classes,
+							$temp$node = node,
+							$temp$has = has,
+							$temp$transform = transform,
+							$temp$styles = newStyles,
+							$temp$attrs = attrs,
+							$temp$children = A3($mdgriffith$elm_ui$Internal$Model$addNearbyElement, location, elem, children),
+							$temp$elementAttrs = remaining;
+						classes = $temp$classes;
+						node = $temp$node;
+						has = $temp$has;
+						transform = $temp$transform;
+						styles = $temp$styles;
+						attrs = $temp$attrs;
+						children = $temp$children;
+						elementAttrs = $temp$elementAttrs;
+						continue gatherAttrRecursive;
+					case 'AlignX':
+						var x = attribute.a;
+						if (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$xAlign, has)) {
+							var $temp$classes = classes,
+								$temp$node = node,
+								$temp$has = has,
+								$temp$transform = transform,
+								$temp$styles = styles,
+								$temp$attrs = attrs,
+								$temp$children = children,
+								$temp$elementAttrs = remaining;
+							classes = $temp$classes;
+							node = $temp$node;
+							has = $temp$has;
+							transform = $temp$transform;
+							styles = $temp$styles;
+							attrs = $temp$attrs;
+							children = $temp$children;
+							elementAttrs = $temp$elementAttrs;
+							continue gatherAttrRecursive;
+						} else {
+							var $temp$classes = $mdgriffith$elm_ui$Internal$Model$alignXName(x) + (' ' + classes),
+								$temp$node = node,
+								$temp$has = function (flags) {
+								switch (x.$) {
+									case 'CenterX':
+										return A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$centerX, flags);
+									case 'Right':
+										return A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$alignRight, flags);
+									default:
+										return flags;
+								}
+							}(
+								A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$xAlign, has)),
+								$temp$transform = transform,
+								$temp$styles = styles,
+								$temp$attrs = attrs,
+								$temp$children = children,
+								$temp$elementAttrs = remaining;
+							classes = $temp$classes;
+							node = $temp$node;
+							has = $temp$has;
+							transform = $temp$transform;
+							styles = $temp$styles;
+							attrs = $temp$attrs;
+							children = $temp$children;
+							elementAttrs = $temp$elementAttrs;
+							continue gatherAttrRecursive;
+						}
+					default:
+						var y = attribute.a;
+						if (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$yAlign, has)) {
+							var $temp$classes = classes,
+								$temp$node = node,
+								$temp$has = has,
+								$temp$transform = transform,
+								$temp$styles = styles,
+								$temp$attrs = attrs,
+								$temp$children = children,
+								$temp$elementAttrs = remaining;
+							classes = $temp$classes;
+							node = $temp$node;
+							has = $temp$has;
+							transform = $temp$transform;
+							styles = $temp$styles;
+							attrs = $temp$attrs;
+							children = $temp$children;
+							elementAttrs = $temp$elementAttrs;
+							continue gatherAttrRecursive;
+						} else {
+							var $temp$classes = $mdgriffith$elm_ui$Internal$Model$alignYName(y) + (' ' + classes),
+								$temp$node = node,
+								$temp$has = function (flags) {
+								switch (y.$) {
+									case 'CenterY':
+										return A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$centerY, flags);
+									case 'Bottom':
+										return A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$alignBottom, flags);
+									default:
+										return flags;
+								}
+							}(
+								A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$yAlign, has)),
+								$temp$transform = transform,
+								$temp$styles = styles,
+								$temp$attrs = attrs,
+								$temp$children = children,
+								$temp$elementAttrs = remaining;
+							classes = $temp$classes;
+							node = $temp$node;
+							has = $temp$has;
+							transform = $temp$transform;
+							styles = $temp$styles;
+							attrs = $temp$attrs;
+							children = $temp$children;
+							elementAttrs = $temp$elementAttrs;
+							continue gatherAttrRecursive;
+						}
+				}
+			}
+		}
+	});
+var $mdgriffith$elm_ui$Internal$Model$Untransformed = {$: 'Untransformed'};
+var $mdgriffith$elm_ui$Internal$Model$untransformed = $mdgriffith$elm_ui$Internal$Model$Untransformed;
+var $mdgriffith$elm_ui$Internal$Model$element = F4(
+	function (context, node, attributes, children) {
+		return A3(
+			$mdgriffith$elm_ui$Internal$Model$createElement,
+			context,
+			children,
+			A8(
+				$mdgriffith$elm_ui$Internal$Model$gatherAttrRecursive,
+				$mdgriffith$elm_ui$Internal$Model$contextClasses(context),
+				node,
+				$mdgriffith$elm_ui$Internal$Flag$none,
+				$mdgriffith$elm_ui$Internal$Model$untransformed,
+				_List_Nil,
+				_List_Nil,
+				$mdgriffith$elm_ui$Internal$Model$NoNearbyChildren,
+				$elm$core$List$reverse(attributes)));
+	});
+var $mdgriffith$elm_ui$Internal$Model$Height = function (a) {
+	return {$: 'Height', a: a};
+};
+var $mdgriffith$elm_ui$Element$height = $mdgriffith$elm_ui$Internal$Model$Height;
+var $mdgriffith$elm_ui$Internal$Model$Attr = function (a) {
+	return {$: 'Attr', a: a};
+};
+var $mdgriffith$elm_ui$Internal$Model$htmlClass = function (cls) {
+	return $mdgriffith$elm_ui$Internal$Model$Attr(
+		$elm$html$Html$Attributes$class(cls));
+};
+var $mdgriffith$elm_ui$Internal$Model$Content = {$: 'Content'};
+var $mdgriffith$elm_ui$Element$shrink = $mdgriffith$elm_ui$Internal$Model$Content;
+var $mdgriffith$elm_ui$Internal$Model$Width = function (a) {
+	return {$: 'Width', a: a};
+};
+var $mdgriffith$elm_ui$Element$width = $mdgriffith$elm_ui$Internal$Model$Width;
+var $mdgriffith$elm_ui$Element$column = F2(
+	function (attrs, children) {
+		return A4(
+			$mdgriffith$elm_ui$Internal$Model$element,
+			$mdgriffith$elm_ui$Internal$Model$asColumn,
+			$mdgriffith$elm_ui$Internal$Model$div,
+			A2(
+				$elm$core$List$cons,
+				$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentTop + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.contentLeft)),
+				A2(
+					$elm$core$List$cons,
+					$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink),
+					A2(
+						$elm$core$List$cons,
+						$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),
+						attrs))),
+			$mdgriffith$elm_ui$Internal$Model$Unkeyed(children));
+	});
+var $mdgriffith$elm_ui$Element$el = F2(
+	function (attrs, child) {
+		return A4(
+			$mdgriffith$elm_ui$Internal$Model$element,
+			$mdgriffith$elm_ui$Internal$Model$asEl,
+			$mdgriffith$elm_ui$Internal$Model$div,
+			A2(
+				$elm$core$List$cons,
+				$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),
+				A2(
+					$elm$core$List$cons,
+					$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink),
+					attrs)),
+			$mdgriffith$elm_ui$Internal$Model$Unkeyed(
+				_List_fromArray(
+					[child])));
+	});
+var $mdgriffith$elm_ui$Internal$Model$ImportFont = F2(
+	function (a, b) {
+		return {$: 'ImportFont', a: a, b: b};
+	});
+var $mdgriffith$elm_ui$Element$Font$external = function (_v0) {
+	var url = _v0.url;
+	var name = _v0.name;
+	return A2($mdgriffith$elm_ui$Internal$Model$ImportFont, name, url);
+};
+var $mdgriffith$elm_ui$Internal$Model$FontFamily = F2(
+	function (a, b) {
+		return {$: 'FontFamily', a: a, b: b};
+	});
+var $mdgriffith$elm_ui$Internal$Flag$fontFamily = $mdgriffith$elm_ui$Internal$Flag$flag(5);
+var $elm$core$String$words = _String_words;
+var $mdgriffith$elm_ui$Internal$Model$renderFontClassName = F2(
+	function (font, current) {
+		return _Utils_ap(
+			current,
+			function () {
+				switch (font.$) {
+					case 'Serif':
+						return 'serif';
+					case 'SansSerif':
+						return 'sans-serif';
+					case 'Monospace':
+						return 'monospace';
+					case 'Typeface':
+						var name = font.a;
+						return A2(
+							$elm$core$String$join,
+							'-',
+							$elm$core$String$words(
+								$elm$core$String$toLower(name)));
+					case 'ImportFont':
+						var name = font.a;
+						var url = font.b;
+						return A2(
+							$elm$core$String$join,
+							'-',
+							$elm$core$String$words(
+								$elm$core$String$toLower(name)));
+					default:
+						var name = font.a.name;
+						return A2(
+							$elm$core$String$join,
+							'-',
+							$elm$core$String$words(
+								$elm$core$String$toLower(name)));
+				}
+			}());
+	});
+var $mdgriffith$elm_ui$Element$Font$family = function (families) {
+	return A2(
+		$mdgriffith$elm_ui$Internal$Model$StyleClass,
+		$mdgriffith$elm_ui$Internal$Flag$fontFamily,
+		A2(
+			$mdgriffith$elm_ui$Internal$Model$FontFamily,
+			A3($elm$core$List$foldl, $mdgriffith$elm_ui$Internal$Model$renderFontClassName, 'ff-', families),
+			families));
+};
+var $mdgriffith$elm_ui$Internal$Model$Fill = function (a) {
+	return {$: 'Fill', a: a};
+};
+var $mdgriffith$elm_ui$Element$fill = $mdgriffith$elm_ui$Internal$Model$Fill(1);
+var $elm$html$Html$Attributes$alt = $elm$html$Html$Attributes$stringProperty('alt');
+var $elm$html$Html$Attributes$src = function (url) {
+	return A2(
+		$elm$html$Html$Attributes$stringProperty,
+		'src',
+		_VirtualDom_noJavaScriptOrHtmlUri(url));
+};
+var $mdgriffith$elm_ui$Element$image = F2(
+	function (attrs, _v0) {
+		var src = _v0.src;
+		var description = _v0.description;
+		var imageAttributes = A2(
+			$elm$core$List$filter,
+			function (a) {
+				switch (a.$) {
+					case 'Width':
+						return true;
+					case 'Height':
+						return true;
+					default:
+						return false;
+				}
+			},
+			attrs);
+		return A4(
+			$mdgriffith$elm_ui$Internal$Model$element,
+			$mdgriffith$elm_ui$Internal$Model$asEl,
+			$mdgriffith$elm_ui$Internal$Model$div,
+			A2(
+				$elm$core$List$cons,
+				$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.imageContainer),
+				attrs),
+			$mdgriffith$elm_ui$Internal$Model$Unkeyed(
+				_List_fromArray(
+					[
+						A4(
+						$mdgriffith$elm_ui$Internal$Model$element,
+						$mdgriffith$elm_ui$Internal$Model$asEl,
+						$mdgriffith$elm_ui$Internal$Model$NodeName('img'),
+						_Utils_ap(
+							_List_fromArray(
+								[
+									$mdgriffith$elm_ui$Internal$Model$Attr(
+									$elm$html$Html$Attributes$src(src)),
+									$mdgriffith$elm_ui$Internal$Model$Attr(
+									$elm$html$Html$Attributes$alt(description))
+								]),
+							imageAttributes),
+						$mdgriffith$elm_ui$Internal$Model$Unkeyed(_List_Nil))
+					])));
+	});
+var $mdgriffith$elm_ui$Internal$Model$OnlyDynamic = F2(
+	function (a, b) {
+		return {$: 'OnlyDynamic', a: a, b: b};
+	});
+var $mdgriffith$elm_ui$Internal$Model$StaticRootAndDynamic = F2(
+	function (a, b) {
+		return {$: 'StaticRootAndDynamic', a: a, b: b};
+	});
+var $mdgriffith$elm_ui$Internal$Model$AllowHover = {$: 'AllowHover'};
+var $mdgriffith$elm_ui$Internal$Model$Layout = {$: 'Layout'};
+var $mdgriffith$elm_ui$Internal$Model$focusDefaultStyle = {
+	backgroundColor: $elm$core$Maybe$Nothing,
+	borderColor: $elm$core$Maybe$Nothing,
+	shadow: $elm$core$Maybe$Just(
+		{
+			blur: 0,
+			color: A4($mdgriffith$elm_ui$Internal$Model$Rgba, 155 / 255, 203 / 255, 1, 1),
+			offset: _Utils_Tuple2(0, 0),
+			size: 3
+		})
+};
+var $mdgriffith$elm_ui$Internal$Model$optionsToRecord = function (options) {
+	var combine = F2(
+		function (opt, record) {
+			switch (opt.$) {
+				case 'HoverOption':
+					var hoverable = opt.a;
+					var _v4 = record.hover;
+					if (_v4.$ === 'Nothing') {
+						return _Utils_update(
+							record,
+							{
+								hover: $elm$core$Maybe$Just(hoverable)
+							});
+					} else {
+						return record;
+					}
+				case 'FocusStyleOption':
+					var focusStyle = opt.a;
+					var _v5 = record.focus;
+					if (_v5.$ === 'Nothing') {
+						return _Utils_update(
+							record,
+							{
+								focus: $elm$core$Maybe$Just(focusStyle)
+							});
+					} else {
+						return record;
+					}
+				default:
+					var renderMode = opt.a;
+					var _v6 = record.mode;
+					if (_v6.$ === 'Nothing') {
+						return _Utils_update(
+							record,
+							{
+								mode: $elm$core$Maybe$Just(renderMode)
+							});
+					} else {
+						return record;
+					}
+			}
+		});
+	var andFinally = function (record) {
+		return {
+			focus: function () {
+				var _v0 = record.focus;
+				if (_v0.$ === 'Nothing') {
+					return $mdgriffith$elm_ui$Internal$Model$focusDefaultStyle;
+				} else {
+					var focusable = _v0.a;
+					return focusable;
+				}
+			}(),
+			hover: function () {
+				var _v1 = record.hover;
+				if (_v1.$ === 'Nothing') {
+					return $mdgriffith$elm_ui$Internal$Model$AllowHover;
+				} else {
+					var hoverable = _v1.a;
+					return hoverable;
+				}
+			}(),
+			mode: function () {
+				var _v2 = record.mode;
+				if (_v2.$ === 'Nothing') {
+					return $mdgriffith$elm_ui$Internal$Model$Layout;
+				} else {
+					var actualMode = _v2.a;
+					return actualMode;
+				}
+			}()
+		};
+	};
+	return andFinally(
+		A3(
+			$elm$core$List$foldr,
+			combine,
+			{focus: $elm$core$Maybe$Nothing, hover: $elm$core$Maybe$Nothing, mode: $elm$core$Maybe$Nothing},
+			options));
+};
+var $mdgriffith$elm_ui$Internal$Model$toHtml = F2(
+	function (mode, el) {
+		switch (el.$) {
+			case 'Unstyled':
+				var html = el.a;
+				return html($mdgriffith$elm_ui$Internal$Model$asEl);
+			case 'Styled':
+				var styles = el.a.styles;
+				var html = el.a.html;
+				return A2(
+					html,
+					mode(styles),
+					$mdgriffith$elm_ui$Internal$Model$asEl);
+			case 'Text':
+				var text = el.a;
+				return $mdgriffith$elm_ui$Internal$Model$textElement(text);
+			default:
+				return $mdgriffith$elm_ui$Internal$Model$textElement('');
+		}
+	});
+var $mdgriffith$elm_ui$Internal$Model$renderRoot = F3(
+	function (optionList, attributes, child) {
+		var options = $mdgriffith$elm_ui$Internal$Model$optionsToRecord(optionList);
+		var embedStyle = function () {
+			var _v0 = options.mode;
+			if (_v0.$ === 'NoStaticStyleSheet') {
+				return $mdgriffith$elm_ui$Internal$Model$OnlyDynamic(options);
+			} else {
+				return $mdgriffith$elm_ui$Internal$Model$StaticRootAndDynamic(options);
+			}
+		}();
+		return A2(
+			$mdgriffith$elm_ui$Internal$Model$toHtml,
+			embedStyle,
+			A4(
+				$mdgriffith$elm_ui$Internal$Model$element,
+				$mdgriffith$elm_ui$Internal$Model$asEl,
+				$mdgriffith$elm_ui$Internal$Model$div,
+				attributes,
+				$mdgriffith$elm_ui$Internal$Model$Unkeyed(
+					_List_fromArray(
+						[child]))));
+	});
+var $mdgriffith$elm_ui$Internal$Model$FontSize = function (a) {
+	return {$: 'FontSize', a: a};
+};
+var $mdgriffith$elm_ui$Internal$Model$SansSerif = {$: 'SansSerif'};
+var $mdgriffith$elm_ui$Internal$Model$Typeface = function (a) {
+	return {$: 'Typeface', a: a};
+};
+var $mdgriffith$elm_ui$Internal$Flag$fontColor = $mdgriffith$elm_ui$Internal$Flag$flag(14);
+var $mdgriffith$elm_ui$Internal$Flag$fontSize = $mdgriffith$elm_ui$Internal$Flag$flag(4);
+var $mdgriffith$elm_ui$Internal$Model$rootStyle = function () {
+	var families = _List_fromArray(
+		[
+			$mdgriffith$elm_ui$Internal$Model$Typeface('Open Sans'),
+			$mdgriffith$elm_ui$Internal$Model$Typeface('Helvetica'),
+			$mdgriffith$elm_ui$Internal$Model$Typeface('Verdana'),
+			$mdgriffith$elm_ui$Internal$Model$SansSerif
+		]);
+	return _List_fromArray(
+		[
+			A2(
+			$mdgriffith$elm_ui$Internal$Model$StyleClass,
+			$mdgriffith$elm_ui$Internal$Flag$bgColor,
+			A3(
+				$mdgriffith$elm_ui$Internal$Model$Colored,
+				'bg-' + $mdgriffith$elm_ui$Internal$Model$formatColorClass(
+					A4($mdgriffith$elm_ui$Internal$Model$Rgba, 1, 1, 1, 0)),
+				'background-color',
+				A4($mdgriffith$elm_ui$Internal$Model$Rgba, 1, 1, 1, 0))),
+			A2(
+			$mdgriffith$elm_ui$Internal$Model$StyleClass,
+			$mdgriffith$elm_ui$Internal$Flag$fontColor,
+			A3(
+				$mdgriffith$elm_ui$Internal$Model$Colored,
+				'fc-' + $mdgriffith$elm_ui$Internal$Model$formatColorClass(
+					A4($mdgriffith$elm_ui$Internal$Model$Rgba, 0, 0, 0, 1)),
+				'color',
+				A4($mdgriffith$elm_ui$Internal$Model$Rgba, 0, 0, 0, 1))),
+			A2(
+			$mdgriffith$elm_ui$Internal$Model$StyleClass,
+			$mdgriffith$elm_ui$Internal$Flag$fontSize,
+			$mdgriffith$elm_ui$Internal$Model$FontSize(20)),
+			A2(
+			$mdgriffith$elm_ui$Internal$Model$StyleClass,
+			$mdgriffith$elm_ui$Internal$Flag$fontFamily,
+			A2(
+				$mdgriffith$elm_ui$Internal$Model$FontFamily,
+				A3($elm$core$List$foldl, $mdgriffith$elm_ui$Internal$Model$renderFontClassName, 'font-', families),
+				families))
+		]);
+}();
+var $mdgriffith$elm_ui$Element$layoutWith = F3(
+	function (_v0, attrs, child) {
+		var options = _v0.options;
+		return A3(
+			$mdgriffith$elm_ui$Internal$Model$renderRoot,
+			options,
+			A2(
+				$elm$core$List$cons,
+				$mdgriffith$elm_ui$Internal$Model$htmlClass(
+					A2(
+						$elm$core$String$join,
+						' ',
+						_List_fromArray(
+							[$mdgriffith$elm_ui$Internal$Style$classes.root, $mdgriffith$elm_ui$Internal$Style$classes.any, $mdgriffith$elm_ui$Internal$Style$classes.single]))),
+				_Utils_ap($mdgriffith$elm_ui$Internal$Model$rootStyle, attrs)),
+			child);
+	});
+var $mdgriffith$elm_ui$Internal$Model$PaddingStyle = F5(
+	function (a, b, c, d, e) {
+		return {$: 'PaddingStyle', a: a, b: b, c: c, d: d, e: e};
+	});
+var $mdgriffith$elm_ui$Internal$Flag$padding = $mdgriffith$elm_ui$Internal$Flag$flag(2);
+var $mdgriffith$elm_ui$Element$padding = function (x) {
+	var f = x;
+	return A2(
+		$mdgriffith$elm_ui$Internal$Model$StyleClass,
+		$mdgriffith$elm_ui$Internal$Flag$padding,
+		A5(
+			$mdgriffith$elm_ui$Internal$Model$PaddingStyle,
+			'p-' + $elm$core$String$fromInt(x),
+			f,
+			f,
+			f,
+			f));
+};
+var $mdgriffith$elm_ui$Element$paddingXY = F2(
+	function (x, y) {
+		if (_Utils_eq(x, y)) {
+			var f = x;
+			return A2(
+				$mdgriffith$elm_ui$Internal$Model$StyleClass,
+				$mdgriffith$elm_ui$Internal$Flag$padding,
+				A5(
+					$mdgriffith$elm_ui$Internal$Model$PaddingStyle,
+					'p-' + $elm$core$String$fromInt(x),
+					f,
+					f,
+					f,
+					f));
+		} else {
+			var yFloat = y;
+			var xFloat = x;
+			return A2(
+				$mdgriffith$elm_ui$Internal$Model$StyleClass,
+				$mdgriffith$elm_ui$Internal$Flag$padding,
+				A5(
+					$mdgriffith$elm_ui$Internal$Model$PaddingStyle,
+					'p-' + ($elm$core$String$fromInt(x) + ('-' + $elm$core$String$fromInt(y))),
+					yFloat,
+					xFloat,
+					yFloat,
+					xFloat));
+		}
+	});
+var $mdgriffith$elm_ui$Internal$Model$Px = function (a) {
+	return {$: 'Px', a: a};
+};
+var $mdgriffith$elm_ui$Element$px = $mdgriffith$elm_ui$Internal$Model$Px;
+var $mdgriffith$elm_ui$Internal$Model$AsRow = {$: 'AsRow'};
+var $mdgriffith$elm_ui$Internal$Model$asRow = $mdgriffith$elm_ui$Internal$Model$AsRow;
+var $mdgriffith$elm_ui$Element$row = F2(
+	function (attrs, children) {
+		return A4(
+			$mdgriffith$elm_ui$Internal$Model$element,
+			$mdgriffith$elm_ui$Internal$Model$asRow,
+			$mdgriffith$elm_ui$Internal$Model$div,
+			A2(
+				$elm$core$List$cons,
+				$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentLeft + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.contentCenterY)),
+				A2(
+					$elm$core$List$cons,
+					$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),
+					A2(
+						$elm$core$List$cons,
+						$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink),
+						attrs))),
+			$mdgriffith$elm_ui$Internal$Model$Unkeyed(children));
+	});
+var $mdgriffith$elm_ui$Element$Font$sansSerif = $mdgriffith$elm_ui$Internal$Model$SansSerif;
+var $elm$core$Basics$pow = _Basics_pow;
+var $mdgriffith$elm_ui$Element$modular = F3(
+	function (normal, ratio, rescale) {
+		return (!rescale) ? normal : ((rescale < 0) ? (normal * A2($elm$core$Basics$pow, ratio, rescale)) : (normal * A2($elm$core$Basics$pow, ratio, rescale - 1)));
+	});
+var $author$project$Morphir$Web$DevelopMain$scaled = A2(
+	$elm$core$Basics$composeR,
+	A2($mdgriffith$elm_ui$Element$modular, 12, 1.25),
+	$elm$core$Basics$round);
+var $mdgriffith$elm_ui$Element$Font$size = function (i) {
+	return A2(
+		$mdgriffith$elm_ui$Internal$Model$StyleClass,
+		$mdgriffith$elm_ui$Internal$Flag$fontSize,
+		$mdgriffith$elm_ui$Internal$Model$FontSize(i));
+};
+var $mdgriffith$elm_ui$Internal$Model$Class = F2(
+	function (a, b) {
+		return {$: 'Class', a: a, b: b};
+	});
+var $mdgriffith$elm_ui$Internal$Flag$fontWeight = $mdgriffith$elm_ui$Internal$Flag$flag(13);
+var $mdgriffith$elm_ui$Element$Font$bold = A2($mdgriffith$elm_ui$Internal$Model$Class, $mdgriffith$elm_ui$Internal$Flag$fontWeight, $mdgriffith$elm_ui$Internal$Style$classes.bold);
+var $mdgriffith$elm_ui$Internal$Model$Button = {$: 'Button'};
+var $mdgriffith$elm_ui$Internal$Model$Describe = function (a) {
+	return {$: 'Describe', a: a};
+};
+var $elm$json$Json$Encode$bool = _Json_wrap;
+var $elm$html$Html$Attributes$boolProperty = F2(
+	function (key, bool) {
+		return A2(
+			_VirtualDom_property,
+			key,
+			$elm$json$Json$Encode$bool(bool));
+	});
+var $elm$html$Html$Attributes$disabled = $elm$html$Html$Attributes$boolProperty('disabled');
+var $mdgriffith$elm_ui$Element$Input$enter = 'Enter';
+var $mdgriffith$elm_ui$Internal$Model$NoAttribute = {$: 'NoAttribute'};
+var $mdgriffith$elm_ui$Element$Input$hasFocusStyle = function (attr) {
+	if (((attr.$ === 'StyleClass') && (attr.b.$ === 'PseudoSelector')) && (attr.b.a.$ === 'Focus')) {
+		var _v1 = attr.b;
+		var _v2 = _v1.a;
+		return true;
+	} else {
+		return false;
+	}
+};
+var $mdgriffith$elm_ui$Element$Input$focusDefault = function (attrs) {
+	return A2($elm$core$List$any, $mdgriffith$elm_ui$Element$Input$hasFocusStyle, attrs) ? $mdgriffith$elm_ui$Internal$Model$NoAttribute : $mdgriffith$elm_ui$Internal$Model$htmlClass('focusable');
+};
+var $elm$core$Basics$composeL = F3(
+	function (g, f, x) {
+		return g(
+			f(x));
+	});
+var $elm$virtual_dom$VirtualDom$Normal = function (a) {
+	return {$: 'Normal', a: a};
+};
+var $elm$virtual_dom$VirtualDom$on = _VirtualDom_on;
+var $elm$html$Html$Events$on = F2(
+	function (event, decoder) {
+		return A2(
+			$elm$virtual_dom$VirtualDom$on,
+			event,
+			$elm$virtual_dom$VirtualDom$Normal(decoder));
+	});
+var $elm$html$Html$Events$onClick = function (msg) {
+	return A2(
+		$elm$html$Html$Events$on,
+		'click',
+		$elm$json$Json$Decode$succeed(msg));
+};
+var $mdgriffith$elm_ui$Element$Events$onClick = A2($elm$core$Basics$composeL, $mdgriffith$elm_ui$Internal$Model$Attr, $elm$html$Html$Events$onClick);
+var $elm$virtual_dom$VirtualDom$MayPreventDefault = function (a) {
+	return {$: 'MayPreventDefault', a: a};
+};
+var $elm$html$Html$Events$preventDefaultOn = F2(
+	function (event, decoder) {
+		return A2(
+			$elm$virtual_dom$VirtualDom$on,
+			event,
+			$elm$virtual_dom$VirtualDom$MayPreventDefault(decoder));
+	});
+var $mdgriffith$elm_ui$Element$Input$onKeyLookup = function (lookup) {
+	var decode = function (code) {
+		var _v0 = lookup(code);
+		if (_v0.$ === 'Nothing') {
+			return $elm$json$Json$Decode$fail('No key matched');
+		} else {
+			var msg = _v0.a;
+			return $elm$json$Json$Decode$succeed(msg);
+		}
+	};
+	var isKey = A2(
+		$elm$json$Json$Decode$andThen,
+		decode,
+		A2($elm$json$Json$Decode$field, 'key', $elm$json$Json$Decode$string));
+	return $mdgriffith$elm_ui$Internal$Model$Attr(
+		A2(
+			$elm$html$Html$Events$preventDefaultOn,
+			'keydown',
+			A2(
+				$elm$json$Json$Decode$map,
+				function (fired) {
+					return _Utils_Tuple2(fired, true);
+				},
+				isKey)));
+};
+var $mdgriffith$elm_ui$Internal$Flag$cursor = $mdgriffith$elm_ui$Internal$Flag$flag(21);
+var $mdgriffith$elm_ui$Element$pointer = A2($mdgriffith$elm_ui$Internal$Model$Class, $mdgriffith$elm_ui$Internal$Flag$cursor, $mdgriffith$elm_ui$Internal$Style$classes.cursorPointer);
+var $mdgriffith$elm_ui$Element$Input$space = ' ';
+var $elm$html$Html$Attributes$tabindex = function (n) {
+	return A2(
+		_VirtualDom_attribute,
+		'tabIndex',
+		$elm$core$String$fromInt(n));
+};
+var $mdgriffith$elm_ui$Element$Input$button = F2(
+	function (attrs, _v0) {
+		var onPress = _v0.onPress;
+		var label = _v0.label;
+		return A4(
+			$mdgriffith$elm_ui$Internal$Model$element,
+			$mdgriffith$elm_ui$Internal$Model$asEl,
+			$mdgriffith$elm_ui$Internal$Model$div,
+			A2(
+				$elm$core$List$cons,
+				$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),
+				A2(
+					$elm$core$List$cons,
+					$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink),
+					A2(
+						$elm$core$List$cons,
+						$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentCenterX + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.contentCenterY + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.seButton + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.noTextSelection)))))),
+						A2(
+							$elm$core$List$cons,
+							$mdgriffith$elm_ui$Element$pointer,
+							A2(
+								$elm$core$List$cons,
+								$mdgriffith$elm_ui$Element$Input$focusDefault(attrs),
+								A2(
+									$elm$core$List$cons,
+									$mdgriffith$elm_ui$Internal$Model$Describe($mdgriffith$elm_ui$Internal$Model$Button),
+									A2(
+										$elm$core$List$cons,
+										$mdgriffith$elm_ui$Internal$Model$Attr(
+											$elm$html$Html$Attributes$tabindex(0)),
+										function () {
+											if (onPress.$ === 'Nothing') {
+												return A2(
+													$elm$core$List$cons,
+													$mdgriffith$elm_ui$Internal$Model$Attr(
+														$elm$html$Html$Attributes$disabled(true)),
+													attrs);
+											} else {
+												var msg = onPress.a;
+												return A2(
+													$elm$core$List$cons,
+													$mdgriffith$elm_ui$Element$Events$onClick(msg),
+													A2(
+														$elm$core$List$cons,
+														$mdgriffith$elm_ui$Element$Input$onKeyLookup(
+															function (code) {
+																return _Utils_eq(code, $mdgriffith$elm_ui$Element$Input$enter) ? $elm$core$Maybe$Just(msg) : (_Utils_eq(code, $mdgriffith$elm_ui$Element$Input$space) ? $elm$core$Maybe$Just(msg) : $elm$core$Maybe$Nothing);
+															}),
+														attrs));
+											}
+										}()))))))),
+			$mdgriffith$elm_ui$Internal$Model$Unkeyed(
+				_List_fromArray(
+					[label])));
+	});
+var $author$project$Morphir$Web$Theme$Light$gray = A3($mdgriffith$elm_ui$Element$rgb255, 141, 141, 141);
+var $author$project$Morphir$Web$Theme$Light$orange = A3($mdgriffith$elm_ui$Element$rgb255, 255, 105, 0);
+var $mdgriffith$elm_ui$Internal$Flag$borderRound = $mdgriffith$elm_ui$Internal$Flag$flag(17);
+var $mdgriffith$elm_ui$Element$Border$rounded = function (radius) {
+	return A2(
+		$mdgriffith$elm_ui$Internal$Model$StyleClass,
+		$mdgriffith$elm_ui$Internal$Flag$borderRound,
+		A3(
+			$mdgriffith$elm_ui$Internal$Model$Single,
+			'br-' + $elm$core$String$fromInt(radius),
+			'border-radius',
+			$elm$core$String$fromInt(radius) + 'px'));
+};
+var $mdgriffith$elm_ui$Internal$Model$Text = function (a) {
+	return {$: 'Text', a: a};
+};
+var $mdgriffith$elm_ui$Element$text = function (content) {
+	return $mdgriffith$elm_ui$Internal$Model$Text(content);
+};
+var $author$project$Morphir$Web$Theme$Light$theme = function (scaled) {
+	return {
+		button: function (options) {
+			return A2(
+				$mdgriffith$elm_ui$Element$Input$button,
+				_List_fromArray(
+					[
+						$mdgriffith$elm_ui$Element$Background$color($author$project$Morphir$Web$Theme$Light$orange),
+						$mdgriffith$elm_ui$Element$padding(
+						scaled(1)),
+						$mdgriffith$elm_ui$Element$Border$rounded(
+						scaled(-2)),
+						$mdgriffith$elm_ui$Element$Font$size(
+						scaled(2)),
+						$mdgriffith$elm_ui$Element$Font$bold
+					]),
+				{
+					label: $mdgriffith$elm_ui$Element$text(options.label),
+					onPress: $elm$core$Maybe$Just(options.onPress)
+				});
+		},
+		disabledButton: function (label) {
+			return A2(
+				$mdgriffith$elm_ui$Element$el,
+				_List_fromArray(
+					[
+						$mdgriffith$elm_ui$Element$Background$color($author$project$Morphir$Web$Theme$Light$gray),
+						$mdgriffith$elm_ui$Element$padding(
+						scaled(1)),
+						$mdgriffith$elm_ui$Element$Border$rounded(
+						scaled(-2)),
+						$mdgriffith$elm_ui$Element$Font$size(
+						scaled(2)),
+						$mdgriffith$elm_ui$Element$Font$bold
+					]),
+				$mdgriffith$elm_ui$Element$text(label));
+		},
+		heading: F2(
+			function (level, label) {
+				return A2(
+					$mdgriffith$elm_ui$Element$el,
+					_List_fromArray(
+						[
+							$mdgriffith$elm_ui$Element$Font$size(
+							scaled(6 - level)),
+							A2(
+							$mdgriffith$elm_ui$Element$paddingXY,
+							0,
+							scaled(3 - level))
+						]),
+					$mdgriffith$elm_ui$Element$text(label));
+			})
+	};
+};
+var $author$project$Morphir$Web$DevelopMain$theme = $author$project$Morphir$Web$Theme$Light$theme($author$project$Morphir$Web$DevelopMain$scaled);
+var $mdgriffith$elm_ui$Internal$Model$SpacingStyle = F3(
+	function (a, b, c) {
+		return {$: 'SpacingStyle', a: a, b: b, c: c};
+	});
+var $mdgriffith$elm_ui$Internal$Flag$spacing = $mdgriffith$elm_ui$Internal$Flag$flag(3);
+var $mdgriffith$elm_ui$Internal$Model$spacingName = F2(
+	function (x, y) {
+		return 'spacing-' + ($elm$core$String$fromInt(x) + ('-' + $elm$core$String$fromInt(y)));
+	});
+var $mdgriffith$elm_ui$Element$spacing = function (x) {
+	return A2(
+		$mdgriffith$elm_ui$Internal$Model$StyleClass,
+		$mdgriffith$elm_ui$Internal$Flag$spacing,
+		A3(
+			$mdgriffith$elm_ui$Internal$Model$SpacingStyle,
+			A2($mdgriffith$elm_ui$Internal$Model$spacingName, x, x),
+			x,
+			x));
+};
+var $elm$core$Debug$toString = _Debug_toString;
+var $author$project$Morphir$Web$DevelopMain$InvalidArgumentValue = F2(
+	function (a, b) {
+		return {$: 'InvalidArgumentValue', a: a, b: b};
+	});
+var $author$project$Morphir$Web$DevelopMain$UpdateArgumentValue = F2(
+	function (a, b) {
+		return {$: 'UpdateArgumentValue', a: a, b: b};
+	});
+var $mdgriffith$elm_ui$Internal$Flag$borderColor = $mdgriffith$elm_ui$Internal$Flag$flag(28);
+var $mdgriffith$elm_ui$Element$Border$color = function (clr) {
+	return A2(
+		$mdgriffith$elm_ui$Internal$Model$StyleClass,
+		$mdgriffith$elm_ui$Internal$Flag$borderColor,
+		A3(
+			$mdgriffith$elm_ui$Internal$Model$Colored,
+			'bc-' + $mdgriffith$elm_ui$Internal$Model$formatColorClass(clr),
+			'border-color',
+			clr));
+};
+var $elm$html$Html$input = _VirtualDom_node('input');
+var $elm$html$Html$Events$alwaysStop = function (x) {
+	return _Utils_Tuple2(x, true);
+};
+var $elm$virtual_dom$VirtualDom$MayStopPropagation = function (a) {
+	return {$: 'MayStopPropagation', a: a};
+};
+var $elm$html$Html$Events$stopPropagationOn = F2(
+	function (event, decoder) {
+		return A2(
+			$elm$virtual_dom$VirtualDom$on,
+			event,
+			$elm$virtual_dom$VirtualDom$MayStopPropagation(decoder));
+	});
+var $elm$json$Json$Decode$at = F2(
+	function (fields, decoder) {
+		return A3($elm$core$List$foldr, $elm$json$Json$Decode$field, decoder, fields);
+	});
+var $elm$html$Html$Events$targetValue = A2(
+	$elm$json$Json$Decode$at,
+	_List_fromArray(
+		['target', 'value']),
+	$elm$json$Json$Decode$string);
+var $elm$html$Html$Events$onInput = function (tagger) {
+	return A2(
+		$elm$html$Html$Events$stopPropagationOn,
+		'input',
+		A2(
+			$elm$json$Json$Decode$map,
+			$elm$html$Html$Events$alwaysStop,
+			A2($elm$json$Json$Decode$map, tagger, $elm$html$Html$Events$targetValue)));
+};
+var $elm$html$Html$Attributes$placeholder = $elm$html$Html$Attributes$stringProperty('placeholder');
+var $elm$core$String$toFloat = _String_toFloat;
+var $author$project$Morphir$Visual$Edit$editFloat = F2(
+	function (valueUpdated, invalidValue) {
+		return A2(
+			$elm$html$Html$input,
+			_List_fromArray(
+				[
+					$elm$html$Html$Attributes$placeholder('Start typing a floating-point value ...'),
+					$elm$html$Html$Events$onInput(
+					function (updatedText) {
+						return A2(
+							$elm$core$Maybe$withDefault,
+							invalidValue('needs to be a a floating-point value'),
+							A2(
+								$elm$core$Maybe$map,
+								function (_float) {
+									return valueUpdated(
+										A2(
+											$author$project$Morphir$IR$Value$Literal,
+											_Utils_Tuple0,
+											$author$project$Morphir$IR$Literal$FloatLiteral(_float)));
+								},
+								$elm$core$String$toFloat(updatedText)));
+					})
+				]),
+			_List_Nil);
+	});
+var $author$project$Morphir$Visual$Edit$editInt = F2(
+	function (valueUpdated, invalidValue) {
+		return A2(
+			$elm$html$Html$input,
+			_List_fromArray(
+				[
+					$elm$html$Html$Attributes$placeholder('Start typing an integer value ...'),
+					$elm$html$Html$Events$onInput(
+					function (updatedText) {
+						return A2(
+							$elm$core$Maybe$withDefault,
+							invalidValue('needs to be an integer value'),
+							A2(
+								$elm$core$Maybe$map,
+								function (_int) {
+									return valueUpdated(
+										A2(
+											$author$project$Morphir$IR$Value$Literal,
+											_Utils_Tuple0,
+											$author$project$Morphir$IR$Literal$IntLiteral(_int)));
+								},
+								$elm$core$String$toInt(updatedText)));
+					})
+				]),
+			_List_Nil);
+	});
+var $author$project$Morphir$IR$SDK$Basics$moduleName = $author$project$Morphir$IR$Path$fromString('Basics');
+var $author$project$Morphir$IR$QName$fromName = F2(
+	function (modulePath, localName) {
+		return A2($author$project$Morphir$IR$QName$QName, modulePath, localName);
+	});
+var $author$project$Morphir$IR$QName$getLocalName = function (_v0) {
+	var localName = _v0.b;
+	return localName;
+};
+var $author$project$Morphir$IR$QName$getModulePath = function (_v0) {
+	var modulePath = _v0.a;
+	return modulePath;
+};
+var $author$project$Morphir$IR$FQName$fromQName = F2(
+	function (packagePath, qName) {
+		return A3(
+			$author$project$Morphir$IR$FQName$FQName,
+			packagePath,
+			$author$project$Morphir$IR$QName$getModulePath(qName),
+			$author$project$Morphir$IR$QName$getLocalName(qName));
+	});
+var $author$project$Morphir$IR$SDK$Common$packageName = $author$project$Morphir$IR$Path$fromString('Morphir.SDK');
+var $author$project$Morphir$IR$SDK$Common$toFQName = F2(
+	function (modulePath, localName) {
+		return A2(
+			$author$project$Morphir$IR$FQName$fromQName,
+			$author$project$Morphir$IR$SDK$Common$packageName,
+			A2(
+				$author$project$Morphir$IR$QName$fromName,
+				modulePath,
+				$author$project$Morphir$IR$Name$fromString(localName)));
+	});
+var $author$project$Morphir$IR$SDK$Basics$floatType = function (attributes) {
+	return A3(
+		$author$project$Morphir$IR$Type$Reference,
+		attributes,
+		A2($author$project$Morphir$IR$SDK$Common$toFQName, $author$project$Morphir$IR$SDK$Basics$moduleName, 'Float'),
+		_List_Nil);
+};
+var $author$project$Morphir$IR$SDK$Basics$intType = function (attributes) {
+	return A3(
+		$author$project$Morphir$IR$Type$Reference,
+		attributes,
+		A2($author$project$Morphir$IR$SDK$Common$toFQName, $author$project$Morphir$IR$SDK$Basics$moduleName, 'Int'),
+		_List_Nil);
+};
+var $author$project$Morphir$Visual$Edit$editValue = F3(
+	function (valueType, valueUpdated, invalidValue) {
+		return _Utils_eq(
+			valueType,
+			$author$project$Morphir$IR$SDK$Basics$intType(_Utils_Tuple0)) ? A2($author$project$Morphir$Visual$Edit$editInt, valueUpdated, invalidValue) : (_Utils_eq(
+			valueType,
+			$author$project$Morphir$IR$SDK$Basics$floatType(_Utils_Tuple0)) ? A2($author$project$Morphir$Visual$Edit$editFloat, valueUpdated, invalidValue) : $elm$html$Html$text('Unknown value type'));
+	});
+var $elm$core$Basics$always = F2(
+	function (a, _v0) {
+		return a;
+	});
+var $mdgriffith$elm_ui$Internal$Model$unstyled = A2($elm$core$Basics$composeL, $mdgriffith$elm_ui$Internal$Model$Unstyled, $elm$core$Basics$always);
+var $mdgriffith$elm_ui$Element$html = $mdgriffith$elm_ui$Internal$Model$unstyled;
+var $author$project$Morphir$IR$Name$toList = function (words) {
+	return words;
+};
+var $elm$core$String$toUpper = _String_toUpper;
+var $author$project$Morphir$IR$Name$toHumanWords = function (name) {
+	var words = $author$project$Morphir$IR$Name$toList(name);
+	var join = function (abbrev) {
+		return $elm$core$String$toUpper(
+			A2($elm$core$String$join, '', abbrev));
+	};
+	var process = F3(
+		function (prefix, abbrev, suffix) {
+			process:
+			while (true) {
+				if (!suffix.b) {
+					return $elm$core$List$isEmpty(abbrev) ? prefix : A2(
+						$elm$core$List$append,
+						prefix,
+						_List_fromArray(
+							[
+								join(abbrev)
+							]));
+				} else {
+					var first = suffix.a;
+					var rest = suffix.b;
+					if ($elm$core$String$length(first) === 1) {
+						var $temp$prefix = prefix,
+							$temp$abbrev = A2(
+							$elm$core$List$append,
+							abbrev,
+							_List_fromArray(
+								[first])),
+							$temp$suffix = rest;
+						prefix = $temp$prefix;
+						abbrev = $temp$abbrev;
+						suffix = $temp$suffix;
+						continue process;
+					} else {
+						if (!abbrev.b) {
+							var $temp$prefix = A2(
+								$elm$core$List$append,
+								prefix,
+								_List_fromArray(
+									[first])),
+								$temp$abbrev = _List_Nil,
+								$temp$suffix = rest;
+							prefix = $temp$prefix;
+							abbrev = $temp$abbrev;
+							suffix = $temp$suffix;
+							continue process;
+						} else {
+							var $temp$prefix = A2(
+								$elm$core$List$append,
+								prefix,
+								_List_fromArray(
+									[
+										join(abbrev),
+										first
+									])),
+								$temp$abbrev = _List_Nil,
+								$temp$suffix = rest;
+							prefix = $temp$prefix;
+							abbrev = $temp$abbrev;
+							suffix = $temp$suffix;
+							continue process;
+						}
+					}
+				}
+			}
+		});
+	return A3(process, _List_Nil, _List_Nil, words);
+};
+var $mdgriffith$elm_ui$Internal$Model$BorderWidth = F5(
+	function (a, b, c, d, e) {
+		return {$: 'BorderWidth', a: a, b: b, c: c, d: d, e: e};
+	});
+var $mdgriffith$elm_ui$Element$Border$width = function (v) {
+	return A2(
+		$mdgriffith$elm_ui$Internal$Model$StyleClass,
+		$mdgriffith$elm_ui$Internal$Flag$borderWidth,
+		A5(
+			$mdgriffith$elm_ui$Internal$Model$BorderWidth,
+			'b-' + $elm$core$String$fromInt(v),
+			v,
+			v,
+			v,
+			v));
+};
+var $mdgriffith$elm_ui$Internal$Model$Padding = F5(
+	function (a, b, c, d, e) {
+		return {$: 'Padding', a: a, b: b, c: c, d: d, e: e};
+	});
+var $mdgriffith$elm_ui$Internal$Model$Spaced = F3(
+	function (a, b, c) {
+		return {$: 'Spaced', a: a, b: b, c: c};
+	});
+var $mdgriffith$elm_ui$Internal$Model$extractSpacingAndPadding = function (attrs) {
+	return A3(
+		$elm$core$List$foldr,
+		F2(
+			function (attr, _v0) {
+				var pad = _v0.a;
+				var spacing = _v0.b;
+				return _Utils_Tuple2(
+					function () {
+						if (pad.$ === 'Just') {
+							var x = pad.a;
+							return pad;
+						} else {
+							if ((attr.$ === 'StyleClass') && (attr.b.$ === 'PaddingStyle')) {
+								var _v3 = attr.b;
+								var name = _v3.a;
+								var t = _v3.b;
+								var r = _v3.c;
+								var b = _v3.d;
+								var l = _v3.e;
+								return $elm$core$Maybe$Just(
+									A5($mdgriffith$elm_ui$Internal$Model$Padding, name, t, r, b, l));
+							} else {
+								return $elm$core$Maybe$Nothing;
+							}
+						}
+					}(),
+					function () {
+						if (spacing.$ === 'Just') {
+							var x = spacing.a;
+							return spacing;
+						} else {
+							if ((attr.$ === 'StyleClass') && (attr.b.$ === 'SpacingStyle')) {
+								var _v6 = attr.b;
+								var name = _v6.a;
+								var x = _v6.b;
+								var y = _v6.c;
+								return $elm$core$Maybe$Just(
+									A3($mdgriffith$elm_ui$Internal$Model$Spaced, name, x, y));
+							} else {
+								return $elm$core$Maybe$Nothing;
+							}
+						}
+					}());
+			}),
+		_Utils_Tuple2($elm$core$Maybe$Nothing, $elm$core$Maybe$Nothing),
+		attrs);
+};
+var $mdgriffith$elm_ui$Internal$Model$paddingNameFloat = F4(
+	function (top, right, bottom, left) {
+		return 'pad-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(top) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(right) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(bottom) + ('-' + $mdgriffith$elm_ui$Internal$Model$floatClass(left)))))));
+	});
+var $elm$virtual_dom$VirtualDom$style = _VirtualDom_style;
+var $elm$html$Html$Attributes$style = $elm$virtual_dom$VirtualDom$style;
+var $mdgriffith$elm_ui$Element$wrappedRow = F2(
+	function (attrs, children) {
+		var _v0 = $mdgriffith$elm_ui$Internal$Model$extractSpacingAndPadding(attrs);
+		var padded = _v0.a;
+		var spaced = _v0.b;
+		if (spaced.$ === 'Nothing') {
+			return A4(
+				$mdgriffith$elm_ui$Internal$Model$element,
+				$mdgriffith$elm_ui$Internal$Model$asRow,
+				$mdgriffith$elm_ui$Internal$Model$div,
+				A2(
+					$elm$core$List$cons,
+					$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentLeft + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.contentCenterY + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.wrapped)))),
+					A2(
+						$elm$core$List$cons,
+						$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),
+						A2(
+							$elm$core$List$cons,
+							$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink),
+							attrs))),
+				$mdgriffith$elm_ui$Internal$Model$Unkeyed(children));
+		} else {
+			var _v2 = spaced.a;
+			var spaceName = _v2.a;
+			var x = _v2.b;
+			var y = _v2.c;
+			var newPadding = function () {
+				if (padded.$ === 'Just') {
+					var _v5 = padded.a;
+					var name = _v5.a;
+					var t = _v5.b;
+					var r = _v5.c;
+					var b = _v5.d;
+					var l = _v5.e;
+					if ((_Utils_cmp(r, x / 2) > -1) && (_Utils_cmp(b, y / 2) > -1)) {
+						var newTop = t - (y / 2);
+						var newRight = r - (x / 2);
+						var newLeft = l - (x / 2);
+						var newBottom = b - (y / 2);
+						return $elm$core$Maybe$Just(
+							A2(
+								$mdgriffith$elm_ui$Internal$Model$StyleClass,
+								$mdgriffith$elm_ui$Internal$Flag$padding,
+								A5(
+									$mdgriffith$elm_ui$Internal$Model$PaddingStyle,
+									A4($mdgriffith$elm_ui$Internal$Model$paddingNameFloat, newTop, newRight, newBottom, newLeft),
+									newTop,
+									newRight,
+									newBottom,
+									newLeft)));
+					} else {
+						return $elm$core$Maybe$Nothing;
+					}
+				} else {
+					return $elm$core$Maybe$Nothing;
+				}
+			}();
+			if (newPadding.$ === 'Just') {
+				var pad = newPadding.a;
+				return A4(
+					$mdgriffith$elm_ui$Internal$Model$element,
+					$mdgriffith$elm_ui$Internal$Model$asRow,
+					$mdgriffith$elm_ui$Internal$Model$div,
+					A2(
+						$elm$core$List$cons,
+						$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentLeft + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.contentCenterY + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.wrapped)))),
+						A2(
+							$elm$core$List$cons,
+							$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),
+							A2(
+								$elm$core$List$cons,
+								$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink),
+								_Utils_ap(
+									attrs,
+									_List_fromArray(
+										[pad]))))),
+					$mdgriffith$elm_ui$Internal$Model$Unkeyed(children));
+			} else {
+				var halfY = -(y / 2);
+				var halfX = -(x / 2);
+				return A4(
+					$mdgriffith$elm_ui$Internal$Model$element,
+					$mdgriffith$elm_ui$Internal$Model$asEl,
+					$mdgriffith$elm_ui$Internal$Model$div,
+					attrs,
+					$mdgriffith$elm_ui$Internal$Model$Unkeyed(
+						_List_fromArray(
+							[
+								A4(
+								$mdgriffith$elm_ui$Internal$Model$element,
+								$mdgriffith$elm_ui$Internal$Model$asRow,
+								$mdgriffith$elm_ui$Internal$Model$div,
+								A2(
+									$elm$core$List$cons,
+									$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentLeft + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.contentCenterY + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.wrapped)))),
+									A2(
+										$elm$core$List$cons,
+										$mdgriffith$elm_ui$Internal$Model$Attr(
+											A2(
+												$elm$html$Html$Attributes$style,
+												'margin',
+												$elm$core$String$fromFloat(halfY) + ('px' + (' ' + ($elm$core$String$fromFloat(halfX) + 'px'))))),
+										A2(
+											$elm$core$List$cons,
+											$mdgriffith$elm_ui$Internal$Model$Attr(
+												A2(
+													$elm$html$Html$Attributes$style,
+													'width',
+													'calc(100% + ' + ($elm$core$String$fromInt(x) + 'px)'))),
+											A2(
+												$elm$core$List$cons,
+												$mdgriffith$elm_ui$Internal$Model$Attr(
+													A2(
+														$elm$html$Html$Attributes$style,
+														'height',
+														'calc(100% + ' + ($elm$core$String$fromInt(y) + 'px)'))),
+												A2(
+													$elm$core$List$cons,
+													A2(
+														$mdgriffith$elm_ui$Internal$Model$StyleClass,
+														$mdgriffith$elm_ui$Internal$Flag$spacing,
+														A3($mdgriffith$elm_ui$Internal$Model$SpacingStyle, spaceName, x, y)),
+													_List_Nil))))),
+								$mdgriffith$elm_ui$Internal$Model$Unkeyed(children))
+							])));
+			}
+		}
+	});
+var $author$project$Morphir$Web$DevelopMain$viewArgumentEditors = F2(
+	function (valueDef, argValues) {
+		return A2(
+			$mdgriffith$elm_ui$Element$wrappedRow,
+			_List_fromArray(
+				[
+					$mdgriffith$elm_ui$Element$spacing(20)
+				]),
+			A2(
+				$elm$core$List$map,
+				function (_v0) {
+					var argName = _v0.a;
+					var va = _v0.b;
+					var argType = _v0.c;
+					return A2(
+						$mdgriffith$elm_ui$Element$column,
+						_List_fromArray(
+							[
+								$mdgriffith$elm_ui$Element$spacing(5),
+								$mdgriffith$elm_ui$Element$padding(5),
+								$mdgriffith$elm_ui$Element$Border$width(1),
+								$mdgriffith$elm_ui$Element$Border$color(
+								A3($mdgriffith$elm_ui$Element$rgb255, 100, 100, 100))
+							]),
+						_List_fromArray(
+							[
+								A2(
+								$mdgriffith$elm_ui$Element$el,
+								_List_Nil,
+								$mdgriffith$elm_ui$Element$text(
+									$elm$core$String$concat(
+										_List_fromArray(
+											[
+												A2(
+												$elm$core$String$join,
+												' ',
+												$author$project$Morphir$IR$Name$toHumanWords(argName)),
+												': '
+											])))),
+								A2(
+								$mdgriffith$elm_ui$Element$el,
+								_List_Nil,
+								$mdgriffith$elm_ui$Element$html(
+									A3(
+										$author$project$Morphir$Visual$Edit$editValue,
+										argType,
+										$author$project$Morphir$Web$DevelopMain$UpdateArgumentValue(argName),
+										$author$project$Morphir$Web$DevelopMain$InvalidArgumentValue(argName)))),
+								A2(
+								$mdgriffith$elm_ui$Element$el,
+								_List_Nil,
+								$mdgriffith$elm_ui$Element$text(
+									A2(
+										$elm$core$Maybe$withDefault,
+										'not set',
+										A2(
+											$elm$core$Maybe$map,
+											$elm$core$Debug$toString,
+											A2($elm$core$Dict$get, argName, argValues)))))
+							]));
+				},
+				valueDef.inputTypes));
+	});
+var $author$project$Morphir$Visual$Context$Context = F3(
+	function (distribution, references, variables) {
+		return {distribution: distribution, references: references, variables: variables};
+	});
+var $author$project$Morphir$Value$Interpreter$NativeReference = function (a) {
+	return {$: 'NativeReference', a: a};
+};
+var $author$project$Morphir$Value$Interpreter$ValueReference = function (a) {
+	return {$: 'ValueReference', a: a};
+};
+var $author$project$Morphir$IR$Value$definitionToValue = function (def) {
+	var _v0 = def.inputTypes;
+	if (!_v0.b) {
+		return def.body;
+	} else {
+		var _v1 = _v0.a;
+		var firstArgName = _v1.a;
+		var restOfArgs = _v0.b;
+		return A3(
+			$author$project$Morphir$IR$Value$Lambda,
+			_Utils_Tuple0,
+			A3(
+				$author$project$Morphir$IR$Value$AsPattern,
+				_Utils_Tuple0,
+				$author$project$Morphir$IR$Value$WildcardPattern(_Utils_Tuple0),
+				firstArgName),
+			$author$project$Morphir$IR$Value$definitionToValue(
+				_Utils_update(
+					def,
+					{inputTypes: restOfArgs})));
+	}
+};
+var $elm$core$Dict$map = F2(
+	function (func, dict) {
+		if (dict.$ === 'RBEmpty_elm_builtin') {
+			return $elm$core$Dict$RBEmpty_elm_builtin;
+		} else {
+			var color = dict.a;
+			var key = dict.b;
+			var value = dict.c;
+			var left = dict.d;
+			var right = dict.e;
+			return A5(
+				$elm$core$Dict$RBNode_elm_builtin,
+				color,
+				key,
+				A2(func, key, value),
+				A2($elm$core$Dict$map, func, left),
+				A2($elm$core$Dict$map, func, right));
+		}
+	});
+var $author$project$Morphir$IR$Value$mapPatternAttributes = F2(
+	function (f, p) {
+		switch (p.$) {
+			case 'WildcardPattern':
+				var a = p.a;
+				return $author$project$Morphir$IR$Value$WildcardPattern(
+					f(a));
+			case 'AsPattern':
+				var a = p.a;
+				var p2 = p.b;
+				var name = p.c;
+				return A3(
+					$author$project$Morphir$IR$Value$AsPattern,
+					f(a),
+					A2($author$project$Morphir$IR$Value$mapPatternAttributes, f, p2),
+					name);
+			case 'TuplePattern':
+				var a = p.a;
+				var elementPatterns = p.b;
+				return A2(
+					$author$project$Morphir$IR$Value$TuplePattern,
+					f(a),
+					A2(
+						$elm$core$List$map,
+						$author$project$Morphir$IR$Value$mapPatternAttributes(f),
+						elementPatterns));
+			case 'ConstructorPattern':
+				var a = p.a;
+				var constructorName = p.b;
+				var argumentPatterns = p.c;
+				return A3(
+					$author$project$Morphir$IR$Value$ConstructorPattern,
+					f(a),
+					constructorName,
+					A2(
+						$elm$core$List$map,
+						$author$project$Morphir$IR$Value$mapPatternAttributes(f),
+						argumentPatterns));
+			case 'EmptyListPattern':
+				var a = p.a;
+				return $author$project$Morphir$IR$Value$EmptyListPattern(
+					f(a));
+			case 'HeadTailPattern':
+				var a = p.a;
+				var headPattern = p.b;
+				var tailPattern = p.c;
+				return A3(
+					$author$project$Morphir$IR$Value$HeadTailPattern,
+					f(a),
+					A2($author$project$Morphir$IR$Value$mapPatternAttributes, f, headPattern),
+					A2($author$project$Morphir$IR$Value$mapPatternAttributes, f, tailPattern));
+			case 'LiteralPattern':
+				var a = p.a;
+				var value = p.b;
+				return A2(
+					$author$project$Morphir$IR$Value$LiteralPattern,
+					f(a),
+					value);
+			default:
+				var a = p.a;
+				return $author$project$Morphir$IR$Value$UnitPattern(
+					f(a));
+		}
+	});
+var $author$project$Morphir$IR$Type$mapFieldType = F2(
+	function (f, field) {
+		return A2(
+			$author$project$Morphir$IR$Type$Field,
+			field.name,
+			f(field.tpe));
+	});
+var $author$project$Morphir$IR$Type$mapTypeAttributes = F2(
+	function (f, tpe) {
+		switch (tpe.$) {
+			case 'Variable':
+				var a = tpe.a;
+				var name = tpe.b;
+				return A2(
+					$author$project$Morphir$IR$Type$Variable,
+					f(a),
+					name);
+			case 'Reference':
+				var a = tpe.a;
+				var fQName = tpe.b;
+				var argTypes = tpe.c;
+				return A3(
+					$author$project$Morphir$IR$Type$Reference,
+					f(a),
+					fQName,
+					A2(
+						$elm$core$List$map,
+						$author$project$Morphir$IR$Type$mapTypeAttributes(f),
+						argTypes));
+			case 'Tuple':
+				var a = tpe.a;
+				var elemTypes = tpe.b;
+				return A2(
+					$author$project$Morphir$IR$Type$Tuple,
+					f(a),
+					A2(
+						$elm$core$List$map,
+						$author$project$Morphir$IR$Type$mapTypeAttributes(f),
+						elemTypes));
+			case 'Record':
+				var a = tpe.a;
+				var fields = tpe.b;
+				return A2(
+					$author$project$Morphir$IR$Type$Record,
+					f(a),
+					A2(
+						$elm$core$List$map,
+						$author$project$Morphir$IR$Type$mapFieldType(
+							$author$project$Morphir$IR$Type$mapTypeAttributes(f)),
+						fields));
+			case 'ExtensibleRecord':
+				var a = tpe.a;
+				var name = tpe.b;
+				var fields = tpe.c;
+				return A3(
+					$author$project$Morphir$IR$Type$ExtensibleRecord,
+					f(a),
+					name,
+					A2(
+						$elm$core$List$map,
+						$author$project$Morphir$IR$Type$mapFieldType(
+							$author$project$Morphir$IR$Type$mapTypeAttributes(f)),
+						fields));
+			case 'Function':
+				var a = tpe.a;
+				var argType = tpe.b;
+				var returnType = tpe.c;
+				return A3(
+					$author$project$Morphir$IR$Type$Function,
+					f(a),
+					A2($author$project$Morphir$IR$Type$mapTypeAttributes, f, argType),
+					A2($author$project$Morphir$IR$Type$mapTypeAttributes, f, returnType));
+			default:
+				var a = tpe.a;
+				return $author$project$Morphir$IR$Type$Unit(
+					f(a));
+		}
+	});
+var $author$project$Morphir$IR$Value$mapDefinitionAttributes = F3(
+	function (f, g, d) {
+		return A3(
+			$author$project$Morphir$IR$Value$Definition,
+			A2(
+				$elm$core$List$map,
+				function (_v5) {
+					var name = _v5.a;
+					var attr = _v5.b;
+					var tpe = _v5.c;
+					return _Utils_Tuple3(
+						name,
+						g(attr),
+						A2($author$project$Morphir$IR$Type$mapTypeAttributes, f, tpe));
+				},
+				d.inputTypes),
+			A2($author$project$Morphir$IR$Type$mapTypeAttributes, f, d.outputType),
+			A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, d.body));
+	});
+var $author$project$Morphir$IR$Value$mapValueAttributes = F3(
+	function (f, g, v) {
+		switch (v.$) {
+			case 'Literal':
+				var a = v.a;
+				var value = v.b;
+				return A2(
+					$author$project$Morphir$IR$Value$Literal,
+					g(a),
+					value);
+			case 'Constructor':
+				var a = v.a;
+				var fullyQualifiedName = v.b;
+				return A2(
+					$author$project$Morphir$IR$Value$Constructor,
+					g(a),
+					fullyQualifiedName);
+			case 'Tuple':
+				var a = v.a;
+				var elements = v.b;
+				return A2(
+					$author$project$Morphir$IR$Value$Tuple,
+					g(a),
+					A2(
+						$elm$core$List$map,
+						A2($author$project$Morphir$IR$Value$mapValueAttributes, f, g),
+						elements));
+			case 'List':
+				var a = v.a;
+				var items = v.b;
+				return A2(
+					$author$project$Morphir$IR$Value$List,
+					g(a),
+					A2(
+						$elm$core$List$map,
+						A2($author$project$Morphir$IR$Value$mapValueAttributes, f, g),
+						items));
+			case 'Record':
+				var a = v.a;
+				var fields = v.b;
+				return A2(
+					$author$project$Morphir$IR$Value$Record,
+					g(a),
+					A2(
+						$elm$core$List$map,
+						function (_v1) {
+							var fieldName = _v1.a;
+							var fieldValue = _v1.b;
+							return _Utils_Tuple2(
+								fieldName,
+								A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, fieldValue));
+						},
+						fields));
+			case 'Variable':
+				var a = v.a;
+				var name = v.b;
+				return A2(
+					$author$project$Morphir$IR$Value$Variable,
+					g(a),
+					name);
+			case 'Reference':
+				var a = v.a;
+				var fullyQualifiedName = v.b;
+				return A2(
+					$author$project$Morphir$IR$Value$Reference,
+					g(a),
+					fullyQualifiedName);
+			case 'Field':
+				var a = v.a;
+				var subjectValue = v.b;
+				var fieldName = v.c;
+				return A3(
+					$author$project$Morphir$IR$Value$Field,
+					g(a),
+					A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, subjectValue),
+					fieldName);
+			case 'FieldFunction':
+				var a = v.a;
+				var fieldName = v.b;
+				return A2(
+					$author$project$Morphir$IR$Value$FieldFunction,
+					g(a),
+					fieldName);
+			case 'Apply':
+				var a = v.a;
+				var _function = v.b;
+				var argument = v.c;
+				return A3(
+					$author$project$Morphir$IR$Value$Apply,
+					g(a),
+					A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, _function),
+					A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, argument));
+			case 'Lambda':
+				var a = v.a;
+				var argumentPattern = v.b;
+				var body = v.c;
+				return A3(
+					$author$project$Morphir$IR$Value$Lambda,
+					g(a),
+					A2($author$project$Morphir$IR$Value$mapPatternAttributes, g, argumentPattern),
+					A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, body));
+			case 'LetDefinition':
+				var a = v.a;
+				var valueName = v.b;
+				var valueDefinition = v.c;
+				var inValue = v.d;
+				return A4(
+					$author$project$Morphir$IR$Value$LetDefinition,
+					g(a),
+					valueName,
+					A3($author$project$Morphir$IR$Value$mapDefinitionAttributes, f, g, valueDefinition),
+					A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, inValue));
+			case 'LetRecursion':
+				var a = v.a;
+				var valueDefinitions = v.b;
+				var inValue = v.c;
+				return A3(
+					$author$project$Morphir$IR$Value$LetRecursion,
+					g(a),
+					A2(
+						$elm$core$Dict$map,
+						F2(
+							function (_v2, def) {
+								return A3($author$project$Morphir$IR$Value$mapDefinitionAttributes, f, g, def);
+							}),
+						valueDefinitions),
+					A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, inValue));
+			case 'Destructure':
+				var a = v.a;
+				var pattern = v.b;
+				var valueToDestruct = v.c;
+				var inValue = v.d;
+				return A4(
+					$author$project$Morphir$IR$Value$Destructure,
+					g(a),
+					A2($author$project$Morphir$IR$Value$mapPatternAttributes, g, pattern),
+					A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, valueToDestruct),
+					A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, inValue));
+			case 'IfThenElse':
+				var a = v.a;
+				var condition = v.b;
+				var thenBranch = v.c;
+				var elseBranch = v.d;
+				return A4(
+					$author$project$Morphir$IR$Value$IfThenElse,
+					g(a),
+					A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, condition),
+					A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, thenBranch),
+					A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, elseBranch));
+			case 'PatternMatch':
+				var a = v.a;
+				var branchOutOn = v.b;
+				var cases = v.c;
+				return A3(
+					$author$project$Morphir$IR$Value$PatternMatch,
+					g(a),
+					A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, branchOutOn),
+					A2(
+						$elm$core$List$map,
+						function (_v3) {
+							var pattern = _v3.a;
+							var body = _v3.b;
+							return _Utils_Tuple2(
+								A2($author$project$Morphir$IR$Value$mapPatternAttributes, g, pattern),
+								A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, body));
+						},
+						cases));
+			case 'UpdateRecord':
+				var a = v.a;
+				var valueToUpdate = v.b;
+				var fieldsToUpdate = v.c;
+				return A3(
+					$author$project$Morphir$IR$Value$UpdateRecord,
+					g(a),
+					A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, valueToUpdate),
+					A2(
+						$elm$core$List$map,
+						function (_v4) {
+							var fieldName = _v4.a;
+							var fieldValue = _v4.b;
+							return _Utils_Tuple2(
+								fieldName,
+								A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, fieldValue));
+						},
+						fieldsToUpdate));
+			default:
+				var a = v.a;
+				return $author$project$Morphir$IR$Value$Unit(
+					g(a));
+		}
+	});
+var $author$project$Morphir$Value$Error$ExpectedBoolLiteral = function (a) {
+	return {$: 'ExpectedBoolLiteral', a: a};
+};
+var $author$project$Morphir$Value$Error$ExpectedLiteral = function (a) {
+	return {$: 'ExpectedLiteral', a: a};
+};
+var $author$project$Morphir$Value$Error$ExpectedNumberTypeArguments = function (a) {
+	return {$: 'ExpectedNumberTypeArguments', a: a};
+};
+var $author$project$Morphir$Value$Error$UnexpectedArguments = function (a) {
+	return {$: 'UnexpectedArguments', a: a};
+};
+var $elm$core$Result$andThen = F2(
+	function (callback, result) {
+		if (result.$ === 'Ok') {
+			var value = result.a;
+			return callback(value);
+		} else {
+			var msg = result.a;
+			return $elm$core$Result$Err(msg);
+		}
+	});
+var $author$project$Morphir$Value$Native$binaryLazy = function (f) {
+	return F2(
+		function (_eval, args) {
+			if ((args.b && args.b.b) && (!args.b.b.b)) {
+				var arg1 = args.a;
+				var _v1 = args.b;
+				var arg2 = _v1.a;
+				return A3(f, _eval, arg1, arg2);
+			} else {
+				return $elm$core$Result$Err(
+					$author$project$Morphir$Value$Error$UnexpectedArguments(args));
+			}
+		});
+};
+var $author$project$Morphir$Value$Native$binaryStrict = function (f) {
+	return $author$project$Morphir$Value$Native$binaryLazy(
+		F3(
+			function (_eval, arg1, arg2) {
+				return A2(
+					$elm$core$Result$andThen,
+					function (a1) {
+						return A2(
+							$elm$core$Result$andThen,
+							f(a1),
+							_eval(arg2));
+					},
+					_eval(arg1));
+			}));
+};
+var $elm$core$Result$map = F2(
+	function (func, ra) {
+		if (ra.$ === 'Ok') {
+			var a = ra.a;
+			return $elm$core$Result$Ok(
+				func(a));
+		} else {
+			var e = ra.a;
+			return $elm$core$Result$Err(e);
+		}
+	});
+var $author$project$Morphir$Value$Native$mapLiteral = F3(
+	function (f, _eval, value) {
+		if (value.$ === 'Literal') {
+			var a = value.a;
+			var lit = value.b;
+			return A2(
+				$elm$core$Result$map,
+				$author$project$Morphir$IR$Value$Literal(a),
+				f(lit));
+		} else {
+			return $elm$core$Result$Err(
+				$author$project$Morphir$Value$Error$ExpectedLiteral(value));
+		}
+	});
+var $author$project$Morphir$Value$Native$unaryLazy = function (f) {
+	return F2(
+		function (_eval, args) {
+			if (args.b && (!args.b.b)) {
+				var arg = args.a;
+				return A2(f, _eval, arg);
+			} else {
+				return $elm$core$Result$Err(
+					$author$project$Morphir$Value$Error$UnexpectedArguments(args));
+			}
+		});
+};
+var $author$project$Morphir$Value$Native$unaryStrict = function (f) {
+	return $author$project$Morphir$Value$Native$unaryLazy(
+		F2(
+			function (_eval, arg) {
+				return A2(
+					$elm$core$Result$andThen,
+					f(_eval),
+					_eval(arg));
+			}));
+};
+var $elm$core$Basics$xor = _Basics_xor;
+var $author$project$Morphir$IR$SDK$Basics$nativeFunctions = _List_fromArray(
+	[
+		_Utils_Tuple2(
+		'not',
+		$author$project$Morphir$Value$Native$unaryStrict(
+			$author$project$Morphir$Value$Native$mapLiteral(
+				function (lit) {
+					if (lit.$ === 'BoolLiteral') {
+						var v = lit.a;
+						return $elm$core$Result$Ok(
+							$author$project$Morphir$IR$Literal$BoolLiteral(!v));
+					} else {
+						return $elm$core$Result$Err(
+							$author$project$Morphir$Value$Error$ExpectedBoolLiteral(lit));
+					}
+				}))),
+		_Utils_Tuple2(
+		'and',
+		$author$project$Morphir$Value$Native$binaryLazy(
+			F3(
+				function (_eval, arg1, arg2) {
+					return A2(
+						$elm$core$Result$andThen,
+						function (a1) {
+							if ((a1.$ === 'Literal') && (a1.b.$ === 'BoolLiteral')) {
+								if (!a1.b.a) {
+									return $elm$core$Result$Ok(
+										A2(
+											$author$project$Morphir$IR$Value$Literal,
+											_Utils_Tuple0,
+											$author$project$Morphir$IR$Literal$BoolLiteral(false)));
+								} else {
+									return _eval(arg2);
+								}
+							} else {
+								return $elm$core$Result$Err(
+									$author$project$Morphir$Value$Error$ExpectedLiteral(arg1));
+							}
+						},
+						_eval(arg1));
+				}))),
+		_Utils_Tuple2(
+		'or',
+		$author$project$Morphir$Value$Native$binaryLazy(
+			F3(
+				function (_eval, arg1, arg2) {
+					return A2(
+						$elm$core$Result$andThen,
+						function (a1) {
+							if ((a1.$ === 'Literal') && (a1.b.$ === 'BoolLiteral')) {
+								if (a1.b.a) {
+									return $elm$core$Result$Ok(
+										A2(
+											$author$project$Morphir$IR$Value$Literal,
+											_Utils_Tuple0,
+											$author$project$Morphir$IR$Literal$BoolLiteral(true)));
+								} else {
+									return _eval(arg2);
+								}
+							} else {
+								return $elm$core$Result$Err(
+									$author$project$Morphir$Value$Error$ExpectedLiteral(arg1));
+							}
+						},
+						_eval(arg1));
+				}))),
+		_Utils_Tuple2(
+		'xor',
+		$author$project$Morphir$Value$Native$binaryStrict(
+			F2(
+				function (arg1, arg2) {
+					var _v3 = _Utils_Tuple2(arg1, arg2);
+					if ((((_v3.a.$ === 'Literal') && (_v3.a.b.$ === 'BoolLiteral')) && (_v3.b.$ === 'Literal')) && (_v3.b.b.$ === 'BoolLiteral')) {
+						var _v4 = _v3.a;
+						var v1 = _v4.b.a;
+						var _v5 = _v3.b;
+						var v2 = _v5.b.a;
+						return $elm$core$Result$Ok(
+							A2(
+								$author$project$Morphir$IR$Value$Literal,
+								_Utils_Tuple0,
+								$author$project$Morphir$IR$Literal$BoolLiteral(v1 !== v2)));
+					} else {
+						return $elm$core$Result$Err(
+							$author$project$Morphir$Value$Error$UnexpectedArguments(
+								_List_fromArray(
+									[arg1, arg2])));
+					}
+				}))),
+		_Utils_Tuple2(
+		'add',
+		$author$project$Morphir$Value$Native$binaryStrict(
+			F2(
+				function (arg1, arg2) {
+					var _v6 = _Utils_Tuple2(arg1, arg2);
+					_v6$2:
+					while (true) {
+						if ((_v6.a.$ === 'Literal') && (_v6.b.$ === 'Literal')) {
+							switch (_v6.a.b.$) {
+								case 'FloatLiteral':
+									if (_v6.b.b.$ === 'FloatLiteral') {
+										var _v7 = _v6.a;
+										var v1 = _v7.b.a;
+										var _v8 = _v6.b;
+										var v2 = _v8.b.a;
+										return $elm$core$Result$Ok(
+											A2(
+												$author$project$Morphir$IR$Value$Literal,
+												_Utils_Tuple0,
+												$author$project$Morphir$IR$Literal$FloatLiteral(v1 + v2)));
+									} else {
+										break _v6$2;
+									}
+								case 'IntLiteral':
+									if (_v6.b.b.$ === 'IntLiteral') {
+										var _v9 = _v6.a;
+										var v1 = _v9.b.a;
+										var _v10 = _v6.b;
+										var v2 = _v10.b.a;
+										return $elm$core$Result$Ok(
+											A2(
+												$author$project$Morphir$IR$Value$Literal,
+												_Utils_Tuple0,
+												$author$project$Morphir$IR$Literal$IntLiteral(v1 + v2)));
+									} else {
+										break _v6$2;
+									}
+								default:
+									break _v6$2;
+							}
+						} else {
+							break _v6$2;
+						}
+					}
+					return $elm$core$Result$Err(
+						$author$project$Morphir$Value$Error$ExpectedNumberTypeArguments(
+							_List_fromArray(
+								[arg1, arg2])));
+				}))),
+		_Utils_Tuple2(
+		'subtract',
+		$author$project$Morphir$Value$Native$binaryStrict(
+			F2(
+				function (arg1, arg2) {
+					var _v11 = _Utils_Tuple2(arg1, arg2);
+					_v11$2:
+					while (true) {
+						if ((_v11.a.$ === 'Literal') && (_v11.b.$ === 'Literal')) {
+							switch (_v11.a.b.$) {
+								case 'FloatLiteral':
+									if (_v11.b.b.$ === 'FloatLiteral') {
+										var _v12 = _v11.a;
+										var v1 = _v12.b.a;
+										var _v13 = _v11.b;
+										var v2 = _v13.b.a;
+										return $elm$core$Result$Ok(
+											A2(
+												$author$project$Morphir$IR$Value$Literal,
+												_Utils_Tuple0,
+												$author$project$Morphir$IR$Literal$FloatLiteral(v1 - v2)));
+									} else {
+										break _v11$2;
+									}
+								case 'IntLiteral':
+									if (_v11.b.b.$ === 'IntLiteral') {
+										var _v14 = _v11.a;
+										var v1 = _v14.b.a;
+										var _v15 = _v11.b;
+										var v2 = _v15.b.a;
+										return $elm$core$Result$Ok(
+											A2(
+												$author$project$Morphir$IR$Value$Literal,
+												_Utils_Tuple0,
+												$author$project$Morphir$IR$Literal$IntLiteral(v1 - v2)));
+									} else {
+										break _v11$2;
+									}
+								default:
+									break _v11$2;
+							}
+						} else {
+							break _v11$2;
+						}
+					}
+					return $elm$core$Result$Err(
+						$author$project$Morphir$Value$Error$UnexpectedArguments(
+							_List_fromArray(
+								[arg1, arg2])));
+				}))),
+		_Utils_Tuple2(
+		'multiply',
+		$author$project$Morphir$Value$Native$binaryStrict(
+			F2(
+				function (arg1, arg2) {
+					var _v16 = _Utils_Tuple2(arg1, arg2);
+					_v16$2:
+					while (true) {
+						if ((_v16.a.$ === 'Literal') && (_v16.b.$ === 'Literal')) {
+							switch (_v16.a.b.$) {
+								case 'FloatLiteral':
+									if (_v16.b.b.$ === 'FloatLiteral') {
+										var _v17 = _v16.a;
+										var v1 = _v17.b.a;
+										var _v18 = _v16.b;
+										var v2 = _v18.b.a;
+										return $elm$core$Result$Ok(
+											A2(
+												$author$project$Morphir$IR$Value$Literal,
+												_Utils_Tuple0,
+												$author$project$Morphir$IR$Literal$FloatLiteral(v1 * v2)));
+									} else {
+										break _v16$2;
+									}
+								case 'IntLiteral':
+									if (_v16.b.b.$ === 'IntLiteral') {
+										var _v19 = _v16.a;
+										var v1 = _v19.b.a;
+										var _v20 = _v16.b;
+										var v2 = _v20.b.a;
+										return $elm$core$Result$Ok(
+											A2(
+												$author$project$Morphir$IR$Value$Literal,
+												_Utils_Tuple0,
+												$author$project$Morphir$IR$Literal$IntLiteral(v1 * v2)));
+									} else {
+										break _v16$2;
+									}
+								default:
+									break _v16$2;
+							}
+						} else {
+							break _v16$2;
+						}
+					}
+					return $elm$core$Result$Err(
+						$author$project$Morphir$Value$Error$UnexpectedArguments(
+							_List_fromArray(
+								[arg1, arg2])));
+				}))),
+		_Utils_Tuple2(
+		'divide',
+		$author$project$Morphir$Value$Native$binaryStrict(
+			F2(
+				function (arg1, arg2) {
+					var _v21 = _Utils_Tuple2(arg1, arg2);
+					if ((((_v21.a.$ === 'Literal') && (_v21.a.b.$ === 'FloatLiteral')) && (_v21.b.$ === 'Literal')) && (_v21.b.b.$ === 'FloatLiteral')) {
+						var _v22 = _v21.a;
+						var v1 = _v22.b.a;
+						var _v23 = _v21.b;
+						var v2 = _v23.b.a;
+						return $elm$core$Result$Ok(
+							A2(
+								$author$project$Morphir$IR$Value$Literal,
+								_Utils_Tuple0,
+								$author$project$Morphir$IR$Literal$FloatLiteral(v1 / v2)));
+					} else {
+						return $elm$core$Result$Err(
+							$author$project$Morphir$Value$Error$UnexpectedArguments(
+								_List_fromArray(
+									[arg1, arg2])));
+					}
+				}))),
+		_Utils_Tuple2(
+		'integerDivide',
+		$author$project$Morphir$Value$Native$binaryStrict(
+			F2(
+				function (arg1, arg2) {
+					var _v24 = _Utils_Tuple2(arg1, arg2);
+					if ((((_v24.a.$ === 'Literal') && (_v24.a.b.$ === 'IntLiteral')) && (_v24.b.$ === 'Literal')) && (_v24.b.b.$ === 'IntLiteral')) {
+						var _v25 = _v24.a;
+						var v1 = _v25.b.a;
+						var _v26 = _v24.b;
+						var v2 = _v26.b.a;
+						return $elm$core$Result$Ok(
+							A2(
+								$author$project$Morphir$IR$Value$Literal,
+								_Utils_Tuple0,
+								$author$project$Morphir$IR$Literal$IntLiteral((v1 / v2) | 0)));
+					} else {
+						return $elm$core$Result$Err(
+							$author$project$Morphir$Value$Error$UnexpectedArguments(
+								_List_fromArray(
+									[arg1, arg2])));
+					}
+				}))),
+		_Utils_Tuple2(
+		'equal',
+		$author$project$Morphir$Value$Native$binaryStrict(
+			F2(
+				function (arg1, arg2) {
+					return $elm$core$Result$Ok(
+						A2(
+							$author$project$Morphir$IR$Value$Literal,
+							_Utils_Tuple0,
+							$author$project$Morphir$IR$Literal$BoolLiteral(
+								_Utils_eq(arg1, arg2))));
+				}))),
+		_Utils_Tuple2(
+		'notEqual',
+		$author$project$Morphir$Value$Native$binaryStrict(
+			F2(
+				function (arg1, arg2) {
+					return $elm$core$Result$Ok(
+						A2(
+							$author$project$Morphir$IR$Value$Literal,
+							_Utils_Tuple0,
+							$author$project$Morphir$IR$Literal$BoolLiteral(
+								!_Utils_eq(arg1, arg2))));
+				}))),
+		_Utils_Tuple2(
+		'lessThan',
+		$author$project$Morphir$Value$Native$binaryStrict(
+			F2(
+				function (arg1, arg2) {
+					var _v27 = _Utils_Tuple2(arg1, arg2);
+					_v27$6:
+					while (true) {
+						if ((_v27.a.$ === 'Literal') && (_v27.b.$ === 'Literal')) {
+							switch (_v27.a.b.$) {
+								case 'FloatLiteral':
+									switch (_v27.b.b.$) {
+										case 'FloatLiteral':
+											var _v28 = _v27.a;
+											var v1 = _v28.b.a;
+											var _v29 = _v27.b;
+											var v2 = _v29.b.a;
+											return $elm$core$Result$Ok(
+												A2(
+													$author$project$Morphir$IR$Value$Literal,
+													_Utils_Tuple0,
+													$author$project$Morphir$IR$Literal$BoolLiteral(
+														_Utils_cmp(v1, v2) < 0)));
+										case 'IntLiteral':
+											var _v32 = _v27.a;
+											var v1 = _v32.b.a;
+											var _v33 = _v27.b;
+											var v2 = _v33.b.a;
+											return $elm$core$Result$Ok(
+												A2(
+													$author$project$Morphir$IR$Value$Literal,
+													_Utils_Tuple0,
+													$author$project$Morphir$IR$Literal$BoolLiteral(
+														_Utils_cmp(v1, v2) < 0)));
+										default:
+											break _v27$6;
+									}
+								case 'IntLiteral':
+									switch (_v27.b.b.$) {
+										case 'IntLiteral':
+											var _v30 = _v27.a;
+											var v1 = _v30.b.a;
+											var _v31 = _v27.b;
+											var v2 = _v31.b.a;
+											return $elm$core$Result$Ok(
+												A2(
+													$author$project$Morphir$IR$Value$Literal,
+													_Utils_Tuple0,
+													$author$project$Morphir$IR$Literal$BoolLiteral(
+														_Utils_cmp(v1, v2) < 0)));
+										case 'FloatLiteral':
+											var _v34 = _v27.a;
+											var v1 = _v34.b.a;
+											var _v35 = _v27.b;
+											var v2 = _v35.b.a;
+											return $elm$core$Result$Ok(
+												A2(
+													$author$project$Morphir$IR$Value$Literal,
+													_Utils_Tuple0,
+													$author$project$Morphir$IR$Literal$BoolLiteral(
+														_Utils_cmp(v1, v2) < 0)));
+										default:
+											break _v27$6;
+									}
+								case 'CharLiteral':
+									if (_v27.b.b.$ === 'CharLiteral') {
+										var _v36 = _v27.a;
+										var v1 = _v36.b.a;
+										var _v37 = _v27.b;
+										var v2 = _v37.b.a;
+										return $elm$core$Result$Ok(
+											A2(
+												$author$project$Morphir$IR$Value$Literal,
+												_Utils_Tuple0,
+												$author$project$Morphir$IR$Literal$BoolLiteral(
+													_Utils_cmp(v1, v2) < 0)));
+									} else {
+										break _v27$6;
+									}
+								case 'StringLiteral':
+									if (_v27.b.b.$ === 'StringLiteral') {
+										var _v38 = _v27.a;
+										var v1 = _v38.b.a;
+										var _v39 = _v27.b;
+										var v2 = _v39.b.a;
+										return $elm$core$Result$Ok(
+											A2(
+												$author$project$Morphir$IR$Value$Literal,
+												_Utils_Tuple0,
+												$author$project$Morphir$IR$Literal$BoolLiteral(
+													_Utils_cmp(v1, v2) < 0)));
+									} else {
+										break _v27$6;
+									}
+								default:
+									break _v27$6;
+							}
+						} else {
+							break _v27$6;
+						}
+					}
+					return $elm$core$Result$Err(
+						$author$project$Morphir$Value$Error$UnexpectedArguments(
+							_List_fromArray(
+								[arg1, arg2])));
+				}))),
+		_Utils_Tuple2(
+		'greaterThan',
+		$author$project$Morphir$Value$Native$binaryStrict(
+			F2(
+				function (arg1, arg2) {
+					var _v40 = _Utils_Tuple2(arg1, arg2);
+					_v40$6:
+					while (true) {
+						if ((_v40.a.$ === 'Literal') && (_v40.b.$ === 'Literal')) {
+							switch (_v40.a.b.$) {
+								case 'FloatLiteral':
+									switch (_v40.b.b.$) {
+										case 'FloatLiteral':
+											var _v41 = _v40.a;
+											var v1 = _v41.b.a;
+											var _v42 = _v40.b;
+											var v2 = _v42.b.a;
+											return $elm$core$Result$Ok(
+												A2(
+													$author$project$Morphir$IR$Value$Literal,
+													_Utils_Tuple0,
+													$author$project$Morphir$IR$Literal$BoolLiteral(
+														_Utils_cmp(v1, v2) > 0)));
+										case 'IntLiteral':
+											var _v45 = _v40.a;
+											var v1 = _v45.b.a;
+											var _v46 = _v40.b;
+											var v2 = _v46.b.a;
+											return $elm$core$Result$Ok(
+												A2(
+													$author$project$Morphir$IR$Value$Literal,
+													_Utils_Tuple0,
+													$author$project$Morphir$IR$Literal$BoolLiteral(
+														_Utils_cmp(v1, v2) > 0)));
+										default:
+											break _v40$6;
+									}
+								case 'IntLiteral':
+									switch (_v40.b.b.$) {
+										case 'IntLiteral':
+											var _v43 = _v40.a;
+											var v1 = _v43.b.a;
+											var _v44 = _v40.b;
+											var v2 = _v44.b.a;
+											return $elm$core$Result$Ok(
+												A2(
+													$author$project$Morphir$IR$Value$Literal,
+													_Utils_Tuple0,
+													$author$project$Morphir$IR$Literal$BoolLiteral(
+														_Utils_cmp(v1, v2) > 0)));
+										case 'FloatLiteral':
+											var _v47 = _v40.a;
+											var v1 = _v47.b.a;
+											var _v48 = _v40.b;
+											var v2 = _v48.b.a;
+											return $elm$core$Result$Ok(
+												A2(
+													$author$project$Morphir$IR$Value$Literal,
+													_Utils_Tuple0,
+													$author$project$Morphir$IR$Literal$BoolLiteral(
+														_Utils_cmp(v1, v2) > 0)));
+										default:
+											break _v40$6;
+									}
+								case 'CharLiteral':
+									if (_v40.b.b.$ === 'CharLiteral') {
+										var _v49 = _v40.a;
+										var v1 = _v49.b.a;
+										var _v50 = _v40.b;
+										var v2 = _v50.b.a;
+										return $elm$core$Result$Ok(
+											A2(
+												$author$project$Morphir$IR$Value$Literal,
+												_Utils_Tuple0,
+												$author$project$Morphir$IR$Literal$BoolLiteral(
+													_Utils_cmp(v1, v2) > 0)));
+									} else {
+										break _v40$6;
+									}
+								case 'StringLiteral':
+									if (_v40.b.b.$ === 'StringLiteral') {
+										var _v51 = _v40.a;
+										var v1 = _v51.b.a;
+										var _v52 = _v40.b;
+										var v2 = _v52.b.a;
+										return $elm$core$Result$Ok(
+											A2(
+												$author$project$Morphir$IR$Value$Literal,
+												_Utils_Tuple0,
+												$author$project$Morphir$IR$Literal$BoolLiteral(
+													_Utils_cmp(v1, v2) > 0)));
+									} else {
+										break _v40$6;
+									}
+								default:
+									break _v40$6;
+							}
+						} else {
+							break _v40$6;
+						}
+					}
+					return $elm$core$Result$Err(
+						$author$project$Morphir$Value$Error$UnexpectedArguments(
+							_List_fromArray(
+								[arg1, arg2])));
+				})))
+	]);
+var $author$project$Morphir$IR$FQName$fQName = F3(
+	function (packagePath, modulePath, localName) {
+		return A3($author$project$Morphir$IR$FQName$FQName, packagePath, modulePath, localName);
+	});
+var $author$project$Morphir$IR$FQName$fqn = F3(
+	function (packageName, moduleName, localName) {
+		return A3(
+			$author$project$Morphir$IR$FQName$fQName,
+			$author$project$Morphir$IR$Path$fromString(packageName),
+			$author$project$Morphir$IR$Path$fromString(moduleName),
+			$author$project$Morphir$IR$Name$fromString(localName));
+	});
+var $author$project$Morphir$IR$SDK$List$nativeAppend = F2(
+	function (_eval, args) {
+		if ((args.b && args.b.b) && (!args.b.b.b)) {
+			var arg1 = args.a;
+			var _v1 = args.b;
+			var arg2 = _v1.a;
+			return A2(
+				$elm$core$Result$andThen,
+				function (evaluatedArg1) {
+					if (evaluatedArg1.$ === 'List') {
+						var items1 = evaluatedArg1.b;
+						return A2(
+							$elm$core$Result$andThen,
+							function (evaluatedArg2) {
+								if (evaluatedArg2.$ === 'List') {
+									var items2 = evaluatedArg2.b;
+									return $elm$core$Result$Ok(
+										A2(
+											$author$project$Morphir$IR$Value$List,
+											_Utils_Tuple0,
+											A2($elm$core$List$append, items1, items2)));
+								} else {
+									return $elm$core$Result$Err(
+										$author$project$Morphir$Value$Error$UnexpectedArguments(args));
+								}
+							},
+							_eval(arg2));
+					} else {
+						return $elm$core$Result$Err(
+							$author$project$Morphir$Value$Error$UnexpectedArguments(args));
+					}
+				},
+				_eval(arg1));
+		} else {
+			return $elm$core$Result$Err(
+				$author$project$Morphir$Value$Error$UnexpectedArguments(args));
+		}
+	});
+var $elm$core$List$head = function (list) {
+	if (list.b) {
+		var x = list.a;
+		var xs = list.b;
+		return $elm$core$Maybe$Just(x);
+	} else {
+		return $elm$core$Maybe$Nothing;
+	}
+};
+var $author$project$Morphir$ListOfResults$liftAllErrors = function (results) {
+	var oks = A2(
+		$elm$core$List$filterMap,
+		function (result) {
+			return $elm$core$Result$toMaybe(result);
+		},
+		results);
+	var errs = A2(
+		$elm$core$List$filterMap,
+		function (result) {
+			if (result.$ === 'Ok') {
+				return $elm$core$Maybe$Nothing;
+			} else {
+				var e = result.a;
+				return $elm$core$Maybe$Just(e);
+			}
+		},
+		results);
+	if (!errs.b) {
+		return $elm$core$Result$Ok(oks);
+	} else {
+		return $elm$core$Result$Err(errs);
+	}
+};
+var $author$project$Morphir$ListOfResults$liftFirstError = function (results) {
+	var _v0 = $author$project$Morphir$ListOfResults$liftAllErrors(results);
+	if (_v0.$ === 'Ok') {
+		var a = _v0.a;
+		return $elm$core$Result$Ok(a);
+	} else {
+		var errors = _v0.a;
+		return A2(
+			$elm$core$Maybe$withDefault,
+			$elm$core$Result$Ok(_List_Nil),
+			A2(
+				$elm$core$Maybe$map,
+				$elm$core$Result$Err,
+				$elm$core$List$head(errors)));
+	}
+};
+var $author$project$Morphir$IR$SDK$List$nativeMap = F2(
+	function (_eval, args) {
+		if ((args.b && args.b.b) && (!args.b.b.b)) {
+			var arg1 = args.a;
+			var _v1 = args.b;
+			var arg2 = _v1.a;
+			return A2(
+				$elm$core$Result$andThen,
+				function (evaluatedArg2) {
+					if (evaluatedArg2.$ === 'List') {
+						var items = evaluatedArg2.b;
+						return A2(
+							$elm$core$Result$map,
+							$author$project$Morphir$IR$Value$List(_Utils_Tuple0),
+							$author$project$Morphir$ListOfResults$liftFirstError(
+								A2(
+									$elm$core$List$map,
+									function (item) {
+										return _eval(
+											A3($author$project$Morphir$IR$Value$Apply, _Utils_Tuple0, arg1, item));
+									},
+									items)));
+					} else {
+						return $elm$core$Result$Err(
+							$author$project$Morphir$Value$Error$UnexpectedArguments(args));
+					}
+				},
+				_eval(arg2));
+		} else {
+			return $elm$core$Result$Err(
+				$author$project$Morphir$Value$Error$UnexpectedArguments(args));
+		}
+	});
+var $author$project$Morphir$IR$SDK$List$nativeFunctions = _List_fromArray(
+	[
+		_Utils_Tuple2(
+		'sum',
+		$author$project$Morphir$Value$Native$unaryStrict(
+			F2(
+				function (_eval, arg) {
+					if (arg.$ === 'List') {
+						var value = arg.b;
+						return A3(
+							$elm$core$List$foldl,
+							F2(
+								function (nextElem, resultSoFar) {
+									return A2(
+										$elm$core$Result$andThen,
+										function (resultValue) {
+											return _eval(
+												A3(
+													$author$project$Morphir$IR$Value$Apply,
+													_Utils_Tuple0,
+													A3(
+														$author$project$Morphir$IR$Value$Apply,
+														_Utils_Tuple0,
+														A2(
+															$author$project$Morphir$IR$Value$Reference,
+															_Utils_Tuple0,
+															A3($author$project$Morphir$IR$FQName$fqn, 'Morphir.SDK', 'Basics', 'add')),
+														nextElem),
+													resultValue));
+										},
+										resultSoFar);
+								}),
+							$elm$core$Result$Ok(
+								A2(
+									$author$project$Morphir$IR$Value$Literal,
+									_Utils_Tuple0,
+									$author$project$Morphir$IR$Literal$IntLiteral(0))),
+							value);
+					} else {
+						return $elm$core$Result$Err(
+							$author$project$Morphir$Value$Error$UnexpectedArguments(
+								_List_fromArray(
+									[arg])));
+					}
+				}))),
+		_Utils_Tuple2('map', $author$project$Morphir$IR$SDK$List$nativeMap),
+		_Utils_Tuple2('append', $author$project$Morphir$IR$SDK$List$nativeAppend)
+	]);
+var $author$project$Morphir$IR$SDK$String$nativeFunctions = _List_fromArray(
+	[
+		_Utils_Tuple2(
+		'concat',
+		$author$project$Morphir$Value$Native$unaryStrict(
+			F2(
+				function (_eval, arg) {
+					if (arg.$ === 'List') {
+						var value = arg.b;
+						return A2(
+							$elm$core$Result$map,
+							A2(
+								$elm$core$Basics$composeR,
+								$elm$core$String$concat,
+								A2(
+									$elm$core$Basics$composeR,
+									$author$project$Morphir$IR$Literal$StringLiteral,
+									$author$project$Morphir$IR$Value$Literal(_Utils_Tuple0))),
+							$author$project$Morphir$ListOfResults$liftFirstError(
+								A2(
+									$elm$core$List$map,
+									function (listItem) {
+										return A2(
+											$elm$core$Result$andThen,
+											function (evaluatedListItem) {
+												if ((evaluatedListItem.$ === 'Literal') && (evaluatedListItem.b.$ === 'StringLiteral')) {
+													var argument = evaluatedListItem.b.a;
+													return $elm$core$Result$Ok(argument);
+												} else {
+													return $elm$core$Result$Err(
+														$author$project$Morphir$Value$Error$UnexpectedArguments(
+															_List_fromArray(
+																[arg])));
+												}
+											},
+											_eval(listItem));
+									},
+									value)));
+					} else {
+						return $elm$core$Result$Err(
+							$author$project$Morphir$Value$Error$UnexpectedArguments(
+								_List_fromArray(
+									[arg])));
+					}
+				})))
+	]);
+var $author$project$Morphir$IR$SDK$packageName = $author$project$Morphir$IR$Path$fromString('Morphir.SDK');
+var $elm$core$Dict$foldl = F3(
+	function (func, acc, dict) {
+		foldl:
+		while (true) {
+			if (dict.$ === 'RBEmpty_elm_builtin') {
+				return acc;
+			} else {
+				var key = dict.b;
+				var value = dict.c;
+				var left = dict.d;
+				var right = dict.e;
+				var $temp$func = func,
+					$temp$acc = A3(
+					func,
+					key,
+					value,
+					A3($elm$core$Dict$foldl, func, acc, left)),
+					$temp$dict = right;
+				func = $temp$func;
+				acc = $temp$acc;
+				dict = $temp$dict;
+				continue foldl;
+			}
+		}
+	});
+var $elm$core$Dict$union = F2(
+	function (t1, t2) {
+		return A3($elm$core$Dict$foldl, $elm$core$Dict$insert, t2, t1);
+	});
+var $author$project$Morphir$IR$SDK$nativeFunctions = function () {
+	var moduleFunctions = F2(
+		function (moduleName, functionsByName) {
+			return $elm$core$Dict$fromList(
+				A2(
+					$elm$core$List$map,
+					function (_v0) {
+						var localName = _v0.a;
+						var fun = _v0.b;
+						return _Utils_Tuple2(
+							_Utils_Tuple3(
+								$author$project$Morphir$IR$SDK$packageName,
+								$author$project$Morphir$IR$Path$fromString(moduleName),
+								$author$project$Morphir$IR$Name$fromString(localName)),
+							fun);
+					},
+					functionsByName));
+		});
+	return A3(
+		$elm$core$List$foldl,
+		$elm$core$Dict$union,
+		$elm$core$Dict$empty,
+		_List_fromArray(
+			[
+				A2(moduleFunctions, 'Basics', $author$project$Morphir$IR$SDK$Basics$nativeFunctions),
+				A2(moduleFunctions, 'String', $author$project$Morphir$IR$SDK$String$nativeFunctions),
+				A2(moduleFunctions, 'List', $author$project$Morphir$IR$SDK$List$nativeFunctions)
+			]));
+}();
+var $author$project$Morphir$Value$Interpreter$referencesForDistribution = function (distribution) {
+	var packageName = distribution.a;
+	var dependencies = distribution.b;
+	var packageDef = distribution.c;
+	var sdkReferences = A2(
+		$elm$core$Dict$map,
+		F2(
+			function (_v3, fun) {
+				return $author$project$Morphir$Value$Interpreter$NativeReference(fun);
+			}),
+		$author$project$Morphir$IR$SDK$nativeFunctions);
+	var packageReferences = $elm$core$Dict$fromList(
+		A2(
+			$elm$core$List$concatMap,
+			function (_v1) {
+				var moduleName = _v1.a;
+				var accessControlledModuleDef = _v1.b;
+				return A2(
+					$elm$core$List$map,
+					function (_v2) {
+						var valueName = _v2.a;
+						var accessControlledValueDef = _v2.b;
+						return _Utils_Tuple2(
+							_Utils_Tuple3(packageName, moduleName, valueName),
+							$author$project$Morphir$Value$Interpreter$ValueReference(
+								$author$project$Morphir$IR$Value$definitionToValue(
+									A3(
+										$author$project$Morphir$IR$Value$mapDefinitionAttributes,
+										$elm$core$Basics$always(_Utils_Tuple0),
+										$elm$core$Basics$always(_Utils_Tuple0),
+										accessControlledValueDef.value))));
+					},
+					$elm$core$Dict$toList(accessControlledModuleDef.value.values));
+			},
+			$elm$core$Dict$toList(packageDef.modules)));
+	return A2($elm$core$Dict$union, packageReferences, sdkReferences);
+};
+var $author$project$Morphir$Visual$Context$fromDistributionAndVariables = F2(
+	function (distribution, variables) {
+		var references = $author$project$Morphir$Value$Interpreter$referencesForDistribution(distribution);
+		return A3($author$project$Morphir$Visual$Context$Context, distribution, references, variables);
+	});
+var $author$project$Morphir$IR$SDK$Basics$boolType = function (attributes) {
+	return A3(
+		$author$project$Morphir$IR$Type$Reference,
+		attributes,
+		A2($author$project$Morphir$IR$SDK$Common$toFQName, $author$project$Morphir$IR$SDK$Basics$moduleName, 'Bool'),
+		_List_Nil);
+};
+var $mdgriffith$elm_ui$Element$htmlAttribute = $mdgriffith$elm_ui$Internal$Model$Attr;
+var $author$project$Morphir$Visual$Common$cssClass = function (className) {
+	return $mdgriffith$elm_ui$Element$htmlAttribute(
+		$elm$html$Html$Attributes$class(className));
+};
+var $author$project$Morphir$Visual$BoolOperatorTree$And = {$: 'And'};
+var $author$project$Morphir$Visual$BoolOperatorTree$BoolOperatorBranch = F2(
+	function (a, b) {
+		return {$: 'BoolOperatorBranch', a: a, b: b};
+	});
+var $author$project$Morphir$Visual$BoolOperatorTree$BoolValueLeaf = function (a) {
+	return {$: 'BoolValueLeaf', a: a};
+};
+var $author$project$Morphir$Visual$BoolOperatorTree$Or = {$: 'Or'};
+var $elm$core$String$cons = _String_cons;
+var $elm$core$Char$toUpper = _Char_toUpper;
+var $author$project$Morphir$IR$Name$capitalize = function (string) {
+	var _v0 = $elm$core$String$uncons(string);
+	if (_v0.$ === 'Just') {
+		var _v1 = _v0.a;
+		var headChar = _v1.a;
+		var tailString = _v1.b;
+		return A2(
+			$elm$core$String$cons,
+			$elm$core$Char$toUpper(headChar),
+			tailString);
+	} else {
+		return string;
+	}
+};
+var $author$project$Morphir$IR$Name$toCamelCase = function (name) {
+	var _v0 = $author$project$Morphir$IR$Name$toList(name);
+	if (!_v0.b) {
+		return '';
+	} else {
+		var head = _v0.a;
+		var tail = _v0.b;
+		return A2(
+			$elm$core$String$join,
+			'',
+			A2(
+				$elm$core$List$cons,
+				head,
+				A2($elm$core$List$map, $author$project$Morphir$IR$Name$capitalize, tail)));
+	}
+};
+var $author$project$Morphir$IR$Path$toList = function (names) {
+	return names;
+};
+var $author$project$Morphir$IR$Path$toString = F3(
+	function (nameToString, sep, path) {
+		return A2(
+			$elm$core$String$join,
+			sep,
+			A2(
+				$elm$core$List$map,
+				nameToString,
+				$author$project$Morphir$IR$Path$toList(path)));
+	});
+var $author$project$Morphir$IR$Name$toTitleCase = function (name) {
+	return A2(
+		$elm$core$String$join,
+		'',
+		A2(
+			$elm$core$List$map,
+			$author$project$Morphir$IR$Name$capitalize,
+			$author$project$Morphir$IR$Name$toList(name)));
+};
+var $author$project$Morphir$Visual$BoolOperatorTree$functionName = F2(
+	function (moduleName, localName) {
+		return A2(
+			$elm$core$String$join,
+			'.',
+			_List_fromArray(
+				[
+					A3($author$project$Morphir$IR$Path$toString, $author$project$Morphir$IR$Name$toTitleCase, '.', moduleName),
+					$author$project$Morphir$IR$Name$toCamelCase(localName)
+				]));
+	});
+var $author$project$Morphir$IR$Value$uncurryApply = F2(
+	function (fun, lastArg) {
+		if (fun.$ === 'Apply') {
+			var nestedFun = fun.b;
+			var nestedArg = fun.c;
+			var _v1 = A2($author$project$Morphir$IR$Value$uncurryApply, nestedFun, nestedArg);
+			var f = _v1.a;
+			var initArgs = _v1.b;
+			return _Utils_Tuple2(
+				f,
+				A2(
+					$elm$core$List$append,
+					initArgs,
+					_List_fromArray(
+						[lastArg])));
+		} else {
+			return _Utils_Tuple2(
+				fun,
+				_List_fromArray(
+					[lastArg]));
+		}
+	});
+var $author$project$Morphir$Visual$BoolOperatorTree$fromTypedValue = function (typedValue) {
+	if (typedValue.$ === 'Apply') {
+		var fun = typedValue.b;
+		var arg = typedValue.c;
+		var _v8 = A2($author$project$Morphir$IR$Value$uncurryApply, fun, arg);
+		var _function = _v8.a;
+		var args = _v8.b;
+		var _v9 = _Utils_Tuple2(_function, args);
+		if ((((_v9.a.$ === 'Reference') && _v9.b.b) && _v9.b.b.b) && (!_v9.b.b.b.b)) {
+			var _v10 = _v9.a;
+			var _v11 = _v10.b;
+			var moduleName = _v11.b;
+			var localName = _v11.c;
+			var _v12 = _v9.b;
+			var arg1 = _v12.a;
+			var _v13 = _v12.b;
+			var arg2 = _v13.a;
+			var operatorName = A2($author$project$Morphir$Visual$BoolOperatorTree$functionName, moduleName, localName);
+			switch (operatorName) {
+				case 'Basics.or':
+					return A2(
+						$author$project$Morphir$Visual$BoolOperatorTree$BoolOperatorBranch,
+						$author$project$Morphir$Visual$BoolOperatorTree$Or,
+						A2($author$project$Morphir$Visual$BoolOperatorTree$helperFunction, typedValue, operatorName));
+				case 'Basics.and':
+					return A2(
+						$author$project$Morphir$Visual$BoolOperatorTree$BoolOperatorBranch,
+						$author$project$Morphir$Visual$BoolOperatorTree$And,
+						A2($author$project$Morphir$Visual$BoolOperatorTree$helperFunction, typedValue, operatorName));
+				default:
+					return $author$project$Morphir$Visual$BoolOperatorTree$BoolValueLeaf(typedValue);
+			}
+		} else {
+			return $author$project$Morphir$Visual$BoolOperatorTree$BoolValueLeaf(typedValue);
+		}
+	} else {
+		return $author$project$Morphir$Visual$BoolOperatorTree$BoolValueLeaf(typedValue);
+	}
+};
+var $author$project$Morphir$Visual$BoolOperatorTree$helperFunction = F2(
+	function (value, operatorName) {
+		if (value.$ === 'Apply') {
+			var fun = value.b;
+			var arg = value.c;
+			var _v1 = A2($author$project$Morphir$IR$Value$uncurryApply, fun, arg);
+			var _function = _v1.a;
+			var args = _v1.b;
+			var _v2 = _Utils_Tuple2(_function, args);
+			if ((((_v2.a.$ === 'Reference') && _v2.b.b) && _v2.b.b.b) && (!_v2.b.b.b.b)) {
+				var _v3 = _v2.a;
+				var _v4 = _v3.b;
+				var moduleName = _v4.b;
+				var localName = _v4.c;
+				var _v5 = _v2.b;
+				var arg1 = _v5.a;
+				var _v6 = _v5.b;
+				var arg2 = _v6.a;
+				return _Utils_eq(
+					A2($author$project$Morphir$Visual$BoolOperatorTree$functionName, moduleName, localName),
+					operatorName) ? _Utils_ap(
+					A2($author$project$Morphir$Visual$BoolOperatorTree$helperFunction, arg1, operatorName),
+					A2($author$project$Morphir$Visual$BoolOperatorTree$helperFunction, arg2, operatorName)) : _List_fromArray(
+					[
+						$author$project$Morphir$Visual$BoolOperatorTree$fromTypedValue(value)
+					]);
+			} else {
+				return _List_fromArray(
+					[
+						$author$project$Morphir$Visual$BoolOperatorTree$BoolValueLeaf(value)
+					]);
+			}
+		} else {
+			return _List_fromArray(
+				[
+					$author$project$Morphir$Visual$BoolOperatorTree$BoolValueLeaf(value)
+				]);
+		}
+	});
+var $author$project$Morphir$Visual$Common$nameToText = function (name) {
+	return A2(
+		$elm$core$String$join,
+		' ',
+		$author$project$Morphir$IR$Name$toHumanWords(name));
+};
+var $mdgriffith$elm_ui$Internal$Model$Paragraph = {$: 'Paragraph'};
+var $mdgriffith$elm_ui$Element$paragraph = F2(
+	function (attrs, children) {
+		return A4(
+			$mdgriffith$elm_ui$Internal$Model$element,
+			$mdgriffith$elm_ui$Internal$Model$asParagraph,
+			$mdgriffith$elm_ui$Internal$Model$div,
+			A2(
+				$elm$core$List$cons,
+				$mdgriffith$elm_ui$Internal$Model$Describe($mdgriffith$elm_ui$Internal$Model$Paragraph),
+				A2(
+					$elm$core$List$cons,
+					$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),
+					A2(
+						$elm$core$List$cons,
+						$mdgriffith$elm_ui$Element$spacing(5),
+						attrs))),
+			$mdgriffith$elm_ui$Internal$Model$Unkeyed(children));
+	});
+var $author$project$Morphir$IR$Value$valueAttribute = function (v) {
+	switch (v.$) {
+		case 'Literal':
+			var a = v.a;
+			return a;
+		case 'Constructor':
+			var a = v.a;
+			return a;
+		case 'Tuple':
+			var a = v.a;
+			return a;
+		case 'List':
+			var a = v.a;
+			return a;
+		case 'Record':
+			var a = v.a;
+			return a;
+		case 'Variable':
+			var a = v.a;
+			return a;
+		case 'Reference':
+			var a = v.a;
+			return a;
+		case 'Field':
+			var a = v.a;
+			return a;
+		case 'FieldFunction':
+			var a = v.a;
+			return a;
+		case 'Apply':
+			var a = v.a;
+			return a;
+		case 'Lambda':
+			var a = v.a;
+			return a;
+		case 'LetDefinition':
+			var a = v.a;
+			return a;
+		case 'LetRecursion':
+			var a = v.a;
+			return a;
+		case 'Destructure':
+			var a = v.a;
+			return a;
+		case 'IfThenElse':
+			var a = v.a;
+			return a;
+		case 'PatternMatch':
+			var a = v.a;
+			return a;
+		case 'UpdateRecord':
+			var a = v.a;
+			return a;
+		default:
+			var a = v.a;
+			return a;
+	}
+};
+var $author$project$Morphir$Visual$ViewApply$inlineBinaryOperators = $elm$core$Dict$fromList(
+	_List_fromArray(
+		[
+			_Utils_Tuple2('Basics.equal', '='),
+			_Utils_Tuple2('Basics.lessThan', '<'),
+			_Utils_Tuple2('Basics.lessThanOrEqual', '<='),
+			_Utils_Tuple2('Basics.greaterThan', '>'),
+			_Utils_Tuple2('Basics.greaterThanOrEqual', '>='),
+			_Utils_Tuple2('Basics.add', '+'),
+			_Utils_Tuple2('Basics.subtract', '-'),
+			_Utils_Tuple2('Basics.multiply', '*'),
+			_Utils_Tuple2('Basics.divide', '/')
+		]));
+var $mdgriffith$elm_ui$Internal$Model$MoveX = function (a) {
+	return {$: 'MoveX', a: a};
+};
+var $mdgriffith$elm_ui$Internal$Model$TransformComponent = F2(
+	function (a, b) {
+		return {$: 'TransformComponent', a: a, b: b};
+	});
+var $mdgriffith$elm_ui$Internal$Flag$moveX = $mdgriffith$elm_ui$Internal$Flag$flag(25);
+var $mdgriffith$elm_ui$Element$moveRight = function (x) {
+	return A2(
+		$mdgriffith$elm_ui$Internal$Model$TransformComponent,
+		$mdgriffith$elm_ui$Internal$Flag$moveX,
+		$mdgriffith$elm_ui$Internal$Model$MoveX(x));
+};
+var $mdgriffith$elm_ui$Internal$Model$paddingName = F4(
+	function (top, right, bottom, left) {
+		return 'pad-' + ($elm$core$String$fromInt(top) + ('-' + ($elm$core$String$fromInt(right) + ('-' + ($elm$core$String$fromInt(bottom) + ('-' + $elm$core$String$fromInt(left)))))));
+	});
+var $mdgriffith$elm_ui$Element$paddingEach = function (_v0) {
+	var top = _v0.top;
+	var right = _v0.right;
+	var bottom = _v0.bottom;
+	var left = _v0.left;
+	if (_Utils_eq(top, right) && (_Utils_eq(top, bottom) && _Utils_eq(top, left))) {
+		var topFloat = top;
+		return A2(
+			$mdgriffith$elm_ui$Internal$Model$StyleClass,
+			$mdgriffith$elm_ui$Internal$Flag$padding,
+			A5(
+				$mdgriffith$elm_ui$Internal$Model$PaddingStyle,
+				'p-' + $elm$core$String$fromInt(top),
+				topFloat,
+				topFloat,
+				topFloat,
+				topFloat));
+	} else {
+		return A2(
+			$mdgriffith$elm_ui$Internal$Model$StyleClass,
+			$mdgriffith$elm_ui$Internal$Flag$padding,
+			A5(
+				$mdgriffith$elm_ui$Internal$Model$PaddingStyle,
+				A4($mdgriffith$elm_ui$Internal$Model$paddingName, top, right, bottom, left),
+				top,
+				right,
+				bottom,
+				left));
+	}
+};
+var $author$project$Morphir$Visual$ViewApply$view = F3(
+	function (viewValue, functionValue, argValues) {
+		var _v0 = _Utils_Tuple2(functionValue, argValues);
+		_v0$2:
+		while (true) {
+			if ((_v0.a.$ === 'Reference') && _v0.b.b) {
+				if (!_v0.b.b.b) {
+					if (_v0.a.b.c.b && (_v0.a.b.c.a === 'is')) {
+						var _v1 = _v0.a;
+						var _v2 = _v1.b;
+						var localName = _v2.c;
+						var _v3 = _v0.b;
+						var argValue = _v3.a;
+						return A2(
+							$mdgriffith$elm_ui$Element$row,
+							_List_fromArray(
+								[
+									$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),
+									$mdgriffith$elm_ui$Element$spacing(10)
+								]),
+							_List_fromArray(
+								[
+									viewValue(argValue),
+									$mdgriffith$elm_ui$Element$text(
+									$author$project$Morphir$Visual$Common$nameToText(localName))
+								]));
+					} else {
+						break _v0$2;
+					}
+				} else {
+					if (((((((((((((_v0.a.b.a.b && _v0.a.b.a.a.b) && (_v0.a.b.a.a.a === 'morphir')) && (!_v0.a.b.a.a.b.b)) && _v0.a.b.a.b.b) && _v0.a.b.a.b.a.b) && (_v0.a.b.a.b.a.a === 's')) && _v0.a.b.a.b.a.b.b) && (_v0.a.b.a.b.a.b.a === 'd')) && _v0.a.b.a.b.a.b.b.b) && (_v0.a.b.a.b.a.b.b.a === 'k')) && (!_v0.a.b.a.b.a.b.b.b.b)) && (!_v0.a.b.a.b.b.b)) && (!_v0.b.b.b.b)) {
+						var _v4 = _v0.a;
+						var _v5 = _v4.b;
+						var _v6 = _v5.a;
+						var _v7 = _v6.a;
+						var _v8 = _v6.b;
+						var _v9 = _v8.a;
+						var _v10 = _v9.b;
+						var _v11 = _v10.b;
+						var moduleName = _v5.b;
+						var localName = _v5.c;
+						var _v12 = _v0.b;
+						var argValue1 = _v12.a;
+						var _v13 = _v12.b;
+						var argValue2 = _v13.a;
+						var functionName = A2(
+							$elm$core$String$join,
+							'.',
+							_List_fromArray(
+								[
+									A3($author$project$Morphir$IR$Path$toString, $author$project$Morphir$IR$Name$toTitleCase, '.', moduleName),
+									$author$project$Morphir$IR$Name$toCamelCase(localName)
+								]));
+						return A2(
+							$elm$core$Maybe$withDefault,
+							A2(
+								$mdgriffith$elm_ui$Element$column,
+								_List_fromArray(
+									[
+										$mdgriffith$elm_ui$Element$spacing(10)
+									]),
+								_List_fromArray(
+									[
+										viewValue(functionValue),
+										A2(
+										$mdgriffith$elm_ui$Element$column,
+										_List_fromArray(
+											[
+												$mdgriffith$elm_ui$Element$paddingEach(
+												{bottom: 0, left: 10, right: 0, top: 0}),
+												$mdgriffith$elm_ui$Element$spacing(10)
+											]),
+										A2($elm$core$List$map, viewValue, argValues))
+									])),
+							A2(
+								$elm$core$Maybe$map,
+								function (functionText) {
+									return A2(
+										$mdgriffith$elm_ui$Element$row,
+										_List_fromArray(
+											[
+												$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),
+												$mdgriffith$elm_ui$Element$spacing(5)
+											]),
+										_List_fromArray(
+											[
+												viewValue(argValue1),
+												$mdgriffith$elm_ui$Element$text(functionText),
+												viewValue(argValue2)
+											]));
+								},
+								A2($elm$core$Dict$get, functionName, $author$project$Morphir$Visual$ViewApply$inlineBinaryOperators)));
+					} else {
+						break _v0$2;
+					}
+				}
+			} else {
+				break _v0$2;
+			}
+		}
+		return A2(
+			$mdgriffith$elm_ui$Element$column,
+			_List_fromArray(
+				[
+					$mdgriffith$elm_ui$Element$spacing(10)
+				]),
+			_List_fromArray(
+				[
+					viewValue(functionValue),
+					A2(
+					$mdgriffith$elm_ui$Element$column,
+					_List_fromArray(
+						[
+							$mdgriffith$elm_ui$Element$moveRight(10),
+							$mdgriffith$elm_ui$Element$spacing(10)
+						]),
+					A2($elm$core$List$map, viewValue, argValues))
+				]));
+	});
+var $author$project$Morphir$Visual$ViewBoolOperatorTree$Vertical = {$: 'Vertical'};
+var $mdgriffith$elm_ui$Internal$Model$AlignX = function (a) {
+	return {$: 'AlignX', a: a};
+};
+var $mdgriffith$elm_ui$Internal$Model$CenterX = {$: 'CenterX'};
+var $mdgriffith$elm_ui$Element$centerX = $mdgriffith$elm_ui$Internal$Model$AlignX($mdgriffith$elm_ui$Internal$Model$CenterX);
+var $mdgriffith$elm_ui$Internal$Model$AlignY = function (a) {
+	return {$: 'AlignY', a: a};
+};
+var $mdgriffith$elm_ui$Internal$Model$CenterY = {$: 'CenterY'};
+var $mdgriffith$elm_ui$Element$centerY = $mdgriffith$elm_ui$Internal$Model$AlignY($mdgriffith$elm_ui$Internal$Model$CenterY);
+var $author$project$Morphir$Visual$ViewBoolOperatorTree$Horizontal = {$: 'Horizontal'};
+var $author$project$Morphir$Visual$ViewBoolOperatorTree$flipLayoutDirection = function (direction) {
+	if (direction.$ === 'Horizontal') {
+		return $author$project$Morphir$Visual$ViewBoolOperatorTree$Vertical;
+	} else {
+		return $author$project$Morphir$Visual$ViewBoolOperatorTree$Horizontal;
+	}
+};
+var $elm$core$List$intersperse = F2(
+	function (sep, xs) {
+		if (!xs.b) {
+			return _List_Nil;
+		} else {
+			var hd = xs.a;
+			var tl = xs.b;
+			var step = F2(
+				function (x, rest) {
+					return A2(
+						$elm$core$List$cons,
+						sep,
+						A2($elm$core$List$cons, x, rest));
+				});
+			var spersed = A3($elm$core$List$foldr, step, _List_Nil, tl);
+			return A2($elm$core$List$cons, hd, spersed);
+		}
+	});
+var $mdgriffith$elm_ui$Internal$Model$Empty = {$: 'Empty'};
+var $mdgriffith$elm_ui$Element$none = $mdgriffith$elm_ui$Internal$Model$Empty;
+var $author$project$Morphir$Visual$ViewBoolOperatorTree$operatorToString = function (operator) {
+	if (operator.$ === 'Or') {
+		return 'OR';
+	} else {
+		return 'AND';
+	}
+};
+var $mdgriffith$elm_ui$Element$Border$widthXY = F2(
+	function (x, y) {
+		return A2(
+			$mdgriffith$elm_ui$Internal$Model$StyleClass,
+			$mdgriffith$elm_ui$Internal$Flag$borderWidth,
+			A5(
+				$mdgriffith$elm_ui$Internal$Model$BorderWidth,
+				'b-' + ($elm$core$String$fromInt(x) + ('-' + $elm$core$String$fromInt(y))),
+				y,
+				x,
+				y,
+				x));
+	});
+var $mdgriffith$elm_ui$Element$Border$widthEach = function (_v0) {
+	var bottom = _v0.bottom;
+	var top = _v0.top;
+	var left = _v0.left;
+	var right = _v0.right;
+	return (_Utils_eq(top, bottom) && _Utils_eq(left, right)) ? (_Utils_eq(top, right) ? $mdgriffith$elm_ui$Element$Border$width(top) : A2($mdgriffith$elm_ui$Element$Border$widthXY, left, top)) : A2(
+		$mdgriffith$elm_ui$Internal$Model$StyleClass,
+		$mdgriffith$elm_ui$Internal$Flag$borderWidth,
+		A5(
+			$mdgriffith$elm_ui$Internal$Model$BorderWidth,
+			'b-' + ($elm$core$String$fromInt(top) + ('-' + ($elm$core$String$fromInt(right) + ('-' + ($elm$core$String$fromInt(bottom) + ('-' + $elm$core$String$fromInt(left))))))),
+			top,
+			right,
+			bottom,
+			left));
+};
+var $author$project$Morphir$Visual$ViewBoolOperatorTree$viewTreeNode = F3(
+	function (viewValue, direction, boolOperatorTree) {
+		if (boolOperatorTree.$ === 'BoolOperatorBranch') {
+			var operator = boolOperatorTree.a;
+			var values = boolOperatorTree.b;
+			var separator = function () {
+				if (direction.$ === 'Horizontal') {
+					var verticalLine = A2(
+						$mdgriffith$elm_ui$Element$row,
+						_List_fromArray(
+							[
+								$mdgriffith$elm_ui$Element$centerX,
+								$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill)
+							]),
+						_List_fromArray(
+							[
+								A2(
+								$mdgriffith$elm_ui$Element$el,
+								_List_fromArray(
+									[
+										$mdgriffith$elm_ui$Element$Border$widthEach(
+										{bottom: 0, left: 1, right: 0, top: 0}),
+										$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill)
+									]),
+								$mdgriffith$elm_ui$Element$none),
+								A2(
+								$mdgriffith$elm_ui$Element$el,
+								_List_fromArray(
+									[
+										$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill)
+									]),
+								$mdgriffith$elm_ui$Element$none)
+							]));
+					return A2(
+						$mdgriffith$elm_ui$Element$column,
+						_List_fromArray(
+							[
+								$mdgriffith$elm_ui$Element$centerY,
+								$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill)
+							]),
+						_List_fromArray(
+							[
+								verticalLine,
+								A2(
+								$mdgriffith$elm_ui$Element$el,
+								_List_fromArray(
+									[
+										$mdgriffith$elm_ui$Element$Font$size(12),
+										$mdgriffith$elm_ui$Element$padding(5),
+										$mdgriffith$elm_ui$Element$Font$bold
+									]),
+								$mdgriffith$elm_ui$Element$text(
+									$author$project$Morphir$Visual$ViewBoolOperatorTree$operatorToString(operator))),
+								verticalLine
+							]));
+				} else {
+					var horizontalLine = A2(
+						$mdgriffith$elm_ui$Element$column,
+						_List_fromArray(
+							[
+								$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)
+							]),
+						_List_fromArray(
+							[
+								A2(
+								$mdgriffith$elm_ui$Element$el,
+								_List_fromArray(
+									[
+										$mdgriffith$elm_ui$Element$Border$widthEach(
+										{bottom: 1, left: 0, right: 0, top: 0}),
+										$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)
+									]),
+								$mdgriffith$elm_ui$Element$none),
+								A2(
+								$mdgriffith$elm_ui$Element$el,
+								_List_fromArray(
+									[
+										$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)
+									]),
+								$mdgriffith$elm_ui$Element$none)
+							]));
+					return A2(
+						$mdgriffith$elm_ui$Element$row,
+						_List_fromArray(
+							[
+								$mdgriffith$elm_ui$Element$centerX,
+								$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)
+							]),
+						_List_fromArray(
+							[
+								horizontalLine,
+								A2(
+								$mdgriffith$elm_ui$Element$el,
+								_List_fromArray(
+									[
+										$mdgriffith$elm_ui$Element$Font$size(12),
+										$mdgriffith$elm_ui$Element$padding(5),
+										$mdgriffith$elm_ui$Element$Font$bold
+									]),
+								$mdgriffith$elm_ui$Element$text(
+									$author$project$Morphir$Visual$ViewBoolOperatorTree$operatorToString(operator))),
+								horizontalLine
+							]));
+				}
+			}();
+			var layout = function (elems) {
+				if (direction.$ === 'Horizontal') {
+					return A2($mdgriffith$elm_ui$Element$row, _List_Nil, elems);
+				} else {
+					return A2($mdgriffith$elm_ui$Element$column, _List_Nil, elems);
+				}
+			};
+			return layout(
+				A2(
+					$elm$core$List$intersperse,
+					separator,
+					A2(
+						$elm$core$List$map,
+						$mdgriffith$elm_ui$Element$el(
+							_List_fromArray(
+								[
+									$mdgriffith$elm_ui$Element$padding(8),
+									$mdgriffith$elm_ui$Element$spacing(8)
+								])),
+						A2(
+							$elm$core$List$map,
+							A2(
+								$author$project$Morphir$Visual$ViewBoolOperatorTree$viewTreeNode,
+								viewValue,
+								$author$project$Morphir$Visual$ViewBoolOperatorTree$flipLayoutDirection(direction)),
+							values))));
+		} else {
+			var value = boolOperatorTree.a;
+			return viewValue(value);
+		}
+	});
+var $author$project$Morphir$Visual$ViewBoolOperatorTree$view = F2(
+	function (viewValue, boolOperatorTree) {
+		return A3($author$project$Morphir$Visual$ViewBoolOperatorTree$viewTreeNode, viewValue, $author$project$Morphir$Visual$ViewBoolOperatorTree$Vertical, boolOperatorTree);
+	});
+var $author$project$Morphir$Visual$ViewField$view = F3(
+	function (viewValue, subjectValue, fieldName) {
+		if (subjectValue.$ === 'Variable') {
+			var variableName = subjectValue.b;
+			return $mdgriffith$elm_ui$Element$text(
+				$elm$core$String$concat(
+					_List_fromArray(
+						[
+							'the ',
+							$author$project$Morphir$Visual$Common$nameToText(variableName),
+							'\'s ',
+							$author$project$Morphir$Visual$Common$nameToText(fieldName)
+						])));
+		} else {
+			return A2(
+				$mdgriffith$elm_ui$Element$row,
+				_List_fromArray(
+					[
+						$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)
+					]),
+				_List_fromArray(
+					[
+						$mdgriffith$elm_ui$Element$text(
+						$elm$core$String$concat(
+							_List_fromArray(
+								[
+									'the ',
+									$author$project$Morphir$Visual$Common$nameToText(fieldName),
+									' field of '
+								]))),
+						viewValue(subjectValue)
+					]));
+		}
+	});
+var $author$project$Morphir$Visual$Components$DecisionTree$Color = F3(
+	function (a, b, c) {
+		return {$: 'Color', a: a, b: b, c: c};
+	});
+var $author$project$Morphir$Visual$Components$DecisionTree$highlightColor = {
+	_default: A3($author$project$Morphir$Visual$Components$DecisionTree$Color, 120, 120, 120),
+	_false: A3($author$project$Morphir$Visual$Components$DecisionTree$Color, 180, 0, 0),
+	_true: A3($author$project$Morphir$Visual$Components$DecisionTree$Color, 0, 180, 0)
+};
+var $mdgriffith$elm_ui$Element$Font$color = function (fontColor) {
+	return A2(
+		$mdgriffith$elm_ui$Internal$Model$StyleClass,
+		$mdgriffith$elm_ui$Internal$Flag$fontColor,
+		A3(
+			$mdgriffith$elm_ui$Internal$Model$Colored,
+			'fc-' + $mdgriffith$elm_ui$Internal$Model$formatColorClass(fontColor),
+			'color',
+			fontColor));
+};
+var $mdgriffith$elm_ui$Internal$Model$Left = {$: 'Left'};
+var $mdgriffith$elm_ui$Element$alignLeft = $mdgriffith$elm_ui$Internal$Model$AlignX($mdgriffith$elm_ui$Internal$Model$Left);
+var $mdgriffith$elm_ui$Internal$Model$Top = {$: 'Top'};
+var $mdgriffith$elm_ui$Element$alignTop = $mdgriffith$elm_ui$Internal$Model$AlignY($mdgriffith$elm_ui$Internal$Model$Top);
+var $elm$html$Html$Attributes$colspan = function (n) {
+	return A2(
+		_VirtualDom_attribute,
+		'colspan',
+		$elm$core$String$fromInt(n));
+};
+var $elm$svg$Svg$Attributes$height = _VirtualDom_attribute('height');
+var $elm$svg$Svg$Attributes$points = _VirtualDom_attribute('points');
+var $elm$svg$Svg$trustedNode = _VirtualDom_nodeNS('http://www.w3.org/2000/svg');
+var $elm$svg$Svg$polygon = $elm$svg$Svg$trustedNode('polygon');
+var $elm$svg$Svg$Attributes$style = _VirtualDom_attribute('style');
+var $elm$svg$Svg$svg = $elm$svg$Svg$trustedNode('svg');
+var $elm$svg$Svg$Attributes$viewBox = _VirtualDom_attribute('viewBox');
+var $elm$svg$Svg$Attributes$width = _VirtualDom_attribute('width');
+var $author$project$Morphir$Visual$Components$DecisionTree$downArrowHead = function (color) {
+	return A2(
+		$elm$svg$Svg$svg,
+		_List_fromArray(
+			[
+				$elm$svg$Svg$Attributes$width('10'),
+				$elm$svg$Svg$Attributes$height('10'),
+				$elm$svg$Svg$Attributes$viewBox('0 0 200 200')
+			]),
+		_List_fromArray(
+			[
+				A2(
+				$elm$svg$Svg$polygon,
+				_List_fromArray(
+					[
+						$elm$svg$Svg$Attributes$points('0,0 100,200 200,0'),
+						$elm$svg$Svg$Attributes$style('fill:' + color)
+					]),
+				_List_Nil)
+			]));
+};
+var $mdgriffith$elm_ui$Internal$Model$NoStaticStyleSheet = {$: 'NoStaticStyleSheet'};
+var $mdgriffith$elm_ui$Internal$Model$RenderModeOption = function (a) {
+	return {$: 'RenderModeOption', a: a};
+};
+var $mdgriffith$elm_ui$Element$noStaticStyleSheet = $mdgriffith$elm_ui$Internal$Model$RenderModeOption($mdgriffith$elm_ui$Internal$Model$NoStaticStyleSheet);
+var $author$project$Morphir$Visual$Common$element = function (elem) {
+	return A3(
+		$mdgriffith$elm_ui$Element$layoutWith,
+		{
+			options: _List_fromArray(
+				[$mdgriffith$elm_ui$Element$noStaticStyleSheet])
+		},
+		_List_fromArray(
+			[
+				$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),
+				$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink)
+			]),
+		elem);
+};
+var $elm$html$Html$table = _VirtualDom_node('table');
+var $elm$html$Html$td = _VirtualDom_node('td');
+var $author$project$Morphir$Visual$Components$DecisionTree$toCssColor = function (_v0) {
+	var r = _v0.a;
+	var g = _v0.b;
+	var b = _v0.c;
+	return $elm$core$String$concat(
+		_List_fromArray(
+			[
+				'rgb(',
+				$elm$core$String$fromInt(r),
+				',',
+				$elm$core$String$fromInt(g),
+				',',
+				$elm$core$String$fromInt(b),
+				')'
+			]));
+};
+var $elm$html$Html$tr = _VirtualDom_node('tr');
+var $author$project$Morphir$Visual$Components$DecisionTree$downArrow = function (color) {
+	return A2(
+		$mdgriffith$elm_ui$Element$el,
+		_List_fromArray(
+			[
+				$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),
+				$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill)
+			]),
+		$mdgriffith$elm_ui$Element$html(
+			A2(
+				$elm$html$Html$table,
+				_List_fromArray(
+					[
+						A2($elm$html$Html$Attributes$style, 'border-collapse', 'collapse'),
+						A2($elm$html$Html$Attributes$style, 'height', '100%')
+					]),
+				_List_fromArray(
+					[
+						A2(
+						$elm$html$Html$tr,
+						_List_fromArray(
+							[
+								A2($elm$html$Html$Attributes$style, 'height', '100%')
+							]),
+						_List_fromArray(
+							[
+								A2(
+								$elm$html$Html$td,
+								_List_fromArray(
+									[
+										A2(
+										$elm$html$Html$Attributes$style,
+										'border-right',
+										'solid 2px ' + $author$project$Morphir$Visual$Components$DecisionTree$toCssColor(color))
+									]),
+								_List_Nil),
+								A2($elm$html$Html$td, _List_Nil, _List_Nil)
+							])),
+						A2(
+						$elm$html$Html$tr,
+						_List_Nil,
+						_List_fromArray(
+							[
+								A2(
+								$elm$html$Html$td,
+								_List_fromArray(
+									[
+										$elm$html$Html$Attributes$colspan(2)
+									]),
+								_List_fromArray(
+									[
+										$author$project$Morphir$Visual$Common$element(
+										A2(
+											$mdgriffith$elm_ui$Element$el,
+											_List_fromArray(
+												[$mdgriffith$elm_ui$Element$centerX]),
+											$mdgriffith$elm_ui$Element$html(
+												$author$project$Morphir$Visual$Components$DecisionTree$downArrowHead(
+													$author$project$Morphir$Visual$Components$DecisionTree$toCssColor(color)))))
+									]))
+							]))
+					]))));
+};
+var $author$project$Morphir$Visual$Components$DecisionTree$noPadding = {bottom: 0, left: 0, right: 0, top: 0};
+var $author$project$Morphir$Visual$Components$DecisionTree$rightArrowHead = function (color) {
+	return A2(
+		$elm$svg$Svg$svg,
+		_List_fromArray(
+			[
+				$elm$svg$Svg$Attributes$width('10'),
+				$elm$svg$Svg$Attributes$height('10'),
+				$elm$svg$Svg$Attributes$viewBox('0 0 200 200')
+			]),
+		_List_fromArray(
+			[
+				A2(
+				$elm$svg$Svg$polygon,
+				_List_fromArray(
+					[
+						$elm$svg$Svg$Attributes$points('0,0 200,100 0,200'),
+						$elm$svg$Svg$Attributes$style('fill:' + color)
+					]),
+				_List_Nil)
+			]));
+};
+var $elm$html$Html$Attributes$rowspan = function (n) {
+	return A2(
+		_VirtualDom_attribute,
+		'rowspan',
+		$elm$core$String$fromInt(n));
+};
+var $author$project$Morphir$Visual$Components$DecisionTree$rightArrow = function (color) {
+	return A2(
+		$mdgriffith$elm_ui$Element$el,
+		_List_fromArray(
+			[
+				$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),
+				$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill)
+			]),
+		$mdgriffith$elm_ui$Element$html(
+			A2(
+				$elm$html$Html$table,
+				_List_fromArray(
+					[
+						A2($elm$html$Html$Attributes$style, 'border-collapse', 'collapse'),
+						A2($elm$html$Html$Attributes$style, 'width', '100%')
+					]),
+				_List_fromArray(
+					[
+						A2(
+						$elm$html$Html$tr,
+						_List_Nil,
+						_List_fromArray(
+							[
+								A2(
+								$elm$html$Html$td,
+								_List_fromArray(
+									[
+										A2(
+										$elm$html$Html$Attributes$style,
+										'border-bottom',
+										'solid 2px ' + $author$project$Morphir$Visual$Components$DecisionTree$toCssColor(color)),
+										A2($elm$html$Html$Attributes$style, 'width', '100%')
+									]),
+								_List_Nil),
+								A2(
+								$elm$html$Html$td,
+								_List_fromArray(
+									[
+										$elm$html$Html$Attributes$rowspan(2)
+									]),
+								_List_fromArray(
+									[
+										$author$project$Morphir$Visual$Common$element(
+										A2(
+											$mdgriffith$elm_ui$Element$el,
+											_List_fromArray(
+												[$mdgriffith$elm_ui$Element$centerY]),
+											$mdgriffith$elm_ui$Element$html(
+												$author$project$Morphir$Visual$Components$DecisionTree$rightArrowHead(
+													$author$project$Morphir$Visual$Components$DecisionTree$toCssColor(color)))))
+									]))
+							])),
+						A2(
+						$elm$html$Html$tr,
+						_List_Nil,
+						_List_fromArray(
+							[
+								A2($elm$html$Html$td, _List_Nil, _List_Nil)
+							]))
+					]))));
+};
+var $author$project$Morphir$Visual$Components$DecisionTree$horizontalLayout = F7(
+	function (condition, branch1Label, branch1Color, branch1, branch2Label, branch2Color, branch2) {
+		return A2(
+			$mdgriffith$elm_ui$Element$row,
+			_List_Nil,
+			_List_fromArray(
+				[
+					A2(
+					$mdgriffith$elm_ui$Element$column,
+					_List_fromArray(
+						[$mdgriffith$elm_ui$Element$alignTop]),
+					_List_fromArray(
+						[
+							A2(
+							$mdgriffith$elm_ui$Element$row,
+							_List_fromArray(
+								[
+									$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)
+								]),
+							_List_fromArray(
+								[
+									A2(
+									$mdgriffith$elm_ui$Element$column,
+									_List_fromArray(
+										[
+											$mdgriffith$elm_ui$Element$alignTop,
+											$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink)
+										]),
+									_List_fromArray(
+										[
+											A2(
+											$mdgriffith$elm_ui$Element$el,
+											_List_fromArray(
+												[
+													$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink)
+												]),
+											condition),
+											A2(
+											$mdgriffith$elm_ui$Element$row,
+											_List_fromArray(
+												[
+													$mdgriffith$elm_ui$Element$alignLeft,
+													$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill),
+													$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),
+													$mdgriffith$elm_ui$Element$spacing(10)
+												]),
+											_List_fromArray(
+												[
+													A2(
+													$mdgriffith$elm_ui$Element$el,
+													_List_fromArray(
+														[
+															$mdgriffith$elm_ui$Element$paddingEach(
+															_Utils_update(
+																$author$project$Morphir$Visual$Components$DecisionTree$noPadding,
+																{left: 10})),
+															$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill)
+														]),
+													$author$project$Morphir$Visual$Components$DecisionTree$downArrow(branch1Color)),
+													A2(
+													$mdgriffith$elm_ui$Element$el,
+													_List_fromArray(
+														[
+															$mdgriffith$elm_ui$Element$centerY,
+															A2($mdgriffith$elm_ui$Element$paddingXY, 0, 15)
+														]),
+													branch1Label)
+												]))
+										])),
+									A2(
+									$mdgriffith$elm_ui$Element$column,
+									_List_fromArray(
+										[
+											$mdgriffith$elm_ui$Element$alignTop,
+											$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)
+										]),
+									_List_fromArray(
+										[
+											A2(
+											$mdgriffith$elm_ui$Element$el,
+											_List_fromArray(
+												[
+													$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),
+													$mdgriffith$elm_ui$Element$paddingEach(
+													_Utils_update(
+														$author$project$Morphir$Visual$Components$DecisionTree$noPadding,
+														{top: 10}))
+												]),
+											$author$project$Morphir$Visual$Components$DecisionTree$rightArrow(branch2Color)),
+											A2(
+											$mdgriffith$elm_ui$Element$el,
+											_List_fromArray(
+												[
+													$mdgriffith$elm_ui$Element$centerX,
+													A2($mdgriffith$elm_ui$Element$paddingXY, 20, 5)
+												]),
+											branch2Label)
+										]))
+								])),
+							A2(
+							$mdgriffith$elm_ui$Element$el,
+							_List_fromArray(
+								[
+									$mdgriffith$elm_ui$Element$paddingEach(
+									_Utils_update(
+										$author$project$Morphir$Visual$Components$DecisionTree$noPadding,
+										{right: 40}))
+								]),
+							branch1)
+						])),
+					A2(
+					$mdgriffith$elm_ui$Element$el,
+					_List_fromArray(
+						[$mdgriffith$elm_ui$Element$alignTop]),
+					branch2)
+				]));
+	});
+var $author$project$Morphir$Visual$Components$DecisionTree$toElementColor = function (_v0) {
+	var r = _v0.a;
+	var g = _v0.b;
+	var b = _v0.c;
+	return A3($mdgriffith$elm_ui$Element$rgb255, r, g, b);
+};
+var $author$project$Morphir$Visual$Components$DecisionTree$layoutHelp = F3(
+	function (color, viewValue, rootNode) {
+		var depthOf = F2(
+			function (f, node) {
+				if (node.$ === 'Branch') {
+					var branch = node.a;
+					return A2(
+						depthOf,
+						f,
+						f(branch)) + 1;
+				} else {
+					return 1;
+				}
+			});
+		if (rootNode.$ === 'Branch') {
+			var branch = rootNode.a;
+			var thenColor = function () {
+				var _v4 = branch.conditionValue;
+				if (_v4.$ === 'Just') {
+					var v = _v4.a;
+					return v ? $author$project$Morphir$Visual$Components$DecisionTree$highlightColor._true : $author$project$Morphir$Visual$Components$DecisionTree$highlightColor._default;
+				} else {
+					return $author$project$Morphir$Visual$Components$DecisionTree$highlightColor._default;
+				}
+			}();
+			var elseColor = function () {
+				var _v3 = branch.conditionValue;
+				if (_v3.$ === 'Just') {
+					var v = _v3.a;
+					return v ? $author$project$Morphir$Visual$Components$DecisionTree$highlightColor._default : $author$project$Morphir$Visual$Components$DecisionTree$highlightColor._false;
+				} else {
+					return $author$project$Morphir$Visual$Components$DecisionTree$highlightColor._default;
+				}
+			}();
+			var borderColor = function () {
+				var _v2 = branch.conditionValue;
+				if (_v2.$ === 'Just') {
+					var v = _v2.a;
+					return v ? $author$project$Morphir$Visual$Components$DecisionTree$highlightColor._true : $author$project$Morphir$Visual$Components$DecisionTree$highlightColor._false;
+				} else {
+					return $author$project$Morphir$Visual$Components$DecisionTree$highlightColor._default;
+				}
+			}();
+			return A7(
+				$author$project$Morphir$Visual$Components$DecisionTree$horizontalLayout,
+				A2(
+					$mdgriffith$elm_ui$Element$el,
+					_List_fromArray(
+						[
+							$mdgriffith$elm_ui$Element$Border$width(2),
+							$mdgriffith$elm_ui$Element$Border$rounded(7),
+							$mdgriffith$elm_ui$Element$Border$color(
+							$author$project$Morphir$Visual$Components$DecisionTree$toElementColor(borderColor)),
+							$mdgriffith$elm_ui$Element$padding(10)
+						]),
+					viewValue(branch.condition)),
+				A2(
+					$mdgriffith$elm_ui$Element$el,
+					_List_fromArray(
+						[
+							$mdgriffith$elm_ui$Element$Font$color(
+							$author$project$Morphir$Visual$Components$DecisionTree$toElementColor(thenColor))
+						]),
+					$mdgriffith$elm_ui$Element$text('Yes')),
+				thenColor,
+				A3($author$project$Morphir$Visual$Components$DecisionTree$layoutHelp, thenColor, viewValue, branch.thenBranch),
+				A2(
+					$mdgriffith$elm_ui$Element$el,
+					_List_fromArray(
+						[
+							$mdgriffith$elm_ui$Element$Font$color(
+							$author$project$Morphir$Visual$Components$DecisionTree$toElementColor(elseColor))
+						]),
+					$mdgriffith$elm_ui$Element$text('No')),
+				elseColor,
+				A3($author$project$Morphir$Visual$Components$DecisionTree$layoutHelp, elseColor, viewValue, branch.elseBranch));
+		} else {
+			var value = rootNode.a;
+			return A2(
+				$mdgriffith$elm_ui$Element$el,
+				_List_fromArray(
+					[
+						$mdgriffith$elm_ui$Element$Border$width(2),
+						$mdgriffith$elm_ui$Element$Border$rounded(7),
+						$mdgriffith$elm_ui$Element$Border$color(
+						$author$project$Morphir$Visual$Components$DecisionTree$toElementColor(color)),
+						$mdgriffith$elm_ui$Element$padding(10)
+					]),
+				viewValue(value));
+		}
+	});
+var $author$project$Morphir$Visual$Components$DecisionTree$layout = F2(
+	function (viewValue, rootNode) {
+		return A3($author$project$Morphir$Visual$Components$DecisionTree$layoutHelp, $author$project$Morphir$Visual$Components$DecisionTree$highlightColor._default, viewValue, rootNode);
+	});
+var $author$project$Morphir$Visual$Components$DecisionTree$Branch = function (a) {
+	return {$: 'Branch', a: a};
+};
+var $author$project$Morphir$Visual$Components$DecisionTree$Leaf = function (a) {
+	return {$: 'Leaf', a: a};
+};
+var $author$project$Morphir$Value$Error$BindPatternDidNotMatch = F2(
+	function (a, b) {
+		return {$: 'BindPatternDidNotMatch', a: a, b: b};
+	});
+var $author$project$Morphir$Value$Error$ErrorWhileEvaluatingReference = F2(
+	function (a, b) {
+		return {$: 'ErrorWhileEvaluatingReference', a: a, b: b};
+	});
+var $author$project$Morphir$Value$Error$ErrorWhileEvaluatingVariable = F2(
+	function (a, b) {
+		return {$: 'ErrorWhileEvaluatingVariable', a: a, b: b};
+	});
+var $author$project$Morphir$Value$Error$ExactlyOneArgumentExpected = function (a) {
+	return {$: 'ExactlyOneArgumentExpected', a: a};
+};
+var $author$project$Morphir$Value$Error$FieldNotFound = F2(
+	function (a, b) {
+		return {$: 'FieldNotFound', a: a, b: b};
+	});
+var $author$project$Morphir$Value$Error$IfThenElseConditionShouldEvaluateToBool = F2(
+	function (a, b) {
+		return {$: 'IfThenElseConditionShouldEvaluateToBool', a: a, b: b};
+	});
+var $author$project$Morphir$Value$Error$LambdaArgumentDidNotMatch = function (a) {
+	return {$: 'LambdaArgumentDidNotMatch', a: a};
+};
+var $author$project$Morphir$Value$Error$NoArgumentToPassToLambda = {$: 'NoArgumentToPassToLambda'};
+var $author$project$Morphir$Value$Error$NoPatternsMatch = F2(
+	function (a, b) {
+		return {$: 'NoPatternsMatch', a: a, b: b};
+	});
+var $author$project$Morphir$Value$Error$RecordExpected = F2(
+	function (a, b) {
+		return {$: 'RecordExpected', a: a, b: b};
+	});
+var $author$project$Morphir$Value$Error$ReferenceNotFound = function (a) {
+	return {$: 'ReferenceNotFound', a: a};
+};
+var $author$project$Morphir$Value$Error$VariableNotFound = function (a) {
+	return {$: 'VariableNotFound', a: a};
+};
+var $elm$core$Result$fromMaybe = F2(
+	function (err, maybe) {
+		if (maybe.$ === 'Just') {
+			var v = maybe.a;
+			return $elm$core$Result$Ok(v);
+		} else {
+			return $elm$core$Result$Err(err);
+		}
+	});
+var $author$project$Morphir$Value$Error$PatternMismatch = F2(
+	function (a, b) {
+		return {$: 'PatternMismatch', a: a, b: b};
+	});
+var $elm$core$Result$map2 = F3(
+	function (func, ra, rb) {
+		if (ra.$ === 'Err') {
+			var x = ra.a;
+			return $elm$core$Result$Err(x);
+		} else {
+			var a = ra.a;
+			if (rb.$ === 'Err') {
+				var x = rb.a;
+				return $elm$core$Result$Err(x);
+			} else {
+				var b = rb.a;
+				return $elm$core$Result$Ok(
+					A2(func, a, b));
+			}
+		}
+	});
+var $author$project$Morphir$Value$Interpreter$matchPattern = F2(
+	function (pattern, value) {
+		var error = $elm$core$Result$Err(
+			A2($author$project$Morphir$Value$Error$PatternMismatch, pattern, value));
+		switch (pattern.$) {
+			case 'WildcardPattern':
+				return $elm$core$Result$Ok($elm$core$Dict$empty);
+			case 'AsPattern':
+				var subjectPattern = pattern.b;
+				var alias = pattern.c;
+				return A2(
+					$elm$core$Result$map,
+					function (subjectVariables) {
+						return A3($elm$core$Dict$insert, alias, value, subjectVariables);
+					},
+					A2($author$project$Morphir$Value$Interpreter$matchPattern, subjectPattern, value));
+			case 'TuplePattern':
+				var elemPatterns = pattern.b;
+				if (value.$ === 'Tuple') {
+					var elemValues = value.b;
+					var valueLength = $elm$core$List$length(elemValues);
+					var patternLength = $elm$core$List$length(elemPatterns);
+					return _Utils_eq(patternLength, valueLength) ? A2(
+						$elm$core$Result$map,
+						A2($elm$core$List$foldl, $elm$core$Dict$union, $elm$core$Dict$empty),
+						$author$project$Morphir$ListOfResults$liftFirstError(
+							A3($elm$core$List$map2, $author$project$Morphir$Value$Interpreter$matchPattern, elemPatterns, elemValues))) : error;
+				} else {
+					return error;
+				}
+			case 'ConstructorPattern':
+				var ctorPatternFQName = pattern.b;
+				var argPatterns = pattern.c;
+				var uncurry = function (v) {
+					if (v.$ === 'Apply') {
+						var f = v.b;
+						var a = v.c;
+						var _v3 = uncurry(f);
+						var nestedV = _v3.a;
+						var nestedArgs = _v3.b;
+						return _Utils_Tuple2(
+							nestedV,
+							_Utils_ap(
+								nestedArgs,
+								_List_fromArray(
+									[a])));
+					} else {
+						return _Utils_Tuple2(v, _List_Nil);
+					}
+				};
+				var _v4 = uncurry(value);
+				var ctorValue = _v4.a;
+				var argValues = _v4.b;
+				if (ctorValue.$ === 'Constructor') {
+					var ctorFQName = ctorValue.b;
+					if (_Utils_eq(ctorPatternFQName, ctorFQName)) {
+						var valueLength = $elm$core$List$length(argValues);
+						var patternLength = $elm$core$List$length(argPatterns);
+						return _Utils_eq(patternLength, valueLength) ? A2(
+							$elm$core$Result$map,
+							A2($elm$core$List$foldl, $elm$core$Dict$union, $elm$core$Dict$empty),
+							$author$project$Morphir$ListOfResults$liftFirstError(
+								A3($elm$core$List$map2, $author$project$Morphir$Value$Interpreter$matchPattern, argPatterns, argValues))) : error;
+					} else {
+						return error;
+					}
+				} else {
+					return error;
+				}
+			case 'EmptyListPattern':
+				if ((value.$ === 'List') && (!value.b.b)) {
+					return $elm$core$Result$Ok($elm$core$Dict$empty);
+				} else {
+					return error;
+				}
+			case 'HeadTailPattern':
+				var headPattern = pattern.b;
+				var tailPattern = pattern.c;
+				if ((value.$ === 'List') && value.b.b) {
+					var a = value.a;
+					var _v8 = value.b;
+					var headValue = _v8.a;
+					var tailValue = _v8.b;
+					return A3(
+						$elm$core$Result$map2,
+						$elm$core$Dict$union,
+						A2($author$project$Morphir$Value$Interpreter$matchPattern, headPattern, headValue),
+						A2(
+							$author$project$Morphir$Value$Interpreter$matchPattern,
+							tailPattern,
+							A2($author$project$Morphir$IR$Value$List, a, tailValue)));
+				} else {
+					return error;
+				}
+			case 'LiteralPattern':
+				var matchLiteral = pattern.b;
+				if (value.$ === 'Literal') {
+					var valueLiteral = value.b;
+					return _Utils_eq(matchLiteral, valueLiteral) ? $elm$core$Result$Ok($elm$core$Dict$empty) : error;
+				} else {
+					return error;
+				}
+			default:
+				if (value.$ === 'Unit') {
+					return $elm$core$Result$Ok($elm$core$Dict$empty);
+				} else {
+					return error;
+				}
+		}
+	});
+var $author$project$Morphir$Value$Interpreter$evaluateValue = F4(
+	function (references, variables, _arguments, value) {
+		evaluateValue:
+		while (true) {
+			switch (value.$) {
+				case 'Literal':
+					return $elm$core$Result$Ok(value);
+				case 'Constructor':
+					return $elm$core$Result$Ok(value);
+				case 'Tuple':
+					var elems = value.b;
+					return A2(
+						$elm$core$Result$map,
+						$author$project$Morphir$IR$Value$Tuple(_Utils_Tuple0),
+						$author$project$Morphir$ListOfResults$liftFirstError(
+							A2(
+								$elm$core$List$map,
+								A3($author$project$Morphir$Value$Interpreter$evaluateValue, references, variables, _List_Nil),
+								elems)));
+				case 'List':
+					var items = value.b;
+					return A2(
+						$elm$core$Result$map,
+						$author$project$Morphir$IR$Value$List(_Utils_Tuple0),
+						$author$project$Morphir$ListOfResults$liftFirstError(
+							A2(
+								$elm$core$List$map,
+								A3($author$project$Morphir$Value$Interpreter$evaluateValue, references, variables, _List_Nil),
+								items)));
+				case 'Record':
+					var fields = value.b;
+					return A2(
+						$elm$core$Result$map,
+						$author$project$Morphir$IR$Value$Record(_Utils_Tuple0),
+						$author$project$Morphir$ListOfResults$liftFirstError(
+							A2(
+								$elm$core$List$map,
+								function (_v1) {
+									var fieldName = _v1.a;
+									var fieldValue = _v1.b;
+									return A2(
+										$elm$core$Result$map,
+										$elm$core$Tuple$pair(fieldName),
+										A4($author$project$Morphir$Value$Interpreter$evaluateValue, references, variables, _List_Nil, fieldValue));
+								},
+								fields)));
+				case 'Variable':
+					var varName = value.b;
+					return A2(
+						$elm$core$Result$mapError,
+						$author$project$Morphir$Value$Error$ErrorWhileEvaluatingVariable(varName),
+						A2(
+							$elm$core$Result$andThen,
+							A3($author$project$Morphir$Value$Interpreter$evaluateValue, references, variables, _List_Nil),
+							A2(
+								$elm$core$Result$fromMaybe,
+								$author$project$Morphir$Value$Error$VariableNotFound(varName),
+								A2($elm$core$Dict$get, varName, variables))));
+				case 'Reference':
+					var fQName = value.b;
+					var packageName = fQName.a;
+					var moduleName = fQName.b;
+					var localName = fQName.c;
+					return A2(
+						$elm$core$Result$andThen,
+						function (reference) {
+							if (reference.$ === 'NativeReference') {
+								var nativeFunction = reference.a;
+								return A2(
+									$elm$core$Result$mapError,
+									$author$project$Morphir$Value$Error$ErrorWhileEvaluatingReference(fQName),
+									A2(
+										nativeFunction,
+										A3($author$project$Morphir$Value$Interpreter$evaluateValue, references, variables, _List_Nil),
+										_arguments));
+							} else {
+								var referredValue = reference.a;
+								return A2(
+									$elm$core$Result$mapError,
+									$author$project$Morphir$Value$Error$ErrorWhileEvaluatingReference(fQName),
+									A4($author$project$Morphir$Value$Interpreter$evaluateValue, references, $elm$core$Dict$empty, _arguments, referredValue));
+							}
+						},
+						A2(
+							$elm$core$Result$fromMaybe,
+							$author$project$Morphir$Value$Error$ReferenceNotFound(fQName),
+							A2(
+								$elm$core$Dict$get,
+								_Utils_Tuple3(packageName, moduleName, localName),
+								references)));
+				case 'Field':
+					var subjectValue = value.b;
+					var fieldName = value.c;
+					return A2(
+						$elm$core$Result$andThen,
+						function (evaluatedSubjectValue) {
+							if (evaluatedSubjectValue.$ === 'Record') {
+								var fields = evaluatedSubjectValue.b;
+								return A2(
+									$elm$core$Result$fromMaybe,
+									A2($author$project$Morphir$Value$Error$FieldNotFound, subjectValue, fieldName),
+									A2(
+										$elm$core$Dict$get,
+										fieldName,
+										$elm$core$Dict$fromList(fields)));
+							} else {
+								return $elm$core$Result$Err(
+									A2($author$project$Morphir$Value$Error$RecordExpected, subjectValue, evaluatedSubjectValue));
+							}
+						},
+						A4($author$project$Morphir$Value$Interpreter$evaluateValue, references, variables, _List_Nil, subjectValue));
+				case 'FieldFunction':
+					var fieldName = value.b;
+					if (_arguments.b && (!_arguments.b.b)) {
+						var subjectValue = _arguments.a;
+						return A2(
+							$elm$core$Result$andThen,
+							function (evaluatedSubjectValue) {
+								if (evaluatedSubjectValue.$ === 'Record') {
+									var fields = evaluatedSubjectValue.b;
+									return A2(
+										$elm$core$Result$fromMaybe,
+										A2($author$project$Morphir$Value$Error$FieldNotFound, subjectValue, fieldName),
+										A2(
+											$elm$core$Dict$get,
+											fieldName,
+											$elm$core$Dict$fromList(fields)));
+								} else {
+									return $elm$core$Result$Err(
+										A2($author$project$Morphir$Value$Error$RecordExpected, subjectValue, evaluatedSubjectValue));
+								}
+							},
+							A4($author$project$Morphir$Value$Interpreter$evaluateValue, references, variables, _List_Nil, subjectValue));
+					} else {
+						var other = _arguments;
+						return $elm$core$Result$Err(
+							$author$project$Morphir$Value$Error$ExactlyOneArgumentExpected(other));
+					}
+				case 'Apply':
+					var _function = value.b;
+					var argument = value.c;
+					var $temp$references = references,
+						$temp$variables = variables,
+						$temp$arguments = A2($elm$core$List$cons, argument, _arguments),
+						$temp$value = _function;
+					references = $temp$references;
+					variables = $temp$variables;
+					_arguments = $temp$arguments;
+					value = $temp$value;
+					continue evaluateValue;
+				case 'Lambda':
+					var argumentPattern = value.b;
+					var body = value.c;
+					return A2(
+						$elm$core$Result$andThen,
+						function (argumentVariables) {
+							return A4(
+								$author$project$Morphir$Value$Interpreter$evaluateValue,
+								references,
+								A2($elm$core$Dict$union, argumentVariables, variables),
+								_List_Nil,
+								body);
+						},
+						A2(
+							$elm$core$Result$andThen,
+							function (argumentValue) {
+								return A2(
+									$elm$core$Result$mapError,
+									$author$project$Morphir$Value$Error$LambdaArgumentDidNotMatch,
+									A2($author$project$Morphir$Value$Interpreter$matchPattern, argumentPattern, argumentValue));
+							},
+							A2(
+								$elm$core$Result$fromMaybe,
+								$author$project$Morphir$Value$Error$NoArgumentToPassToLambda,
+								$elm$core$List$head(_arguments))));
+				case 'LetDefinition':
+					var defName = value.b;
+					var def = value.c;
+					var inValue = value.d;
+					return A2(
+						$elm$core$Result$andThen,
+						function (defValue) {
+							return A4(
+								$author$project$Morphir$Value$Interpreter$evaluateValue,
+								references,
+								A3($elm$core$Dict$insert, defName, defValue, variables),
+								_List_Nil,
+								inValue);
+						},
+						A4(
+							$author$project$Morphir$Value$Interpreter$evaluateValue,
+							references,
+							variables,
+							_List_Nil,
+							$author$project$Morphir$IR$Value$definitionToValue(def)));
+				case 'LetRecursion':
+					var defs = value.b;
+					var inValue = value.c;
+					var defVariables = A2(
+						$elm$core$Dict$map,
+						F2(
+							function (_v6, def) {
+								return $author$project$Morphir$IR$Value$definitionToValue(def);
+							}),
+						defs);
+					var $temp$references = references,
+						$temp$variables = A2($elm$core$Dict$union, defVariables, variables),
+						$temp$arguments = _List_Nil,
+						$temp$value = inValue;
+					references = $temp$references;
+					variables = $temp$variables;
+					_arguments = $temp$arguments;
+					value = $temp$value;
+					continue evaluateValue;
+				case 'Destructure':
+					var bindPattern = value.b;
+					var bindValue = value.c;
+					var inValue = value.d;
+					return A2(
+						$elm$core$Result$andThen,
+						function (bindVariables) {
+							return A4(
+								$author$project$Morphir$Value$Interpreter$evaluateValue,
+								references,
+								A2($elm$core$Dict$union, bindVariables, variables),
+								_List_Nil,
+								inValue);
+						},
+						A2(
+							$elm$core$Result$andThen,
+							A2(
+								$elm$core$Basics$composeR,
+								$author$project$Morphir$Value$Interpreter$matchPattern(bindPattern),
+								$elm$core$Result$mapError(
+									$author$project$Morphir$Value$Error$BindPatternDidNotMatch(bindValue))),
+							A4($author$project$Morphir$Value$Interpreter$evaluateValue, references, variables, _List_Nil, bindValue)));
+				case 'IfThenElse':
+					var condition = value.b;
+					var thenBranch = value.c;
+					var elseBranch = value.d;
+					return A2(
+						$elm$core$Result$andThen,
+						function (conditionValue) {
+							if ((conditionValue.$ === 'Literal') && (conditionValue.b.$ === 'BoolLiteral')) {
+								var conditionTrue = conditionValue.b.a;
+								var branchToFollow = conditionTrue ? thenBranch : elseBranch;
+								return A4($author$project$Morphir$Value$Interpreter$evaluateValue, references, variables, _List_Nil, branchToFollow);
+							} else {
+								return $elm$core$Result$Err(
+									A2($author$project$Morphir$Value$Error$IfThenElseConditionShouldEvaluateToBool, condition, conditionValue));
+							}
+						},
+						A4($author$project$Morphir$Value$Interpreter$evaluateValue, references, variables, _List_Nil, condition));
+				case 'PatternMatch':
+					var subjectValue = value.b;
+					var cases = value.c;
+					var findMatch = F2(
+						function (remainingCases, evaluatedSubject) {
+							findMatch:
+							while (true) {
+								if (remainingCases.b) {
+									var _v9 = remainingCases.a;
+									var nextPattern = _v9.a;
+									var nextBody = _v9.b;
+									var restOfCases = remainingCases.b;
+									var _v10 = A2($author$project$Morphir$Value$Interpreter$matchPattern, nextPattern, evaluatedSubject);
+									if (_v10.$ === 'Ok') {
+										var patternVariables = _v10.a;
+										return A4(
+											$author$project$Morphir$Value$Interpreter$evaluateValue,
+											references,
+											A2($elm$core$Dict$union, patternVariables, variables),
+											_List_Nil,
+											nextBody);
+									} else {
+										var $temp$remainingCases = restOfCases,
+											$temp$evaluatedSubject = evaluatedSubject;
+										remainingCases = $temp$remainingCases;
+										evaluatedSubject = $temp$evaluatedSubject;
+										continue findMatch;
+									}
+								} else {
+									return $elm$core$Result$Err(
+										A2(
+											$author$project$Morphir$Value$Error$NoPatternsMatch,
+											evaluatedSubject,
+											A2($elm$core$List$map, $elm$core$Tuple$first, cases)));
+								}
+							}
+						});
+					return A2(
+						$elm$core$Result$andThen,
+						findMatch(cases),
+						A4($author$project$Morphir$Value$Interpreter$evaluateValue, references, variables, _List_Nil, subjectValue));
+				case 'UpdateRecord':
+					var subjectValue = value.b;
+					var fieldUpdates = value.c;
+					return A2(
+						$elm$core$Result$andThen,
+						function (evaluatedSubjectValue) {
+							if (evaluatedSubjectValue.$ === 'Record') {
+								var fields = evaluatedSubjectValue.b;
+								return A2(
+									$elm$core$Result$map,
+									A2(
+										$elm$core$Basics$composeR,
+										$elm$core$Dict$toList,
+										$author$project$Morphir$IR$Value$Record(_Utils_Tuple0)),
+									A3(
+										$elm$core$List$foldl,
+										F2(
+											function (_v12, fieldsResultSoFar) {
+												var fieldName = _v12.a;
+												var newFieldValue = _v12.b;
+												return A2(
+													$elm$core$Result$andThen,
+													function (fieldsSoFar) {
+														return A2(
+															$elm$core$Result$andThen,
+															function (_v13) {
+																return A2(
+																	$elm$core$Result$map,
+																	function (evaluatedNewFieldValue) {
+																		return A3($elm$core$Dict$insert, fieldName, evaluatedNewFieldValue, fieldsSoFar);
+																	},
+																	A4($author$project$Morphir$Value$Interpreter$evaluateValue, references, variables, _List_Nil, newFieldValue));
+															},
+															A2(
+																$elm$core$Result$fromMaybe,
+																A2($author$project$Morphir$Value$Error$FieldNotFound, subjectValue, fieldName),
+																A2($elm$core$Dict$get, fieldName, fieldsSoFar)));
+													},
+													fieldsResultSoFar);
+											}),
+										$elm$core$Result$Ok(
+											$elm$core$Dict$fromList(fields)),
+										fieldUpdates));
+							} else {
+								return $elm$core$Result$Err(
+									A2($author$project$Morphir$Value$Error$RecordExpected, subjectValue, evaluatedSubjectValue));
+							}
+						},
+						A4($author$project$Morphir$Value$Interpreter$evaluateValue, references, variables, _List_Nil, subjectValue));
+				default:
+					return $elm$core$Result$Ok(value);
+			}
+		}
+	});
+var $elm$core$Debug$log = _Debug_log;
+var $author$project$Morphir$Visual$Context$evaluate = F2(
+	function (value, ctx) {
+		return A2(
+			$elm$core$Result$mapError,
+			function (error) {
+				return $elm$core$Debug$toString(
+					A2(
+						$elm$core$Debug$log,
+						$elm$core$String$concat(
+							_List_fromArray(
+								[
+									'Error while evaluating \'',
+									$elm$core$Debug$toString(value),
+									'\''
+								])),
+						error));
+			},
+			A4($author$project$Morphir$Value$Interpreter$evaluateValue, ctx.references, ctx.variables, _List_Nil, value));
+	});
+var $author$project$Morphir$IR$Value$toRawValue = function (value) {
+	return A3(
+		$author$project$Morphir$IR$Value$mapValueAttributes,
+		$elm$core$Basics$always(_Utils_Tuple0),
+		$elm$core$Basics$always(_Utils_Tuple0),
+		value);
+};
+var $elm$core$Result$withDefault = F2(
+	function (def, result) {
+		if (result.$ === 'Ok') {
+			var a = result.a;
+			return a;
+		} else {
+			return def;
+		}
+	});
+var $author$project$Morphir$Visual$ViewIfThenElse$valueToTree = F3(
+	function (ctx, doEval, value) {
+		valueToTree:
+		while (true) {
+			switch (value.$) {
+				case 'IfThenElse':
+					var condition = value.b;
+					var thenBranch = value.c;
+					var elseBranch = value.d;
+					var result = function () {
+						if (doEval) {
+							var _v1 = A2(
+								$author$project$Morphir$Visual$Context$evaluate,
+								$author$project$Morphir$IR$Value$toRawValue(condition),
+								ctx);
+							if (((_v1.$ === 'Ok') && (_v1.a.$ === 'Literal')) && (_v1.a.b.$ === 'BoolLiteral')) {
+								var _v2 = _v1.a;
+								var v = _v2.b.a;
+								return $elm$core$Maybe$Just(v);
+							} else {
+								return $elm$core$Maybe$Nothing;
+							}
+						} else {
+							return $elm$core$Maybe$Nothing;
+						}
+					}();
+					return $author$project$Morphir$Visual$Components$DecisionTree$Branch(
+						{
+							condition: condition,
+							conditionValue: result,
+							elseBranch: A3(
+								$author$project$Morphir$Visual$ViewIfThenElse$valueToTree,
+								ctx,
+								_Utils_eq(
+									result,
+									$elm$core$Maybe$Just(false)),
+								elseBranch),
+							thenBranch: A3(
+								$author$project$Morphir$Visual$ViewIfThenElse$valueToTree,
+								ctx,
+								_Utils_eq(
+									result,
+									$elm$core$Maybe$Just(true)),
+								thenBranch)
+						});
+				case 'LetDefinition':
+					var defName = value.b;
+					var defValue = value.c;
+					var inValue = value.d;
+					var $temp$ctx = _Utils_update(
+						ctx,
+						{
+							variables: A2(
+								$elm$core$Result$withDefault,
+								ctx.variables,
+								A2(
+									$elm$core$Result$map,
+									function (evaluatedDefValue) {
+										return A3($elm$core$Dict$insert, defName, evaluatedDefValue, ctx.variables);
+									},
+									A2(
+										$author$project$Morphir$Visual$Context$evaluate,
+										$author$project$Morphir$IR$Value$definitionToValue(
+											A3(
+												$author$project$Morphir$IR$Value$mapDefinitionAttributes,
+												$elm$core$Basics$identity,
+												$elm$core$Basics$always(_Utils_Tuple0),
+												defValue)),
+										ctx)))
+						}),
+						$temp$doEval = doEval,
+						$temp$value = inValue;
+					ctx = $temp$ctx;
+					doEval = $temp$doEval;
+					value = $temp$value;
+					continue valueToTree;
+				default:
+					return $author$project$Morphir$Visual$Components$DecisionTree$Leaf(value);
+			}
+		}
+	});
+var $author$project$Morphir$Visual$ViewIfThenElse$view = F4(
+	function (ctx, viewValue, value, variables) {
+		return A2(
+			$author$project$Morphir$Visual$Components$DecisionTree$layout,
+			viewValue,
+			A3($author$project$Morphir$Visual$ViewIfThenElse$valueToTree, ctx, true, value));
+	});
+var $author$project$Morphir$Visual$ViewLetDefinition$view = F3(
+	function (viewValue, definitions, inValue) {
+		return A2(
+			$mdgriffith$elm_ui$Element$column,
+			_List_fromArray(
+				[
+					$mdgriffith$elm_ui$Element$spacing(10)
+				]),
+			_List_fromArray(
+				[
+					viewValue(inValue),
+					$mdgriffith$elm_ui$Element$text('where'),
+					A2(
+					$mdgriffith$elm_ui$Element$column,
+					_List_fromArray(
+						[
+							$mdgriffith$elm_ui$Element$moveRight(10),
+							$mdgriffith$elm_ui$Element$spacing(20)
+						]),
+					A2(
+						$elm$core$List$map,
+						function (_v0) {
+							var defName = _v0.a;
+							var def = _v0.b;
+							return A2(
+								$mdgriffith$elm_ui$Element$column,
+								_List_fromArray(
+									[
+										$mdgriffith$elm_ui$Element$spacing(10)
+									]),
+								_List_fromArray(
+									[
+										$mdgriffith$elm_ui$Element$text(
+										$author$project$Morphir$Visual$Common$nameToText(defName) + ' ='),
+										A2(
+										$mdgriffith$elm_ui$Element$el,
+										_List_fromArray(
+											[
+												$mdgriffith$elm_ui$Element$moveRight(10)
+											]),
+										viewValue(def.body))
+									]));
+						},
+						definitions))
+				]));
+	});
+var $author$project$Morphir$IR$AccessControlled$withPublicAccess = function (ac) {
+	var _v0 = ac.access;
+	if (_v0.$ === 'Public') {
+		return $elm$core$Maybe$Just(ac.value);
+	} else {
+		return $elm$core$Maybe$Nothing;
+	}
+};
+var $author$project$Morphir$IR$Type$definitionToSpecification = function (def) {
+	if (def.$ === 'TypeAliasDefinition') {
+		var params = def.a;
+		var exp = def.b;
+		return A2($author$project$Morphir$IR$Type$TypeAliasSpecification, params, exp);
+	} else {
+		var params = def.a;
+		var accessControlledCtors = def.b;
+		var _v1 = $author$project$Morphir$IR$AccessControlled$withPublicAccess(accessControlledCtors);
+		if (_v1.$ === 'Just') {
+			var ctors = _v1.a;
+			return A2($author$project$Morphir$IR$Type$CustomTypeSpecification, params, ctors);
+		} else {
+			return $author$project$Morphir$IR$Type$OpaqueTypeSpecification(params);
+		}
+	}
+};
+var $author$project$Morphir$IR$Value$definitionToSpecification = function (def) {
+	return {
+		inputs: A2(
+			$elm$core$List$map,
+			function (_v0) {
+				var name = _v0.a;
+				var tpe = _v0.c;
+				return _Utils_Tuple2(name, tpe);
+			},
+			def.inputTypes),
+		output: def.outputType
+	};
+};
+var $author$project$Morphir$IR$Documented$map = F2(
+	function (f, d) {
+		return A2(
+			$author$project$Morphir$IR$Documented$Documented,
+			d.doc,
+			f(d.value));
+	});
+var $author$project$Morphir$IR$Module$definitionToSpecification = function (def) {
+	return {
+		types: $elm$core$Dict$fromList(
+			A2(
+				$elm$core$List$filterMap,
+				function (_v0) {
+					var path = _v0.a;
+					var accessControlledType = _v0.b;
+					return A2(
+						$elm$core$Maybe$map,
+						function (typeDef) {
+							return _Utils_Tuple2(
+								path,
+								A2($author$project$Morphir$IR$Documented$map, $author$project$Morphir$IR$Type$definitionToSpecification, typeDef));
+						},
+						$author$project$Morphir$IR$AccessControlled$withPublicAccess(accessControlledType));
+				},
+				$elm$core$Dict$toList(def.types))),
+		values: $elm$core$Dict$fromList(
+			A2(
+				$elm$core$List$filterMap,
+				function (_v1) {
+					var path = _v1.a;
+					var accessControlledValue = _v1.b;
+					return A2(
+						$elm$core$Maybe$map,
+						function (valueDef) {
+							return _Utils_Tuple2(
+								path,
+								$author$project$Morphir$IR$Value$definitionToSpecification(valueDef));
+						},
+						$author$project$Morphir$IR$AccessControlled$withPublicAccess(accessControlledValue));
+				},
+				$elm$core$Dict$toList(def.values)))
+	};
+};
+var $author$project$Morphir$IR$Package$definitionToSpecification = function (def) {
+	return {
+		modules: $elm$core$Dict$fromList(
+			A2(
+				$elm$core$List$filterMap,
+				function (_v0) {
+					var path = _v0.a;
+					var accessControlledModule = _v0.b;
+					return A2(
+						$elm$core$Maybe$map,
+						function (moduleDef) {
+							return _Utils_Tuple2(
+								path,
+								$author$project$Morphir$IR$Module$definitionToSpecification(moduleDef));
+						},
+						$author$project$Morphir$IR$AccessControlled$withPublicAccess(accessControlledModule));
+				},
+				$elm$core$Dict$toList(def.modules)))
+	};
+};
+var $author$project$Morphir$IR$Package$lookupModuleSpecification = F2(
+	function (modulePath, packageSpec) {
+		return A2($elm$core$Dict$get, modulePath, packageSpec.modules);
+	});
+var $author$project$Morphir$IR$Distribution$lookupModuleSpecification = F3(
+	function (packageName, modulePath, distribution) {
+		var libraryPackageName = distribution.a;
+		var dependencies = distribution.b;
+		var packageDef = distribution.c;
+		return _Utils_eq(packageName, libraryPackageName) ? A2(
+			$author$project$Morphir$IR$Package$lookupModuleSpecification,
+			modulePath,
+			$author$project$Morphir$IR$Package$definitionToSpecification(packageDef)) : A2(
+			$elm$core$Maybe$andThen,
+			$author$project$Morphir$IR$Package$lookupModuleSpecification(modulePath),
+			A2($elm$core$Dict$get, packageName, dependencies));
+	});
+var $author$project$Morphir$IR$Module$lookupTypeSpecification = F2(
+	function (localName, moduleSpec) {
+		return A2(
+			$elm$core$Maybe$map,
+			function ($) {
+				return $.value;
+			},
+			A2($elm$core$Dict$get, localName, moduleSpec.types));
+	});
+var $author$project$Morphir$IR$Distribution$lookupTypeSpecification = F4(
+	function (packageName, moduleName, localName, distribution) {
+		return A2(
+			$elm$core$Maybe$andThen,
+			$author$project$Morphir$IR$Module$lookupTypeSpecification(localName),
+			A3($author$project$Morphir$IR$Distribution$lookupModuleSpecification, packageName, moduleName, distribution));
+	});
+var $author$project$Morphir$IR$Value$rewriteValue = F2(
+	function (f, value) {
+		var _v0 = f(value);
+		if (_v0.$ === 'Just') {
+			var newValue = _v0.a;
+			return newValue;
+		} else {
+			switch (value.$) {
+				case 'Tuple':
+					var va = value.a;
+					var elems = value.b;
+					return A2(
+						$author$project$Morphir$IR$Value$Tuple,
+						va,
+						A2(
+							$elm$core$List$map,
+							$author$project$Morphir$IR$Value$rewriteValue(f),
+							elems));
+				case 'List':
+					var va = value.a;
+					var items = value.b;
+					return A2(
+						$author$project$Morphir$IR$Value$List,
+						va,
+						A2(
+							$elm$core$List$map,
+							$author$project$Morphir$IR$Value$rewriteValue(f),
+							items));
+				case 'Record':
+					var va = value.a;
+					var fields = value.b;
+					return A2(
+						$author$project$Morphir$IR$Value$Record,
+						va,
+						A2(
+							$elm$core$List$map,
+							function (_v2) {
+								var n = _v2.a;
+								var v = _v2.b;
+								return _Utils_Tuple2(
+									n,
+									A2($author$project$Morphir$IR$Value$rewriteValue, f, v));
+							},
+							fields));
+				case 'Field':
+					var va = value.a;
+					var subject = value.b;
+					var name = value.c;
+					return A3(
+						$author$project$Morphir$IR$Value$Field,
+						va,
+						A2($author$project$Morphir$IR$Value$rewriteValue, f, subject),
+						name);
+				case 'Apply':
+					var va = value.a;
+					var fun = value.b;
+					var arg = value.c;
+					return A3(
+						$author$project$Morphir$IR$Value$Apply,
+						va,
+						A2($author$project$Morphir$IR$Value$rewriteValue, f, fun),
+						A2($author$project$Morphir$IR$Value$rewriteValue, f, arg));
+				case 'Lambda':
+					var va = value.a;
+					var pattern = value.b;
+					var body = value.c;
+					return A3(
+						$author$project$Morphir$IR$Value$Lambda,
+						va,
+						pattern,
+						A2($author$project$Morphir$IR$Value$rewriteValue, f, body));
+				case 'LetDefinition':
+					var va = value.a;
+					var defName = value.b;
+					var def = value.c;
+					var inValue = value.d;
+					return A4(
+						$author$project$Morphir$IR$Value$LetDefinition,
+						va,
+						defName,
+						_Utils_update(
+							def,
+							{
+								body: A2($author$project$Morphir$IR$Value$rewriteValue, f, def.body)
+							}),
+						A2($author$project$Morphir$IR$Value$rewriteValue, f, inValue));
+				case 'LetRecursion':
+					var va = value.a;
+					var defs = value.b;
+					var inValue = value.c;
+					return A3(
+						$author$project$Morphir$IR$Value$LetRecursion,
+						va,
+						A2(
+							$elm$core$Dict$map,
+							F2(
+								function (_v3, def) {
+									return _Utils_update(
+										def,
+										{
+											body: A2($author$project$Morphir$IR$Value$rewriteValue, f, def.body)
+										});
+								}),
+							defs),
+						A2($author$project$Morphir$IR$Value$rewriteValue, f, inValue));
+				case 'Destructure':
+					var va = value.a;
+					var bindPattern = value.b;
+					var bindValue = value.c;
+					var inValue = value.d;
+					return A4(
+						$author$project$Morphir$IR$Value$Destructure,
+						va,
+						bindPattern,
+						A2($author$project$Morphir$IR$Value$rewriteValue, f, bindValue),
+						A2($author$project$Morphir$IR$Value$rewriteValue, f, inValue));
+				case 'IfThenElse':
+					var va = value.a;
+					var condition = value.b;
+					var thenBranch = value.c;
+					var elseBranch = value.d;
+					return A4(
+						$author$project$Morphir$IR$Value$IfThenElse,
+						va,
+						A2($author$project$Morphir$IR$Value$rewriteValue, f, condition),
+						A2($author$project$Morphir$IR$Value$rewriteValue, f, thenBranch),
+						A2($author$project$Morphir$IR$Value$rewriteValue, f, elseBranch));
+				case 'PatternMatch':
+					var va = value.a;
+					var subject = value.b;
+					var cases = value.c;
+					return A3(
+						$author$project$Morphir$IR$Value$PatternMatch,
+						va,
+						A2($author$project$Morphir$IR$Value$rewriteValue, f, subject),
+						A2(
+							$elm$core$List$map,
+							function (_v4) {
+								var p = _v4.a;
+								var v = _v4.b;
+								return _Utils_Tuple2(
+									p,
+									A2($author$project$Morphir$IR$Value$rewriteValue, f, v));
+							},
+							cases));
+				case 'UpdateRecord':
+					var va = value.a;
+					var subject = value.b;
+					var fields = value.c;
+					return A3(
+						$author$project$Morphir$IR$Value$UpdateRecord,
+						va,
+						A2($author$project$Morphir$IR$Value$rewriteValue, f, subject),
+						A2(
+							$elm$core$List$map,
+							function (_v5) {
+								var n = _v5.a;
+								var v = _v5.b;
+								return _Utils_Tuple2(
+									n,
+									A2($author$project$Morphir$IR$Value$rewriteValue, f, v));
+							},
+							fields));
+				default:
+					return value;
+			}
+		}
+	});
+var $author$project$Morphir$IR$Distribution$resolveRecordConstructors = F2(
+	function (value, distribution) {
+		return A2(
+			$author$project$Morphir$IR$Value$rewriteValue,
+			function (v) {
+				if (v.$ === 'Apply') {
+					var fun = v.b;
+					var lastArg = v.c;
+					var _v1 = A2($author$project$Morphir$IR$Value$uncurryApply, fun, lastArg);
+					var bottomFun = _v1.a;
+					var args = _v1.b;
+					if (bottomFun.$ === 'Constructor') {
+						var va = bottomFun.a;
+						var _v3 = bottomFun.b;
+						var packageName = _v3.a;
+						var moduleName = _v3.b;
+						var localName = _v3.c;
+						return A2(
+							$elm$core$Maybe$andThen,
+							function (typeSpec) {
+								if ((typeSpec.$ === 'TypeAliasSpecification') && (typeSpec.b.$ === 'Record')) {
+									var _v5 = typeSpec.b;
+									var fields = _v5.b;
+									return $elm$core$Maybe$Just(
+										A2(
+											$author$project$Morphir$IR$Value$Record,
+											va,
+											A3(
+												$elm$core$List$map2,
+												$elm$core$Tuple$pair,
+												A2(
+													$elm$core$List$map,
+													function ($) {
+														return $.name;
+													},
+													fields),
+												args)));
+								} else {
+									return $elm$core$Maybe$Nothing;
+								}
+							},
+							A4($author$project$Morphir$IR$Distribution$lookupTypeSpecification, packageName, moduleName, localName, distribution));
+					} else {
+						return $elm$core$Maybe$Nothing;
+					}
+				} else {
+					return $elm$core$Maybe$Nothing;
+				}
+			},
+			value);
+	});
+var $author$project$Morphir$IR$Type$substituteTypeVariables = F2(
+	function (mapping, original) {
+		switch (original.$) {
+			case 'Variable':
+				var a = original.a;
+				var varName = original.b;
+				return A2(
+					$elm$core$Maybe$withDefault,
+					original,
+					A2($elm$core$Dict$get, varName, mapping));
+			case 'Reference':
+				var a = original.a;
+				var fQName = original.b;
+				var typeArgs = original.c;
+				return A3(
+					$author$project$Morphir$IR$Type$Reference,
+					a,
+					fQName,
+					A2(
+						$elm$core$List$map,
+						$author$project$Morphir$IR$Type$substituteTypeVariables(mapping),
+						typeArgs));
+			case 'Tuple':
+				var a = original.a;
+				var elemTypes = original.b;
+				return A2(
+					$author$project$Morphir$IR$Type$Tuple,
+					a,
+					A2(
+						$elm$core$List$map,
+						$author$project$Morphir$IR$Type$substituteTypeVariables(mapping),
+						elemTypes));
+			case 'Record':
+				var a = original.a;
+				var fields = original.b;
+				return A2(
+					$author$project$Morphir$IR$Type$Record,
+					a,
+					A2(
+						$elm$core$List$map,
+						function (field) {
+							return A2(
+								$author$project$Morphir$IR$Type$Field,
+								field.name,
+								A2($author$project$Morphir$IR$Type$substituteTypeVariables, mapping, field.tpe));
+						},
+						fields));
+			case 'ExtensibleRecord':
+				var a = original.a;
+				var name = original.b;
+				var fields = original.c;
+				return A3(
+					$author$project$Morphir$IR$Type$ExtensibleRecord,
+					a,
+					name,
+					A2(
+						$elm$core$List$map,
+						function (field) {
+							return A2(
+								$author$project$Morphir$IR$Type$Field,
+								field.name,
+								A2($author$project$Morphir$IR$Type$substituteTypeVariables, mapping, field.tpe));
+						},
+						fields));
+			case 'Function':
+				var a = original.a;
+				var argType = original.b;
+				var returnType = original.c;
+				return A3(
+					$author$project$Morphir$IR$Type$Function,
+					a,
+					A2($author$project$Morphir$IR$Type$substituteTypeVariables, mapping, argType),
+					A2($author$project$Morphir$IR$Type$substituteTypeVariables, mapping, returnType));
+			default:
+				var a = original.a;
+				return $author$project$Morphir$IR$Type$Unit(a);
+		}
+	});
+var $author$project$Morphir$IR$FQName$toString = function (_v0) {
+	var p = _v0.a;
+	var m = _v0.b;
+	var l = _v0.c;
+	return A2(
+		$elm$core$String$join,
+		':',
+		_List_fromArray(
+			[
+				A3($author$project$Morphir$IR$Path$toString, $author$project$Morphir$IR$Name$toTitleCase, '.', p),
+				A3($author$project$Morphir$IR$Path$toString, $author$project$Morphir$IR$Name$toTitleCase, '.', m),
+				$author$project$Morphir$IR$Name$toCamelCase(l)
+			]));
+};
+var $author$project$Morphir$IR$Distribution$resolveTypeReference = F3(
+	function (fQName, typeArgs, distribution) {
+		var packageName = fQName.a;
+		var moduleName = fQName.b;
+		var localName = fQName.c;
+		var _v0 = A4($author$project$Morphir$IR$Distribution$lookupTypeSpecification, packageName, moduleName, localName, distribution);
+		if (_v0.$ === 'Just') {
+			var typeSpec = _v0.a;
+			switch (typeSpec.$) {
+				case 'TypeAliasSpecification':
+					var paramNames = typeSpec.a;
+					var tpe = typeSpec.b;
+					var paramMapping = $elm$core$Dict$fromList(
+						A3($elm$core$List$map2, $elm$core$Tuple$pair, paramNames, typeArgs));
+					return $elm$core$Result$Ok(
+						A2($author$project$Morphir$IR$Type$substituteTypeVariables, paramMapping, tpe));
+				case 'OpaqueTypeSpecification':
+					return $elm$core$Result$Ok(
+						A3($author$project$Morphir$IR$Type$Reference, _Utils_Tuple0, fQName, typeArgs));
+				default:
+					return $elm$core$Result$Ok(
+						A3($author$project$Morphir$IR$Type$Reference, _Utils_Tuple0, fQName, typeArgs));
+			}
+		} else {
+			return $elm$core$Result$Err(
+				$elm$core$String$concat(
+					_List_fromArray(
+						[
+							'Type specification not found: ',
+							$author$project$Morphir$IR$FQName$toString(fQName)
+						])));
+		}
+	});
+var $mdgriffith$elm_ui$Element$InternalColumn = function (a) {
+	return {$: 'InternalColumn', a: a};
+};
+var $mdgriffith$elm_ui$Internal$Model$GridPosition = function (a) {
+	return {$: 'GridPosition', a: a};
+};
+var $mdgriffith$elm_ui$Internal$Model$GridTemplateStyle = function (a) {
+	return {$: 'GridTemplateStyle', a: a};
+};
+var $elm$core$List$all = F2(
+	function (isOkay, list) {
+		return !A2(
+			$elm$core$List$any,
+			A2($elm$core$Basics$composeL, $elm$core$Basics$not, isOkay),
+			list);
+	});
+var $mdgriffith$elm_ui$Internal$Model$AsGrid = {$: 'AsGrid'};
+var $mdgriffith$elm_ui$Internal$Model$asGrid = $mdgriffith$elm_ui$Internal$Model$AsGrid;
+var $mdgriffith$elm_ui$Internal$Model$getSpacing = F2(
+	function (attrs, _default) {
+		return A2(
+			$elm$core$Maybe$withDefault,
+			_default,
+			A3(
+				$elm$core$List$foldr,
+				F2(
+					function (attr, acc) {
+						if (acc.$ === 'Just') {
+							var x = acc.a;
+							return $elm$core$Maybe$Just(x);
+						} else {
+							if ((attr.$ === 'StyleClass') && (attr.b.$ === 'SpacingStyle')) {
+								var _v2 = attr.b;
+								var x = _v2.b;
+								var y = _v2.c;
+								return $elm$core$Maybe$Just(
+									_Utils_Tuple2(x, y));
+							} else {
+								return $elm$core$Maybe$Nothing;
+							}
+						}
+					}),
+				$elm$core$Maybe$Nothing,
+				attrs));
+	});
+var $mdgriffith$elm_ui$Internal$Flag$gridPosition = $mdgriffith$elm_ui$Internal$Flag$flag(35);
+var $mdgriffith$elm_ui$Internal$Flag$gridTemplate = $mdgriffith$elm_ui$Internal$Flag$flag(34);
+var $elm$core$List$repeatHelp = F3(
+	function (result, n, value) {
+		repeatHelp:
+		while (true) {
+			if (n <= 0) {
+				return result;
+			} else {
+				var $temp$result = A2($elm$core$List$cons, value, result),
+					$temp$n = n - 1,
+					$temp$value = value;
+				result = $temp$result;
+				n = $temp$n;
+				value = $temp$value;
+				continue repeatHelp;
+			}
+		}
+	});
+var $elm$core$List$repeat = F2(
+	function (n, value) {
+		return A3($elm$core$List$repeatHelp, _List_Nil, n, value);
+	});
+var $mdgriffith$elm_ui$Element$tableHelper = F2(
+	function (attrs, config) {
+		var onGrid = F3(
+			function (rowLevel, columnLevel, elem) {
+				return A4(
+					$mdgriffith$elm_ui$Internal$Model$element,
+					$mdgriffith$elm_ui$Internal$Model$asEl,
+					$mdgriffith$elm_ui$Internal$Model$div,
+					_List_fromArray(
+						[
+							A2(
+							$mdgriffith$elm_ui$Internal$Model$StyleClass,
+							$mdgriffith$elm_ui$Internal$Flag$gridPosition,
+							$mdgriffith$elm_ui$Internal$Model$GridPosition(
+								{col: columnLevel, height: 1, row: rowLevel, width: 1}))
+						]),
+					$mdgriffith$elm_ui$Internal$Model$Unkeyed(
+						_List_fromArray(
+							[elem])));
+			});
+		var columnWidth = function (col) {
+			if (col.$ === 'InternalIndexedColumn') {
+				var colConfig = col.a;
+				return colConfig.width;
+			} else {
+				var colConfig = col.a;
+				return colConfig.width;
+			}
+		};
+		var columnHeader = function (col) {
+			if (col.$ === 'InternalIndexedColumn') {
+				var colConfig = col.a;
+				return colConfig.header;
+			} else {
+				var colConfig = col.a;
+				return colConfig.header;
+			}
+		};
+		var maybeHeaders = function (headers) {
+			return A2(
+				$elm$core$List$all,
+				$elm$core$Basics$eq($mdgriffith$elm_ui$Internal$Model$Empty),
+				headers) ? $elm$core$Maybe$Nothing : $elm$core$Maybe$Just(
+				A2(
+					$elm$core$List$indexedMap,
+					F2(
+						function (col, header) {
+							return A3(onGrid, 1, col + 1, header);
+						}),
+					headers));
+		}(
+			A2($elm$core$List$map, columnHeader, config.columns));
+		var add = F3(
+			function (cell, columnConfig, cursor) {
+				if (columnConfig.$ === 'InternalIndexedColumn') {
+					var col = columnConfig.a;
+					return _Utils_update(
+						cursor,
+						{
+							column: cursor.column + 1,
+							elements: A2(
+								$elm$core$List$cons,
+								A3(
+									onGrid,
+									cursor.row,
+									cursor.column,
+									A2(
+										col.view,
+										_Utils_eq(maybeHeaders, $elm$core$Maybe$Nothing) ? (cursor.row - 1) : (cursor.row - 2),
+										cell)),
+								cursor.elements)
+						});
+				} else {
+					var col = columnConfig.a;
+					return {
+						column: cursor.column + 1,
+						elements: A2(
+							$elm$core$List$cons,
+							A3(
+								onGrid,
+								cursor.row,
+								cursor.column,
+								col.view(cell)),
+							cursor.elements),
+						row: cursor.row
+					};
+				}
+			});
+		var build = F3(
+			function (columns, rowData, cursor) {
+				var newCursor = A3(
+					$elm$core$List$foldl,
+					add(rowData),
+					cursor,
+					columns);
+				return {column: 1, elements: newCursor.elements, row: cursor.row + 1};
+			});
+		var children = A3(
+			$elm$core$List$foldl,
+			build(config.columns),
+			{
+				column: 1,
+				elements: _List_Nil,
+				row: _Utils_eq(maybeHeaders, $elm$core$Maybe$Nothing) ? 1 : 2
+			},
+			config.data);
+		var _v0 = A2(
+			$mdgriffith$elm_ui$Internal$Model$getSpacing,
+			attrs,
+			_Utils_Tuple2(0, 0));
+		var sX = _v0.a;
+		var sY = _v0.b;
+		var template = A2(
+			$mdgriffith$elm_ui$Internal$Model$StyleClass,
+			$mdgriffith$elm_ui$Internal$Flag$gridTemplate,
+			$mdgriffith$elm_ui$Internal$Model$GridTemplateStyle(
+				{
+					columns: A2($elm$core$List$map, columnWidth, config.columns),
+					rows: A2(
+						$elm$core$List$repeat,
+						$elm$core$List$length(config.data),
+						$mdgriffith$elm_ui$Internal$Model$Content),
+					spacing: _Utils_Tuple2(
+						$mdgriffith$elm_ui$Element$px(sX),
+						$mdgriffith$elm_ui$Element$px(sY))
+				}));
+		return A4(
+			$mdgriffith$elm_ui$Internal$Model$element,
+			$mdgriffith$elm_ui$Internal$Model$asGrid,
+			$mdgriffith$elm_ui$Internal$Model$div,
+			A2(
+				$elm$core$List$cons,
+				$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),
+				A2($elm$core$List$cons, template, attrs)),
+			$mdgriffith$elm_ui$Internal$Model$Unkeyed(
+				function () {
+					if (maybeHeaders.$ === 'Nothing') {
+						return children.elements;
+					} else {
+						var renderedHeaders = maybeHeaders.a;
+						return _Utils_ap(
+							renderedHeaders,
+							$elm$core$List$reverse(children.elements));
+					}
+				}()));
+	});
+var $mdgriffith$elm_ui$Element$table = F2(
+	function (attrs, config) {
+		return A2(
+			$mdgriffith$elm_ui$Element$tableHelper,
+			attrs,
+			{
+				columns: A2($elm$core$List$map, $mdgriffith$elm_ui$Element$InternalColumn, config.columns),
+				data: config.data
+			});
+	});
+var $author$project$Morphir$Visual$ViewList$view = F4(
+	function (distribution, viewValue, itemType, items) {
+		view:
+		while (true) {
+			switch (itemType.$) {
+				case 'Record':
+					var fields = itemType.b;
+					return A2(
+						$mdgriffith$elm_ui$Element$table,
+						_List_Nil,
+						{
+							columns: A2(
+								$elm$core$List$map,
+								function (field) {
+									return {
+										header: A2(
+											$mdgriffith$elm_ui$Element$el,
+											_List_fromArray(
+												[
+													$mdgriffith$elm_ui$Element$Border$widthEach(
+													{bottom: 1, left: 0, right: 0, top: 0}),
+													A2($mdgriffith$elm_ui$Element$paddingXY, 10, 5)
+												]),
+											$mdgriffith$elm_ui$Element$text(
+												A2(
+													$elm$core$String$join,
+													' ',
+													$author$project$Morphir$IR$Name$toHumanWords(field.name)))),
+										view: function (item) {
+											return A2(
+												$mdgriffith$elm_ui$Element$el,
+												_List_fromArray(
+													[
+														A2($mdgriffith$elm_ui$Element$paddingXY, 10, 5)
+													]),
+												function () {
+													if (item.$ === 'Record') {
+														var fieldValues = item.b;
+														return A2(
+															$elm$core$Maybe$withDefault,
+															$mdgriffith$elm_ui$Element$text('???'),
+															A2(
+																$elm$core$Maybe$map,
+																viewValue,
+																A2(
+																	$elm$core$Dict$get,
+																	field.name,
+																	$elm$core$Dict$fromList(fieldValues))));
+													} else {
+														return viewValue(item);
+													}
+												}());
+										},
+										width: $mdgriffith$elm_ui$Element$fill
+									};
+								},
+								fields),
+							data: A2(
+								$elm$core$List$map,
+								function (item) {
+									return A2($author$project$Morphir$IR$Distribution$resolveRecordConstructors, item, distribution);
+								},
+								items)
+						});
+				case 'Reference':
+					var fQName = itemType.b;
+					var typeArgs = itemType.c;
+					var _v2 = A3($author$project$Morphir$IR$Distribution$resolveTypeReference, fQName, typeArgs, distribution);
+					if (_v2.$ === 'Ok') {
+						var resolvedItemType = _v2.a;
+						var $temp$distribution = distribution,
+							$temp$viewValue = viewValue,
+							$temp$itemType = resolvedItemType,
+							$temp$items = items;
+						distribution = $temp$distribution;
+						viewValue = $temp$viewValue;
+						itemType = $temp$itemType;
+						items = $temp$items;
+						continue view;
+					} else {
+						var error = _v2.a;
+						return $mdgriffith$elm_ui$Element$text(error);
+					}
+				default:
+					return A2(
+						$mdgriffith$elm_ui$Element$table,
+						_List_fromArray(
+							[
+								$mdgriffith$elm_ui$Element$spacing(10)
+							]),
+						{
+							columns: _List_fromArray(
+								[
+									{header: $mdgriffith$elm_ui$Element$none, view: viewValue, width: $mdgriffith$elm_ui$Element$fill}
+								]),
+							data: items
+						});
+			}
+		}
+	});
+var $elm$core$String$fromChar = function (_char) {
+	return A2($elm$core$String$cons, _char, '');
+};
+var $author$project$Morphir$Visual$ViewLiteral$viewLiteralText = F2(
+	function (className, text) {
+		return A2(
+			$mdgriffith$elm_ui$Element$paragraph,
+			_List_fromArray(
+				[
+					$author$project$Morphir$Visual$Common$cssClass(className)
+				]),
+			_List_fromArray(
+				[
+					$mdgriffith$elm_ui$Element$text(text)
+				]));
+	});
+var $author$project$Morphir$Visual$ViewLiteral$view = function (literal) {
+	switch (literal.$) {
+		case 'BoolLiteral':
+			var bool = literal.a;
+			return A2(
+				$author$project$Morphir$Visual$ViewLiteral$viewLiteralText,
+				'bool-literal',
+				function () {
+					if (bool) {
+						return 'True';
+					} else {
+						return 'False';
+					}
+				}());
+		case 'CharLiteral':
+			var _char = literal.a;
+			return A2(
+				$author$project$Morphir$Visual$ViewLiteral$viewLiteralText,
+				'char-literal',
+				$elm$core$String$concat(
+					_List_fromArray(
+						[
+							'\'',
+							$elm$core$String$fromChar(_char),
+							'\''
+						])));
+		case 'StringLiteral':
+			var string = literal.a;
+			return A2(
+				$author$project$Morphir$Visual$ViewLiteral$viewLiteralText,
+				'string-literal',
+				$elm$core$String$concat(
+					_List_fromArray(
+						['\"', string, '\"'])));
+		case 'IntLiteral':
+			var _int = literal.a;
+			return A2(
+				$author$project$Morphir$Visual$ViewLiteral$viewLiteralText,
+				'int-literal',
+				$elm$core$String$fromInt(_int));
+		default:
+			var _float = literal.a;
+			return A2(
+				$author$project$Morphir$Visual$ViewLiteral$viewLiteralText,
+				'float-literal',
+				$elm$core$String$fromFloat(_float));
+	}
+};
+var $author$project$Morphir$Visual$ViewReference$view = F2(
+	function (viewValue, _v0) {
+		var packageName = _v0.a;
+		var moduleName = _v0.b;
+		var localName = _v0.c;
+		return $mdgriffith$elm_ui$Element$text(
+			$author$project$Morphir$Visual$Common$nameToText(localName));
+	});
+var $author$project$Morphir$Visual$ViewTuple$view = F2(
+	function (viewValue, elems) {
+		var tupleCase = function () {
+			var _v0 = $elm$core$List$length(elems);
+			switch (_v0) {
+				case 2:
+					return 'pair';
+				case 3:
+					return 'triple';
+				default:
+					return 'tuple';
+			}
+		}();
+		return A2(
+			$mdgriffith$elm_ui$Element$column,
+			_List_fromArray(
+				[
+					$mdgriffith$elm_ui$Element$spacing(10)
+				]),
+			_List_fromArray(
+				[
+					$mdgriffith$elm_ui$Element$text(tupleCase + ' of'),
+					A2(
+					$mdgriffith$elm_ui$Element$column,
+					_List_fromArray(
+						[
+							$mdgriffith$elm_ui$Element$moveRight(10),
+							$mdgriffith$elm_ui$Element$spacing(10)
+						]),
+					A2($elm$core$List$map, viewValue, elems))
+				]));
+	});
+var $author$project$Morphir$Visual$ViewValue$viewValue = F3(
+	function (ctx, argumentValues, value) {
+		return A3($author$project$Morphir$Visual$ViewValue$viewValueByValueType, ctx, argumentValues, value);
+	});
+var $author$project$Morphir$Visual$ViewValue$viewValueByLanguageFeature = F3(
+	function (ctx, argumentValues, value) {
+		_v0$10:
+		while (true) {
+			switch (value.$) {
+				case 'Literal':
+					var literalType = value.a;
+					var literal = value.b;
+					return $author$project$Morphir$Visual$ViewLiteral$view(literal);
+				case 'Constructor':
+					var tpe = value.a;
+					var fQName = value.b;
+					return A2(
+						$author$project$Morphir$Visual$ViewReference$view,
+						A2($author$project$Morphir$Visual$ViewValue$viewValue, ctx, argumentValues),
+						fQName);
+				case 'Tuple':
+					var tpe = value.a;
+					var elems = value.b;
+					return A2(
+						$author$project$Morphir$Visual$ViewTuple$view,
+						A2($author$project$Morphir$Visual$ViewValue$viewValue, ctx, argumentValues),
+						elems);
+				case 'List':
+					if ((((((((((((((((((((((((value.a.$ === 'Reference') && value.a.b.a.b) && value.a.b.a.a.b) && (value.a.b.a.a.a === 'morphir')) && (!value.a.b.a.a.b.b)) && value.a.b.a.b.b) && value.a.b.a.b.a.b) && (value.a.b.a.b.a.a === 's')) && value.a.b.a.b.a.b.b) && (value.a.b.a.b.a.b.a === 'd')) && value.a.b.a.b.a.b.b.b) && (value.a.b.a.b.a.b.b.a === 'k')) && (!value.a.b.a.b.a.b.b.b.b)) && (!value.a.b.a.b.b.b)) && value.a.b.b.b) && value.a.b.b.a.b) && (value.a.b.b.a.a === 'list')) && (!value.a.b.b.a.b.b)) && (!value.a.b.b.b.b)) && value.a.b.c.b) && (value.a.b.c.a === 'list')) && (!value.a.b.c.b.b)) && value.a.c.b) && (!value.a.c.b.b)) {
+						var _v1 = value.a;
+						var _v2 = _v1.b;
+						var _v3 = _v2.a;
+						var _v4 = _v3.a;
+						var _v5 = _v3.b;
+						var _v6 = _v5.a;
+						var _v7 = _v6.b;
+						var _v8 = _v7.b;
+						var _v9 = _v2.b;
+						var _v10 = _v9.a;
+						var _v11 = _v2.c;
+						var _v12 = _v1.c;
+						var itemType = _v12.a;
+						var items = value.b;
+						return A4(
+							$author$project$Morphir$Visual$ViewList$view,
+							ctx.distribution,
+							A2($author$project$Morphir$Visual$ViewValue$viewValue, ctx, argumentValues),
+							itemType,
+							items);
+					} else {
+						break _v0$10;
+					}
+				case 'Variable':
+					var tpe = value.a;
+					var name = value.b;
+					return A2(
+						$mdgriffith$elm_ui$Element$el,
+						_List_Nil,
+						$mdgriffith$elm_ui$Element$text(
+							$author$project$Morphir$Visual$Common$nameToText(name)));
+				case 'Reference':
+					var tpe = value.a;
+					var fQName = value.b;
+					return A2(
+						$author$project$Morphir$Visual$ViewReference$view,
+						A2($author$project$Morphir$Visual$ViewValue$viewValue, ctx, argumentValues),
+						fQName);
+				case 'Field':
+					var tpe = value.a;
+					var subjectValue = value.b;
+					var fieldName = value.c;
+					return A3(
+						$author$project$Morphir$Visual$ViewField$view,
+						A2($author$project$Morphir$Visual$ViewValue$viewValue, ctx, argumentValues),
+						subjectValue,
+						fieldName);
+				case 'Apply':
+					var fun = value.b;
+					var arg = value.c;
+					var _v13 = A2($author$project$Morphir$IR$Value$uncurryApply, fun, arg);
+					var _function = _v13.a;
+					var args = _v13.b;
+					return A3(
+						$author$project$Morphir$Visual$ViewApply$view,
+						A2($author$project$Morphir$Visual$ViewValue$viewValue, ctx, argumentValues),
+						_function,
+						args);
+				case 'LetDefinition':
+					var tpe = value.a;
+					var unnest = function (v) {
+						if (v.$ === 'LetDefinition') {
+							var defName = v.b;
+							var def = v.c;
+							var inVal = v.d;
+							var _v15 = unnest(inVal);
+							var defs = _v15.a;
+							var bottomIn = _v15.b;
+							return _Utils_Tuple2(
+								A2(
+									$elm$core$List$cons,
+									_Utils_Tuple2(defName, def),
+									defs),
+								bottomIn);
+						} else {
+							var notLet = v;
+							return _Utils_Tuple2(_List_Nil, notLet);
+						}
+					};
+					var _v16 = unnest(value);
+					var definitions = _v16.a;
+					var inValue = _v16.b;
+					return A3(
+						$author$project$Morphir$Visual$ViewLetDefinition$view,
+						A2($author$project$Morphir$Visual$ViewValue$viewValue, ctx, argumentValues),
+						definitions,
+						inValue);
+				case 'IfThenElse':
+					return A4(
+						$author$project$Morphir$Visual$ViewIfThenElse$view,
+						ctx,
+						A2($author$project$Morphir$Visual$ViewValue$viewValue, ctx, argumentValues),
+						value,
+						$elm$core$Dict$empty);
+				default:
+					break _v0$10;
+			}
+		}
+		return A2(
+			$mdgriffith$elm_ui$Element$paragraph,
+			_List_fromArray(
+				[
+					$author$project$Morphir$Visual$Common$cssClass('todo')
+				]),
+			_List_fromArray(
+				[
+					$mdgriffith$elm_ui$Element$text('???')
+				]));
+	});
+var $author$project$Morphir$Visual$ViewValue$viewValueByValueType = F3(
+	function (ctx, argumentValues, typedValue) {
+		var valueType = $author$project$Morphir$IR$Value$valueAttribute(typedValue);
+		if (_Utils_eq(
+			valueType,
+			$author$project$Morphir$IR$SDK$Basics$boolType(_Utils_Tuple0))) {
+			var boolOperatorTree = $author$project$Morphir$Visual$BoolOperatorTree$fromTypedValue(typedValue);
+			return A2(
+				$author$project$Morphir$Visual$ViewBoolOperatorTree$view,
+				A2($author$project$Morphir$Visual$ViewValue$viewValueByLanguageFeature, ctx, argumentValues),
+				boolOperatorTree);
+		} else {
+			return A3($author$project$Morphir$Visual$ViewValue$viewValueByLanguageFeature, ctx, argumentValues, typedValue);
+		}
+	});
+var $author$project$Morphir$Visual$ViewValue$viewDefinition = F3(
+	function (distribution, valueDef, variables) {
+		var ctx = A2($author$project$Morphir$Visual$Context$fromDistributionAndVariables, distribution, variables);
+		return A3($author$project$Morphir$Visual$ViewValue$viewValue, ctx, variables, valueDef.body);
+	});
+var $author$project$Morphir$Web$DevelopMain$viewValue = F3(
+	function (distribution, valueDef, argValues) {
+		var validArgValues = $elm$core$Dict$fromList(
+			A2(
+				$elm$core$List$filterMap,
+				function (_v0) {
+					var argName = _v0.a;
+					var argValueResult = _v0.b;
+					return A2(
+						$elm$core$Maybe$map,
+						$elm$core$Tuple$pair(argName),
+						$elm$core$Result$toMaybe(argValueResult));
+				},
+				$elm$core$Dict$toList(argValues)));
+		return A3($author$project$Morphir$Visual$ViewValue$viewDefinition, distribution, valueDef, validArgValues);
+	});
+var $author$project$Morphir$Web$DevelopMain$SelectFunction = function (a) {
+	return {$: 'SelectFunction', a: a};
+};
+var $elm$html$Html$option = _VirtualDom_node('option');
+var $elm$html$Html$select = _VirtualDom_node('select');
+var $author$project$Morphir$IR$QName$toString = function (_v0) {
+	var moduleName = _v0.a;
+	var localName = _v0.b;
+	return A2(
+		$elm$core$String$join,
+		':',
+		_List_fromArray(
+			[
+				A3($author$project$Morphir$IR$Path$toString, $author$project$Morphir$IR$Name$toTitleCase, '.', moduleName),
+				$author$project$Morphir$IR$Name$toCamelCase(localName)
+			]));
+};
+var $elm$html$Html$Attributes$value = $elm$html$Html$Attributes$stringProperty('value');
+var $author$project$Morphir$Web$DevelopMain$viewValueSelection = function (distro) {
+	var packageName = distro.a;
+	var dependencies = distro.b;
+	var packageDefinition = distro.c;
+	var options = A2(
+		$elm$core$List$concatMap,
+		function (_v1) {
+			var moduleName = _v1.a;
+			var accessControlledModuleDef = _v1.b;
+			return A2(
+				$elm$core$List$map,
+				function (_v2) {
+					var valueName = _v2.a;
+					var valueDef = _v2.b;
+					var valueNameText = A2(
+						$elm$core$String$join,
+						'.',
+						_List_fromArray(
+							[
+								A3($author$project$Morphir$IR$Path$toString, $author$project$Morphir$IR$Name$toTitleCase, '.', moduleName),
+								$author$project$Morphir$IR$Name$toCamelCase(valueName)
+							]));
+					var valueID = $author$project$Morphir$IR$QName$toString(
+						A2($author$project$Morphir$IR$QName$fromName, moduleName, valueName));
+					return A2(
+						$elm$html$Html$option,
+						_List_fromArray(
+							[
+								$elm$html$Html$Attributes$value(valueID)
+							]),
+						_List_fromArray(
+							[
+								$elm$html$Html$text(valueNameText)
+							]));
+				},
+				$elm$core$Dict$toList(accessControlledModuleDef.value.values));
+		},
+		$elm$core$Dict$toList(packageDefinition.modules));
+	return A2(
+		$mdgriffith$elm_ui$Element$column,
+		_List_fromArray(
+			[
+				$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)
+			]),
+		_List_fromArray(
+			[
+				$mdgriffith$elm_ui$Element$html(
+				A2(
+					$elm$html$Html$select,
+					_List_fromArray(
+						[
+							A2(
+							$elm$html$Html$Events$on,
+							'change',
+							A2(
+								$elm$json$Json$Decode$map,
+								$author$project$Morphir$Web$DevelopMain$SelectFunction,
+								A2(
+									$elm$json$Json$Decode$field,
+									'target',
+									A2($elm$json$Json$Decode$field, 'value', $elm$json$Json$Decode$string))))
+						]),
+					options))
+			]));
+};
+var $author$project$Morphir$Web$DevelopMain$viewResult = function (model) {
+	switch (model.$) {
+		case 'HttpFailure':
+			var error = model.a;
+			var message = function () {
+				switch (error.$) {
+					case 'BadUrl':
+						var string = error.a;
+						return 'Bad URL was supplied: ' + string;
+					case 'Timeout':
+						return 'Request timed out!';
+					case 'NetworkError':
+						return 'Network error!';
+					case 'BadStatus':
+						var _int = error.a;
+						return 'Request failed with error code ' + $elm$core$String$fromInt(_int);
+					default:
+						var string = error.a;
+						return 'Error while decoding response body: ' + string;
+				}
+			}();
+			return A2(
+				$mdgriffith$elm_ui$Element$column,
+				_List_Nil,
+				_List_fromArray(
+					[
+						$mdgriffith$elm_ui$Element$text(message)
+					]));
+		case 'WaitingForResponse':
+			return $mdgriffith$elm_ui$Element$text('Running morphir make  ...');
+		case 'MakeComplete':
+			var distributionResult = model.a;
+			if (distributionResult.$ === 'Ok') {
+				var distribution = distributionResult.a;
+				return A2(
+					$mdgriffith$elm_ui$Element$column,
+					_List_fromArray(
+						[
+							$mdgriffith$elm_ui$Element$spacing(20)
+						]),
+					_List_fromArray(
+						[
+							A2(
+							$mdgriffith$elm_ui$Element$el,
+							_List_fromArray(
+								[
+									$mdgriffith$elm_ui$Element$Font$size(18)
+								]),
+							$mdgriffith$elm_ui$Element$text('Function to visualize: ')),
+							$author$project$Morphir$Web$DevelopMain$viewValueSelection(distribution)
+						]));
+			} else {
+				var error = distributionResult.a;
+				return $mdgriffith$elm_ui$Element$text(
+					'Error: ' + $elm$core$Debug$toString(error));
+			}
+		default:
+			var distribution = model.a;
+			var qName = model.b;
+			var valueDef = model.c;
+			var argValues = model.d;
+			return A2(
+				$mdgriffith$elm_ui$Element$column,
+				_List_fromArray(
+					[
+						$mdgriffith$elm_ui$Element$spacing(20)
+					]),
+				_List_fromArray(
+					[
+						A2(
+						$mdgriffith$elm_ui$Element$el,
+						_List_fromArray(
+							[
+								$mdgriffith$elm_ui$Element$Font$size(18)
+							]),
+						$mdgriffith$elm_ui$Element$text('Function to visualize: ')),
+						$author$project$Morphir$Web$DevelopMain$viewValueSelection(distribution),
+						A2(
+						$mdgriffith$elm_ui$Element$el,
+						_List_fromArray(
+							[
+								$mdgriffith$elm_ui$Element$Font$size(18)
+							]),
+						$mdgriffith$elm_ui$Element$text('Arguments: ')),
+						A2($author$project$Morphir$Web$DevelopMain$viewArgumentEditors, valueDef, argValues),
+						A2(
+						$mdgriffith$elm_ui$Element$el,
+						_List_fromArray(
+							[
+								$mdgriffith$elm_ui$Element$Font$size(18)
+							]),
+						$mdgriffith$elm_ui$Element$text('Visualization: ')),
+						A3($author$project$Morphir$Web$DevelopMain$viewValue, distribution, valueDef, argValues)
+					]));
+	}
+};
+var $author$project$Morphir$Web$DevelopMain$view = function (model) {
+	return A3(
+		$mdgriffith$elm_ui$Element$layoutWith,
+		{options: _List_Nil},
+		_List_fromArray(
+			[
+				$mdgriffith$elm_ui$Element$Font$family(
+				_List_fromArray(
+					[
+						$mdgriffith$elm_ui$Element$Font$external(
+						{name: 'Poppins', url: 'https://fonts.googleapis.com/css2?family=Poppins:wght@300&display=swap'}),
+						$mdgriffith$elm_ui$Element$Font$sansSerif
+					])),
+				$mdgriffith$elm_ui$Element$Font$size(
+				$author$project$Morphir$Web$DevelopMain$scaled(2)),
+				$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)
+			]),
+		A2(
+			$mdgriffith$elm_ui$Element$column,
+			_List_fromArray(
+				[
+					$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)
+				]),
+			_List_fromArray(
+				[
+					A2(
+					$mdgriffith$elm_ui$Element$row,
+					_List_fromArray(
+						[
+							$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),
+							$mdgriffith$elm_ui$Element$padding(10),
+							$mdgriffith$elm_ui$Element$Background$color($author$project$Morphir$Web$Theme$Light$blue)
+						]),
+					_List_fromArray(
+						[
+							A2(
+							$mdgriffith$elm_ui$Element$row,
+							_List_fromArray(
+								[
+									$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)
+								]),
+							_List_fromArray(
+								[
+									A2(
+									$mdgriffith$elm_ui$Element$image,
+									_List_fromArray(
+										[
+											$mdgriffith$elm_ui$Element$height(
+											$mdgriffith$elm_ui$Element$px(50))
+										]),
+									{description: 'Morphir Logo', src: 'assets/2020_Morphir_Logo_Icon_WHT.svg'}),
+									A2(
+									$mdgriffith$elm_ui$Element$el,
+									_List_fromArray(
+										[
+											A2($mdgriffith$elm_ui$Element$paddingXY, 10, 0)
+										]),
+									A2($author$project$Morphir$Web$DevelopMain$theme.heading, 1, 'Morphir Development Server'))
+								])),
+							function () {
+							if (model.$ === 'WaitingForResponse') {
+								return $author$project$Morphir$Web$DevelopMain$theme.disabledButton('Loading ...');
+							} else {
+								return $author$project$Morphir$Web$DevelopMain$theme.button(
+									{label: 'Reload', onPress: $author$project$Morphir$Web$DevelopMain$Make});
+							}
+						}()
+						])),
+					A2(
+					$mdgriffith$elm_ui$Element$el,
+					_List_fromArray(
+						[
+							$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),
+							$mdgriffith$elm_ui$Element$padding(10)
+						]),
+					$author$project$Morphir$Web$DevelopMain$viewResult(model))
+				])));
+};
+var $author$project$Morphir$Web$DevelopMain$main = $elm$browser$Browser$element(
+	{init: $author$project$Morphir$Web$DevelopMain$init, subscriptions: $author$project$Morphir$Web$DevelopMain$subscriptions, update: $author$project$Morphir$Web$DevelopMain$update, view: $author$project$Morphir$Web$DevelopMain$view});
+_Platform_export({'Morphir':{'Web':{'DevelopMain':{'init':$author$project$Morphir$Web$DevelopMain$main(
+	$elm$json$Json$Decode$succeed(_Utils_Tuple0))(0)}}}});}(this));
\ No newline at end of file
diff --git a/example_app_model/doc/try-morphir.html b/example_app_model/doc/try-morphir.html
new file mode 100644
index 0000000..62a71ff
--- /dev/null
+++ b/example_app_model/doc/try-morphir.html
@@ -0,0 +1,39981 @@
+
+
+
+  
+  Morphir.Web.TryMorphir
+  
+
+
+
+
+

+
+
+
+
+
\ No newline at end of file
diff --git a/example_app_model/morphir-ir.json b/example_app_model/morphir-ir.json
new file mode 100644
index 0000000..be21acf
--- /dev/null
+++ b/example_app_model/morphir-ir.json
@@ -0,0 +1,2596 @@
+{
+    "formatVersion": 1,
+    "distribution": [
+        "library",
+        [
+            [
+                "morphir"
+            ],
+            [
+                "example"
+            ],
+            [
+                "app"
+            ]
+        ],
+        [],
+        {
+            "modules": [
+                {
+                    "name": [
+                        [
+                            "rentals"
+                        ]
+                    ],
+                    "def": [
+                        "public",
+                        {
+                            "types": [],
+                            "values": [
+                                [
+                                    [
+                                        "request"
+                                    ],
+                                    [
+                                        "public",
+                                        {
+                                            "inputTypes": [
+                                                [
+                                                    [
+                                                        "inventory"
+                                                    ],
+                                                    [
+                                                        "reference",
+                                                        {},
+                                                        [
+                                                            [
+                                                                [
+                                                                    "morphir"
+                                                                ],
+                                                                [
+                                                                    "s",
+                                                                    "d",
+                                                                    "k"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                [
+                                                                    "basics"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                "int"
+                                                            ]
+                                                        ],
+                                                        []
+                                                    ],
+                                                    [
+                                                        "reference",
+                                                        {},
+                                                        [
+                                                            [
+                                                                [
+                                                                    "morphir"
+                                                                ],
+                                                                [
+                                                                    "s",
+                                                                    "d",
+                                                                    "k"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                [
+                                                                    "basics"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                "int"
+                                                            ]
+                                                        ],
+                                                        []
+                                                    ]
+                                                ],
+                                                [
+                                                    [
+                                                        "reservations"
+                                                    ],
+                                                    [
+                                                        "reference",
+                                                        {},
+                                                        [
+                                                            [
+                                                                [
+                                                                    "morphir"
+                                                                ],
+                                                                [
+                                                                    "s",
+                                                                    "d",
+                                                                    "k"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                [
+                                                                    "basics"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                "int"
+                                                            ]
+                                                        ],
+                                                        []
+                                                    ],
+                                                    [
+                                                        "reference",
+                                                        {},
+                                                        [
+                                                            [
+                                                                [
+                                                                    "morphir"
+                                                                ],
+                                                                [
+                                                                    "s",
+                                                                    "d",
+                                                                    "k"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                [
+                                                                    "basics"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                "int"
+                                                            ]
+                                                        ],
+                                                        []
+                                                    ]
+                                                ],
+                                                [
+                                                    [
+                                                        "returns"
+                                                    ],
+                                                    [
+                                                        "reference",
+                                                        {},
+                                                        [
+                                                            [
+                                                                [
+                                                                    "morphir"
+                                                                ],
+                                                                [
+                                                                    "s",
+                                                                    "d",
+                                                                    "k"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                [
+                                                                    "basics"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                "int"
+                                                            ]
+                                                        ],
+                                                        []
+                                                    ],
+                                                    [
+                                                        "reference",
+                                                        {},
+                                                        [
+                                                            [
+                                                                [
+                                                                    "morphir"
+                                                                ],
+                                                                [
+                                                                    "s",
+                                                                    "d",
+                                                                    "k"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                [
+                                                                    "basics"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                "int"
+                                                            ]
+                                                        ],
+                                                        []
+                                                    ]
+                                                ],
+                                                [
+                                                    [
+                                                        "requested",
+                                                        "amount"
+                                                    ],
+                                                    [
+                                                        "reference",
+                                                        {},
+                                                        [
+                                                            [
+                                                                [
+                                                                    "morphir"
+                                                                ],
+                                                                [
+                                                                    "s",
+                                                                    "d",
+                                                                    "k"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                [
+                                                                    "basics"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                "int"
+                                                            ]
+                                                        ],
+                                                        []
+                                                    ],
+                                                    [
+                                                        "reference",
+                                                        {},
+                                                        [
+                                                            [
+                                                                [
+                                                                    "morphir"
+                                                                ],
+                                                                [
+                                                                    "s",
+                                                                    "d",
+                                                                    "k"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                [
+                                                                    "basics"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                "int"
+                                                            ]
+                                                        ],
+                                                        []
+                                                    ]
+                                                ],
+                                                [
+                                                    [
+                                                        "allow",
+                                                        "partial"
+                                                    ],
+                                                    [
+                                                        "reference",
+                                                        {},
+                                                        [
+                                                            [
+                                                                [
+                                                                    "morphir"
+                                                                ],
+                                                                [
+                                                                    "s",
+                                                                    "d",
+                                                                    "k"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                [
+                                                                    "basics"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                "bool"
+                                                            ]
+                                                        ],
+                                                        []
+                                                    ],
+                                                    [
+                                                        "reference",
+                                                        {},
+                                                        [
+                                                            [
+                                                                [
+                                                                    "morphir"
+                                                                ],
+                                                                [
+                                                                    "s",
+                                                                    "d",
+                                                                    "k"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                [
+                                                                    "basics"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                "bool"
+                                                            ]
+                                                        ],
+                                                        []
+                                                    ]
+                                                ]
+                                            ],
+                                            "outputType": [
+                                                "reference",
+                                                {},
+                                                [
+                                                    [
+                                                        [
+                                                            "morphir"
+                                                        ],
+                                                        [
+                                                            "s",
+                                                            "d",
+                                                            "k"
+                                                        ]
+                                                    ],
+                                                    [
+                                                        [
+                                                            "result"
+                                                        ]
+                                                    ],
+                                                    [
+                                                        "result"
+                                                    ]
+                                                ],
+                                                [
+                                                    [
+                                                        "reference",
+                                                        {},
+                                                        [
+                                                            [
+                                                                [
+                                                                    "morphir"
+                                                                ],
+                                                                [
+                                                                    "s",
+                                                                    "d",
+                                                                    "k"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                [
+                                                                    "string"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                "string"
+                                                            ]
+                                                        ],
+                                                        []
+                                                    ],
+                                                    [
+                                                        "reference",
+                                                        {},
+                                                        [
+                                                            [
+                                                                [
+                                                                    "morphir"
+                                                                ],
+                                                                [
+                                                                    "s",
+                                                                    "d",
+                                                                    "k"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                [
+                                                                    "basics"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                "int"
+                                                            ]
+                                                        ],
+                                                        []
+                                                    ]
+                                                ]
+                                            ],
+                                            "body": [
+                                                "let_definition",
+                                                [
+                                                    "reference",
+                                                    {},
+                                                    [
+                                                        [
+                                                            [
+                                                                "morphir"
+                                                            ],
+                                                            [
+                                                                "s",
+                                                                "d",
+                                                                "k"
+                                                            ]
+                                                        ],
+                                                        [
+                                                            [
+                                                                "result"
+                                                            ]
+                                                        ],
+                                                        [
+                                                            "result"
+                                                        ]
+                                                    ],
+                                                    [
+                                                        [
+                                                            "reference",
+                                                            {},
+                                                            [
+                                                                [
+                                                                    [
+                                                                        "morphir"
+                                                                    ],
+                                                                    [
+                                                                        "s",
+                                                                        "d",
+                                                                        "k"
+                                                                    ]
+                                                                ],
+                                                                [
+                                                                    [
+                                                                        "string"
+                                                                    ]
+                                                                ],
+                                                                [
+                                                                    "string"
+                                                                ]
+                                                            ],
+                                                            []
+                                                        ],
+                                                        [
+                                                            "reference",
+                                                            {},
+                                                            [
+                                                                [
+                                                                    [
+                                                                        "morphir"
+                                                                    ],
+                                                                    [
+                                                                        "s",
+                                                                        "d",
+                                                                        "k"
+                                                                    ]
+                                                                ],
+                                                                [
+                                                                    [
+                                                                        "basics"
+                                                                    ]
+                                                                ],
+                                                                [
+                                                                    "int"
+                                                                ]
+                                                            ],
+                                                            []
+                                                        ]
+                                                    ]
+                                                ],
+                                                [
+                                                    "availability"
+                                                ],
+                                                {
+                                                    "inputTypes": [],
+                                                    "outputType": [
+                                                        "reference",
+                                                        {},
+                                                        [
+                                                            [
+                                                                [
+                                                                    "morphir"
+                                                                ],
+                                                                [
+                                                                    "s",
+                                                                    "d",
+                                                                    "k"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                [
+                                                                    "basics"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                "int"
+                                                            ]
+                                                        ],
+                                                        []
+                                                    ],
+                                                    "body": [
+                                                        "apply",
+                                                        [
+                                                            "reference",
+                                                            {},
+                                                            [
+                                                                [
+                                                                    [
+                                                                        "morphir"
+                                                                    ],
+                                                                    [
+                                                                        "s",
+                                                                        "d",
+                                                                        "k"
+                                                                    ]
+                                                                ],
+                                                                [
+                                                                    [
+                                                                        "basics"
+                                                                    ]
+                                                                ],
+                                                                [
+                                                                    "int"
+                                                                ]
+                                                            ],
+                                                            []
+                                                        ],
+                                                        [
+                                                            "apply",
+                                                            [
+                                                                "function",
+                                                                {},
+                                                                [
+                                                                    "reference",
+                                                                    {},
+                                                                    [
+                                                                        [
+                                                                            [
+                                                                                "morphir"
+                                                                            ],
+                                                                            [
+                                                                                "s",
+                                                                                "d",
+                                                                                "k"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            [
+                                                                                "basics"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            "int"
+                                                                        ]
+                                                                    ],
+                                                                    []
+                                                                ],
+                                                                [
+                                                                    "reference",
+                                                                    {},
+                                                                    [
+                                                                        [
+                                                                            [
+                                                                                "morphir"
+                                                                            ],
+                                                                            [
+                                                                                "s",
+                                                                                "d",
+                                                                                "k"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            [
+                                                                                "basics"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            "int"
+                                                                        ]
+                                                                    ],
+                                                                    []
+                                                                ]
+                                                            ],
+                                                            [
+                                                                "reference",
+                                                                [
+                                                                    "function",
+                                                                    {},
+                                                                    [
+                                                                        "reference",
+                                                                        {},
+                                                                        [
+                                                                            [
+                                                                                [
+                                                                                    "morphir"
+                                                                                ],
+                                                                                [
+                                                                                    "s",
+                                                                                    "d",
+                                                                                    "k"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                [
+                                                                                    "basics"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                "int"
+                                                                            ]
+                                                                        ],
+                                                                        []
+                                                                    ],
+                                                                    [
+                                                                        "function",
+                                                                        {},
+                                                                        [
+                                                                            "reference",
+                                                                            {},
+                                                                            [
+                                                                                [
+                                                                                    [
+                                                                                        "morphir"
+                                                                                    ],
+                                                                                    [
+                                                                                        "s",
+                                                                                        "d",
+                                                                                        "k"
+                                                                                    ]
+                                                                                ],
+                                                                                [
+                                                                                    [
+                                                                                        "basics"
+                                                                                    ]
+                                                                                ],
+                                                                                [
+                                                                                    "int"
+                                                                                ]
+                                                                            ],
+                                                                            []
+                                                                        ],
+                                                                        [
+                                                                            "reference",
+                                                                            {},
+                                                                            [
+                                                                                [
+                                                                                    [
+                                                                                        "morphir"
+                                                                                    ],
+                                                                                    [
+                                                                                        "s",
+                                                                                        "d",
+                                                                                        "k"
+                                                                                    ]
+                                                                                ],
+                                                                                [
+                                                                                    [
+                                                                                        "basics"
+                                                                                    ]
+                                                                                ],
+                                                                                [
+                                                                                    "int"
+                                                                                ]
+                                                                            ],
+                                                                            []
+                                                                        ]
+                                                                    ]
+                                                                ],
+                                                                [
+                                                                    [
+                                                                        [
+                                                                            "morphir"
+                                                                        ],
+                                                                        [
+                                                                            "s",
+                                                                            "d",
+                                                                            "k"
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        [
+                                                                            "basics"
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        "add"
+                                                                    ]
+                                                                ]
+                                                            ],
+                                                            [
+                                                                "apply",
+                                                                [
+                                                                    "reference",
+                                                                    {},
+                                                                    [
+                                                                        [
+                                                                            [
+                                                                                "morphir"
+                                                                            ],
+                                                                            [
+                                                                                "s",
+                                                                                "d",
+                                                                                "k"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            [
+                                                                                "basics"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            "int"
+                                                                        ]
+                                                                    ],
+                                                                    []
+                                                                ],
+                                                                [
+                                                                    "apply",
+                                                                    [
+                                                                        "function",
+                                                                        {},
+                                                                        [
+                                                                            "reference",
+                                                                            {},
+                                                                            [
+                                                                                [
+                                                                                    [
+                                                                                        "morphir"
+                                                                                    ],
+                                                                                    [
+                                                                                        "s",
+                                                                                        "d",
+                                                                                        "k"
+                                                                                    ]
+                                                                                ],
+                                                                                [
+                                                                                    [
+                                                                                        "basics"
+                                                                                    ]
+                                                                                ],
+                                                                                [
+                                                                                    "int"
+                                                                                ]
+                                                                            ],
+                                                                            []
+                                                                        ],
+                                                                        [
+                                                                            "reference",
+                                                                            {},
+                                                                            [
+                                                                                [
+                                                                                    [
+                                                                                        "morphir"
+                                                                                    ],
+                                                                                    [
+                                                                                        "s",
+                                                                                        "d",
+                                                                                        "k"
+                                                                                    ]
+                                                                                ],
+                                                                                [
+                                                                                    [
+                                                                                        "basics"
+                                                                                    ]
+                                                                                ],
+                                                                                [
+                                                                                    "int"
+                                                                                ]
+                                                                            ],
+                                                                            []
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        "reference",
+                                                                        [
+                                                                            "function",
+                                                                            {},
+                                                                            [
+                                                                                "reference",
+                                                                                {},
+                                                                                [
+                                                                                    [
+                                                                                        [
+                                                                                            "morphir"
+                                                                                        ],
+                                                                                        [
+                                                                                            "s",
+                                                                                            "d",
+                                                                                            "k"
+                                                                                        ]
+                                                                                    ],
+                                                                                    [
+                                                                                        [
+                                                                                            "basics"
+                                                                                        ]
+                                                                                    ],
+                                                                                    [
+                                                                                        "int"
+                                                                                    ]
+                                                                                ],
+                                                                                []
+                                                                            ],
+                                                                            [
+                                                                                "function",
+                                                                                {},
+                                                                                [
+                                                                                    "reference",
+                                                                                    {},
+                                                                                    [
+                                                                                        [
+                                                                                            [
+                                                                                                "morphir"
+                                                                                            ],
+                                                                                            [
+                                                                                                "s",
+                                                                                                "d",
+                                                                                                "k"
+                                                                                            ]
+                                                                                        ],
+                                                                                        [
+                                                                                            [
+                                                                                                "basics"
+                                                                                            ]
+                                                                                        ],
+                                                                                        [
+                                                                                            "int"
+                                                                                        ]
+                                                                                    ],
+                                                                                    []
+                                                                                ],
+                                                                                [
+                                                                                    "reference",
+                                                                                    {},
+                                                                                    [
+                                                                                        [
+                                                                                            [
+                                                                                                "morphir"
+                                                                                            ],
+                                                                                            [
+                                                                                                "s",
+                                                                                                "d",
+                                                                                                "k"
+                                                                                            ]
+                                                                                        ],
+                                                                                        [
+                                                                                            [
+                                                                                                "basics"
+                                                                                            ]
+                                                                                        ],
+                                                                                        [
+                                                                                            "int"
+                                                                                        ]
+                                                                                    ],
+                                                                                    []
+                                                                                ]
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            [
+                                                                                [
+                                                                                    "morphir"
+                                                                                ],
+                                                                                [
+                                                                                    "s",
+                                                                                    "d",
+                                                                                    "k"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                [
+                                                                                    "basics"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                "subtract"
+                                                                            ]
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        "variable",
+                                                                        [
+                                                                            "reference",
+                                                                            {},
+                                                                            [
+                                                                                [
+                                                                                    [
+                                                                                        "morphir"
+                                                                                    ],
+                                                                                    [
+                                                                                        "s",
+                                                                                        "d",
+                                                                                        "k"
+                                                                                    ]
+                                                                                ],
+                                                                                [
+                                                                                    [
+                                                                                        "basics"
+                                                                                    ]
+                                                                                ],
+                                                                                [
+                                                                                    "int"
+                                                                                ]
+                                                                            ],
+                                                                            []
+                                                                        ],
+                                                                        [
+                                                                            "inventory"
+                                                                        ]
+                                                                    ]
+                                                                ],
+                                                                [
+                                                                    "variable",
+                                                                    [
+                                                                        "reference",
+                                                                        {},
+                                                                        [
+                                                                            [
+                                                                                [
+                                                                                    "morphir"
+                                                                                ],
+                                                                                [
+                                                                                    "s",
+                                                                                    "d",
+                                                                                    "k"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                [
+                                                                                    "basics"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                "int"
+                                                                            ]
+                                                                        ],
+                                                                        []
+                                                                    ],
+                                                                    [
+                                                                        "reservations"
+                                                                    ]
+                                                                ]
+                                                            ]
+                                                        ],
+                                                        [
+                                                            "variable",
+                                                            [
+                                                                "reference",
+                                                                {},
+                                                                [
+                                                                    [
+                                                                        [
+                                                                            "morphir"
+                                                                        ],
+                                                                        [
+                                                                            "s",
+                                                                            "d",
+                                                                            "k"
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        [
+                                                                            "basics"
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        "int"
+                                                                    ]
+                                                                ],
+                                                                []
+                                                            ],
+                                                            [
+                                                                "returns"
+                                                            ]
+                                                        ]
+                                                    ]
+                                                },
+                                                [
+                                                    "if_then_else",
+                                                    [
+                                                        "reference",
+                                                        {},
+                                                        [
+                                                            [
+                                                                [
+                                                                    "morphir"
+                                                                ],
+                                                                [
+                                                                    "s",
+                                                                    "d",
+                                                                    "k"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                [
+                                                                    "result"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                "result"
+                                                            ]
+                                                        ],
+                                                        [
+                                                            [
+                                                                "reference",
+                                                                {},
+                                                                [
+                                                                    [
+                                                                        [
+                                                                            "morphir"
+                                                                        ],
+                                                                        [
+                                                                            "s",
+                                                                            "d",
+                                                                            "k"
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        [
+                                                                            "string"
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        "string"
+                                                                    ]
+                                                                ],
+                                                                []
+                                                            ],
+                                                            [
+                                                                "reference",
+                                                                {},
+                                                                [
+                                                                    [
+                                                                        [
+                                                                            "morphir"
+                                                                        ],
+                                                                        [
+                                                                            "s",
+                                                                            "d",
+                                                                            "k"
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        [
+                                                                            "basics"
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        "int"
+                                                                    ]
+                                                                ],
+                                                                []
+                                                            ]
+                                                        ]
+                                                    ],
+                                                    [
+                                                        "apply",
+                                                        [
+                                                            "reference",
+                                                            {},
+                                                            [
+                                                                [
+                                                                    [
+                                                                        "morphir"
+                                                                    ],
+                                                                    [
+                                                                        "s",
+                                                                        "d",
+                                                                        "k"
+                                                                    ]
+                                                                ],
+                                                                [
+                                                                    [
+                                                                        "basics"
+                                                                    ]
+                                                                ],
+                                                                [
+                                                                    "bool"
+                                                                ]
+                                                            ],
+                                                            []
+                                                        ],
+                                                        [
+                                                            "apply",
+                                                            [
+                                                                "function",
+                                                                {},
+                                                                [
+                                                                    "reference",
+                                                                    {},
+                                                                    [
+                                                                        [
+                                                                            [
+                                                                                "morphir"
+                                                                            ],
+                                                                            [
+                                                                                "s",
+                                                                                "d",
+                                                                                "k"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            [
+                                                                                "basics"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            "int"
+                                                                        ]
+                                                                    ],
+                                                                    []
+                                                                ],
+                                                                [
+                                                                    "reference",
+                                                                    {},
+                                                                    [
+                                                                        [
+                                                                            [
+                                                                                "morphir"
+                                                                            ],
+                                                                            [
+                                                                                "s",
+                                                                                "d",
+                                                                                "k"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            [
+                                                                                "basics"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            "bool"
+                                                                        ]
+                                                                    ],
+                                                                    []
+                                                                ]
+                                                            ],
+                                                            [
+                                                                "reference",
+                                                                [
+                                                                    "function",
+                                                                    {},
+                                                                    [
+                                                                        "reference",
+                                                                        {},
+                                                                        [
+                                                                            [
+                                                                                [
+                                                                                    "morphir"
+                                                                                ],
+                                                                                [
+                                                                                    "s",
+                                                                                    "d",
+                                                                                    "k"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                [
+                                                                                    "basics"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                "int"
+                                                                            ]
+                                                                        ],
+                                                                        []
+                                                                    ],
+                                                                    [
+                                                                        "function",
+                                                                        {},
+                                                                        [
+                                                                            "reference",
+                                                                            {},
+                                                                            [
+                                                                                [
+                                                                                    [
+                                                                                        "morphir"
+                                                                                    ],
+                                                                                    [
+                                                                                        "s",
+                                                                                        "d",
+                                                                                        "k"
+                                                                                    ]
+                                                                                ],
+                                                                                [
+                                                                                    [
+                                                                                        "basics"
+                                                                                    ]
+                                                                                ],
+                                                                                [
+                                                                                    "int"
+                                                                                ]
+                                                                            ],
+                                                                            []
+                                                                        ],
+                                                                        [
+                                                                            "reference",
+                                                                            {},
+                                                                            [
+                                                                                [
+                                                                                    [
+                                                                                        "morphir"
+                                                                                    ],
+                                                                                    [
+                                                                                        "s",
+                                                                                        "d",
+                                                                                        "k"
+                                                                                    ]
+                                                                                ],
+                                                                                [
+                                                                                    [
+                                                                                        "basics"
+                                                                                    ]
+                                                                                ],
+                                                                                [
+                                                                                    "bool"
+                                                                                ]
+                                                                            ],
+                                                                            []
+                                                                        ]
+                                                                    ]
+                                                                ],
+                                                                [
+                                                                    [
+                                                                        [
+                                                                            "morphir"
+                                                                        ],
+                                                                        [
+                                                                            "s",
+                                                                            "d",
+                                                                            "k"
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        [
+                                                                            "basics"
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        "less",
+                                                                        "than",
+                                                                        "or",
+                                                                        "equal"
+                                                                    ]
+                                                                ]
+                                                            ],
+                                                            [
+                                                                "variable",
+                                                                [
+                                                                    "reference",
+                                                                    {},
+                                                                    [
+                                                                        [
+                                                                            [
+                                                                                "morphir"
+                                                                            ],
+                                                                            [
+                                                                                "s",
+                                                                                "d",
+                                                                                "k"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            [
+                                                                                "basics"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            "int"
+                                                                        ]
+                                                                    ],
+                                                                    []
+                                                                ],
+                                                                [
+                                                                    "requested",
+                                                                    "amount"
+                                                                ]
+                                                            ]
+                                                        ],
+                                                        [
+                                                            "variable",
+                                                            [
+                                                                "reference",
+                                                                {},
+                                                                [
+                                                                    [
+                                                                        [
+                                                                            "morphir"
+                                                                        ],
+                                                                        [
+                                                                            "s",
+                                                                            "d",
+                                                                            "k"
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        [
+                                                                            "basics"
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        "int"
+                                                                    ]
+                                                                ],
+                                                                []
+                                                            ],
+                                                            [
+                                                                "availability"
+                                                            ]
+                                                        ]
+                                                    ],
+                                                    [
+                                                        "apply",
+                                                        [
+                                                            "reference",
+                                                            {},
+                                                            [
+                                                                [
+                                                                    [
+                                                                        "morphir"
+                                                                    ],
+                                                                    [
+                                                                        "s",
+                                                                        "d",
+                                                                        "k"
+                                                                    ]
+                                                                ],
+                                                                [
+                                                                    [
+                                                                        "result"
+                                                                    ]
+                                                                ],
+                                                                [
+                                                                    "result"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                [
+                                                                    "reference",
+                                                                    {},
+                                                                    [
+                                                                        [
+                                                                            [
+                                                                                "morphir"
+                                                                            ],
+                                                                            [
+                                                                                "s",
+                                                                                "d",
+                                                                                "k"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            [
+                                                                                "string"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            "string"
+                                                                        ]
+                                                                    ],
+                                                                    []
+                                                                ],
+                                                                [
+                                                                    "reference",
+                                                                    {},
+                                                                    [
+                                                                        [
+                                                                            [
+                                                                                "morphir"
+                                                                            ],
+                                                                            [
+                                                                                "s",
+                                                                                "d",
+                                                                                "k"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            [
+                                                                                "basics"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            "int"
+                                                                        ]
+                                                                    ],
+                                                                    []
+                                                                ]
+                                                            ]
+                                                        ],
+                                                        [
+                                                            "constructor",
+                                                            [
+                                                                "function",
+                                                                {},
+                                                                [
+                                                                    "reference",
+                                                                    {},
+                                                                    [
+                                                                        [
+                                                                            [
+                                                                                "morphir"
+                                                                            ],
+                                                                            [
+                                                                                "s",
+                                                                                "d",
+                                                                                "k"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            [
+                                                                                "basics"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            "int"
+                                                                        ]
+                                                                    ],
+                                                                    []
+                                                                ],
+                                                                [
+                                                                    "reference",
+                                                                    {},
+                                                                    [
+                                                                        [
+                                                                            [
+                                                                                "morphir"
+                                                                            ],
+                                                                            [
+                                                                                "s",
+                                                                                "d",
+                                                                                "k"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            [
+                                                                                "result"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            "result"
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        [
+                                                                            "reference",
+                                                                            {},
+                                                                            [
+                                                                                [
+                                                                                    [
+                                                                                        "morphir"
+                                                                                    ],
+                                                                                    [
+                                                                                        "s",
+                                                                                        "d",
+                                                                                        "k"
+                                                                                    ]
+                                                                                ],
+                                                                                [
+                                                                                    [
+                                                                                        "string"
+                                                                                    ]
+                                                                                ],
+                                                                                [
+                                                                                    "string"
+                                                                                ]
+                                                                            ],
+                                                                            []
+                                                                        ],
+                                                                        [
+                                                                            "reference",
+                                                                            {},
+                                                                            [
+                                                                                [
+                                                                                    [
+                                                                                        "morphir"
+                                                                                    ],
+                                                                                    [
+                                                                                        "s",
+                                                                                        "d",
+                                                                                        "k"
+                                                                                    ]
+                                                                                ],
+                                                                                [
+                                                                                    [
+                                                                                        "basics"
+                                                                                    ]
+                                                                                ],
+                                                                                [
+                                                                                    "int"
+                                                                                ]
+                                                                            ],
+                                                                            []
+                                                                        ]
+                                                                    ]
+                                                                ]
+                                                            ],
+                                                            [
+                                                                [
+                                                                    [
+                                                                        "morphir"
+                                                                    ],
+                                                                    [
+                                                                        "s",
+                                                                        "d",
+                                                                        "k"
+                                                                    ]
+                                                                ],
+                                                                [
+                                                                    [
+                                                                        "result"
+                                                                    ]
+                                                                ],
+                                                                [
+                                                                    "ok"
+                                                                ]
+                                                            ]
+                                                        ],
+                                                        [
+                                                            "variable",
+                                                            [
+                                                                "reference",
+                                                                {},
+                                                                [
+                                                                    [
+                                                                        [
+                                                                            "morphir"
+                                                                        ],
+                                                                        [
+                                                                            "s",
+                                                                            "d",
+                                                                            "k"
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        [
+                                                                            "basics"
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        "int"
+                                                                    ]
+                                                                ],
+                                                                []
+                                                            ],
+                                                            [
+                                                                "requested",
+                                                                "amount"
+                                                            ]
+                                                        ]
+                                                    ],
+                                                    [
+                                                        "if_then_else",
+                                                        [
+                                                            "reference",
+                                                            {},
+                                                            [
+                                                                [
+                                                                    [
+                                                                        "morphir"
+                                                                    ],
+                                                                    [
+                                                                        "s",
+                                                                        "d",
+                                                                        "k"
+                                                                    ]
+                                                                ],
+                                                                [
+                                                                    [
+                                                                        "result"
+                                                                    ]
+                                                                ],
+                                                                [
+                                                                    "result"
+                                                                ]
+                                                            ],
+                                                            [
+                                                                [
+                                                                    "reference",
+                                                                    {},
+                                                                    [
+                                                                        [
+                                                                            [
+                                                                                "morphir"
+                                                                            ],
+                                                                            [
+                                                                                "s",
+                                                                                "d",
+                                                                                "k"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            [
+                                                                                "string"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            "string"
+                                                                        ]
+                                                                    ],
+                                                                    []
+                                                                ],
+                                                                [
+                                                                    "reference",
+                                                                    {},
+                                                                    [
+                                                                        [
+                                                                            [
+                                                                                "morphir"
+                                                                            ],
+                                                                            [
+                                                                                "s",
+                                                                                "d",
+                                                                                "k"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            [
+                                                                                "basics"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            "int"
+                                                                        ]
+                                                                    ],
+                                                                    []
+                                                                ]
+                                                            ]
+                                                        ],
+                                                        [
+                                                            "apply",
+                                                            [
+                                                                "reference",
+                                                                {},
+                                                                [
+                                                                    [
+                                                                        [
+                                                                            "morphir"
+                                                                        ],
+                                                                        [
+                                                                            "s",
+                                                                            "d",
+                                                                            "k"
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        [
+                                                                            "basics"
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        "bool"
+                                                                    ]
+                                                                ],
+                                                                []
+                                                            ],
+                                                            [
+                                                                "apply",
+                                                                [
+                                                                    "function",
+                                                                    {},
+                                                                    [
+                                                                        "reference",
+                                                                        {},
+                                                                        [
+                                                                            [
+                                                                                [
+                                                                                    "morphir"
+                                                                                ],
+                                                                                [
+                                                                                    "s",
+                                                                                    "d",
+                                                                                    "k"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                [
+                                                                                    "basics"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                "bool"
+                                                                            ]
+                                                                        ],
+                                                                        []
+                                                                    ],
+                                                                    [
+                                                                        "reference",
+                                                                        {},
+                                                                        [
+                                                                            [
+                                                                                [
+                                                                                    "morphir"
+                                                                                ],
+                                                                                [
+                                                                                    "s",
+                                                                                    "d",
+                                                                                    "k"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                [
+                                                                                    "basics"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                "bool"
+                                                                            ]
+                                                                        ],
+                                                                        []
+                                                                    ]
+                                                                ],
+                                                                [
+                                                                    "reference",
+                                                                    [
+                                                                        "function",
+                                                                        {},
+                                                                        [
+                                                                            "reference",
+                                                                            {},
+                                                                            [
+                                                                                [
+                                                                                    [
+                                                                                        "morphir"
+                                                                                    ],
+                                                                                    [
+                                                                                        "s",
+                                                                                        "d",
+                                                                                        "k"
+                                                                                    ]
+                                                                                ],
+                                                                                [
+                                                                                    [
+                                                                                        "basics"
+                                                                                    ]
+                                                                                ],
+                                                                                [
+                                                                                    "bool"
+                                                                                ]
+                                                                            ],
+                                                                            []
+                                                                        ],
+                                                                        [
+                                                                            "function",
+                                                                            {},
+                                                                            [
+                                                                                "reference",
+                                                                                {},
+                                                                                [
+                                                                                    [
+                                                                                        [
+                                                                                            "morphir"
+                                                                                        ],
+                                                                                        [
+                                                                                            "s",
+                                                                                            "d",
+                                                                                            "k"
+                                                                                        ]
+                                                                                    ],
+                                                                                    [
+                                                                                        [
+                                                                                            "basics"
+                                                                                        ]
+                                                                                    ],
+                                                                                    [
+                                                                                        "bool"
+                                                                                    ]
+                                                                                ],
+                                                                                []
+                                                                            ],
+                                                                            [
+                                                                                "reference",
+                                                                                {},
+                                                                                [
+                                                                                    [
+                                                                                        [
+                                                                                            "morphir"
+                                                                                        ],
+                                                                                        [
+                                                                                            "s",
+                                                                                            "d",
+                                                                                            "k"
+                                                                                        ]
+                                                                                    ],
+                                                                                    [
+                                                                                        [
+                                                                                            "basics"
+                                                                                        ]
+                                                                                    ],
+                                                                                    [
+                                                                                        "bool"
+                                                                                    ]
+                                                                                ],
+                                                                                []
+                                                                            ]
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        [
+                                                                            [
+                                                                                "morphir"
+                                                                            ],
+                                                                            [
+                                                                                "s",
+                                                                                "d",
+                                                                                "k"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            [
+                                                                                "basics"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            "and"
+                                                                        ]
+                                                                    ]
+                                                                ],
+                                                                [
+                                                                    "variable",
+                                                                    [
+                                                                        "reference",
+                                                                        {},
+                                                                        [
+                                                                            [
+                                                                                [
+                                                                                    "morphir"
+                                                                                ],
+                                                                                [
+                                                                                    "s",
+                                                                                    "d",
+                                                                                    "k"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                [
+                                                                                    "basics"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                "bool"
+                                                                            ]
+                                                                        ],
+                                                                        []
+                                                                    ],
+                                                                    [
+                                                                        "allow",
+                                                                        "partial"
+                                                                    ]
+                                                                ]
+                                                            ],
+                                                            [
+                                                                "apply",
+                                                                [
+                                                                    "reference",
+                                                                    {},
+                                                                    [
+                                                                        [
+                                                                            [
+                                                                                "morphir"
+                                                                            ],
+                                                                            [
+                                                                                "s",
+                                                                                "d",
+                                                                                "k"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            [
+                                                                                "basics"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            "bool"
+                                                                        ]
+                                                                    ],
+                                                                    []
+                                                                ],
+                                                                [
+                                                                    "apply",
+                                                                    [
+                                                                        "function",
+                                                                        {},
+                                                                        [
+                                                                            "reference",
+                                                                            {},
+                                                                            [
+                                                                                [
+                                                                                    [
+                                                                                        "morphir"
+                                                                                    ],
+                                                                                    [
+                                                                                        "s",
+                                                                                        "d",
+                                                                                        "k"
+                                                                                    ]
+                                                                                ],
+                                                                                [
+                                                                                    [
+                                                                                        "basics"
+                                                                                    ]
+                                                                                ],
+                                                                                [
+                                                                                    "int"
+                                                                                ]
+                                                                            ],
+                                                                            []
+                                                                        ],
+                                                                        [
+                                                                            "reference",
+                                                                            {},
+                                                                            [
+                                                                                [
+                                                                                    [
+                                                                                        "morphir"
+                                                                                    ],
+                                                                                    [
+                                                                                        "s",
+                                                                                        "d",
+                                                                                        "k"
+                                                                                    ]
+                                                                                ],
+                                                                                [
+                                                                                    [
+                                                                                        "basics"
+                                                                                    ]
+                                                                                ],
+                                                                                [
+                                                                                    "bool"
+                                                                                ]
+                                                                            ],
+                                                                            []
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        "reference",
+                                                                        [
+                                                                            "function",
+                                                                            {},
+                                                                            [
+                                                                                "reference",
+                                                                                {},
+                                                                                [
+                                                                                    [
+                                                                                        [
+                                                                                            "morphir"
+                                                                                        ],
+                                                                                        [
+                                                                                            "s",
+                                                                                            "d",
+                                                                                            "k"
+                                                                                        ]
+                                                                                    ],
+                                                                                    [
+                                                                                        [
+                                                                                            "basics"
+                                                                                        ]
+                                                                                    ],
+                                                                                    [
+                                                                                        "int"
+                                                                                    ]
+                                                                                ],
+                                                                                []
+                                                                            ],
+                                                                            [
+                                                                                "function",
+                                                                                {},
+                                                                                [
+                                                                                    "reference",
+                                                                                    {},
+                                                                                    [
+                                                                                        [
+                                                                                            [
+                                                                                                "morphir"
+                                                                                            ],
+                                                                                            [
+                                                                                                "s",
+                                                                                                "d",
+                                                                                                "k"
+                                                                                            ]
+                                                                                        ],
+                                                                                        [
+                                                                                            [
+                                                                                                "basics"
+                                                                                            ]
+                                                                                        ],
+                                                                                        [
+                                                                                            "int"
+                                                                                        ]
+                                                                                    ],
+                                                                                    []
+                                                                                ],
+                                                                                [
+                                                                                    "reference",
+                                                                                    {},
+                                                                                    [
+                                                                                        [
+                                                                                            [
+                                                                                                "morphir"
+                                                                                            ],
+                                                                                            [
+                                                                                                "s",
+                                                                                                "d",
+                                                                                                "k"
+                                                                                            ]
+                                                                                        ],
+                                                                                        [
+                                                                                            [
+                                                                                                "basics"
+                                                                                            ]
+                                                                                        ],
+                                                                                        [
+                                                                                            "bool"
+                                                                                        ]
+                                                                                    ],
+                                                                                    []
+                                                                                ]
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            [
+                                                                                [
+                                                                                    "morphir"
+                                                                                ],
+                                                                                [
+                                                                                    "s",
+                                                                                    "d",
+                                                                                    "k"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                [
+                                                                                    "basics"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                "greater",
+                                                                                "than"
+                                                                            ]
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        "variable",
+                                                                        [
+                                                                            "reference",
+                                                                            {},
+                                                                            [
+                                                                                [
+                                                                                    [
+                                                                                        "morphir"
+                                                                                    ],
+                                                                                    [
+                                                                                        "s",
+                                                                                        "d",
+                                                                                        "k"
+                                                                                    ]
+                                                                                ],
+                                                                                [
+                                                                                    [
+                                                                                        "basics"
+                                                                                    ]
+                                                                                ],
+                                                                                [
+                                                                                    "int"
+                                                                                ]
+                                                                            ],
+                                                                            []
+                                                                        ],
+                                                                        [
+                                                                            "availability"
+                                                                        ]
+                                                                    ]
+                                                                ],
+                                                                [
+                                                                    "literal",
+                                                                    [
+                                                                        "reference",
+                                                                        {},
+                                                                        [
+                                                                            [
+                                                                                [
+                                                                                    "morphir"
+                                                                                ],
+                                                                                [
+                                                                                    "s",
+                                                                                    "d",
+                                                                                    "k"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                [
+                                                                                    "basics"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                "int"
+                                                                            ]
+                                                                        ],
+                                                                        []
+                                                                    ],
+                                                                    [
+                                                                        "int_literal",
+                                                                        0
+                                                                    ]
+                                                                ]
+                                                            ]
+                                                        ],
+                                                        [
+                                                            "apply",
+                                                            [
+                                                                "reference",
+                                                                {},
+                                                                [
+                                                                    [
+                                                                        [
+                                                                            "morphir"
+                                                                        ],
+                                                                        [
+                                                                            "s",
+                                                                            "d",
+                                                                            "k"
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        [
+                                                                            "result"
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        "result"
+                                                                    ]
+                                                                ],
+                                                                [
+                                                                    [
+                                                                        "reference",
+                                                                        {},
+                                                                        [
+                                                                            [
+                                                                                [
+                                                                                    "morphir"
+                                                                                ],
+                                                                                [
+                                                                                    "s",
+                                                                                    "d",
+                                                                                    "k"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                [
+                                                                                    "string"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                "string"
+                                                                            ]
+                                                                        ],
+                                                                        []
+                                                                    ],
+                                                                    [
+                                                                        "reference",
+                                                                        {},
+                                                                        [
+                                                                            [
+                                                                                [
+                                                                                    "morphir"
+                                                                                ],
+                                                                                [
+                                                                                    "s",
+                                                                                    "d",
+                                                                                    "k"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                [
+                                                                                    "basics"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                "int"
+                                                                            ]
+                                                                        ],
+                                                                        []
+                                                                    ]
+                                                                ]
+                                                            ],
+                                                            [
+                                                                "constructor",
+                                                                [
+                                                                    "function",
+                                                                    {},
+                                                                    [
+                                                                        "reference",
+                                                                        {},
+                                                                        [
+                                                                            [
+                                                                                [
+                                                                                    "morphir"
+                                                                                ],
+                                                                                [
+                                                                                    "s",
+                                                                                    "d",
+                                                                                    "k"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                [
+                                                                                    "basics"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                "int"
+                                                                            ]
+                                                                        ],
+                                                                        []
+                                                                    ],
+                                                                    [
+                                                                        "reference",
+                                                                        {},
+                                                                        [
+                                                                            [
+                                                                                [
+                                                                                    "morphir"
+                                                                                ],
+                                                                                [
+                                                                                    "s",
+                                                                                    "d",
+                                                                                    "k"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                [
+                                                                                    "result"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                "result"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            [
+                                                                                "reference",
+                                                                                {},
+                                                                                [
+                                                                                    [
+                                                                                        [
+                                                                                            "morphir"
+                                                                                        ],
+                                                                                        [
+                                                                                            "s",
+                                                                                            "d",
+                                                                                            "k"
+                                                                                        ]
+                                                                                    ],
+                                                                                    [
+                                                                                        [
+                                                                                            "string"
+                                                                                        ]
+                                                                                    ],
+                                                                                    [
+                                                                                        "string"
+                                                                                    ]
+                                                                                ],
+                                                                                []
+                                                                            ],
+                                                                            [
+                                                                                "reference",
+                                                                                {},
+                                                                                [
+                                                                                    [
+                                                                                        [
+                                                                                            "morphir"
+                                                                                        ],
+                                                                                        [
+                                                                                            "s",
+                                                                                            "d",
+                                                                                            "k"
+                                                                                        ]
+                                                                                    ],
+                                                                                    [
+                                                                                        [
+                                                                                            "basics"
+                                                                                        ]
+                                                                                    ],
+                                                                                    [
+                                                                                        "int"
+                                                                                    ]
+                                                                                ],
+                                                                                []
+                                                                            ]
+                                                                        ]
+                                                                    ]
+                                                                ],
+                                                                [
+                                                                    [
+                                                                        [
+                                                                            "morphir"
+                                                                        ],
+                                                                        [
+                                                                            "s",
+                                                                            "d",
+                                                                            "k"
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        [
+                                                                            "result"
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        "ok"
+                                                                    ]
+                                                                ]
+                                                            ],
+                                                            [
+                                                                "variable",
+                                                                [
+                                                                    "reference",
+                                                                    {},
+                                                                    [
+                                                                        [
+                                                                            [
+                                                                                "morphir"
+                                                                            ],
+                                                                            [
+                                                                                "s",
+                                                                                "d",
+                                                                                "k"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            [
+                                                                                "basics"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            "int"
+                                                                        ]
+                                                                    ],
+                                                                    []
+                                                                ],
+                                                                [
+                                                                    "availability"
+                                                                ]
+                                                            ]
+                                                        ],
+                                                        [
+                                                            "apply",
+                                                            [
+                                                                "reference",
+                                                                {},
+                                                                [
+                                                                    [
+                                                                        [
+                                                                            "morphir"
+                                                                        ],
+                                                                        [
+                                                                            "s",
+                                                                            "d",
+                                                                            "k"
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        [
+                                                                            "result"
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        "result"
+                                                                    ]
+                                                                ],
+                                                                [
+                                                                    [
+                                                                        "reference",
+                                                                        {},
+                                                                        [
+                                                                            [
+                                                                                [
+                                                                                    "morphir"
+                                                                                ],
+                                                                                [
+                                                                                    "s",
+                                                                                    "d",
+                                                                                    "k"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                [
+                                                                                    "string"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                "string"
+                                                                            ]
+                                                                        ],
+                                                                        []
+                                                                    ],
+                                                                    [
+                                                                        "reference",
+                                                                        {},
+                                                                        [
+                                                                            [
+                                                                                [
+                                                                                    "morphir"
+                                                                                ],
+                                                                                [
+                                                                                    "s",
+                                                                                    "d",
+                                                                                    "k"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                [
+                                                                                    "basics"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                "int"
+                                                                            ]
+                                                                        ],
+                                                                        []
+                                                                    ]
+                                                                ]
+                                                            ],
+                                                            [
+                                                                "constructor",
+                                                                [
+                                                                    "function",
+                                                                    {},
+                                                                    [
+                                                                        "reference",
+                                                                        {},
+                                                                        [
+                                                                            [
+                                                                                [
+                                                                                    "morphir"
+                                                                                ],
+                                                                                [
+                                                                                    "s",
+                                                                                    "d",
+                                                                                    "k"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                [
+                                                                                    "string"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                "string"
+                                                                            ]
+                                                                        ],
+                                                                        []
+                                                                    ],
+                                                                    [
+                                                                        "reference",
+                                                                        {},
+                                                                        [
+                                                                            [
+                                                                                [
+                                                                                    "morphir"
+                                                                                ],
+                                                                                [
+                                                                                    "s",
+                                                                                    "d",
+                                                                                    "k"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                [
+                                                                                    "result"
+                                                                                ]
+                                                                            ],
+                                                                            [
+                                                                                "result"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            [
+                                                                                "reference",
+                                                                                {},
+                                                                                [
+                                                                                    [
+                                                                                        [
+                                                                                            "morphir"
+                                                                                        ],
+                                                                                        [
+                                                                                            "s",
+                                                                                            "d",
+                                                                                            "k"
+                                                                                        ]
+                                                                                    ],
+                                                                                    [
+                                                                                        [
+                                                                                            "string"
+                                                                                        ]
+                                                                                    ],
+                                                                                    [
+                                                                                        "string"
+                                                                                    ]
+                                                                                ],
+                                                                                []
+                                                                            ],
+                                                                            [
+                                                                                "reference",
+                                                                                {},
+                                                                                [
+                                                                                    [
+                                                                                        [
+                                                                                            "morphir"
+                                                                                        ],
+                                                                                        [
+                                                                                            "s",
+                                                                                            "d",
+                                                                                            "k"
+                                                                                        ]
+                                                                                    ],
+                                                                                    [
+                                                                                        [
+                                                                                            "basics"
+                                                                                        ]
+                                                                                    ],
+                                                                                    [
+                                                                                        "int"
+                                                                                    ]
+                                                                                ],
+                                                                                []
+                                                                            ]
+                                                                        ]
+                                                                    ]
+                                                                ],
+                                                                [
+                                                                    [
+                                                                        [
+                                                                            "morphir"
+                                                                        ],
+                                                                        [
+                                                                            "s",
+                                                                            "d",
+                                                                            "k"
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        [
+                                                                            "result"
+                                                                        ]
+                                                                    ],
+                                                                    [
+                                                                        "err"
+                                                                    ]
+                                                                ]
+                                                            ],
+                                                            [
+                                                                "literal",
+                                                                [
+                                                                    "reference",
+                                                                    {},
+                                                                    [
+                                                                        [
+                                                                            [
+                                                                                "morphir"
+                                                                            ],
+                                                                            [
+                                                                                "s",
+                                                                                "d",
+                                                                                "k"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            [
+                                                                                "string"
+                                                                            ]
+                                                                        ],
+                                                                        [
+                                                                            "string"
+                                                                        ]
+                                                                    ],
+                                                                    []
+                                                                ],
+                                                                [
+                                                                    "string_literal",
+                                                                    "Insufficient inventory"
+                                                                ]
+                                                            ]
+                                                        ]
+                                                    ]
+                                                ]
+                                            ]
+                                        }
+                                    ]
+                                ]
+                            ]
+                        }
+                    ]
+                }
+            ]
+        }
+    ]
+}
\ No newline at end of file

From 52ef02719e4929499587717d8d817544ad1d450c Mon Sep 17 00:00:00 2001
From: Stephen Goldbaum <129341+stephengoldbaum@users.noreply.github.com>
Date: Tue, 1 Jun 2021 19:07:15 -0400
Subject: [PATCH 52/88] Fixing IR url in main

---
 example_app_model/doc/index.html | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/example_app_model/doc/index.html b/example_app_model/doc/index.html
index 2d842d9..bec2928 100644
--- a/example_app_model/doc/index.html
+++ b/example_app_model/doc/index.html
@@ -7412,7 +7412,7 @@
 				}
 			},
 			$author$project$Morphir$IR$Distribution$Codec$decodeVersionedDistribution),
-		url: '/server/morphir-ir.json'
+		url: 'https://finos.github.io/morphir-examples/example_app_model/doc/morphir-ir.json'
 	});
 var $author$project$Morphir$Web$DevelopApp$NotFound = {$: 'NotFound'};
 var $elm$url$Url$Parser$State = F5(
@@ -30775,4 +30775,4 @@
 
 
 
-
\ No newline at end of file
+

From 8a9d7caa98eb1d1ee88c527407a0c8b8d87ad3ae Mon Sep 17 00:00:00 2001
From: Stephen Goldbaum 
Date: Wed, 2 Jun 2021 12:02:31 -0400
Subject: [PATCH 53/88] fixed generated insight page

---
 example_app_model/doc/main.js                 | 18834 ----------------
 .../assets/2020_Morphir_Logo_Icon_WHT.svg     |     0
 example_app_model/doc/{ => web}/index.html    |    68 +-
 example_app_model/doc/{ => web}/insight.html  |     9 +-
 example_app_model/doc/{ => web}/insight.js    |    60 +
 .../doc/{ => web}/morphir-ir.json             |     0
 .../doc/{ => web}/try-morphir.html            |     0
 example_app_model/morphir-ir.json             |  2596 ---
 .../src/Morphir/Example/App/App.elm           |    84 +
 morphir-ir.json                               |    29 +-
 morphir.json                                  |     5 +-
 package.json                                  |     2 +-
 12 files changed, 230 insertions(+), 21457 deletions(-)
 delete mode 100644 example_app_model/doc/main.js
 rename example_app_model/doc/{ => web}/assets/2020_Morphir_Logo_Icon_WHT.svg (100%)
 rename example_app_model/doc/{ => web}/index.html (99%)
 rename example_app_model/doc/{ => web}/insight.html (80%)
 rename example_app_model/doc/{ => web}/insight.js (99%)
 rename example_app_model/doc/{ => web}/morphir-ir.json (100%)
 rename example_app_model/doc/{ => web}/try-morphir.html (100%)
 delete mode 100644 example_app_model/morphir-ir.json
 create mode 100644 example_app_model/src/Morphir/Example/App/App.elm

diff --git a/example_app_model/doc/main.js b/example_app_model/doc/main.js
deleted file mode 100644
index 48474ae..0000000
--- a/example_app_model/doc/main.js
+++ /dev/null
@@ -1,18834 +0,0 @@
-(function(scope){
-'use strict';
-
-function F(arity, fun, wrapper) {
-  wrapper.a = arity;
-  wrapper.f = fun;
-  return wrapper;
-}
-
-function F2(fun) {
-  return F(2, fun, function(a) { return function(b) { return fun(a,b); }; })
-}
-function F3(fun) {
-  return F(3, fun, function(a) {
-    return function(b) { return function(c) { return fun(a, b, c); }; };
-  });
-}
-function F4(fun) {
-  return F(4, fun, function(a) { return function(b) { return function(c) {
-    return function(d) { return fun(a, b, c, d); }; }; };
-  });
-}
-function F5(fun) {
-  return F(5, fun, function(a) { return function(b) { return function(c) {
-    return function(d) { return function(e) { return fun(a, b, c, d, e); }; }; }; };
-  });
-}
-function F6(fun) {
-  return F(6, fun, function(a) { return function(b) { return function(c) {
-    return function(d) { return function(e) { return function(f) {
-    return fun(a, b, c, d, e, f); }; }; }; }; };
-  });
-}
-function F7(fun) {
-  return F(7, fun, function(a) { return function(b) { return function(c) {
-    return function(d) { return function(e) { return function(f) {
-    return function(g) { return fun(a, b, c, d, e, f, g); }; }; }; }; }; };
-  });
-}
-function F8(fun) {
-  return F(8, fun, function(a) { return function(b) { return function(c) {
-    return function(d) { return function(e) { return function(f) {
-    return function(g) { return function(h) {
-    return fun(a, b, c, d, e, f, g, h); }; }; }; }; }; }; };
-  });
-}
-function F9(fun) {
-  return F(9, fun, function(a) { return function(b) { return function(c) {
-    return function(d) { return function(e) { return function(f) {
-    return function(g) { return function(h) { return function(i) {
-    return fun(a, b, c, d, e, f, g, h, i); }; }; }; }; }; }; }; };
-  });
-}
-
-function A2(fun, a, b) {
-  return fun.a === 2 ? fun.f(a, b) : fun(a)(b);
-}
-function A3(fun, a, b, c) {
-  return fun.a === 3 ? fun.f(a, b, c) : fun(a)(b)(c);
-}
-function A4(fun, a, b, c, d) {
-  return fun.a === 4 ? fun.f(a, b, c, d) : fun(a)(b)(c)(d);
-}
-function A5(fun, a, b, c, d, e) {
-  return fun.a === 5 ? fun.f(a, b, c, d, e) : fun(a)(b)(c)(d)(e);
-}
-function A6(fun, a, b, c, d, e, f) {
-  return fun.a === 6 ? fun.f(a, b, c, d, e, f) : fun(a)(b)(c)(d)(e)(f);
-}
-function A7(fun, a, b, c, d, e, f, g) {
-  return fun.a === 7 ? fun.f(a, b, c, d, e, f, g) : fun(a)(b)(c)(d)(e)(f)(g);
-}
-function A8(fun, a, b, c, d, e, f, g, h) {
-  return fun.a === 8 ? fun.f(a, b, c, d, e, f, g, h) : fun(a)(b)(c)(d)(e)(f)(g)(h);
-}
-function A9(fun, a, b, c, d, e, f, g, h, i) {
-  return fun.a === 9 ? fun.f(a, b, c, d, e, f, g, h, i) : fun(a)(b)(c)(d)(e)(f)(g)(h)(i);
-}
-
-console.warn('Compiled in DEV mode. Follow the advice at https://elm-lang.org/0.19.1/optimize for better performance and smaller assets.');
-
-
-// EQUALITY
-
-function _Utils_eq(x, y)
-{
-	for (
-		var pair, stack = [], isEqual = _Utils_eqHelp(x, y, 0, stack);
-		isEqual && (pair = stack.pop());
-		isEqual = _Utils_eqHelp(pair.a, pair.b, 0, stack)
-		)
-	{}
-
-	return isEqual;
-}
-
-function _Utils_eqHelp(x, y, depth, stack)
-{
-	if (x === y)
-	{
-		return true;
-	}
-
-	if (typeof x !== 'object' || x === null || y === null)
-	{
-		typeof x === 'function' && _Debug_crash(5);
-		return false;
-	}
-
-	if (depth > 100)
-	{
-		stack.push(_Utils_Tuple2(x,y));
-		return true;
-	}
-
-	/**/
-	if (x.$ === 'Set_elm_builtin')
-	{
-		x = $elm$core$Set$toList(x);
-		y = $elm$core$Set$toList(y);
-	}
-	if (x.$ === 'RBNode_elm_builtin' || x.$ === 'RBEmpty_elm_builtin')
-	{
-		x = $elm$core$Dict$toList(x);
-		y = $elm$core$Dict$toList(y);
-	}
-	//*/
-
-	/**_UNUSED/
-	if (x.$ < 0)
-	{
-		x = $elm$core$Dict$toList(x);
-		y = $elm$core$Dict$toList(y);
-	}
-	//*/
-
-	for (var key in x)
-	{
-		if (!_Utils_eqHelp(x[key], y[key], depth + 1, stack))
-		{
-			return false;
-		}
-	}
-	return true;
-}
-
-var _Utils_equal = F2(_Utils_eq);
-var _Utils_notEqual = F2(function(a, b) { return !_Utils_eq(a,b); });
-
-
-
-// COMPARISONS
-
-// Code in Generate/JavaScript.hs, Basics.js, and List.js depends on
-// the particular integer values assigned to LT, EQ, and GT.
-
-function _Utils_cmp(x, y, ord)
-{
-	if (typeof x !== 'object')
-	{
-		return x === y ? /*EQ*/ 0 : x < y ? /*LT*/ -1 : /*GT*/ 1;
-	}
-
-	/**/
-	if (x instanceof String)
-	{
-		var a = x.valueOf();
-		var b = y.valueOf();
-		return a === b ? 0 : a < b ? -1 : 1;
-	}
-	//*/
-
-	/**_UNUSED/
-	if (typeof x.$ === 'undefined')
-	//*/
-	/**/
-	if (x.$[0] === '#')
-	//*/
-	{
-		return (ord = _Utils_cmp(x.a, y.a))
-			? ord
-			: (ord = _Utils_cmp(x.b, y.b))
-				? ord
-				: _Utils_cmp(x.c, y.c);
-	}
-
-	// traverse conses until end of a list or a mismatch
-	for (; x.b && y.b && !(ord = _Utils_cmp(x.a, y.a)); x = x.b, y = y.b) {} // WHILE_CONSES
-	return ord || (x.b ? /*GT*/ 1 : y.b ? /*LT*/ -1 : /*EQ*/ 0);
-}
-
-var _Utils_lt = F2(function(a, b) { return _Utils_cmp(a, b) < 0; });
-var _Utils_le = F2(function(a, b) { return _Utils_cmp(a, b) < 1; });
-var _Utils_gt = F2(function(a, b) { return _Utils_cmp(a, b) > 0; });
-var _Utils_ge = F2(function(a, b) { return _Utils_cmp(a, b) >= 0; });
-
-var _Utils_compare = F2(function(x, y)
-{
-	var n = _Utils_cmp(x, y);
-	return n < 0 ? $elm$core$Basics$LT : n ? $elm$core$Basics$GT : $elm$core$Basics$EQ;
-});
-
-
-// COMMON VALUES
-
-var _Utils_Tuple0_UNUSED = 0;
-var _Utils_Tuple0 = { $: '#0' };
-
-function _Utils_Tuple2_UNUSED(a, b) { return { a: a, b: b }; }
-function _Utils_Tuple2(a, b) { return { $: '#2', a: a, b: b }; }
-
-function _Utils_Tuple3_UNUSED(a, b, c) { return { a: a, b: b, c: c }; }
-function _Utils_Tuple3(a, b, c) { return { $: '#3', a: a, b: b, c: c }; }
-
-function _Utils_chr_UNUSED(c) { return c; }
-function _Utils_chr(c) { return new String(c); }
-
-
-// RECORDS
-
-function _Utils_update(oldRecord, updatedFields)
-{
-	var newRecord = {};
-
-	for (var key in oldRecord)
-	{
-		newRecord[key] = oldRecord[key];
-	}
-
-	for (var key in updatedFields)
-	{
-		newRecord[key] = updatedFields[key];
-	}
-
-	return newRecord;
-}
-
-
-// APPEND
-
-var _Utils_append = F2(_Utils_ap);
-
-function _Utils_ap(xs, ys)
-{
-	// append Strings
-	if (typeof xs === 'string')
-	{
-		return xs + ys;
-	}
-
-	// append Lists
-	if (!xs.b)
-	{
-		return ys;
-	}
-	var root = _List_Cons(xs.a, ys);
-	xs = xs.b
-	for (var curr = root; xs.b; xs = xs.b) // WHILE_CONS
-	{
-		curr = curr.b = _List_Cons(xs.a, ys);
-	}
-	return root;
-}
-
-
-
-var _List_Nil_UNUSED = { $: 0 };
-var _List_Nil = { $: '[]' };
-
-function _List_Cons_UNUSED(hd, tl) { return { $: 1, a: hd, b: tl }; }
-function _List_Cons(hd, tl) { return { $: '::', a: hd, b: tl }; }
-
-
-var _List_cons = F2(_List_Cons);
-
-function _List_fromArray(arr)
-{
-	var out = _List_Nil;
-	for (var i = arr.length; i--; )
-	{
-		out = _List_Cons(arr[i], out);
-	}
-	return out;
-}
-
-function _List_toArray(xs)
-{
-	for (var out = []; xs.b; xs = xs.b) // WHILE_CONS
-	{
-		out.push(xs.a);
-	}
-	return out;
-}
-
-var _List_map2 = F3(function(f, xs, ys)
-{
-	for (var arr = []; xs.b && ys.b; xs = xs.b, ys = ys.b) // WHILE_CONSES
-	{
-		arr.push(A2(f, xs.a, ys.a));
-	}
-	return _List_fromArray(arr);
-});
-
-var _List_map3 = F4(function(f, xs, ys, zs)
-{
-	for (var arr = []; xs.b && ys.b && zs.b; xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES
-	{
-		arr.push(A3(f, xs.a, ys.a, zs.a));
-	}
-	return _List_fromArray(arr);
-});
-
-var _List_map4 = F5(function(f, ws, xs, ys, zs)
-{
-	for (var arr = []; ws.b && xs.b && ys.b && zs.b; ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES
-	{
-		arr.push(A4(f, ws.a, xs.a, ys.a, zs.a));
-	}
-	return _List_fromArray(arr);
-});
-
-var _List_map5 = F6(function(f, vs, ws, xs, ys, zs)
-{
-	for (var arr = []; vs.b && ws.b && xs.b && ys.b && zs.b; vs = vs.b, ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES
-	{
-		arr.push(A5(f, vs.a, ws.a, xs.a, ys.a, zs.a));
-	}
-	return _List_fromArray(arr);
-});
-
-var _List_sortBy = F2(function(f, xs)
-{
-	return _List_fromArray(_List_toArray(xs).sort(function(a, b) {
-		return _Utils_cmp(f(a), f(b));
-	}));
-});
-
-var _List_sortWith = F2(function(f, xs)
-{
-	return _List_fromArray(_List_toArray(xs).sort(function(a, b) {
-		var ord = A2(f, a, b);
-		return ord === $elm$core$Basics$EQ ? 0 : ord === $elm$core$Basics$LT ? -1 : 1;
-	}));
-});
-
-
-
-var _JsArray_empty = [];
-
-function _JsArray_singleton(value)
-{
-    return [value];
-}
-
-function _JsArray_length(array)
-{
-    return array.length;
-}
-
-var _JsArray_initialize = F3(function(size, offset, func)
-{
-    var result = new Array(size);
-
-    for (var i = 0; i < size; i++)
-    {
-        result[i] = func(offset + i);
-    }
-
-    return result;
-});
-
-var _JsArray_initializeFromList = F2(function (max, ls)
-{
-    var result = new Array(max);
-
-    for (var i = 0; i < max && ls.b; i++)
-    {
-        result[i] = ls.a;
-        ls = ls.b;
-    }
-
-    result.length = i;
-    return _Utils_Tuple2(result, ls);
-});
-
-var _JsArray_unsafeGet = F2(function(index, array)
-{
-    return array[index];
-});
-
-var _JsArray_unsafeSet = F3(function(index, value, array)
-{
-    var length = array.length;
-    var result = new Array(length);
-
-    for (var i = 0; i < length; i++)
-    {
-        result[i] = array[i];
-    }
-
-    result[index] = value;
-    return result;
-});
-
-var _JsArray_push = F2(function(value, array)
-{
-    var length = array.length;
-    var result = new Array(length + 1);
-
-    for (var i = 0; i < length; i++)
-    {
-        result[i] = array[i];
-    }
-
-    result[length] = value;
-    return result;
-});
-
-var _JsArray_foldl = F3(function(func, acc, array)
-{
-    var length = array.length;
-
-    for (var i = 0; i < length; i++)
-    {
-        acc = A2(func, array[i], acc);
-    }
-
-    return acc;
-});
-
-var _JsArray_foldr = F3(function(func, acc, array)
-{
-    for (var i = array.length - 1; i >= 0; i--)
-    {
-        acc = A2(func, array[i], acc);
-    }
-
-    return acc;
-});
-
-var _JsArray_map = F2(function(func, array)
-{
-    var length = array.length;
-    var result = new Array(length);
-
-    for (var i = 0; i < length; i++)
-    {
-        result[i] = func(array[i]);
-    }
-
-    return result;
-});
-
-var _JsArray_indexedMap = F3(function(func, offset, array)
-{
-    var length = array.length;
-    var result = new Array(length);
-
-    for (var i = 0; i < length; i++)
-    {
-        result[i] = A2(func, offset + i, array[i]);
-    }
-
-    return result;
-});
-
-var _JsArray_slice = F3(function(from, to, array)
-{
-    return array.slice(from, to);
-});
-
-var _JsArray_appendN = F3(function(n, dest, source)
-{
-    var destLen = dest.length;
-    var itemsToCopy = n - destLen;
-
-    if (itemsToCopy > source.length)
-    {
-        itemsToCopy = source.length;
-    }
-
-    var size = destLen + itemsToCopy;
-    var result = new Array(size);
-
-    for (var i = 0; i < destLen; i++)
-    {
-        result[i] = dest[i];
-    }
-
-    for (var i = 0; i < itemsToCopy; i++)
-    {
-        result[i + destLen] = source[i];
-    }
-
-    return result;
-});
-
-
-
-// LOG
-
-var _Debug_log_UNUSED = F2(function(tag, value)
-{
-	return value;
-});
-
-var _Debug_log = F2(function(tag, value)
-{
-	console.log(tag + ': ' + _Debug_toString(value));
-	return value;
-});
-
-
-// TODOS
-
-function _Debug_todo(moduleName, region)
-{
-	return function(message) {
-		_Debug_crash(8, moduleName, region, message);
-	};
-}
-
-function _Debug_todoCase(moduleName, region, value)
-{
-	return function(message) {
-		_Debug_crash(9, moduleName, region, value, message);
-	};
-}
-
-
-// TO STRING
-
-function _Debug_toString_UNUSED(value)
-{
-	return '';
-}
-
-function _Debug_toString(value)
-{
-	return _Debug_toAnsiString(false, value);
-}
-
-function _Debug_toAnsiString(ansi, value)
-{
-	if (typeof value === 'function')
-	{
-		return _Debug_internalColor(ansi, '');
-	}
-
-	if (typeof value === 'boolean')
-	{
-		return _Debug_ctorColor(ansi, value ? 'True' : 'False');
-	}
-
-	if (typeof value === 'number')
-	{
-		return _Debug_numberColor(ansi, value + '');
-	}
-
-	if (value instanceof String)
-	{
-		return _Debug_charColor(ansi, "'" + _Debug_addSlashes(value, true) + "'");
-	}
-
-	if (typeof value === 'string')
-	{
-		return _Debug_stringColor(ansi, '"' + _Debug_addSlashes(value, false) + '"');
-	}
-
-	if (typeof value === 'object' && '$' in value)
-	{
-		var tag = value.$;
-
-		if (typeof tag === 'number')
-		{
-			return _Debug_internalColor(ansi, '');
-		}
-
-		if (tag[0] === '#')
-		{
-			var output = [];
-			for (var k in value)
-			{
-				if (k === '$') continue;
-				output.push(_Debug_toAnsiString(ansi, value[k]));
-			}
-			return '(' + output.join(',') + ')';
-		}
-
-		if (tag === 'Set_elm_builtin')
-		{
-			return _Debug_ctorColor(ansi, 'Set')
-				+ _Debug_fadeColor(ansi, '.fromList') + ' '
-				+ _Debug_toAnsiString(ansi, $elm$core$Set$toList(value));
-		}
-
-		if (tag === 'RBNode_elm_builtin' || tag === 'RBEmpty_elm_builtin')
-		{
-			return _Debug_ctorColor(ansi, 'Dict')
-				+ _Debug_fadeColor(ansi, '.fromList') + ' '
-				+ _Debug_toAnsiString(ansi, $elm$core$Dict$toList(value));
-		}
-
-		if (tag === 'Array_elm_builtin')
-		{
-			return _Debug_ctorColor(ansi, 'Array')
-				+ _Debug_fadeColor(ansi, '.fromList') + ' '
-				+ _Debug_toAnsiString(ansi, $elm$core$Array$toList(value));
-		}
-
-		if (tag === '::' || tag === '[]')
-		{
-			var output = '[';
-
-			value.b && (output += _Debug_toAnsiString(ansi, value.a), value = value.b)
-
-			for (; value.b; value = value.b) // WHILE_CONS
-			{
-				output += ',' + _Debug_toAnsiString(ansi, value.a);
-			}
-			return output + ']';
-		}
-
-		var output = '';
-		for (var i in value)
-		{
-			if (i === '$') continue;
-			var str = _Debug_toAnsiString(ansi, value[i]);
-			var c0 = str[0];
-			var parenless = c0 === '{' || c0 === '(' || c0 === '[' || c0 === '<' || c0 === '"' || str.indexOf(' ') < 0;
-			output += ' ' + (parenless ? str : '(' + str + ')');
-		}
-		return _Debug_ctorColor(ansi, tag) + output;
-	}
-
-	if (typeof DataView === 'function' && value instanceof DataView)
-	{
-		return _Debug_stringColor(ansi, '<' + value.byteLength + ' bytes>');
-	}
-
-	if (typeof File !== 'undefined' && value instanceof File)
-	{
-		return _Debug_internalColor(ansi, '<' + value.name + '>');
-	}
-
-	if (typeof value === 'object')
-	{
-		var output = [];
-		for (var key in value)
-		{
-			var field = key[0] === '_' ? key.slice(1) : key;
-			output.push(_Debug_fadeColor(ansi, field) + ' = ' + _Debug_toAnsiString(ansi, value[key]));
-		}
-		if (output.length === 0)
-		{
-			return '{}';
-		}
-		return '{ ' + output.join(', ') + ' }';
-	}
-
-	return _Debug_internalColor(ansi, '');
-}
-
-function _Debug_addSlashes(str, isChar)
-{
-	var s = str
-		.replace(/\\/g, '\\\\')
-		.replace(/\n/g, '\\n')
-		.replace(/\t/g, '\\t')
-		.replace(/\r/g, '\\r')
-		.replace(/\v/g, '\\v')
-		.replace(/\0/g, '\\0');
-
-	if (isChar)
-	{
-		return s.replace(/\'/g, '\\\'');
-	}
-	else
-	{
-		return s.replace(/\"/g, '\\"');
-	}
-}
-
-function _Debug_ctorColor(ansi, string)
-{
-	return ansi ? '\x1b[96m' + string + '\x1b[0m' : string;
-}
-
-function _Debug_numberColor(ansi, string)
-{
-	return ansi ? '\x1b[95m' + string + '\x1b[0m' : string;
-}
-
-function _Debug_stringColor(ansi, string)
-{
-	return ansi ? '\x1b[93m' + string + '\x1b[0m' : string;
-}
-
-function _Debug_charColor(ansi, string)
-{
-	return ansi ? '\x1b[92m' + string + '\x1b[0m' : string;
-}
-
-function _Debug_fadeColor(ansi, string)
-{
-	return ansi ? '\x1b[37m' + string + '\x1b[0m' : string;
-}
-
-function _Debug_internalColor(ansi, string)
-{
-	return ansi ? '\x1b[36m' + string + '\x1b[0m' : string;
-}
-
-function _Debug_toHexDigit(n)
-{
-	return String.fromCharCode(n < 10 ? 48 + n : 55 + n);
-}
-
-
-// CRASH
-
-
-function _Debug_crash_UNUSED(identifier)
-{
-	throw new Error('https://github.com/elm/core/blob/1.0.0/hints/' + identifier + '.md');
-}
-
-
-function _Debug_crash(identifier, fact1, fact2, fact3, fact4)
-{
-	switch(identifier)
-	{
-		case 0:
-			throw new Error('What node should I take over? In JavaScript I need something like:\n\n    Elm.Main.init({\n        node: document.getElementById("elm-node")\n    })\n\nYou need to do this with any Browser.sandbox or Browser.element program.');
-
-		case 1:
-			throw new Error('Browser.application programs cannot handle URLs like this:\n\n    ' + document.location.href + '\n\nWhat is the root? The root of your file system? Try looking at this program with `elm reactor` or some other server.');
-
-		case 2:
-			var jsonErrorString = fact1;
-			throw new Error('Problem with the flags given to your Elm program on initialization.\n\n' + jsonErrorString);
-
-		case 3:
-			var portName = fact1;
-			throw new Error('There can only be one port named `' + portName + '`, but your program has multiple.');
-
-		case 4:
-			var portName = fact1;
-			var problem = fact2;
-			throw new Error('Trying to send an unexpected type of value through port `' + portName + '`:\n' + problem);
-
-		case 5:
-			throw new Error('Trying to use `(==)` on functions.\nThere is no way to know if functions are "the same" in the Elm sense.\nRead more about this at https://package.elm-lang.org/packages/elm/core/latest/Basics#== which describes why it is this way and what the better version will look like.');
-
-		case 6:
-			var moduleName = fact1;
-			throw new Error('Your page is loading multiple Elm scripts with a module named ' + moduleName + '. Maybe a duplicate script is getting loaded accidentally? If not, rename one of them so I know which is which!');
-
-		case 8:
-			var moduleName = fact1;
-			var region = fact2;
-			var message = fact3;
-			throw new Error('TODO in module `' + moduleName + '` ' + _Debug_regionToString(region) + '\n\n' + message);
-
-		case 9:
-			var moduleName = fact1;
-			var region = fact2;
-			var value = fact3;
-			var message = fact4;
-			throw new Error(
-				'TODO in module `' + moduleName + '` from the `case` expression '
-				+ _Debug_regionToString(region) + '\n\nIt received the following value:\n\n    '
-				+ _Debug_toString(value).replace('\n', '\n    ')
-				+ '\n\nBut the branch that handles it says:\n\n    ' + message.replace('\n', '\n    ')
-			);
-
-		case 10:
-			throw new Error('Bug in https://github.com/elm/virtual-dom/issues');
-
-		case 11:
-			throw new Error('Cannot perform mod 0. Division by zero error.');
-	}
-}
-
-function _Debug_regionToString(region)
-{
-	if (region.start.line === region.end.line)
-	{
-		return 'on line ' + region.start.line;
-	}
-	return 'on lines ' + region.start.line + ' through ' + region.end.line;
-}
-
-
-
-// MATH
-
-var _Basics_add = F2(function(a, b) { return a + b; });
-var _Basics_sub = F2(function(a, b) { return a - b; });
-var _Basics_mul = F2(function(a, b) { return a * b; });
-var _Basics_fdiv = F2(function(a, b) { return a / b; });
-var _Basics_idiv = F2(function(a, b) { return (a / b) | 0; });
-var _Basics_pow = F2(Math.pow);
-
-var _Basics_remainderBy = F2(function(b, a) { return a % b; });
-
-// https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/divmodnote-letter.pdf
-var _Basics_modBy = F2(function(modulus, x)
-{
-	var answer = x % modulus;
-	return modulus === 0
-		? _Debug_crash(11)
-		:
-	((answer > 0 && modulus < 0) || (answer < 0 && modulus > 0))
-		? answer + modulus
-		: answer;
-});
-
-
-// TRIGONOMETRY
-
-var _Basics_pi = Math.PI;
-var _Basics_e = Math.E;
-var _Basics_cos = Math.cos;
-var _Basics_sin = Math.sin;
-var _Basics_tan = Math.tan;
-var _Basics_acos = Math.acos;
-var _Basics_asin = Math.asin;
-var _Basics_atan = Math.atan;
-var _Basics_atan2 = F2(Math.atan2);
-
-
-// MORE MATH
-
-function _Basics_toFloat(x) { return x; }
-function _Basics_truncate(n) { return n | 0; }
-function _Basics_isInfinite(n) { return n === Infinity || n === -Infinity; }
-
-var _Basics_ceiling = Math.ceil;
-var _Basics_floor = Math.floor;
-var _Basics_round = Math.round;
-var _Basics_sqrt = Math.sqrt;
-var _Basics_log = Math.log;
-var _Basics_isNaN = isNaN;
-
-
-// BOOLEANS
-
-function _Basics_not(bool) { return !bool; }
-var _Basics_and = F2(function(a, b) { return a && b; });
-var _Basics_or  = F2(function(a, b) { return a || b; });
-var _Basics_xor = F2(function(a, b) { return a !== b; });
-
-
-
-var _String_cons = F2(function(chr, str)
-{
-	return chr + str;
-});
-
-function _String_uncons(string)
-{
-	var word = string.charCodeAt(0);
-	return !isNaN(word)
-		? $elm$core$Maybe$Just(
-			0xD800 <= word && word <= 0xDBFF
-				? _Utils_Tuple2(_Utils_chr(string[0] + string[1]), string.slice(2))
-				: _Utils_Tuple2(_Utils_chr(string[0]), string.slice(1))
-		)
-		: $elm$core$Maybe$Nothing;
-}
-
-var _String_append = F2(function(a, b)
-{
-	return a + b;
-});
-
-function _String_length(str)
-{
-	return str.length;
-}
-
-var _String_map = F2(function(func, string)
-{
-	var len = string.length;
-	var array = new Array(len);
-	var i = 0;
-	while (i < len)
-	{
-		var word = string.charCodeAt(i);
-		if (0xD800 <= word && word <= 0xDBFF)
-		{
-			array[i] = func(_Utils_chr(string[i] + string[i+1]));
-			i += 2;
-			continue;
-		}
-		array[i] = func(_Utils_chr(string[i]));
-		i++;
-	}
-	return array.join('');
-});
-
-var _String_filter = F2(function(isGood, str)
-{
-	var arr = [];
-	var len = str.length;
-	var i = 0;
-	while (i < len)
-	{
-		var char = str[i];
-		var word = str.charCodeAt(i);
-		i++;
-		if (0xD800 <= word && word <= 0xDBFF)
-		{
-			char += str[i];
-			i++;
-		}
-
-		if (isGood(_Utils_chr(char)))
-		{
-			arr.push(char);
-		}
-	}
-	return arr.join('');
-});
-
-function _String_reverse(str)
-{
-	var len = str.length;
-	var arr = new Array(len);
-	var i = 0;
-	while (i < len)
-	{
-		var word = str.charCodeAt(i);
-		if (0xD800 <= word && word <= 0xDBFF)
-		{
-			arr[len - i] = str[i + 1];
-			i++;
-			arr[len - i] = str[i - 1];
-			i++;
-		}
-		else
-		{
-			arr[len - i] = str[i];
-			i++;
-		}
-	}
-	return arr.join('');
-}
-
-var _String_foldl = F3(function(func, state, string)
-{
-	var len = string.length;
-	var i = 0;
-	while (i < len)
-	{
-		var char = string[i];
-		var word = string.charCodeAt(i);
-		i++;
-		if (0xD800 <= word && word <= 0xDBFF)
-		{
-			char += string[i];
-			i++;
-		}
-		state = A2(func, _Utils_chr(char), state);
-	}
-	return state;
-});
-
-var _String_foldr = F3(function(func, state, string)
-{
-	var i = string.length;
-	while (i--)
-	{
-		var char = string[i];
-		var word = string.charCodeAt(i);
-		if (0xDC00 <= word && word <= 0xDFFF)
-		{
-			i--;
-			char = string[i] + char;
-		}
-		state = A2(func, _Utils_chr(char), state);
-	}
-	return state;
-});
-
-var _String_split = F2(function(sep, str)
-{
-	return str.split(sep);
-});
-
-var _String_join = F2(function(sep, strs)
-{
-	return strs.join(sep);
-});
-
-var _String_slice = F3(function(start, end, str) {
-	return str.slice(start, end);
-});
-
-function _String_trim(str)
-{
-	return str.trim();
-}
-
-function _String_trimLeft(str)
-{
-	return str.replace(/^\s+/, '');
-}
-
-function _String_trimRight(str)
-{
-	return str.replace(/\s+$/, '');
-}
-
-function _String_words(str)
-{
-	return _List_fromArray(str.trim().split(/\s+/g));
-}
-
-function _String_lines(str)
-{
-	return _List_fromArray(str.split(/\r\n|\r|\n/g));
-}
-
-function _String_toUpper(str)
-{
-	return str.toUpperCase();
-}
-
-function _String_toLower(str)
-{
-	return str.toLowerCase();
-}
-
-var _String_any = F2(function(isGood, string)
-{
-	var i = string.length;
-	while (i--)
-	{
-		var char = string[i];
-		var word = string.charCodeAt(i);
-		if (0xDC00 <= word && word <= 0xDFFF)
-		{
-			i--;
-			char = string[i] + char;
-		}
-		if (isGood(_Utils_chr(char)))
-		{
-			return true;
-		}
-	}
-	return false;
-});
-
-var _String_all = F2(function(isGood, string)
-{
-	var i = string.length;
-	while (i--)
-	{
-		var char = string[i];
-		var word = string.charCodeAt(i);
-		if (0xDC00 <= word && word <= 0xDFFF)
-		{
-			i--;
-			char = string[i] + char;
-		}
-		if (!isGood(_Utils_chr(char)))
-		{
-			return false;
-		}
-	}
-	return true;
-});
-
-var _String_contains = F2(function(sub, str)
-{
-	return str.indexOf(sub) > -1;
-});
-
-var _String_startsWith = F2(function(sub, str)
-{
-	return str.indexOf(sub) === 0;
-});
-
-var _String_endsWith = F2(function(sub, str)
-{
-	return str.length >= sub.length &&
-		str.lastIndexOf(sub) === str.length - sub.length;
-});
-
-var _String_indexes = F2(function(sub, str)
-{
-	var subLen = sub.length;
-
-	if (subLen < 1)
-	{
-		return _List_Nil;
-	}
-
-	var i = 0;
-	var is = [];
-
-	while ((i = str.indexOf(sub, i)) > -1)
-	{
-		is.push(i);
-		i = i + subLen;
-	}
-
-	return _List_fromArray(is);
-});
-
-
-// TO STRING
-
-function _String_fromNumber(number)
-{
-	return number + '';
-}
-
-
-// INT CONVERSIONS
-
-function _String_toInt(str)
-{
-	var total = 0;
-	var code0 = str.charCodeAt(0);
-	var start = code0 == 0x2B /* + */ || code0 == 0x2D /* - */ ? 1 : 0;
-
-	for (var i = start; i < str.length; ++i)
-	{
-		var code = str.charCodeAt(i);
-		if (code < 0x30 || 0x39 < code)
-		{
-			return $elm$core$Maybe$Nothing;
-		}
-		total = 10 * total + code - 0x30;
-	}
-
-	return i == start
-		? $elm$core$Maybe$Nothing
-		: $elm$core$Maybe$Just(code0 == 0x2D ? -total : total);
-}
-
-
-// FLOAT CONVERSIONS
-
-function _String_toFloat(s)
-{
-	// check if it is a hex, octal, or binary number
-	if (s.length === 0 || /[\sxbo]/.test(s))
-	{
-		return $elm$core$Maybe$Nothing;
-	}
-	var n = +s;
-	// faster isNaN check
-	return n === n ? $elm$core$Maybe$Just(n) : $elm$core$Maybe$Nothing;
-}
-
-function _String_fromList(chars)
-{
-	return _List_toArray(chars).join('');
-}
-
-
-
-
-function _Char_toCode(char)
-{
-	var code = char.charCodeAt(0);
-	if (0xD800 <= code && code <= 0xDBFF)
-	{
-		return (code - 0xD800) * 0x400 + char.charCodeAt(1) - 0xDC00 + 0x10000
-	}
-	return code;
-}
-
-function _Char_fromCode(code)
-{
-	return _Utils_chr(
-		(code < 0 || 0x10FFFF < code)
-			? '\uFFFD'
-			:
-		(code <= 0xFFFF)
-			? String.fromCharCode(code)
-			:
-		(code -= 0x10000,
-			String.fromCharCode(Math.floor(code / 0x400) + 0xD800, code % 0x400 + 0xDC00)
-		)
-	);
-}
-
-function _Char_toUpper(char)
-{
-	return _Utils_chr(char.toUpperCase());
-}
-
-function _Char_toLower(char)
-{
-	return _Utils_chr(char.toLowerCase());
-}
-
-function _Char_toLocaleUpper(char)
-{
-	return _Utils_chr(char.toLocaleUpperCase());
-}
-
-function _Char_toLocaleLower(char)
-{
-	return _Utils_chr(char.toLocaleLowerCase());
-}
-
-
-
-/**/
-function _Json_errorToString(error)
-{
-	return $elm$json$Json$Decode$errorToString(error);
-}
-//*/
-
-
-// CORE DECODERS
-
-function _Json_succeed(msg)
-{
-	return {
-		$: 0,
-		a: msg
-	};
-}
-
-function _Json_fail(msg)
-{
-	return {
-		$: 1,
-		a: msg
-	};
-}
-
-function _Json_decodePrim(decoder)
-{
-	return { $: 2, b: decoder };
-}
-
-var _Json_decodeInt = _Json_decodePrim(function(value) {
-	return (typeof value !== 'number')
-		? _Json_expecting('an INT', value)
-		:
-	(-2147483647 < value && value < 2147483647 && (value | 0) === value)
-		? $elm$core$Result$Ok(value)
-		:
-	(isFinite(value) && !(value % 1))
-		? $elm$core$Result$Ok(value)
-		: _Json_expecting('an INT', value);
-});
-
-var _Json_decodeBool = _Json_decodePrim(function(value) {
-	return (typeof value === 'boolean')
-		? $elm$core$Result$Ok(value)
-		: _Json_expecting('a BOOL', value);
-});
-
-var _Json_decodeFloat = _Json_decodePrim(function(value) {
-	return (typeof value === 'number')
-		? $elm$core$Result$Ok(value)
-		: _Json_expecting('a FLOAT', value);
-});
-
-var _Json_decodeValue = _Json_decodePrim(function(value) {
-	return $elm$core$Result$Ok(_Json_wrap(value));
-});
-
-var _Json_decodeString = _Json_decodePrim(function(value) {
-	return (typeof value === 'string')
-		? $elm$core$Result$Ok(value)
-		: (value instanceof String)
-			? $elm$core$Result$Ok(value + '')
-			: _Json_expecting('a STRING', value);
-});
-
-function _Json_decodeList(decoder) { return { $: 3, b: decoder }; }
-function _Json_decodeArray(decoder) { return { $: 4, b: decoder }; }
-
-function _Json_decodeNull(value) { return { $: 5, c: value }; }
-
-var _Json_decodeField = F2(function(field, decoder)
-{
-	return {
-		$: 6,
-		d: field,
-		b: decoder
-	};
-});
-
-var _Json_decodeIndex = F2(function(index, decoder)
-{
-	return {
-		$: 7,
-		e: index,
-		b: decoder
-	};
-});
-
-function _Json_decodeKeyValuePairs(decoder)
-{
-	return {
-		$: 8,
-		b: decoder
-	};
-}
-
-function _Json_mapMany(f, decoders)
-{
-	return {
-		$: 9,
-		f: f,
-		g: decoders
-	};
-}
-
-var _Json_andThen = F2(function(callback, decoder)
-{
-	return {
-		$: 10,
-		b: decoder,
-		h: callback
-	};
-});
-
-function _Json_oneOf(decoders)
-{
-	return {
-		$: 11,
-		g: decoders
-	};
-}
-
-
-// DECODING OBJECTS
-
-var _Json_map1 = F2(function(f, d1)
-{
-	return _Json_mapMany(f, [d1]);
-});
-
-var _Json_map2 = F3(function(f, d1, d2)
-{
-	return _Json_mapMany(f, [d1, d2]);
-});
-
-var _Json_map3 = F4(function(f, d1, d2, d3)
-{
-	return _Json_mapMany(f, [d1, d2, d3]);
-});
-
-var _Json_map4 = F5(function(f, d1, d2, d3, d4)
-{
-	return _Json_mapMany(f, [d1, d2, d3, d4]);
-});
-
-var _Json_map5 = F6(function(f, d1, d2, d3, d4, d5)
-{
-	return _Json_mapMany(f, [d1, d2, d3, d4, d5]);
-});
-
-var _Json_map6 = F7(function(f, d1, d2, d3, d4, d5, d6)
-{
-	return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6]);
-});
-
-var _Json_map7 = F8(function(f, d1, d2, d3, d4, d5, d6, d7)
-{
-	return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7]);
-});
-
-var _Json_map8 = F9(function(f, d1, d2, d3, d4, d5, d6, d7, d8)
-{
-	return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7, d8]);
-});
-
-
-// DECODE
-
-var _Json_runOnString = F2(function(decoder, string)
-{
-	try
-	{
-		var value = JSON.parse(string);
-		return _Json_runHelp(decoder, value);
-	}
-	catch (e)
-	{
-		return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, 'This is not valid JSON! ' + e.message, _Json_wrap(string)));
-	}
-});
-
-var _Json_run = F2(function(decoder, value)
-{
-	return _Json_runHelp(decoder, _Json_unwrap(value));
-});
-
-function _Json_runHelp(decoder, value)
-{
-	switch (decoder.$)
-	{
-		case 2:
-			return decoder.b(value);
-
-		case 5:
-			return (value === null)
-				? $elm$core$Result$Ok(decoder.c)
-				: _Json_expecting('null', value);
-
-		case 3:
-			if (!_Json_isArray(value))
-			{
-				return _Json_expecting('a LIST', value);
-			}
-			return _Json_runArrayDecoder(decoder.b, value, _List_fromArray);
-
-		case 4:
-			if (!_Json_isArray(value))
-			{
-				return _Json_expecting('an ARRAY', value);
-			}
-			return _Json_runArrayDecoder(decoder.b, value, _Json_toElmArray);
-
-		case 6:
-			var field = decoder.d;
-			if (typeof value !== 'object' || value === null || !(field in value))
-			{
-				return _Json_expecting('an OBJECT with a field named `' + field + '`', value);
-			}
-			var result = _Json_runHelp(decoder.b, value[field]);
-			return ($elm$core$Result$isOk(result)) ? result : $elm$core$Result$Err(A2($elm$json$Json$Decode$Field, field, result.a));
-
-		case 7:
-			var index = decoder.e;
-			if (!_Json_isArray(value))
-			{
-				return _Json_expecting('an ARRAY', value);
-			}
-			if (index >= value.length)
-			{
-				return _Json_expecting('a LONGER array. Need index ' + index + ' but only see ' + value.length + ' entries', value);
-			}
-			var result = _Json_runHelp(decoder.b, value[index]);
-			return ($elm$core$Result$isOk(result)) ? result : $elm$core$Result$Err(A2($elm$json$Json$Decode$Index, index, result.a));
-
-		case 8:
-			if (typeof value !== 'object' || value === null || _Json_isArray(value))
-			{
-				return _Json_expecting('an OBJECT', value);
-			}
-
-			var keyValuePairs = _List_Nil;
-			// TODO test perf of Object.keys and switch when support is good enough
-			for (var key in value)
-			{
-				if (value.hasOwnProperty(key))
-				{
-					var result = _Json_runHelp(decoder.b, value[key]);
-					if (!$elm$core$Result$isOk(result))
-					{
-						return $elm$core$Result$Err(A2($elm$json$Json$Decode$Field, key, result.a));
-					}
-					keyValuePairs = _List_Cons(_Utils_Tuple2(key, result.a), keyValuePairs);
-				}
-			}
-			return $elm$core$Result$Ok($elm$core$List$reverse(keyValuePairs));
-
-		case 9:
-			var answer = decoder.f;
-			var decoders = decoder.g;
-			for (var i = 0; i < decoders.length; i++)
-			{
-				var result = _Json_runHelp(decoders[i], value);
-				if (!$elm$core$Result$isOk(result))
-				{
-					return result;
-				}
-				answer = answer(result.a);
-			}
-			return $elm$core$Result$Ok(answer);
-
-		case 10:
-			var result = _Json_runHelp(decoder.b, value);
-			return (!$elm$core$Result$isOk(result))
-				? result
-				: _Json_runHelp(decoder.h(result.a), value);
-
-		case 11:
-			var errors = _List_Nil;
-			for (var temp = decoder.g; temp.b; temp = temp.b) // WHILE_CONS
-			{
-				var result = _Json_runHelp(temp.a, value);
-				if ($elm$core$Result$isOk(result))
-				{
-					return result;
-				}
-				errors = _List_Cons(result.a, errors);
-			}
-			return $elm$core$Result$Err($elm$json$Json$Decode$OneOf($elm$core$List$reverse(errors)));
-
-		case 1:
-			return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, decoder.a, _Json_wrap(value)));
-
-		case 0:
-			return $elm$core$Result$Ok(decoder.a);
-	}
-}
-
-function _Json_runArrayDecoder(decoder, value, toElmValue)
-{
-	var len = value.length;
-	var array = new Array(len);
-	for (var i = 0; i < len; i++)
-	{
-		var result = _Json_runHelp(decoder, value[i]);
-		if (!$elm$core$Result$isOk(result))
-		{
-			return $elm$core$Result$Err(A2($elm$json$Json$Decode$Index, i, result.a));
-		}
-		array[i] = result.a;
-	}
-	return $elm$core$Result$Ok(toElmValue(array));
-}
-
-function _Json_isArray(value)
-{
-	return Array.isArray(value) || (typeof FileList !== 'undefined' && value instanceof FileList);
-}
-
-function _Json_toElmArray(array)
-{
-	return A2($elm$core$Array$initialize, array.length, function(i) { return array[i]; });
-}
-
-function _Json_expecting(type, value)
-{
-	return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, 'Expecting ' + type, _Json_wrap(value)));
-}
-
-
-// EQUALITY
-
-function _Json_equality(x, y)
-{
-	if (x === y)
-	{
-		return true;
-	}
-
-	if (x.$ !== y.$)
-	{
-		return false;
-	}
-
-	switch (x.$)
-	{
-		case 0:
-		case 1:
-			return x.a === y.a;
-
-		case 2:
-			return x.b === y.b;
-
-		case 5:
-			return x.c === y.c;
-
-		case 3:
-		case 4:
-		case 8:
-			return _Json_equality(x.b, y.b);
-
-		case 6:
-			return x.d === y.d && _Json_equality(x.b, y.b);
-
-		case 7:
-			return x.e === y.e && _Json_equality(x.b, y.b);
-
-		case 9:
-			return x.f === y.f && _Json_listEquality(x.g, y.g);
-
-		case 10:
-			return x.h === y.h && _Json_equality(x.b, y.b);
-
-		case 11:
-			return _Json_listEquality(x.g, y.g);
-	}
-}
-
-function _Json_listEquality(aDecoders, bDecoders)
-{
-	var len = aDecoders.length;
-	if (len !== bDecoders.length)
-	{
-		return false;
-	}
-	for (var i = 0; i < len; i++)
-	{
-		if (!_Json_equality(aDecoders[i], bDecoders[i]))
-		{
-			return false;
-		}
-	}
-	return true;
-}
-
-
-// ENCODE
-
-var _Json_encode = F2(function(indentLevel, value)
-{
-	return JSON.stringify(_Json_unwrap(value), null, indentLevel) + '';
-});
-
-function _Json_wrap(value) { return { $: 0, a: value }; }
-function _Json_unwrap(value) { return value.a; }
-
-function _Json_wrap_UNUSED(value) { return value; }
-function _Json_unwrap_UNUSED(value) { return value; }
-
-function _Json_emptyArray() { return []; }
-function _Json_emptyObject() { return {}; }
-
-var _Json_addField = F3(function(key, value, object)
-{
-	object[key] = _Json_unwrap(value);
-	return object;
-});
-
-function _Json_addEntry(func)
-{
-	return F2(function(entry, array)
-	{
-		array.push(_Json_unwrap(func(entry)));
-		return array;
-	});
-}
-
-var _Json_encodeNull = _Json_wrap(null);
-
-
-
-// TASKS
-
-function _Scheduler_succeed(value)
-{
-	return {
-		$: 0,
-		a: value
-	};
-}
-
-function _Scheduler_fail(error)
-{
-	return {
-		$: 1,
-		a: error
-	};
-}
-
-function _Scheduler_binding(callback)
-{
-	return {
-		$: 2,
-		b: callback,
-		c: null
-	};
-}
-
-var _Scheduler_andThen = F2(function(callback, task)
-{
-	return {
-		$: 3,
-		b: callback,
-		d: task
-	};
-});
-
-var _Scheduler_onError = F2(function(callback, task)
-{
-	return {
-		$: 4,
-		b: callback,
-		d: task
-	};
-});
-
-function _Scheduler_receive(callback)
-{
-	return {
-		$: 5,
-		b: callback
-	};
-}
-
-
-// PROCESSES
-
-var _Scheduler_guid = 0;
-
-function _Scheduler_rawSpawn(task)
-{
-	var proc = {
-		$: 0,
-		e: _Scheduler_guid++,
-		f: task,
-		g: null,
-		h: []
-	};
-
-	_Scheduler_enqueue(proc);
-
-	return proc;
-}
-
-function _Scheduler_spawn(task)
-{
-	return _Scheduler_binding(function(callback) {
-		callback(_Scheduler_succeed(_Scheduler_rawSpawn(task)));
-	});
-}
-
-function _Scheduler_rawSend(proc, msg)
-{
-	proc.h.push(msg);
-	_Scheduler_enqueue(proc);
-}
-
-var _Scheduler_send = F2(function(proc, msg)
-{
-	return _Scheduler_binding(function(callback) {
-		_Scheduler_rawSend(proc, msg);
-		callback(_Scheduler_succeed(_Utils_Tuple0));
-	});
-});
-
-function _Scheduler_kill(proc)
-{
-	return _Scheduler_binding(function(callback) {
-		var task = proc.f;
-		if (task.$ === 2 && task.c)
-		{
-			task.c();
-		}
-
-		proc.f = null;
-
-		callback(_Scheduler_succeed(_Utils_Tuple0));
-	});
-}
-
-
-/* STEP PROCESSES
-
-type alias Process =
-  { $ : tag
-  , id : unique_id
-  , root : Task
-  , stack : null | { $: SUCCEED | FAIL, a: callback, b: stack }
-  , mailbox : [msg]
-  }
-
-*/
-
-
-var _Scheduler_working = false;
-var _Scheduler_queue = [];
-
-
-function _Scheduler_enqueue(proc)
-{
-	_Scheduler_queue.push(proc);
-	if (_Scheduler_working)
-	{
-		return;
-	}
-	_Scheduler_working = true;
-	while (proc = _Scheduler_queue.shift())
-	{
-		_Scheduler_step(proc);
-	}
-	_Scheduler_working = false;
-}
-
-
-function _Scheduler_step(proc)
-{
-	while (proc.f)
-	{
-		var rootTag = proc.f.$;
-		if (rootTag === 0 || rootTag === 1)
-		{
-			while (proc.g && proc.g.$ !== rootTag)
-			{
-				proc.g = proc.g.i;
-			}
-			if (!proc.g)
-			{
-				return;
-			}
-			proc.f = proc.g.b(proc.f.a);
-			proc.g = proc.g.i;
-		}
-		else if (rootTag === 2)
-		{
-			proc.f.c = proc.f.b(function(newRoot) {
-				proc.f = newRoot;
-				_Scheduler_enqueue(proc);
-			});
-			return;
-		}
-		else if (rootTag === 5)
-		{
-			if (proc.h.length === 0)
-			{
-				return;
-			}
-			proc.f = proc.f.b(proc.h.shift());
-		}
-		else // if (rootTag === 3 || rootTag === 4)
-		{
-			proc.g = {
-				$: rootTag === 3 ? 0 : 1,
-				b: proc.f.b,
-				i: proc.g
-			};
-			proc.f = proc.f.d;
-		}
-	}
-}
-
-
-
-function _Process_sleep(time)
-{
-	return _Scheduler_binding(function(callback) {
-		var id = setTimeout(function() {
-			callback(_Scheduler_succeed(_Utils_Tuple0));
-		}, time);
-
-		return function() { clearTimeout(id); };
-	});
-}
-
-
-
-
-// PROGRAMS
-
-
-var _Platform_worker = F4(function(impl, flagDecoder, debugMetadata, args)
-{
-	return _Platform_initialize(
-		flagDecoder,
-		args,
-		impl.init,
-		impl.update,
-		impl.subscriptions,
-		function() { return function() {} }
-	);
-});
-
-
-
-// INITIALIZE A PROGRAM
-
-
-function _Platform_initialize(flagDecoder, args, init, update, subscriptions, stepperBuilder)
-{
-	var result = A2(_Json_run, flagDecoder, _Json_wrap(args ? args['flags'] : undefined));
-	$elm$core$Result$isOk(result) || _Debug_crash(2 /**/, _Json_errorToString(result.a) /**/);
-	var managers = {};
-	var initPair = init(result.a);
-	var model = initPair.a;
-	var stepper = stepperBuilder(sendToApp, model);
-	var ports = _Platform_setupEffects(managers, sendToApp);
-
-	function sendToApp(msg, viewMetadata)
-	{
-		var pair = A2(update, msg, model);
-		stepper(model = pair.a, viewMetadata);
-		_Platform_enqueueEffects(managers, pair.b, subscriptions(model));
-	}
-
-	_Platform_enqueueEffects(managers, initPair.b, subscriptions(model));
-
-	return ports ? { ports: ports } : {};
-}
-
-
-
-// TRACK PRELOADS
-//
-// This is used by code in elm/browser and elm/http
-// to register any HTTP requests that are triggered by init.
-//
-
-
-var _Platform_preload;
-
-
-function _Platform_registerPreload(url)
-{
-	_Platform_preload.add(url);
-}
-
-
-
-// EFFECT MANAGERS
-
-
-var _Platform_effectManagers = {};
-
-
-function _Platform_setupEffects(managers, sendToApp)
-{
-	var ports;
-
-	// setup all necessary effect managers
-	for (var key in _Platform_effectManagers)
-	{
-		var manager = _Platform_effectManagers[key];
-
-		if (manager.a)
-		{
-			ports = ports || {};
-			ports[key] = manager.a(key, sendToApp);
-		}
-
-		managers[key] = _Platform_instantiateManager(manager, sendToApp);
-	}
-
-	return ports;
-}
-
-
-function _Platform_createManager(init, onEffects, onSelfMsg, cmdMap, subMap)
-{
-	return {
-		b: init,
-		c: onEffects,
-		d: onSelfMsg,
-		e: cmdMap,
-		f: subMap
-	};
-}
-
-
-function _Platform_instantiateManager(info, sendToApp)
-{
-	var router = {
-		g: sendToApp,
-		h: undefined
-	};
-
-	var onEffects = info.c;
-	var onSelfMsg = info.d;
-	var cmdMap = info.e;
-	var subMap = info.f;
-
-	function loop(state)
-	{
-		return A2(_Scheduler_andThen, loop, _Scheduler_receive(function(msg)
-		{
-			var value = msg.a;
-
-			if (msg.$ === 0)
-			{
-				return A3(onSelfMsg, router, value, state);
-			}
-
-			return cmdMap && subMap
-				? A4(onEffects, router, value.i, value.j, state)
-				: A3(onEffects, router, cmdMap ? value.i : value.j, state);
-		}));
-	}
-
-	return router.h = _Scheduler_rawSpawn(A2(_Scheduler_andThen, loop, info.b));
-}
-
-
-
-// ROUTING
-
-
-var _Platform_sendToApp = F2(function(router, msg)
-{
-	return _Scheduler_binding(function(callback)
-	{
-		router.g(msg);
-		callback(_Scheduler_succeed(_Utils_Tuple0));
-	});
-});
-
-
-var _Platform_sendToSelf = F2(function(router, msg)
-{
-	return A2(_Scheduler_send, router.h, {
-		$: 0,
-		a: msg
-	});
-});
-
-
-
-// BAGS
-
-
-function _Platform_leaf(home)
-{
-	return function(value)
-	{
-		return {
-			$: 1,
-			k: home,
-			l: value
-		};
-	};
-}
-
-
-function _Platform_batch(list)
-{
-	return {
-		$: 2,
-		m: list
-	};
-}
-
-
-var _Platform_map = F2(function(tagger, bag)
-{
-	return {
-		$: 3,
-		n: tagger,
-		o: bag
-	}
-});
-
-
-
-// PIPE BAGS INTO EFFECT MANAGERS
-//
-// Effects must be queued!
-//
-// Say your init contains a synchronous command, like Time.now or Time.here
-//
-//   - This will produce a batch of effects (FX_1)
-//   - The synchronous task triggers the subsequent `update` call
-//   - This will produce a batch of effects (FX_2)
-//
-// If we just start dispatching FX_2, subscriptions from FX_2 can be processed
-// before subscriptions from FX_1. No good! Earlier versions of this code had
-// this problem, leading to these reports:
-//
-//   https://github.com/elm/core/issues/980
-//   https://github.com/elm/core/pull/981
-//   https://github.com/elm/compiler/issues/1776
-//
-// The queue is necessary to avoid ordering issues for synchronous commands.
-
-
-// Why use true/false here? Why not just check the length of the queue?
-// The goal is to detect "are we currently dispatching effects?" If we
-// are, we need to bail and let the ongoing while loop handle things.
-//
-// Now say the queue has 1 element. When we dequeue the final element,
-// the queue will be empty, but we are still actively dispatching effects.
-// So you could get queue jumping in a really tricky category of cases.
-//
-var _Platform_effectsQueue = [];
-var _Platform_effectsActive = false;
-
-
-function _Platform_enqueueEffects(managers, cmdBag, subBag)
-{
-	_Platform_effectsQueue.push({ p: managers, q: cmdBag, r: subBag });
-
-	if (_Platform_effectsActive) return;
-
-	_Platform_effectsActive = true;
-	for (var fx; fx = _Platform_effectsQueue.shift(); )
-	{
-		_Platform_dispatchEffects(fx.p, fx.q, fx.r);
-	}
-	_Platform_effectsActive = false;
-}
-
-
-function _Platform_dispatchEffects(managers, cmdBag, subBag)
-{
-	var effectsDict = {};
-	_Platform_gatherEffects(true, cmdBag, effectsDict, null);
-	_Platform_gatherEffects(false, subBag, effectsDict, null);
-
-	for (var home in managers)
-	{
-		_Scheduler_rawSend(managers[home], {
-			$: 'fx',
-			a: effectsDict[home] || { i: _List_Nil, j: _List_Nil }
-		});
-	}
-}
-
-
-function _Platform_gatherEffects(isCmd, bag, effectsDict, taggers)
-{
-	switch (bag.$)
-	{
-		case 1:
-			var home = bag.k;
-			var effect = _Platform_toEffect(isCmd, home, taggers, bag.l);
-			effectsDict[home] = _Platform_insert(isCmd, effect, effectsDict[home]);
-			return;
-
-		case 2:
-			for (var list = bag.m; list.b; list = list.b) // WHILE_CONS
-			{
-				_Platform_gatherEffects(isCmd, list.a, effectsDict, taggers);
-			}
-			return;
-
-		case 3:
-			_Platform_gatherEffects(isCmd, bag.o, effectsDict, {
-				s: bag.n,
-				t: taggers
-			});
-			return;
-	}
-}
-
-
-function _Platform_toEffect(isCmd, home, taggers, value)
-{
-	function applyTaggers(x)
-	{
-		for (var temp = taggers; temp; temp = temp.t)
-		{
-			x = temp.s(x);
-		}
-		return x;
-	}
-
-	var map = isCmd
-		? _Platform_effectManagers[home].e
-		: _Platform_effectManagers[home].f;
-
-	return A2(map, applyTaggers, value)
-}
-
-
-function _Platform_insert(isCmd, newEffect, effects)
-{
-	effects = effects || { i: _List_Nil, j: _List_Nil };
-
-	isCmd
-		? (effects.i = _List_Cons(newEffect, effects.i))
-		: (effects.j = _List_Cons(newEffect, effects.j));
-
-	return effects;
-}
-
-
-
-// PORTS
-
-
-function _Platform_checkPortName(name)
-{
-	if (_Platform_effectManagers[name])
-	{
-		_Debug_crash(3, name)
-	}
-}
-
-
-
-// OUTGOING PORTS
-
-
-function _Platform_outgoingPort(name, converter)
-{
-	_Platform_checkPortName(name);
-	_Platform_effectManagers[name] = {
-		e: _Platform_outgoingPortMap,
-		u: converter,
-		a: _Platform_setupOutgoingPort
-	};
-	return _Platform_leaf(name);
-}
-
-
-var _Platform_outgoingPortMap = F2(function(tagger, value) { return value; });
-
-
-function _Platform_setupOutgoingPort(name)
-{
-	var subs = [];
-	var converter = _Platform_effectManagers[name].u;
-
-	// CREATE MANAGER
-
-	var init = _Process_sleep(0);
-
-	_Platform_effectManagers[name].b = init;
-	_Platform_effectManagers[name].c = F3(function(router, cmdList, state)
-	{
-		for ( ; cmdList.b; cmdList = cmdList.b) // WHILE_CONS
-		{
-			// grab a separate reference to subs in case unsubscribe is called
-			var currentSubs = subs;
-			var value = _Json_unwrap(converter(cmdList.a));
-			for (var i = 0; i < currentSubs.length; i++)
-			{
-				currentSubs[i](value);
-			}
-		}
-		return init;
-	});
-
-	// PUBLIC API
-
-	function subscribe(callback)
-	{
-		subs.push(callback);
-	}
-
-	function unsubscribe(callback)
-	{
-		// copy subs into a new array in case unsubscribe is called within a
-		// subscribed callback
-		subs = subs.slice();
-		var index = subs.indexOf(callback);
-		if (index >= 0)
-		{
-			subs.splice(index, 1);
-		}
-	}
-
-	return {
-		subscribe: subscribe,
-		unsubscribe: unsubscribe
-	};
-}
-
-
-
-// INCOMING PORTS
-
-
-function _Platform_incomingPort(name, converter)
-{
-	_Platform_checkPortName(name);
-	_Platform_effectManagers[name] = {
-		f: _Platform_incomingPortMap,
-		u: converter,
-		a: _Platform_setupIncomingPort
-	};
-	return _Platform_leaf(name);
-}
-
-
-var _Platform_incomingPortMap = F2(function(tagger, finalTagger)
-{
-	return function(value)
-	{
-		return tagger(finalTagger(value));
-	};
-});
-
-
-function _Platform_setupIncomingPort(name, sendToApp)
-{
-	var subs = _List_Nil;
-	var converter = _Platform_effectManagers[name].u;
-
-	// CREATE MANAGER
-
-	var init = _Scheduler_succeed(null);
-
-	_Platform_effectManagers[name].b = init;
-	_Platform_effectManagers[name].c = F3(function(router, subList, state)
-	{
-		subs = subList;
-		return init;
-	});
-
-	// PUBLIC API
-
-	function send(incomingValue)
-	{
-		var result = A2(_Json_run, converter, _Json_wrap(incomingValue));
-
-		$elm$core$Result$isOk(result) || _Debug_crash(4, name, result.a);
-
-		var value = result.a;
-		for (var temp = subs; temp.b; temp = temp.b) // WHILE_CONS
-		{
-			sendToApp(temp.a(value));
-		}
-	}
-
-	return { send: send };
-}
-
-
-
-// EXPORT ELM MODULES
-//
-// Have DEBUG and PROD versions so that we can (1) give nicer errors in
-// debug mode and (2) not pay for the bits needed for that in prod mode.
-//
-
-
-function _Platform_export_UNUSED(exports)
-{
-	scope['Elm']
-		? _Platform_mergeExportsProd(scope['Elm'], exports)
-		: scope['Elm'] = exports;
-}
-
-
-function _Platform_mergeExportsProd(obj, exports)
-{
-	for (var name in exports)
-	{
-		(name in obj)
-			? (name == 'init')
-				? _Debug_crash(6)
-				: _Platform_mergeExportsProd(obj[name], exports[name])
-			: (obj[name] = exports[name]);
-	}
-}
-
-
-function _Platform_export(exports)
-{
-	scope['Elm']
-		? _Platform_mergeExportsDebug('Elm', scope['Elm'], exports)
-		: scope['Elm'] = exports;
-}
-
-
-function _Platform_mergeExportsDebug(moduleName, obj, exports)
-{
-	for (var name in exports)
-	{
-		(name in obj)
-			? (name == 'init')
-				? _Debug_crash(6, moduleName)
-				: _Platform_mergeExportsDebug(moduleName + '.' + name, obj[name], exports[name])
-			: (obj[name] = exports[name]);
-	}
-}
-
-
-
-
-// HELPERS
-
-
-var _VirtualDom_divertHrefToApp;
-
-var _VirtualDom_doc = typeof document !== 'undefined' ? document : {};
-
-
-function _VirtualDom_appendChild(parent, child)
-{
-	parent.appendChild(child);
-}
-
-var _VirtualDom_init = F4(function(virtualNode, flagDecoder, debugMetadata, args)
-{
-	// NOTE: this function needs _Platform_export available to work
-
-	/**_UNUSED/
-	var node = args['node'];
-	//*/
-	/**/
-	var node = args && args['node'] ? args['node'] : _Debug_crash(0);
-	//*/
-
-	node.parentNode.replaceChild(
-		_VirtualDom_render(virtualNode, function() {}),
-		node
-	);
-
-	return {};
-});
-
-
-
-// TEXT
-
-
-function _VirtualDom_text(string)
-{
-	return {
-		$: 0,
-		a: string
-	};
-}
-
-
-
-// NODE
-
-
-var _VirtualDom_nodeNS = F2(function(namespace, tag)
-{
-	return F2(function(factList, kidList)
-	{
-		for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS
-		{
-			var kid = kidList.a;
-			descendantsCount += (kid.b || 0);
-			kids.push(kid);
-		}
-		descendantsCount += kids.length;
-
-		return {
-			$: 1,
-			c: tag,
-			d: _VirtualDom_organizeFacts(factList),
-			e: kids,
-			f: namespace,
-			b: descendantsCount
-		};
-	});
-});
-
-
-var _VirtualDom_node = _VirtualDom_nodeNS(undefined);
-
-
-
-// KEYED NODE
-
-
-var _VirtualDom_keyedNodeNS = F2(function(namespace, tag)
-{
-	return F2(function(factList, kidList)
-	{
-		for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS
-		{
-			var kid = kidList.a;
-			descendantsCount += (kid.b.b || 0);
-			kids.push(kid);
-		}
-		descendantsCount += kids.length;
-
-		return {
-			$: 2,
-			c: tag,
-			d: _VirtualDom_organizeFacts(factList),
-			e: kids,
-			f: namespace,
-			b: descendantsCount
-		};
-	});
-});
-
-
-var _VirtualDom_keyedNode = _VirtualDom_keyedNodeNS(undefined);
-
-
-
-// CUSTOM
-
-
-function _VirtualDom_custom(factList, model, render, diff)
-{
-	return {
-		$: 3,
-		d: _VirtualDom_organizeFacts(factList),
-		g: model,
-		h: render,
-		i: diff
-	};
-}
-
-
-
-// MAP
-
-
-var _VirtualDom_map = F2(function(tagger, node)
-{
-	return {
-		$: 4,
-		j: tagger,
-		k: node,
-		b: 1 + (node.b || 0)
-	};
-});
-
-
-
-// LAZY
-
-
-function _VirtualDom_thunk(refs, thunk)
-{
-	return {
-		$: 5,
-		l: refs,
-		m: thunk,
-		k: undefined
-	};
-}
-
-var _VirtualDom_lazy = F2(function(func, a)
-{
-	return _VirtualDom_thunk([func, a], function() {
-		return func(a);
-	});
-});
-
-var _VirtualDom_lazy2 = F3(function(func, a, b)
-{
-	return _VirtualDom_thunk([func, a, b], function() {
-		return A2(func, a, b);
-	});
-});
-
-var _VirtualDom_lazy3 = F4(function(func, a, b, c)
-{
-	return _VirtualDom_thunk([func, a, b, c], function() {
-		return A3(func, a, b, c);
-	});
-});
-
-var _VirtualDom_lazy4 = F5(function(func, a, b, c, d)
-{
-	return _VirtualDom_thunk([func, a, b, c, d], function() {
-		return A4(func, a, b, c, d);
-	});
-});
-
-var _VirtualDom_lazy5 = F6(function(func, a, b, c, d, e)
-{
-	return _VirtualDom_thunk([func, a, b, c, d, e], function() {
-		return A5(func, a, b, c, d, e);
-	});
-});
-
-var _VirtualDom_lazy6 = F7(function(func, a, b, c, d, e, f)
-{
-	return _VirtualDom_thunk([func, a, b, c, d, e, f], function() {
-		return A6(func, a, b, c, d, e, f);
-	});
-});
-
-var _VirtualDom_lazy7 = F8(function(func, a, b, c, d, e, f, g)
-{
-	return _VirtualDom_thunk([func, a, b, c, d, e, f, g], function() {
-		return A7(func, a, b, c, d, e, f, g);
-	});
-});
-
-var _VirtualDom_lazy8 = F9(function(func, a, b, c, d, e, f, g, h)
-{
-	return _VirtualDom_thunk([func, a, b, c, d, e, f, g, h], function() {
-		return A8(func, a, b, c, d, e, f, g, h);
-	});
-});
-
-
-
-// FACTS
-
-
-var _VirtualDom_on = F2(function(key, handler)
-{
-	return {
-		$: 'a0',
-		n: key,
-		o: handler
-	};
-});
-var _VirtualDom_style = F2(function(key, value)
-{
-	return {
-		$: 'a1',
-		n: key,
-		o: value
-	};
-});
-var _VirtualDom_property = F2(function(key, value)
-{
-	return {
-		$: 'a2',
-		n: key,
-		o: value
-	};
-});
-var _VirtualDom_attribute = F2(function(key, value)
-{
-	return {
-		$: 'a3',
-		n: key,
-		o: value
-	};
-});
-var _VirtualDom_attributeNS = F3(function(namespace, key, value)
-{
-	return {
-		$: 'a4',
-		n: key,
-		o: { f: namespace, o: value }
-	};
-});
-
-
-
-// XSS ATTACK VECTOR CHECKS
-
-
-function _VirtualDom_noScript(tag)
-{
-	return tag == 'script' ? 'p' : tag;
-}
-
-function _VirtualDom_noOnOrFormAction(key)
-{
-	return /^(on|formAction$)/i.test(key) ? 'data-' + key : key;
-}
-
-function _VirtualDom_noInnerHtmlOrFormAction(key)
-{
-	return key == 'innerHTML' || key == 'formAction' ? 'data-' + key : key;
-}
-
-function _VirtualDom_noJavaScriptUri_UNUSED(value)
-{
-	return /^javascript:/i.test(value.replace(/\s/g,'')) ? '' : value;
-}
-
-function _VirtualDom_noJavaScriptUri(value)
-{
-	return /^javascript:/i.test(value.replace(/\s/g,''))
-		? 'javascript:alert("This is an XSS vector. Please use ports or web components instead.")'
-		: value;
-}
-
-function _VirtualDom_noJavaScriptOrHtmlUri_UNUSED(value)
-{
-	return /^\s*(javascript:|data:text\/html)/i.test(value) ? '' : value;
-}
-
-function _VirtualDom_noJavaScriptOrHtmlUri(value)
-{
-	return /^\s*(javascript:|data:text\/html)/i.test(value)
-		? 'javascript:alert("This is an XSS vector. Please use ports or web components instead.")'
-		: value;
-}
-
-
-
-// MAP FACTS
-
-
-var _VirtualDom_mapAttribute = F2(function(func, attr)
-{
-	return (attr.$ === 'a0')
-		? A2(_VirtualDom_on, attr.n, _VirtualDom_mapHandler(func, attr.o))
-		: attr;
-});
-
-function _VirtualDom_mapHandler(func, handler)
-{
-	var tag = $elm$virtual_dom$VirtualDom$toHandlerInt(handler);
-
-	// 0 = Normal
-	// 1 = MayStopPropagation
-	// 2 = MayPreventDefault
-	// 3 = Custom
-
-	return {
-		$: handler.$,
-		a:
-			!tag
-				? A2($elm$json$Json$Decode$map, func, handler.a)
-				:
-			A3($elm$json$Json$Decode$map2,
-				tag < 3
-					? _VirtualDom_mapEventTuple
-					: _VirtualDom_mapEventRecord,
-				$elm$json$Json$Decode$succeed(func),
-				handler.a
-			)
-	};
-}
-
-var _VirtualDom_mapEventTuple = F2(function(func, tuple)
-{
-	return _Utils_Tuple2(func(tuple.a), tuple.b);
-});
-
-var _VirtualDom_mapEventRecord = F2(function(func, record)
-{
-	return {
-		message: func(record.message),
-		stopPropagation: record.stopPropagation,
-		preventDefault: record.preventDefault
-	}
-});
-
-
-
-// ORGANIZE FACTS
-
-
-function _VirtualDom_organizeFacts(factList)
-{
-	for (var facts = {}; factList.b; factList = factList.b) // WHILE_CONS
-	{
-		var entry = factList.a;
-
-		var tag = entry.$;
-		var key = entry.n;
-		var value = entry.o;
-
-		if (tag === 'a2')
-		{
-			(key === 'className')
-				? _VirtualDom_addClass(facts, key, _Json_unwrap(value))
-				: facts[key] = _Json_unwrap(value);
-
-			continue;
-		}
-
-		var subFacts = facts[tag] || (facts[tag] = {});
-		(tag === 'a3' && key === 'class')
-			? _VirtualDom_addClass(subFacts, key, value)
-			: subFacts[key] = value;
-	}
-
-	return facts;
-}
-
-function _VirtualDom_addClass(object, key, newClass)
-{
-	var classes = object[key];
-	object[key] = classes ? classes + ' ' + newClass : newClass;
-}
-
-
-
-// RENDER
-
-
-function _VirtualDom_render(vNode, eventNode)
-{
-	var tag = vNode.$;
-
-	if (tag === 5)
-	{
-		return _VirtualDom_render(vNode.k || (vNode.k = vNode.m()), eventNode);
-	}
-
-	if (tag === 0)
-	{
-		return _VirtualDom_doc.createTextNode(vNode.a);
-	}
-
-	if (tag === 4)
-	{
-		var subNode = vNode.k;
-		var tagger = vNode.j;
-
-		while (subNode.$ === 4)
-		{
-			typeof tagger !== 'object'
-				? tagger = [tagger, subNode.j]
-				: tagger.push(subNode.j);
-
-			subNode = subNode.k;
-		}
-
-		var subEventRoot = { j: tagger, p: eventNode };
-		var domNode = _VirtualDom_render(subNode, subEventRoot);
-		domNode.elm_event_node_ref = subEventRoot;
-		return domNode;
-	}
-
-	if (tag === 3)
-	{
-		var domNode = vNode.h(vNode.g);
-		_VirtualDom_applyFacts(domNode, eventNode, vNode.d);
-		return domNode;
-	}
-
-	// at this point `tag` must be 1 or 2
-
-	var domNode = vNode.f
-		? _VirtualDom_doc.createElementNS(vNode.f, vNode.c)
-		: _VirtualDom_doc.createElement(vNode.c);
-
-	if (_VirtualDom_divertHrefToApp && vNode.c == 'a')
-	{
-		domNode.addEventListener('click', _VirtualDom_divertHrefToApp(domNode));
-	}
-
-	_VirtualDom_applyFacts(domNode, eventNode, vNode.d);
-
-	for (var kids = vNode.e, i = 0; i < kids.length; i++)
-	{
-		_VirtualDom_appendChild(domNode, _VirtualDom_render(tag === 1 ? kids[i] : kids[i].b, eventNode));
-	}
-
-	return domNode;
-}
-
-
-
-// APPLY FACTS
-
-
-function _VirtualDom_applyFacts(domNode, eventNode, facts)
-{
-	for (var key in facts)
-	{
-		var value = facts[key];
-
-		key === 'a1'
-			? _VirtualDom_applyStyles(domNode, value)
-			:
-		key === 'a0'
-			? _VirtualDom_applyEvents(domNode, eventNode, value)
-			:
-		key === 'a3'
-			? _VirtualDom_applyAttrs(domNode, value)
-			:
-		key === 'a4'
-			? _VirtualDom_applyAttrsNS(domNode, value)
-			:
-		((key !== 'value' && key !== 'checked') || domNode[key] !== value) && (domNode[key] = value);
-	}
-}
-
-
-
-// APPLY STYLES
-
-
-function _VirtualDom_applyStyles(domNode, styles)
-{
-	var domNodeStyle = domNode.style;
-
-	for (var key in styles)
-	{
-		domNodeStyle[key] = styles[key];
-	}
-}
-
-
-
-// APPLY ATTRS
-
-
-function _VirtualDom_applyAttrs(domNode, attrs)
-{
-	for (var key in attrs)
-	{
-		var value = attrs[key];
-		typeof value !== 'undefined'
-			? domNode.setAttribute(key, value)
-			: domNode.removeAttribute(key);
-	}
-}
-
-
-
-// APPLY NAMESPACED ATTRS
-
-
-function _VirtualDom_applyAttrsNS(domNode, nsAttrs)
-{
-	for (var key in nsAttrs)
-	{
-		var pair = nsAttrs[key];
-		var namespace = pair.f;
-		var value = pair.o;
-
-		typeof value !== 'undefined'
-			? domNode.setAttributeNS(namespace, key, value)
-			: domNode.removeAttributeNS(namespace, key);
-	}
-}
-
-
-
-// APPLY EVENTS
-
-
-function _VirtualDom_applyEvents(domNode, eventNode, events)
-{
-	var allCallbacks = domNode.elmFs || (domNode.elmFs = {});
-
-	for (var key in events)
-	{
-		var newHandler = events[key];
-		var oldCallback = allCallbacks[key];
-
-		if (!newHandler)
-		{
-			domNode.removeEventListener(key, oldCallback);
-			allCallbacks[key] = undefined;
-			continue;
-		}
-
-		if (oldCallback)
-		{
-			var oldHandler = oldCallback.q;
-			if (oldHandler.$ === newHandler.$)
-			{
-				oldCallback.q = newHandler;
-				continue;
-			}
-			domNode.removeEventListener(key, oldCallback);
-		}
-
-		oldCallback = _VirtualDom_makeCallback(eventNode, newHandler);
-		domNode.addEventListener(key, oldCallback,
-			_VirtualDom_passiveSupported
-			&& { passive: $elm$virtual_dom$VirtualDom$toHandlerInt(newHandler) < 2 }
-		);
-		allCallbacks[key] = oldCallback;
-	}
-}
-
-
-
-// PASSIVE EVENTS
-
-
-var _VirtualDom_passiveSupported;
-
-try
-{
-	window.addEventListener('t', null, Object.defineProperty({}, 'passive', {
-		get: function() { _VirtualDom_passiveSupported = true; }
-	}));
-}
-catch(e) {}
-
-
-
-// EVENT HANDLERS
-
-
-function _VirtualDom_makeCallback(eventNode, initialHandler)
-{
-	function callback(event)
-	{
-		var handler = callback.q;
-		var result = _Json_runHelp(handler.a, event);
-
-		if (!$elm$core$Result$isOk(result))
-		{
-			return;
-		}
-
-		var tag = $elm$virtual_dom$VirtualDom$toHandlerInt(handler);
-
-		// 0 = Normal
-		// 1 = MayStopPropagation
-		// 2 = MayPreventDefault
-		// 3 = Custom
-
-		var value = result.a;
-		var message = !tag ? value : tag < 3 ? value.a : value.message;
-		var stopPropagation = tag == 1 ? value.b : tag == 3 && value.stopPropagation;
-		var currentEventNode = (
-			stopPropagation && event.stopPropagation(),
-			(tag == 2 ? value.b : tag == 3 && value.preventDefault) && event.preventDefault(),
-			eventNode
-		);
-		var tagger;
-		var i;
-		while (tagger = currentEventNode.j)
-		{
-			if (typeof tagger == 'function')
-			{
-				message = tagger(message);
-			}
-			else
-			{
-				for (var i = tagger.length; i--; )
-				{
-					message = tagger[i](message);
-				}
-			}
-			currentEventNode = currentEventNode.p;
-		}
-		currentEventNode(message, stopPropagation); // stopPropagation implies isSync
-	}
-
-	callback.q = initialHandler;
-
-	return callback;
-}
-
-function _VirtualDom_equalEvents(x, y)
-{
-	return x.$ == y.$ && _Json_equality(x.a, y.a);
-}
-
-
-
-// DIFF
-
-
-// TODO: Should we do patches like in iOS?
-//
-// type Patch
-//   = At Int Patch
-//   | Batch (List Patch)
-//   | Change ...
-//
-// How could it not be better?
-//
-function _VirtualDom_diff(x, y)
-{
-	var patches = [];
-	_VirtualDom_diffHelp(x, y, patches, 0);
-	return patches;
-}
-
-
-function _VirtualDom_pushPatch(patches, type, index, data)
-{
-	var patch = {
-		$: type,
-		r: index,
-		s: data,
-		t: undefined,
-		u: undefined
-	};
-	patches.push(patch);
-	return patch;
-}
-
-
-function _VirtualDom_diffHelp(x, y, patches, index)
-{
-	if (x === y)
-	{
-		return;
-	}
-
-	var xType = x.$;
-	var yType = y.$;
-
-	// Bail if you run into different types of nodes. Implies that the
-	// structure has changed significantly and it's not worth a diff.
-	if (xType !== yType)
-	{
-		if (xType === 1 && yType === 2)
-		{
-			y = _VirtualDom_dekey(y);
-			yType = 1;
-		}
-		else
-		{
-			_VirtualDom_pushPatch(patches, 0, index, y);
-			return;
-		}
-	}
-
-	// Now we know that both nodes are the same $.
-	switch (yType)
-	{
-		case 5:
-			var xRefs = x.l;
-			var yRefs = y.l;
-			var i = xRefs.length;
-			var same = i === yRefs.length;
-			while (same && i--)
-			{
-				same = xRefs[i] === yRefs[i];
-			}
-			if (same)
-			{
-				y.k = x.k;
-				return;
-			}
-			y.k = y.m();
-			var subPatches = [];
-			_VirtualDom_diffHelp(x.k, y.k, subPatches, 0);
-			subPatches.length > 0 && _VirtualDom_pushPatch(patches, 1, index, subPatches);
-			return;
-
-		case 4:
-			// gather nested taggers
-			var xTaggers = x.j;
-			var yTaggers = y.j;
-			var nesting = false;
-
-			var xSubNode = x.k;
-			while (xSubNode.$ === 4)
-			{
-				nesting = true;
-
-				typeof xTaggers !== 'object'
-					? xTaggers = [xTaggers, xSubNode.j]
-					: xTaggers.push(xSubNode.j);
-
-				xSubNode = xSubNode.k;
-			}
-
-			var ySubNode = y.k;
-			while (ySubNode.$ === 4)
-			{
-				nesting = true;
-
-				typeof yTaggers !== 'object'
-					? yTaggers = [yTaggers, ySubNode.j]
-					: yTaggers.push(ySubNode.j);
-
-				ySubNode = ySubNode.k;
-			}
-
-			// Just bail if different numbers of taggers. This implies the
-			// structure of the virtual DOM has changed.
-			if (nesting && xTaggers.length !== yTaggers.length)
-			{
-				_VirtualDom_pushPatch(patches, 0, index, y);
-				return;
-			}
-
-			// check if taggers are "the same"
-			if (nesting ? !_VirtualDom_pairwiseRefEqual(xTaggers, yTaggers) : xTaggers !== yTaggers)
-			{
-				_VirtualDom_pushPatch(patches, 2, index, yTaggers);
-			}
-
-			// diff everything below the taggers
-			_VirtualDom_diffHelp(xSubNode, ySubNode, patches, index + 1);
-			return;
-
-		case 0:
-			if (x.a !== y.a)
-			{
-				_VirtualDom_pushPatch(patches, 3, index, y.a);
-			}
-			return;
-
-		case 1:
-			_VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKids);
-			return;
-
-		case 2:
-			_VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKeyedKids);
-			return;
-
-		case 3:
-			if (x.h !== y.h)
-			{
-				_VirtualDom_pushPatch(patches, 0, index, y);
-				return;
-			}
-
-			var factsDiff = _VirtualDom_diffFacts(x.d, y.d);
-			factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff);
-
-			var patch = y.i(x.g, y.g);
-			patch && _VirtualDom_pushPatch(patches, 5, index, patch);
-
-			return;
-	}
-}
-
-// assumes the incoming arrays are the same length
-function _VirtualDom_pairwiseRefEqual(as, bs)
-{
-	for (var i = 0; i < as.length; i++)
-	{
-		if (as[i] !== bs[i])
-		{
-			return false;
-		}
-	}
-
-	return true;
-}
-
-function _VirtualDom_diffNodes(x, y, patches, index, diffKids)
-{
-	// Bail if obvious indicators have changed. Implies more serious
-	// structural changes such that it's not worth it to diff.
-	if (x.c !== y.c || x.f !== y.f)
-	{
-		_VirtualDom_pushPatch(patches, 0, index, y);
-		return;
-	}
-
-	var factsDiff = _VirtualDom_diffFacts(x.d, y.d);
-	factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff);
-
-	diffKids(x, y, patches, index);
-}
-
-
-
-// DIFF FACTS
-
-
-// TODO Instead of creating a new diff object, it's possible to just test if
-// there *is* a diff. During the actual patch, do the diff again and make the
-// modifications directly. This way, there's no new allocations. Worth it?
-function _VirtualDom_diffFacts(x, y, category)
-{
-	var diff;
-
-	// look for changes and removals
-	for (var xKey in x)
-	{
-		if (xKey === 'a1' || xKey === 'a0' || xKey === 'a3' || xKey === 'a4')
-		{
-			var subDiff = _VirtualDom_diffFacts(x[xKey], y[xKey] || {}, xKey);
-			if (subDiff)
-			{
-				diff = diff || {};
-				diff[xKey] = subDiff;
-			}
-			continue;
-		}
-
-		// remove if not in the new facts
-		if (!(xKey in y))
-		{
-			diff = diff || {};
-			diff[xKey] =
-				!category
-					? (typeof x[xKey] === 'string' ? '' : null)
-					:
-				(category === 'a1')
-					? ''
-					:
-				(category === 'a0' || category === 'a3')
-					? undefined
-					:
-				{ f: x[xKey].f, o: undefined };
-
-			continue;
-		}
-
-		var xValue = x[xKey];
-		var yValue = y[xKey];
-
-		// reference equal, so don't worry about it
-		if (xValue === yValue && xKey !== 'value' && xKey !== 'checked'
-			|| category === 'a0' && _VirtualDom_equalEvents(xValue, yValue))
-		{
-			continue;
-		}
-
-		diff = diff || {};
-		diff[xKey] = yValue;
-	}
-
-	// add new stuff
-	for (var yKey in y)
-	{
-		if (!(yKey in x))
-		{
-			diff = diff || {};
-			diff[yKey] = y[yKey];
-		}
-	}
-
-	return diff;
-}
-
-
-
-// DIFF KIDS
-
-
-function _VirtualDom_diffKids(xParent, yParent, patches, index)
-{
-	var xKids = xParent.e;
-	var yKids = yParent.e;
-
-	var xLen = xKids.length;
-	var yLen = yKids.length;
-
-	// FIGURE OUT IF THERE ARE INSERTS OR REMOVALS
-
-	if (xLen > yLen)
-	{
-		_VirtualDom_pushPatch(patches, 6, index, {
-			v: yLen,
-			i: xLen - yLen
-		});
-	}
-	else if (xLen < yLen)
-	{
-		_VirtualDom_pushPatch(patches, 7, index, {
-			v: xLen,
-			e: yKids
-		});
-	}
-
-	// PAIRWISE DIFF EVERYTHING ELSE
-
-	for (var minLen = xLen < yLen ? xLen : yLen, i = 0; i < minLen; i++)
-	{
-		var xKid = xKids[i];
-		_VirtualDom_diffHelp(xKid, yKids[i], patches, ++index);
-		index += xKid.b || 0;
-	}
-}
-
-
-
-// KEYED DIFF
-
-
-function _VirtualDom_diffKeyedKids(xParent, yParent, patches, rootIndex)
-{
-	var localPatches = [];
-
-	var changes = {}; // Dict String Entry
-	var inserts = []; // Array { index : Int, entry : Entry }
-	// type Entry = { tag : String, vnode : VNode, index : Int, data : _ }
-
-	var xKids = xParent.e;
-	var yKids = yParent.e;
-	var xLen = xKids.length;
-	var yLen = yKids.length;
-	var xIndex = 0;
-	var yIndex = 0;
-
-	var index = rootIndex;
-
-	while (xIndex < xLen && yIndex < yLen)
-	{
-		var x = xKids[xIndex];
-		var y = yKids[yIndex];
-
-		var xKey = x.a;
-		var yKey = y.a;
-		var xNode = x.b;
-		var yNode = y.b;
-
-		var newMatch = undefined;
-		var oldMatch = undefined;
-
-		// check if keys match
-
-		if (xKey === yKey)
-		{
-			index++;
-			_VirtualDom_diffHelp(xNode, yNode, localPatches, index);
-			index += xNode.b || 0;
-
-			xIndex++;
-			yIndex++;
-			continue;
-		}
-
-		// look ahead 1 to detect insertions and removals.
-
-		var xNext = xKids[xIndex + 1];
-		var yNext = yKids[yIndex + 1];
-
-		if (xNext)
-		{
-			var xNextKey = xNext.a;
-			var xNextNode = xNext.b;
-			oldMatch = yKey === xNextKey;
-		}
-
-		if (yNext)
-		{
-			var yNextKey = yNext.a;
-			var yNextNode = yNext.b;
-			newMatch = xKey === yNextKey;
-		}
-
-
-		// swap x and y
-		if (newMatch && oldMatch)
-		{
-			index++;
-			_VirtualDom_diffHelp(xNode, yNextNode, localPatches, index);
-			_VirtualDom_insertNode(changes, localPatches, xKey, yNode, yIndex, inserts);
-			index += xNode.b || 0;
-
-			index++;
-			_VirtualDom_removeNode(changes, localPatches, xKey, xNextNode, index);
-			index += xNextNode.b || 0;
-
-			xIndex += 2;
-			yIndex += 2;
-			continue;
-		}
-
-		// insert y
-		if (newMatch)
-		{
-			index++;
-			_VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts);
-			_VirtualDom_diffHelp(xNode, yNextNode, localPatches, index);
-			index += xNode.b || 0;
-
-			xIndex += 1;
-			yIndex += 2;
-			continue;
-		}
-
-		// remove x
-		if (oldMatch)
-		{
-			index++;
-			_VirtualDom_removeNode(changes, localPatches, xKey, xNode, index);
-			index += xNode.b || 0;
-
-			index++;
-			_VirtualDom_diffHelp(xNextNode, yNode, localPatches, index);
-			index += xNextNode.b || 0;
-
-			xIndex += 2;
-			yIndex += 1;
-			continue;
-		}
-
-		// remove x, insert y
-		if (xNext && xNextKey === yNextKey)
-		{
-			index++;
-			_VirtualDom_removeNode(changes, localPatches, xKey, xNode, index);
-			_VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts);
-			index += xNode.b || 0;
-
-			index++;
-			_VirtualDom_diffHelp(xNextNode, yNextNode, localPatches, index);
-			index += xNextNode.b || 0;
-
-			xIndex += 2;
-			yIndex += 2;
-			continue;
-		}
-
-		break;
-	}
-
-	// eat up any remaining nodes with removeNode and insertNode
-
-	while (xIndex < xLen)
-	{
-		index++;
-		var x = xKids[xIndex];
-		var xNode = x.b;
-		_VirtualDom_removeNode(changes, localPatches, x.a, xNode, index);
-		index += xNode.b || 0;
-		xIndex++;
-	}
-
-	while (yIndex < yLen)
-	{
-		var endInserts = endInserts || [];
-		var y = yKids[yIndex];
-		_VirtualDom_insertNode(changes, localPatches, y.a, y.b, undefined, endInserts);
-		yIndex++;
-	}
-
-	if (localPatches.length > 0 || inserts.length > 0 || endInserts)
-	{
-		_VirtualDom_pushPatch(patches, 8, rootIndex, {
-			w: localPatches,
-			x: inserts,
-			y: endInserts
-		});
-	}
-}
-
-
-
-// CHANGES FROM KEYED DIFF
-
-
-var _VirtualDom_POSTFIX = '_elmW6BL';
-
-
-function _VirtualDom_insertNode(changes, localPatches, key, vnode, yIndex, inserts)
-{
-	var entry = changes[key];
-
-	// never seen this key before
-	if (!entry)
-	{
-		entry = {
-			c: 0,
-			z: vnode,
-			r: yIndex,
-			s: undefined
-		};
-
-		inserts.push({ r: yIndex, A: entry });
-		changes[key] = entry;
-
-		return;
-	}
-
-	// this key was removed earlier, a match!
-	if (entry.c === 1)
-	{
-		inserts.push({ r: yIndex, A: entry });
-
-		entry.c = 2;
-		var subPatches = [];
-		_VirtualDom_diffHelp(entry.z, vnode, subPatches, entry.r);
-		entry.r = yIndex;
-		entry.s.s = {
-			w: subPatches,
-			A: entry
-		};
-
-		return;
-	}
-
-	// this key has already been inserted or moved, a duplicate!
-	_VirtualDom_insertNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, yIndex, inserts);
-}
-
-
-function _VirtualDom_removeNode(changes, localPatches, key, vnode, index)
-{
-	var entry = changes[key];
-
-	// never seen this key before
-	if (!entry)
-	{
-		var patch = _VirtualDom_pushPatch(localPatches, 9, index, undefined);
-
-		changes[key] = {
-			c: 1,
-			z: vnode,
-			r: index,
-			s: patch
-		};
-
-		return;
-	}
-
-	// this key was inserted earlier, a match!
-	if (entry.c === 0)
-	{
-		entry.c = 2;
-		var subPatches = [];
-		_VirtualDom_diffHelp(vnode, entry.z, subPatches, index);
-
-		_VirtualDom_pushPatch(localPatches, 9, index, {
-			w: subPatches,
-			A: entry
-		});
-
-		return;
-	}
-
-	// this key has already been removed or moved, a duplicate!
-	_VirtualDom_removeNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, index);
-}
-
-
-
-// ADD DOM NODES
-//
-// Each DOM node has an "index" assigned in order of traversal. It is important
-// to minimize our crawl over the actual DOM, so these indexes (along with the
-// descendantsCount of virtual nodes) let us skip touching entire subtrees of
-// the DOM if we know there are no patches there.
-
-
-function _VirtualDom_addDomNodes(domNode, vNode, patches, eventNode)
-{
-	_VirtualDom_addDomNodesHelp(domNode, vNode, patches, 0, 0, vNode.b, eventNode);
-}
-
-
-// assumes `patches` is non-empty and indexes increase monotonically.
-function _VirtualDom_addDomNodesHelp(domNode, vNode, patches, i, low, high, eventNode)
-{
-	var patch = patches[i];
-	var index = patch.r;
-
-	while (index === low)
-	{
-		var patchType = patch.$;
-
-		if (patchType === 1)
-		{
-			_VirtualDom_addDomNodes(domNode, vNode.k, patch.s, eventNode);
-		}
-		else if (patchType === 8)
-		{
-			patch.t = domNode;
-			patch.u = eventNode;
-
-			var subPatches = patch.s.w;
-			if (subPatches.length > 0)
-			{
-				_VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode);
-			}
-		}
-		else if (patchType === 9)
-		{
-			patch.t = domNode;
-			patch.u = eventNode;
-
-			var data = patch.s;
-			if (data)
-			{
-				data.A.s = domNode;
-				var subPatches = data.w;
-				if (subPatches.length > 0)
-				{
-					_VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode);
-				}
-			}
-		}
-		else
-		{
-			patch.t = domNode;
-			patch.u = eventNode;
-		}
-
-		i++;
-
-		if (!(patch = patches[i]) || (index = patch.r) > high)
-		{
-			return i;
-		}
-	}
-
-	var tag = vNode.$;
-
-	if (tag === 4)
-	{
-		var subNode = vNode.k;
-
-		while (subNode.$ === 4)
-		{
-			subNode = subNode.k;
-		}
-
-		return _VirtualDom_addDomNodesHelp(domNode, subNode, patches, i, low + 1, high, domNode.elm_event_node_ref);
-	}
-
-	// tag must be 1 or 2 at this point
-
-	var vKids = vNode.e;
-	var childNodes = domNode.childNodes;
-	for (var j = 0; j < vKids.length; j++)
-	{
-		low++;
-		var vKid = tag === 1 ? vKids[j] : vKids[j].b;
-		var nextLow = low + (vKid.b || 0);
-		if (low <= index && index <= nextLow)
-		{
-			i = _VirtualDom_addDomNodesHelp(childNodes[j], vKid, patches, i, low, nextLow, eventNode);
-			if (!(patch = patches[i]) || (index = patch.r) > high)
-			{
-				return i;
-			}
-		}
-		low = nextLow;
-	}
-	return i;
-}
-
-
-
-// APPLY PATCHES
-
-
-function _VirtualDom_applyPatches(rootDomNode, oldVirtualNode, patches, eventNode)
-{
-	if (patches.length === 0)
-	{
-		return rootDomNode;
-	}
-
-	_VirtualDom_addDomNodes(rootDomNode, oldVirtualNode, patches, eventNode);
-	return _VirtualDom_applyPatchesHelp(rootDomNode, patches);
-}
-
-function _VirtualDom_applyPatchesHelp(rootDomNode, patches)
-{
-	for (var i = 0; i < patches.length; i++)
-	{
-		var patch = patches[i];
-		var localDomNode = patch.t
-		var newNode = _VirtualDom_applyPatch(localDomNode, patch);
-		if (localDomNode === rootDomNode)
-		{
-			rootDomNode = newNode;
-		}
-	}
-	return rootDomNode;
-}
-
-function _VirtualDom_applyPatch(domNode, patch)
-{
-	switch (patch.$)
-	{
-		case 0:
-			return _VirtualDom_applyPatchRedraw(domNode, patch.s, patch.u);
-
-		case 4:
-			_VirtualDom_applyFacts(domNode, patch.u, patch.s);
-			return domNode;
-
-		case 3:
-			domNode.replaceData(0, domNode.length, patch.s);
-			return domNode;
-
-		case 1:
-			return _VirtualDom_applyPatchesHelp(domNode, patch.s);
-
-		case 2:
-			if (domNode.elm_event_node_ref)
-			{
-				domNode.elm_event_node_ref.j = patch.s;
-			}
-			else
-			{
-				domNode.elm_event_node_ref = { j: patch.s, p: patch.u };
-			}
-			return domNode;
-
-		case 6:
-			var data = patch.s;
-			for (var i = 0; i < data.i; i++)
-			{
-				domNode.removeChild(domNode.childNodes[data.v]);
-			}
-			return domNode;
-
-		case 7:
-			var data = patch.s;
-			var kids = data.e;
-			var i = data.v;
-			var theEnd = domNode.childNodes[i];
-			for (; i < kids.length; i++)
-			{
-				domNode.insertBefore(_VirtualDom_render(kids[i], patch.u), theEnd);
-			}
-			return domNode;
-
-		case 9:
-			var data = patch.s;
-			if (!data)
-			{
-				domNode.parentNode.removeChild(domNode);
-				return domNode;
-			}
-			var entry = data.A;
-			if (typeof entry.r !== 'undefined')
-			{
-				domNode.parentNode.removeChild(domNode);
-			}
-			entry.s = _VirtualDom_applyPatchesHelp(domNode, data.w);
-			return domNode;
-
-		case 8:
-			return _VirtualDom_applyPatchReorder(domNode, patch);
-
-		case 5:
-			return patch.s(domNode);
-
-		default:
-			_Debug_crash(10); // 'Ran into an unknown patch!'
-	}
-}
-
-
-function _VirtualDom_applyPatchRedraw(domNode, vNode, eventNode)
-{
-	var parentNode = domNode.parentNode;
-	var newNode = _VirtualDom_render(vNode, eventNode);
-
-	if (!newNode.elm_event_node_ref)
-	{
-		newNode.elm_event_node_ref = domNode.elm_event_node_ref;
-	}
-
-	if (parentNode && newNode !== domNode)
-	{
-		parentNode.replaceChild(newNode, domNode);
-	}
-	return newNode;
-}
-
-
-function _VirtualDom_applyPatchReorder(domNode, patch)
-{
-	var data = patch.s;
-
-	// remove end inserts
-	var frag = _VirtualDom_applyPatchReorderEndInsertsHelp(data.y, patch);
-
-	// removals
-	domNode = _VirtualDom_applyPatchesHelp(domNode, data.w);
-
-	// inserts
-	var inserts = data.x;
-	for (var i = 0; i < inserts.length; i++)
-	{
-		var insert = inserts[i];
-		var entry = insert.A;
-		var node = entry.c === 2
-			? entry.s
-			: _VirtualDom_render(entry.z, patch.u);
-		domNode.insertBefore(node, domNode.childNodes[insert.r]);
-	}
-
-	// add end inserts
-	if (frag)
-	{
-		_VirtualDom_appendChild(domNode, frag);
-	}
-
-	return domNode;
-}
-
-
-function _VirtualDom_applyPatchReorderEndInsertsHelp(endInserts, patch)
-{
-	if (!endInserts)
-	{
-		return;
-	}
-
-	var frag = _VirtualDom_doc.createDocumentFragment();
-	for (var i = 0; i < endInserts.length; i++)
-	{
-		var insert = endInserts[i];
-		var entry = insert.A;
-		_VirtualDom_appendChild(frag, entry.c === 2
-			? entry.s
-			: _VirtualDom_render(entry.z, patch.u)
-		);
-	}
-	return frag;
-}
-
-
-function _VirtualDom_virtualize(node)
-{
-	// TEXT NODES
-
-	if (node.nodeType === 3)
-	{
-		return _VirtualDom_text(node.textContent);
-	}
-
-
-	// WEIRD NODES
-
-	if (node.nodeType !== 1)
-	{
-		return _VirtualDom_text('');
-	}
-
-
-	// ELEMENT NODES
-
-	var attrList = _List_Nil;
-	var attrs = node.attributes;
-	for (var i = attrs.length; i--; )
-	{
-		var attr = attrs[i];
-		var name = attr.name;
-		var value = attr.value;
-		attrList = _List_Cons( A2(_VirtualDom_attribute, name, value), attrList );
-	}
-
-	var tag = node.tagName.toLowerCase();
-	var kidList = _List_Nil;
-	var kids = node.childNodes;
-
-	for (var i = kids.length; i--; )
-	{
-		kidList = _List_Cons(_VirtualDom_virtualize(kids[i]), kidList);
-	}
-	return A3(_VirtualDom_node, tag, attrList, kidList);
-}
-
-function _VirtualDom_dekey(keyedNode)
-{
-	var keyedKids = keyedNode.e;
-	var len = keyedKids.length;
-	var kids = new Array(len);
-	for (var i = 0; i < len; i++)
-	{
-		kids[i] = keyedKids[i].b;
-	}
-
-	return {
-		$: 1,
-		c: keyedNode.c,
-		d: keyedNode.d,
-		e: kids,
-		f: keyedNode.f,
-		b: keyedNode.b
-	};
-}
-
-
-
-
-// ELEMENT
-
-
-var _Debugger_element;
-
-var _Browser_element = _Debugger_element || F4(function(impl, flagDecoder, debugMetadata, args)
-{
-	return _Platform_initialize(
-		flagDecoder,
-		args,
-		impl.init,
-		impl.update,
-		impl.subscriptions,
-		function(sendToApp, initialModel) {
-			var view = impl.view;
-			/**_UNUSED/
-			var domNode = args['node'];
-			//*/
-			/**/
-			var domNode = args && args['node'] ? args['node'] : _Debug_crash(0);
-			//*/
-			var currNode = _VirtualDom_virtualize(domNode);
-
-			return _Browser_makeAnimator(initialModel, function(model)
-			{
-				var nextNode = view(model);
-				var patches = _VirtualDom_diff(currNode, nextNode);
-				domNode = _VirtualDom_applyPatches(domNode, currNode, patches, sendToApp);
-				currNode = nextNode;
-			});
-		}
-	);
-});
-
-
-
-// DOCUMENT
-
-
-var _Debugger_document;
-
-var _Browser_document = _Debugger_document || F4(function(impl, flagDecoder, debugMetadata, args)
-{
-	return _Platform_initialize(
-		flagDecoder,
-		args,
-		impl.init,
-		impl.update,
-		impl.subscriptions,
-		function(sendToApp, initialModel) {
-			var divertHrefToApp = impl.setup && impl.setup(sendToApp)
-			var view = impl.view;
-			var title = _VirtualDom_doc.title;
-			var bodyNode = _VirtualDom_doc.body;
-			var currNode = _VirtualDom_virtualize(bodyNode);
-			return _Browser_makeAnimator(initialModel, function(model)
-			{
-				_VirtualDom_divertHrefToApp = divertHrefToApp;
-				var doc = view(model);
-				var nextNode = _VirtualDom_node('body')(_List_Nil)(doc.body);
-				var patches = _VirtualDom_diff(currNode, nextNode);
-				bodyNode = _VirtualDom_applyPatches(bodyNode, currNode, patches, sendToApp);
-				currNode = nextNode;
-				_VirtualDom_divertHrefToApp = 0;
-				(title !== doc.title) && (_VirtualDom_doc.title = title = doc.title);
-			});
-		}
-	);
-});
-
-
-
-// ANIMATION
-
-
-var _Browser_cancelAnimationFrame =
-	typeof cancelAnimationFrame !== 'undefined'
-		? cancelAnimationFrame
-		: function(id) { clearTimeout(id); };
-
-var _Browser_requestAnimationFrame =
-	typeof requestAnimationFrame !== 'undefined'
-		? requestAnimationFrame
-		: function(callback) { return setTimeout(callback, 1000 / 60); };
-
-
-function _Browser_makeAnimator(model, draw)
-{
-	draw(model);
-
-	var state = 0;
-
-	function updateIfNeeded()
-	{
-		state = state === 1
-			? 0
-			: ( _Browser_requestAnimationFrame(updateIfNeeded), draw(model), 1 );
-	}
-
-	return function(nextModel, isSync)
-	{
-		model = nextModel;
-
-		isSync
-			? ( draw(model),
-				state === 2 && (state = 1)
-				)
-			: ( state === 0 && _Browser_requestAnimationFrame(updateIfNeeded),
-				state = 2
-				);
-	};
-}
-
-
-
-// APPLICATION
-
-
-function _Browser_application(impl)
-{
-	var onUrlChange = impl.onUrlChange;
-	var onUrlRequest = impl.onUrlRequest;
-	var key = function() { key.a(onUrlChange(_Browser_getUrl())); };
-
-	return _Browser_document({
-		setup: function(sendToApp)
-		{
-			key.a = sendToApp;
-			_Browser_window.addEventListener('popstate', key);
-			_Browser_window.navigator.userAgent.indexOf('Trident') < 0 || _Browser_window.addEventListener('hashchange', key);
-
-			return F2(function(domNode, event)
-			{
-				if (!event.ctrlKey && !event.metaKey && !event.shiftKey && event.button < 1 && !domNode.target && !domNode.hasAttribute('download'))
-				{
-					event.preventDefault();
-					var href = domNode.href;
-					var curr = _Browser_getUrl();
-					var next = $elm$url$Url$fromString(href).a;
-					sendToApp(onUrlRequest(
-						(next
-							&& curr.protocol === next.protocol
-							&& curr.host === next.host
-							&& curr.port_.a === next.port_.a
-						)
-							? $elm$browser$Browser$Internal(next)
-							: $elm$browser$Browser$External(href)
-					));
-				}
-			});
-		},
-		init: function(flags)
-		{
-			return A3(impl.init, flags, _Browser_getUrl(), key);
-		},
-		view: impl.view,
-		update: impl.update,
-		subscriptions: impl.subscriptions
-	});
-}
-
-function _Browser_getUrl()
-{
-	return $elm$url$Url$fromString(_VirtualDom_doc.location.href).a || _Debug_crash(1);
-}
-
-var _Browser_go = F2(function(key, n)
-{
-	return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {
-		n && history.go(n);
-		key();
-	}));
-});
-
-var _Browser_pushUrl = F2(function(key, url)
-{
-	return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {
-		history.pushState({}, '', url);
-		key();
-	}));
-});
-
-var _Browser_replaceUrl = F2(function(key, url)
-{
-	return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {
-		history.replaceState({}, '', url);
-		key();
-	}));
-});
-
-
-
-// GLOBAL EVENTS
-
-
-var _Browser_fakeNode = { addEventListener: function() {}, removeEventListener: function() {} };
-var _Browser_doc = typeof document !== 'undefined' ? document : _Browser_fakeNode;
-var _Browser_window = typeof window !== 'undefined' ? window : _Browser_fakeNode;
-
-var _Browser_on = F3(function(node, eventName, sendToSelf)
-{
-	return _Scheduler_spawn(_Scheduler_binding(function(callback)
-	{
-		function handler(event)	{ _Scheduler_rawSpawn(sendToSelf(event)); }
-		node.addEventListener(eventName, handler, _VirtualDom_passiveSupported && { passive: true });
-		return function() { node.removeEventListener(eventName, handler); };
-	}));
-});
-
-var _Browser_decodeEvent = F2(function(decoder, event)
-{
-	var result = _Json_runHelp(decoder, event);
-	return $elm$core$Result$isOk(result) ? $elm$core$Maybe$Just(result.a) : $elm$core$Maybe$Nothing;
-});
-
-
-
-// PAGE VISIBILITY
-
-
-function _Browser_visibilityInfo()
-{
-	return (typeof _VirtualDom_doc.hidden !== 'undefined')
-		? { hidden: 'hidden', change: 'visibilitychange' }
-		:
-	(typeof _VirtualDom_doc.mozHidden !== 'undefined')
-		? { hidden: 'mozHidden', change: 'mozvisibilitychange' }
-		:
-	(typeof _VirtualDom_doc.msHidden !== 'undefined')
-		? { hidden: 'msHidden', change: 'msvisibilitychange' }
-		:
-	(typeof _VirtualDom_doc.webkitHidden !== 'undefined')
-		? { hidden: 'webkitHidden', change: 'webkitvisibilitychange' }
-		: { hidden: 'hidden', change: 'visibilitychange' };
-}
-
-
-
-// ANIMATION FRAMES
-
-
-function _Browser_rAF()
-{
-	return _Scheduler_binding(function(callback)
-	{
-		var id = _Browser_requestAnimationFrame(function() {
-			callback(_Scheduler_succeed(Date.now()));
-		});
-
-		return function() {
-			_Browser_cancelAnimationFrame(id);
-		};
-	});
-}
-
-
-function _Browser_now()
-{
-	return _Scheduler_binding(function(callback)
-	{
-		callback(_Scheduler_succeed(Date.now()));
-	});
-}
-
-
-
-// DOM STUFF
-
-
-function _Browser_withNode(id, doStuff)
-{
-	return _Scheduler_binding(function(callback)
-	{
-		_Browser_requestAnimationFrame(function() {
-			var node = document.getElementById(id);
-			callback(node
-				? _Scheduler_succeed(doStuff(node))
-				: _Scheduler_fail($elm$browser$Browser$Dom$NotFound(id))
-			);
-		});
-	});
-}
-
-
-function _Browser_withWindow(doStuff)
-{
-	return _Scheduler_binding(function(callback)
-	{
-		_Browser_requestAnimationFrame(function() {
-			callback(_Scheduler_succeed(doStuff()));
-		});
-	});
-}
-
-
-// FOCUS and BLUR
-
-
-var _Browser_call = F2(function(functionName, id)
-{
-	return _Browser_withNode(id, function(node) {
-		node[functionName]();
-		return _Utils_Tuple0;
-	});
-});
-
-
-
-// WINDOW VIEWPORT
-
-
-function _Browser_getViewport()
-{
-	return {
-		scene: _Browser_getScene(),
-		viewport: {
-			x: _Browser_window.pageXOffset,
-			y: _Browser_window.pageYOffset,
-			width: _Browser_doc.documentElement.clientWidth,
-			height: _Browser_doc.documentElement.clientHeight
-		}
-	};
-}
-
-function _Browser_getScene()
-{
-	var body = _Browser_doc.body;
-	var elem = _Browser_doc.documentElement;
-	return {
-		width: Math.max(body.scrollWidth, body.offsetWidth, elem.scrollWidth, elem.offsetWidth, elem.clientWidth),
-		height: Math.max(body.scrollHeight, body.offsetHeight, elem.scrollHeight, elem.offsetHeight, elem.clientHeight)
-	};
-}
-
-var _Browser_setViewport = F2(function(x, y)
-{
-	return _Browser_withWindow(function()
-	{
-		_Browser_window.scroll(x, y);
-		return _Utils_Tuple0;
-	});
-});
-
-
-
-// ELEMENT VIEWPORT
-
-
-function _Browser_getViewportOf(id)
-{
-	return _Browser_withNode(id, function(node)
-	{
-		return {
-			scene: {
-				width: node.scrollWidth,
-				height: node.scrollHeight
-			},
-			viewport: {
-				x: node.scrollLeft,
-				y: node.scrollTop,
-				width: node.clientWidth,
-				height: node.clientHeight
-			}
-		};
-	});
-}
-
-
-var _Browser_setViewportOf = F3(function(id, x, y)
-{
-	return _Browser_withNode(id, function(node)
-	{
-		node.scrollLeft = x;
-		node.scrollTop = y;
-		return _Utils_Tuple0;
-	});
-});
-
-
-
-// ELEMENT
-
-
-function _Browser_getElement(id)
-{
-	return _Browser_withNode(id, function(node)
-	{
-		var rect = node.getBoundingClientRect();
-		var x = _Browser_window.pageXOffset;
-		var y = _Browser_window.pageYOffset;
-		return {
-			scene: _Browser_getScene(),
-			viewport: {
-				x: x,
-				y: y,
-				width: _Browser_doc.documentElement.clientWidth,
-				height: _Browser_doc.documentElement.clientHeight
-			},
-			element: {
-				x: x + rect.left,
-				y: y + rect.top,
-				width: rect.width,
-				height: rect.height
-			}
-		};
-	});
-}
-
-
-
-// LOAD and RELOAD
-
-
-function _Browser_reload(skipCache)
-{
-	return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function(callback)
-	{
-		_VirtualDom_doc.location.reload(skipCache);
-	}));
-}
-
-function _Browser_load(url)
-{
-	return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function(callback)
-	{
-		try
-		{
-			_Browser_window.location = url;
-		}
-		catch(err)
-		{
-			// Only Firefox can throw a NS_ERROR_MALFORMED_URI exception here.
-			// Other browsers reload the page, so let's be consistent about that.
-			_VirtualDom_doc.location.reload(false);
-		}
-	}));
-}
-
-
-
-// SEND REQUEST
-
-var _Http_toTask = F3(function(router, toTask, request)
-{
-	return _Scheduler_binding(function(callback)
-	{
-		function done(response) {
-			callback(toTask(request.expect.a(response)));
-		}
-
-		var xhr = new XMLHttpRequest();
-		xhr.addEventListener('error', function() { done($elm$http$Http$NetworkError_); });
-		xhr.addEventListener('timeout', function() { done($elm$http$Http$Timeout_); });
-		xhr.addEventListener('load', function() { done(_Http_toResponse(request.expect.b, xhr)); });
-		$elm$core$Maybe$isJust(request.tracker) && _Http_track(router, xhr, request.tracker.a);
-
-		try {
-			xhr.open(request.method, request.url, true);
-		} catch (e) {
-			return done($elm$http$Http$BadUrl_(request.url));
-		}
-
-		_Http_configureRequest(xhr, request);
-
-		request.body.a && xhr.setRequestHeader('Content-Type', request.body.a);
-		xhr.send(request.body.b);
-
-		return function() { xhr.c = true; xhr.abort(); };
-	});
-});
-
-
-// CONFIGURE
-
-function _Http_configureRequest(xhr, request)
-{
-	for (var headers = request.headers; headers.b; headers = headers.b) // WHILE_CONS
-	{
-		xhr.setRequestHeader(headers.a.a, headers.a.b);
-	}
-	xhr.timeout = request.timeout.a || 0;
-	xhr.responseType = request.expect.d;
-	xhr.withCredentials = request.allowCookiesFromOtherDomains;
-}
-
-
-// RESPONSES
-
-function _Http_toResponse(toBody, xhr)
-{
-	return A2(
-		200 <= xhr.status && xhr.status < 300 ? $elm$http$Http$GoodStatus_ : $elm$http$Http$BadStatus_,
-		_Http_toMetadata(xhr),
-		toBody(xhr.response)
-	);
-}
-
-
-// METADATA
-
-function _Http_toMetadata(xhr)
-{
-	return {
-		url: xhr.responseURL,
-		statusCode: xhr.status,
-		statusText: xhr.statusText,
-		headers: _Http_parseHeaders(xhr.getAllResponseHeaders())
-	};
-}
-
-
-// HEADERS
-
-function _Http_parseHeaders(rawHeaders)
-{
-	if (!rawHeaders)
-	{
-		return $elm$core$Dict$empty;
-	}
-
-	var headers = $elm$core$Dict$empty;
-	var headerPairs = rawHeaders.split('\r\n');
-	for (var i = headerPairs.length; i--; )
-	{
-		var headerPair = headerPairs[i];
-		var index = headerPair.indexOf(': ');
-		if (index > 0)
-		{
-			var key = headerPair.substring(0, index);
-			var value = headerPair.substring(index + 2);
-
-			headers = A3($elm$core$Dict$update, key, function(oldValue) {
-				return $elm$core$Maybe$Just($elm$core$Maybe$isJust(oldValue)
-					? value + ', ' + oldValue.a
-					: value
-				);
-			}, headers);
-		}
-	}
-	return headers;
-}
-
-
-// EXPECT
-
-var _Http_expect = F3(function(type, toBody, toValue)
-{
-	return {
-		$: 0,
-		d: type,
-		b: toBody,
-		a: toValue
-	};
-});
-
-var _Http_mapExpect = F2(function(func, expect)
-{
-	return {
-		$: 0,
-		d: expect.d,
-		b: expect.b,
-		a: function(x) { return func(expect.a(x)); }
-	};
-});
-
-function _Http_toDataView(arrayBuffer)
-{
-	return new DataView(arrayBuffer);
-}
-
-
-// BODY and PARTS
-
-var _Http_emptyBody = { $: 0 };
-var _Http_pair = F2(function(a, b) { return { $: 0, a: a, b: b }; });
-
-function _Http_toFormData(parts)
-{
-	for (var formData = new FormData(); parts.b; parts = parts.b) // WHILE_CONS
-	{
-		var part = parts.a;
-		formData.append(part.a, part.b);
-	}
-	return formData;
-}
-
-var _Http_bytesToBlob = F2(function(mime, bytes)
-{
-	return new Blob([bytes], { type: mime });
-});
-
-
-// PROGRESS
-
-function _Http_track(router, xhr, tracker)
-{
-	// TODO check out lengthComputable on loadstart event
-
-	xhr.upload.addEventListener('progress', function(event) {
-		if (xhr.c) { return; }
-		_Scheduler_rawSpawn(A2($elm$core$Platform$sendToSelf, router, _Utils_Tuple2(tracker, $elm$http$Http$Sending({
-			sent: event.loaded,
-			size: event.total
-		}))));
-	});
-	xhr.addEventListener('progress', function(event) {
-		if (xhr.c) { return; }
-		_Scheduler_rawSpawn(A2($elm$core$Platform$sendToSelf, router, _Utils_Tuple2(tracker, $elm$http$Http$Receiving({
-			received: event.loaded,
-			size: event.lengthComputable ? $elm$core$Maybe$Just(event.total) : $elm$core$Maybe$Nothing
-		}))));
-	});
-}
-
-// CREATE
-
-var _Regex_never = /.^/;
-
-var _Regex_fromStringWith = F2(function(options, string)
-{
-	var flags = 'g';
-	if (options.multiline) { flags += 'm'; }
-	if (options.caseInsensitive) { flags += 'i'; }
-
-	try
-	{
-		return $elm$core$Maybe$Just(new RegExp(string, flags));
-	}
-	catch(error)
-	{
-		return $elm$core$Maybe$Nothing;
-	}
-});
-
-
-// USE
-
-var _Regex_contains = F2(function(re, string)
-{
-	return string.match(re) !== null;
-});
-
-
-var _Regex_findAtMost = F3(function(n, re, str)
-{
-	var out = [];
-	var number = 0;
-	var string = str;
-	var lastIndex = re.lastIndex;
-	var prevLastIndex = -1;
-	var result;
-	while (number++ < n && (result = re.exec(string)))
-	{
-		if (prevLastIndex == re.lastIndex) break;
-		var i = result.length - 1;
-		var subs = new Array(i);
-		while (i > 0)
-		{
-			var submatch = result[i];
-			subs[--i] = submatch
-				? $elm$core$Maybe$Just(submatch)
-				: $elm$core$Maybe$Nothing;
-		}
-		out.push(A4($elm$regex$Regex$Match, result[0], result.index, number, _List_fromArray(subs)));
-		prevLastIndex = re.lastIndex;
-	}
-	re.lastIndex = lastIndex;
-	return _List_fromArray(out);
-});
-
-
-var _Regex_replaceAtMost = F4(function(n, re, replacer, string)
-{
-	var count = 0;
-	function jsReplacer(match)
-	{
-		if (count++ >= n)
-		{
-			return match;
-		}
-		var i = arguments.length - 3;
-		var submatches = new Array(i);
-		while (i > 0)
-		{
-			var submatch = arguments[i];
-			submatches[--i] = submatch
-				? $elm$core$Maybe$Just(submatch)
-				: $elm$core$Maybe$Nothing;
-		}
-		return replacer(A4($elm$regex$Regex$Match, match, arguments[arguments.length - 2], count, _List_fromArray(submatches)));
-	}
-	return string.replace(re, jsReplacer);
-});
-
-var _Regex_splitAtMost = F3(function(n, re, str)
-{
-	var string = str;
-	var out = [];
-	var start = re.lastIndex;
-	var restoreLastIndex = re.lastIndex;
-	while (n--)
-	{
-		var result = re.exec(string);
-		if (!result) break;
-		out.push(string.slice(start, result.index));
-		start = re.lastIndex;
-	}
-	out.push(string.slice(start));
-	re.lastIndex = restoreLastIndex;
-	return _List_fromArray(out);
-});
-
-var _Regex_infinity = Infinity;
-
-
-
-var _Bitwise_and = F2(function(a, b)
-{
-	return a & b;
-});
-
-var _Bitwise_or = F2(function(a, b)
-{
-	return a | b;
-});
-
-var _Bitwise_xor = F2(function(a, b)
-{
-	return a ^ b;
-});
-
-function _Bitwise_complement(a)
-{
-	return ~a;
-};
-
-var _Bitwise_shiftLeftBy = F2(function(offset, a)
-{
-	return a << offset;
-});
-
-var _Bitwise_shiftRightBy = F2(function(offset, a)
-{
-	return a >> offset;
-});
-
-var _Bitwise_shiftRightZfBy = F2(function(offset, a)
-{
-	return a >>> offset;
-});
-var $elm$core$Basics$EQ = {$: 'EQ'};
-var $elm$core$Basics$GT = {$: 'GT'};
-var $elm$core$Basics$LT = {$: 'LT'};
-var $elm$core$List$cons = _List_cons;
-var $elm$core$Dict$foldr = F3(
-	function (func, acc, t) {
-		foldr:
-		while (true) {
-			if (t.$ === 'RBEmpty_elm_builtin') {
-				return acc;
-			} else {
-				var key = t.b;
-				var value = t.c;
-				var left = t.d;
-				var right = t.e;
-				var $temp$func = func,
-					$temp$acc = A3(
-					func,
-					key,
-					value,
-					A3($elm$core$Dict$foldr, func, acc, right)),
-					$temp$t = left;
-				func = $temp$func;
-				acc = $temp$acc;
-				t = $temp$t;
-				continue foldr;
-			}
-		}
-	});
-var $elm$core$Dict$toList = function (dict) {
-	return A3(
-		$elm$core$Dict$foldr,
-		F3(
-			function (key, value, list) {
-				return A2(
-					$elm$core$List$cons,
-					_Utils_Tuple2(key, value),
-					list);
-			}),
-		_List_Nil,
-		dict);
-};
-var $elm$core$Dict$keys = function (dict) {
-	return A3(
-		$elm$core$Dict$foldr,
-		F3(
-			function (key, value, keyList) {
-				return A2($elm$core$List$cons, key, keyList);
-			}),
-		_List_Nil,
-		dict);
-};
-var $elm$core$Set$toList = function (_v0) {
-	var dict = _v0.a;
-	return $elm$core$Dict$keys(dict);
-};
-var $elm$core$Elm$JsArray$foldr = _JsArray_foldr;
-var $elm$core$Array$foldr = F3(
-	function (func, baseCase, _v0) {
-		var tree = _v0.c;
-		var tail = _v0.d;
-		var helper = F2(
-			function (node, acc) {
-				if (node.$ === 'SubTree') {
-					var subTree = node.a;
-					return A3($elm$core$Elm$JsArray$foldr, helper, acc, subTree);
-				} else {
-					var values = node.a;
-					return A3($elm$core$Elm$JsArray$foldr, func, acc, values);
-				}
-			});
-		return A3(
-			$elm$core$Elm$JsArray$foldr,
-			helper,
-			A3($elm$core$Elm$JsArray$foldr, func, baseCase, tail),
-			tree);
-	});
-var $elm$core$Array$toList = function (array) {
-	return A3($elm$core$Array$foldr, $elm$core$List$cons, _List_Nil, array);
-};
-var $elm$core$Result$Err = function (a) {
-	return {$: 'Err', a: a};
-};
-var $elm$json$Json$Decode$Failure = F2(
-	function (a, b) {
-		return {$: 'Failure', a: a, b: b};
-	});
-var $elm$json$Json$Decode$Field = F2(
-	function (a, b) {
-		return {$: 'Field', a: a, b: b};
-	});
-var $elm$json$Json$Decode$Index = F2(
-	function (a, b) {
-		return {$: 'Index', a: a, b: b};
-	});
-var $elm$core$Result$Ok = function (a) {
-	return {$: 'Ok', a: a};
-};
-var $elm$json$Json$Decode$OneOf = function (a) {
-	return {$: 'OneOf', a: a};
-};
-var $elm$core$Basics$False = {$: 'False'};
-var $elm$core$Basics$add = _Basics_add;
-var $elm$core$Maybe$Just = function (a) {
-	return {$: 'Just', a: a};
-};
-var $elm$core$Maybe$Nothing = {$: 'Nothing'};
-var $elm$core$String$all = _String_all;
-var $elm$core$Basics$and = _Basics_and;
-var $elm$core$Basics$append = _Utils_append;
-var $elm$json$Json$Encode$encode = _Json_encode;
-var $elm$core$String$fromInt = _String_fromNumber;
-var $elm$core$String$join = F2(
-	function (sep, chunks) {
-		return A2(
-			_String_join,
-			sep,
-			_List_toArray(chunks));
-	});
-var $elm$core$String$split = F2(
-	function (sep, string) {
-		return _List_fromArray(
-			A2(_String_split, sep, string));
-	});
-var $elm$json$Json$Decode$indent = function (str) {
-	return A2(
-		$elm$core$String$join,
-		'\n    ',
-		A2($elm$core$String$split, '\n', str));
-};
-var $elm$core$List$foldl = F3(
-	function (func, acc, list) {
-		foldl:
-		while (true) {
-			if (!list.b) {
-				return acc;
-			} else {
-				var x = list.a;
-				var xs = list.b;
-				var $temp$func = func,
-					$temp$acc = A2(func, x, acc),
-					$temp$list = xs;
-				func = $temp$func;
-				acc = $temp$acc;
-				list = $temp$list;
-				continue foldl;
-			}
-		}
-	});
-var $elm$core$List$length = function (xs) {
-	return A3(
-		$elm$core$List$foldl,
-		F2(
-			function (_v0, i) {
-				return i + 1;
-			}),
-		0,
-		xs);
-};
-var $elm$core$List$map2 = _List_map2;
-var $elm$core$Basics$le = _Utils_le;
-var $elm$core$Basics$sub = _Basics_sub;
-var $elm$core$List$rangeHelp = F3(
-	function (lo, hi, list) {
-		rangeHelp:
-		while (true) {
-			if (_Utils_cmp(lo, hi) < 1) {
-				var $temp$lo = lo,
-					$temp$hi = hi - 1,
-					$temp$list = A2($elm$core$List$cons, hi, list);
-				lo = $temp$lo;
-				hi = $temp$hi;
-				list = $temp$list;
-				continue rangeHelp;
-			} else {
-				return list;
-			}
-		}
-	});
-var $elm$core$List$range = F2(
-	function (lo, hi) {
-		return A3($elm$core$List$rangeHelp, lo, hi, _List_Nil);
-	});
-var $elm$core$List$indexedMap = F2(
-	function (f, xs) {
-		return A3(
-			$elm$core$List$map2,
-			f,
-			A2(
-				$elm$core$List$range,
-				0,
-				$elm$core$List$length(xs) - 1),
-			xs);
-	});
-var $elm$core$Char$toCode = _Char_toCode;
-var $elm$core$Char$isLower = function (_char) {
-	var code = $elm$core$Char$toCode(_char);
-	return (97 <= code) && (code <= 122);
-};
-var $elm$core$Char$isUpper = function (_char) {
-	var code = $elm$core$Char$toCode(_char);
-	return (code <= 90) && (65 <= code);
-};
-var $elm$core$Basics$or = _Basics_or;
-var $elm$core$Char$isAlpha = function (_char) {
-	return $elm$core$Char$isLower(_char) || $elm$core$Char$isUpper(_char);
-};
-var $elm$core$Char$isDigit = function (_char) {
-	var code = $elm$core$Char$toCode(_char);
-	return (code <= 57) && (48 <= code);
-};
-var $elm$core$Char$isAlphaNum = function (_char) {
-	return $elm$core$Char$isLower(_char) || ($elm$core$Char$isUpper(_char) || $elm$core$Char$isDigit(_char));
-};
-var $elm$core$List$reverse = function (list) {
-	return A3($elm$core$List$foldl, $elm$core$List$cons, _List_Nil, list);
-};
-var $elm$core$String$uncons = _String_uncons;
-var $elm$json$Json$Decode$errorOneOf = F2(
-	function (i, error) {
-		return '\n\n(' + ($elm$core$String$fromInt(i + 1) + (') ' + $elm$json$Json$Decode$indent(
-			$elm$json$Json$Decode$errorToString(error))));
-	});
-var $elm$json$Json$Decode$errorToString = function (error) {
-	return A2($elm$json$Json$Decode$errorToStringHelp, error, _List_Nil);
-};
-var $elm$json$Json$Decode$errorToStringHelp = F2(
-	function (error, context) {
-		errorToStringHelp:
-		while (true) {
-			switch (error.$) {
-				case 'Field':
-					var f = error.a;
-					var err = error.b;
-					var isSimple = function () {
-						var _v1 = $elm$core$String$uncons(f);
-						if (_v1.$ === 'Nothing') {
-							return false;
-						} else {
-							var _v2 = _v1.a;
-							var _char = _v2.a;
-							var rest = _v2.b;
-							return $elm$core$Char$isAlpha(_char) && A2($elm$core$String$all, $elm$core$Char$isAlphaNum, rest);
-						}
-					}();
-					var fieldName = isSimple ? ('.' + f) : ('[\'' + (f + '\']'));
-					var $temp$error = err,
-						$temp$context = A2($elm$core$List$cons, fieldName, context);
-					error = $temp$error;
-					context = $temp$context;
-					continue errorToStringHelp;
-				case 'Index':
-					var i = error.a;
-					var err = error.b;
-					var indexName = '[' + ($elm$core$String$fromInt(i) + ']');
-					var $temp$error = err,
-						$temp$context = A2($elm$core$List$cons, indexName, context);
-					error = $temp$error;
-					context = $temp$context;
-					continue errorToStringHelp;
-				case 'OneOf':
-					var errors = error.a;
-					if (!errors.b) {
-						return 'Ran into a Json.Decode.oneOf with no possibilities' + function () {
-							if (!context.b) {
-								return '!';
-							} else {
-								return ' at json' + A2(
-									$elm$core$String$join,
-									'',
-									$elm$core$List$reverse(context));
-							}
-						}();
-					} else {
-						if (!errors.b.b) {
-							var err = errors.a;
-							var $temp$error = err,
-								$temp$context = context;
-							error = $temp$error;
-							context = $temp$context;
-							continue errorToStringHelp;
-						} else {
-							var starter = function () {
-								if (!context.b) {
-									return 'Json.Decode.oneOf';
-								} else {
-									return 'The Json.Decode.oneOf at json' + A2(
-										$elm$core$String$join,
-										'',
-										$elm$core$List$reverse(context));
-								}
-							}();
-							var introduction = starter + (' failed in the following ' + ($elm$core$String$fromInt(
-								$elm$core$List$length(errors)) + ' ways:'));
-							return A2(
-								$elm$core$String$join,
-								'\n\n',
-								A2(
-									$elm$core$List$cons,
-									introduction,
-									A2($elm$core$List$indexedMap, $elm$json$Json$Decode$errorOneOf, errors)));
-						}
-					}
-				default:
-					var msg = error.a;
-					var json = error.b;
-					var introduction = function () {
-						if (!context.b) {
-							return 'Problem with the given value:\n\n';
-						} else {
-							return 'Problem with the value at json' + (A2(
-								$elm$core$String$join,
-								'',
-								$elm$core$List$reverse(context)) + ':\n\n    ');
-						}
-					}();
-					return introduction + ($elm$json$Json$Decode$indent(
-						A2($elm$json$Json$Encode$encode, 4, json)) + ('\n\n' + msg));
-			}
-		}
-	});
-var $elm$core$Array$branchFactor = 32;
-var $elm$core$Array$Array_elm_builtin = F4(
-	function (a, b, c, d) {
-		return {$: 'Array_elm_builtin', a: a, b: b, c: c, d: d};
-	});
-var $elm$core$Elm$JsArray$empty = _JsArray_empty;
-var $elm$core$Basics$ceiling = _Basics_ceiling;
-var $elm$core$Basics$fdiv = _Basics_fdiv;
-var $elm$core$Basics$logBase = F2(
-	function (base, number) {
-		return _Basics_log(number) / _Basics_log(base);
-	});
-var $elm$core$Basics$toFloat = _Basics_toFloat;
-var $elm$core$Array$shiftStep = $elm$core$Basics$ceiling(
-	A2($elm$core$Basics$logBase, 2, $elm$core$Array$branchFactor));
-var $elm$core$Array$empty = A4($elm$core$Array$Array_elm_builtin, 0, $elm$core$Array$shiftStep, $elm$core$Elm$JsArray$empty, $elm$core$Elm$JsArray$empty);
-var $elm$core$Elm$JsArray$initialize = _JsArray_initialize;
-var $elm$core$Array$Leaf = function (a) {
-	return {$: 'Leaf', a: a};
-};
-var $elm$core$Basics$apL = F2(
-	function (f, x) {
-		return f(x);
-	});
-var $elm$core$Basics$apR = F2(
-	function (x, f) {
-		return f(x);
-	});
-var $elm$core$Basics$eq = _Utils_equal;
-var $elm$core$Basics$floor = _Basics_floor;
-var $elm$core$Elm$JsArray$length = _JsArray_length;
-var $elm$core$Basics$gt = _Utils_gt;
-var $elm$core$Basics$max = F2(
-	function (x, y) {
-		return (_Utils_cmp(x, y) > 0) ? x : y;
-	});
-var $elm$core$Basics$mul = _Basics_mul;
-var $elm$core$Array$SubTree = function (a) {
-	return {$: 'SubTree', a: a};
-};
-var $elm$core$Elm$JsArray$initializeFromList = _JsArray_initializeFromList;
-var $elm$core$Array$compressNodes = F2(
-	function (nodes, acc) {
-		compressNodes:
-		while (true) {
-			var _v0 = A2($elm$core$Elm$JsArray$initializeFromList, $elm$core$Array$branchFactor, nodes);
-			var node = _v0.a;
-			var remainingNodes = _v0.b;
-			var newAcc = A2(
-				$elm$core$List$cons,
-				$elm$core$Array$SubTree(node),
-				acc);
-			if (!remainingNodes.b) {
-				return $elm$core$List$reverse(newAcc);
-			} else {
-				var $temp$nodes = remainingNodes,
-					$temp$acc = newAcc;
-				nodes = $temp$nodes;
-				acc = $temp$acc;
-				continue compressNodes;
-			}
-		}
-	});
-var $elm$core$Tuple$first = function (_v0) {
-	var x = _v0.a;
-	return x;
-};
-var $elm$core$Array$treeFromBuilder = F2(
-	function (nodeList, nodeListSize) {
-		treeFromBuilder:
-		while (true) {
-			var newNodeSize = $elm$core$Basics$ceiling(nodeListSize / $elm$core$Array$branchFactor);
-			if (newNodeSize === 1) {
-				return A2($elm$core$Elm$JsArray$initializeFromList, $elm$core$Array$branchFactor, nodeList).a;
-			} else {
-				var $temp$nodeList = A2($elm$core$Array$compressNodes, nodeList, _List_Nil),
-					$temp$nodeListSize = newNodeSize;
-				nodeList = $temp$nodeList;
-				nodeListSize = $temp$nodeListSize;
-				continue treeFromBuilder;
-			}
-		}
-	});
-var $elm$core$Array$builderToArray = F2(
-	function (reverseNodeList, builder) {
-		if (!builder.nodeListSize) {
-			return A4(
-				$elm$core$Array$Array_elm_builtin,
-				$elm$core$Elm$JsArray$length(builder.tail),
-				$elm$core$Array$shiftStep,
-				$elm$core$Elm$JsArray$empty,
-				builder.tail);
-		} else {
-			var treeLen = builder.nodeListSize * $elm$core$Array$branchFactor;
-			var depth = $elm$core$Basics$floor(
-				A2($elm$core$Basics$logBase, $elm$core$Array$branchFactor, treeLen - 1));
-			var correctNodeList = reverseNodeList ? $elm$core$List$reverse(builder.nodeList) : builder.nodeList;
-			var tree = A2($elm$core$Array$treeFromBuilder, correctNodeList, builder.nodeListSize);
-			return A4(
-				$elm$core$Array$Array_elm_builtin,
-				$elm$core$Elm$JsArray$length(builder.tail) + treeLen,
-				A2($elm$core$Basics$max, 5, depth * $elm$core$Array$shiftStep),
-				tree,
-				builder.tail);
-		}
-	});
-var $elm$core$Basics$idiv = _Basics_idiv;
-var $elm$core$Basics$lt = _Utils_lt;
-var $elm$core$Array$initializeHelp = F5(
-	function (fn, fromIndex, len, nodeList, tail) {
-		initializeHelp:
-		while (true) {
-			if (fromIndex < 0) {
-				return A2(
-					$elm$core$Array$builderToArray,
-					false,
-					{nodeList: nodeList, nodeListSize: (len / $elm$core$Array$branchFactor) | 0, tail: tail});
-			} else {
-				var leaf = $elm$core$Array$Leaf(
-					A3($elm$core$Elm$JsArray$initialize, $elm$core$Array$branchFactor, fromIndex, fn));
-				var $temp$fn = fn,
-					$temp$fromIndex = fromIndex - $elm$core$Array$branchFactor,
-					$temp$len = len,
-					$temp$nodeList = A2($elm$core$List$cons, leaf, nodeList),
-					$temp$tail = tail;
-				fn = $temp$fn;
-				fromIndex = $temp$fromIndex;
-				len = $temp$len;
-				nodeList = $temp$nodeList;
-				tail = $temp$tail;
-				continue initializeHelp;
-			}
-		}
-	});
-var $elm$core$Basics$remainderBy = _Basics_remainderBy;
-var $elm$core$Array$initialize = F2(
-	function (len, fn) {
-		if (len <= 0) {
-			return $elm$core$Array$empty;
-		} else {
-			var tailLen = len % $elm$core$Array$branchFactor;
-			var tail = A3($elm$core$Elm$JsArray$initialize, tailLen, len - tailLen, fn);
-			var initialFromIndex = (len - tailLen) - $elm$core$Array$branchFactor;
-			return A5($elm$core$Array$initializeHelp, fn, initialFromIndex, len, _List_Nil, tail);
-		}
-	});
-var $elm$core$Basics$True = {$: 'True'};
-var $elm$core$Result$isOk = function (result) {
-	if (result.$ === 'Ok') {
-		return true;
-	} else {
-		return false;
-	}
-};
-var $elm$json$Json$Decode$map = _Json_map1;
-var $elm$json$Json$Decode$map2 = _Json_map2;
-var $elm$json$Json$Decode$succeed = _Json_succeed;
-var $elm$virtual_dom$VirtualDom$toHandlerInt = function (handler) {
-	switch (handler.$) {
-		case 'Normal':
-			return 0;
-		case 'MayStopPropagation':
-			return 1;
-		case 'MayPreventDefault':
-			return 2;
-		default:
-			return 3;
-	}
-};
-var $elm$browser$Browser$External = function (a) {
-	return {$: 'External', a: a};
-};
-var $elm$browser$Browser$Internal = function (a) {
-	return {$: 'Internal', a: a};
-};
-var $elm$core$Basics$identity = function (x) {
-	return x;
-};
-var $elm$browser$Browser$Dom$NotFound = function (a) {
-	return {$: 'NotFound', a: a};
-};
-var $elm$url$Url$Http = {$: 'Http'};
-var $elm$url$Url$Https = {$: 'Https'};
-var $elm$url$Url$Url = F6(
-	function (protocol, host, port_, path, query, fragment) {
-		return {fragment: fragment, host: host, path: path, port_: port_, protocol: protocol, query: query};
-	});
-var $elm$core$String$contains = _String_contains;
-var $elm$core$String$length = _String_length;
-var $elm$core$String$slice = _String_slice;
-var $elm$core$String$dropLeft = F2(
-	function (n, string) {
-		return (n < 1) ? string : A3(
-			$elm$core$String$slice,
-			n,
-			$elm$core$String$length(string),
-			string);
-	});
-var $elm$core$String$indexes = _String_indexes;
-var $elm$core$String$isEmpty = function (string) {
-	return string === '';
-};
-var $elm$core$String$left = F2(
-	function (n, string) {
-		return (n < 1) ? '' : A3($elm$core$String$slice, 0, n, string);
-	});
-var $elm$core$String$toInt = _String_toInt;
-var $elm$url$Url$chompBeforePath = F5(
-	function (protocol, path, params, frag, str) {
-		if ($elm$core$String$isEmpty(str) || A2($elm$core$String$contains, '@', str)) {
-			return $elm$core$Maybe$Nothing;
-		} else {
-			var _v0 = A2($elm$core$String$indexes, ':', str);
-			if (!_v0.b) {
-				return $elm$core$Maybe$Just(
-					A6($elm$url$Url$Url, protocol, str, $elm$core$Maybe$Nothing, path, params, frag));
-			} else {
-				if (!_v0.b.b) {
-					var i = _v0.a;
-					var _v1 = $elm$core$String$toInt(
-						A2($elm$core$String$dropLeft, i + 1, str));
-					if (_v1.$ === 'Nothing') {
-						return $elm$core$Maybe$Nothing;
-					} else {
-						var port_ = _v1;
-						return $elm$core$Maybe$Just(
-							A6(
-								$elm$url$Url$Url,
-								protocol,
-								A2($elm$core$String$left, i, str),
-								port_,
-								path,
-								params,
-								frag));
-					}
-				} else {
-					return $elm$core$Maybe$Nothing;
-				}
-			}
-		}
-	});
-var $elm$url$Url$chompBeforeQuery = F4(
-	function (protocol, params, frag, str) {
-		if ($elm$core$String$isEmpty(str)) {
-			return $elm$core$Maybe$Nothing;
-		} else {
-			var _v0 = A2($elm$core$String$indexes, '/', str);
-			if (!_v0.b) {
-				return A5($elm$url$Url$chompBeforePath, protocol, '/', params, frag, str);
-			} else {
-				var i = _v0.a;
-				return A5(
-					$elm$url$Url$chompBeforePath,
-					protocol,
-					A2($elm$core$String$dropLeft, i, str),
-					params,
-					frag,
-					A2($elm$core$String$left, i, str));
-			}
-		}
-	});
-var $elm$url$Url$chompBeforeFragment = F3(
-	function (protocol, frag, str) {
-		if ($elm$core$String$isEmpty(str)) {
-			return $elm$core$Maybe$Nothing;
-		} else {
-			var _v0 = A2($elm$core$String$indexes, '?', str);
-			if (!_v0.b) {
-				return A4($elm$url$Url$chompBeforeQuery, protocol, $elm$core$Maybe$Nothing, frag, str);
-			} else {
-				var i = _v0.a;
-				return A4(
-					$elm$url$Url$chompBeforeQuery,
-					protocol,
-					$elm$core$Maybe$Just(
-						A2($elm$core$String$dropLeft, i + 1, str)),
-					frag,
-					A2($elm$core$String$left, i, str));
-			}
-		}
-	});
-var $elm$url$Url$chompAfterProtocol = F2(
-	function (protocol, str) {
-		if ($elm$core$String$isEmpty(str)) {
-			return $elm$core$Maybe$Nothing;
-		} else {
-			var _v0 = A2($elm$core$String$indexes, '#', str);
-			if (!_v0.b) {
-				return A3($elm$url$Url$chompBeforeFragment, protocol, $elm$core$Maybe$Nothing, str);
-			} else {
-				var i = _v0.a;
-				return A3(
-					$elm$url$Url$chompBeforeFragment,
-					protocol,
-					$elm$core$Maybe$Just(
-						A2($elm$core$String$dropLeft, i + 1, str)),
-					A2($elm$core$String$left, i, str));
-			}
-		}
-	});
-var $elm$core$String$startsWith = _String_startsWith;
-var $elm$url$Url$fromString = function (str) {
-	return A2($elm$core$String$startsWith, 'http://', str) ? A2(
-		$elm$url$Url$chompAfterProtocol,
-		$elm$url$Url$Http,
-		A2($elm$core$String$dropLeft, 7, str)) : (A2($elm$core$String$startsWith, 'https://', str) ? A2(
-		$elm$url$Url$chompAfterProtocol,
-		$elm$url$Url$Https,
-		A2($elm$core$String$dropLeft, 8, str)) : $elm$core$Maybe$Nothing);
-};
-var $elm$core$Basics$never = function (_v0) {
-	never:
-	while (true) {
-		var nvr = _v0.a;
-		var $temp$_v0 = nvr;
-		_v0 = $temp$_v0;
-		continue never;
-	}
-};
-var $elm$core$Task$Perform = function (a) {
-	return {$: 'Perform', a: a};
-};
-var $elm$core$Task$succeed = _Scheduler_succeed;
-var $elm$core$Task$init = $elm$core$Task$succeed(_Utils_Tuple0);
-var $elm$core$List$foldrHelper = F4(
-	function (fn, acc, ctr, ls) {
-		if (!ls.b) {
-			return acc;
-		} else {
-			var a = ls.a;
-			var r1 = ls.b;
-			if (!r1.b) {
-				return A2(fn, a, acc);
-			} else {
-				var b = r1.a;
-				var r2 = r1.b;
-				if (!r2.b) {
-					return A2(
-						fn,
-						a,
-						A2(fn, b, acc));
-				} else {
-					var c = r2.a;
-					var r3 = r2.b;
-					if (!r3.b) {
-						return A2(
-							fn,
-							a,
-							A2(
-								fn,
-								b,
-								A2(fn, c, acc)));
-					} else {
-						var d = r3.a;
-						var r4 = r3.b;
-						var res = (ctr > 500) ? A3(
-							$elm$core$List$foldl,
-							fn,
-							acc,
-							$elm$core$List$reverse(r4)) : A4($elm$core$List$foldrHelper, fn, acc, ctr + 1, r4);
-						return A2(
-							fn,
-							a,
-							A2(
-								fn,
-								b,
-								A2(
-									fn,
-									c,
-									A2(fn, d, res))));
-					}
-				}
-			}
-		}
-	});
-var $elm$core$List$foldr = F3(
-	function (fn, acc, ls) {
-		return A4($elm$core$List$foldrHelper, fn, acc, 0, ls);
-	});
-var $elm$core$List$map = F2(
-	function (f, xs) {
-		return A3(
-			$elm$core$List$foldr,
-			F2(
-				function (x, acc) {
-					return A2(
-						$elm$core$List$cons,
-						f(x),
-						acc);
-				}),
-			_List_Nil,
-			xs);
-	});
-var $elm$core$Task$andThen = _Scheduler_andThen;
-var $elm$core$Task$map = F2(
-	function (func, taskA) {
-		return A2(
-			$elm$core$Task$andThen,
-			function (a) {
-				return $elm$core$Task$succeed(
-					func(a));
-			},
-			taskA);
-	});
-var $elm$core$Task$map2 = F3(
-	function (func, taskA, taskB) {
-		return A2(
-			$elm$core$Task$andThen,
-			function (a) {
-				return A2(
-					$elm$core$Task$andThen,
-					function (b) {
-						return $elm$core$Task$succeed(
-							A2(func, a, b));
-					},
-					taskB);
-			},
-			taskA);
-	});
-var $elm$core$Task$sequence = function (tasks) {
-	return A3(
-		$elm$core$List$foldr,
-		$elm$core$Task$map2($elm$core$List$cons),
-		$elm$core$Task$succeed(_List_Nil),
-		tasks);
-};
-var $elm$core$Platform$sendToApp = _Platform_sendToApp;
-var $elm$core$Task$spawnCmd = F2(
-	function (router, _v0) {
-		var task = _v0.a;
-		return _Scheduler_spawn(
-			A2(
-				$elm$core$Task$andThen,
-				$elm$core$Platform$sendToApp(router),
-				task));
-	});
-var $elm$core$Task$onEffects = F3(
-	function (router, commands, state) {
-		return A2(
-			$elm$core$Task$map,
-			function (_v0) {
-				return _Utils_Tuple0;
-			},
-			$elm$core$Task$sequence(
-				A2(
-					$elm$core$List$map,
-					$elm$core$Task$spawnCmd(router),
-					commands)));
-	});
-var $elm$core$Task$onSelfMsg = F3(
-	function (_v0, _v1, _v2) {
-		return $elm$core$Task$succeed(_Utils_Tuple0);
-	});
-var $elm$core$Task$cmdMap = F2(
-	function (tagger, _v0) {
-		var task = _v0.a;
-		return $elm$core$Task$Perform(
-			A2($elm$core$Task$map, tagger, task));
-	});
-_Platform_effectManagers['Task'] = _Platform_createManager($elm$core$Task$init, $elm$core$Task$onEffects, $elm$core$Task$onSelfMsg, $elm$core$Task$cmdMap);
-var $elm$core$Task$command = _Platform_leaf('Task');
-var $elm$core$Task$perform = F2(
-	function (toMessage, task) {
-		return $elm$core$Task$command(
-			$elm$core$Task$Perform(
-				A2($elm$core$Task$map, toMessage, task)));
-	});
-var $elm$browser$Browser$element = _Browser_element;
-var $author$project$Morphir$Web$DevelopMain$WaitingForResponse = {$: 'WaitingForResponse'};
-var $author$project$Morphir$Web$DevelopMain$MakeResult = function (a) {
-	return {$: 'MakeResult', a: a};
-};
-var $elm$json$Json$Decode$andThen = _Json_andThen;
-var $author$project$Morphir$IR$Distribution$Library = F3(
-	function (a, b, c) {
-		return {$: 'Library', a: a, b: b, c: c};
-	});
-var $author$project$Morphir$IR$Package$Definition = function (modules) {
-	return {modules: modules};
-};
-var $author$project$Morphir$IR$AccessControlled$AccessControlled = F2(
-	function (access, value) {
-		return {access: access, value: value};
-	});
-var $author$project$Morphir$IR$AccessControlled$Private = {$: 'Private'};
-var $author$project$Morphir$IR$AccessControlled$Public = {$: 'Public'};
-var $elm$json$Json$Decode$fail = _Json_fail;
-var $elm$json$Json$Decode$index = _Json_decodeIndex;
-var $elm$json$Json$Decode$string = _Json_decodeString;
-var $author$project$Morphir$IR$AccessControlled$Codec$decodeAccessControlled = function (decodeValue) {
-	return A2(
-		$elm$json$Json$Decode$andThen,
-		function (tag) {
-			switch (tag) {
-				case 'public':
-					return A2(
-						$elm$json$Json$Decode$map,
-						$author$project$Morphir$IR$AccessControlled$AccessControlled($author$project$Morphir$IR$AccessControlled$Public),
-						A2($elm$json$Json$Decode$index, 1, decodeValue));
-				case 'private':
-					return A2(
-						$elm$json$Json$Decode$map,
-						$author$project$Morphir$IR$AccessControlled$AccessControlled($author$project$Morphir$IR$AccessControlled$Private),
-						A2($elm$json$Json$Decode$index, 1, decodeValue));
-				default:
-					var other = tag;
-					return $elm$json$Json$Decode$fail('Unknown access controlled type: ' + other);
-			}
-		},
-		A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string));
-};
-var $author$project$Morphir$IR$Module$Definition = F2(
-	function (types, values) {
-		return {types: types, values: values};
-	});
-var $author$project$Morphir$IR$Type$CustomTypeDefinition = F2(
-	function (a, b) {
-		return {$: 'CustomTypeDefinition', a: a, b: b};
-	});
-var $author$project$Morphir$IR$Type$TypeAliasDefinition = F2(
-	function (a, b) {
-		return {$: 'TypeAliasDefinition', a: a, b: b};
-	});
-var $author$project$Morphir$IR$Type$Constructor = F2(
-	function (a, b) {
-		return {$: 'Constructor', a: a, b: b};
-	});
-var $author$project$Morphir$IR$Name$fromList = function (words) {
-	return words;
-};
-var $elm$json$Json$Decode$list = _Json_decodeList;
-var $author$project$Morphir$IR$Name$Codec$decodeName = A2(
-	$elm$json$Json$Decode$map,
-	$author$project$Morphir$IR$Name$fromList,
-	$elm$json$Json$Decode$list($elm$json$Json$Decode$string));
-var $author$project$Morphir$IR$Type$ExtensibleRecord = F3(
-	function (a, b, c) {
-		return {$: 'ExtensibleRecord', a: a, b: b, c: c};
-	});
-var $author$project$Morphir$IR$Type$Field = F2(
-	function (name, tpe) {
-		return {name: name, tpe: tpe};
-	});
-var $author$project$Morphir$IR$Type$Function = F3(
-	function (a, b, c) {
-		return {$: 'Function', a: a, b: b, c: c};
-	});
-var $author$project$Morphir$IR$Type$Record = F2(
-	function (a, b) {
-		return {$: 'Record', a: a, b: b};
-	});
-var $author$project$Morphir$IR$Type$Reference = F3(
-	function (a, b, c) {
-		return {$: 'Reference', a: a, b: b, c: c};
-	});
-var $author$project$Morphir$IR$Type$Tuple = F2(
-	function (a, b) {
-		return {$: 'Tuple', a: a, b: b};
-	});
-var $author$project$Morphir$IR$Type$Unit = function (a) {
-	return {$: 'Unit', a: a};
-};
-var $author$project$Morphir$IR$Type$Variable = F2(
-	function (a, b) {
-		return {$: 'Variable', a: a, b: b};
-	});
-var $author$project$Morphir$IR$FQName$FQName = F3(
-	function (a, b, c) {
-		return {$: 'FQName', a: a, b: b, c: c};
-	});
-var $author$project$Morphir$IR$Path$fromList = function (names) {
-	return names;
-};
-var $author$project$Morphir$IR$Path$Codec$decodePath = A2(
-	$elm$json$Json$Decode$map,
-	$author$project$Morphir$IR$Path$fromList,
-	$elm$json$Json$Decode$list($author$project$Morphir$IR$Name$Codec$decodeName));
-var $elm$json$Json$Decode$map3 = _Json_map3;
-var $author$project$Morphir$IR$FQName$Codec$decodeFQName = A4(
-	$elm$json$Json$Decode$map3,
-	$author$project$Morphir$IR$FQName$FQName,
-	A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Path$Codec$decodePath),
-	A2($elm$json$Json$Decode$index, 1, $author$project$Morphir$IR$Path$Codec$decodePath),
-	A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Name$Codec$decodeName));
-var $elm$json$Json$Decode$lazy = function (thunk) {
-	return A2(
-		$elm$json$Json$Decode$andThen,
-		thunk,
-		$elm$json$Json$Decode$succeed(_Utils_Tuple0));
-};
-var $author$project$Morphir$IR$Type$Codec$decodeField = function (decodeAttributes) {
-	return A3(
-		$elm$json$Json$Decode$map2,
-		$author$project$Morphir$IR$Type$Field,
-		A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName),
-		A2(
-			$elm$json$Json$Decode$index,
-			1,
-			$author$project$Morphir$IR$Type$Codec$decodeType(decodeAttributes)));
-};
-var $author$project$Morphir$IR$Type$Codec$decodeType = function (decodeAttributes) {
-	var lazyDecodeType = $elm$json$Json$Decode$lazy(
-		function (_v3) {
-			return $author$project$Morphir$IR$Type$Codec$decodeType(decodeAttributes);
-		});
-	var lazyDecodeField = $elm$json$Json$Decode$lazy(
-		function (_v2) {
-			return $author$project$Morphir$IR$Type$Codec$decodeField(decodeAttributes);
-		});
-	return A2(
-		$elm$json$Json$Decode$andThen,
-		function (kind) {
-			switch (kind) {
-				case 'variable':
-					return A3(
-						$elm$json$Json$Decode$map2,
-						$author$project$Morphir$IR$Type$Variable,
-						A2($elm$json$Json$Decode$index, 1, decodeAttributes),
-						A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Name$Codec$decodeName));
-				case 'reference':
-					return A4(
-						$elm$json$Json$Decode$map3,
-						$author$project$Morphir$IR$Type$Reference,
-						A2($elm$json$Json$Decode$index, 1, decodeAttributes),
-						A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$FQName$Codec$decodeFQName),
-						A2(
-							$elm$json$Json$Decode$index,
-							3,
-							$elm$json$Json$Decode$list(
-								$elm$json$Json$Decode$lazy(
-									function (_v1) {
-										return $author$project$Morphir$IR$Type$Codec$decodeType(decodeAttributes);
-									}))));
-				case 'tuple':
-					return A3(
-						$elm$json$Json$Decode$map2,
-						$author$project$Morphir$IR$Type$Tuple,
-						A2($elm$json$Json$Decode$index, 1, decodeAttributes),
-						A2(
-							$elm$json$Json$Decode$index,
-							2,
-							$elm$json$Json$Decode$list(lazyDecodeType)));
-				case 'record':
-					return A3(
-						$elm$json$Json$Decode$map2,
-						$author$project$Morphir$IR$Type$Record,
-						A2($elm$json$Json$Decode$index, 1, decodeAttributes),
-						A2(
-							$elm$json$Json$Decode$index,
-							2,
-							$elm$json$Json$Decode$list(lazyDecodeField)));
-				case 'extensible_record':
-					return A4(
-						$elm$json$Json$Decode$map3,
-						$author$project$Morphir$IR$Type$ExtensibleRecord,
-						A2($elm$json$Json$Decode$index, 1, decodeAttributes),
-						A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Name$Codec$decodeName),
-						A2(
-							$elm$json$Json$Decode$index,
-							3,
-							$elm$json$Json$Decode$list(lazyDecodeField)));
-				case 'function':
-					return A4(
-						$elm$json$Json$Decode$map3,
-						$author$project$Morphir$IR$Type$Function,
-						A2($elm$json$Json$Decode$index, 1, decodeAttributes),
-						A2($elm$json$Json$Decode$index, 2, lazyDecodeType),
-						A2($elm$json$Json$Decode$index, 3, lazyDecodeType));
-				case 'unit':
-					return A2(
-						$elm$json$Json$Decode$map,
-						$author$project$Morphir$IR$Type$Unit,
-						A2($elm$json$Json$Decode$index, 1, decodeAttributes));
-				default:
-					return $elm$json$Json$Decode$fail('Unknown kind: ' + kind);
-			}
-		},
-		A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string));
-};
-var $elm$core$Tuple$pair = F2(
-	function (a, b) {
-		return _Utils_Tuple2(a, b);
-	});
-var $author$project$Morphir$IR$Type$Codec$decodeConstructors = function (decodeAttributes) {
-	return $elm$json$Json$Decode$list(
-		A2(
-			$elm$json$Json$Decode$andThen,
-			function (kind) {
-				if (kind === 'constructor') {
-					return A3(
-						$elm$json$Json$Decode$map2,
-						$author$project$Morphir$IR$Type$Constructor,
-						A2($elm$json$Json$Decode$index, 1, $author$project$Morphir$IR$Name$Codec$decodeName),
-						A2(
-							$elm$json$Json$Decode$index,
-							2,
-							$elm$json$Json$Decode$list(
-								A3(
-									$elm$json$Json$Decode$map2,
-									$elm$core$Tuple$pair,
-									A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName),
-									A2(
-										$elm$json$Json$Decode$index,
-										1,
-										$author$project$Morphir$IR$Type$Codec$decodeType(decodeAttributes))))));
-				} else {
-					return $elm$json$Json$Decode$fail('Unknown kind: ' + kind);
-				}
-			},
-			A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string)));
-};
-var $author$project$Morphir$IR$Type$Codec$decodeDefinition = function (decodeAttributes) {
-	return A2(
-		$elm$json$Json$Decode$andThen,
-		function (kind) {
-			switch (kind) {
-				case 'type_alias_definition':
-					return A3(
-						$elm$json$Json$Decode$map2,
-						$author$project$Morphir$IR$Type$TypeAliasDefinition,
-						A2(
-							$elm$json$Json$Decode$index,
-							1,
-							$elm$json$Json$Decode$list($author$project$Morphir$IR$Name$Codec$decodeName)),
-						A2(
-							$elm$json$Json$Decode$index,
-							2,
-							$author$project$Morphir$IR$Type$Codec$decodeType(decodeAttributes)));
-				case 'custom_type_definition':
-					return A3(
-						$elm$json$Json$Decode$map2,
-						$author$project$Morphir$IR$Type$CustomTypeDefinition,
-						A2(
-							$elm$json$Json$Decode$index,
-							1,
-							$elm$json$Json$Decode$list($author$project$Morphir$IR$Name$Codec$decodeName)),
-						A2(
-							$elm$json$Json$Decode$index,
-							2,
-							$author$project$Morphir$IR$AccessControlled$Codec$decodeAccessControlled(
-								$author$project$Morphir$IR$Type$Codec$decodeConstructors(decodeAttributes))));
-				default:
-					return $elm$json$Json$Decode$fail('Unknown kind: ' + kind);
-			}
-		},
-		A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string));
-};
-var $author$project$Morphir$IR$Value$Apply = F3(
-	function (a, b, c) {
-		return {$: 'Apply', a: a, b: b, c: c};
-	});
-var $author$project$Morphir$IR$Value$Constructor = F2(
-	function (a, b) {
-		return {$: 'Constructor', a: a, b: b};
-	});
-var $author$project$Morphir$IR$Value$Definition = F3(
-	function (inputTypes, outputType, body) {
-		return {body: body, inputTypes: inputTypes, outputType: outputType};
-	});
-var $author$project$Morphir$IR$Value$Destructure = F4(
-	function (a, b, c, d) {
-		return {$: 'Destructure', a: a, b: b, c: c, d: d};
-	});
-var $author$project$Morphir$IR$Value$Field = F3(
-	function (a, b, c) {
-		return {$: 'Field', a: a, b: b, c: c};
-	});
-var $author$project$Morphir$IR$Value$FieldFunction = F2(
-	function (a, b) {
-		return {$: 'FieldFunction', a: a, b: b};
-	});
-var $author$project$Morphir$IR$Value$IfThenElse = F4(
-	function (a, b, c, d) {
-		return {$: 'IfThenElse', a: a, b: b, c: c, d: d};
-	});
-var $author$project$Morphir$IR$Value$Lambda = F3(
-	function (a, b, c) {
-		return {$: 'Lambda', a: a, b: b, c: c};
-	});
-var $author$project$Morphir$IR$Value$LetDefinition = F4(
-	function (a, b, c, d) {
-		return {$: 'LetDefinition', a: a, b: b, c: c, d: d};
-	});
-var $author$project$Morphir$IR$Value$LetRecursion = F3(
-	function (a, b, c) {
-		return {$: 'LetRecursion', a: a, b: b, c: c};
-	});
-var $author$project$Morphir$IR$Value$List = F2(
-	function (a, b) {
-		return {$: 'List', a: a, b: b};
-	});
-var $author$project$Morphir$IR$Value$Literal = F2(
-	function (a, b) {
-		return {$: 'Literal', a: a, b: b};
-	});
-var $author$project$Morphir$IR$Value$PatternMatch = F3(
-	function (a, b, c) {
-		return {$: 'PatternMatch', a: a, b: b, c: c};
-	});
-var $author$project$Morphir$IR$Value$Record = F2(
-	function (a, b) {
-		return {$: 'Record', a: a, b: b};
-	});
-var $author$project$Morphir$IR$Value$Reference = F2(
-	function (a, b) {
-		return {$: 'Reference', a: a, b: b};
-	});
-var $author$project$Morphir$IR$Value$Tuple = F2(
-	function (a, b) {
-		return {$: 'Tuple', a: a, b: b};
-	});
-var $author$project$Morphir$IR$Value$Unit = function (a) {
-	return {$: 'Unit', a: a};
-};
-var $author$project$Morphir$IR$Value$UpdateRecord = F3(
-	function (a, b, c) {
-		return {$: 'UpdateRecord', a: a, b: b, c: c};
-	});
-var $author$project$Morphir$IR$Value$Variable = F2(
-	function (a, b) {
-		return {$: 'Variable', a: a, b: b};
-	});
-var $author$project$Morphir$IR$Literal$BoolLiteral = function (a) {
-	return {$: 'BoolLiteral', a: a};
-};
-var $author$project$Morphir$IR$Literal$CharLiteral = function (a) {
-	return {$: 'CharLiteral', a: a};
-};
-var $author$project$Morphir$IR$Literal$FloatLiteral = function (a) {
-	return {$: 'FloatLiteral', a: a};
-};
-var $author$project$Morphir$IR$Literal$IntLiteral = function (a) {
-	return {$: 'IntLiteral', a: a};
-};
-var $author$project$Morphir$IR$Literal$StringLiteral = function (a) {
-	return {$: 'StringLiteral', a: a};
-};
-var $elm$json$Json$Decode$bool = _Json_decodeBool;
-var $elm$json$Json$Decode$float = _Json_decodeFloat;
-var $elm$json$Json$Decode$int = _Json_decodeInt;
-var $author$project$Morphir$IR$Literal$Codec$decodeLiteral = A2(
-	$elm$json$Json$Decode$andThen,
-	function (kind) {
-		switch (kind) {
-			case 'bool_literal':
-				return A2(
-					$elm$json$Json$Decode$map,
-					$author$project$Morphir$IR$Literal$BoolLiteral,
-					A2($elm$json$Json$Decode$index, 1, $elm$json$Json$Decode$bool));
-			case 'char_literal':
-				return A2(
-					$elm$json$Json$Decode$map,
-					$author$project$Morphir$IR$Literal$CharLiteral,
-					A2(
-						$elm$json$Json$Decode$andThen,
-						function (str) {
-							var _v1 = $elm$core$String$uncons(str);
-							if (_v1.$ === 'Just') {
-								var _v2 = _v1.a;
-								var ch = _v2.a;
-								return $elm$json$Json$Decode$succeed(ch);
-							} else {
-								return $elm$json$Json$Decode$fail('Single char expected');
-							}
-						},
-						A2($elm$json$Json$Decode$index, 1, $elm$json$Json$Decode$string)));
-			case 'string_literal':
-				return A2(
-					$elm$json$Json$Decode$map,
-					$author$project$Morphir$IR$Literal$StringLiteral,
-					A2($elm$json$Json$Decode$index, 1, $elm$json$Json$Decode$string));
-			case 'int_literal':
-				return A2(
-					$elm$json$Json$Decode$map,
-					$author$project$Morphir$IR$Literal$IntLiteral,
-					A2($elm$json$Json$Decode$index, 1, $elm$json$Json$Decode$int));
-			case 'float_literal':
-				return A2(
-					$elm$json$Json$Decode$map,
-					$author$project$Morphir$IR$Literal$FloatLiteral,
-					A2($elm$json$Json$Decode$index, 1, $elm$json$Json$Decode$float));
-			default:
-				var other = kind;
-				return $elm$json$Json$Decode$fail('Unknown literal type: ' + other);
-		}
-	},
-	A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string));
-var $author$project$Morphir$IR$Value$AsPattern = F3(
-	function (a, b, c) {
-		return {$: 'AsPattern', a: a, b: b, c: c};
-	});
-var $author$project$Morphir$IR$Value$ConstructorPattern = F3(
-	function (a, b, c) {
-		return {$: 'ConstructorPattern', a: a, b: b, c: c};
-	});
-var $author$project$Morphir$IR$Value$EmptyListPattern = function (a) {
-	return {$: 'EmptyListPattern', a: a};
-};
-var $author$project$Morphir$IR$Value$HeadTailPattern = F3(
-	function (a, b, c) {
-		return {$: 'HeadTailPattern', a: a, b: b, c: c};
-	});
-var $author$project$Morphir$IR$Value$LiteralPattern = F2(
-	function (a, b) {
-		return {$: 'LiteralPattern', a: a, b: b};
-	});
-var $author$project$Morphir$IR$Value$TuplePattern = F2(
-	function (a, b) {
-		return {$: 'TuplePattern', a: a, b: b};
-	});
-var $author$project$Morphir$IR$Value$UnitPattern = function (a) {
-	return {$: 'UnitPattern', a: a};
-};
-var $author$project$Morphir$IR$Value$WildcardPattern = function (a) {
-	return {$: 'WildcardPattern', a: a};
-};
-var $author$project$Morphir$IR$Value$Codec$decodePattern = function (decodeAttributes) {
-	var lazyDecodePattern = $elm$json$Json$Decode$lazy(
-		function (_v1) {
-			return $author$project$Morphir$IR$Value$Codec$decodePattern(decodeAttributes);
-		});
-	return A2(
-		$elm$json$Json$Decode$andThen,
-		function (kind) {
-			switch (kind) {
-				case 'wildcard_pattern':
-					return A2(
-						$elm$json$Json$Decode$map,
-						$author$project$Morphir$IR$Value$WildcardPattern,
-						A2($elm$json$Json$Decode$index, 1, decodeAttributes));
-				case 'as_pattern':
-					return A4(
-						$elm$json$Json$Decode$map3,
-						$author$project$Morphir$IR$Value$AsPattern,
-						A2($elm$json$Json$Decode$index, 1, decodeAttributes),
-						A2($elm$json$Json$Decode$index, 2, lazyDecodePattern),
-						A2($elm$json$Json$Decode$index, 3, $author$project$Morphir$IR$Name$Codec$decodeName));
-				case 'tuple_pattern':
-					return A3(
-						$elm$json$Json$Decode$map2,
-						$author$project$Morphir$IR$Value$TuplePattern,
-						A2($elm$json$Json$Decode$index, 1, decodeAttributes),
-						A2(
-							$elm$json$Json$Decode$index,
-							2,
-							$elm$json$Json$Decode$list(lazyDecodePattern)));
-				case 'constructor_pattern':
-					return A4(
-						$elm$json$Json$Decode$map3,
-						$author$project$Morphir$IR$Value$ConstructorPattern,
-						A2($elm$json$Json$Decode$index, 1, decodeAttributes),
-						A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$FQName$Codec$decodeFQName),
-						A2(
-							$elm$json$Json$Decode$index,
-							3,
-							$elm$json$Json$Decode$list(lazyDecodePattern)));
-				case 'empty_list_pattern':
-					return A2(
-						$elm$json$Json$Decode$map,
-						$author$project$Morphir$IR$Value$EmptyListPattern,
-						A2($elm$json$Json$Decode$index, 1, decodeAttributes));
-				case 'head_tail_pattern':
-					return A4(
-						$elm$json$Json$Decode$map3,
-						$author$project$Morphir$IR$Value$HeadTailPattern,
-						A2($elm$json$Json$Decode$index, 1, decodeAttributes),
-						A2($elm$json$Json$Decode$index, 2, lazyDecodePattern),
-						A2($elm$json$Json$Decode$index, 3, lazyDecodePattern));
-				case 'literal_pattern':
-					return A3(
-						$elm$json$Json$Decode$map2,
-						$author$project$Morphir$IR$Value$LiteralPattern,
-						A2($elm$json$Json$Decode$index, 1, decodeAttributes),
-						A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Literal$Codec$decodeLiteral));
-				case 'unit_pattern':
-					return A2(
-						$elm$json$Json$Decode$map,
-						$author$project$Morphir$IR$Value$UnitPattern,
-						A2($elm$json$Json$Decode$index, 1, decodeAttributes));
-				default:
-					var other = kind;
-					return $elm$json$Json$Decode$fail('Unknown pattern type: ' + other);
-			}
-		},
-		A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string));
-};
-var $elm$json$Json$Decode$field = _Json_decodeField;
-var $elm$core$Dict$RBEmpty_elm_builtin = {$: 'RBEmpty_elm_builtin'};
-var $elm$core$Dict$empty = $elm$core$Dict$RBEmpty_elm_builtin;
-var $elm$core$Dict$Black = {$: 'Black'};
-var $elm$core$Dict$RBNode_elm_builtin = F5(
-	function (a, b, c, d, e) {
-		return {$: 'RBNode_elm_builtin', a: a, b: b, c: c, d: d, e: e};
-	});
-var $elm$core$Dict$Red = {$: 'Red'};
-var $elm$core$Dict$balance = F5(
-	function (color, key, value, left, right) {
-		if ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Red')) {
-			var _v1 = right.a;
-			var rK = right.b;
-			var rV = right.c;
-			var rLeft = right.d;
-			var rRight = right.e;
-			if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) {
-				var _v3 = left.a;
-				var lK = left.b;
-				var lV = left.c;
-				var lLeft = left.d;
-				var lRight = left.e;
-				return A5(
-					$elm$core$Dict$RBNode_elm_builtin,
-					$elm$core$Dict$Red,
-					key,
-					value,
-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, lK, lV, lLeft, lRight),
-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, rK, rV, rLeft, rRight));
-			} else {
-				return A5(
-					$elm$core$Dict$RBNode_elm_builtin,
-					color,
-					rK,
-					rV,
-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, key, value, left, rLeft),
-					rRight);
-			}
-		} else {
-			if ((((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) && (left.d.$ === 'RBNode_elm_builtin')) && (left.d.a.$ === 'Red')) {
-				var _v5 = left.a;
-				var lK = left.b;
-				var lV = left.c;
-				var _v6 = left.d;
-				var _v7 = _v6.a;
-				var llK = _v6.b;
-				var llV = _v6.c;
-				var llLeft = _v6.d;
-				var llRight = _v6.e;
-				var lRight = left.e;
-				return A5(
-					$elm$core$Dict$RBNode_elm_builtin,
-					$elm$core$Dict$Red,
-					lK,
-					lV,
-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, llK, llV, llLeft, llRight),
-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, key, value, lRight, right));
-			} else {
-				return A5($elm$core$Dict$RBNode_elm_builtin, color, key, value, left, right);
-			}
-		}
-	});
-var $elm$core$Basics$compare = _Utils_compare;
-var $elm$core$Dict$insertHelp = F3(
-	function (key, value, dict) {
-		if (dict.$ === 'RBEmpty_elm_builtin') {
-			return A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, key, value, $elm$core$Dict$RBEmpty_elm_builtin, $elm$core$Dict$RBEmpty_elm_builtin);
-		} else {
-			var nColor = dict.a;
-			var nKey = dict.b;
-			var nValue = dict.c;
-			var nLeft = dict.d;
-			var nRight = dict.e;
-			var _v1 = A2($elm$core$Basics$compare, key, nKey);
-			switch (_v1.$) {
-				case 'LT':
-					return A5(
-						$elm$core$Dict$balance,
-						nColor,
-						nKey,
-						nValue,
-						A3($elm$core$Dict$insertHelp, key, value, nLeft),
-						nRight);
-				case 'EQ':
-					return A5($elm$core$Dict$RBNode_elm_builtin, nColor, nKey, value, nLeft, nRight);
-				default:
-					return A5(
-						$elm$core$Dict$balance,
-						nColor,
-						nKey,
-						nValue,
-						nLeft,
-						A3($elm$core$Dict$insertHelp, key, value, nRight));
-			}
-		}
-	});
-var $elm$core$Dict$insert = F3(
-	function (key, value, dict) {
-		var _v0 = A3($elm$core$Dict$insertHelp, key, value, dict);
-		if ((_v0.$ === 'RBNode_elm_builtin') && (_v0.a.$ === 'Red')) {
-			var _v1 = _v0.a;
-			var k = _v0.b;
-			var v = _v0.c;
-			var l = _v0.d;
-			var r = _v0.e;
-			return A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, k, v, l, r);
-		} else {
-			var x = _v0;
-			return x;
-		}
-	});
-var $elm$core$Dict$fromList = function (assocs) {
-	return A3(
-		$elm$core$List$foldl,
-		F2(
-			function (_v0, dict) {
-				var key = _v0.a;
-				var value = _v0.b;
-				return A3($elm$core$Dict$insert, key, value, dict);
-			}),
-		$elm$core$Dict$empty,
-		assocs);
-};
-var $elm$json$Json$Decode$map4 = _Json_map4;
-var $author$project$Morphir$IR$Value$Codec$decodeDefinition = F2(
-	function (decodeTypeAttributes, decodeValueAttributes) {
-		return A4(
-			$elm$json$Json$Decode$map3,
-			$author$project$Morphir$IR$Value$Definition,
-			A2(
-				$elm$json$Json$Decode$field,
-				'inputTypes',
-				$elm$json$Json$Decode$list(
-					A4(
-						$elm$json$Json$Decode$map3,
-						F3(
-							function (n, a, t) {
-								return _Utils_Tuple3(n, a, t);
-							}),
-						A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName),
-						A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
-						A2(
-							$elm$json$Json$Decode$index,
-							2,
-							$author$project$Morphir$IR$Type$Codec$decodeType(decodeTypeAttributes))))),
-			A2(
-				$elm$json$Json$Decode$field,
-				'outputType',
-				$author$project$Morphir$IR$Type$Codec$decodeType(decodeTypeAttributes)),
-			A2(
-				$elm$json$Json$Decode$field,
-				'body',
-				$elm$json$Json$Decode$lazy(
-					function (_v2) {
-						return A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes);
-					})));
-	});
-var $author$project$Morphir$IR$Value$Codec$decodeValue = F2(
-	function (decodeTypeAttributes, decodeValueAttributes) {
-		var lazyDecodeValue = $elm$json$Json$Decode$lazy(
-			function (_v1) {
-				return A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes);
-			});
-		return A2(
-			$elm$json$Json$Decode$andThen,
-			function (kind) {
-				switch (kind) {
-					case 'literal':
-						return A3(
-							$elm$json$Json$Decode$map2,
-							$author$project$Morphir$IR$Value$Literal,
-							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
-							A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Literal$Codec$decodeLiteral));
-					case 'constructor':
-						return A3(
-							$elm$json$Json$Decode$map2,
-							$author$project$Morphir$IR$Value$Constructor,
-							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
-							A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$FQName$Codec$decodeFQName));
-					case 'tuple':
-						return A3(
-							$elm$json$Json$Decode$map2,
-							$author$project$Morphir$IR$Value$Tuple,
-							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
-							A2(
-								$elm$json$Json$Decode$index,
-								2,
-								$elm$json$Json$Decode$list(lazyDecodeValue)));
-					case 'list':
-						return A3(
-							$elm$json$Json$Decode$map2,
-							$author$project$Morphir$IR$Value$List,
-							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
-							A2(
-								$elm$json$Json$Decode$index,
-								2,
-								$elm$json$Json$Decode$list(lazyDecodeValue)));
-					case 'record':
-						return A3(
-							$elm$json$Json$Decode$map2,
-							$author$project$Morphir$IR$Value$Record,
-							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
-							A2(
-								$elm$json$Json$Decode$index,
-								2,
-								$elm$json$Json$Decode$list(
-									A3(
-										$elm$json$Json$Decode$map2,
-										$elm$core$Tuple$pair,
-										A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName),
-										A2(
-											$elm$json$Json$Decode$index,
-											1,
-											A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes))))));
-					case 'variable':
-						return A3(
-							$elm$json$Json$Decode$map2,
-							$author$project$Morphir$IR$Value$Variable,
-							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
-							A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Name$Codec$decodeName));
-					case 'reference':
-						return A3(
-							$elm$json$Json$Decode$map2,
-							$author$project$Morphir$IR$Value$Reference,
-							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
-							A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$FQName$Codec$decodeFQName));
-					case 'field':
-						return A4(
-							$elm$json$Json$Decode$map3,
-							$author$project$Morphir$IR$Value$Field,
-							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
-							A2(
-								$elm$json$Json$Decode$index,
-								2,
-								A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)),
-							A2($elm$json$Json$Decode$index, 3, $author$project$Morphir$IR$Name$Codec$decodeName));
-					case 'field_function':
-						return A3(
-							$elm$json$Json$Decode$map2,
-							$author$project$Morphir$IR$Value$FieldFunction,
-							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
-							A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Name$Codec$decodeName));
-					case 'apply':
-						return A4(
-							$elm$json$Json$Decode$map3,
-							$author$project$Morphir$IR$Value$Apply,
-							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
-							A2(
-								$elm$json$Json$Decode$index,
-								2,
-								A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)),
-							A2(
-								$elm$json$Json$Decode$index,
-								3,
-								A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)));
-					case 'lambda':
-						return A4(
-							$elm$json$Json$Decode$map3,
-							$author$project$Morphir$IR$Value$Lambda,
-							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
-							A2(
-								$elm$json$Json$Decode$index,
-								2,
-								$author$project$Morphir$IR$Value$Codec$decodePattern(decodeValueAttributes)),
-							A2(
-								$elm$json$Json$Decode$index,
-								3,
-								A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)));
-					case 'let_definition':
-						return A5(
-							$elm$json$Json$Decode$map4,
-							$author$project$Morphir$IR$Value$LetDefinition,
-							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
-							A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Name$Codec$decodeName),
-							A2(
-								$elm$json$Json$Decode$index,
-								3,
-								A2($author$project$Morphir$IR$Value$Codec$decodeDefinition, decodeTypeAttributes, decodeValueAttributes)),
-							A2(
-								$elm$json$Json$Decode$index,
-								4,
-								A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)));
-					case 'let_recursion':
-						return A4(
-							$elm$json$Json$Decode$map3,
-							$author$project$Morphir$IR$Value$LetRecursion,
-							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
-							A2(
-								$elm$json$Json$Decode$index,
-								2,
-								A2(
-									$elm$json$Json$Decode$map,
-									$elm$core$Dict$fromList,
-									$elm$json$Json$Decode$list(
-										A3(
-											$elm$json$Json$Decode$map2,
-											$elm$core$Tuple$pair,
-											A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName),
-											A2(
-												$elm$json$Json$Decode$index,
-												1,
-												A2($author$project$Morphir$IR$Value$Codec$decodeDefinition, decodeTypeAttributes, decodeValueAttributes)))))),
-							A2(
-								$elm$json$Json$Decode$index,
-								3,
-								A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)));
-					case 'destructure':
-						return A5(
-							$elm$json$Json$Decode$map4,
-							$author$project$Morphir$IR$Value$Destructure,
-							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
-							A2(
-								$elm$json$Json$Decode$index,
-								2,
-								$author$project$Morphir$IR$Value$Codec$decodePattern(decodeValueAttributes)),
-							A2(
-								$elm$json$Json$Decode$index,
-								3,
-								A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)),
-							A2(
-								$elm$json$Json$Decode$index,
-								4,
-								A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)));
-					case 'if_then_else':
-						return A5(
-							$elm$json$Json$Decode$map4,
-							$author$project$Morphir$IR$Value$IfThenElse,
-							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
-							A2(
-								$elm$json$Json$Decode$index,
-								2,
-								A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)),
-							A2(
-								$elm$json$Json$Decode$index,
-								3,
-								A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)),
-							A2(
-								$elm$json$Json$Decode$index,
-								4,
-								A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)));
-					case 'pattern_match':
-						return A4(
-							$elm$json$Json$Decode$map3,
-							$author$project$Morphir$IR$Value$PatternMatch,
-							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
-							A2(
-								$elm$json$Json$Decode$index,
-								2,
-								A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)),
-							A2(
-								$elm$json$Json$Decode$index,
-								3,
-								$elm$json$Json$Decode$list(
-									A3(
-										$elm$json$Json$Decode$map2,
-										$elm$core$Tuple$pair,
-										A2(
-											$elm$json$Json$Decode$index,
-											0,
-											$author$project$Morphir$IR$Value$Codec$decodePattern(decodeValueAttributes)),
-										A2(
-											$elm$json$Json$Decode$index,
-											1,
-											A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes))))));
-					case 'update_record':
-						return A4(
-							$elm$json$Json$Decode$map3,
-							$author$project$Morphir$IR$Value$UpdateRecord,
-							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes),
-							A2(
-								$elm$json$Json$Decode$index,
-								2,
-								A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)),
-							A2(
-								$elm$json$Json$Decode$index,
-								3,
-								$elm$json$Json$Decode$list(
-									A3(
-										$elm$json$Json$Decode$map2,
-										$elm$core$Tuple$pair,
-										A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName),
-										A2(
-											$elm$json$Json$Decode$index,
-											1,
-											A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes))))));
-					case 'unit':
-						return A2(
-							$elm$json$Json$Decode$map,
-							$author$project$Morphir$IR$Value$Unit,
-							A2($elm$json$Json$Decode$index, 1, decodeValueAttributes));
-					default:
-						var other = kind;
-						return $elm$json$Json$Decode$fail('Unknown value type: ' + other);
-				}
-			},
-			A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string));
-	});
-var $author$project$Morphir$IR$Documented$Documented = F2(
-	function (doc, value) {
-		return {doc: doc, value: value};
-	});
-var $author$project$Morphir$IR$Documented$Codec$decodeDocumented = function (decodeValue) {
-	return A3(
-		$elm$json$Json$Decode$map2,
-		$author$project$Morphir$IR$Documented$Documented,
-		A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string),
-		A2($elm$json$Json$Decode$index, 1, decodeValue));
-};
-var $author$project$Morphir$IR$Module$Codec$decodeDefinition = F2(
-	function (decodeTypeAttributes, decodeValueAttributes) {
-		return A3(
-			$elm$json$Json$Decode$map2,
-			$author$project$Morphir$IR$Module$Definition,
-			A2(
-				$elm$json$Json$Decode$field,
-				'types',
-				A2(
-					$elm$json$Json$Decode$map,
-					$elm$core$Dict$fromList,
-					$elm$json$Json$Decode$list(
-						A3(
-							$elm$json$Json$Decode$map2,
-							$elm$core$Tuple$pair,
-							A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName),
-							A2(
-								$elm$json$Json$Decode$index,
-								1,
-								$author$project$Morphir$IR$AccessControlled$Codec$decodeAccessControlled(
-									$author$project$Morphir$IR$Documented$Codec$decodeDocumented(
-										$author$project$Morphir$IR$Type$Codec$decodeDefinition(decodeTypeAttributes)))))))),
-			A2(
-				$elm$json$Json$Decode$field,
-				'values',
-				A2(
-					$elm$json$Json$Decode$map,
-					$elm$core$Dict$fromList,
-					$elm$json$Json$Decode$list(
-						A3(
-							$elm$json$Json$Decode$map2,
-							$elm$core$Tuple$pair,
-							A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName),
-							A2(
-								$elm$json$Json$Decode$index,
-								1,
-								$author$project$Morphir$IR$AccessControlled$Codec$decodeAccessControlled(
-									A2($author$project$Morphir$IR$Value$Codec$decodeDefinition, decodeTypeAttributes, decodeValueAttributes))))))));
-	});
-var $author$project$Morphir$IR$Package$Codec$decodeDefinition = F2(
-	function (decodeAttributes, decodeAttributes2) {
-		return A2(
-			$elm$json$Json$Decode$map,
-			$author$project$Morphir$IR$Package$Definition,
-			A2(
-				$elm$json$Json$Decode$field,
-				'modules',
-				A2(
-					$elm$json$Json$Decode$map,
-					$elm$core$Dict$fromList,
-					$elm$json$Json$Decode$list(
-						A3(
-							$elm$json$Json$Decode$map2,
-							$elm$core$Tuple$pair,
-							A2($elm$json$Json$Decode$field, 'name', $author$project$Morphir$IR$Path$Codec$decodePath),
-							A2(
-								$elm$json$Json$Decode$field,
-								'def',
-								$author$project$Morphir$IR$AccessControlled$Codec$decodeAccessControlled(
-									A2($author$project$Morphir$IR$Module$Codec$decodeDefinition, decodeAttributes, decodeAttributes2))))))));
-	});
-var $author$project$Morphir$IR$Package$Specification = function (modules) {
-	return {modules: modules};
-};
-var $author$project$Morphir$IR$Module$Specification = F2(
-	function (types, values) {
-		return {types: types, values: values};
-	});
-var $author$project$Morphir$IR$Type$CustomTypeSpecification = F2(
-	function (a, b) {
-		return {$: 'CustomTypeSpecification', a: a, b: b};
-	});
-var $author$project$Morphir$IR$Type$OpaqueTypeSpecification = function (a) {
-	return {$: 'OpaqueTypeSpecification', a: a};
-};
-var $author$project$Morphir$IR$Type$TypeAliasSpecification = F2(
-	function (a, b) {
-		return {$: 'TypeAliasSpecification', a: a, b: b};
-	});
-var $author$project$Morphir$IR$Type$Codec$decodeSpecification = function (decodeAttributes) {
-	return A2(
-		$elm$json$Json$Decode$andThen,
-		function (kind) {
-			switch (kind) {
-				case 'type_alias_specification':
-					return A3(
-						$elm$json$Json$Decode$map2,
-						$author$project$Morphir$IR$Type$TypeAliasSpecification,
-						A2(
-							$elm$json$Json$Decode$index,
-							1,
-							$elm$json$Json$Decode$list($author$project$Morphir$IR$Name$Codec$decodeName)),
-						A2(
-							$elm$json$Json$Decode$index,
-							2,
-							$author$project$Morphir$IR$Type$Codec$decodeType(decodeAttributes)));
-				case 'opaque_type_specification':
-					return A2(
-						$elm$json$Json$Decode$map,
-						$author$project$Morphir$IR$Type$OpaqueTypeSpecification,
-						A2(
-							$elm$json$Json$Decode$index,
-							1,
-							$elm$json$Json$Decode$list($author$project$Morphir$IR$Name$Codec$decodeName)));
-				case 'custom_type_specification':
-					return A3(
-						$elm$json$Json$Decode$map2,
-						$author$project$Morphir$IR$Type$CustomTypeSpecification,
-						A2(
-							$elm$json$Json$Decode$index,
-							1,
-							$elm$json$Json$Decode$list($author$project$Morphir$IR$Name$Codec$decodeName)),
-						A2(
-							$elm$json$Json$Decode$index,
-							2,
-							$author$project$Morphir$IR$Type$Codec$decodeConstructors(decodeAttributes)));
-				default:
-					return $elm$json$Json$Decode$fail('Unknown kind: ' + kind);
-			}
-		},
-		A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string));
-};
-var $author$project$Morphir$IR$Value$Specification = F2(
-	function (inputs, output) {
-		return {inputs: inputs, output: output};
-	});
-var $author$project$Morphir$IR$Value$Codec$decodeSpecification = function (decodeTypeAttributes) {
-	return A3(
-		$elm$json$Json$Decode$map2,
-		$author$project$Morphir$IR$Value$Specification,
-		A2(
-			$elm$json$Json$Decode$field,
-			'inputs',
-			$elm$json$Json$Decode$list(
-				A3(
-					$elm$json$Json$Decode$map2,
-					$elm$core$Tuple$pair,
-					A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName),
-					A2(
-						$elm$json$Json$Decode$index,
-						1,
-						$author$project$Morphir$IR$Type$Codec$decodeType(decodeTypeAttributes))))),
-		A2(
-			$elm$json$Json$Decode$field,
-			'output',
-			$author$project$Morphir$IR$Type$Codec$decodeType(decodeTypeAttributes)));
-};
-var $author$project$Morphir$IR$Module$Codec$decodeSpecification = function (decodeTypeAttributes) {
-	return A3(
-		$elm$json$Json$Decode$map2,
-		$author$project$Morphir$IR$Module$Specification,
-		A2(
-			$elm$json$Json$Decode$field,
-			'types',
-			A2(
-				$elm$json$Json$Decode$map,
-				$elm$core$Dict$fromList,
-				$elm$json$Json$Decode$list(
-					A3(
-						$elm$json$Json$Decode$map2,
-						$elm$core$Tuple$pair,
-						A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName),
-						A2(
-							$elm$json$Json$Decode$index,
-							1,
-							$author$project$Morphir$IR$Documented$Codec$decodeDocumented(
-								$author$project$Morphir$IR$Type$Codec$decodeSpecification(decodeTypeAttributes))))))),
-		A2(
-			$elm$json$Json$Decode$field,
-			'values',
-			A2(
-				$elm$json$Json$Decode$map,
-				$elm$core$Dict$fromList,
-				$elm$json$Json$Decode$list(
-					A3(
-						$elm$json$Json$Decode$map2,
-						$elm$core$Tuple$pair,
-						A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName),
-						A2(
-							$elm$json$Json$Decode$index,
-							1,
-							$author$project$Morphir$IR$Value$Codec$decodeSpecification(decodeTypeAttributes)))))));
-};
-var $author$project$Morphir$IR$Package$Codec$decodeSpecification = function (decodeAttributes) {
-	return A2(
-		$elm$json$Json$Decode$map,
-		$author$project$Morphir$IR$Package$Specification,
-		A2(
-			$elm$json$Json$Decode$field,
-			'modules',
-			A2(
-				$elm$json$Json$Decode$map,
-				$elm$core$Dict$fromList,
-				$elm$json$Json$Decode$list(
-					A3(
-						$elm$json$Json$Decode$map2,
-						$elm$core$Tuple$pair,
-						A2($elm$json$Json$Decode$field, 'name', $author$project$Morphir$IR$Path$Codec$decodePath),
-						A2(
-							$elm$json$Json$Decode$field,
-							'spec',
-							$author$project$Morphir$IR$Module$Codec$decodeSpecification(decodeAttributes)))))));
-};
-var $author$project$Morphir$Codec$decodeUnit = $elm$json$Json$Decode$succeed(_Utils_Tuple0);
-var $author$project$Morphir$IR$Distribution$Codec$decodeDistribution = A2(
-	$elm$json$Json$Decode$andThen,
-	function (kind) {
-		if (kind === 'library') {
-			return A4(
-				$elm$json$Json$Decode$map3,
-				$author$project$Morphir$IR$Distribution$Library,
-				A2($elm$json$Json$Decode$index, 1, $author$project$Morphir$IR$Path$Codec$decodePath),
-				A2(
-					$elm$json$Json$Decode$index,
-					2,
-					A2(
-						$elm$json$Json$Decode$map,
-						$elm$core$Dict$fromList,
-						$elm$json$Json$Decode$list(
-							A3(
-								$elm$json$Json$Decode$map2,
-								$elm$core$Tuple$pair,
-								A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Path$Codec$decodePath),
-								A2(
-									$elm$json$Json$Decode$index,
-									1,
-									$author$project$Morphir$IR$Package$Codec$decodeSpecification($author$project$Morphir$Codec$decodeUnit)))))),
-				A2(
-					$elm$json$Json$Decode$index,
-					3,
-					A2(
-						$author$project$Morphir$IR$Package$Codec$decodeDefinition,
-						$author$project$Morphir$Codec$decodeUnit,
-						$author$project$Morphir$IR$Type$Codec$decodeType($author$project$Morphir$Codec$decodeUnit))));
-		} else {
-			var other = kind;
-			return $elm$json$Json$Decode$fail('Unknown value type: ' + other);
-		}
-	},
-	A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string));
-var $author$project$Morphir$Web$DevelopMain$distributionDecoder = A2(
-	$elm$json$Json$Decode$andThen,
-	function (tag) {
-		switch (tag) {
-			case 'ok':
-				return A2(
-					$elm$json$Json$Decode$map,
-					$elm$core$Result$Ok,
-					A2($elm$json$Json$Decode$index, 1, $author$project$Morphir$IR$Distribution$Codec$decodeDistribution));
-			case 'err':
-				return A2(
-					$elm$json$Json$Decode$map,
-					$elm$core$Result$Err,
-					A2(
-						$elm$json$Json$Decode$index,
-						1,
-						$elm$json$Json$Decode$succeed(_List_Nil)));
-			default:
-				var other = tag;
-				return $elm$json$Json$Decode$fail('Unexpected Result tag: ' + other);
-		}
-	},
-	A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string));
-var $elm$json$Json$Decode$decodeString = _Json_runOnString;
-var $elm$http$Http$BadStatus_ = F2(
-	function (a, b) {
-		return {$: 'BadStatus_', a: a, b: b};
-	});
-var $elm$http$Http$BadUrl_ = function (a) {
-	return {$: 'BadUrl_', a: a};
-};
-var $elm$http$Http$GoodStatus_ = F2(
-	function (a, b) {
-		return {$: 'GoodStatus_', a: a, b: b};
-	});
-var $elm$http$Http$NetworkError_ = {$: 'NetworkError_'};
-var $elm$http$Http$Receiving = function (a) {
-	return {$: 'Receiving', a: a};
-};
-var $elm$http$Http$Sending = function (a) {
-	return {$: 'Sending', a: a};
-};
-var $elm$http$Http$Timeout_ = {$: 'Timeout_'};
-var $elm$core$Maybe$isJust = function (maybe) {
-	if (maybe.$ === 'Just') {
-		return true;
-	} else {
-		return false;
-	}
-};
-var $elm$core$Platform$sendToSelf = _Platform_sendToSelf;
-var $elm$core$Dict$get = F2(
-	function (targetKey, dict) {
-		get:
-		while (true) {
-			if (dict.$ === 'RBEmpty_elm_builtin') {
-				return $elm$core$Maybe$Nothing;
-			} else {
-				var key = dict.b;
-				var value = dict.c;
-				var left = dict.d;
-				var right = dict.e;
-				var _v1 = A2($elm$core$Basics$compare, targetKey, key);
-				switch (_v1.$) {
-					case 'LT':
-						var $temp$targetKey = targetKey,
-							$temp$dict = left;
-						targetKey = $temp$targetKey;
-						dict = $temp$dict;
-						continue get;
-					case 'EQ':
-						return $elm$core$Maybe$Just(value);
-					default:
-						var $temp$targetKey = targetKey,
-							$temp$dict = right;
-						targetKey = $temp$targetKey;
-						dict = $temp$dict;
-						continue get;
-				}
-			}
-		}
-	});
-var $elm$core$Dict$getMin = function (dict) {
-	getMin:
-	while (true) {
-		if ((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) {
-			var left = dict.d;
-			var $temp$dict = left;
-			dict = $temp$dict;
-			continue getMin;
-		} else {
-			return dict;
-		}
-	}
-};
-var $elm$core$Dict$moveRedLeft = function (dict) {
-	if (((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) && (dict.e.$ === 'RBNode_elm_builtin')) {
-		if ((dict.e.d.$ === 'RBNode_elm_builtin') && (dict.e.d.a.$ === 'Red')) {
-			var clr = dict.a;
-			var k = dict.b;
-			var v = dict.c;
-			var _v1 = dict.d;
-			var lClr = _v1.a;
-			var lK = _v1.b;
-			var lV = _v1.c;
-			var lLeft = _v1.d;
-			var lRight = _v1.e;
-			var _v2 = dict.e;
-			var rClr = _v2.a;
-			var rK = _v2.b;
-			var rV = _v2.c;
-			var rLeft = _v2.d;
-			var _v3 = rLeft.a;
-			var rlK = rLeft.b;
-			var rlV = rLeft.c;
-			var rlL = rLeft.d;
-			var rlR = rLeft.e;
-			var rRight = _v2.e;
-			return A5(
-				$elm$core$Dict$RBNode_elm_builtin,
-				$elm$core$Dict$Red,
-				rlK,
-				rlV,
-				A5(
-					$elm$core$Dict$RBNode_elm_builtin,
-					$elm$core$Dict$Black,
-					k,
-					v,
-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),
-					rlL),
-				A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, rK, rV, rlR, rRight));
-		} else {
-			var clr = dict.a;
-			var k = dict.b;
-			var v = dict.c;
-			var _v4 = dict.d;
-			var lClr = _v4.a;
-			var lK = _v4.b;
-			var lV = _v4.c;
-			var lLeft = _v4.d;
-			var lRight = _v4.e;
-			var _v5 = dict.e;
-			var rClr = _v5.a;
-			var rK = _v5.b;
-			var rV = _v5.c;
-			var rLeft = _v5.d;
-			var rRight = _v5.e;
-			if (clr.$ === 'Black') {
-				return A5(
-					$elm$core$Dict$RBNode_elm_builtin,
-					$elm$core$Dict$Black,
-					k,
-					v,
-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),
-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight));
-			} else {
-				return A5(
-					$elm$core$Dict$RBNode_elm_builtin,
-					$elm$core$Dict$Black,
-					k,
-					v,
-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),
-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight));
-			}
-		}
-	} else {
-		return dict;
-	}
-};
-var $elm$core$Dict$moveRedRight = function (dict) {
-	if (((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) && (dict.e.$ === 'RBNode_elm_builtin')) {
-		if ((dict.d.d.$ === 'RBNode_elm_builtin') && (dict.d.d.a.$ === 'Red')) {
-			var clr = dict.a;
-			var k = dict.b;
-			var v = dict.c;
-			var _v1 = dict.d;
-			var lClr = _v1.a;
-			var lK = _v1.b;
-			var lV = _v1.c;
-			var _v2 = _v1.d;
-			var _v3 = _v2.a;
-			var llK = _v2.b;
-			var llV = _v2.c;
-			var llLeft = _v2.d;
-			var llRight = _v2.e;
-			var lRight = _v1.e;
-			var _v4 = dict.e;
-			var rClr = _v4.a;
-			var rK = _v4.b;
-			var rV = _v4.c;
-			var rLeft = _v4.d;
-			var rRight = _v4.e;
-			return A5(
-				$elm$core$Dict$RBNode_elm_builtin,
-				$elm$core$Dict$Red,
-				lK,
-				lV,
-				A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, llK, llV, llLeft, llRight),
-				A5(
-					$elm$core$Dict$RBNode_elm_builtin,
-					$elm$core$Dict$Black,
-					k,
-					v,
-					lRight,
-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight)));
-		} else {
-			var clr = dict.a;
-			var k = dict.b;
-			var v = dict.c;
-			var _v5 = dict.d;
-			var lClr = _v5.a;
-			var lK = _v5.b;
-			var lV = _v5.c;
-			var lLeft = _v5.d;
-			var lRight = _v5.e;
-			var _v6 = dict.e;
-			var rClr = _v6.a;
-			var rK = _v6.b;
-			var rV = _v6.c;
-			var rLeft = _v6.d;
-			var rRight = _v6.e;
-			if (clr.$ === 'Black') {
-				return A5(
-					$elm$core$Dict$RBNode_elm_builtin,
-					$elm$core$Dict$Black,
-					k,
-					v,
-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),
-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight));
-			} else {
-				return A5(
-					$elm$core$Dict$RBNode_elm_builtin,
-					$elm$core$Dict$Black,
-					k,
-					v,
-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),
-					A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight));
-			}
-		}
-	} else {
-		return dict;
-	}
-};
-var $elm$core$Dict$removeHelpPrepEQGT = F7(
-	function (targetKey, dict, color, key, value, left, right) {
-		if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) {
-			var _v1 = left.a;
-			var lK = left.b;
-			var lV = left.c;
-			var lLeft = left.d;
-			var lRight = left.e;
-			return A5(
-				$elm$core$Dict$RBNode_elm_builtin,
-				color,
-				lK,
-				lV,
-				lLeft,
-				A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, key, value, lRight, right));
-		} else {
-			_v2$2:
-			while (true) {
-				if ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Black')) {
-					if (right.d.$ === 'RBNode_elm_builtin') {
-						if (right.d.a.$ === 'Black') {
-							var _v3 = right.a;
-							var _v4 = right.d;
-							var _v5 = _v4.a;
-							return $elm$core$Dict$moveRedRight(dict);
-						} else {
-							break _v2$2;
-						}
-					} else {
-						var _v6 = right.a;
-						var _v7 = right.d;
-						return $elm$core$Dict$moveRedRight(dict);
-					}
-				} else {
-					break _v2$2;
-				}
-			}
-			return dict;
-		}
-	});
-var $elm$core$Dict$removeMin = function (dict) {
-	if ((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) {
-		var color = dict.a;
-		var key = dict.b;
-		var value = dict.c;
-		var left = dict.d;
-		var lColor = left.a;
-		var lLeft = left.d;
-		var right = dict.e;
-		if (lColor.$ === 'Black') {
-			if ((lLeft.$ === 'RBNode_elm_builtin') && (lLeft.a.$ === 'Red')) {
-				var _v3 = lLeft.a;
-				return A5(
-					$elm$core$Dict$RBNode_elm_builtin,
-					color,
-					key,
-					value,
-					$elm$core$Dict$removeMin(left),
-					right);
-			} else {
-				var _v4 = $elm$core$Dict$moveRedLeft(dict);
-				if (_v4.$ === 'RBNode_elm_builtin') {
-					var nColor = _v4.a;
-					var nKey = _v4.b;
-					var nValue = _v4.c;
-					var nLeft = _v4.d;
-					var nRight = _v4.e;
-					return A5(
-						$elm$core$Dict$balance,
-						nColor,
-						nKey,
-						nValue,
-						$elm$core$Dict$removeMin(nLeft),
-						nRight);
-				} else {
-					return $elm$core$Dict$RBEmpty_elm_builtin;
-				}
-			}
-		} else {
-			return A5(
-				$elm$core$Dict$RBNode_elm_builtin,
-				color,
-				key,
-				value,
-				$elm$core$Dict$removeMin(left),
-				right);
-		}
-	} else {
-		return $elm$core$Dict$RBEmpty_elm_builtin;
-	}
-};
-var $elm$core$Dict$removeHelp = F2(
-	function (targetKey, dict) {
-		if (dict.$ === 'RBEmpty_elm_builtin') {
-			return $elm$core$Dict$RBEmpty_elm_builtin;
-		} else {
-			var color = dict.a;
-			var key = dict.b;
-			var value = dict.c;
-			var left = dict.d;
-			var right = dict.e;
-			if (_Utils_cmp(targetKey, key) < 0) {
-				if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Black')) {
-					var _v4 = left.a;
-					var lLeft = left.d;
-					if ((lLeft.$ === 'RBNode_elm_builtin') && (lLeft.a.$ === 'Red')) {
-						var _v6 = lLeft.a;
-						return A5(
-							$elm$core$Dict$RBNode_elm_builtin,
-							color,
-							key,
-							value,
-							A2($elm$core$Dict$removeHelp, targetKey, left),
-							right);
-					} else {
-						var _v7 = $elm$core$Dict$moveRedLeft(dict);
-						if (_v7.$ === 'RBNode_elm_builtin') {
-							var nColor = _v7.a;
-							var nKey = _v7.b;
-							var nValue = _v7.c;
-							var nLeft = _v7.d;
-							var nRight = _v7.e;
-							return A5(
-								$elm$core$Dict$balance,
-								nColor,
-								nKey,
-								nValue,
-								A2($elm$core$Dict$removeHelp, targetKey, nLeft),
-								nRight);
-						} else {
-							return $elm$core$Dict$RBEmpty_elm_builtin;
-						}
-					}
-				} else {
-					return A5(
-						$elm$core$Dict$RBNode_elm_builtin,
-						color,
-						key,
-						value,
-						A2($elm$core$Dict$removeHelp, targetKey, left),
-						right);
-				}
-			} else {
-				return A2(
-					$elm$core$Dict$removeHelpEQGT,
-					targetKey,
-					A7($elm$core$Dict$removeHelpPrepEQGT, targetKey, dict, color, key, value, left, right));
-			}
-		}
-	});
-var $elm$core$Dict$removeHelpEQGT = F2(
-	function (targetKey, dict) {
-		if (dict.$ === 'RBNode_elm_builtin') {
-			var color = dict.a;
-			var key = dict.b;
-			var value = dict.c;
-			var left = dict.d;
-			var right = dict.e;
-			if (_Utils_eq(targetKey, key)) {
-				var _v1 = $elm$core$Dict$getMin(right);
-				if (_v1.$ === 'RBNode_elm_builtin') {
-					var minKey = _v1.b;
-					var minValue = _v1.c;
-					return A5(
-						$elm$core$Dict$balance,
-						color,
-						minKey,
-						minValue,
-						left,
-						$elm$core$Dict$removeMin(right));
-				} else {
-					return $elm$core$Dict$RBEmpty_elm_builtin;
-				}
-			} else {
-				return A5(
-					$elm$core$Dict$balance,
-					color,
-					key,
-					value,
-					left,
-					A2($elm$core$Dict$removeHelp, targetKey, right));
-			}
-		} else {
-			return $elm$core$Dict$RBEmpty_elm_builtin;
-		}
-	});
-var $elm$core$Dict$remove = F2(
-	function (key, dict) {
-		var _v0 = A2($elm$core$Dict$removeHelp, key, dict);
-		if ((_v0.$ === 'RBNode_elm_builtin') && (_v0.a.$ === 'Red')) {
-			var _v1 = _v0.a;
-			var k = _v0.b;
-			var v = _v0.c;
-			var l = _v0.d;
-			var r = _v0.e;
-			return A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, k, v, l, r);
-		} else {
-			var x = _v0;
-			return x;
-		}
-	});
-var $elm$core$Dict$update = F3(
-	function (targetKey, alter, dictionary) {
-		var _v0 = alter(
-			A2($elm$core$Dict$get, targetKey, dictionary));
-		if (_v0.$ === 'Just') {
-			var value = _v0.a;
-			return A3($elm$core$Dict$insert, targetKey, value, dictionary);
-		} else {
-			return A2($elm$core$Dict$remove, targetKey, dictionary);
-		}
-	});
-var $elm$core$Basics$composeR = F3(
-	function (f, g, x) {
-		return g(
-			f(x));
-	});
-var $elm$http$Http$expectStringResponse = F2(
-	function (toMsg, toResult) {
-		return A3(
-			_Http_expect,
-			'',
-			$elm$core$Basics$identity,
-			A2($elm$core$Basics$composeR, toResult, toMsg));
-	});
-var $elm$core$Result$mapError = F2(
-	function (f, result) {
-		if (result.$ === 'Ok') {
-			var v = result.a;
-			return $elm$core$Result$Ok(v);
-		} else {
-			var e = result.a;
-			return $elm$core$Result$Err(
-				f(e));
-		}
-	});
-var $elm$http$Http$BadBody = function (a) {
-	return {$: 'BadBody', a: a};
-};
-var $elm$http$Http$BadStatus = function (a) {
-	return {$: 'BadStatus', a: a};
-};
-var $elm$http$Http$BadUrl = function (a) {
-	return {$: 'BadUrl', a: a};
-};
-var $elm$http$Http$NetworkError = {$: 'NetworkError'};
-var $elm$http$Http$Timeout = {$: 'Timeout'};
-var $elm$http$Http$resolve = F2(
-	function (toResult, response) {
-		switch (response.$) {
-			case 'BadUrl_':
-				var url = response.a;
-				return $elm$core$Result$Err(
-					$elm$http$Http$BadUrl(url));
-			case 'Timeout_':
-				return $elm$core$Result$Err($elm$http$Http$Timeout);
-			case 'NetworkError_':
-				return $elm$core$Result$Err($elm$http$Http$NetworkError);
-			case 'BadStatus_':
-				var metadata = response.a;
-				return $elm$core$Result$Err(
-					$elm$http$Http$BadStatus(metadata.statusCode));
-			default:
-				var body = response.b;
-				return A2(
-					$elm$core$Result$mapError,
-					$elm$http$Http$BadBody,
-					toResult(body));
-		}
-	});
-var $elm$http$Http$expectJson = F2(
-	function (toMsg, decoder) {
-		return A2(
-			$elm$http$Http$expectStringResponse,
-			toMsg,
-			$elm$http$Http$resolve(
-				function (string) {
-					return A2(
-						$elm$core$Result$mapError,
-						$elm$json$Json$Decode$errorToString,
-						A2($elm$json$Json$Decode$decodeString, decoder, string));
-				}));
-	});
-var $elm$http$Http$emptyBody = _Http_emptyBody;
-var $elm$http$Http$Request = function (a) {
-	return {$: 'Request', a: a};
-};
-var $elm$http$Http$State = F2(
-	function (reqs, subs) {
-		return {reqs: reqs, subs: subs};
-	});
-var $elm$http$Http$init = $elm$core$Task$succeed(
-	A2($elm$http$Http$State, $elm$core$Dict$empty, _List_Nil));
-var $elm$core$Process$kill = _Scheduler_kill;
-var $elm$core$Process$spawn = _Scheduler_spawn;
-var $elm$http$Http$updateReqs = F3(
-	function (router, cmds, reqs) {
-		updateReqs:
-		while (true) {
-			if (!cmds.b) {
-				return $elm$core$Task$succeed(reqs);
-			} else {
-				var cmd = cmds.a;
-				var otherCmds = cmds.b;
-				if (cmd.$ === 'Cancel') {
-					var tracker = cmd.a;
-					var _v2 = A2($elm$core$Dict$get, tracker, reqs);
-					if (_v2.$ === 'Nothing') {
-						var $temp$router = router,
-							$temp$cmds = otherCmds,
-							$temp$reqs = reqs;
-						router = $temp$router;
-						cmds = $temp$cmds;
-						reqs = $temp$reqs;
-						continue updateReqs;
-					} else {
-						var pid = _v2.a;
-						return A2(
-							$elm$core$Task$andThen,
-							function (_v3) {
-								return A3(
-									$elm$http$Http$updateReqs,
-									router,
-									otherCmds,
-									A2($elm$core$Dict$remove, tracker, reqs));
-							},
-							$elm$core$Process$kill(pid));
-					}
-				} else {
-					var req = cmd.a;
-					return A2(
-						$elm$core$Task$andThen,
-						function (pid) {
-							var _v4 = req.tracker;
-							if (_v4.$ === 'Nothing') {
-								return A3($elm$http$Http$updateReqs, router, otherCmds, reqs);
-							} else {
-								var tracker = _v4.a;
-								return A3(
-									$elm$http$Http$updateReqs,
-									router,
-									otherCmds,
-									A3($elm$core$Dict$insert, tracker, pid, reqs));
-							}
-						},
-						$elm$core$Process$spawn(
-							A3(
-								_Http_toTask,
-								router,
-								$elm$core$Platform$sendToApp(router),
-								req)));
-				}
-			}
-		}
-	});
-var $elm$http$Http$onEffects = F4(
-	function (router, cmds, subs, state) {
-		return A2(
-			$elm$core$Task$andThen,
-			function (reqs) {
-				return $elm$core$Task$succeed(
-					A2($elm$http$Http$State, reqs, subs));
-			},
-			A3($elm$http$Http$updateReqs, router, cmds, state.reqs));
-	});
-var $elm$core$List$maybeCons = F3(
-	function (f, mx, xs) {
-		var _v0 = f(mx);
-		if (_v0.$ === 'Just') {
-			var x = _v0.a;
-			return A2($elm$core$List$cons, x, xs);
-		} else {
-			return xs;
-		}
-	});
-var $elm$core$List$filterMap = F2(
-	function (f, xs) {
-		return A3(
-			$elm$core$List$foldr,
-			$elm$core$List$maybeCons(f),
-			_List_Nil,
-			xs);
-	});
-var $elm$http$Http$maybeSend = F4(
-	function (router, desiredTracker, progress, _v0) {
-		var actualTracker = _v0.a;
-		var toMsg = _v0.b;
-		return _Utils_eq(desiredTracker, actualTracker) ? $elm$core$Maybe$Just(
-			A2(
-				$elm$core$Platform$sendToApp,
-				router,
-				toMsg(progress))) : $elm$core$Maybe$Nothing;
-	});
-var $elm$http$Http$onSelfMsg = F3(
-	function (router, _v0, state) {
-		var tracker = _v0.a;
-		var progress = _v0.b;
-		return A2(
-			$elm$core$Task$andThen,
-			function (_v1) {
-				return $elm$core$Task$succeed(state);
-			},
-			$elm$core$Task$sequence(
-				A2(
-					$elm$core$List$filterMap,
-					A3($elm$http$Http$maybeSend, router, tracker, progress),
-					state.subs)));
-	});
-var $elm$http$Http$Cancel = function (a) {
-	return {$: 'Cancel', a: a};
-};
-var $elm$http$Http$cmdMap = F2(
-	function (func, cmd) {
-		if (cmd.$ === 'Cancel') {
-			var tracker = cmd.a;
-			return $elm$http$Http$Cancel(tracker);
-		} else {
-			var r = cmd.a;
-			return $elm$http$Http$Request(
-				{
-					allowCookiesFromOtherDomains: r.allowCookiesFromOtherDomains,
-					body: r.body,
-					expect: A2(_Http_mapExpect, func, r.expect),
-					headers: r.headers,
-					method: r.method,
-					timeout: r.timeout,
-					tracker: r.tracker,
-					url: r.url
-				});
-		}
-	});
-var $elm$http$Http$MySub = F2(
-	function (a, b) {
-		return {$: 'MySub', a: a, b: b};
-	});
-var $elm$http$Http$subMap = F2(
-	function (func, _v0) {
-		var tracker = _v0.a;
-		var toMsg = _v0.b;
-		return A2(
-			$elm$http$Http$MySub,
-			tracker,
-			A2($elm$core$Basics$composeR, toMsg, func));
-	});
-_Platform_effectManagers['Http'] = _Platform_createManager($elm$http$Http$init, $elm$http$Http$onEffects, $elm$http$Http$onSelfMsg, $elm$http$Http$cmdMap, $elm$http$Http$subMap);
-var $elm$http$Http$command = _Platform_leaf('Http');
-var $elm$http$Http$subscription = _Platform_leaf('Http');
-var $elm$http$Http$request = function (r) {
-	return $elm$http$Http$command(
-		$elm$http$Http$Request(
-			{allowCookiesFromOtherDomains: false, body: r.body, expect: r.expect, headers: r.headers, method: r.method, timeout: r.timeout, tracker: r.tracker, url: r.url}));
-};
-var $elm$http$Http$get = function (r) {
-	return $elm$http$Http$request(
-		{body: $elm$http$Http$emptyBody, expect: r.expect, headers: _List_Nil, method: 'GET', timeout: $elm$core$Maybe$Nothing, tracker: $elm$core$Maybe$Nothing, url: r.url});
-};
-var $author$project$Morphir$Web$DevelopMain$makeModel = $elm$http$Http$get(
-	{
-		expect: A2($elm$http$Http$expectJson, $author$project$Morphir$Web$DevelopMain$MakeResult, $author$project$Morphir$Web$DevelopMain$distributionDecoder),
-		url: '/server/make'
-	});
-var $author$project$Morphir$Web$DevelopMain$init = function (_v0) {
-	return _Utils_Tuple2($author$project$Morphir$Web$DevelopMain$WaitingForResponse, $author$project$Morphir$Web$DevelopMain$makeModel);
-};
-var $elm$core$Platform$Sub$batch = _Platform_batch;
-var $elm$core$Platform$Sub$none = $elm$core$Platform$Sub$batch(_List_Nil);
-var $author$project$Morphir$Web$DevelopMain$subscriptions = function (model) {
-	return $elm$core$Platform$Sub$none;
-};
-var $author$project$Morphir$Web$DevelopMain$FunctionSelected = F4(
-	function (a, b, c, d) {
-		return {$: 'FunctionSelected', a: a, b: b, c: c, d: d};
-	});
-var $author$project$Morphir$Web$DevelopMain$HttpFailure = function (a) {
-	return {$: 'HttpFailure', a: a};
-};
-var $author$project$Morphir$Web$DevelopMain$MakeComplete = function (a) {
-	return {$: 'MakeComplete', a: a};
-};
-var $elm$core$Maybe$andThen = F2(
-	function (callback, maybeValue) {
-		if (maybeValue.$ === 'Just') {
-			var value = maybeValue.a;
-			return callback(value);
-		} else {
-			return $elm$core$Maybe$Nothing;
-		}
-	});
-var $author$project$Morphir$IR$QName$QName = F2(
-	function (a, b) {
-		return {$: 'QName', a: a, b: b};
-	});
-var $elm$regex$Regex$Match = F4(
-	function (match, index, number, submatches) {
-		return {index: index, match: match, number: number, submatches: submatches};
-	});
-var $elm$regex$Regex$find = _Regex_findAtMost(_Regex_infinity);
-var $elm$regex$Regex$fromStringWith = _Regex_fromStringWith;
-var $elm$regex$Regex$fromString = function (string) {
-	return A2(
-		$elm$regex$Regex$fromStringWith,
-		{caseInsensitive: false, multiline: false},
-		string);
-};
-var $elm$regex$Regex$never = _Regex_never;
-var $elm$core$String$toLower = _String_toLower;
-var $elm$core$Maybe$withDefault = F2(
-	function (_default, maybe) {
-		if (maybe.$ === 'Just') {
-			var value = maybe.a;
-			return value;
-		} else {
-			return _default;
-		}
-	});
-var $author$project$Morphir$IR$Name$fromString = function (string) {
-	var wordPattern = A2(
-		$elm$core$Maybe$withDefault,
-		$elm$regex$Regex$never,
-		$elm$regex$Regex$fromString('([a-zA-Z][a-z]*|[0-9]+)'));
-	return $author$project$Morphir$IR$Name$fromList(
-		A2(
-			$elm$core$List$map,
-			$elm$core$String$toLower,
-			A2(
-				$elm$core$List$map,
-				function ($) {
-					return $.match;
-				},
-				A2($elm$regex$Regex$find, wordPattern, string))));
-};
-var $elm$regex$Regex$split = _Regex_splitAtMost(_Regex_infinity);
-var $author$project$Morphir$IR$Path$fromString = function (string) {
-	var separatorRegex = A2(
-		$elm$core$Maybe$withDefault,
-		$elm$regex$Regex$never,
-		$elm$regex$Regex$fromString('[^\\w\\s]+'));
-	return $author$project$Morphir$IR$Path$fromList(
-		A2(
-			$elm$core$List$map,
-			$author$project$Morphir$IR$Name$fromString,
-			A2($elm$regex$Regex$split, separatorRegex, string)));
-};
-var $author$project$Morphir$IR$QName$fromString = function (qNameString) {
-	var _v0 = A2($elm$core$String$split, ':', qNameString);
-	if ((_v0.b && _v0.b.b) && (!_v0.b.b.b)) {
-		var packageNameString = _v0.a;
-		var _v1 = _v0.b;
-		var localNameString = _v1.a;
-		return $elm$core$Maybe$Just(
-			A2(
-				$author$project$Morphir$IR$QName$QName,
-				$author$project$Morphir$IR$Path$fromString(packageNameString),
-				$author$project$Morphir$IR$Name$fromString(localNameString)));
-	} else {
-		return $elm$core$Maybe$Nothing;
-	}
-};
-var $elm$core$Maybe$map = F2(
-	function (f, maybe) {
-		if (maybe.$ === 'Just') {
-			var value = maybe.a;
-			return $elm$core$Maybe$Just(
-				f(value));
-		} else {
-			return $elm$core$Maybe$Nothing;
-		}
-	});
-var $author$project$Morphir$IR$AccessControlled$withPrivateAccess = function (ac) {
-	var _v0 = ac.access;
-	if (_v0.$ === 'Public') {
-		return ac.value;
-	} else {
-		return ac.value;
-	}
-};
-var $author$project$Morphir$IR$Package$lookupModuleDefinition = F2(
-	function (modulePath, packageDef) {
-		return A2(
-			$elm$core$Maybe$map,
-			$author$project$Morphir$IR$AccessControlled$withPrivateAccess,
-			A2($elm$core$Dict$get, modulePath, packageDef.modules));
-	});
-var $author$project$Morphir$IR$Module$lookupValueDefinition = F2(
-	function (localName, moduleDef) {
-		return A2(
-			$elm$core$Maybe$map,
-			$author$project$Morphir$IR$AccessControlled$withPrivateAccess,
-			A2($elm$core$Dict$get, localName, moduleDef.values));
-	});
-var $author$project$Morphir$IR$Distribution$lookupValueDefinition = F2(
-	function (_v0, distribution) {
-		var moduleName = _v0.a;
-		var localName = _v0.b;
-		var packageDef = distribution.c;
-		return A2(
-			$elm$core$Maybe$andThen,
-			$author$project$Morphir$IR$Module$lookupValueDefinition(localName),
-			A2($author$project$Morphir$IR$Package$lookupModuleDefinition, moduleName, packageDef));
-	});
-var $elm$core$Platform$Cmd$batch = _Platform_batch;
-var $elm$core$Platform$Cmd$none = $elm$core$Platform$Cmd$batch(_List_Nil);
-var $elm$core$Result$toMaybe = function (result) {
-	if (result.$ === 'Ok') {
-		var v = result.a;
-		return $elm$core$Maybe$Just(v);
-	} else {
-		return $elm$core$Maybe$Nothing;
-	}
-};
-var $author$project$Morphir$Web$DevelopMain$update = F2(
-	function (msg, model) {
-		var getDistribution = function () {
-			switch (model.$) {
-				case 'MakeComplete':
-					var result = model.a;
-					return $elm$core$Result$toMaybe(result);
-				case 'FunctionSelected':
-					var distribution = model.a;
-					return $elm$core$Maybe$Just(distribution);
-				default:
-					return $elm$core$Maybe$Nothing;
-			}
-		}();
-		switch (msg.$) {
-			case 'Make':
-				return _Utils_Tuple2($author$project$Morphir$Web$DevelopMain$WaitingForResponse, $author$project$Morphir$Web$DevelopMain$makeModel);
-			case 'MakeResult':
-				var result = msg.a;
-				if (result.$ === 'Ok') {
-					var distributionResult = result.a;
-					return _Utils_Tuple2(
-						$author$project$Morphir$Web$DevelopMain$MakeComplete(distributionResult),
-						$elm$core$Platform$Cmd$none);
-				} else {
-					var error = result.a;
-					return _Utils_Tuple2(
-						$author$project$Morphir$Web$DevelopMain$HttpFailure(error),
-						$elm$core$Platform$Cmd$none);
-				}
-			case 'SelectFunction':
-				var valueID = msg.a;
-				return A2(
-					$elm$core$Maybe$withDefault,
-					_Utils_Tuple2(model, $elm$core$Platform$Cmd$none),
-					A2(
-						$elm$core$Maybe$andThen,
-						function (qName) {
-							return A2(
-								$elm$core$Maybe$map,
-								function (m) {
-									return _Utils_Tuple2(m, $elm$core$Platform$Cmd$none);
-								},
-								A2(
-									$elm$core$Maybe$andThen,
-									function (distribution) {
-										return A2(
-											$elm$core$Maybe$map,
-											function (valueDef) {
-												return A4($author$project$Morphir$Web$DevelopMain$FunctionSelected, distribution, qName, valueDef, $elm$core$Dict$empty);
-											},
-											A2($author$project$Morphir$IR$Distribution$lookupValueDefinition, qName, distribution));
-									},
-									getDistribution));
-						},
-						$author$project$Morphir$IR$QName$fromString(valueID)));
-			case 'UpdateArgumentValue':
-				var argName = msg.a;
-				var argValue = msg.b;
-				if (model.$ === 'FunctionSelected') {
-					var distribution = model.a;
-					var qName = model.b;
-					var valueDef = model.c;
-					var argValues = model.d;
-					return _Utils_Tuple2(
-						A4(
-							$author$project$Morphir$Web$DevelopMain$FunctionSelected,
-							distribution,
-							qName,
-							valueDef,
-							A3(
-								$elm$core$Dict$insert,
-								argName,
-								$elm$core$Result$Ok(argValue),
-								argValues)),
-						$elm$core$Platform$Cmd$none);
-				} else {
-					return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
-				}
-			default:
-				var argName = msg.a;
-				var message = msg.b;
-				if (model.$ === 'FunctionSelected') {
-					var distribution = model.a;
-					var qName = model.b;
-					var valueDef = model.c;
-					var argValues = model.d;
-					return _Utils_Tuple2(
-						A4(
-							$author$project$Morphir$Web$DevelopMain$FunctionSelected,
-							distribution,
-							qName,
-							valueDef,
-							A3(
-								$elm$core$Dict$insert,
-								argName,
-								$elm$core$Result$Err(message),
-								argValues)),
-						$elm$core$Platform$Cmd$none);
-				} else {
-					return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
-				}
-		}
-	});
-var $author$project$Morphir$Web$DevelopMain$Make = {$: 'Make'};
-var $mdgriffith$elm_ui$Internal$Model$Rgba = F4(
-	function (a, b, c, d) {
-		return {$: 'Rgba', a: a, b: b, c: c, d: d};
-	});
-var $mdgriffith$elm_ui$Element$rgb255 = F3(
-	function (red, green, blue) {
-		return A4($mdgriffith$elm_ui$Internal$Model$Rgba, red / 255, green / 255, blue / 255, 1);
-	});
-var $author$project$Morphir$Web$Theme$Light$blue = A3($mdgriffith$elm_ui$Element$rgb255, 0, 163, 225);
-var $mdgriffith$elm_ui$Internal$Model$Colored = F3(
-	function (a, b, c) {
-		return {$: 'Colored', a: a, b: b, c: c};
-	});
-var $mdgriffith$elm_ui$Internal$Model$StyleClass = F2(
-	function (a, b) {
-		return {$: 'StyleClass', a: a, b: b};
-	});
-var $mdgriffith$elm_ui$Internal$Flag$Flag = function (a) {
-	return {$: 'Flag', a: a};
-};
-var $mdgriffith$elm_ui$Internal$Flag$Second = function (a) {
-	return {$: 'Second', a: a};
-};
-var $elm$core$Bitwise$shiftLeftBy = _Bitwise_shiftLeftBy;
-var $mdgriffith$elm_ui$Internal$Flag$flag = function (i) {
-	return (i > 31) ? $mdgriffith$elm_ui$Internal$Flag$Second(1 << (i - 32)) : $mdgriffith$elm_ui$Internal$Flag$Flag(1 << i);
-};
-var $mdgriffith$elm_ui$Internal$Flag$bgColor = $mdgriffith$elm_ui$Internal$Flag$flag(8);
-var $elm$core$Basics$round = _Basics_round;
-var $mdgriffith$elm_ui$Internal$Model$floatClass = function (x) {
-	return $elm$core$String$fromInt(
-		$elm$core$Basics$round(x * 255));
-};
-var $mdgriffith$elm_ui$Internal$Model$formatColorClass = function (_v0) {
-	var red = _v0.a;
-	var green = _v0.b;
-	var blue = _v0.c;
-	var alpha = _v0.d;
-	return $mdgriffith$elm_ui$Internal$Model$floatClass(red) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(green) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(blue) + ('-' + $mdgriffith$elm_ui$Internal$Model$floatClass(alpha))))));
-};
-var $mdgriffith$elm_ui$Element$Background$color = function (clr) {
-	return A2(
-		$mdgriffith$elm_ui$Internal$Model$StyleClass,
-		$mdgriffith$elm_ui$Internal$Flag$bgColor,
-		A3(
-			$mdgriffith$elm_ui$Internal$Model$Colored,
-			'bg-' + $mdgriffith$elm_ui$Internal$Model$formatColorClass(clr),
-			'background-color',
-			clr));
-};
-var $mdgriffith$elm_ui$Internal$Model$Unkeyed = function (a) {
-	return {$: 'Unkeyed', a: a};
-};
-var $mdgriffith$elm_ui$Internal$Model$AsColumn = {$: 'AsColumn'};
-var $mdgriffith$elm_ui$Internal$Model$asColumn = $mdgriffith$elm_ui$Internal$Model$AsColumn;
-var $mdgriffith$elm_ui$Internal$Style$classes = {above: 'a', active: 'atv', alignBottom: 'ab', alignCenterX: 'cx', alignCenterY: 'cy', alignContainerBottom: 'acb', alignContainerCenterX: 'accx', alignContainerCenterY: 'accy', alignContainerRight: 'acr', alignLeft: 'al', alignRight: 'ar', alignTop: 'at', alignedHorizontally: 'ah', alignedVertically: 'av', any: 's', behind: 'bh', below: 'b', bold: 'w7', borderDashed: 'bd', borderDotted: 'bdt', borderNone: 'bn', borderSolid: 'bs', capturePointerEvents: 'cpe', clip: 'cp', clipX: 'cpx', clipY: 'cpy', column: 'c', container: 'ctr', contentBottom: 'cb', contentCenterX: 'ccx', contentCenterY: 'ccy', contentLeft: 'cl', contentRight: 'cr', contentTop: 'ct', cursorPointer: 'cptr', cursorText: 'ctxt', focus: 'fcs', focusedWithin: 'focus-within', fullSize: 'fs', grid: 'g', hasBehind: 'hbh', heightContent: 'hc', heightExact: 'he', heightFill: 'hf', heightFillPortion: 'hfp', hover: 'hv', imageContainer: 'ic', inFront: 'fr', inputLabel: 'lbl', inputMultiline: 'iml', inputMultilineFiller: 'imlf', inputMultilineParent: 'imlp', inputMultilineWrapper: 'implw', inputText: 'it', italic: 'i', link: 'lnk', nearby: 'nb', noTextSelection: 'notxt', onLeft: 'ol', onRight: 'or', opaque: 'oq', overflowHidden: 'oh', page: 'pg', paragraph: 'p', passPointerEvents: 'ppe', root: 'ui', row: 'r', scrollbars: 'sb', scrollbarsX: 'sbx', scrollbarsY: 'sby', seButton: 'sbt', single: 'e', sizeByCapital: 'cap', spaceEvenly: 'sev', strike: 'sk', text: 't', textCenter: 'tc', textExtraBold: 'w8', textExtraLight: 'w2', textHeavy: 'w9', textJustify: 'tj', textJustifyAll: 'tja', textLeft: 'tl', textLight: 'w3', textMedium: 'w5', textNormalWeight: 'w4', textRight: 'tr', textSemiBold: 'w6', textThin: 'w1', textUnitalicized: 'tun', transition: 'ts', transparent: 'clr', underline: 'u', widthContent: 'wc', widthExact: 'we', widthFill: 'wf', widthFillPortion: 'wfp', wrapped: 'wrp'};
-var $mdgriffith$elm_ui$Internal$Model$Generic = {$: 'Generic'};
-var $mdgriffith$elm_ui$Internal$Model$div = $mdgriffith$elm_ui$Internal$Model$Generic;
-var $mdgriffith$elm_ui$Internal$Model$NoNearbyChildren = {$: 'NoNearbyChildren'};
-var $mdgriffith$elm_ui$Internal$Model$columnClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.column);
-var $mdgriffith$elm_ui$Internal$Model$gridClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.grid);
-var $mdgriffith$elm_ui$Internal$Model$pageClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.page);
-var $mdgriffith$elm_ui$Internal$Model$paragraphClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.paragraph);
-var $mdgriffith$elm_ui$Internal$Model$rowClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.row);
-var $mdgriffith$elm_ui$Internal$Model$singleClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.single);
-var $mdgriffith$elm_ui$Internal$Model$contextClasses = function (context) {
-	switch (context.$) {
-		case 'AsRow':
-			return $mdgriffith$elm_ui$Internal$Model$rowClass;
-		case 'AsColumn':
-			return $mdgriffith$elm_ui$Internal$Model$columnClass;
-		case 'AsEl':
-			return $mdgriffith$elm_ui$Internal$Model$singleClass;
-		case 'AsGrid':
-			return $mdgriffith$elm_ui$Internal$Model$gridClass;
-		case 'AsParagraph':
-			return $mdgriffith$elm_ui$Internal$Model$paragraphClass;
-		default:
-			return $mdgriffith$elm_ui$Internal$Model$pageClass;
-	}
-};
-var $mdgriffith$elm_ui$Internal$Model$Keyed = function (a) {
-	return {$: 'Keyed', a: a};
-};
-var $mdgriffith$elm_ui$Internal$Model$NoStyleSheet = {$: 'NoStyleSheet'};
-var $mdgriffith$elm_ui$Internal$Model$Styled = function (a) {
-	return {$: 'Styled', a: a};
-};
-var $mdgriffith$elm_ui$Internal$Model$Unstyled = function (a) {
-	return {$: 'Unstyled', a: a};
-};
-var $mdgriffith$elm_ui$Internal$Model$addChildren = F2(
-	function (existing, nearbyChildren) {
-		switch (nearbyChildren.$) {
-			case 'NoNearbyChildren':
-				return existing;
-			case 'ChildrenBehind':
-				var behind = nearbyChildren.a;
-				return _Utils_ap(behind, existing);
-			case 'ChildrenInFront':
-				var inFront = nearbyChildren.a;
-				return _Utils_ap(existing, inFront);
-			default:
-				var behind = nearbyChildren.a;
-				var inFront = nearbyChildren.b;
-				return _Utils_ap(
-					behind,
-					_Utils_ap(existing, inFront));
-		}
-	});
-var $mdgriffith$elm_ui$Internal$Model$addKeyedChildren = F3(
-	function (key, existing, nearbyChildren) {
-		switch (nearbyChildren.$) {
-			case 'NoNearbyChildren':
-				return existing;
-			case 'ChildrenBehind':
-				var behind = nearbyChildren.a;
-				return _Utils_ap(
-					A2(
-						$elm$core$List$map,
-						function (x) {
-							return _Utils_Tuple2(key, x);
-						},
-						behind),
-					existing);
-			case 'ChildrenInFront':
-				var inFront = nearbyChildren.a;
-				return _Utils_ap(
-					existing,
-					A2(
-						$elm$core$List$map,
-						function (x) {
-							return _Utils_Tuple2(key, x);
-						},
-						inFront));
-			default:
-				var behind = nearbyChildren.a;
-				var inFront = nearbyChildren.b;
-				return _Utils_ap(
-					A2(
-						$elm$core$List$map,
-						function (x) {
-							return _Utils_Tuple2(key, x);
-						},
-						behind),
-					_Utils_ap(
-						existing,
-						A2(
-							$elm$core$List$map,
-							function (x) {
-								return _Utils_Tuple2(key, x);
-							},
-							inFront)));
-		}
-	});
-var $mdgriffith$elm_ui$Internal$Model$AsEl = {$: 'AsEl'};
-var $mdgriffith$elm_ui$Internal$Model$asEl = $mdgriffith$elm_ui$Internal$Model$AsEl;
-var $mdgriffith$elm_ui$Internal$Model$AsParagraph = {$: 'AsParagraph'};
-var $mdgriffith$elm_ui$Internal$Model$asParagraph = $mdgriffith$elm_ui$Internal$Model$AsParagraph;
-var $mdgriffith$elm_ui$Internal$Flag$alignBottom = $mdgriffith$elm_ui$Internal$Flag$flag(41);
-var $mdgriffith$elm_ui$Internal$Flag$alignRight = $mdgriffith$elm_ui$Internal$Flag$flag(40);
-var $mdgriffith$elm_ui$Internal$Flag$centerX = $mdgriffith$elm_ui$Internal$Flag$flag(42);
-var $mdgriffith$elm_ui$Internal$Flag$centerY = $mdgriffith$elm_ui$Internal$Flag$flag(43);
-var $elm$json$Json$Encode$string = _Json_wrap;
-var $elm$html$Html$Attributes$stringProperty = F2(
-	function (key, string) {
-		return A2(
-			_VirtualDom_property,
-			key,
-			$elm$json$Json$Encode$string(string));
-	});
-var $elm$html$Html$Attributes$class = $elm$html$Html$Attributes$stringProperty('className');
-var $elm$html$Html$div = _VirtualDom_node('div');
-var $elm$core$Set$Set_elm_builtin = function (a) {
-	return {$: 'Set_elm_builtin', a: a};
-};
-var $elm$core$Set$empty = $elm$core$Set$Set_elm_builtin($elm$core$Dict$empty);
-var $mdgriffith$elm_ui$Internal$Model$lengthClassName = function (x) {
-	switch (x.$) {
-		case 'Px':
-			var px = x.a;
-			return $elm$core$String$fromInt(px) + 'px';
-		case 'Content':
-			return 'auto';
-		case 'Fill':
-			var i = x.a;
-			return $elm$core$String$fromInt(i) + 'fr';
-		case 'Min':
-			var min = x.a;
-			var len = x.b;
-			return 'min' + ($elm$core$String$fromInt(min) + $mdgriffith$elm_ui$Internal$Model$lengthClassName(len));
-		default:
-			var max = x.a;
-			var len = x.b;
-			return 'max' + ($elm$core$String$fromInt(max) + $mdgriffith$elm_ui$Internal$Model$lengthClassName(len));
-	}
-};
-var $elm$core$Tuple$second = function (_v0) {
-	var y = _v0.b;
-	return y;
-};
-var $mdgriffith$elm_ui$Internal$Model$transformClass = function (transform) {
-	switch (transform.$) {
-		case 'Untransformed':
-			return $elm$core$Maybe$Nothing;
-		case 'Moved':
-			var _v1 = transform.a;
-			var x = _v1.a;
-			var y = _v1.b;
-			var z = _v1.c;
-			return $elm$core$Maybe$Just(
-				'mv-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(x) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(y) + ('-' + $mdgriffith$elm_ui$Internal$Model$floatClass(z))))));
-		default:
-			var _v2 = transform.a;
-			var tx = _v2.a;
-			var ty = _v2.b;
-			var tz = _v2.c;
-			var _v3 = transform.b;
-			var sx = _v3.a;
-			var sy = _v3.b;
-			var sz = _v3.c;
-			var _v4 = transform.c;
-			var ox = _v4.a;
-			var oy = _v4.b;
-			var oz = _v4.c;
-			var angle = transform.d;
-			return $elm$core$Maybe$Just(
-				'tfrm-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(tx) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(ty) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(tz) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(sx) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(sy) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(sz) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(ox) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(oy) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(oz) + ('-' + $mdgriffith$elm_ui$Internal$Model$floatClass(angle))))))))))))))))))));
-	}
-};
-var $mdgriffith$elm_ui$Internal$Model$getStyleName = function (style) {
-	switch (style.$) {
-		case 'Shadows':
-			var name = style.a;
-			return name;
-		case 'Transparency':
-			var name = style.a;
-			var o = style.b;
-			return name;
-		case 'Style':
-			var _class = style.a;
-			return _class;
-		case 'FontFamily':
-			var name = style.a;
-			return name;
-		case 'FontSize':
-			var i = style.a;
-			return 'font-size-' + $elm$core$String$fromInt(i);
-		case 'Single':
-			var _class = style.a;
-			return _class;
-		case 'Colored':
-			var _class = style.a;
-			return _class;
-		case 'SpacingStyle':
-			var cls = style.a;
-			var x = style.b;
-			var y = style.c;
-			return cls;
-		case 'PaddingStyle':
-			var cls = style.a;
-			var top = style.b;
-			var right = style.c;
-			var bottom = style.d;
-			var left = style.e;
-			return cls;
-		case 'BorderWidth':
-			var cls = style.a;
-			var top = style.b;
-			var right = style.c;
-			var bottom = style.d;
-			var left = style.e;
-			return cls;
-		case 'GridTemplateStyle':
-			var template = style.a;
-			return 'grid-rows-' + (A2(
-				$elm$core$String$join,
-				'-',
-				A2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$lengthClassName, template.rows)) + ('-cols-' + (A2(
-				$elm$core$String$join,
-				'-',
-				A2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$lengthClassName, template.columns)) + ('-space-x-' + ($mdgriffith$elm_ui$Internal$Model$lengthClassName(template.spacing.a) + ('-space-y-' + $mdgriffith$elm_ui$Internal$Model$lengthClassName(template.spacing.b)))))));
-		case 'GridPosition':
-			var pos = style.a;
-			return 'gp grid-pos-' + ($elm$core$String$fromInt(pos.row) + ('-' + ($elm$core$String$fromInt(pos.col) + ('-' + ($elm$core$String$fromInt(pos.width) + ('-' + $elm$core$String$fromInt(pos.height)))))));
-		case 'PseudoSelector':
-			var selector = style.a;
-			var subStyle = style.b;
-			var name = function () {
-				switch (selector.$) {
-					case 'Focus':
-						return 'fs';
-					case 'Hover':
-						return 'hv';
-					default:
-						return 'act';
-				}
-			}();
-			return A2(
-				$elm$core$String$join,
-				' ',
-				A2(
-					$elm$core$List$map,
-					function (sty) {
-						var _v1 = $mdgriffith$elm_ui$Internal$Model$getStyleName(sty);
-						if (_v1 === '') {
-							return '';
-						} else {
-							var styleName = _v1;
-							return styleName + ('-' + name);
-						}
-					},
-					subStyle));
-		default:
-			var x = style.a;
-			return A2(
-				$elm$core$Maybe$withDefault,
-				'',
-				$mdgriffith$elm_ui$Internal$Model$transformClass(x));
-	}
-};
-var $elm$core$Set$insert = F2(
-	function (key, _v0) {
-		var dict = _v0.a;
-		return $elm$core$Set$Set_elm_builtin(
-			A3($elm$core$Dict$insert, key, _Utils_Tuple0, dict));
-	});
-var $elm$core$Dict$member = F2(
-	function (key, dict) {
-		var _v0 = A2($elm$core$Dict$get, key, dict);
-		if (_v0.$ === 'Just') {
-			return true;
-		} else {
-			return false;
-		}
-	});
-var $elm$core$Set$member = F2(
-	function (key, _v0) {
-		var dict = _v0.a;
-		return A2($elm$core$Dict$member, key, dict);
-	});
-var $mdgriffith$elm_ui$Internal$Model$reduceStyles = F2(
-	function (style, nevermind) {
-		var cache = nevermind.a;
-		var existing = nevermind.b;
-		var styleName = $mdgriffith$elm_ui$Internal$Model$getStyleName(style);
-		return A2($elm$core$Set$member, styleName, cache) ? nevermind : _Utils_Tuple2(
-			A2($elm$core$Set$insert, styleName, cache),
-			A2($elm$core$List$cons, style, existing));
-	});
-var $mdgriffith$elm_ui$Internal$Model$Property = F2(
-	function (a, b) {
-		return {$: 'Property', a: a, b: b};
-	});
-var $mdgriffith$elm_ui$Internal$Model$Style = F2(
-	function (a, b) {
-		return {$: 'Style', a: a, b: b};
-	});
-var $mdgriffith$elm_ui$Internal$Style$dot = function (c) {
-	return '.' + c;
-};
-var $elm$core$String$fromFloat = _String_fromNumber;
-var $mdgriffith$elm_ui$Internal$Model$formatColor = function (_v0) {
-	var red = _v0.a;
-	var green = _v0.b;
-	var blue = _v0.c;
-	var alpha = _v0.d;
-	return 'rgba(' + ($elm$core$String$fromInt(
-		$elm$core$Basics$round(red * 255)) + ((',' + $elm$core$String$fromInt(
-		$elm$core$Basics$round(green * 255))) + ((',' + $elm$core$String$fromInt(
-		$elm$core$Basics$round(blue * 255))) + (',' + ($elm$core$String$fromFloat(alpha) + ')')))));
-};
-var $mdgriffith$elm_ui$Internal$Model$formatBoxShadow = function (shadow) {
-	return A2(
-		$elm$core$String$join,
-		' ',
-		A2(
-			$elm$core$List$filterMap,
-			$elm$core$Basics$identity,
-			_List_fromArray(
-				[
-					shadow.inset ? $elm$core$Maybe$Just('inset') : $elm$core$Maybe$Nothing,
-					$elm$core$Maybe$Just(
-					$elm$core$String$fromFloat(shadow.offset.a) + 'px'),
-					$elm$core$Maybe$Just(
-					$elm$core$String$fromFloat(shadow.offset.b) + 'px'),
-					$elm$core$Maybe$Just(
-					$elm$core$String$fromFloat(shadow.blur) + 'px'),
-					$elm$core$Maybe$Just(
-					$elm$core$String$fromFloat(shadow.size) + 'px'),
-					$elm$core$Maybe$Just(
-					$mdgriffith$elm_ui$Internal$Model$formatColor(shadow.color))
-				])));
-};
-var $elm$core$Tuple$mapFirst = F2(
-	function (func, _v0) {
-		var x = _v0.a;
-		var y = _v0.b;
-		return _Utils_Tuple2(
-			func(x),
-			y);
-	});
-var $elm$core$Tuple$mapSecond = F2(
-	function (func, _v0) {
-		var x = _v0.a;
-		var y = _v0.b;
-		return _Utils_Tuple2(
-			x,
-			func(y));
-	});
-var $mdgriffith$elm_ui$Internal$Model$renderFocusStyle = function (focus) {
-	return _List_fromArray(
-		[
-			A2(
-			$mdgriffith$elm_ui$Internal$Model$Style,
-			$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.focusedWithin) + ':focus-within',
-			A2(
-				$elm$core$List$filterMap,
-				$elm$core$Basics$identity,
-				_List_fromArray(
-					[
-						A2(
-						$elm$core$Maybe$map,
-						function (color) {
-							return A2(
-								$mdgriffith$elm_ui$Internal$Model$Property,
-								'border-color',
-								$mdgriffith$elm_ui$Internal$Model$formatColor(color));
-						},
-						focus.borderColor),
-						A2(
-						$elm$core$Maybe$map,
-						function (color) {
-							return A2(
-								$mdgriffith$elm_ui$Internal$Model$Property,
-								'background-color',
-								$mdgriffith$elm_ui$Internal$Model$formatColor(color));
-						},
-						focus.backgroundColor),
-						A2(
-						$elm$core$Maybe$map,
-						function (shadow) {
-							return A2(
-								$mdgriffith$elm_ui$Internal$Model$Property,
-								'box-shadow',
-								$mdgriffith$elm_ui$Internal$Model$formatBoxShadow(
-									{
-										blur: shadow.blur,
-										color: shadow.color,
-										inset: false,
-										offset: A2(
-											$elm$core$Tuple$mapSecond,
-											$elm$core$Basics$toFloat,
-											A2($elm$core$Tuple$mapFirst, $elm$core$Basics$toFloat, shadow.offset)),
-										size: shadow.size
-									}));
-						},
-						focus.shadow),
-						$elm$core$Maybe$Just(
-						A2($mdgriffith$elm_ui$Internal$Model$Property, 'outline', 'none'))
-					]))),
-			A2(
-			$mdgriffith$elm_ui$Internal$Model$Style,
-			($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ':focus .focusable, ') + (($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + '.focusable:focus, ') + ('.ui-slide-bar:focus + ' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ' .focusable-thumb'))),
-			A2(
-				$elm$core$List$filterMap,
-				$elm$core$Basics$identity,
-				_List_fromArray(
-					[
-						A2(
-						$elm$core$Maybe$map,
-						function (color) {
-							return A2(
-								$mdgriffith$elm_ui$Internal$Model$Property,
-								'border-color',
-								$mdgriffith$elm_ui$Internal$Model$formatColor(color));
-						},
-						focus.borderColor),
-						A2(
-						$elm$core$Maybe$map,
-						function (color) {
-							return A2(
-								$mdgriffith$elm_ui$Internal$Model$Property,
-								'background-color',
-								$mdgriffith$elm_ui$Internal$Model$formatColor(color));
-						},
-						focus.backgroundColor),
-						A2(
-						$elm$core$Maybe$map,
-						function (shadow) {
-							return A2(
-								$mdgriffith$elm_ui$Internal$Model$Property,
-								'box-shadow',
-								$mdgriffith$elm_ui$Internal$Model$formatBoxShadow(
-									{
-										blur: shadow.blur,
-										color: shadow.color,
-										inset: false,
-										offset: A2(
-											$elm$core$Tuple$mapSecond,
-											$elm$core$Basics$toFloat,
-											A2($elm$core$Tuple$mapFirst, $elm$core$Basics$toFloat, shadow.offset)),
-										size: shadow.size
-									}));
-						},
-						focus.shadow),
-						$elm$core$Maybe$Just(
-						A2($mdgriffith$elm_ui$Internal$Model$Property, 'outline', 'none'))
-					])))
-		]);
-};
-var $elm$virtual_dom$VirtualDom$node = function (tag) {
-	return _VirtualDom_node(
-		_VirtualDom_noScript(tag));
-};
-var $elm$virtual_dom$VirtualDom$property = F2(
-	function (key, value) {
-		return A2(
-			_VirtualDom_property,
-			_VirtualDom_noInnerHtmlOrFormAction(key),
-			_VirtualDom_noJavaScriptOrHtmlUri(value));
-	});
-var $mdgriffith$elm_ui$Internal$Style$AllChildren = F2(
-	function (a, b) {
-		return {$: 'AllChildren', a: a, b: b};
-	});
-var $mdgriffith$elm_ui$Internal$Style$Batch = function (a) {
-	return {$: 'Batch', a: a};
-};
-var $mdgriffith$elm_ui$Internal$Style$Child = F2(
-	function (a, b) {
-		return {$: 'Child', a: a, b: b};
-	});
-var $mdgriffith$elm_ui$Internal$Style$Class = F2(
-	function (a, b) {
-		return {$: 'Class', a: a, b: b};
-	});
-var $mdgriffith$elm_ui$Internal$Style$Descriptor = F2(
-	function (a, b) {
-		return {$: 'Descriptor', a: a, b: b};
-	});
-var $mdgriffith$elm_ui$Internal$Style$Left = {$: 'Left'};
-var $mdgriffith$elm_ui$Internal$Style$Prop = F2(
-	function (a, b) {
-		return {$: 'Prop', a: a, b: b};
-	});
-var $mdgriffith$elm_ui$Internal$Style$Right = {$: 'Right'};
-var $mdgriffith$elm_ui$Internal$Style$Self = function (a) {
-	return {$: 'Self', a: a};
-};
-var $mdgriffith$elm_ui$Internal$Style$Supports = F2(
-	function (a, b) {
-		return {$: 'Supports', a: a, b: b};
-	});
-var $mdgriffith$elm_ui$Internal$Style$Content = function (a) {
-	return {$: 'Content', a: a};
-};
-var $mdgriffith$elm_ui$Internal$Style$Bottom = {$: 'Bottom'};
-var $mdgriffith$elm_ui$Internal$Style$CenterX = {$: 'CenterX'};
-var $mdgriffith$elm_ui$Internal$Style$CenterY = {$: 'CenterY'};
-var $mdgriffith$elm_ui$Internal$Style$Top = {$: 'Top'};
-var $mdgriffith$elm_ui$Internal$Style$alignments = _List_fromArray(
-	[$mdgriffith$elm_ui$Internal$Style$Top, $mdgriffith$elm_ui$Internal$Style$Bottom, $mdgriffith$elm_ui$Internal$Style$Right, $mdgriffith$elm_ui$Internal$Style$Left, $mdgriffith$elm_ui$Internal$Style$CenterX, $mdgriffith$elm_ui$Internal$Style$CenterY]);
-var $elm$core$List$append = F2(
-	function (xs, ys) {
-		if (!ys.b) {
-			return xs;
-		} else {
-			return A3($elm$core$List$foldr, $elm$core$List$cons, ys, xs);
-		}
-	});
-var $elm$core$List$concat = function (lists) {
-	return A3($elm$core$List$foldr, $elm$core$List$append, _List_Nil, lists);
-};
-var $elm$core$List$concatMap = F2(
-	function (f, list) {
-		return $elm$core$List$concat(
-			A2($elm$core$List$map, f, list));
-	});
-var $mdgriffith$elm_ui$Internal$Style$contentName = function (desc) {
-	switch (desc.a.$) {
-		case 'Top':
-			var _v1 = desc.a;
-			return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentTop);
-		case 'Bottom':
-			var _v2 = desc.a;
-			return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentBottom);
-		case 'Right':
-			var _v3 = desc.a;
-			return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentRight);
-		case 'Left':
-			var _v4 = desc.a;
-			return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentLeft);
-		case 'CenterX':
-			var _v5 = desc.a;
-			return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentCenterX);
-		default:
-			var _v6 = desc.a;
-			return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentCenterY);
-	}
-};
-var $mdgriffith$elm_ui$Internal$Style$selfName = function (desc) {
-	switch (desc.a.$) {
-		case 'Top':
-			var _v1 = desc.a;
-			return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignTop);
-		case 'Bottom':
-			var _v2 = desc.a;
-			return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignBottom);
-		case 'Right':
-			var _v3 = desc.a;
-			return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignRight);
-		case 'Left':
-			var _v4 = desc.a;
-			return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignLeft);
-		case 'CenterX':
-			var _v5 = desc.a;
-			return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterX);
-		default:
-			var _v6 = desc.a;
-			return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterY);
-	}
-};
-var $mdgriffith$elm_ui$Internal$Style$describeAlignment = function (values) {
-	var createDescription = function (alignment) {
-		var _v0 = values(alignment);
-		var content = _v0.a;
-		var indiv = _v0.b;
-		return _List_fromArray(
-			[
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$contentName(
-					$mdgriffith$elm_ui$Internal$Style$Content(alignment)),
-				content),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Child,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),
-				_List_fromArray(
-					[
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Descriptor,
-						$mdgriffith$elm_ui$Internal$Style$selfName(
-							$mdgriffith$elm_ui$Internal$Style$Self(alignment)),
-						indiv)
-					]))
-			]);
-	};
-	return $mdgriffith$elm_ui$Internal$Style$Batch(
-		A2($elm$core$List$concatMap, createDescription, $mdgriffith$elm_ui$Internal$Style$alignments));
-};
-var $mdgriffith$elm_ui$Internal$Style$elDescription = _List_fromArray(
-	[
-		A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex'),
-		A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-direction', 'column'),
-		A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'pre'),
-		A2(
-		$mdgriffith$elm_ui$Internal$Style$Descriptor,
-		$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.hasBehind),
-		_List_fromArray(
-			[
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '0'),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Child,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.behind),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '-1')
-					]))
-			])),
-		A2(
-		$mdgriffith$elm_ui$Internal$Style$Descriptor,
-		$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.seButton),
-		_List_fromArray(
-			[
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Child,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.text),
-				_List_fromArray(
-					[
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Descriptor,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0')
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Descriptor,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'auto !important')
-							]))
-					]))
-			])),
-		A2(
-		$mdgriffith$elm_ui$Internal$Style$Child,
-		$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightContent),
-		_List_fromArray(
-			[
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', 'auto')
-			])),
-		A2(
-		$mdgriffith$elm_ui$Internal$Style$Child,
-		$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill),
-		_List_fromArray(
-			[
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '100000')
-			])),
-		A2(
-		$mdgriffith$elm_ui$Internal$Style$Child,
-		$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill),
-		_List_fromArray(
-			[
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%')
-			])),
-		A2(
-		$mdgriffith$elm_ui$Internal$Style$Child,
-		$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFillPortion),
-		_List_fromArray(
-			[
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%')
-			])),
-		A2(
-		$mdgriffith$elm_ui$Internal$Style$Child,
-		$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthContent),
-		_List_fromArray(
-			[
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-start')
-			])),
-		$mdgriffith$elm_ui$Internal$Style$describeAlignment(
-		function (alignment) {
-			switch (alignment.$) {
-				case 'Top':
-					return _Utils_Tuple2(
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-start')
-							]),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto !important'),
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', '0 !important')
-							]));
-				case 'Bottom':
-					return _Utils_Tuple2(
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-end')
-							]),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto !important'),
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', '0 !important')
-							]));
-				case 'Right':
-					return _Utils_Tuple2(
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-end')
-							]),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-end')
-							]));
-				case 'Left':
-					return _Utils_Tuple2(
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-start')
-							]),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-start')
-							]));
-				case 'CenterX':
-					return _Utils_Tuple2(
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'center')
-							]),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'center')
-							]));
-				default:
-					return _Utils_Tuple2(
-						_List_fromArray(
-							[
-								A2(
-								$mdgriffith$elm_ui$Internal$Style$Child,
-								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),
-								_List_fromArray(
-									[
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto'),
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto')
-									]))
-							]),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto !important'),
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto !important')
-							]));
-			}
-		})
-	]);
-var $mdgriffith$elm_ui$Internal$Style$gridAlignments = function (values) {
-	var createDescription = function (alignment) {
-		return _List_fromArray(
-			[
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Child,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),
-				_List_fromArray(
-					[
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Descriptor,
-						$mdgriffith$elm_ui$Internal$Style$selfName(
-							$mdgriffith$elm_ui$Internal$Style$Self(alignment)),
-						values(alignment))
-					]))
-			]);
-	};
-	return $mdgriffith$elm_ui$Internal$Style$Batch(
-		A2($elm$core$List$concatMap, createDescription, $mdgriffith$elm_ui$Internal$Style$alignments));
-};
-var $mdgriffith$elm_ui$Internal$Style$Above = {$: 'Above'};
-var $mdgriffith$elm_ui$Internal$Style$Behind = {$: 'Behind'};
-var $mdgriffith$elm_ui$Internal$Style$Below = {$: 'Below'};
-var $mdgriffith$elm_ui$Internal$Style$OnLeft = {$: 'OnLeft'};
-var $mdgriffith$elm_ui$Internal$Style$OnRight = {$: 'OnRight'};
-var $mdgriffith$elm_ui$Internal$Style$Within = {$: 'Within'};
-var $mdgriffith$elm_ui$Internal$Style$locations = function () {
-	var loc = $mdgriffith$elm_ui$Internal$Style$Above;
-	var _v0 = function () {
-		switch (loc.$) {
-			case 'Above':
-				return _Utils_Tuple0;
-			case 'Below':
-				return _Utils_Tuple0;
-			case 'OnRight':
-				return _Utils_Tuple0;
-			case 'OnLeft':
-				return _Utils_Tuple0;
-			case 'Within':
-				return _Utils_Tuple0;
-			default:
-				return _Utils_Tuple0;
-		}
-	}();
-	return _List_fromArray(
-		[$mdgriffith$elm_ui$Internal$Style$Above, $mdgriffith$elm_ui$Internal$Style$Below, $mdgriffith$elm_ui$Internal$Style$OnRight, $mdgriffith$elm_ui$Internal$Style$OnLeft, $mdgriffith$elm_ui$Internal$Style$Within, $mdgriffith$elm_ui$Internal$Style$Behind]);
-}();
-var $mdgriffith$elm_ui$Internal$Style$baseSheet = _List_fromArray(
-	[
-		A2(
-		$mdgriffith$elm_ui$Internal$Style$Class,
-		'html,body',
-		_List_fromArray(
-			[
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'padding', '0'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0')
-			])),
-		A2(
-		$mdgriffith$elm_ui$Internal$Style$Class,
-		_Utils_ap(
-			$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),
-			_Utils_ap(
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single),
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.imageContainer))),
-		_List_fromArray(
-			[
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'block'),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill),
-				_List_fromArray(
-					[
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						'img',
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'max-height', '100%'),
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'object-fit', 'cover')
-							]))
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill),
-				_List_fromArray(
-					[
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						'img',
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'max-width', '100%'),
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'object-fit', 'cover')
-							]))
-					]))
-			])),
-		A2(
-		$mdgriffith$elm_ui$Internal$Style$Class,
-		$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ':focus',
-		_List_fromArray(
-			[
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'outline', 'none')
-			])),
-		A2(
-		$mdgriffith$elm_ui$Internal$Style$Class,
-		$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.root),
-		_List_fromArray(
-			[
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', 'auto'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'min-height', '100%'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '0'),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				_Utils_ap(
-					$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),
-					$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill)),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%')
-							]))
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Child,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inFront),
-				_List_fromArray(
-					[
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Descriptor,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.nearby),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'fixed'),
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '20')
-							]))
-					]))
-			])),
-		A2(
-		$mdgriffith$elm_ui$Internal$Style$Class,
-		$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.nearby),
-		_List_fromArray(
-			[
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'relative'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border', 'none'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-direction', 'row'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto'),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single),
-				$mdgriffith$elm_ui$Internal$Style$elDescription),
-				$mdgriffith$elm_ui$Internal$Style$Batch(
-				function (fn) {
-					return A2($elm$core$List$map, fn, $mdgriffith$elm_ui$Internal$Style$locations);
-				}(
-					function (loc) {
-						switch (loc.$) {
-							case 'Above':
-								return A2(
-									$mdgriffith$elm_ui$Internal$Style$Descriptor,
-									$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.above),
-									_List_fromArray(
-										[
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'bottom', '100%'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '0'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '20'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'),
-											A2(
-											$mdgriffith$elm_ui$Internal$Style$Child,
-											$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill),
-											_List_fromArray(
-												[
-													A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', 'auto')
-												])),
-											A2(
-											$mdgriffith$elm_ui$Internal$Style$Child,
-											$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill),
-											_List_fromArray(
-												[
-													A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%')
-												])),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'),
-											A2(
-											$mdgriffith$elm_ui$Internal$Style$Child,
-											'*',
-											_List_fromArray(
-												[
-													A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto')
-												]))
-										]));
-							case 'Below':
-								return A2(
-									$mdgriffith$elm_ui$Internal$Style$Descriptor,
-									$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.below),
-									_List_fromArray(
-										[
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'bottom', '0'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '0'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '0'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '20'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'),
-											A2(
-											$mdgriffith$elm_ui$Internal$Style$Child,
-											'*',
-											_List_fromArray(
-												[
-													A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto')
-												])),
-											A2(
-											$mdgriffith$elm_ui$Internal$Style$Child,
-											$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill),
-											_List_fromArray(
-												[
-													A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', 'auto')
-												]))
-										]));
-							case 'OnRight':
-								return A2(
-									$mdgriffith$elm_ui$Internal$Style$Descriptor,
-									$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.onRight),
-									_List_fromArray(
-										[
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '100%'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'top', '0'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '20'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'),
-											A2(
-											$mdgriffith$elm_ui$Internal$Style$Child,
-											'*',
-											_List_fromArray(
-												[
-													A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto')
-												]))
-										]));
-							case 'OnLeft':
-								return A2(
-									$mdgriffith$elm_ui$Internal$Style$Descriptor,
-									$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.onLeft),
-									_List_fromArray(
-										[
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'right', '100%'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'top', '0'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '20'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'),
-											A2(
-											$mdgriffith$elm_ui$Internal$Style$Child,
-											'*',
-											_List_fromArray(
-												[
-													A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto')
-												]))
-										]));
-							case 'Within':
-								return A2(
-									$mdgriffith$elm_ui$Internal$Style$Descriptor,
-									$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inFront),
-									_List_fromArray(
-										[
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '0'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'top', '0'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'),
-											A2(
-											$mdgriffith$elm_ui$Internal$Style$Child,
-											'*',
-											_List_fromArray(
-												[
-													A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto')
-												]))
-										]));
-							default:
-								return A2(
-									$mdgriffith$elm_ui$Internal$Style$Descriptor,
-									$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.behind),
-									_List_fromArray(
-										[
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '0'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'top', '0'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '0'),
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'),
-											A2(
-											$mdgriffith$elm_ui$Internal$Style$Child,
-											'*',
-											_List_fromArray(
-												[
-													A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto')
-												]))
-										]));
-						}
-					}))
-			])),
-		A2(
-		$mdgriffith$elm_ui$Internal$Style$Class,
-		$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),
-		_List_fromArray(
-			[
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'relative'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border', 'none'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-shrink', '0'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-direction', 'row'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'resize', 'none'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-feature-settings', 'inherit'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'box-sizing', 'border-box'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'padding', '0'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-width', '0'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-style', 'solid'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-size', 'inherit'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'color', 'inherit'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-family', 'inherit'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'line-height', '1'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', 'inherit'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration', 'none'),
-				A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-style', 'inherit'),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.wrapped),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-wrap', 'wrap')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.noTextSelection),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, '-moz-user-select', 'none'),
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, '-webkit-user-select', 'none'),
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, '-ms-user-select', 'none'),
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'user-select', 'none')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.cursorPointer),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'cursor', 'pointer')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.cursorText),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'cursor', 'text')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.passPointerEvents),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none !important')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.capturePointerEvents),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto !important')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.transparent),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '0')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.opaque),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '1')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot(
-					_Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.hover, $mdgriffith$elm_ui$Internal$Style$classes.transparent)) + ':hover',
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '0')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot(
-					_Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.hover, $mdgriffith$elm_ui$Internal$Style$classes.opaque)) + ':hover',
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '1')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot(
-					_Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.focus, $mdgriffith$elm_ui$Internal$Style$classes.transparent)) + ':focus',
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '0')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot(
-					_Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.focus, $mdgriffith$elm_ui$Internal$Style$classes.opaque)) + ':focus',
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '1')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot(
-					_Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.active, $mdgriffith$elm_ui$Internal$Style$classes.transparent)) + ':active',
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '0')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot(
-					_Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.active, $mdgriffith$elm_ui$Internal$Style$classes.opaque)) + ':active',
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '1')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.transition),
-				_List_fromArray(
-					[
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Prop,
-						'transition',
-						A2(
-							$elm$core$String$join,
-							', ',
-							A2(
-								$elm$core$List$map,
-								function (x) {
-									return x + ' 160ms';
-								},
-								_List_fromArray(
-									['transform', 'opacity', 'filter', 'background-color', 'color', 'font-size']))))
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.scrollbars),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow', 'auto'),
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-shrink', '1')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.scrollbarsX),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow-x', 'auto'),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Descriptor,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.row),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-shrink', '1')
-							]))
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.scrollbarsY),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow-y', 'auto'),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Descriptor,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.column),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-shrink', '1')
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Descriptor,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-shrink', '1')
-							]))
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.clip),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow', 'hidden')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.clipX),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow-x', 'hidden')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.clipY),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow-y', 'hidden')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthContent),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', 'auto')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.borderNone),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-width', '0')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.borderDashed),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-style', 'dashed')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.borderDotted),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-style', 'dotted')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.borderSolid),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-style', 'solid')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.text),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'pre'),
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline-block')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputText),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'line-height', '1.05'),
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'background', 'transparent'),
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'inherit')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single),
-				$mdgriffith$elm_ui$Internal$Style$elDescription),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.row),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex'),
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-direction', 'row'),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', '0%'),
-								A2(
-								$mdgriffith$elm_ui$Internal$Style$Descriptor,
-								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthExact),
-								_List_fromArray(
-									[
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto')
-									])),
-								A2(
-								$mdgriffith$elm_ui$Internal$Style$Descriptor,
-								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.link),
-								_List_fromArray(
-									[
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto')
-									]))
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'stretch !important')
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFillPortion),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'stretch !important')
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '100000')
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.container),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0'),
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto'),
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'stretch')
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						'u:first-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerRight,
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1')
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						's:first-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX,
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'),
-								A2(
-								$mdgriffith$elm_ui$Internal$Style$Child,
-								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterX),
-								_List_fromArray(
-									[
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-left', 'auto !important')
-									]))
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						's:last-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX,
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'),
-								A2(
-								$mdgriffith$elm_ui$Internal$Style$Child,
-								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterX),
-								_List_fromArray(
-									[
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-right', 'auto !important')
-									]))
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						's:only-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX,
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'),
-								A2(
-								$mdgriffith$elm_ui$Internal$Style$Child,
-								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterY),
-								_List_fromArray(
-									[
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto !important'),
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto !important')
-									]))
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						's:last-of-type.' + ($mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX + ' ~ u'),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0')
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						'u:first-of-type.' + ($mdgriffith$elm_ui$Internal$Style$classes.alignContainerRight + (' ~ s.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX)),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0')
-							])),
-						$mdgriffith$elm_ui$Internal$Style$describeAlignment(
-						function (alignment) {
-							switch (alignment.$) {
-								case 'Top':
-									return _Utils_Tuple2(
-										_List_fromArray(
-											[
-												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-start')
-											]),
-										_List_fromArray(
-											[
-												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-start')
-											]));
-								case 'Bottom':
-									return _Utils_Tuple2(
-										_List_fromArray(
-											[
-												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-end')
-											]),
-										_List_fromArray(
-											[
-												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-end')
-											]));
-								case 'Right':
-									return _Utils_Tuple2(
-										_List_fromArray(
-											[
-												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-end')
-											]),
-										_List_Nil);
-								case 'Left':
-									return _Utils_Tuple2(
-										_List_fromArray(
-											[
-												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-start')
-											]),
-										_List_Nil);
-								case 'CenterX':
-									return _Utils_Tuple2(
-										_List_fromArray(
-											[
-												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'center')
-											]),
-										_List_Nil);
-								default:
-									return _Utils_Tuple2(
-										_List_fromArray(
-											[
-												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'center')
-											]),
-										_List_fromArray(
-											[
-												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'center')
-											]));
-							}
-						}),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Descriptor,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.spaceEvenly),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'space-between')
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Descriptor,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputLabel),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'baseline')
-							]))
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.column),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex'),
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-direction', 'column'),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', '0px'),
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'min-height', 'min-content'),
-								A2(
-								$mdgriffith$elm_ui$Internal$Style$Descriptor,
-								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightExact),
-								_List_fromArray(
-									[
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto')
-									]))
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '100000')
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%')
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFillPortion),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%')
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthContent),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-start')
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						'u:first-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerBottom,
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1')
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						's:first-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY,
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'),
-								A2(
-								$mdgriffith$elm_ui$Internal$Style$Child,
-								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterY),
-								_List_fromArray(
-									[
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto !important'),
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', '0 !important')
-									]))
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						's:last-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY,
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'),
-								A2(
-								$mdgriffith$elm_ui$Internal$Style$Child,
-								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterY),
-								_List_fromArray(
-									[
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto !important'),
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', '0 !important')
-									]))
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						's:only-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY,
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'),
-								A2(
-								$mdgriffith$elm_ui$Internal$Style$Child,
-								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterY),
-								_List_fromArray(
-									[
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto !important'),
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto !important')
-									]))
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						's:last-of-type.' + ($mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY + ' ~ u'),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0')
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						'u:first-of-type.' + ($mdgriffith$elm_ui$Internal$Style$classes.alignContainerBottom + (' ~ s.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY)),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0')
-							])),
-						$mdgriffith$elm_ui$Internal$Style$describeAlignment(
-						function (alignment) {
-							switch (alignment.$) {
-								case 'Top':
-									return _Utils_Tuple2(
-										_List_fromArray(
-											[
-												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-start')
-											]),
-										_List_fromArray(
-											[
-												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto')
-											]));
-								case 'Bottom':
-									return _Utils_Tuple2(
-										_List_fromArray(
-											[
-												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-end')
-											]),
-										_List_fromArray(
-											[
-												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto')
-											]));
-								case 'Right':
-									return _Utils_Tuple2(
-										_List_fromArray(
-											[
-												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-end')
-											]),
-										_List_fromArray(
-											[
-												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-end')
-											]));
-								case 'Left':
-									return _Utils_Tuple2(
-										_List_fromArray(
-											[
-												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-start')
-											]),
-										_List_fromArray(
-											[
-												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-start')
-											]));
-								case 'CenterX':
-									return _Utils_Tuple2(
-										_List_fromArray(
-											[
-												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'center')
-											]),
-										_List_fromArray(
-											[
-												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'center')
-											]));
-								default:
-									return _Utils_Tuple2(
-										_List_fromArray(
-											[
-												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'center')
-											]),
-										_List_Nil);
-							}
-						}),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.container),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0'),
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto'),
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'),
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'stretch !important')
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Descriptor,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.spaceEvenly),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'space-between')
-							]))
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.grid),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', '-ms-grid'),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						'.gp',
-						_List_fromArray(
-							[
-								A2(
-								$mdgriffith$elm_ui$Internal$Style$Child,
-								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),
-								_List_fromArray(
-									[
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%')
-									]))
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Supports,
-						_Utils_Tuple2('display', 'grid'),
-						_List_fromArray(
-							[
-								_Utils_Tuple2('display', 'grid')
-							])),
-						$mdgriffith$elm_ui$Internal$Style$gridAlignments(
-						function (alignment) {
-							switch (alignment.$) {
-								case 'Top':
-									return _List_fromArray(
-										[
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-start')
-										]);
-								case 'Bottom':
-									return _List_fromArray(
-										[
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-end')
-										]);
-								case 'Right':
-									return _List_fromArray(
-										[
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-end')
-										]);
-								case 'Left':
-									return _List_fromArray(
-										[
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-start')
-										]);
-								case 'CenterX':
-									return _List_fromArray(
-										[
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'center')
-										]);
-								default:
-									return _List_fromArray(
-										[
-											A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'center')
-										]);
-							}
-						})
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.page),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'block'),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any + ':first-child'),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important')
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						$mdgriffith$elm_ui$Internal$Style$dot(
-							$mdgriffith$elm_ui$Internal$Style$classes.any + ($mdgriffith$elm_ui$Internal$Style$selfName(
-								$mdgriffith$elm_ui$Internal$Style$Self($mdgriffith$elm_ui$Internal$Style$Left)) + (':first-child + .' + $mdgriffith$elm_ui$Internal$Style$classes.any))),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important')
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						$mdgriffith$elm_ui$Internal$Style$dot(
-							$mdgriffith$elm_ui$Internal$Style$classes.any + ($mdgriffith$elm_ui$Internal$Style$selfName(
-								$mdgriffith$elm_ui$Internal$Style$Self($mdgriffith$elm_ui$Internal$Style$Right)) + (':first-child + .' + $mdgriffith$elm_ui$Internal$Style$classes.any))),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important')
-							])),
-						$mdgriffith$elm_ui$Internal$Style$describeAlignment(
-						function (alignment) {
-							switch (alignment.$) {
-								case 'Top':
-									return _Utils_Tuple2(_List_Nil, _List_Nil);
-								case 'Bottom':
-									return _Utils_Tuple2(_List_Nil, _List_Nil);
-								case 'Right':
-									return _Utils_Tuple2(
-										_List_Nil,
-										_List_fromArray(
-											[
-												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'float', 'right'),
-												A2(
-												$mdgriffith$elm_ui$Internal$Style$Descriptor,
-												'::after',
-												_List_fromArray(
-													[
-														A2($mdgriffith$elm_ui$Internal$Style$Prop, 'content', '\"\"'),
-														A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'table'),
-														A2($mdgriffith$elm_ui$Internal$Style$Prop, 'clear', 'both')
-													]))
-											]));
-								case 'Left':
-									return _Utils_Tuple2(
-										_List_Nil,
-										_List_fromArray(
-											[
-												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'float', 'left'),
-												A2(
-												$mdgriffith$elm_ui$Internal$Style$Descriptor,
-												'::after',
-												_List_fromArray(
-													[
-														A2($mdgriffith$elm_ui$Internal$Style$Prop, 'content', '\"\"'),
-														A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'table'),
-														A2($mdgriffith$elm_ui$Internal$Style$Prop, 'clear', 'both')
-													]))
-											]));
-								case 'CenterX':
-									return _Utils_Tuple2(_List_Nil, _List_Nil);
-								default:
-									return _Utils_Tuple2(_List_Nil, _List_Nil);
-							}
-						})
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputMultiline),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'pre-wrap !important'),
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'),
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'),
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'background-color', 'transparent')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputMultilineWrapper),
-				_List_fromArray(
-					[
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Descriptor,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto')
-							]))
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputMultilineParent),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'pre-wrap !important'),
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'cursor', 'text'),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputMultilineFiller),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'pre-wrap !important'),
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'color', 'transparent')
-							]))
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.paragraph),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'block'),
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'normal'),
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow-wrap', 'break-word'),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Descriptor,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.hasBehind),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '0'),
-								A2(
-								$mdgriffith$elm_ui$Internal$Style$Child,
-								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.behind),
-								_List_fromArray(
-									[
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '-1')
-									]))
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$AllChildren,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.text),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline'),
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'normal')
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$AllChildren,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.paragraph),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline'),
-								A2(
-								$mdgriffith$elm_ui$Internal$Style$Descriptor,
-								'::after',
-								_List_fromArray(
-									[
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'content', 'none')
-									])),
-								A2(
-								$mdgriffith$elm_ui$Internal$Style$Descriptor,
-								'::before',
-								_List_fromArray(
-									[
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'content', 'none')
-									]))
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$AllChildren,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline'),
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'normal'),
-								A2(
-								$mdgriffith$elm_ui$Internal$Style$Descriptor,
-								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthExact),
-								_List_fromArray(
-									[
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline-block')
-									])),
-								A2(
-								$mdgriffith$elm_ui$Internal$Style$Descriptor,
-								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inFront),
-								_List_fromArray(
-									[
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex')
-									])),
-								A2(
-								$mdgriffith$elm_ui$Internal$Style$Descriptor,
-								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.behind),
-								_List_fromArray(
-									[
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex')
-									])),
-								A2(
-								$mdgriffith$elm_ui$Internal$Style$Descriptor,
-								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.above),
-								_List_fromArray(
-									[
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex')
-									])),
-								A2(
-								$mdgriffith$elm_ui$Internal$Style$Descriptor,
-								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.below),
-								_List_fromArray(
-									[
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex')
-									])),
-								A2(
-								$mdgriffith$elm_ui$Internal$Style$Descriptor,
-								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.onRight),
-								_List_fromArray(
-									[
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex')
-									])),
-								A2(
-								$mdgriffith$elm_ui$Internal$Style$Descriptor,
-								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.onLeft),
-								_List_fromArray(
-									[
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex')
-									])),
-								A2(
-								$mdgriffith$elm_ui$Internal$Style$Child,
-								$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.text),
-								_List_fromArray(
-									[
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline'),
-										A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'normal')
-									]))
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.row),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline')
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.column),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline-flex')
-							])),
-						A2(
-						$mdgriffith$elm_ui$Internal$Style$Child,
-						$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.grid),
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline-grid')
-							])),
-						$mdgriffith$elm_ui$Internal$Style$describeAlignment(
-						function (alignment) {
-							switch (alignment.$) {
-								case 'Top':
-									return _Utils_Tuple2(_List_Nil, _List_Nil);
-								case 'Bottom':
-									return _Utils_Tuple2(_List_Nil, _List_Nil);
-								case 'Right':
-									return _Utils_Tuple2(
-										_List_Nil,
-										_List_fromArray(
-											[
-												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'float', 'right')
-											]));
-								case 'Left':
-									return _Utils_Tuple2(
-										_List_Nil,
-										_List_fromArray(
-											[
-												A2($mdgriffith$elm_ui$Internal$Style$Prop, 'float', 'left')
-											]));
-								case 'CenterX':
-									return _Utils_Tuple2(_List_Nil, _List_Nil);
-								default:
-									return _Utils_Tuple2(_List_Nil, _List_Nil);
-							}
-						})
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				'.hidden',
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'none')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textThin),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '100')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textExtraLight),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '200')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textLight),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '300')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textNormalWeight),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '400')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textMedium),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '500')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textSemiBold),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '600')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.bold),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '700')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textExtraBold),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '800')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textHeavy),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '900')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.italic),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-style', 'italic')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.strike),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration', 'line-through')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.underline),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration', 'underline'),
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration-skip-ink', 'auto'),
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration-skip', 'ink')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				_Utils_ap(
-					$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.underline),
-					$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.strike)),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration', 'line-through underline'),
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration-skip-ink', 'auto'),
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration-skip', 'ink')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textUnitalicized),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-style', 'normal')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textJustify),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'justify')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textJustifyAll),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'justify-all')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textCenter),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'center')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textRight),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'right')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textLeft),
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'left')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Descriptor,
-				'.modal',
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'fixed'),
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '0'),
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'top', '0'),
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'),
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'),
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none')
-					]))
-			]))
-	]);
-var $mdgriffith$elm_ui$Internal$Style$fontVariant = function (_var) {
-	return _List_fromArray(
-		[
-			A2(
-			$mdgriffith$elm_ui$Internal$Style$Class,
-			'.v-' + _var,
-			_List_fromArray(
-				[
-					A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-feature-settings', '\"' + (_var + '\"'))
-				])),
-			A2(
-			$mdgriffith$elm_ui$Internal$Style$Class,
-			'.v-' + (_var + '-off'),
-			_List_fromArray(
-				[
-					A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-feature-settings', '\"' + (_var + '\" 0'))
-				]))
-		]);
-};
-var $mdgriffith$elm_ui$Internal$Style$commonValues = $elm$core$List$concat(
-	_List_fromArray(
-		[
-			A2(
-			$elm$core$List$map,
-			function (x) {
-				return A2(
-					$mdgriffith$elm_ui$Internal$Style$Class,
-					'.border-' + $elm$core$String$fromInt(x),
-					_List_fromArray(
-						[
-							A2(
-							$mdgriffith$elm_ui$Internal$Style$Prop,
-							'border-width',
-							$elm$core$String$fromInt(x) + 'px')
-						]));
-			},
-			A2($elm$core$List$range, 0, 6)),
-			A2(
-			$elm$core$List$map,
-			function (i) {
-				return A2(
-					$mdgriffith$elm_ui$Internal$Style$Class,
-					'.font-size-' + $elm$core$String$fromInt(i),
-					_List_fromArray(
-						[
-							A2(
-							$mdgriffith$elm_ui$Internal$Style$Prop,
-							'font-size',
-							$elm$core$String$fromInt(i) + 'px')
-						]));
-			},
-			A2($elm$core$List$range, 8, 32)),
-			A2(
-			$elm$core$List$map,
-			function (i) {
-				return A2(
-					$mdgriffith$elm_ui$Internal$Style$Class,
-					'.p-' + $elm$core$String$fromInt(i),
-					_List_fromArray(
-						[
-							A2(
-							$mdgriffith$elm_ui$Internal$Style$Prop,
-							'padding',
-							$elm$core$String$fromInt(i) + 'px')
-						]));
-			},
-			A2($elm$core$List$range, 0, 24)),
-			_List_fromArray(
-			[
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Class,
-				'.v-smcp',
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-variant', 'small-caps')
-					])),
-				A2(
-				$mdgriffith$elm_ui$Internal$Style$Class,
-				'.v-smcp-off',
-				_List_fromArray(
-					[
-						A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-variant', 'normal')
-					]))
-			]),
-			$mdgriffith$elm_ui$Internal$Style$fontVariant('zero'),
-			$mdgriffith$elm_ui$Internal$Style$fontVariant('onum'),
-			$mdgriffith$elm_ui$Internal$Style$fontVariant('liga'),
-			$mdgriffith$elm_ui$Internal$Style$fontVariant('dlig'),
-			$mdgriffith$elm_ui$Internal$Style$fontVariant('ordn'),
-			$mdgriffith$elm_ui$Internal$Style$fontVariant('tnum'),
-			$mdgriffith$elm_ui$Internal$Style$fontVariant('afrc'),
-			$mdgriffith$elm_ui$Internal$Style$fontVariant('frac')
-		]));
-var $mdgriffith$elm_ui$Internal$Style$explainer = '\n.explain {\n    border: 6px solid rgb(174, 121, 15) !important;\n}\n.explain > .' + ($mdgriffith$elm_ui$Internal$Style$classes.any + (' {\n    border: 4px dashed rgb(0, 151, 167) !important;\n}\n\n.ctr {\n    border: none !important;\n}\n.explain > .ctr > .' + ($mdgriffith$elm_ui$Internal$Style$classes.any + ' {\n    border: 4px dashed rgb(0, 151, 167) !important;\n}\n\n')));
-var $mdgriffith$elm_ui$Internal$Style$inputTextReset = '\ninput[type="search"],\ninput[type="search"]::-webkit-search-decoration,\ninput[type="search"]::-webkit-search-cancel-button,\ninput[type="search"]::-webkit-search-results-button,\ninput[type="search"]::-webkit-search-results-decoration {\n  -webkit-appearance:none;\n}\n';
-var $mdgriffith$elm_ui$Internal$Style$sliderReset = '\ninput[type=range] {\n  -webkit-appearance: none; \n  background: transparent;\n  position:absolute;\n  left:0;\n  top:0;\n  z-index:10;\n  width: 100%;\n  outline: dashed 1px;\n  height: 100%;\n  opacity: 0;\n}\n';
-var $mdgriffith$elm_ui$Internal$Style$thumbReset = '\ninput[type=range]::-webkit-slider-thumb {\n    -webkit-appearance: none;\n    opacity: 0.5;\n    width: 80px;\n    height: 80px;\n    background-color: black;\n    border:none;\n    border-radius: 5px;\n}\ninput[type=range]::-moz-range-thumb {\n    opacity: 0.5;\n    width: 80px;\n    height: 80px;\n    background-color: black;\n    border:none;\n    border-radius: 5px;\n}\ninput[type=range]::-ms-thumb {\n    opacity: 0.5;\n    width: 80px;\n    height: 80px;\n    background-color: black;\n    border:none;\n    border-radius: 5px;\n}\ninput[type=range][orient=vertical]{\n    writing-mode: bt-lr; /* IE */\n    -webkit-appearance: slider-vertical;  /* WebKit */\n}\n';
-var $mdgriffith$elm_ui$Internal$Style$trackReset = '\ninput[type=range]::-moz-range-track {\n    background: transparent;\n    cursor: pointer;\n}\ninput[type=range]::-ms-track {\n    background: transparent;\n    cursor: pointer;\n}\ninput[type=range]::-webkit-slider-runnable-track {\n    background: transparent;\n    cursor: pointer;\n}\n';
-var $mdgriffith$elm_ui$Internal$Style$overrides = '@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.row) + (' > ' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + (' { flex-basis: auto !important; } ' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.row) + (' > ' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.container) + (' { flex-basis: auto !important; }}' + ($mdgriffith$elm_ui$Internal$Style$inputTextReset + ($mdgriffith$elm_ui$Internal$Style$sliderReset + ($mdgriffith$elm_ui$Internal$Style$trackReset + ($mdgriffith$elm_ui$Internal$Style$thumbReset + $mdgriffith$elm_ui$Internal$Style$explainer)))))))))))))));
-var $elm$core$String$concat = function (strings) {
-	return A2($elm$core$String$join, '', strings);
-};
-var $mdgriffith$elm_ui$Internal$Style$Intermediate = function (a) {
-	return {$: 'Intermediate', a: a};
-};
-var $mdgriffith$elm_ui$Internal$Style$emptyIntermediate = F2(
-	function (selector, closing) {
-		return $mdgriffith$elm_ui$Internal$Style$Intermediate(
-			{closing: closing, others: _List_Nil, props: _List_Nil, selector: selector});
-	});
-var $mdgriffith$elm_ui$Internal$Style$renderRules = F2(
-	function (_v0, rulesToRender) {
-		var parent = _v0.a;
-		var generateIntermediates = F2(
-			function (rule, rendered) {
-				switch (rule.$) {
-					case 'Prop':
-						var name = rule.a;
-						var val = rule.b;
-						return _Utils_update(
-							rendered,
-							{
-								props: A2(
-									$elm$core$List$cons,
-									_Utils_Tuple2(name, val),
-									rendered.props)
-							});
-					case 'Supports':
-						var _v2 = rule.a;
-						var prop = _v2.a;
-						var value = _v2.b;
-						var props = rule.b;
-						return _Utils_update(
-							rendered,
-							{
-								others: A2(
-									$elm$core$List$cons,
-									$mdgriffith$elm_ui$Internal$Style$Intermediate(
-										{closing: '\n}', others: _List_Nil, props: props, selector: '@supports (' + (prop + (':' + (value + (') {' + parent.selector))))}),
-									rendered.others)
-							});
-					case 'Adjacent':
-						var selector = rule.a;
-						var adjRules = rule.b;
-						return _Utils_update(
-							rendered,
-							{
-								others: A2(
-									$elm$core$List$cons,
-									A2(
-										$mdgriffith$elm_ui$Internal$Style$renderRules,
-										A2($mdgriffith$elm_ui$Internal$Style$emptyIntermediate, parent.selector + (' + ' + selector), ''),
-										adjRules),
-									rendered.others)
-							});
-					case 'Child':
-						var child = rule.a;
-						var childRules = rule.b;
-						return _Utils_update(
-							rendered,
-							{
-								others: A2(
-									$elm$core$List$cons,
-									A2(
-										$mdgriffith$elm_ui$Internal$Style$renderRules,
-										A2($mdgriffith$elm_ui$Internal$Style$emptyIntermediate, parent.selector + (' > ' + child), ''),
-										childRules),
-									rendered.others)
-							});
-					case 'AllChildren':
-						var child = rule.a;
-						var childRules = rule.b;
-						return _Utils_update(
-							rendered,
-							{
-								others: A2(
-									$elm$core$List$cons,
-									A2(
-										$mdgriffith$elm_ui$Internal$Style$renderRules,
-										A2($mdgriffith$elm_ui$Internal$Style$emptyIntermediate, parent.selector + (' ' + child), ''),
-										childRules),
-									rendered.others)
-							});
-					case 'Descriptor':
-						var descriptor = rule.a;
-						var descriptorRules = rule.b;
-						return _Utils_update(
-							rendered,
-							{
-								others: A2(
-									$elm$core$List$cons,
-									A2(
-										$mdgriffith$elm_ui$Internal$Style$renderRules,
-										A2(
-											$mdgriffith$elm_ui$Internal$Style$emptyIntermediate,
-											_Utils_ap(parent.selector, descriptor),
-											''),
-										descriptorRules),
-									rendered.others)
-							});
-					default:
-						var batched = rule.a;
-						return _Utils_update(
-							rendered,
-							{
-								others: A2(
-									$elm$core$List$cons,
-									A2(
-										$mdgriffith$elm_ui$Internal$Style$renderRules,
-										A2($mdgriffith$elm_ui$Internal$Style$emptyIntermediate, parent.selector, ''),
-										batched),
-									rendered.others)
-							});
-				}
-			});
-		return $mdgriffith$elm_ui$Internal$Style$Intermediate(
-			A3($elm$core$List$foldr, generateIntermediates, parent, rulesToRender));
-	});
-var $mdgriffith$elm_ui$Internal$Style$renderCompact = function (styleClasses) {
-	var renderValues = function (values) {
-		return $elm$core$String$concat(
-			A2(
-				$elm$core$List$map,
-				function (_v3) {
-					var x = _v3.a;
-					var y = _v3.b;
-					return x + (':' + (y + ';'));
-				},
-				values));
-	};
-	var renderClass = function (rule) {
-		var _v2 = rule.props;
-		if (!_v2.b) {
-			return '';
-		} else {
-			return rule.selector + ('{' + (renderValues(rule.props) + (rule.closing + '}')));
-		}
-	};
-	var renderIntermediate = function (_v0) {
-		var rule = _v0.a;
-		return _Utils_ap(
-			renderClass(rule),
-			$elm$core$String$concat(
-				A2($elm$core$List$map, renderIntermediate, rule.others)));
-	};
-	return $elm$core$String$concat(
-		A2(
-			$elm$core$List$map,
-			renderIntermediate,
-			A3(
-				$elm$core$List$foldr,
-				F2(
-					function (_v1, existing) {
-						var name = _v1.a;
-						var styleRules = _v1.b;
-						return A2(
-							$elm$core$List$cons,
-							A2(
-								$mdgriffith$elm_ui$Internal$Style$renderRules,
-								A2($mdgriffith$elm_ui$Internal$Style$emptyIntermediate, name, ''),
-								styleRules),
-							existing);
-					}),
-				_List_Nil,
-				styleClasses)));
-};
-var $mdgriffith$elm_ui$Internal$Style$rules = _Utils_ap(
-	$mdgriffith$elm_ui$Internal$Style$overrides,
-	$mdgriffith$elm_ui$Internal$Style$renderCompact(
-		_Utils_ap($mdgriffith$elm_ui$Internal$Style$baseSheet, $mdgriffith$elm_ui$Internal$Style$commonValues)));
-var $elm$virtual_dom$VirtualDom$text = _VirtualDom_text;
-var $mdgriffith$elm_ui$Internal$Model$staticRoot = function (opts) {
-	var _v0 = opts.mode;
-	switch (_v0.$) {
-		case 'Layout':
-			return A3(
-				$elm$virtual_dom$VirtualDom$node,
-				'div',
-				_List_Nil,
-				_List_fromArray(
-					[
-						A3(
-						$elm$virtual_dom$VirtualDom$node,
-						'style',
-						_List_Nil,
-						_List_fromArray(
-							[
-								$elm$virtual_dom$VirtualDom$text($mdgriffith$elm_ui$Internal$Style$rules)
-							]))
-					]));
-		case 'NoStaticStyleSheet':
-			return $elm$virtual_dom$VirtualDom$text('');
-		default:
-			return A3(
-				$elm$virtual_dom$VirtualDom$node,
-				'elm-ui-static-rules',
-				_List_fromArray(
-					[
-						A2(
-						$elm$virtual_dom$VirtualDom$property,
-						'rules',
-						$elm$json$Json$Encode$string($mdgriffith$elm_ui$Internal$Style$rules))
-					]),
-				_List_Nil);
-	}
-};
-var $elm$json$Json$Encode$list = F2(
-	function (func, entries) {
-		return _Json_wrap(
-			A3(
-				$elm$core$List$foldl,
-				_Json_addEntry(func),
-				_Json_emptyArray(_Utils_Tuple0),
-				entries));
-	});
-var $elm$json$Json$Encode$object = function (pairs) {
-	return _Json_wrap(
-		A3(
-			$elm$core$List$foldl,
-			F2(
-				function (_v0, obj) {
-					var k = _v0.a;
-					var v = _v0.b;
-					return A3(_Json_addField, k, v, obj);
-				}),
-			_Json_emptyObject(_Utils_Tuple0),
-			pairs));
-};
-var $elm$core$List$any = F2(
-	function (isOkay, list) {
-		any:
-		while (true) {
-			if (!list.b) {
-				return false;
-			} else {
-				var x = list.a;
-				var xs = list.b;
-				if (isOkay(x)) {
-					return true;
-				} else {
-					var $temp$isOkay = isOkay,
-						$temp$list = xs;
-					isOkay = $temp$isOkay;
-					list = $temp$list;
-					continue any;
-				}
-			}
-		}
-	});
-var $mdgriffith$elm_ui$Internal$Model$fontName = function (font) {
-	switch (font.$) {
-		case 'Serif':
-			return 'serif';
-		case 'SansSerif':
-			return 'sans-serif';
-		case 'Monospace':
-			return 'monospace';
-		case 'Typeface':
-			var name = font.a;
-			return '\"' + (name + '\"');
-		case 'ImportFont':
-			var name = font.a;
-			var url = font.b;
-			return '\"' + (name + '\"');
-		default:
-			var name = font.a.name;
-			return '\"' + (name + '\"');
-	}
-};
-var $mdgriffith$elm_ui$Internal$Model$isSmallCaps = function (_var) {
-	switch (_var.$) {
-		case 'VariantActive':
-			var name = _var.a;
-			return name === 'smcp';
-		case 'VariantOff':
-			var name = _var.a;
-			return false;
-		default:
-			var name = _var.a;
-			var index = _var.b;
-			return (name === 'smcp') && (index === 1);
-	}
-};
-var $mdgriffith$elm_ui$Internal$Model$hasSmallCaps = function (typeface) {
-	if (typeface.$ === 'FontWith') {
-		var font = typeface.a;
-		return A2($elm$core$List$any, $mdgriffith$elm_ui$Internal$Model$isSmallCaps, font.variants);
-	} else {
-		return false;
-	}
-};
-var $elm$core$Basics$min = F2(
-	function (x, y) {
-		return (_Utils_cmp(x, y) < 0) ? x : y;
-	});
-var $elm$core$Basics$negate = function (n) {
-	return -n;
-};
-var $mdgriffith$elm_ui$Internal$Model$renderProps = F3(
-	function (force, _v0, existing) {
-		var key = _v0.a;
-		var val = _v0.b;
-		return force ? (existing + ('\n  ' + (key + (': ' + (val + ' !important;'))))) : (existing + ('\n  ' + (key + (': ' + (val + ';')))));
-	});
-var $mdgriffith$elm_ui$Internal$Model$renderStyle = F4(
-	function (options, maybePseudo, selector, props) {
-		if (maybePseudo.$ === 'Nothing') {
-			return _List_fromArray(
-				[
-					selector + ('{' + (A3(
-					$elm$core$List$foldl,
-					$mdgriffith$elm_ui$Internal$Model$renderProps(false),
-					'',
-					props) + '\n}'))
-				]);
-		} else {
-			var pseudo = maybePseudo.a;
-			switch (pseudo.$) {
-				case 'Hover':
-					var _v2 = options.hover;
-					switch (_v2.$) {
-						case 'NoHover':
-							return _List_Nil;
-						case 'ForceHover':
-							return _List_fromArray(
-								[
-									selector + ('-hv {' + (A3(
-									$elm$core$List$foldl,
-									$mdgriffith$elm_ui$Internal$Model$renderProps(true),
-									'',
-									props) + '\n}'))
-								]);
-						default:
-							return _List_fromArray(
-								[
-									selector + ('-hv:hover {' + (A3(
-									$elm$core$List$foldl,
-									$mdgriffith$elm_ui$Internal$Model$renderProps(false),
-									'',
-									props) + '\n}'))
-								]);
-					}
-				case 'Focus':
-					var renderedProps = A3(
-						$elm$core$List$foldl,
-						$mdgriffith$elm_ui$Internal$Model$renderProps(false),
-						'',
-						props);
-					return _List_fromArray(
-						[
-							selector + ('-fs:focus {' + (renderedProps + '\n}')),
-							('.' + ($mdgriffith$elm_ui$Internal$Style$classes.any + (':focus ' + (selector + '-fs  {')))) + (renderedProps + '\n}'),
-							(selector + '-fs:focus-within {') + (renderedProps + '\n}'),
-							('.ui-slide-bar:focus + ' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + (' .focusable-thumb' + (selector + '-fs {')))) + (renderedProps + '\n}')
-						]);
-				default:
-					return _List_fromArray(
-						[
-							selector + ('-act:active {' + (A3(
-							$elm$core$List$foldl,
-							$mdgriffith$elm_ui$Internal$Model$renderProps(false),
-							'',
-							props) + '\n}'))
-						]);
-			}
-		}
-	});
-var $mdgriffith$elm_ui$Internal$Model$renderVariant = function (_var) {
-	switch (_var.$) {
-		case 'VariantActive':
-			var name = _var.a;
-			return '\"' + (name + '\"');
-		case 'VariantOff':
-			var name = _var.a;
-			return '\"' + (name + '\" 0');
-		default:
-			var name = _var.a;
-			var index = _var.b;
-			return '\"' + (name + ('\" ' + $elm$core$String$fromInt(index)));
-	}
-};
-var $mdgriffith$elm_ui$Internal$Model$renderVariants = function (typeface) {
-	if (typeface.$ === 'FontWith') {
-		var font = typeface.a;
-		return $elm$core$Maybe$Just(
-			A2(
-				$elm$core$String$join,
-				', ',
-				A2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$renderVariant, font.variants)));
-	} else {
-		return $elm$core$Maybe$Nothing;
-	}
-};
-var $mdgriffith$elm_ui$Internal$Model$transformValue = function (transform) {
-	switch (transform.$) {
-		case 'Untransformed':
-			return $elm$core$Maybe$Nothing;
-		case 'Moved':
-			var _v1 = transform.a;
-			var x = _v1.a;
-			var y = _v1.b;
-			var z = _v1.c;
-			return $elm$core$Maybe$Just(
-				'translate3d(' + ($elm$core$String$fromFloat(x) + ('px, ' + ($elm$core$String$fromFloat(y) + ('px, ' + ($elm$core$String$fromFloat(z) + 'px)'))))));
-		default:
-			var _v2 = transform.a;
-			var tx = _v2.a;
-			var ty = _v2.b;
-			var tz = _v2.c;
-			var _v3 = transform.b;
-			var sx = _v3.a;
-			var sy = _v3.b;
-			var sz = _v3.c;
-			var _v4 = transform.c;
-			var ox = _v4.a;
-			var oy = _v4.b;
-			var oz = _v4.c;
-			var angle = transform.d;
-			var translate = 'translate3d(' + ($elm$core$String$fromFloat(tx) + ('px, ' + ($elm$core$String$fromFloat(ty) + ('px, ' + ($elm$core$String$fromFloat(tz) + 'px)')))));
-			var scale = 'scale3d(' + ($elm$core$String$fromFloat(sx) + (', ' + ($elm$core$String$fromFloat(sy) + (', ' + ($elm$core$String$fromFloat(sz) + ')')))));
-			var rotate = 'rotate3d(' + ($elm$core$String$fromFloat(ox) + (', ' + ($elm$core$String$fromFloat(oy) + (', ' + ($elm$core$String$fromFloat(oz) + (', ' + ($elm$core$String$fromFloat(angle) + 'rad)')))))));
-			return $elm$core$Maybe$Just(translate + (' ' + (scale + (' ' + rotate))));
-	}
-};
-var $mdgriffith$elm_ui$Internal$Model$renderStyleRule = F3(
-	function (options, rule, maybePseudo) {
-		switch (rule.$) {
-			case 'Style':
-				var selector = rule.a;
-				var props = rule.b;
-				return A4($mdgriffith$elm_ui$Internal$Model$renderStyle, options, maybePseudo, selector, props);
-			case 'Shadows':
-				var name = rule.a;
-				var prop = rule.b;
-				return A4(
-					$mdgriffith$elm_ui$Internal$Model$renderStyle,
-					options,
-					maybePseudo,
-					'.' + name,
-					_List_fromArray(
-						[
-							A2($mdgriffith$elm_ui$Internal$Model$Property, 'box-shadow', prop)
-						]));
-			case 'Transparency':
-				var name = rule.a;
-				var transparency = rule.b;
-				var opacity = A2(
-					$elm$core$Basics$max,
-					0,
-					A2($elm$core$Basics$min, 1, 1 - transparency));
-				return A4(
-					$mdgriffith$elm_ui$Internal$Model$renderStyle,
-					options,
-					maybePseudo,
-					'.' + name,
-					_List_fromArray(
-						[
-							A2(
-							$mdgriffith$elm_ui$Internal$Model$Property,
-							'opacity',
-							$elm$core$String$fromFloat(opacity))
-						]));
-			case 'FontSize':
-				var i = rule.a;
-				return A4(
-					$mdgriffith$elm_ui$Internal$Model$renderStyle,
-					options,
-					maybePseudo,
-					'.font-size-' + $elm$core$String$fromInt(i),
-					_List_fromArray(
-						[
-							A2(
-							$mdgriffith$elm_ui$Internal$Model$Property,
-							'font-size',
-							$elm$core$String$fromInt(i) + 'px')
-						]));
-			case 'FontFamily':
-				var name = rule.a;
-				var typefaces = rule.b;
-				var features = A2(
-					$elm$core$String$join,
-					', ',
-					A2($elm$core$List$filterMap, $mdgriffith$elm_ui$Internal$Model$renderVariants, typefaces));
-				var families = _List_fromArray(
-					[
-						A2(
-						$mdgriffith$elm_ui$Internal$Model$Property,
-						'font-family',
-						A2(
-							$elm$core$String$join,
-							', ',
-							A2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$fontName, typefaces))),
-						A2($mdgriffith$elm_ui$Internal$Model$Property, 'font-feature-settings', features),
-						A2(
-						$mdgriffith$elm_ui$Internal$Model$Property,
-						'font-variant',
-						A2($elm$core$List$any, $mdgriffith$elm_ui$Internal$Model$hasSmallCaps, typefaces) ? 'small-caps' : 'normal')
-					]);
-				return A4($mdgriffith$elm_ui$Internal$Model$renderStyle, options, maybePseudo, '.' + name, families);
-			case 'Single':
-				var _class = rule.a;
-				var prop = rule.b;
-				var val = rule.c;
-				return A4(
-					$mdgriffith$elm_ui$Internal$Model$renderStyle,
-					options,
-					maybePseudo,
-					'.' + _class,
-					_List_fromArray(
-						[
-							A2($mdgriffith$elm_ui$Internal$Model$Property, prop, val)
-						]));
-			case 'Colored':
-				var _class = rule.a;
-				var prop = rule.b;
-				var color = rule.c;
-				return A4(
-					$mdgriffith$elm_ui$Internal$Model$renderStyle,
-					options,
-					maybePseudo,
-					'.' + _class,
-					_List_fromArray(
-						[
-							A2(
-							$mdgriffith$elm_ui$Internal$Model$Property,
-							prop,
-							$mdgriffith$elm_ui$Internal$Model$formatColor(color))
-						]));
-			case 'SpacingStyle':
-				var cls = rule.a;
-				var x = rule.b;
-				var y = rule.c;
-				var yPx = $elm$core$String$fromInt(y) + 'px';
-				var xPx = $elm$core$String$fromInt(x) + 'px';
-				var single = '.' + $mdgriffith$elm_ui$Internal$Style$classes.single;
-				var row = '.' + $mdgriffith$elm_ui$Internal$Style$classes.row;
-				var wrappedRow = '.' + ($mdgriffith$elm_ui$Internal$Style$classes.wrapped + row);
-				var right = '.' + $mdgriffith$elm_ui$Internal$Style$classes.alignRight;
-				var paragraph = '.' + $mdgriffith$elm_ui$Internal$Style$classes.paragraph;
-				var page = '.' + $mdgriffith$elm_ui$Internal$Style$classes.page;
-				var left = '.' + $mdgriffith$elm_ui$Internal$Style$classes.alignLeft;
-				var halfY = $elm$core$String$fromFloat(y / 2) + 'px';
-				var halfX = $elm$core$String$fromFloat(x / 2) + 'px';
-				var column = '.' + $mdgriffith$elm_ui$Internal$Style$classes.column;
-				var _class = '.' + cls;
-				var any = '.' + $mdgriffith$elm_ui$Internal$Style$classes.any;
-				return $elm$core$List$concat(
-					_List_fromArray(
-						[
-							A4(
-							$mdgriffith$elm_ui$Internal$Model$renderStyle,
-							options,
-							maybePseudo,
-							_class + (row + (' > ' + (any + (' + ' + any)))),
-							_List_fromArray(
-								[
-									A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-left', xPx)
-								])),
-							A4(
-							$mdgriffith$elm_ui$Internal$Model$renderStyle,
-							options,
-							maybePseudo,
-							_class + (wrappedRow + (' > ' + any)),
-							_List_fromArray(
-								[
-									A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin', halfY + (' ' + halfX))
-								])),
-							A4(
-							$mdgriffith$elm_ui$Internal$Model$renderStyle,
-							options,
-							maybePseudo,
-							_class + (column + (' > ' + (any + (' + ' + any)))),
-							_List_fromArray(
-								[
-									A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-top', yPx)
-								])),
-							A4(
-							$mdgriffith$elm_ui$Internal$Model$renderStyle,
-							options,
-							maybePseudo,
-							_class + (page + (' > ' + (any + (' + ' + any)))),
-							_List_fromArray(
-								[
-									A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-top', yPx)
-								])),
-							A4(
-							$mdgriffith$elm_ui$Internal$Model$renderStyle,
-							options,
-							maybePseudo,
-							_class + (page + (' > ' + left)),
-							_List_fromArray(
-								[
-									A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-right', xPx)
-								])),
-							A4(
-							$mdgriffith$elm_ui$Internal$Model$renderStyle,
-							options,
-							maybePseudo,
-							_class + (page + (' > ' + right)),
-							_List_fromArray(
-								[
-									A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-left', xPx)
-								])),
-							A4(
-							$mdgriffith$elm_ui$Internal$Model$renderStyle,
-							options,
-							maybePseudo,
-							_Utils_ap(_class, paragraph),
-							_List_fromArray(
-								[
-									A2(
-									$mdgriffith$elm_ui$Internal$Model$Property,
-									'line-height',
-									'calc(1em + ' + ($elm$core$String$fromInt(y) + 'px)'))
-								])),
-							A4(
-							$mdgriffith$elm_ui$Internal$Model$renderStyle,
-							options,
-							maybePseudo,
-							'textarea' + (any + _class),
-							_List_fromArray(
-								[
-									A2(
-									$mdgriffith$elm_ui$Internal$Model$Property,
-									'line-height',
-									'calc(1em + ' + ($elm$core$String$fromInt(y) + 'px)')),
-									A2(
-									$mdgriffith$elm_ui$Internal$Model$Property,
-									'height',
-									'calc(100% + ' + ($elm$core$String$fromInt(y) + 'px)'))
-								])),
-							A4(
-							$mdgriffith$elm_ui$Internal$Model$renderStyle,
-							options,
-							maybePseudo,
-							_class + (paragraph + (' > ' + left)),
-							_List_fromArray(
-								[
-									A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-right', xPx)
-								])),
-							A4(
-							$mdgriffith$elm_ui$Internal$Model$renderStyle,
-							options,
-							maybePseudo,
-							_class + (paragraph + (' > ' + right)),
-							_List_fromArray(
-								[
-									A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-left', xPx)
-								])),
-							A4(
-							$mdgriffith$elm_ui$Internal$Model$renderStyle,
-							options,
-							maybePseudo,
-							_class + (paragraph + '::after'),
-							_List_fromArray(
-								[
-									A2($mdgriffith$elm_ui$Internal$Model$Property, 'content', '\'\''),
-									A2($mdgriffith$elm_ui$Internal$Model$Property, 'display', 'block'),
-									A2($mdgriffith$elm_ui$Internal$Model$Property, 'height', '0'),
-									A2($mdgriffith$elm_ui$Internal$Model$Property, 'width', '0'),
-									A2(
-									$mdgriffith$elm_ui$Internal$Model$Property,
-									'margin-top',
-									$elm$core$String$fromInt((-1) * ((y / 2) | 0)) + 'px')
-								])),
-							A4(
-							$mdgriffith$elm_ui$Internal$Model$renderStyle,
-							options,
-							maybePseudo,
-							_class + (paragraph + '::before'),
-							_List_fromArray(
-								[
-									A2($mdgriffith$elm_ui$Internal$Model$Property, 'content', '\'\''),
-									A2($mdgriffith$elm_ui$Internal$Model$Property, 'display', 'block'),
-									A2($mdgriffith$elm_ui$Internal$Model$Property, 'height', '0'),
-									A2($mdgriffith$elm_ui$Internal$Model$Property, 'width', '0'),
-									A2(
-									$mdgriffith$elm_ui$Internal$Model$Property,
-									'margin-bottom',
-									$elm$core$String$fromInt((-1) * ((y / 2) | 0)) + 'px')
-								]))
-						]));
-			case 'PaddingStyle':
-				var cls = rule.a;
-				var top = rule.b;
-				var right = rule.c;
-				var bottom = rule.d;
-				var left = rule.e;
-				var _class = '.' + cls;
-				return A4(
-					$mdgriffith$elm_ui$Internal$Model$renderStyle,
-					options,
-					maybePseudo,
-					_class,
-					_List_fromArray(
-						[
-							A2(
-							$mdgriffith$elm_ui$Internal$Model$Property,
-							'padding',
-							$elm$core$String$fromFloat(top) + ('px ' + ($elm$core$String$fromFloat(right) + ('px ' + ($elm$core$String$fromFloat(bottom) + ('px ' + ($elm$core$String$fromFloat(left) + 'px')))))))
-						]));
-			case 'BorderWidth':
-				var cls = rule.a;
-				var top = rule.b;
-				var right = rule.c;
-				var bottom = rule.d;
-				var left = rule.e;
-				var _class = '.' + cls;
-				return A4(
-					$mdgriffith$elm_ui$Internal$Model$renderStyle,
-					options,
-					maybePseudo,
-					_class,
-					_List_fromArray(
-						[
-							A2(
-							$mdgriffith$elm_ui$Internal$Model$Property,
-							'border-width',
-							$elm$core$String$fromInt(top) + ('px ' + ($elm$core$String$fromInt(right) + ('px ' + ($elm$core$String$fromInt(bottom) + ('px ' + ($elm$core$String$fromInt(left) + 'px')))))))
-						]));
-			case 'GridTemplateStyle':
-				var template = rule.a;
-				var toGridLengthHelper = F3(
-					function (minimum, maximum, x) {
-						toGridLengthHelper:
-						while (true) {
-							switch (x.$) {
-								case 'Px':
-									var px = x.a;
-									return $elm$core$String$fromInt(px) + 'px';
-								case 'Content':
-									var _v2 = _Utils_Tuple2(minimum, maximum);
-									if (_v2.a.$ === 'Nothing') {
-										if (_v2.b.$ === 'Nothing') {
-											var _v3 = _v2.a;
-											var _v4 = _v2.b;
-											return 'max-content';
-										} else {
-											var _v6 = _v2.a;
-											var maxSize = _v2.b.a;
-											return 'minmax(max-content, ' + ($elm$core$String$fromInt(maxSize) + 'px)');
-										}
-									} else {
-										if (_v2.b.$ === 'Nothing') {
-											var minSize = _v2.a.a;
-											var _v5 = _v2.b;
-											return 'minmax(' + ($elm$core$String$fromInt(minSize) + ('px, ' + 'max-content)'));
-										} else {
-											var minSize = _v2.a.a;
-											var maxSize = _v2.b.a;
-											return 'minmax(' + ($elm$core$String$fromInt(minSize) + ('px, ' + ($elm$core$String$fromInt(maxSize) + 'px)')));
-										}
-									}
-								case 'Fill':
-									var i = x.a;
-									var _v7 = _Utils_Tuple2(minimum, maximum);
-									if (_v7.a.$ === 'Nothing') {
-										if (_v7.b.$ === 'Nothing') {
-											var _v8 = _v7.a;
-											var _v9 = _v7.b;
-											return $elm$core$String$fromInt(i) + 'fr';
-										} else {
-											var _v11 = _v7.a;
-											var maxSize = _v7.b.a;
-											return 'minmax(max-content, ' + ($elm$core$String$fromInt(maxSize) + 'px)');
-										}
-									} else {
-										if (_v7.b.$ === 'Nothing') {
-											var minSize = _v7.a.a;
-											var _v10 = _v7.b;
-											return 'minmax(' + ($elm$core$String$fromInt(minSize) + ('px, ' + ($elm$core$String$fromInt(i) + ('fr' + 'fr)'))));
-										} else {
-											var minSize = _v7.a.a;
-											var maxSize = _v7.b.a;
-											return 'minmax(' + ($elm$core$String$fromInt(minSize) + ('px, ' + ($elm$core$String$fromInt(maxSize) + 'px)')));
-										}
-									}
-								case 'Min':
-									var m = x.a;
-									var len = x.b;
-									var $temp$minimum = $elm$core$Maybe$Just(m),
-										$temp$maximum = maximum,
-										$temp$x = len;
-									minimum = $temp$minimum;
-									maximum = $temp$maximum;
-									x = $temp$x;
-									continue toGridLengthHelper;
-								default:
-									var m = x.a;
-									var len = x.b;
-									var $temp$minimum = minimum,
-										$temp$maximum = $elm$core$Maybe$Just(m),
-										$temp$x = len;
-									minimum = $temp$minimum;
-									maximum = $temp$maximum;
-									x = $temp$x;
-									continue toGridLengthHelper;
-							}
-						}
-					});
-				var toGridLength = function (x) {
-					return A3(toGridLengthHelper, $elm$core$Maybe$Nothing, $elm$core$Maybe$Nothing, x);
-				};
-				var xSpacing = toGridLength(template.spacing.a);
-				var ySpacing = toGridLength(template.spacing.b);
-				var rows = function (x) {
-					return 'grid-template-rows: ' + (x + ';');
-				}(
-					A2(
-						$elm$core$String$join,
-						' ',
-						A2($elm$core$List$map, toGridLength, template.rows)));
-				var msRows = function (x) {
-					return '-ms-grid-rows: ' + (x + ';');
-				}(
-					A2(
-						$elm$core$String$join,
-						ySpacing,
-						A2($elm$core$List$map, toGridLength, template.columns)));
-				var msColumns = function (x) {
-					return '-ms-grid-columns: ' + (x + ';');
-				}(
-					A2(
-						$elm$core$String$join,
-						ySpacing,
-						A2($elm$core$List$map, toGridLength, template.columns)));
-				var gapY = 'grid-row-gap:' + (toGridLength(template.spacing.b) + ';');
-				var gapX = 'grid-column-gap:' + (toGridLength(template.spacing.a) + ';');
-				var columns = function (x) {
-					return 'grid-template-columns: ' + (x + ';');
-				}(
-					A2(
-						$elm$core$String$join,
-						' ',
-						A2($elm$core$List$map, toGridLength, template.columns)));
-				var _class = '.grid-rows-' + (A2(
-					$elm$core$String$join,
-					'-',
-					A2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$lengthClassName, template.rows)) + ('-cols-' + (A2(
-					$elm$core$String$join,
-					'-',
-					A2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$lengthClassName, template.columns)) + ('-space-x-' + ($mdgriffith$elm_ui$Internal$Model$lengthClassName(template.spacing.a) + ('-space-y-' + $mdgriffith$elm_ui$Internal$Model$lengthClassName(template.spacing.b)))))));
-				var modernGrid = _class + ('{' + (columns + (rows + (gapX + (gapY + '}')))));
-				var supports = '@supports (display:grid) {' + (modernGrid + '}');
-				var base = _class + ('{' + (msColumns + (msRows + '}')));
-				return _List_fromArray(
-					[base, supports]);
-			case 'GridPosition':
-				var position = rule.a;
-				var msPosition = A2(
-					$elm$core$String$join,
-					' ',
-					_List_fromArray(
-						[
-							'-ms-grid-row: ' + ($elm$core$String$fromInt(position.row) + ';'),
-							'-ms-grid-row-span: ' + ($elm$core$String$fromInt(position.height) + ';'),
-							'-ms-grid-column: ' + ($elm$core$String$fromInt(position.col) + ';'),
-							'-ms-grid-column-span: ' + ($elm$core$String$fromInt(position.width) + ';')
-						]));
-				var modernPosition = A2(
-					$elm$core$String$join,
-					' ',
-					_List_fromArray(
-						[
-							'grid-row: ' + ($elm$core$String$fromInt(position.row) + (' / ' + ($elm$core$String$fromInt(position.row + position.height) + ';'))),
-							'grid-column: ' + ($elm$core$String$fromInt(position.col) + (' / ' + ($elm$core$String$fromInt(position.col + position.width) + ';')))
-						]));
-				var _class = '.grid-pos-' + ($elm$core$String$fromInt(position.row) + ('-' + ($elm$core$String$fromInt(position.col) + ('-' + ($elm$core$String$fromInt(position.width) + ('-' + $elm$core$String$fromInt(position.height)))))));
-				var modernGrid = _class + ('{' + (modernPosition + '}'));
-				var supports = '@supports (display:grid) {' + (modernGrid + '}');
-				var base = _class + ('{' + (msPosition + '}'));
-				return _List_fromArray(
-					[base, supports]);
-			case 'PseudoSelector':
-				var _class = rule.a;
-				var styles = rule.b;
-				var renderPseudoRule = function (style) {
-					return A3(
-						$mdgriffith$elm_ui$Internal$Model$renderStyleRule,
-						options,
-						style,
-						$elm$core$Maybe$Just(_class));
-				};
-				return A2($elm$core$List$concatMap, renderPseudoRule, styles);
-			default:
-				var transform = rule.a;
-				var val = $mdgriffith$elm_ui$Internal$Model$transformValue(transform);
-				var _class = $mdgriffith$elm_ui$Internal$Model$transformClass(transform);
-				var _v12 = _Utils_Tuple2(_class, val);
-				if ((_v12.a.$ === 'Just') && (_v12.b.$ === 'Just')) {
-					var cls = _v12.a.a;
-					var v = _v12.b.a;
-					return A4(
-						$mdgriffith$elm_ui$Internal$Model$renderStyle,
-						options,
-						maybePseudo,
-						'.' + cls,
-						_List_fromArray(
-							[
-								A2($mdgriffith$elm_ui$Internal$Model$Property, 'transform', v)
-							]));
-				} else {
-					return _List_Nil;
-				}
-		}
-	});
-var $mdgriffith$elm_ui$Internal$Model$encodeStyles = F2(
-	function (options, stylesheet) {
-		return $elm$json$Json$Encode$object(
-			A2(
-				$elm$core$List$map,
-				function (style) {
-					var styled = A3($mdgriffith$elm_ui$Internal$Model$renderStyleRule, options, style, $elm$core$Maybe$Nothing);
-					return _Utils_Tuple2(
-						$mdgriffith$elm_ui$Internal$Model$getStyleName(style),
-						A2($elm$json$Json$Encode$list, $elm$json$Json$Encode$string, styled));
-				},
-				stylesheet));
-	});
-var $mdgriffith$elm_ui$Internal$Model$bracket = F2(
-	function (selector, rules) {
-		var renderPair = function (_v0) {
-			var name = _v0.a;
-			var val = _v0.b;
-			return name + (': ' + (val + ';'));
-		};
-		return selector + (' {' + (A2(
-			$elm$core$String$join,
-			'',
-			A2($elm$core$List$map, renderPair, rules)) + '}'));
-	});
-var $mdgriffith$elm_ui$Internal$Model$fontRule = F3(
-	function (name, modifier, _v0) {
-		var parentAdj = _v0.a;
-		var textAdjustment = _v0.b;
-		return _List_fromArray(
-			[
-				A2($mdgriffith$elm_ui$Internal$Model$bracket, '.' + (name + ('.' + (modifier + (', ' + ('.' + (name + (' .' + modifier))))))), parentAdj),
-				A2($mdgriffith$elm_ui$Internal$Model$bracket, '.' + (name + ('.' + (modifier + ('> .' + ($mdgriffith$elm_ui$Internal$Style$classes.text + (', .' + (name + (' .' + (modifier + (' > .' + $mdgriffith$elm_ui$Internal$Style$classes.text)))))))))), textAdjustment)
-			]);
-	});
-var $mdgriffith$elm_ui$Internal$Model$renderFontAdjustmentRule = F3(
-	function (fontToAdjust, _v0, otherFontName) {
-		var full = _v0.a;
-		var capital = _v0.b;
-		var name = _Utils_eq(fontToAdjust, otherFontName) ? fontToAdjust : (otherFontName + (' .' + fontToAdjust));
-		return A2(
-			$elm$core$String$join,
-			' ',
-			_Utils_ap(
-				A3($mdgriffith$elm_ui$Internal$Model$fontRule, name, $mdgriffith$elm_ui$Internal$Style$classes.sizeByCapital, capital),
-				A3($mdgriffith$elm_ui$Internal$Model$fontRule, name, $mdgriffith$elm_ui$Internal$Style$classes.fullSize, full)));
-	});
-var $mdgriffith$elm_ui$Internal$Model$renderNullAdjustmentRule = F2(
-	function (fontToAdjust, otherFontName) {
-		var name = _Utils_eq(fontToAdjust, otherFontName) ? fontToAdjust : (otherFontName + (' .' + fontToAdjust));
-		return A2(
-			$elm$core$String$join,
-			' ',
-			_List_fromArray(
-				[
-					A2(
-					$mdgriffith$elm_ui$Internal$Model$bracket,
-					'.' + (name + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.sizeByCapital + (', ' + ('.' + (name + (' .' + $mdgriffith$elm_ui$Internal$Style$classes.sizeByCapital))))))),
-					_List_fromArray(
-						[
-							_Utils_Tuple2('line-height', '1')
-						])),
-					A2(
-					$mdgriffith$elm_ui$Internal$Model$bracket,
-					'.' + (name + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.sizeByCapital + ('> .' + ($mdgriffith$elm_ui$Internal$Style$classes.text + (', .' + (name + (' .' + ($mdgriffith$elm_ui$Internal$Style$classes.sizeByCapital + (' > .' + $mdgriffith$elm_ui$Internal$Style$classes.text)))))))))),
-					_List_fromArray(
-						[
-							_Utils_Tuple2('vertical-align', '0'),
-							_Utils_Tuple2('line-height', '1')
-						]))
-				]));
-	});
-var $mdgriffith$elm_ui$Internal$Model$adjust = F3(
-	function (size, height, vertical) {
-		return {height: height / size, size: size, vertical: vertical};
-	});
-var $elm$core$List$filter = F2(
-	function (isGood, list) {
-		return A3(
-			$elm$core$List$foldr,
-			F2(
-				function (x, xs) {
-					return isGood(x) ? A2($elm$core$List$cons, x, xs) : xs;
-				}),
-			_List_Nil,
-			list);
-	});
-var $elm$core$List$maximum = function (list) {
-	if (list.b) {
-		var x = list.a;
-		var xs = list.b;
-		return $elm$core$Maybe$Just(
-			A3($elm$core$List$foldl, $elm$core$Basics$max, x, xs));
-	} else {
-		return $elm$core$Maybe$Nothing;
-	}
-};
-var $elm$core$List$minimum = function (list) {
-	if (list.b) {
-		var x = list.a;
-		var xs = list.b;
-		return $elm$core$Maybe$Just(
-			A3($elm$core$List$foldl, $elm$core$Basics$min, x, xs));
-	} else {
-		return $elm$core$Maybe$Nothing;
-	}
-};
-var $elm$core$Basics$neq = _Utils_notEqual;
-var $mdgriffith$elm_ui$Internal$Model$convertAdjustment = function (adjustment) {
-	var lines = _List_fromArray(
-		[adjustment.capital, adjustment.baseline, adjustment.descender, adjustment.lowercase]);
-	var lineHeight = 1.5;
-	var normalDescender = (lineHeight - 1) / 2;
-	var oldMiddle = lineHeight / 2;
-	var descender = A2(
-		$elm$core$Maybe$withDefault,
-		adjustment.descender,
-		$elm$core$List$minimum(lines));
-	var newBaseline = A2(
-		$elm$core$Maybe$withDefault,
-		adjustment.baseline,
-		$elm$core$List$minimum(
-			A2(
-				$elm$core$List$filter,
-				function (x) {
-					return !_Utils_eq(x, descender);
-				},
-				lines)));
-	var base = lineHeight;
-	var ascender = A2(
-		$elm$core$Maybe$withDefault,
-		adjustment.capital,
-		$elm$core$List$maximum(lines));
-	var capitalSize = 1 / (ascender - newBaseline);
-	var capitalVertical = 1 - ascender;
-	var fullSize = 1 / (ascender - descender);
-	var fullVertical = 1 - ascender;
-	var newCapitalMiddle = ((ascender - newBaseline) / 2) + newBaseline;
-	var newFullMiddle = ((ascender - descender) / 2) + descender;
-	return {
-		capital: A3($mdgriffith$elm_ui$Internal$Model$adjust, capitalSize, ascender - newBaseline, capitalVertical),
-		full: A3($mdgriffith$elm_ui$Internal$Model$adjust, fullSize, ascender - descender, fullVertical)
-	};
-};
-var $mdgriffith$elm_ui$Internal$Model$fontAdjustmentRules = function (converted) {
-	return _Utils_Tuple2(
-		_List_fromArray(
-			[
-				_Utils_Tuple2('display', 'block')
-			]),
-		_List_fromArray(
-			[
-				_Utils_Tuple2('display', 'inline-block'),
-				_Utils_Tuple2(
-				'line-height',
-				$elm$core$String$fromFloat(converted.height)),
-				_Utils_Tuple2(
-				'vertical-align',
-				$elm$core$String$fromFloat(converted.vertical) + 'em'),
-				_Utils_Tuple2(
-				'font-size',
-				$elm$core$String$fromFloat(converted.size) + 'em')
-			]));
-};
-var $mdgriffith$elm_ui$Internal$Model$typefaceAdjustment = function (typefaces) {
-	return A3(
-		$elm$core$List$foldl,
-		F2(
-			function (face, found) {
-				if (found.$ === 'Nothing') {
-					if (face.$ === 'FontWith') {
-						var _with = face.a;
-						var _v2 = _with.adjustment;
-						if (_v2.$ === 'Nothing') {
-							return found;
-						} else {
-							var adjustment = _v2.a;
-							return $elm$core$Maybe$Just(
-								_Utils_Tuple2(
-									$mdgriffith$elm_ui$Internal$Model$fontAdjustmentRules(
-										function ($) {
-											return $.full;
-										}(
-											$mdgriffith$elm_ui$Internal$Model$convertAdjustment(adjustment))),
-									$mdgriffith$elm_ui$Internal$Model$fontAdjustmentRules(
-										function ($) {
-											return $.capital;
-										}(
-											$mdgriffith$elm_ui$Internal$Model$convertAdjustment(adjustment)))));
-						}
-					} else {
-						return found;
-					}
-				} else {
-					return found;
-				}
-			}),
-		$elm$core$Maybe$Nothing,
-		typefaces);
-};
-var $mdgriffith$elm_ui$Internal$Model$renderTopLevelValues = function (rules) {
-	var withImport = function (font) {
-		if (font.$ === 'ImportFont') {
-			var url = font.b;
-			return $elm$core$Maybe$Just('@import url(\'' + (url + '\');'));
-		} else {
-			return $elm$core$Maybe$Nothing;
-		}
-	};
-	var fontImports = function (_v2) {
-		var name = _v2.a;
-		var typefaces = _v2.b;
-		var imports = A2(
-			$elm$core$String$join,
-			'\n',
-			A2($elm$core$List$filterMap, withImport, typefaces));
-		return imports;
-	};
-	var allNames = A2($elm$core$List$map, $elm$core$Tuple$first, rules);
-	var fontAdjustments = function (_v1) {
-		var name = _v1.a;
-		var typefaces = _v1.b;
-		var _v0 = $mdgriffith$elm_ui$Internal$Model$typefaceAdjustment(typefaces);
-		if (_v0.$ === 'Nothing') {
-			return A2(
-				$elm$core$String$join,
-				'',
-				A2(
-					$elm$core$List$map,
-					$mdgriffith$elm_ui$Internal$Model$renderNullAdjustmentRule(name),
-					allNames));
-		} else {
-			var adjustment = _v0.a;
-			return A2(
-				$elm$core$String$join,
-				'',
-				A2(
-					$elm$core$List$map,
-					A2($mdgriffith$elm_ui$Internal$Model$renderFontAdjustmentRule, name, adjustment),
-					allNames));
-		}
-	};
-	return _Utils_ap(
-		A2(
-			$elm$core$String$join,
-			'\n',
-			A2($elm$core$List$map, fontImports, rules)),
-		A2(
-			$elm$core$String$join,
-			'\n',
-			A2($elm$core$List$map, fontAdjustments, rules)));
-};
-var $mdgriffith$elm_ui$Internal$Model$topLevelValue = function (rule) {
-	if (rule.$ === 'FontFamily') {
-		var name = rule.a;
-		var typefaces = rule.b;
-		return $elm$core$Maybe$Just(
-			_Utils_Tuple2(name, typefaces));
-	} else {
-		return $elm$core$Maybe$Nothing;
-	}
-};
-var $mdgriffith$elm_ui$Internal$Model$toStyleSheetString = F2(
-	function (options, stylesheet) {
-		var combine = F2(
-			function (style, rendered) {
-				return {
-					rules: _Utils_ap(
-						rendered.rules,
-						A3($mdgriffith$elm_ui$Internal$Model$renderStyleRule, options, style, $elm$core$Maybe$Nothing)),
-					topLevel: function () {
-						var _v1 = $mdgriffith$elm_ui$Internal$Model$topLevelValue(style);
-						if (_v1.$ === 'Nothing') {
-							return rendered.topLevel;
-						} else {
-							var topLevel = _v1.a;
-							return A2($elm$core$List$cons, topLevel, rendered.topLevel);
-						}
-					}()
-				};
-			});
-		var _v0 = A3(
-			$elm$core$List$foldl,
-			combine,
-			{rules: _List_Nil, topLevel: _List_Nil},
-			stylesheet);
-		var topLevel = _v0.topLevel;
-		var rules = _v0.rules;
-		return _Utils_ap(
-			$mdgriffith$elm_ui$Internal$Model$renderTopLevelValues(topLevel),
-			$elm$core$String$concat(rules));
-	});
-var $mdgriffith$elm_ui$Internal$Model$toStyleSheet = F2(
-	function (options, styleSheet) {
-		var _v0 = options.mode;
-		switch (_v0.$) {
-			case 'Layout':
-				return A3(
-					$elm$virtual_dom$VirtualDom$node,
-					'div',
-					_List_Nil,
-					_List_fromArray(
-						[
-							A3(
-							$elm$virtual_dom$VirtualDom$node,
-							'style',
-							_List_Nil,
-							_List_fromArray(
-								[
-									$elm$virtual_dom$VirtualDom$text(
-									A2($mdgriffith$elm_ui$Internal$Model$toStyleSheetString, options, styleSheet))
-								]))
-						]));
-			case 'NoStaticStyleSheet':
-				return A3(
-					$elm$virtual_dom$VirtualDom$node,
-					'div',
-					_List_Nil,
-					_List_fromArray(
-						[
-							A3(
-							$elm$virtual_dom$VirtualDom$node,
-							'style',
-							_List_Nil,
-							_List_fromArray(
-								[
-									$elm$virtual_dom$VirtualDom$text(
-									A2($mdgriffith$elm_ui$Internal$Model$toStyleSheetString, options, styleSheet))
-								]))
-						]));
-			default:
-				return A3(
-					$elm$virtual_dom$VirtualDom$node,
-					'elm-ui-rules',
-					_List_fromArray(
-						[
-							A2(
-							$elm$virtual_dom$VirtualDom$property,
-							'rules',
-							A2($mdgriffith$elm_ui$Internal$Model$encodeStyles, options, styleSheet))
-						]),
-					_List_Nil);
-		}
-	});
-var $mdgriffith$elm_ui$Internal$Model$embedKeyed = F4(
-	function (_static, opts, styles, children) {
-		var dynamicStyleSheet = A2(
-			$mdgriffith$elm_ui$Internal$Model$toStyleSheet,
-			opts,
-			A3(
-				$elm$core$List$foldl,
-				$mdgriffith$elm_ui$Internal$Model$reduceStyles,
-				_Utils_Tuple2(
-					$elm$core$Set$empty,
-					$mdgriffith$elm_ui$Internal$Model$renderFocusStyle(opts.focus)),
-				styles).b);
-		return _static ? A2(
-			$elm$core$List$cons,
-			_Utils_Tuple2(
-				'static-stylesheet',
-				$mdgriffith$elm_ui$Internal$Model$staticRoot(opts)),
-			A2(
-				$elm$core$List$cons,
-				_Utils_Tuple2('dynamic-stylesheet', dynamicStyleSheet),
-				children)) : A2(
-			$elm$core$List$cons,
-			_Utils_Tuple2('dynamic-stylesheet', dynamicStyleSheet),
-			children);
-	});
-var $mdgriffith$elm_ui$Internal$Model$embedWith = F4(
-	function (_static, opts, styles, children) {
-		var dynamicStyleSheet = A2(
-			$mdgriffith$elm_ui$Internal$Model$toStyleSheet,
-			opts,
-			A3(
-				$elm$core$List$foldl,
-				$mdgriffith$elm_ui$Internal$Model$reduceStyles,
-				_Utils_Tuple2(
-					$elm$core$Set$empty,
-					$mdgriffith$elm_ui$Internal$Model$renderFocusStyle(opts.focus)),
-				styles).b);
-		return _static ? A2(
-			$elm$core$List$cons,
-			$mdgriffith$elm_ui$Internal$Model$staticRoot(opts),
-			A2($elm$core$List$cons, dynamicStyleSheet, children)) : A2($elm$core$List$cons, dynamicStyleSheet, children);
-	});
-var $mdgriffith$elm_ui$Internal$Flag$heightBetween = $mdgriffith$elm_ui$Internal$Flag$flag(45);
-var $mdgriffith$elm_ui$Internal$Flag$heightFill = $mdgriffith$elm_ui$Internal$Flag$flag(37);
-var $elm$virtual_dom$VirtualDom$keyedNode = function (tag) {
-	return _VirtualDom_keyedNode(
-		_VirtualDom_noScript(tag));
-};
-var $elm$core$Basics$not = _Basics_not;
-var $elm$html$Html$p = _VirtualDom_node('p');
-var $elm$core$Bitwise$and = _Bitwise_and;
-var $mdgriffith$elm_ui$Internal$Flag$present = F2(
-	function (myFlag, _v0) {
-		var fieldOne = _v0.a;
-		var fieldTwo = _v0.b;
-		if (myFlag.$ === 'Flag') {
-			var first = myFlag.a;
-			return _Utils_eq(first & fieldOne, first);
-		} else {
-			var second = myFlag.a;
-			return _Utils_eq(second & fieldTwo, second);
-		}
-	});
-var $elm$html$Html$s = _VirtualDom_node('s');
-var $elm$html$Html$u = _VirtualDom_node('u');
-var $mdgriffith$elm_ui$Internal$Flag$widthBetween = $mdgriffith$elm_ui$Internal$Flag$flag(44);
-var $mdgriffith$elm_ui$Internal$Flag$widthFill = $mdgriffith$elm_ui$Internal$Flag$flag(39);
-var $mdgriffith$elm_ui$Internal$Model$finalizeNode = F6(
-	function (has, node, attributes, children, embedMode, parentContext) {
-		var createNode = F2(
-			function (nodeName, attrs) {
-				if (children.$ === 'Keyed') {
-					var keyed = children.a;
-					return A3(
-						$elm$virtual_dom$VirtualDom$keyedNode,
-						nodeName,
-						attrs,
-						function () {
-							switch (embedMode.$) {
-								case 'NoStyleSheet':
-									return keyed;
-								case 'OnlyDynamic':
-									var opts = embedMode.a;
-									var styles = embedMode.b;
-									return A4($mdgriffith$elm_ui$Internal$Model$embedKeyed, false, opts, styles, keyed);
-								default:
-									var opts = embedMode.a;
-									var styles = embedMode.b;
-									return A4($mdgriffith$elm_ui$Internal$Model$embedKeyed, true, opts, styles, keyed);
-							}
-						}());
-				} else {
-					var unkeyed = children.a;
-					return A2(
-						function () {
-							switch (nodeName) {
-								case 'div':
-									return $elm$html$Html$div;
-								case 'p':
-									return $elm$html$Html$p;
-								default:
-									return $elm$virtual_dom$VirtualDom$node(nodeName);
-							}
-						}(),
-						attrs,
-						function () {
-							switch (embedMode.$) {
-								case 'NoStyleSheet':
-									return unkeyed;
-								case 'OnlyDynamic':
-									var opts = embedMode.a;
-									var styles = embedMode.b;
-									return A4($mdgriffith$elm_ui$Internal$Model$embedWith, false, opts, styles, unkeyed);
-								default:
-									var opts = embedMode.a;
-									var styles = embedMode.b;
-									return A4($mdgriffith$elm_ui$Internal$Model$embedWith, true, opts, styles, unkeyed);
-							}
-						}());
-				}
-			});
-		var html = function () {
-			switch (node.$) {
-				case 'Generic':
-					return A2(createNode, 'div', attributes);
-				case 'NodeName':
-					var nodeName = node.a;
-					return A2(createNode, nodeName, attributes);
-				default:
-					var nodeName = node.a;
-					var internal = node.b;
-					return A3(
-						$elm$virtual_dom$VirtualDom$node,
-						nodeName,
-						attributes,
-						_List_fromArray(
-							[
-								A2(
-								createNode,
-								internal,
-								_List_fromArray(
-									[
-										$elm$html$Html$Attributes$class($mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.single))
-									]))
-							]));
-			}
-		}();
-		switch (parentContext.$) {
-			case 'AsRow':
-				return (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$widthFill, has) && (!A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$widthBetween, has))) ? html : (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$alignRight, has) ? A2(
-					$elm$html$Html$u,
-					_List_fromArray(
-						[
-							$elm$html$Html$Attributes$class(
-							A2(
-								$elm$core$String$join,
-								' ',
-								_List_fromArray(
-									[$mdgriffith$elm_ui$Internal$Style$classes.any, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.container, $mdgriffith$elm_ui$Internal$Style$classes.contentCenterY, $mdgriffith$elm_ui$Internal$Style$classes.alignContainerRight])))
-						]),
-					_List_fromArray(
-						[html])) : (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$centerX, has) ? A2(
-					$elm$html$Html$s,
-					_List_fromArray(
-						[
-							$elm$html$Html$Attributes$class(
-							A2(
-								$elm$core$String$join,
-								' ',
-								_List_fromArray(
-									[$mdgriffith$elm_ui$Internal$Style$classes.any, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.container, $mdgriffith$elm_ui$Internal$Style$classes.contentCenterY, $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX])))
-						]),
-					_List_fromArray(
-						[html])) : html));
-			case 'AsColumn':
-				return (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$heightFill, has) && (!A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$heightBetween, has))) ? html : (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$centerY, has) ? A2(
-					$elm$html$Html$s,
-					_List_fromArray(
-						[
-							$elm$html$Html$Attributes$class(
-							A2(
-								$elm$core$String$join,
-								' ',
-								_List_fromArray(
-									[$mdgriffith$elm_ui$Internal$Style$classes.any, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.container, $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY])))
-						]),
-					_List_fromArray(
-						[html])) : (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$alignBottom, has) ? A2(
-					$elm$html$Html$u,
-					_List_fromArray(
-						[
-							$elm$html$Html$Attributes$class(
-							A2(
-								$elm$core$String$join,
-								' ',
-								_List_fromArray(
-									[$mdgriffith$elm_ui$Internal$Style$classes.any, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.container, $mdgriffith$elm_ui$Internal$Style$classes.alignContainerBottom])))
-						]),
-					_List_fromArray(
-						[html])) : html));
-			default:
-				return html;
-		}
-	});
-var $elm$core$List$isEmpty = function (xs) {
-	if (!xs.b) {
-		return true;
-	} else {
-		return false;
-	}
-};
-var $elm$html$Html$text = $elm$virtual_dom$VirtualDom$text;
-var $mdgriffith$elm_ui$Internal$Model$textElementClasses = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.text + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.widthContent + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.heightContent)))));
-var $mdgriffith$elm_ui$Internal$Model$textElement = function (str) {
-	return A2(
-		$elm$html$Html$div,
-		_List_fromArray(
-			[
-				$elm$html$Html$Attributes$class($mdgriffith$elm_ui$Internal$Model$textElementClasses)
-			]),
-		_List_fromArray(
-			[
-				$elm$html$Html$text(str)
-			]));
-};
-var $mdgriffith$elm_ui$Internal$Model$textElementFillClasses = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.text + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.widthFill + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.heightFill)))));
-var $mdgriffith$elm_ui$Internal$Model$textElementFill = function (str) {
-	return A2(
-		$elm$html$Html$div,
-		_List_fromArray(
-			[
-				$elm$html$Html$Attributes$class($mdgriffith$elm_ui$Internal$Model$textElementFillClasses)
-			]),
-		_List_fromArray(
-			[
-				$elm$html$Html$text(str)
-			]));
-};
-var $mdgriffith$elm_ui$Internal$Model$createElement = F3(
-	function (context, children, rendered) {
-		var gatherKeyed = F2(
-			function (_v8, _v9) {
-				var key = _v8.a;
-				var child = _v8.b;
-				var htmls = _v9.a;
-				var existingStyles = _v9.b;
-				switch (child.$) {
-					case 'Unstyled':
-						var html = child.a;
-						return _Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asParagraph) ? _Utils_Tuple2(
-							A2(
-								$elm$core$List$cons,
-								_Utils_Tuple2(
-									key,
-									html(context)),
-								htmls),
-							existingStyles) : _Utils_Tuple2(
-							A2(
-								$elm$core$List$cons,
-								_Utils_Tuple2(
-									key,
-									html(context)),
-								htmls),
-							existingStyles);
-					case 'Styled':
-						var styled = child.a;
-						return _Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asParagraph) ? _Utils_Tuple2(
-							A2(
-								$elm$core$List$cons,
-								_Utils_Tuple2(
-									key,
-									A2(styled.html, $mdgriffith$elm_ui$Internal$Model$NoStyleSheet, context)),
-								htmls),
-							$elm$core$List$isEmpty(existingStyles) ? styled.styles : _Utils_ap(styled.styles, existingStyles)) : _Utils_Tuple2(
-							A2(
-								$elm$core$List$cons,
-								_Utils_Tuple2(
-									key,
-									A2(styled.html, $mdgriffith$elm_ui$Internal$Model$NoStyleSheet, context)),
-								htmls),
-							$elm$core$List$isEmpty(existingStyles) ? styled.styles : _Utils_ap(styled.styles, existingStyles));
-					case 'Text':
-						var str = child.a;
-						return _Utils_Tuple2(
-							A2(
-								$elm$core$List$cons,
-								_Utils_Tuple2(
-									key,
-									_Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asEl) ? $mdgriffith$elm_ui$Internal$Model$textElementFill(str) : $mdgriffith$elm_ui$Internal$Model$textElement(str)),
-								htmls),
-							existingStyles);
-					default:
-						return _Utils_Tuple2(htmls, existingStyles);
-				}
-			});
-		var gather = F2(
-			function (child, _v6) {
-				var htmls = _v6.a;
-				var existingStyles = _v6.b;
-				switch (child.$) {
-					case 'Unstyled':
-						var html = child.a;
-						return _Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asParagraph) ? _Utils_Tuple2(
-							A2(
-								$elm$core$List$cons,
-								html(context),
-								htmls),
-							existingStyles) : _Utils_Tuple2(
-							A2(
-								$elm$core$List$cons,
-								html(context),
-								htmls),
-							existingStyles);
-					case 'Styled':
-						var styled = child.a;
-						return _Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asParagraph) ? _Utils_Tuple2(
-							A2(
-								$elm$core$List$cons,
-								A2(styled.html, $mdgriffith$elm_ui$Internal$Model$NoStyleSheet, context),
-								htmls),
-							$elm$core$List$isEmpty(existingStyles) ? styled.styles : _Utils_ap(styled.styles, existingStyles)) : _Utils_Tuple2(
-							A2(
-								$elm$core$List$cons,
-								A2(styled.html, $mdgriffith$elm_ui$Internal$Model$NoStyleSheet, context),
-								htmls),
-							$elm$core$List$isEmpty(existingStyles) ? styled.styles : _Utils_ap(styled.styles, existingStyles));
-					case 'Text':
-						var str = child.a;
-						return _Utils_Tuple2(
-							A2(
-								$elm$core$List$cons,
-								_Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asEl) ? $mdgriffith$elm_ui$Internal$Model$textElementFill(str) : $mdgriffith$elm_ui$Internal$Model$textElement(str),
-								htmls),
-							existingStyles);
-					default:
-						return _Utils_Tuple2(htmls, existingStyles);
-				}
-			});
-		if (children.$ === 'Keyed') {
-			var keyedChildren = children.a;
-			var _v1 = A3(
-				$elm$core$List$foldr,
-				gatherKeyed,
-				_Utils_Tuple2(_List_Nil, _List_Nil),
-				keyedChildren);
-			var keyed = _v1.a;
-			var styles = _v1.b;
-			var newStyles = $elm$core$List$isEmpty(styles) ? rendered.styles : _Utils_ap(rendered.styles, styles);
-			if (!newStyles.b) {
-				return $mdgriffith$elm_ui$Internal$Model$Unstyled(
-					A5(
-						$mdgriffith$elm_ui$Internal$Model$finalizeNode,
-						rendered.has,
-						rendered.node,
-						rendered.attributes,
-						$mdgriffith$elm_ui$Internal$Model$Keyed(
-							A3($mdgriffith$elm_ui$Internal$Model$addKeyedChildren, 'nearby-element-pls', keyed, rendered.children)),
-						$mdgriffith$elm_ui$Internal$Model$NoStyleSheet));
-			} else {
-				var allStyles = newStyles;
-				return $mdgriffith$elm_ui$Internal$Model$Styled(
-					{
-						html: A4(
-							$mdgriffith$elm_ui$Internal$Model$finalizeNode,
-							rendered.has,
-							rendered.node,
-							rendered.attributes,
-							$mdgriffith$elm_ui$Internal$Model$Keyed(
-								A3($mdgriffith$elm_ui$Internal$Model$addKeyedChildren, 'nearby-element-pls', keyed, rendered.children))),
-						styles: allStyles
-					});
-			}
-		} else {
-			var unkeyedChildren = children.a;
-			var _v3 = A3(
-				$elm$core$List$foldr,
-				gather,
-				_Utils_Tuple2(_List_Nil, _List_Nil),
-				unkeyedChildren);
-			var unkeyed = _v3.a;
-			var styles = _v3.b;
-			var newStyles = $elm$core$List$isEmpty(styles) ? rendered.styles : _Utils_ap(rendered.styles, styles);
-			if (!newStyles.b) {
-				return $mdgriffith$elm_ui$Internal$Model$Unstyled(
-					A5(
-						$mdgriffith$elm_ui$Internal$Model$finalizeNode,
-						rendered.has,
-						rendered.node,
-						rendered.attributes,
-						$mdgriffith$elm_ui$Internal$Model$Unkeyed(
-							A2($mdgriffith$elm_ui$Internal$Model$addChildren, unkeyed, rendered.children)),
-						$mdgriffith$elm_ui$Internal$Model$NoStyleSheet));
-			} else {
-				var allStyles = newStyles;
-				return $mdgriffith$elm_ui$Internal$Model$Styled(
-					{
-						html: A4(
-							$mdgriffith$elm_ui$Internal$Model$finalizeNode,
-							rendered.has,
-							rendered.node,
-							rendered.attributes,
-							$mdgriffith$elm_ui$Internal$Model$Unkeyed(
-								A2($mdgriffith$elm_ui$Internal$Model$addChildren, unkeyed, rendered.children))),
-						styles: allStyles
-					});
-			}
-		}
-	});
-var $mdgriffith$elm_ui$Internal$Model$Single = F3(
-	function (a, b, c) {
-		return {$: 'Single', a: a, b: b, c: c};
-	});
-var $mdgriffith$elm_ui$Internal$Model$Transform = function (a) {
-	return {$: 'Transform', a: a};
-};
-var $mdgriffith$elm_ui$Internal$Flag$Field = F2(
-	function (a, b) {
-		return {$: 'Field', a: a, b: b};
-	});
-var $elm$core$Bitwise$or = _Bitwise_or;
-var $mdgriffith$elm_ui$Internal$Flag$add = F2(
-	function (myFlag, _v0) {
-		var one = _v0.a;
-		var two = _v0.b;
-		if (myFlag.$ === 'Flag') {
-			var first = myFlag.a;
-			return A2($mdgriffith$elm_ui$Internal$Flag$Field, first | one, two);
-		} else {
-			var second = myFlag.a;
-			return A2($mdgriffith$elm_ui$Internal$Flag$Field, one, second | two);
-		}
-	});
-var $mdgriffith$elm_ui$Internal$Model$ChildrenBehind = function (a) {
-	return {$: 'ChildrenBehind', a: a};
-};
-var $mdgriffith$elm_ui$Internal$Model$ChildrenBehindAndInFront = F2(
-	function (a, b) {
-		return {$: 'ChildrenBehindAndInFront', a: a, b: b};
-	});
-var $mdgriffith$elm_ui$Internal$Model$ChildrenInFront = function (a) {
-	return {$: 'ChildrenInFront', a: a};
-};
-var $mdgriffith$elm_ui$Internal$Model$nearbyElement = F2(
-	function (location, elem) {
-		return A2(
-			$elm$html$Html$div,
-			_List_fromArray(
-				[
-					$elm$html$Html$Attributes$class(
-					function () {
-						switch (location.$) {
-							case 'Above':
-								return A2(
-									$elm$core$String$join,
-									' ',
-									_List_fromArray(
-										[$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.above]));
-							case 'Below':
-								return A2(
-									$elm$core$String$join,
-									' ',
-									_List_fromArray(
-										[$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.below]));
-							case 'OnRight':
-								return A2(
-									$elm$core$String$join,
-									' ',
-									_List_fromArray(
-										[$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.onRight]));
-							case 'OnLeft':
-								return A2(
-									$elm$core$String$join,
-									' ',
-									_List_fromArray(
-										[$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.onLeft]));
-							case 'InFront':
-								return A2(
-									$elm$core$String$join,
-									' ',
-									_List_fromArray(
-										[$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.inFront]));
-							default:
-								return A2(
-									$elm$core$String$join,
-									' ',
-									_List_fromArray(
-										[$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.behind]));
-						}
-					}())
-				]),
-			_List_fromArray(
-				[
-					function () {
-					switch (elem.$) {
-						case 'Empty':
-							return $elm$virtual_dom$VirtualDom$text('');
-						case 'Text':
-							var str = elem.a;
-							return $mdgriffith$elm_ui$Internal$Model$textElement(str);
-						case 'Unstyled':
-							var html = elem.a;
-							return html($mdgriffith$elm_ui$Internal$Model$asEl);
-						default:
-							var styled = elem.a;
-							return A2(styled.html, $mdgriffith$elm_ui$Internal$Model$NoStyleSheet, $mdgriffith$elm_ui$Internal$Model$asEl);
-					}
-				}()
-				]));
-	});
-var $mdgriffith$elm_ui$Internal$Model$addNearbyElement = F3(
-	function (location, elem, existing) {
-		var nearby = A2($mdgriffith$elm_ui$Internal$Model$nearbyElement, location, elem);
-		switch (existing.$) {
-			case 'NoNearbyChildren':
-				if (location.$ === 'Behind') {
-					return $mdgriffith$elm_ui$Internal$Model$ChildrenBehind(
-						_List_fromArray(
-							[nearby]));
-				} else {
-					return $mdgriffith$elm_ui$Internal$Model$ChildrenInFront(
-						_List_fromArray(
-							[nearby]));
-				}
-			case 'ChildrenBehind':
-				var existingBehind = existing.a;
-				if (location.$ === 'Behind') {
-					return $mdgriffith$elm_ui$Internal$Model$ChildrenBehind(
-						A2($elm$core$List$cons, nearby, existingBehind));
-				} else {
-					return A2(
-						$mdgriffith$elm_ui$Internal$Model$ChildrenBehindAndInFront,
-						existingBehind,
-						_List_fromArray(
-							[nearby]));
-				}
-			case 'ChildrenInFront':
-				var existingInFront = existing.a;
-				if (location.$ === 'Behind') {
-					return A2(
-						$mdgriffith$elm_ui$Internal$Model$ChildrenBehindAndInFront,
-						_List_fromArray(
-							[nearby]),
-						existingInFront);
-				} else {
-					return $mdgriffith$elm_ui$Internal$Model$ChildrenInFront(
-						A2($elm$core$List$cons, nearby, existingInFront));
-				}
-			default:
-				var existingBehind = existing.a;
-				var existingInFront = existing.b;
-				if (location.$ === 'Behind') {
-					return A2(
-						$mdgriffith$elm_ui$Internal$Model$ChildrenBehindAndInFront,
-						A2($elm$core$List$cons, nearby, existingBehind),
-						existingInFront);
-				} else {
-					return A2(
-						$mdgriffith$elm_ui$Internal$Model$ChildrenBehindAndInFront,
-						existingBehind,
-						A2($elm$core$List$cons, nearby, existingInFront));
-				}
-		}
-	});
-var $mdgriffith$elm_ui$Internal$Model$Embedded = F2(
-	function (a, b) {
-		return {$: 'Embedded', a: a, b: b};
-	});
-var $mdgriffith$elm_ui$Internal$Model$NodeName = function (a) {
-	return {$: 'NodeName', a: a};
-};
-var $mdgriffith$elm_ui$Internal$Model$addNodeName = F2(
-	function (newNode, old) {
-		switch (old.$) {
-			case 'Generic':
-				return $mdgriffith$elm_ui$Internal$Model$NodeName(newNode);
-			case 'NodeName':
-				var name = old.a;
-				return A2($mdgriffith$elm_ui$Internal$Model$Embedded, name, newNode);
-			default:
-				var x = old.a;
-				var y = old.b;
-				return A2($mdgriffith$elm_ui$Internal$Model$Embedded, x, y);
-		}
-	});
-var $mdgriffith$elm_ui$Internal$Model$alignXName = function (align) {
-	switch (align.$) {
-		case 'Left':
-			return $mdgriffith$elm_ui$Internal$Style$classes.alignedHorizontally + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignLeft);
-		case 'Right':
-			return $mdgriffith$elm_ui$Internal$Style$classes.alignedHorizontally + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignRight);
-		default:
-			return $mdgriffith$elm_ui$Internal$Style$classes.alignedHorizontally + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignCenterX);
-	}
-};
-var $mdgriffith$elm_ui$Internal$Model$alignYName = function (align) {
-	switch (align.$) {
-		case 'Top':
-			return $mdgriffith$elm_ui$Internal$Style$classes.alignedVertically + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignTop);
-		case 'Bottom':
-			return $mdgriffith$elm_ui$Internal$Style$classes.alignedVertically + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignBottom);
-		default:
-			return $mdgriffith$elm_ui$Internal$Style$classes.alignedVertically + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignCenterY);
-	}
-};
-var $elm$virtual_dom$VirtualDom$attribute = F2(
-	function (key, value) {
-		return A2(
-			_VirtualDom_attribute,
-			_VirtualDom_noOnOrFormAction(key),
-			_VirtualDom_noJavaScriptOrHtmlUri(value));
-	});
-var $mdgriffith$elm_ui$Internal$Model$FullTransform = F4(
-	function (a, b, c, d) {
-		return {$: 'FullTransform', a: a, b: b, c: c, d: d};
-	});
-var $mdgriffith$elm_ui$Internal$Model$Moved = function (a) {
-	return {$: 'Moved', a: a};
-};
-var $mdgriffith$elm_ui$Internal$Model$composeTransformation = F2(
-	function (transform, component) {
-		switch (transform.$) {
-			case 'Untransformed':
-				switch (component.$) {
-					case 'MoveX':
-						var x = component.a;
-						return $mdgriffith$elm_ui$Internal$Model$Moved(
-							_Utils_Tuple3(x, 0, 0));
-					case 'MoveY':
-						var y = component.a;
-						return $mdgriffith$elm_ui$Internal$Model$Moved(
-							_Utils_Tuple3(0, y, 0));
-					case 'MoveZ':
-						var z = component.a;
-						return $mdgriffith$elm_ui$Internal$Model$Moved(
-							_Utils_Tuple3(0, 0, z));
-					case 'MoveXYZ':
-						var xyz = component.a;
-						return $mdgriffith$elm_ui$Internal$Model$Moved(xyz);
-					case 'Rotate':
-						var xyz = component.a;
-						var angle = component.b;
-						return A4(
-							$mdgriffith$elm_ui$Internal$Model$FullTransform,
-							_Utils_Tuple3(0, 0, 0),
-							_Utils_Tuple3(1, 1, 1),
-							xyz,
-							angle);
-					default:
-						var xyz = component.a;
-						return A4(
-							$mdgriffith$elm_ui$Internal$Model$FullTransform,
-							_Utils_Tuple3(0, 0, 0),
-							xyz,
-							_Utils_Tuple3(0, 0, 1),
-							0);
-				}
-			case 'Moved':
-				var moved = transform.a;
-				var x = moved.a;
-				var y = moved.b;
-				var z = moved.c;
-				switch (component.$) {
-					case 'MoveX':
-						var newX = component.a;
-						return $mdgriffith$elm_ui$Internal$Model$Moved(
-							_Utils_Tuple3(newX, y, z));
-					case 'MoveY':
-						var newY = component.a;
-						return $mdgriffith$elm_ui$Internal$Model$Moved(
-							_Utils_Tuple3(x, newY, z));
-					case 'MoveZ':
-						var newZ = component.a;
-						return $mdgriffith$elm_ui$Internal$Model$Moved(
-							_Utils_Tuple3(x, y, newZ));
-					case 'MoveXYZ':
-						var xyz = component.a;
-						return $mdgriffith$elm_ui$Internal$Model$Moved(xyz);
-					case 'Rotate':
-						var xyz = component.a;
-						var angle = component.b;
-						return A4(
-							$mdgriffith$elm_ui$Internal$Model$FullTransform,
-							moved,
-							_Utils_Tuple3(1, 1, 1),
-							xyz,
-							angle);
-					default:
-						var scale = component.a;
-						return A4(
-							$mdgriffith$elm_ui$Internal$Model$FullTransform,
-							moved,
-							scale,
-							_Utils_Tuple3(0, 0, 1),
-							0);
-				}
-			default:
-				var moved = transform.a;
-				var x = moved.a;
-				var y = moved.b;
-				var z = moved.c;
-				var scaled = transform.b;
-				var origin = transform.c;
-				var angle = transform.d;
-				switch (component.$) {
-					case 'MoveX':
-						var newX = component.a;
-						return A4(
-							$mdgriffith$elm_ui$Internal$Model$FullTransform,
-							_Utils_Tuple3(newX, y, z),
-							scaled,
-							origin,
-							angle);
-					case 'MoveY':
-						var newY = component.a;
-						return A4(
-							$mdgriffith$elm_ui$Internal$Model$FullTransform,
-							_Utils_Tuple3(x, newY, z),
-							scaled,
-							origin,
-							angle);
-					case 'MoveZ':
-						var newZ = component.a;
-						return A4(
-							$mdgriffith$elm_ui$Internal$Model$FullTransform,
-							_Utils_Tuple3(x, y, newZ),
-							scaled,
-							origin,
-							angle);
-					case 'MoveXYZ':
-						var newMove = component.a;
-						return A4($mdgriffith$elm_ui$Internal$Model$FullTransform, newMove, scaled, origin, angle);
-					case 'Rotate':
-						var newOrigin = component.a;
-						var newAngle = component.b;
-						return A4($mdgriffith$elm_ui$Internal$Model$FullTransform, moved, scaled, newOrigin, newAngle);
-					default:
-						var newScale = component.a;
-						return A4($mdgriffith$elm_ui$Internal$Model$FullTransform, moved, newScale, origin, angle);
-				}
-		}
-	});
-var $mdgriffith$elm_ui$Internal$Flag$height = $mdgriffith$elm_ui$Internal$Flag$flag(7);
-var $mdgriffith$elm_ui$Internal$Flag$heightContent = $mdgriffith$elm_ui$Internal$Flag$flag(36);
-var $mdgriffith$elm_ui$Internal$Flag$merge = F2(
-	function (_v0, _v1) {
-		var one = _v0.a;
-		var two = _v0.b;
-		var three = _v1.a;
-		var four = _v1.b;
-		return A2($mdgriffith$elm_ui$Internal$Flag$Field, one | three, two | four);
-	});
-var $mdgriffith$elm_ui$Internal$Flag$none = A2($mdgriffith$elm_ui$Internal$Flag$Field, 0, 0);
-var $mdgriffith$elm_ui$Internal$Model$renderHeight = function (h) {
-	switch (h.$) {
-		case 'Px':
-			var px = h.a;
-			var val = $elm$core$String$fromInt(px);
-			var name = 'height-px-' + val;
-			return _Utils_Tuple3(
-				$mdgriffith$elm_ui$Internal$Flag$none,
-				$mdgriffith$elm_ui$Internal$Style$classes.heightExact + (' ' + name),
-				_List_fromArray(
-					[
-						A3($mdgriffith$elm_ui$Internal$Model$Single, name, 'height', val + 'px')
-					]));
-		case 'Content':
-			return _Utils_Tuple3(
-				A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$heightContent, $mdgriffith$elm_ui$Internal$Flag$none),
-				$mdgriffith$elm_ui$Internal$Style$classes.heightContent,
-				_List_Nil);
-		case 'Fill':
-			var portion = h.a;
-			return (portion === 1) ? _Utils_Tuple3(
-				A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$heightFill, $mdgriffith$elm_ui$Internal$Flag$none),
-				$mdgriffith$elm_ui$Internal$Style$classes.heightFill,
-				_List_Nil) : _Utils_Tuple3(
-				A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$heightFill, $mdgriffith$elm_ui$Internal$Flag$none),
-				$mdgriffith$elm_ui$Internal$Style$classes.heightFillPortion + (' height-fill-' + $elm$core$String$fromInt(portion)),
-				_List_fromArray(
-					[
-						A3(
-						$mdgriffith$elm_ui$Internal$Model$Single,
-						$mdgriffith$elm_ui$Internal$Style$classes.any + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.column + (' > ' + $mdgriffith$elm_ui$Internal$Style$dot(
-							'height-fill-' + $elm$core$String$fromInt(portion))))),
-						'flex-grow',
-						$elm$core$String$fromInt(portion * 100000))
-					]));
-		case 'Min':
-			var minSize = h.a;
-			var len = h.b;
-			var cls = 'min-height-' + $elm$core$String$fromInt(minSize);
-			var style = A3(
-				$mdgriffith$elm_ui$Internal$Model$Single,
-				cls,
-				'min-height',
-				$elm$core$String$fromInt(minSize) + 'px !important');
-			var _v1 = $mdgriffith$elm_ui$Internal$Model$renderHeight(len);
-			var newFlag = _v1.a;
-			var newAttrs = _v1.b;
-			var newStyle = _v1.c;
-			return _Utils_Tuple3(
-				A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$heightBetween, newFlag),
-				cls + (' ' + newAttrs),
-				A2($elm$core$List$cons, style, newStyle));
-		default:
-			var maxSize = h.a;
-			var len = h.b;
-			var cls = 'max-height-' + $elm$core$String$fromInt(maxSize);
-			var style = A3(
-				$mdgriffith$elm_ui$Internal$Model$Single,
-				cls,
-				'max-height',
-				$elm$core$String$fromInt(maxSize) + 'px');
-			var _v2 = $mdgriffith$elm_ui$Internal$Model$renderHeight(len);
-			var newFlag = _v2.a;
-			var newAttrs = _v2.b;
-			var newStyle = _v2.c;
-			return _Utils_Tuple3(
-				A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$heightBetween, newFlag),
-				cls + (' ' + newAttrs),
-				A2($elm$core$List$cons, style, newStyle));
-	}
-};
-var $mdgriffith$elm_ui$Internal$Flag$widthContent = $mdgriffith$elm_ui$Internal$Flag$flag(38);
-var $mdgriffith$elm_ui$Internal$Model$renderWidth = function (w) {
-	switch (w.$) {
-		case 'Px':
-			var px = w.a;
-			return _Utils_Tuple3(
-				$mdgriffith$elm_ui$Internal$Flag$none,
-				$mdgriffith$elm_ui$Internal$Style$classes.widthExact + (' width-px-' + $elm$core$String$fromInt(px)),
-				_List_fromArray(
-					[
-						A3(
-						$mdgriffith$elm_ui$Internal$Model$Single,
-						'width-px-' + $elm$core$String$fromInt(px),
-						'width',
-						$elm$core$String$fromInt(px) + 'px')
-					]));
-		case 'Content':
-			return _Utils_Tuple3(
-				A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$widthContent, $mdgriffith$elm_ui$Internal$Flag$none),
-				$mdgriffith$elm_ui$Internal$Style$classes.widthContent,
-				_List_Nil);
-		case 'Fill':
-			var portion = w.a;
-			return (portion === 1) ? _Utils_Tuple3(
-				A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$widthFill, $mdgriffith$elm_ui$Internal$Flag$none),
-				$mdgriffith$elm_ui$Internal$Style$classes.widthFill,
-				_List_Nil) : _Utils_Tuple3(
-				A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$widthFill, $mdgriffith$elm_ui$Internal$Flag$none),
-				$mdgriffith$elm_ui$Internal$Style$classes.widthFillPortion + (' width-fill-' + $elm$core$String$fromInt(portion)),
-				_List_fromArray(
-					[
-						A3(
-						$mdgriffith$elm_ui$Internal$Model$Single,
-						$mdgriffith$elm_ui$Internal$Style$classes.any + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.row + (' > ' + $mdgriffith$elm_ui$Internal$Style$dot(
-							'width-fill-' + $elm$core$String$fromInt(portion))))),
-						'flex-grow',
-						$elm$core$String$fromInt(portion * 100000))
-					]));
-		case 'Min':
-			var minSize = w.a;
-			var len = w.b;
-			var cls = 'min-width-' + $elm$core$String$fromInt(minSize);
-			var style = A3(
-				$mdgriffith$elm_ui$Internal$Model$Single,
-				cls,
-				'min-width',
-				$elm$core$String$fromInt(minSize) + 'px');
-			var _v1 = $mdgriffith$elm_ui$Internal$Model$renderWidth(len);
-			var newFlag = _v1.a;
-			var newAttrs = _v1.b;
-			var newStyle = _v1.c;
-			return _Utils_Tuple3(
-				A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$widthBetween, newFlag),
-				cls + (' ' + newAttrs),
-				A2($elm$core$List$cons, style, newStyle));
-		default:
-			var maxSize = w.a;
-			var len = w.b;
-			var cls = 'max-width-' + $elm$core$String$fromInt(maxSize);
-			var style = A3(
-				$mdgriffith$elm_ui$Internal$Model$Single,
-				cls,
-				'max-width',
-				$elm$core$String$fromInt(maxSize) + 'px');
-			var _v2 = $mdgriffith$elm_ui$Internal$Model$renderWidth(len);
-			var newFlag = _v2.a;
-			var newAttrs = _v2.b;
-			var newStyle = _v2.c;
-			return _Utils_Tuple3(
-				A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$widthBetween, newFlag),
-				cls + (' ' + newAttrs),
-				A2($elm$core$List$cons, style, newStyle));
-	}
-};
-var $mdgriffith$elm_ui$Internal$Flag$borderWidth = $mdgriffith$elm_ui$Internal$Flag$flag(27);
-var $elm$core$Basics$ge = _Utils_ge;
-var $mdgriffith$elm_ui$Internal$Model$skippable = F2(
-	function (flag, style) {
-		if (_Utils_eq(flag, $mdgriffith$elm_ui$Internal$Flag$borderWidth)) {
-			if (style.$ === 'Single') {
-				var val = style.c;
-				switch (val) {
-					case '0px':
-						return true;
-					case '1px':
-						return true;
-					case '2px':
-						return true;
-					case '3px':
-						return true;
-					case '4px':
-						return true;
-					case '5px':
-						return true;
-					case '6px':
-						return true;
-					default:
-						return false;
-				}
-			} else {
-				return false;
-			}
-		} else {
-			switch (style.$) {
-				case 'FontSize':
-					var i = style.a;
-					return (i >= 8) && (i <= 32);
-				case 'PaddingStyle':
-					var name = style.a;
-					var t = style.b;
-					var r = style.c;
-					var b = style.d;
-					var l = style.e;
-					return _Utils_eq(t, b) && (_Utils_eq(t, r) && (_Utils_eq(t, l) && ((t >= 0) && (t <= 24))));
-				default:
-					return false;
-			}
-		}
-	});
-var $mdgriffith$elm_ui$Internal$Flag$width = $mdgriffith$elm_ui$Internal$Flag$flag(6);
-var $mdgriffith$elm_ui$Internal$Flag$xAlign = $mdgriffith$elm_ui$Internal$Flag$flag(30);
-var $mdgriffith$elm_ui$Internal$Flag$yAlign = $mdgriffith$elm_ui$Internal$Flag$flag(29);
-var $mdgriffith$elm_ui$Internal$Model$gatherAttrRecursive = F8(
-	function (classes, node, has, transform, styles, attrs, children, elementAttrs) {
-		gatherAttrRecursive:
-		while (true) {
-			if (!elementAttrs.b) {
-				var _v1 = $mdgriffith$elm_ui$Internal$Model$transformClass(transform);
-				if (_v1.$ === 'Nothing') {
-					return {
-						attributes: A2(
-							$elm$core$List$cons,
-							$elm$html$Html$Attributes$class(classes),
-							attrs),
-						children: children,
-						has: has,
-						node: node,
-						styles: styles
-					};
-				} else {
-					var _class = _v1.a;
-					return {
-						attributes: A2(
-							$elm$core$List$cons,
-							$elm$html$Html$Attributes$class(classes + (' ' + _class)),
-							attrs),
-						children: children,
-						has: has,
-						node: node,
-						styles: A2(
-							$elm$core$List$cons,
-							$mdgriffith$elm_ui$Internal$Model$Transform(transform),
-							styles)
-					};
-				}
-			} else {
-				var attribute = elementAttrs.a;
-				var remaining = elementAttrs.b;
-				switch (attribute.$) {
-					case 'NoAttribute':
-						var $temp$classes = classes,
-							$temp$node = node,
-							$temp$has = has,
-							$temp$transform = transform,
-							$temp$styles = styles,
-							$temp$attrs = attrs,
-							$temp$children = children,
-							$temp$elementAttrs = remaining;
-						classes = $temp$classes;
-						node = $temp$node;
-						has = $temp$has;
-						transform = $temp$transform;
-						styles = $temp$styles;
-						attrs = $temp$attrs;
-						children = $temp$children;
-						elementAttrs = $temp$elementAttrs;
-						continue gatherAttrRecursive;
-					case 'Class':
-						var flag = attribute.a;
-						var exactClassName = attribute.b;
-						if (A2($mdgriffith$elm_ui$Internal$Flag$present, flag, has)) {
-							var $temp$classes = classes,
-								$temp$node = node,
-								$temp$has = has,
-								$temp$transform = transform,
-								$temp$styles = styles,
-								$temp$attrs = attrs,
-								$temp$children = children,
-								$temp$elementAttrs = remaining;
-							classes = $temp$classes;
-							node = $temp$node;
-							has = $temp$has;
-							transform = $temp$transform;
-							styles = $temp$styles;
-							attrs = $temp$attrs;
-							children = $temp$children;
-							elementAttrs = $temp$elementAttrs;
-							continue gatherAttrRecursive;
-						} else {
-							var $temp$classes = exactClassName + (' ' + classes),
-								$temp$node = node,
-								$temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, flag, has),
-								$temp$transform = transform,
-								$temp$styles = styles,
-								$temp$attrs = attrs,
-								$temp$children = children,
-								$temp$elementAttrs = remaining;
-							classes = $temp$classes;
-							node = $temp$node;
-							has = $temp$has;
-							transform = $temp$transform;
-							styles = $temp$styles;
-							attrs = $temp$attrs;
-							children = $temp$children;
-							elementAttrs = $temp$elementAttrs;
-							continue gatherAttrRecursive;
-						}
-					case 'Attr':
-						var actualAttribute = attribute.a;
-						var $temp$classes = classes,
-							$temp$node = node,
-							$temp$has = has,
-							$temp$transform = transform,
-							$temp$styles = styles,
-							$temp$attrs = A2($elm$core$List$cons, actualAttribute, attrs),
-							$temp$children = children,
-							$temp$elementAttrs = remaining;
-						classes = $temp$classes;
-						node = $temp$node;
-						has = $temp$has;
-						transform = $temp$transform;
-						styles = $temp$styles;
-						attrs = $temp$attrs;
-						children = $temp$children;
-						elementAttrs = $temp$elementAttrs;
-						continue gatherAttrRecursive;
-					case 'StyleClass':
-						var flag = attribute.a;
-						var style = attribute.b;
-						if (A2($mdgriffith$elm_ui$Internal$Flag$present, flag, has)) {
-							var $temp$classes = classes,
-								$temp$node = node,
-								$temp$has = has,
-								$temp$transform = transform,
-								$temp$styles = styles,
-								$temp$attrs = attrs,
-								$temp$children = children,
-								$temp$elementAttrs = remaining;
-							classes = $temp$classes;
-							node = $temp$node;
-							has = $temp$has;
-							transform = $temp$transform;
-							styles = $temp$styles;
-							attrs = $temp$attrs;
-							children = $temp$children;
-							elementAttrs = $temp$elementAttrs;
-							continue gatherAttrRecursive;
-						} else {
-							if (A2($mdgriffith$elm_ui$Internal$Model$skippable, flag, style)) {
-								var $temp$classes = $mdgriffith$elm_ui$Internal$Model$getStyleName(style) + (' ' + classes),
-									$temp$node = node,
-									$temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, flag, has),
-									$temp$transform = transform,
-									$temp$styles = styles,
-									$temp$attrs = attrs,
-									$temp$children = children,
-									$temp$elementAttrs = remaining;
-								classes = $temp$classes;
-								node = $temp$node;
-								has = $temp$has;
-								transform = $temp$transform;
-								styles = $temp$styles;
-								attrs = $temp$attrs;
-								children = $temp$children;
-								elementAttrs = $temp$elementAttrs;
-								continue gatherAttrRecursive;
-							} else {
-								var $temp$classes = $mdgriffith$elm_ui$Internal$Model$getStyleName(style) + (' ' + classes),
-									$temp$node = node,
-									$temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, flag, has),
-									$temp$transform = transform,
-									$temp$styles = A2($elm$core$List$cons, style, styles),
-									$temp$attrs = attrs,
-									$temp$children = children,
-									$temp$elementAttrs = remaining;
-								classes = $temp$classes;
-								node = $temp$node;
-								has = $temp$has;
-								transform = $temp$transform;
-								styles = $temp$styles;
-								attrs = $temp$attrs;
-								children = $temp$children;
-								elementAttrs = $temp$elementAttrs;
-								continue gatherAttrRecursive;
-							}
-						}
-					case 'TransformComponent':
-						var flag = attribute.a;
-						var component = attribute.b;
-						var $temp$classes = classes,
-							$temp$node = node,
-							$temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, flag, has),
-							$temp$transform = A2($mdgriffith$elm_ui$Internal$Model$composeTransformation, transform, component),
-							$temp$styles = styles,
-							$temp$attrs = attrs,
-							$temp$children = children,
-							$temp$elementAttrs = remaining;
-						classes = $temp$classes;
-						node = $temp$node;
-						has = $temp$has;
-						transform = $temp$transform;
-						styles = $temp$styles;
-						attrs = $temp$attrs;
-						children = $temp$children;
-						elementAttrs = $temp$elementAttrs;
-						continue gatherAttrRecursive;
-					case 'Width':
-						var width = attribute.a;
-						if (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$width, has)) {
-							var $temp$classes = classes,
-								$temp$node = node,
-								$temp$has = has,
-								$temp$transform = transform,
-								$temp$styles = styles,
-								$temp$attrs = attrs,
-								$temp$children = children,
-								$temp$elementAttrs = remaining;
-							classes = $temp$classes;
-							node = $temp$node;
-							has = $temp$has;
-							transform = $temp$transform;
-							styles = $temp$styles;
-							attrs = $temp$attrs;
-							children = $temp$children;
-							elementAttrs = $temp$elementAttrs;
-							continue gatherAttrRecursive;
-						} else {
-							switch (width.$) {
-								case 'Px':
-									var px = width.a;
-									var $temp$classes = ($mdgriffith$elm_ui$Internal$Style$classes.widthExact + (' width-px-' + $elm$core$String$fromInt(px))) + (' ' + classes),
-										$temp$node = node,
-										$temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$width, has),
-										$temp$transform = transform,
-										$temp$styles = A2(
-										$elm$core$List$cons,
-										A3(
-											$mdgriffith$elm_ui$Internal$Model$Single,
-											'width-px-' + $elm$core$String$fromInt(px),
-											'width',
-											$elm$core$String$fromInt(px) + 'px'),
-										styles),
-										$temp$attrs = attrs,
-										$temp$children = children,
-										$temp$elementAttrs = remaining;
-									classes = $temp$classes;
-									node = $temp$node;
-									has = $temp$has;
-									transform = $temp$transform;
-									styles = $temp$styles;
-									attrs = $temp$attrs;
-									children = $temp$children;
-									elementAttrs = $temp$elementAttrs;
-									continue gatherAttrRecursive;
-								case 'Content':
-									var $temp$classes = classes + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.widthContent),
-										$temp$node = node,
-										$temp$has = A2(
-										$mdgriffith$elm_ui$Internal$Flag$add,
-										$mdgriffith$elm_ui$Internal$Flag$widthContent,
-										A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$width, has)),
-										$temp$transform = transform,
-										$temp$styles = styles,
-										$temp$attrs = attrs,
-										$temp$children = children,
-										$temp$elementAttrs = remaining;
-									classes = $temp$classes;
-									node = $temp$node;
-									has = $temp$has;
-									transform = $temp$transform;
-									styles = $temp$styles;
-									attrs = $temp$attrs;
-									children = $temp$children;
-									elementAttrs = $temp$elementAttrs;
-									continue gatherAttrRecursive;
-								case 'Fill':
-									var portion = width.a;
-									if (portion === 1) {
-										var $temp$classes = classes + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.widthFill),
-											$temp$node = node,
-											$temp$has = A2(
-											$mdgriffith$elm_ui$Internal$Flag$add,
-											$mdgriffith$elm_ui$Internal$Flag$widthFill,
-											A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$width, has)),
-											$temp$transform = transform,
-											$temp$styles = styles,
-											$temp$attrs = attrs,
-											$temp$children = children,
-											$temp$elementAttrs = remaining;
-										classes = $temp$classes;
-										node = $temp$node;
-										has = $temp$has;
-										transform = $temp$transform;
-										styles = $temp$styles;
-										attrs = $temp$attrs;
-										children = $temp$children;
-										elementAttrs = $temp$elementAttrs;
-										continue gatherAttrRecursive;
-									} else {
-										var $temp$classes = classes + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.widthFillPortion + (' width-fill-' + $elm$core$String$fromInt(portion)))),
-											$temp$node = node,
-											$temp$has = A2(
-											$mdgriffith$elm_ui$Internal$Flag$add,
-											$mdgriffith$elm_ui$Internal$Flag$widthFill,
-											A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$width, has)),
-											$temp$transform = transform,
-											$temp$styles = A2(
-											$elm$core$List$cons,
-											A3(
-												$mdgriffith$elm_ui$Internal$Model$Single,
-												$mdgriffith$elm_ui$Internal$Style$classes.any + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.row + (' > ' + $mdgriffith$elm_ui$Internal$Style$dot(
-													'width-fill-' + $elm$core$String$fromInt(portion))))),
-												'flex-grow',
-												$elm$core$String$fromInt(portion * 100000)),
-											styles),
-											$temp$attrs = attrs,
-											$temp$children = children,
-											$temp$elementAttrs = remaining;
-										classes = $temp$classes;
-										node = $temp$node;
-										has = $temp$has;
-										transform = $temp$transform;
-										styles = $temp$styles;
-										attrs = $temp$attrs;
-										children = $temp$children;
-										elementAttrs = $temp$elementAttrs;
-										continue gatherAttrRecursive;
-									}
-								default:
-									var _v4 = $mdgriffith$elm_ui$Internal$Model$renderWidth(width);
-									var addToFlags = _v4.a;
-									var newClass = _v4.b;
-									var newStyles = _v4.c;
-									var $temp$classes = classes + (' ' + newClass),
-										$temp$node = node,
-										$temp$has = A2(
-										$mdgriffith$elm_ui$Internal$Flag$merge,
-										addToFlags,
-										A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$width, has)),
-										$temp$transform = transform,
-										$temp$styles = _Utils_ap(newStyles, styles),
-										$temp$attrs = attrs,
-										$temp$children = children,
-										$temp$elementAttrs = remaining;
-									classes = $temp$classes;
-									node = $temp$node;
-									has = $temp$has;
-									transform = $temp$transform;
-									styles = $temp$styles;
-									attrs = $temp$attrs;
-									children = $temp$children;
-									elementAttrs = $temp$elementAttrs;
-									continue gatherAttrRecursive;
-							}
-						}
-					case 'Height':
-						var height = attribute.a;
-						if (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$height, has)) {
-							var $temp$classes = classes,
-								$temp$node = node,
-								$temp$has = has,
-								$temp$transform = transform,
-								$temp$styles = styles,
-								$temp$attrs = attrs,
-								$temp$children = children,
-								$temp$elementAttrs = remaining;
-							classes = $temp$classes;
-							node = $temp$node;
-							has = $temp$has;
-							transform = $temp$transform;
-							styles = $temp$styles;
-							attrs = $temp$attrs;
-							children = $temp$children;
-							elementAttrs = $temp$elementAttrs;
-							continue gatherAttrRecursive;
-						} else {
-							switch (height.$) {
-								case 'Px':
-									var px = height.a;
-									var val = $elm$core$String$fromInt(px) + 'px';
-									var name = 'height-px-' + val;
-									var $temp$classes = $mdgriffith$elm_ui$Internal$Style$classes.heightExact + (' ' + (name + (' ' + classes))),
-										$temp$node = node,
-										$temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$height, has),
-										$temp$transform = transform,
-										$temp$styles = A2(
-										$elm$core$List$cons,
-										A3($mdgriffith$elm_ui$Internal$Model$Single, name, 'height ', val),
-										styles),
-										$temp$attrs = attrs,
-										$temp$children = children,
-										$temp$elementAttrs = remaining;
-									classes = $temp$classes;
-									node = $temp$node;
-									has = $temp$has;
-									transform = $temp$transform;
-									styles = $temp$styles;
-									attrs = $temp$attrs;
-									children = $temp$children;
-									elementAttrs = $temp$elementAttrs;
-									continue gatherAttrRecursive;
-								case 'Content':
-									var $temp$classes = $mdgriffith$elm_ui$Internal$Style$classes.heightContent + (' ' + classes),
-										$temp$node = node,
-										$temp$has = A2(
-										$mdgriffith$elm_ui$Internal$Flag$add,
-										$mdgriffith$elm_ui$Internal$Flag$heightContent,
-										A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$height, has)),
-										$temp$transform = transform,
-										$temp$styles = styles,
-										$temp$attrs = attrs,
-										$temp$children = children,
-										$temp$elementAttrs = remaining;
-									classes = $temp$classes;
-									node = $temp$node;
-									has = $temp$has;
-									transform = $temp$transform;
-									styles = $temp$styles;
-									attrs = $temp$attrs;
-									children = $temp$children;
-									elementAttrs = $temp$elementAttrs;
-									continue gatherAttrRecursive;
-								case 'Fill':
-									var portion = height.a;
-									if (portion === 1) {
-										var $temp$classes = $mdgriffith$elm_ui$Internal$Style$classes.heightFill + (' ' + classes),
-											$temp$node = node,
-											$temp$has = A2(
-											$mdgriffith$elm_ui$Internal$Flag$add,
-											$mdgriffith$elm_ui$Internal$Flag$heightFill,
-											A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$height, has)),
-											$temp$transform = transform,
-											$temp$styles = styles,
-											$temp$attrs = attrs,
-											$temp$children = children,
-											$temp$elementAttrs = remaining;
-										classes = $temp$classes;
-										node = $temp$node;
-										has = $temp$has;
-										transform = $temp$transform;
-										styles = $temp$styles;
-										attrs = $temp$attrs;
-										children = $temp$children;
-										elementAttrs = $temp$elementAttrs;
-										continue gatherAttrRecursive;
-									} else {
-										var $temp$classes = classes + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.heightFillPortion + (' height-fill-' + $elm$core$String$fromInt(portion)))),
-											$temp$node = node,
-											$temp$has = A2(
-											$mdgriffith$elm_ui$Internal$Flag$add,
-											$mdgriffith$elm_ui$Internal$Flag$heightFill,
-											A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$height, has)),
-											$temp$transform = transform,
-											$temp$styles = A2(
-											$elm$core$List$cons,
-											A3(
-												$mdgriffith$elm_ui$Internal$Model$Single,
-												$mdgriffith$elm_ui$Internal$Style$classes.any + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.column + (' > ' + $mdgriffith$elm_ui$Internal$Style$dot(
-													'height-fill-' + $elm$core$String$fromInt(portion))))),
-												'flex-grow',
-												$elm$core$String$fromInt(portion * 100000)),
-											styles),
-											$temp$attrs = attrs,
-											$temp$children = children,
-											$temp$elementAttrs = remaining;
-										classes = $temp$classes;
-										node = $temp$node;
-										has = $temp$has;
-										transform = $temp$transform;
-										styles = $temp$styles;
-										attrs = $temp$attrs;
-										children = $temp$children;
-										elementAttrs = $temp$elementAttrs;
-										continue gatherAttrRecursive;
-									}
-								default:
-									var _v6 = $mdgriffith$elm_ui$Internal$Model$renderHeight(height);
-									var addToFlags = _v6.a;
-									var newClass = _v6.b;
-									var newStyles = _v6.c;
-									var $temp$classes = classes + (' ' + newClass),
-										$temp$node = node,
-										$temp$has = A2(
-										$mdgriffith$elm_ui$Internal$Flag$merge,
-										addToFlags,
-										A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$height, has)),
-										$temp$transform = transform,
-										$temp$styles = _Utils_ap(newStyles, styles),
-										$temp$attrs = attrs,
-										$temp$children = children,
-										$temp$elementAttrs = remaining;
-									classes = $temp$classes;
-									node = $temp$node;
-									has = $temp$has;
-									transform = $temp$transform;
-									styles = $temp$styles;
-									attrs = $temp$attrs;
-									children = $temp$children;
-									elementAttrs = $temp$elementAttrs;
-									continue gatherAttrRecursive;
-							}
-						}
-					case 'Describe':
-						var description = attribute.a;
-						switch (description.$) {
-							case 'Main':
-								var $temp$classes = classes,
-									$temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'main', node),
-									$temp$has = has,
-									$temp$transform = transform,
-									$temp$styles = styles,
-									$temp$attrs = attrs,
-									$temp$children = children,
-									$temp$elementAttrs = remaining;
-								classes = $temp$classes;
-								node = $temp$node;
-								has = $temp$has;
-								transform = $temp$transform;
-								styles = $temp$styles;
-								attrs = $temp$attrs;
-								children = $temp$children;
-								elementAttrs = $temp$elementAttrs;
-								continue gatherAttrRecursive;
-							case 'Navigation':
-								var $temp$classes = classes,
-									$temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'nav', node),
-									$temp$has = has,
-									$temp$transform = transform,
-									$temp$styles = styles,
-									$temp$attrs = attrs,
-									$temp$children = children,
-									$temp$elementAttrs = remaining;
-								classes = $temp$classes;
-								node = $temp$node;
-								has = $temp$has;
-								transform = $temp$transform;
-								styles = $temp$styles;
-								attrs = $temp$attrs;
-								children = $temp$children;
-								elementAttrs = $temp$elementAttrs;
-								continue gatherAttrRecursive;
-							case 'ContentInfo':
-								var $temp$classes = classes,
-									$temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'footer', node),
-									$temp$has = has,
-									$temp$transform = transform,
-									$temp$styles = styles,
-									$temp$attrs = attrs,
-									$temp$children = children,
-									$temp$elementAttrs = remaining;
-								classes = $temp$classes;
-								node = $temp$node;
-								has = $temp$has;
-								transform = $temp$transform;
-								styles = $temp$styles;
-								attrs = $temp$attrs;
-								children = $temp$children;
-								elementAttrs = $temp$elementAttrs;
-								continue gatherAttrRecursive;
-							case 'Complementary':
-								var $temp$classes = classes,
-									$temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'aside', node),
-									$temp$has = has,
-									$temp$transform = transform,
-									$temp$styles = styles,
-									$temp$attrs = attrs,
-									$temp$children = children,
-									$temp$elementAttrs = remaining;
-								classes = $temp$classes;
-								node = $temp$node;
-								has = $temp$has;
-								transform = $temp$transform;
-								styles = $temp$styles;
-								attrs = $temp$attrs;
-								children = $temp$children;
-								elementAttrs = $temp$elementAttrs;
-								continue gatherAttrRecursive;
-							case 'Heading':
-								var i = description.a;
-								if (i <= 1) {
-									var $temp$classes = classes,
-										$temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'h1', node),
-										$temp$has = has,
-										$temp$transform = transform,
-										$temp$styles = styles,
-										$temp$attrs = attrs,
-										$temp$children = children,
-										$temp$elementAttrs = remaining;
-									classes = $temp$classes;
-									node = $temp$node;
-									has = $temp$has;
-									transform = $temp$transform;
-									styles = $temp$styles;
-									attrs = $temp$attrs;
-									children = $temp$children;
-									elementAttrs = $temp$elementAttrs;
-									continue gatherAttrRecursive;
-								} else {
-									if (i < 7) {
-										var $temp$classes = classes,
-											$temp$node = A2(
-											$mdgriffith$elm_ui$Internal$Model$addNodeName,
-											'h' + $elm$core$String$fromInt(i),
-											node),
-											$temp$has = has,
-											$temp$transform = transform,
-											$temp$styles = styles,
-											$temp$attrs = attrs,
-											$temp$children = children,
-											$temp$elementAttrs = remaining;
-										classes = $temp$classes;
-										node = $temp$node;
-										has = $temp$has;
-										transform = $temp$transform;
-										styles = $temp$styles;
-										attrs = $temp$attrs;
-										children = $temp$children;
-										elementAttrs = $temp$elementAttrs;
-										continue gatherAttrRecursive;
-									} else {
-										var $temp$classes = classes,
-											$temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'h6', node),
-											$temp$has = has,
-											$temp$transform = transform,
-											$temp$styles = styles,
-											$temp$attrs = attrs,
-											$temp$children = children,
-											$temp$elementAttrs = remaining;
-										classes = $temp$classes;
-										node = $temp$node;
-										has = $temp$has;
-										transform = $temp$transform;
-										styles = $temp$styles;
-										attrs = $temp$attrs;
-										children = $temp$children;
-										elementAttrs = $temp$elementAttrs;
-										continue gatherAttrRecursive;
-									}
-								}
-							case 'Paragraph':
-								var $temp$classes = classes,
-									$temp$node = node,
-									$temp$has = has,
-									$temp$transform = transform,
-									$temp$styles = styles,
-									$temp$attrs = attrs,
-									$temp$children = children,
-									$temp$elementAttrs = remaining;
-								classes = $temp$classes;
-								node = $temp$node;
-								has = $temp$has;
-								transform = $temp$transform;
-								styles = $temp$styles;
-								attrs = $temp$attrs;
-								children = $temp$children;
-								elementAttrs = $temp$elementAttrs;
-								continue gatherAttrRecursive;
-							case 'Button':
-								var $temp$classes = classes,
-									$temp$node = node,
-									$temp$has = has,
-									$temp$transform = transform,
-									$temp$styles = styles,
-									$temp$attrs = A2(
-									$elm$core$List$cons,
-									A2($elm$virtual_dom$VirtualDom$attribute, 'role', 'button'),
-									attrs),
-									$temp$children = children,
-									$temp$elementAttrs = remaining;
-								classes = $temp$classes;
-								node = $temp$node;
-								has = $temp$has;
-								transform = $temp$transform;
-								styles = $temp$styles;
-								attrs = $temp$attrs;
-								children = $temp$children;
-								elementAttrs = $temp$elementAttrs;
-								continue gatherAttrRecursive;
-							case 'Label':
-								var label = description.a;
-								var $temp$classes = classes,
-									$temp$node = node,
-									$temp$has = has,
-									$temp$transform = transform,
-									$temp$styles = styles,
-									$temp$attrs = A2(
-									$elm$core$List$cons,
-									A2($elm$virtual_dom$VirtualDom$attribute, 'aria-label', label),
-									attrs),
-									$temp$children = children,
-									$temp$elementAttrs = remaining;
-								classes = $temp$classes;
-								node = $temp$node;
-								has = $temp$has;
-								transform = $temp$transform;
-								styles = $temp$styles;
-								attrs = $temp$attrs;
-								children = $temp$children;
-								elementAttrs = $temp$elementAttrs;
-								continue gatherAttrRecursive;
-							case 'LivePolite':
-								var $temp$classes = classes,
-									$temp$node = node,
-									$temp$has = has,
-									$temp$transform = transform,
-									$temp$styles = styles,
-									$temp$attrs = A2(
-									$elm$core$List$cons,
-									A2($elm$virtual_dom$VirtualDom$attribute, 'aria-live', 'polite'),
-									attrs),
-									$temp$children = children,
-									$temp$elementAttrs = remaining;
-								classes = $temp$classes;
-								node = $temp$node;
-								has = $temp$has;
-								transform = $temp$transform;
-								styles = $temp$styles;
-								attrs = $temp$attrs;
-								children = $temp$children;
-								elementAttrs = $temp$elementAttrs;
-								continue gatherAttrRecursive;
-							default:
-								var $temp$classes = classes,
-									$temp$node = node,
-									$temp$has = has,
-									$temp$transform = transform,
-									$temp$styles = styles,
-									$temp$attrs = A2(
-									$elm$core$List$cons,
-									A2($elm$virtual_dom$VirtualDom$attribute, 'aria-live', 'assertive'),
-									attrs),
-									$temp$children = children,
-									$temp$elementAttrs = remaining;
-								classes = $temp$classes;
-								node = $temp$node;
-								has = $temp$has;
-								transform = $temp$transform;
-								styles = $temp$styles;
-								attrs = $temp$attrs;
-								children = $temp$children;
-								elementAttrs = $temp$elementAttrs;
-								continue gatherAttrRecursive;
-						}
-					case 'Nearby':
-						var location = attribute.a;
-						var elem = attribute.b;
-						var newStyles = function () {
-							switch (elem.$) {
-								case 'Empty':
-									return styles;
-								case 'Text':
-									var str = elem.a;
-									return styles;
-								case 'Unstyled':
-									var html = elem.a;
-									return styles;
-								default:
-									var styled = elem.a;
-									return _Utils_ap(styles, styled.styles);
-							}
-						}();
-						var $temp$classes = classes,
-							$temp$node = node,
-							$temp$has = has,
-							$temp$transform = transform,
-							$temp$styles = newStyles,
-							$temp$attrs = attrs,
-							$temp$children = A3($mdgriffith$elm_ui$Internal$Model$addNearbyElement, location, elem, children),
-							$temp$elementAttrs = remaining;
-						classes = $temp$classes;
-						node = $temp$node;
-						has = $temp$has;
-						transform = $temp$transform;
-						styles = $temp$styles;
-						attrs = $temp$attrs;
-						children = $temp$children;
-						elementAttrs = $temp$elementAttrs;
-						continue gatherAttrRecursive;
-					case 'AlignX':
-						var x = attribute.a;
-						if (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$xAlign, has)) {
-							var $temp$classes = classes,
-								$temp$node = node,
-								$temp$has = has,
-								$temp$transform = transform,
-								$temp$styles = styles,
-								$temp$attrs = attrs,
-								$temp$children = children,
-								$temp$elementAttrs = remaining;
-							classes = $temp$classes;
-							node = $temp$node;
-							has = $temp$has;
-							transform = $temp$transform;
-							styles = $temp$styles;
-							attrs = $temp$attrs;
-							children = $temp$children;
-							elementAttrs = $temp$elementAttrs;
-							continue gatherAttrRecursive;
-						} else {
-							var $temp$classes = $mdgriffith$elm_ui$Internal$Model$alignXName(x) + (' ' + classes),
-								$temp$node = node,
-								$temp$has = function (flags) {
-								switch (x.$) {
-									case 'CenterX':
-										return A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$centerX, flags);
-									case 'Right':
-										return A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$alignRight, flags);
-									default:
-										return flags;
-								}
-							}(
-								A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$xAlign, has)),
-								$temp$transform = transform,
-								$temp$styles = styles,
-								$temp$attrs = attrs,
-								$temp$children = children,
-								$temp$elementAttrs = remaining;
-							classes = $temp$classes;
-							node = $temp$node;
-							has = $temp$has;
-							transform = $temp$transform;
-							styles = $temp$styles;
-							attrs = $temp$attrs;
-							children = $temp$children;
-							elementAttrs = $temp$elementAttrs;
-							continue gatherAttrRecursive;
-						}
-					default:
-						var y = attribute.a;
-						if (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$yAlign, has)) {
-							var $temp$classes = classes,
-								$temp$node = node,
-								$temp$has = has,
-								$temp$transform = transform,
-								$temp$styles = styles,
-								$temp$attrs = attrs,
-								$temp$children = children,
-								$temp$elementAttrs = remaining;
-							classes = $temp$classes;
-							node = $temp$node;
-							has = $temp$has;
-							transform = $temp$transform;
-							styles = $temp$styles;
-							attrs = $temp$attrs;
-							children = $temp$children;
-							elementAttrs = $temp$elementAttrs;
-							continue gatherAttrRecursive;
-						} else {
-							var $temp$classes = $mdgriffith$elm_ui$Internal$Model$alignYName(y) + (' ' + classes),
-								$temp$node = node,
-								$temp$has = function (flags) {
-								switch (y.$) {
-									case 'CenterY':
-										return A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$centerY, flags);
-									case 'Bottom':
-										return A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$alignBottom, flags);
-									default:
-										return flags;
-								}
-							}(
-								A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$yAlign, has)),
-								$temp$transform = transform,
-								$temp$styles = styles,
-								$temp$attrs = attrs,
-								$temp$children = children,
-								$temp$elementAttrs = remaining;
-							classes = $temp$classes;
-							node = $temp$node;
-							has = $temp$has;
-							transform = $temp$transform;
-							styles = $temp$styles;
-							attrs = $temp$attrs;
-							children = $temp$children;
-							elementAttrs = $temp$elementAttrs;
-							continue gatherAttrRecursive;
-						}
-				}
-			}
-		}
-	});
-var $mdgriffith$elm_ui$Internal$Model$Untransformed = {$: 'Untransformed'};
-var $mdgriffith$elm_ui$Internal$Model$untransformed = $mdgriffith$elm_ui$Internal$Model$Untransformed;
-var $mdgriffith$elm_ui$Internal$Model$element = F4(
-	function (context, node, attributes, children) {
-		return A3(
-			$mdgriffith$elm_ui$Internal$Model$createElement,
-			context,
-			children,
-			A8(
-				$mdgriffith$elm_ui$Internal$Model$gatherAttrRecursive,
-				$mdgriffith$elm_ui$Internal$Model$contextClasses(context),
-				node,
-				$mdgriffith$elm_ui$Internal$Flag$none,
-				$mdgriffith$elm_ui$Internal$Model$untransformed,
-				_List_Nil,
-				_List_Nil,
-				$mdgriffith$elm_ui$Internal$Model$NoNearbyChildren,
-				$elm$core$List$reverse(attributes)));
-	});
-var $mdgriffith$elm_ui$Internal$Model$Height = function (a) {
-	return {$: 'Height', a: a};
-};
-var $mdgriffith$elm_ui$Element$height = $mdgriffith$elm_ui$Internal$Model$Height;
-var $mdgriffith$elm_ui$Internal$Model$Attr = function (a) {
-	return {$: 'Attr', a: a};
-};
-var $mdgriffith$elm_ui$Internal$Model$htmlClass = function (cls) {
-	return $mdgriffith$elm_ui$Internal$Model$Attr(
-		$elm$html$Html$Attributes$class(cls));
-};
-var $mdgriffith$elm_ui$Internal$Model$Content = {$: 'Content'};
-var $mdgriffith$elm_ui$Element$shrink = $mdgriffith$elm_ui$Internal$Model$Content;
-var $mdgriffith$elm_ui$Internal$Model$Width = function (a) {
-	return {$: 'Width', a: a};
-};
-var $mdgriffith$elm_ui$Element$width = $mdgriffith$elm_ui$Internal$Model$Width;
-var $mdgriffith$elm_ui$Element$column = F2(
-	function (attrs, children) {
-		return A4(
-			$mdgriffith$elm_ui$Internal$Model$element,
-			$mdgriffith$elm_ui$Internal$Model$asColumn,
-			$mdgriffith$elm_ui$Internal$Model$div,
-			A2(
-				$elm$core$List$cons,
-				$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentTop + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.contentLeft)),
-				A2(
-					$elm$core$List$cons,
-					$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink),
-					A2(
-						$elm$core$List$cons,
-						$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),
-						attrs))),
-			$mdgriffith$elm_ui$Internal$Model$Unkeyed(children));
-	});
-var $mdgriffith$elm_ui$Element$el = F2(
-	function (attrs, child) {
-		return A4(
-			$mdgriffith$elm_ui$Internal$Model$element,
-			$mdgriffith$elm_ui$Internal$Model$asEl,
-			$mdgriffith$elm_ui$Internal$Model$div,
-			A2(
-				$elm$core$List$cons,
-				$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),
-				A2(
-					$elm$core$List$cons,
-					$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink),
-					attrs)),
-			$mdgriffith$elm_ui$Internal$Model$Unkeyed(
-				_List_fromArray(
-					[child])));
-	});
-var $mdgriffith$elm_ui$Internal$Model$ImportFont = F2(
-	function (a, b) {
-		return {$: 'ImportFont', a: a, b: b};
-	});
-var $mdgriffith$elm_ui$Element$Font$external = function (_v0) {
-	var url = _v0.url;
-	var name = _v0.name;
-	return A2($mdgriffith$elm_ui$Internal$Model$ImportFont, name, url);
-};
-var $mdgriffith$elm_ui$Internal$Model$FontFamily = F2(
-	function (a, b) {
-		return {$: 'FontFamily', a: a, b: b};
-	});
-var $mdgriffith$elm_ui$Internal$Flag$fontFamily = $mdgriffith$elm_ui$Internal$Flag$flag(5);
-var $elm$core$String$words = _String_words;
-var $mdgriffith$elm_ui$Internal$Model$renderFontClassName = F2(
-	function (font, current) {
-		return _Utils_ap(
-			current,
-			function () {
-				switch (font.$) {
-					case 'Serif':
-						return 'serif';
-					case 'SansSerif':
-						return 'sans-serif';
-					case 'Monospace':
-						return 'monospace';
-					case 'Typeface':
-						var name = font.a;
-						return A2(
-							$elm$core$String$join,
-							'-',
-							$elm$core$String$words(
-								$elm$core$String$toLower(name)));
-					case 'ImportFont':
-						var name = font.a;
-						var url = font.b;
-						return A2(
-							$elm$core$String$join,
-							'-',
-							$elm$core$String$words(
-								$elm$core$String$toLower(name)));
-					default:
-						var name = font.a.name;
-						return A2(
-							$elm$core$String$join,
-							'-',
-							$elm$core$String$words(
-								$elm$core$String$toLower(name)));
-				}
-			}());
-	});
-var $mdgriffith$elm_ui$Element$Font$family = function (families) {
-	return A2(
-		$mdgriffith$elm_ui$Internal$Model$StyleClass,
-		$mdgriffith$elm_ui$Internal$Flag$fontFamily,
-		A2(
-			$mdgriffith$elm_ui$Internal$Model$FontFamily,
-			A3($elm$core$List$foldl, $mdgriffith$elm_ui$Internal$Model$renderFontClassName, 'ff-', families),
-			families));
-};
-var $mdgriffith$elm_ui$Internal$Model$Fill = function (a) {
-	return {$: 'Fill', a: a};
-};
-var $mdgriffith$elm_ui$Element$fill = $mdgriffith$elm_ui$Internal$Model$Fill(1);
-var $elm$html$Html$Attributes$alt = $elm$html$Html$Attributes$stringProperty('alt');
-var $elm$html$Html$Attributes$src = function (url) {
-	return A2(
-		$elm$html$Html$Attributes$stringProperty,
-		'src',
-		_VirtualDom_noJavaScriptOrHtmlUri(url));
-};
-var $mdgriffith$elm_ui$Element$image = F2(
-	function (attrs, _v0) {
-		var src = _v0.src;
-		var description = _v0.description;
-		var imageAttributes = A2(
-			$elm$core$List$filter,
-			function (a) {
-				switch (a.$) {
-					case 'Width':
-						return true;
-					case 'Height':
-						return true;
-					default:
-						return false;
-				}
-			},
-			attrs);
-		return A4(
-			$mdgriffith$elm_ui$Internal$Model$element,
-			$mdgriffith$elm_ui$Internal$Model$asEl,
-			$mdgriffith$elm_ui$Internal$Model$div,
-			A2(
-				$elm$core$List$cons,
-				$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.imageContainer),
-				attrs),
-			$mdgriffith$elm_ui$Internal$Model$Unkeyed(
-				_List_fromArray(
-					[
-						A4(
-						$mdgriffith$elm_ui$Internal$Model$element,
-						$mdgriffith$elm_ui$Internal$Model$asEl,
-						$mdgriffith$elm_ui$Internal$Model$NodeName('img'),
-						_Utils_ap(
-							_List_fromArray(
-								[
-									$mdgriffith$elm_ui$Internal$Model$Attr(
-									$elm$html$Html$Attributes$src(src)),
-									$mdgriffith$elm_ui$Internal$Model$Attr(
-									$elm$html$Html$Attributes$alt(description))
-								]),
-							imageAttributes),
-						$mdgriffith$elm_ui$Internal$Model$Unkeyed(_List_Nil))
-					])));
-	});
-var $mdgriffith$elm_ui$Internal$Model$OnlyDynamic = F2(
-	function (a, b) {
-		return {$: 'OnlyDynamic', a: a, b: b};
-	});
-var $mdgriffith$elm_ui$Internal$Model$StaticRootAndDynamic = F2(
-	function (a, b) {
-		return {$: 'StaticRootAndDynamic', a: a, b: b};
-	});
-var $mdgriffith$elm_ui$Internal$Model$AllowHover = {$: 'AllowHover'};
-var $mdgriffith$elm_ui$Internal$Model$Layout = {$: 'Layout'};
-var $mdgriffith$elm_ui$Internal$Model$focusDefaultStyle = {
-	backgroundColor: $elm$core$Maybe$Nothing,
-	borderColor: $elm$core$Maybe$Nothing,
-	shadow: $elm$core$Maybe$Just(
-		{
-			blur: 0,
-			color: A4($mdgriffith$elm_ui$Internal$Model$Rgba, 155 / 255, 203 / 255, 1, 1),
-			offset: _Utils_Tuple2(0, 0),
-			size: 3
-		})
-};
-var $mdgriffith$elm_ui$Internal$Model$optionsToRecord = function (options) {
-	var combine = F2(
-		function (opt, record) {
-			switch (opt.$) {
-				case 'HoverOption':
-					var hoverable = opt.a;
-					var _v4 = record.hover;
-					if (_v4.$ === 'Nothing') {
-						return _Utils_update(
-							record,
-							{
-								hover: $elm$core$Maybe$Just(hoverable)
-							});
-					} else {
-						return record;
-					}
-				case 'FocusStyleOption':
-					var focusStyle = opt.a;
-					var _v5 = record.focus;
-					if (_v5.$ === 'Nothing') {
-						return _Utils_update(
-							record,
-							{
-								focus: $elm$core$Maybe$Just(focusStyle)
-							});
-					} else {
-						return record;
-					}
-				default:
-					var renderMode = opt.a;
-					var _v6 = record.mode;
-					if (_v6.$ === 'Nothing') {
-						return _Utils_update(
-							record,
-							{
-								mode: $elm$core$Maybe$Just(renderMode)
-							});
-					} else {
-						return record;
-					}
-			}
-		});
-	var andFinally = function (record) {
-		return {
-			focus: function () {
-				var _v0 = record.focus;
-				if (_v0.$ === 'Nothing') {
-					return $mdgriffith$elm_ui$Internal$Model$focusDefaultStyle;
-				} else {
-					var focusable = _v0.a;
-					return focusable;
-				}
-			}(),
-			hover: function () {
-				var _v1 = record.hover;
-				if (_v1.$ === 'Nothing') {
-					return $mdgriffith$elm_ui$Internal$Model$AllowHover;
-				} else {
-					var hoverable = _v1.a;
-					return hoverable;
-				}
-			}(),
-			mode: function () {
-				var _v2 = record.mode;
-				if (_v2.$ === 'Nothing') {
-					return $mdgriffith$elm_ui$Internal$Model$Layout;
-				} else {
-					var actualMode = _v2.a;
-					return actualMode;
-				}
-			}()
-		};
-	};
-	return andFinally(
-		A3(
-			$elm$core$List$foldr,
-			combine,
-			{focus: $elm$core$Maybe$Nothing, hover: $elm$core$Maybe$Nothing, mode: $elm$core$Maybe$Nothing},
-			options));
-};
-var $mdgriffith$elm_ui$Internal$Model$toHtml = F2(
-	function (mode, el) {
-		switch (el.$) {
-			case 'Unstyled':
-				var html = el.a;
-				return html($mdgriffith$elm_ui$Internal$Model$asEl);
-			case 'Styled':
-				var styles = el.a.styles;
-				var html = el.a.html;
-				return A2(
-					html,
-					mode(styles),
-					$mdgriffith$elm_ui$Internal$Model$asEl);
-			case 'Text':
-				var text = el.a;
-				return $mdgriffith$elm_ui$Internal$Model$textElement(text);
-			default:
-				return $mdgriffith$elm_ui$Internal$Model$textElement('');
-		}
-	});
-var $mdgriffith$elm_ui$Internal$Model$renderRoot = F3(
-	function (optionList, attributes, child) {
-		var options = $mdgriffith$elm_ui$Internal$Model$optionsToRecord(optionList);
-		var embedStyle = function () {
-			var _v0 = options.mode;
-			if (_v0.$ === 'NoStaticStyleSheet') {
-				return $mdgriffith$elm_ui$Internal$Model$OnlyDynamic(options);
-			} else {
-				return $mdgriffith$elm_ui$Internal$Model$StaticRootAndDynamic(options);
-			}
-		}();
-		return A2(
-			$mdgriffith$elm_ui$Internal$Model$toHtml,
-			embedStyle,
-			A4(
-				$mdgriffith$elm_ui$Internal$Model$element,
-				$mdgriffith$elm_ui$Internal$Model$asEl,
-				$mdgriffith$elm_ui$Internal$Model$div,
-				attributes,
-				$mdgriffith$elm_ui$Internal$Model$Unkeyed(
-					_List_fromArray(
-						[child]))));
-	});
-var $mdgriffith$elm_ui$Internal$Model$FontSize = function (a) {
-	return {$: 'FontSize', a: a};
-};
-var $mdgriffith$elm_ui$Internal$Model$SansSerif = {$: 'SansSerif'};
-var $mdgriffith$elm_ui$Internal$Model$Typeface = function (a) {
-	return {$: 'Typeface', a: a};
-};
-var $mdgriffith$elm_ui$Internal$Flag$fontColor = $mdgriffith$elm_ui$Internal$Flag$flag(14);
-var $mdgriffith$elm_ui$Internal$Flag$fontSize = $mdgriffith$elm_ui$Internal$Flag$flag(4);
-var $mdgriffith$elm_ui$Internal$Model$rootStyle = function () {
-	var families = _List_fromArray(
-		[
-			$mdgriffith$elm_ui$Internal$Model$Typeface('Open Sans'),
-			$mdgriffith$elm_ui$Internal$Model$Typeface('Helvetica'),
-			$mdgriffith$elm_ui$Internal$Model$Typeface('Verdana'),
-			$mdgriffith$elm_ui$Internal$Model$SansSerif
-		]);
-	return _List_fromArray(
-		[
-			A2(
-			$mdgriffith$elm_ui$Internal$Model$StyleClass,
-			$mdgriffith$elm_ui$Internal$Flag$bgColor,
-			A3(
-				$mdgriffith$elm_ui$Internal$Model$Colored,
-				'bg-' + $mdgriffith$elm_ui$Internal$Model$formatColorClass(
-					A4($mdgriffith$elm_ui$Internal$Model$Rgba, 1, 1, 1, 0)),
-				'background-color',
-				A4($mdgriffith$elm_ui$Internal$Model$Rgba, 1, 1, 1, 0))),
-			A2(
-			$mdgriffith$elm_ui$Internal$Model$StyleClass,
-			$mdgriffith$elm_ui$Internal$Flag$fontColor,
-			A3(
-				$mdgriffith$elm_ui$Internal$Model$Colored,
-				'fc-' + $mdgriffith$elm_ui$Internal$Model$formatColorClass(
-					A4($mdgriffith$elm_ui$Internal$Model$Rgba, 0, 0, 0, 1)),
-				'color',
-				A4($mdgriffith$elm_ui$Internal$Model$Rgba, 0, 0, 0, 1))),
-			A2(
-			$mdgriffith$elm_ui$Internal$Model$StyleClass,
-			$mdgriffith$elm_ui$Internal$Flag$fontSize,
-			$mdgriffith$elm_ui$Internal$Model$FontSize(20)),
-			A2(
-			$mdgriffith$elm_ui$Internal$Model$StyleClass,
-			$mdgriffith$elm_ui$Internal$Flag$fontFamily,
-			A2(
-				$mdgriffith$elm_ui$Internal$Model$FontFamily,
-				A3($elm$core$List$foldl, $mdgriffith$elm_ui$Internal$Model$renderFontClassName, 'font-', families),
-				families))
-		]);
-}();
-var $mdgriffith$elm_ui$Element$layoutWith = F3(
-	function (_v0, attrs, child) {
-		var options = _v0.options;
-		return A3(
-			$mdgriffith$elm_ui$Internal$Model$renderRoot,
-			options,
-			A2(
-				$elm$core$List$cons,
-				$mdgriffith$elm_ui$Internal$Model$htmlClass(
-					A2(
-						$elm$core$String$join,
-						' ',
-						_List_fromArray(
-							[$mdgriffith$elm_ui$Internal$Style$classes.root, $mdgriffith$elm_ui$Internal$Style$classes.any, $mdgriffith$elm_ui$Internal$Style$classes.single]))),
-				_Utils_ap($mdgriffith$elm_ui$Internal$Model$rootStyle, attrs)),
-			child);
-	});
-var $mdgriffith$elm_ui$Internal$Model$PaddingStyle = F5(
-	function (a, b, c, d, e) {
-		return {$: 'PaddingStyle', a: a, b: b, c: c, d: d, e: e};
-	});
-var $mdgriffith$elm_ui$Internal$Flag$padding = $mdgriffith$elm_ui$Internal$Flag$flag(2);
-var $mdgriffith$elm_ui$Element$padding = function (x) {
-	var f = x;
-	return A2(
-		$mdgriffith$elm_ui$Internal$Model$StyleClass,
-		$mdgriffith$elm_ui$Internal$Flag$padding,
-		A5(
-			$mdgriffith$elm_ui$Internal$Model$PaddingStyle,
-			'p-' + $elm$core$String$fromInt(x),
-			f,
-			f,
-			f,
-			f));
-};
-var $mdgriffith$elm_ui$Element$paddingXY = F2(
-	function (x, y) {
-		if (_Utils_eq(x, y)) {
-			var f = x;
-			return A2(
-				$mdgriffith$elm_ui$Internal$Model$StyleClass,
-				$mdgriffith$elm_ui$Internal$Flag$padding,
-				A5(
-					$mdgriffith$elm_ui$Internal$Model$PaddingStyle,
-					'p-' + $elm$core$String$fromInt(x),
-					f,
-					f,
-					f,
-					f));
-		} else {
-			var yFloat = y;
-			var xFloat = x;
-			return A2(
-				$mdgriffith$elm_ui$Internal$Model$StyleClass,
-				$mdgriffith$elm_ui$Internal$Flag$padding,
-				A5(
-					$mdgriffith$elm_ui$Internal$Model$PaddingStyle,
-					'p-' + ($elm$core$String$fromInt(x) + ('-' + $elm$core$String$fromInt(y))),
-					yFloat,
-					xFloat,
-					yFloat,
-					xFloat));
-		}
-	});
-var $mdgriffith$elm_ui$Internal$Model$Px = function (a) {
-	return {$: 'Px', a: a};
-};
-var $mdgriffith$elm_ui$Element$px = $mdgriffith$elm_ui$Internal$Model$Px;
-var $mdgriffith$elm_ui$Internal$Model$AsRow = {$: 'AsRow'};
-var $mdgriffith$elm_ui$Internal$Model$asRow = $mdgriffith$elm_ui$Internal$Model$AsRow;
-var $mdgriffith$elm_ui$Element$row = F2(
-	function (attrs, children) {
-		return A4(
-			$mdgriffith$elm_ui$Internal$Model$element,
-			$mdgriffith$elm_ui$Internal$Model$asRow,
-			$mdgriffith$elm_ui$Internal$Model$div,
-			A2(
-				$elm$core$List$cons,
-				$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentLeft + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.contentCenterY)),
-				A2(
-					$elm$core$List$cons,
-					$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),
-					A2(
-						$elm$core$List$cons,
-						$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink),
-						attrs))),
-			$mdgriffith$elm_ui$Internal$Model$Unkeyed(children));
-	});
-var $mdgriffith$elm_ui$Element$Font$sansSerif = $mdgriffith$elm_ui$Internal$Model$SansSerif;
-var $elm$core$Basics$pow = _Basics_pow;
-var $mdgriffith$elm_ui$Element$modular = F3(
-	function (normal, ratio, rescale) {
-		return (!rescale) ? normal : ((rescale < 0) ? (normal * A2($elm$core$Basics$pow, ratio, rescale)) : (normal * A2($elm$core$Basics$pow, ratio, rescale - 1)));
-	});
-var $author$project$Morphir$Web$DevelopMain$scaled = A2(
-	$elm$core$Basics$composeR,
-	A2($mdgriffith$elm_ui$Element$modular, 12, 1.25),
-	$elm$core$Basics$round);
-var $mdgriffith$elm_ui$Element$Font$size = function (i) {
-	return A2(
-		$mdgriffith$elm_ui$Internal$Model$StyleClass,
-		$mdgriffith$elm_ui$Internal$Flag$fontSize,
-		$mdgriffith$elm_ui$Internal$Model$FontSize(i));
-};
-var $mdgriffith$elm_ui$Internal$Model$Class = F2(
-	function (a, b) {
-		return {$: 'Class', a: a, b: b};
-	});
-var $mdgriffith$elm_ui$Internal$Flag$fontWeight = $mdgriffith$elm_ui$Internal$Flag$flag(13);
-var $mdgriffith$elm_ui$Element$Font$bold = A2($mdgriffith$elm_ui$Internal$Model$Class, $mdgriffith$elm_ui$Internal$Flag$fontWeight, $mdgriffith$elm_ui$Internal$Style$classes.bold);
-var $mdgriffith$elm_ui$Internal$Model$Button = {$: 'Button'};
-var $mdgriffith$elm_ui$Internal$Model$Describe = function (a) {
-	return {$: 'Describe', a: a};
-};
-var $elm$json$Json$Encode$bool = _Json_wrap;
-var $elm$html$Html$Attributes$boolProperty = F2(
-	function (key, bool) {
-		return A2(
-			_VirtualDom_property,
-			key,
-			$elm$json$Json$Encode$bool(bool));
-	});
-var $elm$html$Html$Attributes$disabled = $elm$html$Html$Attributes$boolProperty('disabled');
-var $mdgriffith$elm_ui$Element$Input$enter = 'Enter';
-var $mdgriffith$elm_ui$Internal$Model$NoAttribute = {$: 'NoAttribute'};
-var $mdgriffith$elm_ui$Element$Input$hasFocusStyle = function (attr) {
-	if (((attr.$ === 'StyleClass') && (attr.b.$ === 'PseudoSelector')) && (attr.b.a.$ === 'Focus')) {
-		var _v1 = attr.b;
-		var _v2 = _v1.a;
-		return true;
-	} else {
-		return false;
-	}
-};
-var $mdgriffith$elm_ui$Element$Input$focusDefault = function (attrs) {
-	return A2($elm$core$List$any, $mdgriffith$elm_ui$Element$Input$hasFocusStyle, attrs) ? $mdgriffith$elm_ui$Internal$Model$NoAttribute : $mdgriffith$elm_ui$Internal$Model$htmlClass('focusable');
-};
-var $elm$core$Basics$composeL = F3(
-	function (g, f, x) {
-		return g(
-			f(x));
-	});
-var $elm$virtual_dom$VirtualDom$Normal = function (a) {
-	return {$: 'Normal', a: a};
-};
-var $elm$virtual_dom$VirtualDom$on = _VirtualDom_on;
-var $elm$html$Html$Events$on = F2(
-	function (event, decoder) {
-		return A2(
-			$elm$virtual_dom$VirtualDom$on,
-			event,
-			$elm$virtual_dom$VirtualDom$Normal(decoder));
-	});
-var $elm$html$Html$Events$onClick = function (msg) {
-	return A2(
-		$elm$html$Html$Events$on,
-		'click',
-		$elm$json$Json$Decode$succeed(msg));
-};
-var $mdgriffith$elm_ui$Element$Events$onClick = A2($elm$core$Basics$composeL, $mdgriffith$elm_ui$Internal$Model$Attr, $elm$html$Html$Events$onClick);
-var $elm$virtual_dom$VirtualDom$MayPreventDefault = function (a) {
-	return {$: 'MayPreventDefault', a: a};
-};
-var $elm$html$Html$Events$preventDefaultOn = F2(
-	function (event, decoder) {
-		return A2(
-			$elm$virtual_dom$VirtualDom$on,
-			event,
-			$elm$virtual_dom$VirtualDom$MayPreventDefault(decoder));
-	});
-var $mdgriffith$elm_ui$Element$Input$onKeyLookup = function (lookup) {
-	var decode = function (code) {
-		var _v0 = lookup(code);
-		if (_v0.$ === 'Nothing') {
-			return $elm$json$Json$Decode$fail('No key matched');
-		} else {
-			var msg = _v0.a;
-			return $elm$json$Json$Decode$succeed(msg);
-		}
-	};
-	var isKey = A2(
-		$elm$json$Json$Decode$andThen,
-		decode,
-		A2($elm$json$Json$Decode$field, 'key', $elm$json$Json$Decode$string));
-	return $mdgriffith$elm_ui$Internal$Model$Attr(
-		A2(
-			$elm$html$Html$Events$preventDefaultOn,
-			'keydown',
-			A2(
-				$elm$json$Json$Decode$map,
-				function (fired) {
-					return _Utils_Tuple2(fired, true);
-				},
-				isKey)));
-};
-var $mdgriffith$elm_ui$Internal$Flag$cursor = $mdgriffith$elm_ui$Internal$Flag$flag(21);
-var $mdgriffith$elm_ui$Element$pointer = A2($mdgriffith$elm_ui$Internal$Model$Class, $mdgriffith$elm_ui$Internal$Flag$cursor, $mdgriffith$elm_ui$Internal$Style$classes.cursorPointer);
-var $mdgriffith$elm_ui$Element$Input$space = ' ';
-var $elm$html$Html$Attributes$tabindex = function (n) {
-	return A2(
-		_VirtualDom_attribute,
-		'tabIndex',
-		$elm$core$String$fromInt(n));
-};
-var $mdgriffith$elm_ui$Element$Input$button = F2(
-	function (attrs, _v0) {
-		var onPress = _v0.onPress;
-		var label = _v0.label;
-		return A4(
-			$mdgriffith$elm_ui$Internal$Model$element,
-			$mdgriffith$elm_ui$Internal$Model$asEl,
-			$mdgriffith$elm_ui$Internal$Model$div,
-			A2(
-				$elm$core$List$cons,
-				$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),
-				A2(
-					$elm$core$List$cons,
-					$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink),
-					A2(
-						$elm$core$List$cons,
-						$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentCenterX + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.contentCenterY + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.seButton + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.noTextSelection)))))),
-						A2(
-							$elm$core$List$cons,
-							$mdgriffith$elm_ui$Element$pointer,
-							A2(
-								$elm$core$List$cons,
-								$mdgriffith$elm_ui$Element$Input$focusDefault(attrs),
-								A2(
-									$elm$core$List$cons,
-									$mdgriffith$elm_ui$Internal$Model$Describe($mdgriffith$elm_ui$Internal$Model$Button),
-									A2(
-										$elm$core$List$cons,
-										$mdgriffith$elm_ui$Internal$Model$Attr(
-											$elm$html$Html$Attributes$tabindex(0)),
-										function () {
-											if (onPress.$ === 'Nothing') {
-												return A2(
-													$elm$core$List$cons,
-													$mdgriffith$elm_ui$Internal$Model$Attr(
-														$elm$html$Html$Attributes$disabled(true)),
-													attrs);
-											} else {
-												var msg = onPress.a;
-												return A2(
-													$elm$core$List$cons,
-													$mdgriffith$elm_ui$Element$Events$onClick(msg),
-													A2(
-														$elm$core$List$cons,
-														$mdgriffith$elm_ui$Element$Input$onKeyLookup(
-															function (code) {
-																return _Utils_eq(code, $mdgriffith$elm_ui$Element$Input$enter) ? $elm$core$Maybe$Just(msg) : (_Utils_eq(code, $mdgriffith$elm_ui$Element$Input$space) ? $elm$core$Maybe$Just(msg) : $elm$core$Maybe$Nothing);
-															}),
-														attrs));
-											}
-										}()))))))),
-			$mdgriffith$elm_ui$Internal$Model$Unkeyed(
-				_List_fromArray(
-					[label])));
-	});
-var $author$project$Morphir$Web$Theme$Light$gray = A3($mdgriffith$elm_ui$Element$rgb255, 141, 141, 141);
-var $author$project$Morphir$Web$Theme$Light$orange = A3($mdgriffith$elm_ui$Element$rgb255, 255, 105, 0);
-var $mdgriffith$elm_ui$Internal$Flag$borderRound = $mdgriffith$elm_ui$Internal$Flag$flag(17);
-var $mdgriffith$elm_ui$Element$Border$rounded = function (radius) {
-	return A2(
-		$mdgriffith$elm_ui$Internal$Model$StyleClass,
-		$mdgriffith$elm_ui$Internal$Flag$borderRound,
-		A3(
-			$mdgriffith$elm_ui$Internal$Model$Single,
-			'br-' + $elm$core$String$fromInt(radius),
-			'border-radius',
-			$elm$core$String$fromInt(radius) + 'px'));
-};
-var $mdgriffith$elm_ui$Internal$Model$Text = function (a) {
-	return {$: 'Text', a: a};
-};
-var $mdgriffith$elm_ui$Element$text = function (content) {
-	return $mdgriffith$elm_ui$Internal$Model$Text(content);
-};
-var $author$project$Morphir$Web$Theme$Light$theme = function (scaled) {
-	return {
-		button: function (options) {
-			return A2(
-				$mdgriffith$elm_ui$Element$Input$button,
-				_List_fromArray(
-					[
-						$mdgriffith$elm_ui$Element$Background$color($author$project$Morphir$Web$Theme$Light$orange),
-						$mdgriffith$elm_ui$Element$padding(
-						scaled(1)),
-						$mdgriffith$elm_ui$Element$Border$rounded(
-						scaled(-2)),
-						$mdgriffith$elm_ui$Element$Font$size(
-						scaled(2)),
-						$mdgriffith$elm_ui$Element$Font$bold
-					]),
-				{
-					label: $mdgriffith$elm_ui$Element$text(options.label),
-					onPress: $elm$core$Maybe$Just(options.onPress)
-				});
-		},
-		disabledButton: function (label) {
-			return A2(
-				$mdgriffith$elm_ui$Element$el,
-				_List_fromArray(
-					[
-						$mdgriffith$elm_ui$Element$Background$color($author$project$Morphir$Web$Theme$Light$gray),
-						$mdgriffith$elm_ui$Element$padding(
-						scaled(1)),
-						$mdgriffith$elm_ui$Element$Border$rounded(
-						scaled(-2)),
-						$mdgriffith$elm_ui$Element$Font$size(
-						scaled(2)),
-						$mdgriffith$elm_ui$Element$Font$bold
-					]),
-				$mdgriffith$elm_ui$Element$text(label));
-		},
-		heading: F2(
-			function (level, label) {
-				return A2(
-					$mdgriffith$elm_ui$Element$el,
-					_List_fromArray(
-						[
-							$mdgriffith$elm_ui$Element$Font$size(
-							scaled(6 - level)),
-							A2(
-							$mdgriffith$elm_ui$Element$paddingXY,
-							0,
-							scaled(3 - level))
-						]),
-					$mdgriffith$elm_ui$Element$text(label));
-			})
-	};
-};
-var $author$project$Morphir$Web$DevelopMain$theme = $author$project$Morphir$Web$Theme$Light$theme($author$project$Morphir$Web$DevelopMain$scaled);
-var $mdgriffith$elm_ui$Internal$Model$SpacingStyle = F3(
-	function (a, b, c) {
-		return {$: 'SpacingStyle', a: a, b: b, c: c};
-	});
-var $mdgriffith$elm_ui$Internal$Flag$spacing = $mdgriffith$elm_ui$Internal$Flag$flag(3);
-var $mdgriffith$elm_ui$Internal$Model$spacingName = F2(
-	function (x, y) {
-		return 'spacing-' + ($elm$core$String$fromInt(x) + ('-' + $elm$core$String$fromInt(y)));
-	});
-var $mdgriffith$elm_ui$Element$spacing = function (x) {
-	return A2(
-		$mdgriffith$elm_ui$Internal$Model$StyleClass,
-		$mdgriffith$elm_ui$Internal$Flag$spacing,
-		A3(
-			$mdgriffith$elm_ui$Internal$Model$SpacingStyle,
-			A2($mdgriffith$elm_ui$Internal$Model$spacingName, x, x),
-			x,
-			x));
-};
-var $elm$core$Debug$toString = _Debug_toString;
-var $author$project$Morphir$Web$DevelopMain$InvalidArgumentValue = F2(
-	function (a, b) {
-		return {$: 'InvalidArgumentValue', a: a, b: b};
-	});
-var $author$project$Morphir$Web$DevelopMain$UpdateArgumentValue = F2(
-	function (a, b) {
-		return {$: 'UpdateArgumentValue', a: a, b: b};
-	});
-var $mdgriffith$elm_ui$Internal$Flag$borderColor = $mdgriffith$elm_ui$Internal$Flag$flag(28);
-var $mdgriffith$elm_ui$Element$Border$color = function (clr) {
-	return A2(
-		$mdgriffith$elm_ui$Internal$Model$StyleClass,
-		$mdgriffith$elm_ui$Internal$Flag$borderColor,
-		A3(
-			$mdgriffith$elm_ui$Internal$Model$Colored,
-			'bc-' + $mdgriffith$elm_ui$Internal$Model$formatColorClass(clr),
-			'border-color',
-			clr));
-};
-var $elm$html$Html$input = _VirtualDom_node('input');
-var $elm$html$Html$Events$alwaysStop = function (x) {
-	return _Utils_Tuple2(x, true);
-};
-var $elm$virtual_dom$VirtualDom$MayStopPropagation = function (a) {
-	return {$: 'MayStopPropagation', a: a};
-};
-var $elm$html$Html$Events$stopPropagationOn = F2(
-	function (event, decoder) {
-		return A2(
-			$elm$virtual_dom$VirtualDom$on,
-			event,
-			$elm$virtual_dom$VirtualDom$MayStopPropagation(decoder));
-	});
-var $elm$json$Json$Decode$at = F2(
-	function (fields, decoder) {
-		return A3($elm$core$List$foldr, $elm$json$Json$Decode$field, decoder, fields);
-	});
-var $elm$html$Html$Events$targetValue = A2(
-	$elm$json$Json$Decode$at,
-	_List_fromArray(
-		['target', 'value']),
-	$elm$json$Json$Decode$string);
-var $elm$html$Html$Events$onInput = function (tagger) {
-	return A2(
-		$elm$html$Html$Events$stopPropagationOn,
-		'input',
-		A2(
-			$elm$json$Json$Decode$map,
-			$elm$html$Html$Events$alwaysStop,
-			A2($elm$json$Json$Decode$map, tagger, $elm$html$Html$Events$targetValue)));
-};
-var $elm$html$Html$Attributes$placeholder = $elm$html$Html$Attributes$stringProperty('placeholder');
-var $elm$core$String$toFloat = _String_toFloat;
-var $author$project$Morphir$Visual$Edit$editFloat = F2(
-	function (valueUpdated, invalidValue) {
-		return A2(
-			$elm$html$Html$input,
-			_List_fromArray(
-				[
-					$elm$html$Html$Attributes$placeholder('Start typing a floating-point value ...'),
-					$elm$html$Html$Events$onInput(
-					function (updatedText) {
-						return A2(
-							$elm$core$Maybe$withDefault,
-							invalidValue('needs to be a a floating-point value'),
-							A2(
-								$elm$core$Maybe$map,
-								function (_float) {
-									return valueUpdated(
-										A2(
-											$author$project$Morphir$IR$Value$Literal,
-											_Utils_Tuple0,
-											$author$project$Morphir$IR$Literal$FloatLiteral(_float)));
-								},
-								$elm$core$String$toFloat(updatedText)));
-					})
-				]),
-			_List_Nil);
-	});
-var $author$project$Morphir$Visual$Edit$editInt = F2(
-	function (valueUpdated, invalidValue) {
-		return A2(
-			$elm$html$Html$input,
-			_List_fromArray(
-				[
-					$elm$html$Html$Attributes$placeholder('Start typing an integer value ...'),
-					$elm$html$Html$Events$onInput(
-					function (updatedText) {
-						return A2(
-							$elm$core$Maybe$withDefault,
-							invalidValue('needs to be an integer value'),
-							A2(
-								$elm$core$Maybe$map,
-								function (_int) {
-									return valueUpdated(
-										A2(
-											$author$project$Morphir$IR$Value$Literal,
-											_Utils_Tuple0,
-											$author$project$Morphir$IR$Literal$IntLiteral(_int)));
-								},
-								$elm$core$String$toInt(updatedText)));
-					})
-				]),
-			_List_Nil);
-	});
-var $author$project$Morphir$IR$SDK$Basics$moduleName = $author$project$Morphir$IR$Path$fromString('Basics');
-var $author$project$Morphir$IR$QName$fromName = F2(
-	function (modulePath, localName) {
-		return A2($author$project$Morphir$IR$QName$QName, modulePath, localName);
-	});
-var $author$project$Morphir$IR$QName$getLocalName = function (_v0) {
-	var localName = _v0.b;
-	return localName;
-};
-var $author$project$Morphir$IR$QName$getModulePath = function (_v0) {
-	var modulePath = _v0.a;
-	return modulePath;
-};
-var $author$project$Morphir$IR$FQName$fromQName = F2(
-	function (packagePath, qName) {
-		return A3(
-			$author$project$Morphir$IR$FQName$FQName,
-			packagePath,
-			$author$project$Morphir$IR$QName$getModulePath(qName),
-			$author$project$Morphir$IR$QName$getLocalName(qName));
-	});
-var $author$project$Morphir$IR$SDK$Common$packageName = $author$project$Morphir$IR$Path$fromString('Morphir.SDK');
-var $author$project$Morphir$IR$SDK$Common$toFQName = F2(
-	function (modulePath, localName) {
-		return A2(
-			$author$project$Morphir$IR$FQName$fromQName,
-			$author$project$Morphir$IR$SDK$Common$packageName,
-			A2(
-				$author$project$Morphir$IR$QName$fromName,
-				modulePath,
-				$author$project$Morphir$IR$Name$fromString(localName)));
-	});
-var $author$project$Morphir$IR$SDK$Basics$floatType = function (attributes) {
-	return A3(
-		$author$project$Morphir$IR$Type$Reference,
-		attributes,
-		A2($author$project$Morphir$IR$SDK$Common$toFQName, $author$project$Morphir$IR$SDK$Basics$moduleName, 'Float'),
-		_List_Nil);
-};
-var $author$project$Morphir$IR$SDK$Basics$intType = function (attributes) {
-	return A3(
-		$author$project$Morphir$IR$Type$Reference,
-		attributes,
-		A2($author$project$Morphir$IR$SDK$Common$toFQName, $author$project$Morphir$IR$SDK$Basics$moduleName, 'Int'),
-		_List_Nil);
-};
-var $author$project$Morphir$Visual$Edit$editValue = F3(
-	function (valueType, valueUpdated, invalidValue) {
-		return _Utils_eq(
-			valueType,
-			$author$project$Morphir$IR$SDK$Basics$intType(_Utils_Tuple0)) ? A2($author$project$Morphir$Visual$Edit$editInt, valueUpdated, invalidValue) : (_Utils_eq(
-			valueType,
-			$author$project$Morphir$IR$SDK$Basics$floatType(_Utils_Tuple0)) ? A2($author$project$Morphir$Visual$Edit$editFloat, valueUpdated, invalidValue) : $elm$html$Html$text('Unknown value type'));
-	});
-var $elm$core$Basics$always = F2(
-	function (a, _v0) {
-		return a;
-	});
-var $mdgriffith$elm_ui$Internal$Model$unstyled = A2($elm$core$Basics$composeL, $mdgriffith$elm_ui$Internal$Model$Unstyled, $elm$core$Basics$always);
-var $mdgriffith$elm_ui$Element$html = $mdgriffith$elm_ui$Internal$Model$unstyled;
-var $author$project$Morphir$IR$Name$toList = function (words) {
-	return words;
-};
-var $elm$core$String$toUpper = _String_toUpper;
-var $author$project$Morphir$IR$Name$toHumanWords = function (name) {
-	var words = $author$project$Morphir$IR$Name$toList(name);
-	var join = function (abbrev) {
-		return $elm$core$String$toUpper(
-			A2($elm$core$String$join, '', abbrev));
-	};
-	var process = F3(
-		function (prefix, abbrev, suffix) {
-			process:
-			while (true) {
-				if (!suffix.b) {
-					return $elm$core$List$isEmpty(abbrev) ? prefix : A2(
-						$elm$core$List$append,
-						prefix,
-						_List_fromArray(
-							[
-								join(abbrev)
-							]));
-				} else {
-					var first = suffix.a;
-					var rest = suffix.b;
-					if ($elm$core$String$length(first) === 1) {
-						var $temp$prefix = prefix,
-							$temp$abbrev = A2(
-							$elm$core$List$append,
-							abbrev,
-							_List_fromArray(
-								[first])),
-							$temp$suffix = rest;
-						prefix = $temp$prefix;
-						abbrev = $temp$abbrev;
-						suffix = $temp$suffix;
-						continue process;
-					} else {
-						if (!abbrev.b) {
-							var $temp$prefix = A2(
-								$elm$core$List$append,
-								prefix,
-								_List_fromArray(
-									[first])),
-								$temp$abbrev = _List_Nil,
-								$temp$suffix = rest;
-							prefix = $temp$prefix;
-							abbrev = $temp$abbrev;
-							suffix = $temp$suffix;
-							continue process;
-						} else {
-							var $temp$prefix = A2(
-								$elm$core$List$append,
-								prefix,
-								_List_fromArray(
-									[
-										join(abbrev),
-										first
-									])),
-								$temp$abbrev = _List_Nil,
-								$temp$suffix = rest;
-							prefix = $temp$prefix;
-							abbrev = $temp$abbrev;
-							suffix = $temp$suffix;
-							continue process;
-						}
-					}
-				}
-			}
-		});
-	return A3(process, _List_Nil, _List_Nil, words);
-};
-var $mdgriffith$elm_ui$Internal$Model$BorderWidth = F5(
-	function (a, b, c, d, e) {
-		return {$: 'BorderWidth', a: a, b: b, c: c, d: d, e: e};
-	});
-var $mdgriffith$elm_ui$Element$Border$width = function (v) {
-	return A2(
-		$mdgriffith$elm_ui$Internal$Model$StyleClass,
-		$mdgriffith$elm_ui$Internal$Flag$borderWidth,
-		A5(
-			$mdgriffith$elm_ui$Internal$Model$BorderWidth,
-			'b-' + $elm$core$String$fromInt(v),
-			v,
-			v,
-			v,
-			v));
-};
-var $mdgriffith$elm_ui$Internal$Model$Padding = F5(
-	function (a, b, c, d, e) {
-		return {$: 'Padding', a: a, b: b, c: c, d: d, e: e};
-	});
-var $mdgriffith$elm_ui$Internal$Model$Spaced = F3(
-	function (a, b, c) {
-		return {$: 'Spaced', a: a, b: b, c: c};
-	});
-var $mdgriffith$elm_ui$Internal$Model$extractSpacingAndPadding = function (attrs) {
-	return A3(
-		$elm$core$List$foldr,
-		F2(
-			function (attr, _v0) {
-				var pad = _v0.a;
-				var spacing = _v0.b;
-				return _Utils_Tuple2(
-					function () {
-						if (pad.$ === 'Just') {
-							var x = pad.a;
-							return pad;
-						} else {
-							if ((attr.$ === 'StyleClass') && (attr.b.$ === 'PaddingStyle')) {
-								var _v3 = attr.b;
-								var name = _v3.a;
-								var t = _v3.b;
-								var r = _v3.c;
-								var b = _v3.d;
-								var l = _v3.e;
-								return $elm$core$Maybe$Just(
-									A5($mdgriffith$elm_ui$Internal$Model$Padding, name, t, r, b, l));
-							} else {
-								return $elm$core$Maybe$Nothing;
-							}
-						}
-					}(),
-					function () {
-						if (spacing.$ === 'Just') {
-							var x = spacing.a;
-							return spacing;
-						} else {
-							if ((attr.$ === 'StyleClass') && (attr.b.$ === 'SpacingStyle')) {
-								var _v6 = attr.b;
-								var name = _v6.a;
-								var x = _v6.b;
-								var y = _v6.c;
-								return $elm$core$Maybe$Just(
-									A3($mdgriffith$elm_ui$Internal$Model$Spaced, name, x, y));
-							} else {
-								return $elm$core$Maybe$Nothing;
-							}
-						}
-					}());
-			}),
-		_Utils_Tuple2($elm$core$Maybe$Nothing, $elm$core$Maybe$Nothing),
-		attrs);
-};
-var $mdgriffith$elm_ui$Internal$Model$paddingNameFloat = F4(
-	function (top, right, bottom, left) {
-		return 'pad-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(top) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(right) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(bottom) + ('-' + $mdgriffith$elm_ui$Internal$Model$floatClass(left)))))));
-	});
-var $elm$virtual_dom$VirtualDom$style = _VirtualDom_style;
-var $elm$html$Html$Attributes$style = $elm$virtual_dom$VirtualDom$style;
-var $mdgriffith$elm_ui$Element$wrappedRow = F2(
-	function (attrs, children) {
-		var _v0 = $mdgriffith$elm_ui$Internal$Model$extractSpacingAndPadding(attrs);
-		var padded = _v0.a;
-		var spaced = _v0.b;
-		if (spaced.$ === 'Nothing') {
-			return A4(
-				$mdgriffith$elm_ui$Internal$Model$element,
-				$mdgriffith$elm_ui$Internal$Model$asRow,
-				$mdgriffith$elm_ui$Internal$Model$div,
-				A2(
-					$elm$core$List$cons,
-					$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentLeft + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.contentCenterY + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.wrapped)))),
-					A2(
-						$elm$core$List$cons,
-						$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),
-						A2(
-							$elm$core$List$cons,
-							$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink),
-							attrs))),
-				$mdgriffith$elm_ui$Internal$Model$Unkeyed(children));
-		} else {
-			var _v2 = spaced.a;
-			var spaceName = _v2.a;
-			var x = _v2.b;
-			var y = _v2.c;
-			var newPadding = function () {
-				if (padded.$ === 'Just') {
-					var _v5 = padded.a;
-					var name = _v5.a;
-					var t = _v5.b;
-					var r = _v5.c;
-					var b = _v5.d;
-					var l = _v5.e;
-					if ((_Utils_cmp(r, x / 2) > -1) && (_Utils_cmp(b, y / 2) > -1)) {
-						var newTop = t - (y / 2);
-						var newRight = r - (x / 2);
-						var newLeft = l - (x / 2);
-						var newBottom = b - (y / 2);
-						return $elm$core$Maybe$Just(
-							A2(
-								$mdgriffith$elm_ui$Internal$Model$StyleClass,
-								$mdgriffith$elm_ui$Internal$Flag$padding,
-								A5(
-									$mdgriffith$elm_ui$Internal$Model$PaddingStyle,
-									A4($mdgriffith$elm_ui$Internal$Model$paddingNameFloat, newTop, newRight, newBottom, newLeft),
-									newTop,
-									newRight,
-									newBottom,
-									newLeft)));
-					} else {
-						return $elm$core$Maybe$Nothing;
-					}
-				} else {
-					return $elm$core$Maybe$Nothing;
-				}
-			}();
-			if (newPadding.$ === 'Just') {
-				var pad = newPadding.a;
-				return A4(
-					$mdgriffith$elm_ui$Internal$Model$element,
-					$mdgriffith$elm_ui$Internal$Model$asRow,
-					$mdgriffith$elm_ui$Internal$Model$div,
-					A2(
-						$elm$core$List$cons,
-						$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentLeft + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.contentCenterY + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.wrapped)))),
-						A2(
-							$elm$core$List$cons,
-							$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),
-							A2(
-								$elm$core$List$cons,
-								$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink),
-								_Utils_ap(
-									attrs,
-									_List_fromArray(
-										[pad]))))),
-					$mdgriffith$elm_ui$Internal$Model$Unkeyed(children));
-			} else {
-				var halfY = -(y / 2);
-				var halfX = -(x / 2);
-				return A4(
-					$mdgriffith$elm_ui$Internal$Model$element,
-					$mdgriffith$elm_ui$Internal$Model$asEl,
-					$mdgriffith$elm_ui$Internal$Model$div,
-					attrs,
-					$mdgriffith$elm_ui$Internal$Model$Unkeyed(
-						_List_fromArray(
-							[
-								A4(
-								$mdgriffith$elm_ui$Internal$Model$element,
-								$mdgriffith$elm_ui$Internal$Model$asRow,
-								$mdgriffith$elm_ui$Internal$Model$div,
-								A2(
-									$elm$core$List$cons,
-									$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentLeft + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.contentCenterY + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.wrapped)))),
-									A2(
-										$elm$core$List$cons,
-										$mdgriffith$elm_ui$Internal$Model$Attr(
-											A2(
-												$elm$html$Html$Attributes$style,
-												'margin',
-												$elm$core$String$fromFloat(halfY) + ('px' + (' ' + ($elm$core$String$fromFloat(halfX) + 'px'))))),
-										A2(
-											$elm$core$List$cons,
-											$mdgriffith$elm_ui$Internal$Model$Attr(
-												A2(
-													$elm$html$Html$Attributes$style,
-													'width',
-													'calc(100% + ' + ($elm$core$String$fromInt(x) + 'px)'))),
-											A2(
-												$elm$core$List$cons,
-												$mdgriffith$elm_ui$Internal$Model$Attr(
-													A2(
-														$elm$html$Html$Attributes$style,
-														'height',
-														'calc(100% + ' + ($elm$core$String$fromInt(y) + 'px)'))),
-												A2(
-													$elm$core$List$cons,
-													A2(
-														$mdgriffith$elm_ui$Internal$Model$StyleClass,
-														$mdgriffith$elm_ui$Internal$Flag$spacing,
-														A3($mdgriffith$elm_ui$Internal$Model$SpacingStyle, spaceName, x, y)),
-													_List_Nil))))),
-								$mdgriffith$elm_ui$Internal$Model$Unkeyed(children))
-							])));
-			}
-		}
-	});
-var $author$project$Morphir$Web$DevelopMain$viewArgumentEditors = F2(
-	function (valueDef, argValues) {
-		return A2(
-			$mdgriffith$elm_ui$Element$wrappedRow,
-			_List_fromArray(
-				[
-					$mdgriffith$elm_ui$Element$spacing(20)
-				]),
-			A2(
-				$elm$core$List$map,
-				function (_v0) {
-					var argName = _v0.a;
-					var va = _v0.b;
-					var argType = _v0.c;
-					return A2(
-						$mdgriffith$elm_ui$Element$column,
-						_List_fromArray(
-							[
-								$mdgriffith$elm_ui$Element$spacing(5),
-								$mdgriffith$elm_ui$Element$padding(5),
-								$mdgriffith$elm_ui$Element$Border$width(1),
-								$mdgriffith$elm_ui$Element$Border$color(
-								A3($mdgriffith$elm_ui$Element$rgb255, 100, 100, 100))
-							]),
-						_List_fromArray(
-							[
-								A2(
-								$mdgriffith$elm_ui$Element$el,
-								_List_Nil,
-								$mdgriffith$elm_ui$Element$text(
-									$elm$core$String$concat(
-										_List_fromArray(
-											[
-												A2(
-												$elm$core$String$join,
-												' ',
-												$author$project$Morphir$IR$Name$toHumanWords(argName)),
-												': '
-											])))),
-								A2(
-								$mdgriffith$elm_ui$Element$el,
-								_List_Nil,
-								$mdgriffith$elm_ui$Element$html(
-									A3(
-										$author$project$Morphir$Visual$Edit$editValue,
-										argType,
-										$author$project$Morphir$Web$DevelopMain$UpdateArgumentValue(argName),
-										$author$project$Morphir$Web$DevelopMain$InvalidArgumentValue(argName)))),
-								A2(
-								$mdgriffith$elm_ui$Element$el,
-								_List_Nil,
-								$mdgriffith$elm_ui$Element$text(
-									A2(
-										$elm$core$Maybe$withDefault,
-										'not set',
-										A2(
-											$elm$core$Maybe$map,
-											$elm$core$Debug$toString,
-											A2($elm$core$Dict$get, argName, argValues)))))
-							]));
-				},
-				valueDef.inputTypes));
-	});
-var $author$project$Morphir$Visual$Context$Context = F3(
-	function (distribution, references, variables) {
-		return {distribution: distribution, references: references, variables: variables};
-	});
-var $author$project$Morphir$Value$Interpreter$NativeReference = function (a) {
-	return {$: 'NativeReference', a: a};
-};
-var $author$project$Morphir$Value$Interpreter$ValueReference = function (a) {
-	return {$: 'ValueReference', a: a};
-};
-var $author$project$Morphir$IR$Value$definitionToValue = function (def) {
-	var _v0 = def.inputTypes;
-	if (!_v0.b) {
-		return def.body;
-	} else {
-		var _v1 = _v0.a;
-		var firstArgName = _v1.a;
-		var restOfArgs = _v0.b;
-		return A3(
-			$author$project$Morphir$IR$Value$Lambda,
-			_Utils_Tuple0,
-			A3(
-				$author$project$Morphir$IR$Value$AsPattern,
-				_Utils_Tuple0,
-				$author$project$Morphir$IR$Value$WildcardPattern(_Utils_Tuple0),
-				firstArgName),
-			$author$project$Morphir$IR$Value$definitionToValue(
-				_Utils_update(
-					def,
-					{inputTypes: restOfArgs})));
-	}
-};
-var $elm$core$Dict$map = F2(
-	function (func, dict) {
-		if (dict.$ === 'RBEmpty_elm_builtin') {
-			return $elm$core$Dict$RBEmpty_elm_builtin;
-		} else {
-			var color = dict.a;
-			var key = dict.b;
-			var value = dict.c;
-			var left = dict.d;
-			var right = dict.e;
-			return A5(
-				$elm$core$Dict$RBNode_elm_builtin,
-				color,
-				key,
-				A2(func, key, value),
-				A2($elm$core$Dict$map, func, left),
-				A2($elm$core$Dict$map, func, right));
-		}
-	});
-var $author$project$Morphir$IR$Value$mapPatternAttributes = F2(
-	function (f, p) {
-		switch (p.$) {
-			case 'WildcardPattern':
-				var a = p.a;
-				return $author$project$Morphir$IR$Value$WildcardPattern(
-					f(a));
-			case 'AsPattern':
-				var a = p.a;
-				var p2 = p.b;
-				var name = p.c;
-				return A3(
-					$author$project$Morphir$IR$Value$AsPattern,
-					f(a),
-					A2($author$project$Morphir$IR$Value$mapPatternAttributes, f, p2),
-					name);
-			case 'TuplePattern':
-				var a = p.a;
-				var elementPatterns = p.b;
-				return A2(
-					$author$project$Morphir$IR$Value$TuplePattern,
-					f(a),
-					A2(
-						$elm$core$List$map,
-						$author$project$Morphir$IR$Value$mapPatternAttributes(f),
-						elementPatterns));
-			case 'ConstructorPattern':
-				var a = p.a;
-				var constructorName = p.b;
-				var argumentPatterns = p.c;
-				return A3(
-					$author$project$Morphir$IR$Value$ConstructorPattern,
-					f(a),
-					constructorName,
-					A2(
-						$elm$core$List$map,
-						$author$project$Morphir$IR$Value$mapPatternAttributes(f),
-						argumentPatterns));
-			case 'EmptyListPattern':
-				var a = p.a;
-				return $author$project$Morphir$IR$Value$EmptyListPattern(
-					f(a));
-			case 'HeadTailPattern':
-				var a = p.a;
-				var headPattern = p.b;
-				var tailPattern = p.c;
-				return A3(
-					$author$project$Morphir$IR$Value$HeadTailPattern,
-					f(a),
-					A2($author$project$Morphir$IR$Value$mapPatternAttributes, f, headPattern),
-					A2($author$project$Morphir$IR$Value$mapPatternAttributes, f, tailPattern));
-			case 'LiteralPattern':
-				var a = p.a;
-				var value = p.b;
-				return A2(
-					$author$project$Morphir$IR$Value$LiteralPattern,
-					f(a),
-					value);
-			default:
-				var a = p.a;
-				return $author$project$Morphir$IR$Value$UnitPattern(
-					f(a));
-		}
-	});
-var $author$project$Morphir$IR$Type$mapFieldType = F2(
-	function (f, field) {
-		return A2(
-			$author$project$Morphir$IR$Type$Field,
-			field.name,
-			f(field.tpe));
-	});
-var $author$project$Morphir$IR$Type$mapTypeAttributes = F2(
-	function (f, tpe) {
-		switch (tpe.$) {
-			case 'Variable':
-				var a = tpe.a;
-				var name = tpe.b;
-				return A2(
-					$author$project$Morphir$IR$Type$Variable,
-					f(a),
-					name);
-			case 'Reference':
-				var a = tpe.a;
-				var fQName = tpe.b;
-				var argTypes = tpe.c;
-				return A3(
-					$author$project$Morphir$IR$Type$Reference,
-					f(a),
-					fQName,
-					A2(
-						$elm$core$List$map,
-						$author$project$Morphir$IR$Type$mapTypeAttributes(f),
-						argTypes));
-			case 'Tuple':
-				var a = tpe.a;
-				var elemTypes = tpe.b;
-				return A2(
-					$author$project$Morphir$IR$Type$Tuple,
-					f(a),
-					A2(
-						$elm$core$List$map,
-						$author$project$Morphir$IR$Type$mapTypeAttributes(f),
-						elemTypes));
-			case 'Record':
-				var a = tpe.a;
-				var fields = tpe.b;
-				return A2(
-					$author$project$Morphir$IR$Type$Record,
-					f(a),
-					A2(
-						$elm$core$List$map,
-						$author$project$Morphir$IR$Type$mapFieldType(
-							$author$project$Morphir$IR$Type$mapTypeAttributes(f)),
-						fields));
-			case 'ExtensibleRecord':
-				var a = tpe.a;
-				var name = tpe.b;
-				var fields = tpe.c;
-				return A3(
-					$author$project$Morphir$IR$Type$ExtensibleRecord,
-					f(a),
-					name,
-					A2(
-						$elm$core$List$map,
-						$author$project$Morphir$IR$Type$mapFieldType(
-							$author$project$Morphir$IR$Type$mapTypeAttributes(f)),
-						fields));
-			case 'Function':
-				var a = tpe.a;
-				var argType = tpe.b;
-				var returnType = tpe.c;
-				return A3(
-					$author$project$Morphir$IR$Type$Function,
-					f(a),
-					A2($author$project$Morphir$IR$Type$mapTypeAttributes, f, argType),
-					A2($author$project$Morphir$IR$Type$mapTypeAttributes, f, returnType));
-			default:
-				var a = tpe.a;
-				return $author$project$Morphir$IR$Type$Unit(
-					f(a));
-		}
-	});
-var $author$project$Morphir$IR$Value$mapDefinitionAttributes = F3(
-	function (f, g, d) {
-		return A3(
-			$author$project$Morphir$IR$Value$Definition,
-			A2(
-				$elm$core$List$map,
-				function (_v5) {
-					var name = _v5.a;
-					var attr = _v5.b;
-					var tpe = _v5.c;
-					return _Utils_Tuple3(
-						name,
-						g(attr),
-						A2($author$project$Morphir$IR$Type$mapTypeAttributes, f, tpe));
-				},
-				d.inputTypes),
-			A2($author$project$Morphir$IR$Type$mapTypeAttributes, f, d.outputType),
-			A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, d.body));
-	});
-var $author$project$Morphir$IR$Value$mapValueAttributes = F3(
-	function (f, g, v) {
-		switch (v.$) {
-			case 'Literal':
-				var a = v.a;
-				var value = v.b;
-				return A2(
-					$author$project$Morphir$IR$Value$Literal,
-					g(a),
-					value);
-			case 'Constructor':
-				var a = v.a;
-				var fullyQualifiedName = v.b;
-				return A2(
-					$author$project$Morphir$IR$Value$Constructor,
-					g(a),
-					fullyQualifiedName);
-			case 'Tuple':
-				var a = v.a;
-				var elements = v.b;
-				return A2(
-					$author$project$Morphir$IR$Value$Tuple,
-					g(a),
-					A2(
-						$elm$core$List$map,
-						A2($author$project$Morphir$IR$Value$mapValueAttributes, f, g),
-						elements));
-			case 'List':
-				var a = v.a;
-				var items = v.b;
-				return A2(
-					$author$project$Morphir$IR$Value$List,
-					g(a),
-					A2(
-						$elm$core$List$map,
-						A2($author$project$Morphir$IR$Value$mapValueAttributes, f, g),
-						items));
-			case 'Record':
-				var a = v.a;
-				var fields = v.b;
-				return A2(
-					$author$project$Morphir$IR$Value$Record,
-					g(a),
-					A2(
-						$elm$core$List$map,
-						function (_v1) {
-							var fieldName = _v1.a;
-							var fieldValue = _v1.b;
-							return _Utils_Tuple2(
-								fieldName,
-								A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, fieldValue));
-						},
-						fields));
-			case 'Variable':
-				var a = v.a;
-				var name = v.b;
-				return A2(
-					$author$project$Morphir$IR$Value$Variable,
-					g(a),
-					name);
-			case 'Reference':
-				var a = v.a;
-				var fullyQualifiedName = v.b;
-				return A2(
-					$author$project$Morphir$IR$Value$Reference,
-					g(a),
-					fullyQualifiedName);
-			case 'Field':
-				var a = v.a;
-				var subjectValue = v.b;
-				var fieldName = v.c;
-				return A3(
-					$author$project$Morphir$IR$Value$Field,
-					g(a),
-					A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, subjectValue),
-					fieldName);
-			case 'FieldFunction':
-				var a = v.a;
-				var fieldName = v.b;
-				return A2(
-					$author$project$Morphir$IR$Value$FieldFunction,
-					g(a),
-					fieldName);
-			case 'Apply':
-				var a = v.a;
-				var _function = v.b;
-				var argument = v.c;
-				return A3(
-					$author$project$Morphir$IR$Value$Apply,
-					g(a),
-					A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, _function),
-					A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, argument));
-			case 'Lambda':
-				var a = v.a;
-				var argumentPattern = v.b;
-				var body = v.c;
-				return A3(
-					$author$project$Morphir$IR$Value$Lambda,
-					g(a),
-					A2($author$project$Morphir$IR$Value$mapPatternAttributes, g, argumentPattern),
-					A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, body));
-			case 'LetDefinition':
-				var a = v.a;
-				var valueName = v.b;
-				var valueDefinition = v.c;
-				var inValue = v.d;
-				return A4(
-					$author$project$Morphir$IR$Value$LetDefinition,
-					g(a),
-					valueName,
-					A3($author$project$Morphir$IR$Value$mapDefinitionAttributes, f, g, valueDefinition),
-					A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, inValue));
-			case 'LetRecursion':
-				var a = v.a;
-				var valueDefinitions = v.b;
-				var inValue = v.c;
-				return A3(
-					$author$project$Morphir$IR$Value$LetRecursion,
-					g(a),
-					A2(
-						$elm$core$Dict$map,
-						F2(
-							function (_v2, def) {
-								return A3($author$project$Morphir$IR$Value$mapDefinitionAttributes, f, g, def);
-							}),
-						valueDefinitions),
-					A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, inValue));
-			case 'Destructure':
-				var a = v.a;
-				var pattern = v.b;
-				var valueToDestruct = v.c;
-				var inValue = v.d;
-				return A4(
-					$author$project$Morphir$IR$Value$Destructure,
-					g(a),
-					A2($author$project$Morphir$IR$Value$mapPatternAttributes, g, pattern),
-					A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, valueToDestruct),
-					A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, inValue));
-			case 'IfThenElse':
-				var a = v.a;
-				var condition = v.b;
-				var thenBranch = v.c;
-				var elseBranch = v.d;
-				return A4(
-					$author$project$Morphir$IR$Value$IfThenElse,
-					g(a),
-					A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, condition),
-					A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, thenBranch),
-					A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, elseBranch));
-			case 'PatternMatch':
-				var a = v.a;
-				var branchOutOn = v.b;
-				var cases = v.c;
-				return A3(
-					$author$project$Morphir$IR$Value$PatternMatch,
-					g(a),
-					A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, branchOutOn),
-					A2(
-						$elm$core$List$map,
-						function (_v3) {
-							var pattern = _v3.a;
-							var body = _v3.b;
-							return _Utils_Tuple2(
-								A2($author$project$Morphir$IR$Value$mapPatternAttributes, g, pattern),
-								A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, body));
-						},
-						cases));
-			case 'UpdateRecord':
-				var a = v.a;
-				var valueToUpdate = v.b;
-				var fieldsToUpdate = v.c;
-				return A3(
-					$author$project$Morphir$IR$Value$UpdateRecord,
-					g(a),
-					A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, valueToUpdate),
-					A2(
-						$elm$core$List$map,
-						function (_v4) {
-							var fieldName = _v4.a;
-							var fieldValue = _v4.b;
-							return _Utils_Tuple2(
-								fieldName,
-								A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, fieldValue));
-						},
-						fieldsToUpdate));
-			default:
-				var a = v.a;
-				return $author$project$Morphir$IR$Value$Unit(
-					g(a));
-		}
-	});
-var $author$project$Morphir$Value$Error$ExpectedBoolLiteral = function (a) {
-	return {$: 'ExpectedBoolLiteral', a: a};
-};
-var $author$project$Morphir$Value$Error$ExpectedLiteral = function (a) {
-	return {$: 'ExpectedLiteral', a: a};
-};
-var $author$project$Morphir$Value$Error$ExpectedNumberTypeArguments = function (a) {
-	return {$: 'ExpectedNumberTypeArguments', a: a};
-};
-var $author$project$Morphir$Value$Error$UnexpectedArguments = function (a) {
-	return {$: 'UnexpectedArguments', a: a};
-};
-var $elm$core$Result$andThen = F2(
-	function (callback, result) {
-		if (result.$ === 'Ok') {
-			var value = result.a;
-			return callback(value);
-		} else {
-			var msg = result.a;
-			return $elm$core$Result$Err(msg);
-		}
-	});
-var $author$project$Morphir$Value$Native$binaryLazy = function (f) {
-	return F2(
-		function (_eval, args) {
-			if ((args.b && args.b.b) && (!args.b.b.b)) {
-				var arg1 = args.a;
-				var _v1 = args.b;
-				var arg2 = _v1.a;
-				return A3(f, _eval, arg1, arg2);
-			} else {
-				return $elm$core$Result$Err(
-					$author$project$Morphir$Value$Error$UnexpectedArguments(args));
-			}
-		});
-};
-var $author$project$Morphir$Value$Native$binaryStrict = function (f) {
-	return $author$project$Morphir$Value$Native$binaryLazy(
-		F3(
-			function (_eval, arg1, arg2) {
-				return A2(
-					$elm$core$Result$andThen,
-					function (a1) {
-						return A2(
-							$elm$core$Result$andThen,
-							f(a1),
-							_eval(arg2));
-					},
-					_eval(arg1));
-			}));
-};
-var $elm$core$Result$map = F2(
-	function (func, ra) {
-		if (ra.$ === 'Ok') {
-			var a = ra.a;
-			return $elm$core$Result$Ok(
-				func(a));
-		} else {
-			var e = ra.a;
-			return $elm$core$Result$Err(e);
-		}
-	});
-var $author$project$Morphir$Value$Native$mapLiteral = F3(
-	function (f, _eval, value) {
-		if (value.$ === 'Literal') {
-			var a = value.a;
-			var lit = value.b;
-			return A2(
-				$elm$core$Result$map,
-				$author$project$Morphir$IR$Value$Literal(a),
-				f(lit));
-		} else {
-			return $elm$core$Result$Err(
-				$author$project$Morphir$Value$Error$ExpectedLiteral(value));
-		}
-	});
-var $author$project$Morphir$Value$Native$unaryLazy = function (f) {
-	return F2(
-		function (_eval, args) {
-			if (args.b && (!args.b.b)) {
-				var arg = args.a;
-				return A2(f, _eval, arg);
-			} else {
-				return $elm$core$Result$Err(
-					$author$project$Morphir$Value$Error$UnexpectedArguments(args));
-			}
-		});
-};
-var $author$project$Morphir$Value$Native$unaryStrict = function (f) {
-	return $author$project$Morphir$Value$Native$unaryLazy(
-		F2(
-			function (_eval, arg) {
-				return A2(
-					$elm$core$Result$andThen,
-					f(_eval),
-					_eval(arg));
-			}));
-};
-var $elm$core$Basics$xor = _Basics_xor;
-var $author$project$Morphir$IR$SDK$Basics$nativeFunctions = _List_fromArray(
-	[
-		_Utils_Tuple2(
-		'not',
-		$author$project$Morphir$Value$Native$unaryStrict(
-			$author$project$Morphir$Value$Native$mapLiteral(
-				function (lit) {
-					if (lit.$ === 'BoolLiteral') {
-						var v = lit.a;
-						return $elm$core$Result$Ok(
-							$author$project$Morphir$IR$Literal$BoolLiteral(!v));
-					} else {
-						return $elm$core$Result$Err(
-							$author$project$Morphir$Value$Error$ExpectedBoolLiteral(lit));
-					}
-				}))),
-		_Utils_Tuple2(
-		'and',
-		$author$project$Morphir$Value$Native$binaryLazy(
-			F3(
-				function (_eval, arg1, arg2) {
-					return A2(
-						$elm$core$Result$andThen,
-						function (a1) {
-							if ((a1.$ === 'Literal') && (a1.b.$ === 'BoolLiteral')) {
-								if (!a1.b.a) {
-									return $elm$core$Result$Ok(
-										A2(
-											$author$project$Morphir$IR$Value$Literal,
-											_Utils_Tuple0,
-											$author$project$Morphir$IR$Literal$BoolLiteral(false)));
-								} else {
-									return _eval(arg2);
-								}
-							} else {
-								return $elm$core$Result$Err(
-									$author$project$Morphir$Value$Error$ExpectedLiteral(arg1));
-							}
-						},
-						_eval(arg1));
-				}))),
-		_Utils_Tuple2(
-		'or',
-		$author$project$Morphir$Value$Native$binaryLazy(
-			F3(
-				function (_eval, arg1, arg2) {
-					return A2(
-						$elm$core$Result$andThen,
-						function (a1) {
-							if ((a1.$ === 'Literal') && (a1.b.$ === 'BoolLiteral')) {
-								if (a1.b.a) {
-									return $elm$core$Result$Ok(
-										A2(
-											$author$project$Morphir$IR$Value$Literal,
-											_Utils_Tuple0,
-											$author$project$Morphir$IR$Literal$BoolLiteral(true)));
-								} else {
-									return _eval(arg2);
-								}
-							} else {
-								return $elm$core$Result$Err(
-									$author$project$Morphir$Value$Error$ExpectedLiteral(arg1));
-							}
-						},
-						_eval(arg1));
-				}))),
-		_Utils_Tuple2(
-		'xor',
-		$author$project$Morphir$Value$Native$binaryStrict(
-			F2(
-				function (arg1, arg2) {
-					var _v3 = _Utils_Tuple2(arg1, arg2);
-					if ((((_v3.a.$ === 'Literal') && (_v3.a.b.$ === 'BoolLiteral')) && (_v3.b.$ === 'Literal')) && (_v3.b.b.$ === 'BoolLiteral')) {
-						var _v4 = _v3.a;
-						var v1 = _v4.b.a;
-						var _v5 = _v3.b;
-						var v2 = _v5.b.a;
-						return $elm$core$Result$Ok(
-							A2(
-								$author$project$Morphir$IR$Value$Literal,
-								_Utils_Tuple0,
-								$author$project$Morphir$IR$Literal$BoolLiteral(v1 !== v2)));
-					} else {
-						return $elm$core$Result$Err(
-							$author$project$Morphir$Value$Error$UnexpectedArguments(
-								_List_fromArray(
-									[arg1, arg2])));
-					}
-				}))),
-		_Utils_Tuple2(
-		'add',
-		$author$project$Morphir$Value$Native$binaryStrict(
-			F2(
-				function (arg1, arg2) {
-					var _v6 = _Utils_Tuple2(arg1, arg2);
-					_v6$2:
-					while (true) {
-						if ((_v6.a.$ === 'Literal') && (_v6.b.$ === 'Literal')) {
-							switch (_v6.a.b.$) {
-								case 'FloatLiteral':
-									if (_v6.b.b.$ === 'FloatLiteral') {
-										var _v7 = _v6.a;
-										var v1 = _v7.b.a;
-										var _v8 = _v6.b;
-										var v2 = _v8.b.a;
-										return $elm$core$Result$Ok(
-											A2(
-												$author$project$Morphir$IR$Value$Literal,
-												_Utils_Tuple0,
-												$author$project$Morphir$IR$Literal$FloatLiteral(v1 + v2)));
-									} else {
-										break _v6$2;
-									}
-								case 'IntLiteral':
-									if (_v6.b.b.$ === 'IntLiteral') {
-										var _v9 = _v6.a;
-										var v1 = _v9.b.a;
-										var _v10 = _v6.b;
-										var v2 = _v10.b.a;
-										return $elm$core$Result$Ok(
-											A2(
-												$author$project$Morphir$IR$Value$Literal,
-												_Utils_Tuple0,
-												$author$project$Morphir$IR$Literal$IntLiteral(v1 + v2)));
-									} else {
-										break _v6$2;
-									}
-								default:
-									break _v6$2;
-							}
-						} else {
-							break _v6$2;
-						}
-					}
-					return $elm$core$Result$Err(
-						$author$project$Morphir$Value$Error$ExpectedNumberTypeArguments(
-							_List_fromArray(
-								[arg1, arg2])));
-				}))),
-		_Utils_Tuple2(
-		'subtract',
-		$author$project$Morphir$Value$Native$binaryStrict(
-			F2(
-				function (arg1, arg2) {
-					var _v11 = _Utils_Tuple2(arg1, arg2);
-					_v11$2:
-					while (true) {
-						if ((_v11.a.$ === 'Literal') && (_v11.b.$ === 'Literal')) {
-							switch (_v11.a.b.$) {
-								case 'FloatLiteral':
-									if (_v11.b.b.$ === 'FloatLiteral') {
-										var _v12 = _v11.a;
-										var v1 = _v12.b.a;
-										var _v13 = _v11.b;
-										var v2 = _v13.b.a;
-										return $elm$core$Result$Ok(
-											A2(
-												$author$project$Morphir$IR$Value$Literal,
-												_Utils_Tuple0,
-												$author$project$Morphir$IR$Literal$FloatLiteral(v1 - v2)));
-									} else {
-										break _v11$2;
-									}
-								case 'IntLiteral':
-									if (_v11.b.b.$ === 'IntLiteral') {
-										var _v14 = _v11.a;
-										var v1 = _v14.b.a;
-										var _v15 = _v11.b;
-										var v2 = _v15.b.a;
-										return $elm$core$Result$Ok(
-											A2(
-												$author$project$Morphir$IR$Value$Literal,
-												_Utils_Tuple0,
-												$author$project$Morphir$IR$Literal$IntLiteral(v1 - v2)));
-									} else {
-										break _v11$2;
-									}
-								default:
-									break _v11$2;
-							}
-						} else {
-							break _v11$2;
-						}
-					}
-					return $elm$core$Result$Err(
-						$author$project$Morphir$Value$Error$UnexpectedArguments(
-							_List_fromArray(
-								[arg1, arg2])));
-				}))),
-		_Utils_Tuple2(
-		'multiply',
-		$author$project$Morphir$Value$Native$binaryStrict(
-			F2(
-				function (arg1, arg2) {
-					var _v16 = _Utils_Tuple2(arg1, arg2);
-					_v16$2:
-					while (true) {
-						if ((_v16.a.$ === 'Literal') && (_v16.b.$ === 'Literal')) {
-							switch (_v16.a.b.$) {
-								case 'FloatLiteral':
-									if (_v16.b.b.$ === 'FloatLiteral') {
-										var _v17 = _v16.a;
-										var v1 = _v17.b.a;
-										var _v18 = _v16.b;
-										var v2 = _v18.b.a;
-										return $elm$core$Result$Ok(
-											A2(
-												$author$project$Morphir$IR$Value$Literal,
-												_Utils_Tuple0,
-												$author$project$Morphir$IR$Literal$FloatLiteral(v1 * v2)));
-									} else {
-										break _v16$2;
-									}
-								case 'IntLiteral':
-									if (_v16.b.b.$ === 'IntLiteral') {
-										var _v19 = _v16.a;
-										var v1 = _v19.b.a;
-										var _v20 = _v16.b;
-										var v2 = _v20.b.a;
-										return $elm$core$Result$Ok(
-											A2(
-												$author$project$Morphir$IR$Value$Literal,
-												_Utils_Tuple0,
-												$author$project$Morphir$IR$Literal$IntLiteral(v1 * v2)));
-									} else {
-										break _v16$2;
-									}
-								default:
-									break _v16$2;
-							}
-						} else {
-							break _v16$2;
-						}
-					}
-					return $elm$core$Result$Err(
-						$author$project$Morphir$Value$Error$UnexpectedArguments(
-							_List_fromArray(
-								[arg1, arg2])));
-				}))),
-		_Utils_Tuple2(
-		'divide',
-		$author$project$Morphir$Value$Native$binaryStrict(
-			F2(
-				function (arg1, arg2) {
-					var _v21 = _Utils_Tuple2(arg1, arg2);
-					if ((((_v21.a.$ === 'Literal') && (_v21.a.b.$ === 'FloatLiteral')) && (_v21.b.$ === 'Literal')) && (_v21.b.b.$ === 'FloatLiteral')) {
-						var _v22 = _v21.a;
-						var v1 = _v22.b.a;
-						var _v23 = _v21.b;
-						var v2 = _v23.b.a;
-						return $elm$core$Result$Ok(
-							A2(
-								$author$project$Morphir$IR$Value$Literal,
-								_Utils_Tuple0,
-								$author$project$Morphir$IR$Literal$FloatLiteral(v1 / v2)));
-					} else {
-						return $elm$core$Result$Err(
-							$author$project$Morphir$Value$Error$UnexpectedArguments(
-								_List_fromArray(
-									[arg1, arg2])));
-					}
-				}))),
-		_Utils_Tuple2(
-		'integerDivide',
-		$author$project$Morphir$Value$Native$binaryStrict(
-			F2(
-				function (arg1, arg2) {
-					var _v24 = _Utils_Tuple2(arg1, arg2);
-					if ((((_v24.a.$ === 'Literal') && (_v24.a.b.$ === 'IntLiteral')) && (_v24.b.$ === 'Literal')) && (_v24.b.b.$ === 'IntLiteral')) {
-						var _v25 = _v24.a;
-						var v1 = _v25.b.a;
-						var _v26 = _v24.b;
-						var v2 = _v26.b.a;
-						return $elm$core$Result$Ok(
-							A2(
-								$author$project$Morphir$IR$Value$Literal,
-								_Utils_Tuple0,
-								$author$project$Morphir$IR$Literal$IntLiteral((v1 / v2) | 0)));
-					} else {
-						return $elm$core$Result$Err(
-							$author$project$Morphir$Value$Error$UnexpectedArguments(
-								_List_fromArray(
-									[arg1, arg2])));
-					}
-				}))),
-		_Utils_Tuple2(
-		'equal',
-		$author$project$Morphir$Value$Native$binaryStrict(
-			F2(
-				function (arg1, arg2) {
-					return $elm$core$Result$Ok(
-						A2(
-							$author$project$Morphir$IR$Value$Literal,
-							_Utils_Tuple0,
-							$author$project$Morphir$IR$Literal$BoolLiteral(
-								_Utils_eq(arg1, arg2))));
-				}))),
-		_Utils_Tuple2(
-		'notEqual',
-		$author$project$Morphir$Value$Native$binaryStrict(
-			F2(
-				function (arg1, arg2) {
-					return $elm$core$Result$Ok(
-						A2(
-							$author$project$Morphir$IR$Value$Literal,
-							_Utils_Tuple0,
-							$author$project$Morphir$IR$Literal$BoolLiteral(
-								!_Utils_eq(arg1, arg2))));
-				}))),
-		_Utils_Tuple2(
-		'lessThan',
-		$author$project$Morphir$Value$Native$binaryStrict(
-			F2(
-				function (arg1, arg2) {
-					var _v27 = _Utils_Tuple2(arg1, arg2);
-					_v27$6:
-					while (true) {
-						if ((_v27.a.$ === 'Literal') && (_v27.b.$ === 'Literal')) {
-							switch (_v27.a.b.$) {
-								case 'FloatLiteral':
-									switch (_v27.b.b.$) {
-										case 'FloatLiteral':
-											var _v28 = _v27.a;
-											var v1 = _v28.b.a;
-											var _v29 = _v27.b;
-											var v2 = _v29.b.a;
-											return $elm$core$Result$Ok(
-												A2(
-													$author$project$Morphir$IR$Value$Literal,
-													_Utils_Tuple0,
-													$author$project$Morphir$IR$Literal$BoolLiteral(
-														_Utils_cmp(v1, v2) < 0)));
-										case 'IntLiteral':
-											var _v32 = _v27.a;
-											var v1 = _v32.b.a;
-											var _v33 = _v27.b;
-											var v2 = _v33.b.a;
-											return $elm$core$Result$Ok(
-												A2(
-													$author$project$Morphir$IR$Value$Literal,
-													_Utils_Tuple0,
-													$author$project$Morphir$IR$Literal$BoolLiteral(
-														_Utils_cmp(v1, v2) < 0)));
-										default:
-											break _v27$6;
-									}
-								case 'IntLiteral':
-									switch (_v27.b.b.$) {
-										case 'IntLiteral':
-											var _v30 = _v27.a;
-											var v1 = _v30.b.a;
-											var _v31 = _v27.b;
-											var v2 = _v31.b.a;
-											return $elm$core$Result$Ok(
-												A2(
-													$author$project$Morphir$IR$Value$Literal,
-													_Utils_Tuple0,
-													$author$project$Morphir$IR$Literal$BoolLiteral(
-														_Utils_cmp(v1, v2) < 0)));
-										case 'FloatLiteral':
-											var _v34 = _v27.a;
-											var v1 = _v34.b.a;
-											var _v35 = _v27.b;
-											var v2 = _v35.b.a;
-											return $elm$core$Result$Ok(
-												A2(
-													$author$project$Morphir$IR$Value$Literal,
-													_Utils_Tuple0,
-													$author$project$Morphir$IR$Literal$BoolLiteral(
-														_Utils_cmp(v1, v2) < 0)));
-										default:
-											break _v27$6;
-									}
-								case 'CharLiteral':
-									if (_v27.b.b.$ === 'CharLiteral') {
-										var _v36 = _v27.a;
-										var v1 = _v36.b.a;
-										var _v37 = _v27.b;
-										var v2 = _v37.b.a;
-										return $elm$core$Result$Ok(
-											A2(
-												$author$project$Morphir$IR$Value$Literal,
-												_Utils_Tuple0,
-												$author$project$Morphir$IR$Literal$BoolLiteral(
-													_Utils_cmp(v1, v2) < 0)));
-									} else {
-										break _v27$6;
-									}
-								case 'StringLiteral':
-									if (_v27.b.b.$ === 'StringLiteral') {
-										var _v38 = _v27.a;
-										var v1 = _v38.b.a;
-										var _v39 = _v27.b;
-										var v2 = _v39.b.a;
-										return $elm$core$Result$Ok(
-											A2(
-												$author$project$Morphir$IR$Value$Literal,
-												_Utils_Tuple0,
-												$author$project$Morphir$IR$Literal$BoolLiteral(
-													_Utils_cmp(v1, v2) < 0)));
-									} else {
-										break _v27$6;
-									}
-								default:
-									break _v27$6;
-							}
-						} else {
-							break _v27$6;
-						}
-					}
-					return $elm$core$Result$Err(
-						$author$project$Morphir$Value$Error$UnexpectedArguments(
-							_List_fromArray(
-								[arg1, arg2])));
-				}))),
-		_Utils_Tuple2(
-		'greaterThan',
-		$author$project$Morphir$Value$Native$binaryStrict(
-			F2(
-				function (arg1, arg2) {
-					var _v40 = _Utils_Tuple2(arg1, arg2);
-					_v40$6:
-					while (true) {
-						if ((_v40.a.$ === 'Literal') && (_v40.b.$ === 'Literal')) {
-							switch (_v40.a.b.$) {
-								case 'FloatLiteral':
-									switch (_v40.b.b.$) {
-										case 'FloatLiteral':
-											var _v41 = _v40.a;
-											var v1 = _v41.b.a;
-											var _v42 = _v40.b;
-											var v2 = _v42.b.a;
-											return $elm$core$Result$Ok(
-												A2(
-													$author$project$Morphir$IR$Value$Literal,
-													_Utils_Tuple0,
-													$author$project$Morphir$IR$Literal$BoolLiteral(
-														_Utils_cmp(v1, v2) > 0)));
-										case 'IntLiteral':
-											var _v45 = _v40.a;
-											var v1 = _v45.b.a;
-											var _v46 = _v40.b;
-											var v2 = _v46.b.a;
-											return $elm$core$Result$Ok(
-												A2(
-													$author$project$Morphir$IR$Value$Literal,
-													_Utils_Tuple0,
-													$author$project$Morphir$IR$Literal$BoolLiteral(
-														_Utils_cmp(v1, v2) > 0)));
-										default:
-											break _v40$6;
-									}
-								case 'IntLiteral':
-									switch (_v40.b.b.$) {
-										case 'IntLiteral':
-											var _v43 = _v40.a;
-											var v1 = _v43.b.a;
-											var _v44 = _v40.b;
-											var v2 = _v44.b.a;
-											return $elm$core$Result$Ok(
-												A2(
-													$author$project$Morphir$IR$Value$Literal,
-													_Utils_Tuple0,
-													$author$project$Morphir$IR$Literal$BoolLiteral(
-														_Utils_cmp(v1, v2) > 0)));
-										case 'FloatLiteral':
-											var _v47 = _v40.a;
-											var v1 = _v47.b.a;
-											var _v48 = _v40.b;
-											var v2 = _v48.b.a;
-											return $elm$core$Result$Ok(
-												A2(
-													$author$project$Morphir$IR$Value$Literal,
-													_Utils_Tuple0,
-													$author$project$Morphir$IR$Literal$BoolLiteral(
-														_Utils_cmp(v1, v2) > 0)));
-										default:
-											break _v40$6;
-									}
-								case 'CharLiteral':
-									if (_v40.b.b.$ === 'CharLiteral') {
-										var _v49 = _v40.a;
-										var v1 = _v49.b.a;
-										var _v50 = _v40.b;
-										var v2 = _v50.b.a;
-										return $elm$core$Result$Ok(
-											A2(
-												$author$project$Morphir$IR$Value$Literal,
-												_Utils_Tuple0,
-												$author$project$Morphir$IR$Literal$BoolLiteral(
-													_Utils_cmp(v1, v2) > 0)));
-									} else {
-										break _v40$6;
-									}
-								case 'StringLiteral':
-									if (_v40.b.b.$ === 'StringLiteral') {
-										var _v51 = _v40.a;
-										var v1 = _v51.b.a;
-										var _v52 = _v40.b;
-										var v2 = _v52.b.a;
-										return $elm$core$Result$Ok(
-											A2(
-												$author$project$Morphir$IR$Value$Literal,
-												_Utils_Tuple0,
-												$author$project$Morphir$IR$Literal$BoolLiteral(
-													_Utils_cmp(v1, v2) > 0)));
-									} else {
-										break _v40$6;
-									}
-								default:
-									break _v40$6;
-							}
-						} else {
-							break _v40$6;
-						}
-					}
-					return $elm$core$Result$Err(
-						$author$project$Morphir$Value$Error$UnexpectedArguments(
-							_List_fromArray(
-								[arg1, arg2])));
-				})))
-	]);
-var $author$project$Morphir$IR$FQName$fQName = F3(
-	function (packagePath, modulePath, localName) {
-		return A3($author$project$Morphir$IR$FQName$FQName, packagePath, modulePath, localName);
-	});
-var $author$project$Morphir$IR$FQName$fqn = F3(
-	function (packageName, moduleName, localName) {
-		return A3(
-			$author$project$Morphir$IR$FQName$fQName,
-			$author$project$Morphir$IR$Path$fromString(packageName),
-			$author$project$Morphir$IR$Path$fromString(moduleName),
-			$author$project$Morphir$IR$Name$fromString(localName));
-	});
-var $author$project$Morphir$IR$SDK$List$nativeAppend = F2(
-	function (_eval, args) {
-		if ((args.b && args.b.b) && (!args.b.b.b)) {
-			var arg1 = args.a;
-			var _v1 = args.b;
-			var arg2 = _v1.a;
-			return A2(
-				$elm$core$Result$andThen,
-				function (evaluatedArg1) {
-					if (evaluatedArg1.$ === 'List') {
-						var items1 = evaluatedArg1.b;
-						return A2(
-							$elm$core$Result$andThen,
-							function (evaluatedArg2) {
-								if (evaluatedArg2.$ === 'List') {
-									var items2 = evaluatedArg2.b;
-									return $elm$core$Result$Ok(
-										A2(
-											$author$project$Morphir$IR$Value$List,
-											_Utils_Tuple0,
-											A2($elm$core$List$append, items1, items2)));
-								} else {
-									return $elm$core$Result$Err(
-										$author$project$Morphir$Value$Error$UnexpectedArguments(args));
-								}
-							},
-							_eval(arg2));
-					} else {
-						return $elm$core$Result$Err(
-							$author$project$Morphir$Value$Error$UnexpectedArguments(args));
-					}
-				},
-				_eval(arg1));
-		} else {
-			return $elm$core$Result$Err(
-				$author$project$Morphir$Value$Error$UnexpectedArguments(args));
-		}
-	});
-var $elm$core$List$head = function (list) {
-	if (list.b) {
-		var x = list.a;
-		var xs = list.b;
-		return $elm$core$Maybe$Just(x);
-	} else {
-		return $elm$core$Maybe$Nothing;
-	}
-};
-var $author$project$Morphir$ListOfResults$liftAllErrors = function (results) {
-	var oks = A2(
-		$elm$core$List$filterMap,
-		function (result) {
-			return $elm$core$Result$toMaybe(result);
-		},
-		results);
-	var errs = A2(
-		$elm$core$List$filterMap,
-		function (result) {
-			if (result.$ === 'Ok') {
-				return $elm$core$Maybe$Nothing;
-			} else {
-				var e = result.a;
-				return $elm$core$Maybe$Just(e);
-			}
-		},
-		results);
-	if (!errs.b) {
-		return $elm$core$Result$Ok(oks);
-	} else {
-		return $elm$core$Result$Err(errs);
-	}
-};
-var $author$project$Morphir$ListOfResults$liftFirstError = function (results) {
-	var _v0 = $author$project$Morphir$ListOfResults$liftAllErrors(results);
-	if (_v0.$ === 'Ok') {
-		var a = _v0.a;
-		return $elm$core$Result$Ok(a);
-	} else {
-		var errors = _v0.a;
-		return A2(
-			$elm$core$Maybe$withDefault,
-			$elm$core$Result$Ok(_List_Nil),
-			A2(
-				$elm$core$Maybe$map,
-				$elm$core$Result$Err,
-				$elm$core$List$head(errors)));
-	}
-};
-var $author$project$Morphir$IR$SDK$List$nativeMap = F2(
-	function (_eval, args) {
-		if ((args.b && args.b.b) && (!args.b.b.b)) {
-			var arg1 = args.a;
-			var _v1 = args.b;
-			var arg2 = _v1.a;
-			return A2(
-				$elm$core$Result$andThen,
-				function (evaluatedArg2) {
-					if (evaluatedArg2.$ === 'List') {
-						var items = evaluatedArg2.b;
-						return A2(
-							$elm$core$Result$map,
-							$author$project$Morphir$IR$Value$List(_Utils_Tuple0),
-							$author$project$Morphir$ListOfResults$liftFirstError(
-								A2(
-									$elm$core$List$map,
-									function (item) {
-										return _eval(
-											A3($author$project$Morphir$IR$Value$Apply, _Utils_Tuple0, arg1, item));
-									},
-									items)));
-					} else {
-						return $elm$core$Result$Err(
-							$author$project$Morphir$Value$Error$UnexpectedArguments(args));
-					}
-				},
-				_eval(arg2));
-		} else {
-			return $elm$core$Result$Err(
-				$author$project$Morphir$Value$Error$UnexpectedArguments(args));
-		}
-	});
-var $author$project$Morphir$IR$SDK$List$nativeFunctions = _List_fromArray(
-	[
-		_Utils_Tuple2(
-		'sum',
-		$author$project$Morphir$Value$Native$unaryStrict(
-			F2(
-				function (_eval, arg) {
-					if (arg.$ === 'List') {
-						var value = arg.b;
-						return A3(
-							$elm$core$List$foldl,
-							F2(
-								function (nextElem, resultSoFar) {
-									return A2(
-										$elm$core$Result$andThen,
-										function (resultValue) {
-											return _eval(
-												A3(
-													$author$project$Morphir$IR$Value$Apply,
-													_Utils_Tuple0,
-													A3(
-														$author$project$Morphir$IR$Value$Apply,
-														_Utils_Tuple0,
-														A2(
-															$author$project$Morphir$IR$Value$Reference,
-															_Utils_Tuple0,
-															A3($author$project$Morphir$IR$FQName$fqn, 'Morphir.SDK', 'Basics', 'add')),
-														nextElem),
-													resultValue));
-										},
-										resultSoFar);
-								}),
-							$elm$core$Result$Ok(
-								A2(
-									$author$project$Morphir$IR$Value$Literal,
-									_Utils_Tuple0,
-									$author$project$Morphir$IR$Literal$IntLiteral(0))),
-							value);
-					} else {
-						return $elm$core$Result$Err(
-							$author$project$Morphir$Value$Error$UnexpectedArguments(
-								_List_fromArray(
-									[arg])));
-					}
-				}))),
-		_Utils_Tuple2('map', $author$project$Morphir$IR$SDK$List$nativeMap),
-		_Utils_Tuple2('append', $author$project$Morphir$IR$SDK$List$nativeAppend)
-	]);
-var $author$project$Morphir$IR$SDK$String$nativeFunctions = _List_fromArray(
-	[
-		_Utils_Tuple2(
-		'concat',
-		$author$project$Morphir$Value$Native$unaryStrict(
-			F2(
-				function (_eval, arg) {
-					if (arg.$ === 'List') {
-						var value = arg.b;
-						return A2(
-							$elm$core$Result$map,
-							A2(
-								$elm$core$Basics$composeR,
-								$elm$core$String$concat,
-								A2(
-									$elm$core$Basics$composeR,
-									$author$project$Morphir$IR$Literal$StringLiteral,
-									$author$project$Morphir$IR$Value$Literal(_Utils_Tuple0))),
-							$author$project$Morphir$ListOfResults$liftFirstError(
-								A2(
-									$elm$core$List$map,
-									function (listItem) {
-										return A2(
-											$elm$core$Result$andThen,
-											function (evaluatedListItem) {
-												if ((evaluatedListItem.$ === 'Literal') && (evaluatedListItem.b.$ === 'StringLiteral')) {
-													var argument = evaluatedListItem.b.a;
-													return $elm$core$Result$Ok(argument);
-												} else {
-													return $elm$core$Result$Err(
-														$author$project$Morphir$Value$Error$UnexpectedArguments(
-															_List_fromArray(
-																[arg])));
-												}
-											},
-											_eval(listItem));
-									},
-									value)));
-					} else {
-						return $elm$core$Result$Err(
-							$author$project$Morphir$Value$Error$UnexpectedArguments(
-								_List_fromArray(
-									[arg])));
-					}
-				})))
-	]);
-var $author$project$Morphir$IR$SDK$packageName = $author$project$Morphir$IR$Path$fromString('Morphir.SDK');
-var $elm$core$Dict$foldl = F3(
-	function (func, acc, dict) {
-		foldl:
-		while (true) {
-			if (dict.$ === 'RBEmpty_elm_builtin') {
-				return acc;
-			} else {
-				var key = dict.b;
-				var value = dict.c;
-				var left = dict.d;
-				var right = dict.e;
-				var $temp$func = func,
-					$temp$acc = A3(
-					func,
-					key,
-					value,
-					A3($elm$core$Dict$foldl, func, acc, left)),
-					$temp$dict = right;
-				func = $temp$func;
-				acc = $temp$acc;
-				dict = $temp$dict;
-				continue foldl;
-			}
-		}
-	});
-var $elm$core$Dict$union = F2(
-	function (t1, t2) {
-		return A3($elm$core$Dict$foldl, $elm$core$Dict$insert, t2, t1);
-	});
-var $author$project$Morphir$IR$SDK$nativeFunctions = function () {
-	var moduleFunctions = F2(
-		function (moduleName, functionsByName) {
-			return $elm$core$Dict$fromList(
-				A2(
-					$elm$core$List$map,
-					function (_v0) {
-						var localName = _v0.a;
-						var fun = _v0.b;
-						return _Utils_Tuple2(
-							_Utils_Tuple3(
-								$author$project$Morphir$IR$SDK$packageName,
-								$author$project$Morphir$IR$Path$fromString(moduleName),
-								$author$project$Morphir$IR$Name$fromString(localName)),
-							fun);
-					},
-					functionsByName));
-		});
-	return A3(
-		$elm$core$List$foldl,
-		$elm$core$Dict$union,
-		$elm$core$Dict$empty,
-		_List_fromArray(
-			[
-				A2(moduleFunctions, 'Basics', $author$project$Morphir$IR$SDK$Basics$nativeFunctions),
-				A2(moduleFunctions, 'String', $author$project$Morphir$IR$SDK$String$nativeFunctions),
-				A2(moduleFunctions, 'List', $author$project$Morphir$IR$SDK$List$nativeFunctions)
-			]));
-}();
-var $author$project$Morphir$Value$Interpreter$referencesForDistribution = function (distribution) {
-	var packageName = distribution.a;
-	var dependencies = distribution.b;
-	var packageDef = distribution.c;
-	var sdkReferences = A2(
-		$elm$core$Dict$map,
-		F2(
-			function (_v3, fun) {
-				return $author$project$Morphir$Value$Interpreter$NativeReference(fun);
-			}),
-		$author$project$Morphir$IR$SDK$nativeFunctions);
-	var packageReferences = $elm$core$Dict$fromList(
-		A2(
-			$elm$core$List$concatMap,
-			function (_v1) {
-				var moduleName = _v1.a;
-				var accessControlledModuleDef = _v1.b;
-				return A2(
-					$elm$core$List$map,
-					function (_v2) {
-						var valueName = _v2.a;
-						var accessControlledValueDef = _v2.b;
-						return _Utils_Tuple2(
-							_Utils_Tuple3(packageName, moduleName, valueName),
-							$author$project$Morphir$Value$Interpreter$ValueReference(
-								$author$project$Morphir$IR$Value$definitionToValue(
-									A3(
-										$author$project$Morphir$IR$Value$mapDefinitionAttributes,
-										$elm$core$Basics$always(_Utils_Tuple0),
-										$elm$core$Basics$always(_Utils_Tuple0),
-										accessControlledValueDef.value))));
-					},
-					$elm$core$Dict$toList(accessControlledModuleDef.value.values));
-			},
-			$elm$core$Dict$toList(packageDef.modules)));
-	return A2($elm$core$Dict$union, packageReferences, sdkReferences);
-};
-var $author$project$Morphir$Visual$Context$fromDistributionAndVariables = F2(
-	function (distribution, variables) {
-		var references = $author$project$Morphir$Value$Interpreter$referencesForDistribution(distribution);
-		return A3($author$project$Morphir$Visual$Context$Context, distribution, references, variables);
-	});
-var $author$project$Morphir$IR$SDK$Basics$boolType = function (attributes) {
-	return A3(
-		$author$project$Morphir$IR$Type$Reference,
-		attributes,
-		A2($author$project$Morphir$IR$SDK$Common$toFQName, $author$project$Morphir$IR$SDK$Basics$moduleName, 'Bool'),
-		_List_Nil);
-};
-var $mdgriffith$elm_ui$Element$htmlAttribute = $mdgriffith$elm_ui$Internal$Model$Attr;
-var $author$project$Morphir$Visual$Common$cssClass = function (className) {
-	return $mdgriffith$elm_ui$Element$htmlAttribute(
-		$elm$html$Html$Attributes$class(className));
-};
-var $author$project$Morphir$Visual$BoolOperatorTree$And = {$: 'And'};
-var $author$project$Morphir$Visual$BoolOperatorTree$BoolOperatorBranch = F2(
-	function (a, b) {
-		return {$: 'BoolOperatorBranch', a: a, b: b};
-	});
-var $author$project$Morphir$Visual$BoolOperatorTree$BoolValueLeaf = function (a) {
-	return {$: 'BoolValueLeaf', a: a};
-};
-var $author$project$Morphir$Visual$BoolOperatorTree$Or = {$: 'Or'};
-var $elm$core$String$cons = _String_cons;
-var $elm$core$Char$toUpper = _Char_toUpper;
-var $author$project$Morphir$IR$Name$capitalize = function (string) {
-	var _v0 = $elm$core$String$uncons(string);
-	if (_v0.$ === 'Just') {
-		var _v1 = _v0.a;
-		var headChar = _v1.a;
-		var tailString = _v1.b;
-		return A2(
-			$elm$core$String$cons,
-			$elm$core$Char$toUpper(headChar),
-			tailString);
-	} else {
-		return string;
-	}
-};
-var $author$project$Morphir$IR$Name$toCamelCase = function (name) {
-	var _v0 = $author$project$Morphir$IR$Name$toList(name);
-	if (!_v0.b) {
-		return '';
-	} else {
-		var head = _v0.a;
-		var tail = _v0.b;
-		return A2(
-			$elm$core$String$join,
-			'',
-			A2(
-				$elm$core$List$cons,
-				head,
-				A2($elm$core$List$map, $author$project$Morphir$IR$Name$capitalize, tail)));
-	}
-};
-var $author$project$Morphir$IR$Path$toList = function (names) {
-	return names;
-};
-var $author$project$Morphir$IR$Path$toString = F3(
-	function (nameToString, sep, path) {
-		return A2(
-			$elm$core$String$join,
-			sep,
-			A2(
-				$elm$core$List$map,
-				nameToString,
-				$author$project$Morphir$IR$Path$toList(path)));
-	});
-var $author$project$Morphir$IR$Name$toTitleCase = function (name) {
-	return A2(
-		$elm$core$String$join,
-		'',
-		A2(
-			$elm$core$List$map,
-			$author$project$Morphir$IR$Name$capitalize,
-			$author$project$Morphir$IR$Name$toList(name)));
-};
-var $author$project$Morphir$Visual$BoolOperatorTree$functionName = F2(
-	function (moduleName, localName) {
-		return A2(
-			$elm$core$String$join,
-			'.',
-			_List_fromArray(
-				[
-					A3($author$project$Morphir$IR$Path$toString, $author$project$Morphir$IR$Name$toTitleCase, '.', moduleName),
-					$author$project$Morphir$IR$Name$toCamelCase(localName)
-				]));
-	});
-var $author$project$Morphir$IR$Value$uncurryApply = F2(
-	function (fun, lastArg) {
-		if (fun.$ === 'Apply') {
-			var nestedFun = fun.b;
-			var nestedArg = fun.c;
-			var _v1 = A2($author$project$Morphir$IR$Value$uncurryApply, nestedFun, nestedArg);
-			var f = _v1.a;
-			var initArgs = _v1.b;
-			return _Utils_Tuple2(
-				f,
-				A2(
-					$elm$core$List$append,
-					initArgs,
-					_List_fromArray(
-						[lastArg])));
-		} else {
-			return _Utils_Tuple2(
-				fun,
-				_List_fromArray(
-					[lastArg]));
-		}
-	});
-var $author$project$Morphir$Visual$BoolOperatorTree$fromTypedValue = function (typedValue) {
-	if (typedValue.$ === 'Apply') {
-		var fun = typedValue.b;
-		var arg = typedValue.c;
-		var _v8 = A2($author$project$Morphir$IR$Value$uncurryApply, fun, arg);
-		var _function = _v8.a;
-		var args = _v8.b;
-		var _v9 = _Utils_Tuple2(_function, args);
-		if ((((_v9.a.$ === 'Reference') && _v9.b.b) && _v9.b.b.b) && (!_v9.b.b.b.b)) {
-			var _v10 = _v9.a;
-			var _v11 = _v10.b;
-			var moduleName = _v11.b;
-			var localName = _v11.c;
-			var _v12 = _v9.b;
-			var arg1 = _v12.a;
-			var _v13 = _v12.b;
-			var arg2 = _v13.a;
-			var operatorName = A2($author$project$Morphir$Visual$BoolOperatorTree$functionName, moduleName, localName);
-			switch (operatorName) {
-				case 'Basics.or':
-					return A2(
-						$author$project$Morphir$Visual$BoolOperatorTree$BoolOperatorBranch,
-						$author$project$Morphir$Visual$BoolOperatorTree$Or,
-						A2($author$project$Morphir$Visual$BoolOperatorTree$helperFunction, typedValue, operatorName));
-				case 'Basics.and':
-					return A2(
-						$author$project$Morphir$Visual$BoolOperatorTree$BoolOperatorBranch,
-						$author$project$Morphir$Visual$BoolOperatorTree$And,
-						A2($author$project$Morphir$Visual$BoolOperatorTree$helperFunction, typedValue, operatorName));
-				default:
-					return $author$project$Morphir$Visual$BoolOperatorTree$BoolValueLeaf(typedValue);
-			}
-		} else {
-			return $author$project$Morphir$Visual$BoolOperatorTree$BoolValueLeaf(typedValue);
-		}
-	} else {
-		return $author$project$Morphir$Visual$BoolOperatorTree$BoolValueLeaf(typedValue);
-	}
-};
-var $author$project$Morphir$Visual$BoolOperatorTree$helperFunction = F2(
-	function (value, operatorName) {
-		if (value.$ === 'Apply') {
-			var fun = value.b;
-			var arg = value.c;
-			var _v1 = A2($author$project$Morphir$IR$Value$uncurryApply, fun, arg);
-			var _function = _v1.a;
-			var args = _v1.b;
-			var _v2 = _Utils_Tuple2(_function, args);
-			if ((((_v2.a.$ === 'Reference') && _v2.b.b) && _v2.b.b.b) && (!_v2.b.b.b.b)) {
-				var _v3 = _v2.a;
-				var _v4 = _v3.b;
-				var moduleName = _v4.b;
-				var localName = _v4.c;
-				var _v5 = _v2.b;
-				var arg1 = _v5.a;
-				var _v6 = _v5.b;
-				var arg2 = _v6.a;
-				return _Utils_eq(
-					A2($author$project$Morphir$Visual$BoolOperatorTree$functionName, moduleName, localName),
-					operatorName) ? _Utils_ap(
-					A2($author$project$Morphir$Visual$BoolOperatorTree$helperFunction, arg1, operatorName),
-					A2($author$project$Morphir$Visual$BoolOperatorTree$helperFunction, arg2, operatorName)) : _List_fromArray(
-					[
-						$author$project$Morphir$Visual$BoolOperatorTree$fromTypedValue(value)
-					]);
-			} else {
-				return _List_fromArray(
-					[
-						$author$project$Morphir$Visual$BoolOperatorTree$BoolValueLeaf(value)
-					]);
-			}
-		} else {
-			return _List_fromArray(
-				[
-					$author$project$Morphir$Visual$BoolOperatorTree$BoolValueLeaf(value)
-				]);
-		}
-	});
-var $author$project$Morphir$Visual$Common$nameToText = function (name) {
-	return A2(
-		$elm$core$String$join,
-		' ',
-		$author$project$Morphir$IR$Name$toHumanWords(name));
-};
-var $mdgriffith$elm_ui$Internal$Model$Paragraph = {$: 'Paragraph'};
-var $mdgriffith$elm_ui$Element$paragraph = F2(
-	function (attrs, children) {
-		return A4(
-			$mdgriffith$elm_ui$Internal$Model$element,
-			$mdgriffith$elm_ui$Internal$Model$asParagraph,
-			$mdgriffith$elm_ui$Internal$Model$div,
-			A2(
-				$elm$core$List$cons,
-				$mdgriffith$elm_ui$Internal$Model$Describe($mdgriffith$elm_ui$Internal$Model$Paragraph),
-				A2(
-					$elm$core$List$cons,
-					$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),
-					A2(
-						$elm$core$List$cons,
-						$mdgriffith$elm_ui$Element$spacing(5),
-						attrs))),
-			$mdgriffith$elm_ui$Internal$Model$Unkeyed(children));
-	});
-var $author$project$Morphir$IR$Value$valueAttribute = function (v) {
-	switch (v.$) {
-		case 'Literal':
-			var a = v.a;
-			return a;
-		case 'Constructor':
-			var a = v.a;
-			return a;
-		case 'Tuple':
-			var a = v.a;
-			return a;
-		case 'List':
-			var a = v.a;
-			return a;
-		case 'Record':
-			var a = v.a;
-			return a;
-		case 'Variable':
-			var a = v.a;
-			return a;
-		case 'Reference':
-			var a = v.a;
-			return a;
-		case 'Field':
-			var a = v.a;
-			return a;
-		case 'FieldFunction':
-			var a = v.a;
-			return a;
-		case 'Apply':
-			var a = v.a;
-			return a;
-		case 'Lambda':
-			var a = v.a;
-			return a;
-		case 'LetDefinition':
-			var a = v.a;
-			return a;
-		case 'LetRecursion':
-			var a = v.a;
-			return a;
-		case 'Destructure':
-			var a = v.a;
-			return a;
-		case 'IfThenElse':
-			var a = v.a;
-			return a;
-		case 'PatternMatch':
-			var a = v.a;
-			return a;
-		case 'UpdateRecord':
-			var a = v.a;
-			return a;
-		default:
-			var a = v.a;
-			return a;
-	}
-};
-var $author$project$Morphir$Visual$ViewApply$inlineBinaryOperators = $elm$core$Dict$fromList(
-	_List_fromArray(
-		[
-			_Utils_Tuple2('Basics.equal', '='),
-			_Utils_Tuple2('Basics.lessThan', '<'),
-			_Utils_Tuple2('Basics.lessThanOrEqual', '<='),
-			_Utils_Tuple2('Basics.greaterThan', '>'),
-			_Utils_Tuple2('Basics.greaterThanOrEqual', '>='),
-			_Utils_Tuple2('Basics.add', '+'),
-			_Utils_Tuple2('Basics.subtract', '-'),
-			_Utils_Tuple2('Basics.multiply', '*'),
-			_Utils_Tuple2('Basics.divide', '/')
-		]));
-var $mdgriffith$elm_ui$Internal$Model$MoveX = function (a) {
-	return {$: 'MoveX', a: a};
-};
-var $mdgriffith$elm_ui$Internal$Model$TransformComponent = F2(
-	function (a, b) {
-		return {$: 'TransformComponent', a: a, b: b};
-	});
-var $mdgriffith$elm_ui$Internal$Flag$moveX = $mdgriffith$elm_ui$Internal$Flag$flag(25);
-var $mdgriffith$elm_ui$Element$moveRight = function (x) {
-	return A2(
-		$mdgriffith$elm_ui$Internal$Model$TransformComponent,
-		$mdgriffith$elm_ui$Internal$Flag$moveX,
-		$mdgriffith$elm_ui$Internal$Model$MoveX(x));
-};
-var $mdgriffith$elm_ui$Internal$Model$paddingName = F4(
-	function (top, right, bottom, left) {
-		return 'pad-' + ($elm$core$String$fromInt(top) + ('-' + ($elm$core$String$fromInt(right) + ('-' + ($elm$core$String$fromInt(bottom) + ('-' + $elm$core$String$fromInt(left)))))));
-	});
-var $mdgriffith$elm_ui$Element$paddingEach = function (_v0) {
-	var top = _v0.top;
-	var right = _v0.right;
-	var bottom = _v0.bottom;
-	var left = _v0.left;
-	if (_Utils_eq(top, right) && (_Utils_eq(top, bottom) && _Utils_eq(top, left))) {
-		var topFloat = top;
-		return A2(
-			$mdgriffith$elm_ui$Internal$Model$StyleClass,
-			$mdgriffith$elm_ui$Internal$Flag$padding,
-			A5(
-				$mdgriffith$elm_ui$Internal$Model$PaddingStyle,
-				'p-' + $elm$core$String$fromInt(top),
-				topFloat,
-				topFloat,
-				topFloat,
-				topFloat));
-	} else {
-		return A2(
-			$mdgriffith$elm_ui$Internal$Model$StyleClass,
-			$mdgriffith$elm_ui$Internal$Flag$padding,
-			A5(
-				$mdgriffith$elm_ui$Internal$Model$PaddingStyle,
-				A4($mdgriffith$elm_ui$Internal$Model$paddingName, top, right, bottom, left),
-				top,
-				right,
-				bottom,
-				left));
-	}
-};
-var $author$project$Morphir$Visual$ViewApply$view = F3(
-	function (viewValue, functionValue, argValues) {
-		var _v0 = _Utils_Tuple2(functionValue, argValues);
-		_v0$2:
-		while (true) {
-			if ((_v0.a.$ === 'Reference') && _v0.b.b) {
-				if (!_v0.b.b.b) {
-					if (_v0.a.b.c.b && (_v0.a.b.c.a === 'is')) {
-						var _v1 = _v0.a;
-						var _v2 = _v1.b;
-						var localName = _v2.c;
-						var _v3 = _v0.b;
-						var argValue = _v3.a;
-						return A2(
-							$mdgriffith$elm_ui$Element$row,
-							_List_fromArray(
-								[
-									$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),
-									$mdgriffith$elm_ui$Element$spacing(10)
-								]),
-							_List_fromArray(
-								[
-									viewValue(argValue),
-									$mdgriffith$elm_ui$Element$text(
-									$author$project$Morphir$Visual$Common$nameToText(localName))
-								]));
-					} else {
-						break _v0$2;
-					}
-				} else {
-					if (((((((((((((_v0.a.b.a.b && _v0.a.b.a.a.b) && (_v0.a.b.a.a.a === 'morphir')) && (!_v0.a.b.a.a.b.b)) && _v0.a.b.a.b.b) && _v0.a.b.a.b.a.b) && (_v0.a.b.a.b.a.a === 's')) && _v0.a.b.a.b.a.b.b) && (_v0.a.b.a.b.a.b.a === 'd')) && _v0.a.b.a.b.a.b.b.b) && (_v0.a.b.a.b.a.b.b.a === 'k')) && (!_v0.a.b.a.b.a.b.b.b.b)) && (!_v0.a.b.a.b.b.b)) && (!_v0.b.b.b.b)) {
-						var _v4 = _v0.a;
-						var _v5 = _v4.b;
-						var _v6 = _v5.a;
-						var _v7 = _v6.a;
-						var _v8 = _v6.b;
-						var _v9 = _v8.a;
-						var _v10 = _v9.b;
-						var _v11 = _v10.b;
-						var moduleName = _v5.b;
-						var localName = _v5.c;
-						var _v12 = _v0.b;
-						var argValue1 = _v12.a;
-						var _v13 = _v12.b;
-						var argValue2 = _v13.a;
-						var functionName = A2(
-							$elm$core$String$join,
-							'.',
-							_List_fromArray(
-								[
-									A3($author$project$Morphir$IR$Path$toString, $author$project$Morphir$IR$Name$toTitleCase, '.', moduleName),
-									$author$project$Morphir$IR$Name$toCamelCase(localName)
-								]));
-						return A2(
-							$elm$core$Maybe$withDefault,
-							A2(
-								$mdgriffith$elm_ui$Element$column,
-								_List_fromArray(
-									[
-										$mdgriffith$elm_ui$Element$spacing(10)
-									]),
-								_List_fromArray(
-									[
-										viewValue(functionValue),
-										A2(
-										$mdgriffith$elm_ui$Element$column,
-										_List_fromArray(
-											[
-												$mdgriffith$elm_ui$Element$paddingEach(
-												{bottom: 0, left: 10, right: 0, top: 0}),
-												$mdgriffith$elm_ui$Element$spacing(10)
-											]),
-										A2($elm$core$List$map, viewValue, argValues))
-									])),
-							A2(
-								$elm$core$Maybe$map,
-								function (functionText) {
-									return A2(
-										$mdgriffith$elm_ui$Element$row,
-										_List_fromArray(
-											[
-												$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),
-												$mdgriffith$elm_ui$Element$spacing(5)
-											]),
-										_List_fromArray(
-											[
-												viewValue(argValue1),
-												$mdgriffith$elm_ui$Element$text(functionText),
-												viewValue(argValue2)
-											]));
-								},
-								A2($elm$core$Dict$get, functionName, $author$project$Morphir$Visual$ViewApply$inlineBinaryOperators)));
-					} else {
-						break _v0$2;
-					}
-				}
-			} else {
-				break _v0$2;
-			}
-		}
-		return A2(
-			$mdgriffith$elm_ui$Element$column,
-			_List_fromArray(
-				[
-					$mdgriffith$elm_ui$Element$spacing(10)
-				]),
-			_List_fromArray(
-				[
-					viewValue(functionValue),
-					A2(
-					$mdgriffith$elm_ui$Element$column,
-					_List_fromArray(
-						[
-							$mdgriffith$elm_ui$Element$moveRight(10),
-							$mdgriffith$elm_ui$Element$spacing(10)
-						]),
-					A2($elm$core$List$map, viewValue, argValues))
-				]));
-	});
-var $author$project$Morphir$Visual$ViewBoolOperatorTree$Vertical = {$: 'Vertical'};
-var $mdgriffith$elm_ui$Internal$Model$AlignX = function (a) {
-	return {$: 'AlignX', a: a};
-};
-var $mdgriffith$elm_ui$Internal$Model$CenterX = {$: 'CenterX'};
-var $mdgriffith$elm_ui$Element$centerX = $mdgriffith$elm_ui$Internal$Model$AlignX($mdgriffith$elm_ui$Internal$Model$CenterX);
-var $mdgriffith$elm_ui$Internal$Model$AlignY = function (a) {
-	return {$: 'AlignY', a: a};
-};
-var $mdgriffith$elm_ui$Internal$Model$CenterY = {$: 'CenterY'};
-var $mdgriffith$elm_ui$Element$centerY = $mdgriffith$elm_ui$Internal$Model$AlignY($mdgriffith$elm_ui$Internal$Model$CenterY);
-var $author$project$Morphir$Visual$ViewBoolOperatorTree$Horizontal = {$: 'Horizontal'};
-var $author$project$Morphir$Visual$ViewBoolOperatorTree$flipLayoutDirection = function (direction) {
-	if (direction.$ === 'Horizontal') {
-		return $author$project$Morphir$Visual$ViewBoolOperatorTree$Vertical;
-	} else {
-		return $author$project$Morphir$Visual$ViewBoolOperatorTree$Horizontal;
-	}
-};
-var $elm$core$List$intersperse = F2(
-	function (sep, xs) {
-		if (!xs.b) {
-			return _List_Nil;
-		} else {
-			var hd = xs.a;
-			var tl = xs.b;
-			var step = F2(
-				function (x, rest) {
-					return A2(
-						$elm$core$List$cons,
-						sep,
-						A2($elm$core$List$cons, x, rest));
-				});
-			var spersed = A3($elm$core$List$foldr, step, _List_Nil, tl);
-			return A2($elm$core$List$cons, hd, spersed);
-		}
-	});
-var $mdgriffith$elm_ui$Internal$Model$Empty = {$: 'Empty'};
-var $mdgriffith$elm_ui$Element$none = $mdgriffith$elm_ui$Internal$Model$Empty;
-var $author$project$Morphir$Visual$ViewBoolOperatorTree$operatorToString = function (operator) {
-	if (operator.$ === 'Or') {
-		return 'OR';
-	} else {
-		return 'AND';
-	}
-};
-var $mdgriffith$elm_ui$Element$Border$widthXY = F2(
-	function (x, y) {
-		return A2(
-			$mdgriffith$elm_ui$Internal$Model$StyleClass,
-			$mdgriffith$elm_ui$Internal$Flag$borderWidth,
-			A5(
-				$mdgriffith$elm_ui$Internal$Model$BorderWidth,
-				'b-' + ($elm$core$String$fromInt(x) + ('-' + $elm$core$String$fromInt(y))),
-				y,
-				x,
-				y,
-				x));
-	});
-var $mdgriffith$elm_ui$Element$Border$widthEach = function (_v0) {
-	var bottom = _v0.bottom;
-	var top = _v0.top;
-	var left = _v0.left;
-	var right = _v0.right;
-	return (_Utils_eq(top, bottom) && _Utils_eq(left, right)) ? (_Utils_eq(top, right) ? $mdgriffith$elm_ui$Element$Border$width(top) : A2($mdgriffith$elm_ui$Element$Border$widthXY, left, top)) : A2(
-		$mdgriffith$elm_ui$Internal$Model$StyleClass,
-		$mdgriffith$elm_ui$Internal$Flag$borderWidth,
-		A5(
-			$mdgriffith$elm_ui$Internal$Model$BorderWidth,
-			'b-' + ($elm$core$String$fromInt(top) + ('-' + ($elm$core$String$fromInt(right) + ('-' + ($elm$core$String$fromInt(bottom) + ('-' + $elm$core$String$fromInt(left))))))),
-			top,
-			right,
-			bottom,
-			left));
-};
-var $author$project$Morphir$Visual$ViewBoolOperatorTree$viewTreeNode = F3(
-	function (viewValue, direction, boolOperatorTree) {
-		if (boolOperatorTree.$ === 'BoolOperatorBranch') {
-			var operator = boolOperatorTree.a;
-			var values = boolOperatorTree.b;
-			var separator = function () {
-				if (direction.$ === 'Horizontal') {
-					var verticalLine = A2(
-						$mdgriffith$elm_ui$Element$row,
-						_List_fromArray(
-							[
-								$mdgriffith$elm_ui$Element$centerX,
-								$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill)
-							]),
-						_List_fromArray(
-							[
-								A2(
-								$mdgriffith$elm_ui$Element$el,
-								_List_fromArray(
-									[
-										$mdgriffith$elm_ui$Element$Border$widthEach(
-										{bottom: 0, left: 1, right: 0, top: 0}),
-										$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill)
-									]),
-								$mdgriffith$elm_ui$Element$none),
-								A2(
-								$mdgriffith$elm_ui$Element$el,
-								_List_fromArray(
-									[
-										$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill)
-									]),
-								$mdgriffith$elm_ui$Element$none)
-							]));
-					return A2(
-						$mdgriffith$elm_ui$Element$column,
-						_List_fromArray(
-							[
-								$mdgriffith$elm_ui$Element$centerY,
-								$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill)
-							]),
-						_List_fromArray(
-							[
-								verticalLine,
-								A2(
-								$mdgriffith$elm_ui$Element$el,
-								_List_fromArray(
-									[
-										$mdgriffith$elm_ui$Element$Font$size(12),
-										$mdgriffith$elm_ui$Element$padding(5),
-										$mdgriffith$elm_ui$Element$Font$bold
-									]),
-								$mdgriffith$elm_ui$Element$text(
-									$author$project$Morphir$Visual$ViewBoolOperatorTree$operatorToString(operator))),
-								verticalLine
-							]));
-				} else {
-					var horizontalLine = A2(
-						$mdgriffith$elm_ui$Element$column,
-						_List_fromArray(
-							[
-								$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)
-							]),
-						_List_fromArray(
-							[
-								A2(
-								$mdgriffith$elm_ui$Element$el,
-								_List_fromArray(
-									[
-										$mdgriffith$elm_ui$Element$Border$widthEach(
-										{bottom: 1, left: 0, right: 0, top: 0}),
-										$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)
-									]),
-								$mdgriffith$elm_ui$Element$none),
-								A2(
-								$mdgriffith$elm_ui$Element$el,
-								_List_fromArray(
-									[
-										$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)
-									]),
-								$mdgriffith$elm_ui$Element$none)
-							]));
-					return A2(
-						$mdgriffith$elm_ui$Element$row,
-						_List_fromArray(
-							[
-								$mdgriffith$elm_ui$Element$centerX,
-								$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)
-							]),
-						_List_fromArray(
-							[
-								horizontalLine,
-								A2(
-								$mdgriffith$elm_ui$Element$el,
-								_List_fromArray(
-									[
-										$mdgriffith$elm_ui$Element$Font$size(12),
-										$mdgriffith$elm_ui$Element$padding(5),
-										$mdgriffith$elm_ui$Element$Font$bold
-									]),
-								$mdgriffith$elm_ui$Element$text(
-									$author$project$Morphir$Visual$ViewBoolOperatorTree$operatorToString(operator))),
-								horizontalLine
-							]));
-				}
-			}();
-			var layout = function (elems) {
-				if (direction.$ === 'Horizontal') {
-					return A2($mdgriffith$elm_ui$Element$row, _List_Nil, elems);
-				} else {
-					return A2($mdgriffith$elm_ui$Element$column, _List_Nil, elems);
-				}
-			};
-			return layout(
-				A2(
-					$elm$core$List$intersperse,
-					separator,
-					A2(
-						$elm$core$List$map,
-						$mdgriffith$elm_ui$Element$el(
-							_List_fromArray(
-								[
-									$mdgriffith$elm_ui$Element$padding(8),
-									$mdgriffith$elm_ui$Element$spacing(8)
-								])),
-						A2(
-							$elm$core$List$map,
-							A2(
-								$author$project$Morphir$Visual$ViewBoolOperatorTree$viewTreeNode,
-								viewValue,
-								$author$project$Morphir$Visual$ViewBoolOperatorTree$flipLayoutDirection(direction)),
-							values))));
-		} else {
-			var value = boolOperatorTree.a;
-			return viewValue(value);
-		}
-	});
-var $author$project$Morphir$Visual$ViewBoolOperatorTree$view = F2(
-	function (viewValue, boolOperatorTree) {
-		return A3($author$project$Morphir$Visual$ViewBoolOperatorTree$viewTreeNode, viewValue, $author$project$Morphir$Visual$ViewBoolOperatorTree$Vertical, boolOperatorTree);
-	});
-var $author$project$Morphir$Visual$ViewField$view = F3(
-	function (viewValue, subjectValue, fieldName) {
-		if (subjectValue.$ === 'Variable') {
-			var variableName = subjectValue.b;
-			return $mdgriffith$elm_ui$Element$text(
-				$elm$core$String$concat(
-					_List_fromArray(
-						[
-							'the ',
-							$author$project$Morphir$Visual$Common$nameToText(variableName),
-							'\'s ',
-							$author$project$Morphir$Visual$Common$nameToText(fieldName)
-						])));
-		} else {
-			return A2(
-				$mdgriffith$elm_ui$Element$row,
-				_List_fromArray(
-					[
-						$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)
-					]),
-				_List_fromArray(
-					[
-						$mdgriffith$elm_ui$Element$text(
-						$elm$core$String$concat(
-							_List_fromArray(
-								[
-									'the ',
-									$author$project$Morphir$Visual$Common$nameToText(fieldName),
-									' field of '
-								]))),
-						viewValue(subjectValue)
-					]));
-		}
-	});
-var $author$project$Morphir$Visual$Components$DecisionTree$Color = F3(
-	function (a, b, c) {
-		return {$: 'Color', a: a, b: b, c: c};
-	});
-var $author$project$Morphir$Visual$Components$DecisionTree$highlightColor = {
-	_default: A3($author$project$Morphir$Visual$Components$DecisionTree$Color, 120, 120, 120),
-	_false: A3($author$project$Morphir$Visual$Components$DecisionTree$Color, 180, 0, 0),
-	_true: A3($author$project$Morphir$Visual$Components$DecisionTree$Color, 0, 180, 0)
-};
-var $mdgriffith$elm_ui$Element$Font$color = function (fontColor) {
-	return A2(
-		$mdgriffith$elm_ui$Internal$Model$StyleClass,
-		$mdgriffith$elm_ui$Internal$Flag$fontColor,
-		A3(
-			$mdgriffith$elm_ui$Internal$Model$Colored,
-			'fc-' + $mdgriffith$elm_ui$Internal$Model$formatColorClass(fontColor),
-			'color',
-			fontColor));
-};
-var $mdgriffith$elm_ui$Internal$Model$Left = {$: 'Left'};
-var $mdgriffith$elm_ui$Element$alignLeft = $mdgriffith$elm_ui$Internal$Model$AlignX($mdgriffith$elm_ui$Internal$Model$Left);
-var $mdgriffith$elm_ui$Internal$Model$Top = {$: 'Top'};
-var $mdgriffith$elm_ui$Element$alignTop = $mdgriffith$elm_ui$Internal$Model$AlignY($mdgriffith$elm_ui$Internal$Model$Top);
-var $elm$html$Html$Attributes$colspan = function (n) {
-	return A2(
-		_VirtualDom_attribute,
-		'colspan',
-		$elm$core$String$fromInt(n));
-};
-var $elm$svg$Svg$Attributes$height = _VirtualDom_attribute('height');
-var $elm$svg$Svg$Attributes$points = _VirtualDom_attribute('points');
-var $elm$svg$Svg$trustedNode = _VirtualDom_nodeNS('http://www.w3.org/2000/svg');
-var $elm$svg$Svg$polygon = $elm$svg$Svg$trustedNode('polygon');
-var $elm$svg$Svg$Attributes$style = _VirtualDom_attribute('style');
-var $elm$svg$Svg$svg = $elm$svg$Svg$trustedNode('svg');
-var $elm$svg$Svg$Attributes$viewBox = _VirtualDom_attribute('viewBox');
-var $elm$svg$Svg$Attributes$width = _VirtualDom_attribute('width');
-var $author$project$Morphir$Visual$Components$DecisionTree$downArrowHead = function (color) {
-	return A2(
-		$elm$svg$Svg$svg,
-		_List_fromArray(
-			[
-				$elm$svg$Svg$Attributes$width('10'),
-				$elm$svg$Svg$Attributes$height('10'),
-				$elm$svg$Svg$Attributes$viewBox('0 0 200 200')
-			]),
-		_List_fromArray(
-			[
-				A2(
-				$elm$svg$Svg$polygon,
-				_List_fromArray(
-					[
-						$elm$svg$Svg$Attributes$points('0,0 100,200 200,0'),
-						$elm$svg$Svg$Attributes$style('fill:' + color)
-					]),
-				_List_Nil)
-			]));
-};
-var $mdgriffith$elm_ui$Internal$Model$NoStaticStyleSheet = {$: 'NoStaticStyleSheet'};
-var $mdgriffith$elm_ui$Internal$Model$RenderModeOption = function (a) {
-	return {$: 'RenderModeOption', a: a};
-};
-var $mdgriffith$elm_ui$Element$noStaticStyleSheet = $mdgriffith$elm_ui$Internal$Model$RenderModeOption($mdgriffith$elm_ui$Internal$Model$NoStaticStyleSheet);
-var $author$project$Morphir$Visual$Common$element = function (elem) {
-	return A3(
-		$mdgriffith$elm_ui$Element$layoutWith,
-		{
-			options: _List_fromArray(
-				[$mdgriffith$elm_ui$Element$noStaticStyleSheet])
-		},
-		_List_fromArray(
-			[
-				$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),
-				$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink)
-			]),
-		elem);
-};
-var $elm$html$Html$table = _VirtualDom_node('table');
-var $elm$html$Html$td = _VirtualDom_node('td');
-var $author$project$Morphir$Visual$Components$DecisionTree$toCssColor = function (_v0) {
-	var r = _v0.a;
-	var g = _v0.b;
-	var b = _v0.c;
-	return $elm$core$String$concat(
-		_List_fromArray(
-			[
-				'rgb(',
-				$elm$core$String$fromInt(r),
-				',',
-				$elm$core$String$fromInt(g),
-				',',
-				$elm$core$String$fromInt(b),
-				')'
-			]));
-};
-var $elm$html$Html$tr = _VirtualDom_node('tr');
-var $author$project$Morphir$Visual$Components$DecisionTree$downArrow = function (color) {
-	return A2(
-		$mdgriffith$elm_ui$Element$el,
-		_List_fromArray(
-			[
-				$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),
-				$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill)
-			]),
-		$mdgriffith$elm_ui$Element$html(
-			A2(
-				$elm$html$Html$table,
-				_List_fromArray(
-					[
-						A2($elm$html$Html$Attributes$style, 'border-collapse', 'collapse'),
-						A2($elm$html$Html$Attributes$style, 'height', '100%')
-					]),
-				_List_fromArray(
-					[
-						A2(
-						$elm$html$Html$tr,
-						_List_fromArray(
-							[
-								A2($elm$html$Html$Attributes$style, 'height', '100%')
-							]),
-						_List_fromArray(
-							[
-								A2(
-								$elm$html$Html$td,
-								_List_fromArray(
-									[
-										A2(
-										$elm$html$Html$Attributes$style,
-										'border-right',
-										'solid 2px ' + $author$project$Morphir$Visual$Components$DecisionTree$toCssColor(color))
-									]),
-								_List_Nil),
-								A2($elm$html$Html$td, _List_Nil, _List_Nil)
-							])),
-						A2(
-						$elm$html$Html$tr,
-						_List_Nil,
-						_List_fromArray(
-							[
-								A2(
-								$elm$html$Html$td,
-								_List_fromArray(
-									[
-										$elm$html$Html$Attributes$colspan(2)
-									]),
-								_List_fromArray(
-									[
-										$author$project$Morphir$Visual$Common$element(
-										A2(
-											$mdgriffith$elm_ui$Element$el,
-											_List_fromArray(
-												[$mdgriffith$elm_ui$Element$centerX]),
-											$mdgriffith$elm_ui$Element$html(
-												$author$project$Morphir$Visual$Components$DecisionTree$downArrowHead(
-													$author$project$Morphir$Visual$Components$DecisionTree$toCssColor(color)))))
-									]))
-							]))
-					]))));
-};
-var $author$project$Morphir$Visual$Components$DecisionTree$noPadding = {bottom: 0, left: 0, right: 0, top: 0};
-var $author$project$Morphir$Visual$Components$DecisionTree$rightArrowHead = function (color) {
-	return A2(
-		$elm$svg$Svg$svg,
-		_List_fromArray(
-			[
-				$elm$svg$Svg$Attributes$width('10'),
-				$elm$svg$Svg$Attributes$height('10'),
-				$elm$svg$Svg$Attributes$viewBox('0 0 200 200')
-			]),
-		_List_fromArray(
-			[
-				A2(
-				$elm$svg$Svg$polygon,
-				_List_fromArray(
-					[
-						$elm$svg$Svg$Attributes$points('0,0 200,100 0,200'),
-						$elm$svg$Svg$Attributes$style('fill:' + color)
-					]),
-				_List_Nil)
-			]));
-};
-var $elm$html$Html$Attributes$rowspan = function (n) {
-	return A2(
-		_VirtualDom_attribute,
-		'rowspan',
-		$elm$core$String$fromInt(n));
-};
-var $author$project$Morphir$Visual$Components$DecisionTree$rightArrow = function (color) {
-	return A2(
-		$mdgriffith$elm_ui$Element$el,
-		_List_fromArray(
-			[
-				$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),
-				$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill)
-			]),
-		$mdgriffith$elm_ui$Element$html(
-			A2(
-				$elm$html$Html$table,
-				_List_fromArray(
-					[
-						A2($elm$html$Html$Attributes$style, 'border-collapse', 'collapse'),
-						A2($elm$html$Html$Attributes$style, 'width', '100%')
-					]),
-				_List_fromArray(
-					[
-						A2(
-						$elm$html$Html$tr,
-						_List_Nil,
-						_List_fromArray(
-							[
-								A2(
-								$elm$html$Html$td,
-								_List_fromArray(
-									[
-										A2(
-										$elm$html$Html$Attributes$style,
-										'border-bottom',
-										'solid 2px ' + $author$project$Morphir$Visual$Components$DecisionTree$toCssColor(color)),
-										A2($elm$html$Html$Attributes$style, 'width', '100%')
-									]),
-								_List_Nil),
-								A2(
-								$elm$html$Html$td,
-								_List_fromArray(
-									[
-										$elm$html$Html$Attributes$rowspan(2)
-									]),
-								_List_fromArray(
-									[
-										$author$project$Morphir$Visual$Common$element(
-										A2(
-											$mdgriffith$elm_ui$Element$el,
-											_List_fromArray(
-												[$mdgriffith$elm_ui$Element$centerY]),
-											$mdgriffith$elm_ui$Element$html(
-												$author$project$Morphir$Visual$Components$DecisionTree$rightArrowHead(
-													$author$project$Morphir$Visual$Components$DecisionTree$toCssColor(color)))))
-									]))
-							])),
-						A2(
-						$elm$html$Html$tr,
-						_List_Nil,
-						_List_fromArray(
-							[
-								A2($elm$html$Html$td, _List_Nil, _List_Nil)
-							]))
-					]))));
-};
-var $author$project$Morphir$Visual$Components$DecisionTree$horizontalLayout = F7(
-	function (condition, branch1Label, branch1Color, branch1, branch2Label, branch2Color, branch2) {
-		return A2(
-			$mdgriffith$elm_ui$Element$row,
-			_List_Nil,
-			_List_fromArray(
-				[
-					A2(
-					$mdgriffith$elm_ui$Element$column,
-					_List_fromArray(
-						[$mdgriffith$elm_ui$Element$alignTop]),
-					_List_fromArray(
-						[
-							A2(
-							$mdgriffith$elm_ui$Element$row,
-							_List_fromArray(
-								[
-									$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)
-								]),
-							_List_fromArray(
-								[
-									A2(
-									$mdgriffith$elm_ui$Element$column,
-									_List_fromArray(
-										[
-											$mdgriffith$elm_ui$Element$alignTop,
-											$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink)
-										]),
-									_List_fromArray(
-										[
-											A2(
-											$mdgriffith$elm_ui$Element$el,
-											_List_fromArray(
-												[
-													$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink)
-												]),
-											condition),
-											A2(
-											$mdgriffith$elm_ui$Element$row,
-											_List_fromArray(
-												[
-													$mdgriffith$elm_ui$Element$alignLeft,
-													$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill),
-													$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),
-													$mdgriffith$elm_ui$Element$spacing(10)
-												]),
-											_List_fromArray(
-												[
-													A2(
-													$mdgriffith$elm_ui$Element$el,
-													_List_fromArray(
-														[
-															$mdgriffith$elm_ui$Element$paddingEach(
-															_Utils_update(
-																$author$project$Morphir$Visual$Components$DecisionTree$noPadding,
-																{left: 10})),
-															$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill)
-														]),
-													$author$project$Morphir$Visual$Components$DecisionTree$downArrow(branch1Color)),
-													A2(
-													$mdgriffith$elm_ui$Element$el,
-													_List_fromArray(
-														[
-															$mdgriffith$elm_ui$Element$centerY,
-															A2($mdgriffith$elm_ui$Element$paddingXY, 0, 15)
-														]),
-													branch1Label)
-												]))
-										])),
-									A2(
-									$mdgriffith$elm_ui$Element$column,
-									_List_fromArray(
-										[
-											$mdgriffith$elm_ui$Element$alignTop,
-											$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)
-										]),
-									_List_fromArray(
-										[
-											A2(
-											$mdgriffith$elm_ui$Element$el,
-											_List_fromArray(
-												[
-													$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),
-													$mdgriffith$elm_ui$Element$paddingEach(
-													_Utils_update(
-														$author$project$Morphir$Visual$Components$DecisionTree$noPadding,
-														{top: 10}))
-												]),
-											$author$project$Morphir$Visual$Components$DecisionTree$rightArrow(branch2Color)),
-											A2(
-											$mdgriffith$elm_ui$Element$el,
-											_List_fromArray(
-												[
-													$mdgriffith$elm_ui$Element$centerX,
-													A2($mdgriffith$elm_ui$Element$paddingXY, 20, 5)
-												]),
-											branch2Label)
-										]))
-								])),
-							A2(
-							$mdgriffith$elm_ui$Element$el,
-							_List_fromArray(
-								[
-									$mdgriffith$elm_ui$Element$paddingEach(
-									_Utils_update(
-										$author$project$Morphir$Visual$Components$DecisionTree$noPadding,
-										{right: 40}))
-								]),
-							branch1)
-						])),
-					A2(
-					$mdgriffith$elm_ui$Element$el,
-					_List_fromArray(
-						[$mdgriffith$elm_ui$Element$alignTop]),
-					branch2)
-				]));
-	});
-var $author$project$Morphir$Visual$Components$DecisionTree$toElementColor = function (_v0) {
-	var r = _v0.a;
-	var g = _v0.b;
-	var b = _v0.c;
-	return A3($mdgriffith$elm_ui$Element$rgb255, r, g, b);
-};
-var $author$project$Morphir$Visual$Components$DecisionTree$layoutHelp = F3(
-	function (color, viewValue, rootNode) {
-		var depthOf = F2(
-			function (f, node) {
-				if (node.$ === 'Branch') {
-					var branch = node.a;
-					return A2(
-						depthOf,
-						f,
-						f(branch)) + 1;
-				} else {
-					return 1;
-				}
-			});
-		if (rootNode.$ === 'Branch') {
-			var branch = rootNode.a;
-			var thenColor = function () {
-				var _v4 = branch.conditionValue;
-				if (_v4.$ === 'Just') {
-					var v = _v4.a;
-					return v ? $author$project$Morphir$Visual$Components$DecisionTree$highlightColor._true : $author$project$Morphir$Visual$Components$DecisionTree$highlightColor._default;
-				} else {
-					return $author$project$Morphir$Visual$Components$DecisionTree$highlightColor._default;
-				}
-			}();
-			var elseColor = function () {
-				var _v3 = branch.conditionValue;
-				if (_v3.$ === 'Just') {
-					var v = _v3.a;
-					return v ? $author$project$Morphir$Visual$Components$DecisionTree$highlightColor._default : $author$project$Morphir$Visual$Components$DecisionTree$highlightColor._false;
-				} else {
-					return $author$project$Morphir$Visual$Components$DecisionTree$highlightColor._default;
-				}
-			}();
-			var borderColor = function () {
-				var _v2 = branch.conditionValue;
-				if (_v2.$ === 'Just') {
-					var v = _v2.a;
-					return v ? $author$project$Morphir$Visual$Components$DecisionTree$highlightColor._true : $author$project$Morphir$Visual$Components$DecisionTree$highlightColor._false;
-				} else {
-					return $author$project$Morphir$Visual$Components$DecisionTree$highlightColor._default;
-				}
-			}();
-			return A7(
-				$author$project$Morphir$Visual$Components$DecisionTree$horizontalLayout,
-				A2(
-					$mdgriffith$elm_ui$Element$el,
-					_List_fromArray(
-						[
-							$mdgriffith$elm_ui$Element$Border$width(2),
-							$mdgriffith$elm_ui$Element$Border$rounded(7),
-							$mdgriffith$elm_ui$Element$Border$color(
-							$author$project$Morphir$Visual$Components$DecisionTree$toElementColor(borderColor)),
-							$mdgriffith$elm_ui$Element$padding(10)
-						]),
-					viewValue(branch.condition)),
-				A2(
-					$mdgriffith$elm_ui$Element$el,
-					_List_fromArray(
-						[
-							$mdgriffith$elm_ui$Element$Font$color(
-							$author$project$Morphir$Visual$Components$DecisionTree$toElementColor(thenColor))
-						]),
-					$mdgriffith$elm_ui$Element$text('Yes')),
-				thenColor,
-				A3($author$project$Morphir$Visual$Components$DecisionTree$layoutHelp, thenColor, viewValue, branch.thenBranch),
-				A2(
-					$mdgriffith$elm_ui$Element$el,
-					_List_fromArray(
-						[
-							$mdgriffith$elm_ui$Element$Font$color(
-							$author$project$Morphir$Visual$Components$DecisionTree$toElementColor(elseColor))
-						]),
-					$mdgriffith$elm_ui$Element$text('No')),
-				elseColor,
-				A3($author$project$Morphir$Visual$Components$DecisionTree$layoutHelp, elseColor, viewValue, branch.elseBranch));
-		} else {
-			var value = rootNode.a;
-			return A2(
-				$mdgriffith$elm_ui$Element$el,
-				_List_fromArray(
-					[
-						$mdgriffith$elm_ui$Element$Border$width(2),
-						$mdgriffith$elm_ui$Element$Border$rounded(7),
-						$mdgriffith$elm_ui$Element$Border$color(
-						$author$project$Morphir$Visual$Components$DecisionTree$toElementColor(color)),
-						$mdgriffith$elm_ui$Element$padding(10)
-					]),
-				viewValue(value));
-		}
-	});
-var $author$project$Morphir$Visual$Components$DecisionTree$layout = F2(
-	function (viewValue, rootNode) {
-		return A3($author$project$Morphir$Visual$Components$DecisionTree$layoutHelp, $author$project$Morphir$Visual$Components$DecisionTree$highlightColor._default, viewValue, rootNode);
-	});
-var $author$project$Morphir$Visual$Components$DecisionTree$Branch = function (a) {
-	return {$: 'Branch', a: a};
-};
-var $author$project$Morphir$Visual$Components$DecisionTree$Leaf = function (a) {
-	return {$: 'Leaf', a: a};
-};
-var $author$project$Morphir$Value$Error$BindPatternDidNotMatch = F2(
-	function (a, b) {
-		return {$: 'BindPatternDidNotMatch', a: a, b: b};
-	});
-var $author$project$Morphir$Value$Error$ErrorWhileEvaluatingReference = F2(
-	function (a, b) {
-		return {$: 'ErrorWhileEvaluatingReference', a: a, b: b};
-	});
-var $author$project$Morphir$Value$Error$ErrorWhileEvaluatingVariable = F2(
-	function (a, b) {
-		return {$: 'ErrorWhileEvaluatingVariable', a: a, b: b};
-	});
-var $author$project$Morphir$Value$Error$ExactlyOneArgumentExpected = function (a) {
-	return {$: 'ExactlyOneArgumentExpected', a: a};
-};
-var $author$project$Morphir$Value$Error$FieldNotFound = F2(
-	function (a, b) {
-		return {$: 'FieldNotFound', a: a, b: b};
-	});
-var $author$project$Morphir$Value$Error$IfThenElseConditionShouldEvaluateToBool = F2(
-	function (a, b) {
-		return {$: 'IfThenElseConditionShouldEvaluateToBool', a: a, b: b};
-	});
-var $author$project$Morphir$Value$Error$LambdaArgumentDidNotMatch = function (a) {
-	return {$: 'LambdaArgumentDidNotMatch', a: a};
-};
-var $author$project$Morphir$Value$Error$NoArgumentToPassToLambda = {$: 'NoArgumentToPassToLambda'};
-var $author$project$Morphir$Value$Error$NoPatternsMatch = F2(
-	function (a, b) {
-		return {$: 'NoPatternsMatch', a: a, b: b};
-	});
-var $author$project$Morphir$Value$Error$RecordExpected = F2(
-	function (a, b) {
-		return {$: 'RecordExpected', a: a, b: b};
-	});
-var $author$project$Morphir$Value$Error$ReferenceNotFound = function (a) {
-	return {$: 'ReferenceNotFound', a: a};
-};
-var $author$project$Morphir$Value$Error$VariableNotFound = function (a) {
-	return {$: 'VariableNotFound', a: a};
-};
-var $elm$core$Result$fromMaybe = F2(
-	function (err, maybe) {
-		if (maybe.$ === 'Just') {
-			var v = maybe.a;
-			return $elm$core$Result$Ok(v);
-		} else {
-			return $elm$core$Result$Err(err);
-		}
-	});
-var $author$project$Morphir$Value$Error$PatternMismatch = F2(
-	function (a, b) {
-		return {$: 'PatternMismatch', a: a, b: b};
-	});
-var $elm$core$Result$map2 = F3(
-	function (func, ra, rb) {
-		if (ra.$ === 'Err') {
-			var x = ra.a;
-			return $elm$core$Result$Err(x);
-		} else {
-			var a = ra.a;
-			if (rb.$ === 'Err') {
-				var x = rb.a;
-				return $elm$core$Result$Err(x);
-			} else {
-				var b = rb.a;
-				return $elm$core$Result$Ok(
-					A2(func, a, b));
-			}
-		}
-	});
-var $author$project$Morphir$Value$Interpreter$matchPattern = F2(
-	function (pattern, value) {
-		var error = $elm$core$Result$Err(
-			A2($author$project$Morphir$Value$Error$PatternMismatch, pattern, value));
-		switch (pattern.$) {
-			case 'WildcardPattern':
-				return $elm$core$Result$Ok($elm$core$Dict$empty);
-			case 'AsPattern':
-				var subjectPattern = pattern.b;
-				var alias = pattern.c;
-				return A2(
-					$elm$core$Result$map,
-					function (subjectVariables) {
-						return A3($elm$core$Dict$insert, alias, value, subjectVariables);
-					},
-					A2($author$project$Morphir$Value$Interpreter$matchPattern, subjectPattern, value));
-			case 'TuplePattern':
-				var elemPatterns = pattern.b;
-				if (value.$ === 'Tuple') {
-					var elemValues = value.b;
-					var valueLength = $elm$core$List$length(elemValues);
-					var patternLength = $elm$core$List$length(elemPatterns);
-					return _Utils_eq(patternLength, valueLength) ? A2(
-						$elm$core$Result$map,
-						A2($elm$core$List$foldl, $elm$core$Dict$union, $elm$core$Dict$empty),
-						$author$project$Morphir$ListOfResults$liftFirstError(
-							A3($elm$core$List$map2, $author$project$Morphir$Value$Interpreter$matchPattern, elemPatterns, elemValues))) : error;
-				} else {
-					return error;
-				}
-			case 'ConstructorPattern':
-				var ctorPatternFQName = pattern.b;
-				var argPatterns = pattern.c;
-				var uncurry = function (v) {
-					if (v.$ === 'Apply') {
-						var f = v.b;
-						var a = v.c;
-						var _v3 = uncurry(f);
-						var nestedV = _v3.a;
-						var nestedArgs = _v3.b;
-						return _Utils_Tuple2(
-							nestedV,
-							_Utils_ap(
-								nestedArgs,
-								_List_fromArray(
-									[a])));
-					} else {
-						return _Utils_Tuple2(v, _List_Nil);
-					}
-				};
-				var _v4 = uncurry(value);
-				var ctorValue = _v4.a;
-				var argValues = _v4.b;
-				if (ctorValue.$ === 'Constructor') {
-					var ctorFQName = ctorValue.b;
-					if (_Utils_eq(ctorPatternFQName, ctorFQName)) {
-						var valueLength = $elm$core$List$length(argValues);
-						var patternLength = $elm$core$List$length(argPatterns);
-						return _Utils_eq(patternLength, valueLength) ? A2(
-							$elm$core$Result$map,
-							A2($elm$core$List$foldl, $elm$core$Dict$union, $elm$core$Dict$empty),
-							$author$project$Morphir$ListOfResults$liftFirstError(
-								A3($elm$core$List$map2, $author$project$Morphir$Value$Interpreter$matchPattern, argPatterns, argValues))) : error;
-					} else {
-						return error;
-					}
-				} else {
-					return error;
-				}
-			case 'EmptyListPattern':
-				if ((value.$ === 'List') && (!value.b.b)) {
-					return $elm$core$Result$Ok($elm$core$Dict$empty);
-				} else {
-					return error;
-				}
-			case 'HeadTailPattern':
-				var headPattern = pattern.b;
-				var tailPattern = pattern.c;
-				if ((value.$ === 'List') && value.b.b) {
-					var a = value.a;
-					var _v8 = value.b;
-					var headValue = _v8.a;
-					var tailValue = _v8.b;
-					return A3(
-						$elm$core$Result$map2,
-						$elm$core$Dict$union,
-						A2($author$project$Morphir$Value$Interpreter$matchPattern, headPattern, headValue),
-						A2(
-							$author$project$Morphir$Value$Interpreter$matchPattern,
-							tailPattern,
-							A2($author$project$Morphir$IR$Value$List, a, tailValue)));
-				} else {
-					return error;
-				}
-			case 'LiteralPattern':
-				var matchLiteral = pattern.b;
-				if (value.$ === 'Literal') {
-					var valueLiteral = value.b;
-					return _Utils_eq(matchLiteral, valueLiteral) ? $elm$core$Result$Ok($elm$core$Dict$empty) : error;
-				} else {
-					return error;
-				}
-			default:
-				if (value.$ === 'Unit') {
-					return $elm$core$Result$Ok($elm$core$Dict$empty);
-				} else {
-					return error;
-				}
-		}
-	});
-var $author$project$Morphir$Value$Interpreter$evaluateValue = F4(
-	function (references, variables, _arguments, value) {
-		evaluateValue:
-		while (true) {
-			switch (value.$) {
-				case 'Literal':
-					return $elm$core$Result$Ok(value);
-				case 'Constructor':
-					return $elm$core$Result$Ok(value);
-				case 'Tuple':
-					var elems = value.b;
-					return A2(
-						$elm$core$Result$map,
-						$author$project$Morphir$IR$Value$Tuple(_Utils_Tuple0),
-						$author$project$Morphir$ListOfResults$liftFirstError(
-							A2(
-								$elm$core$List$map,
-								A3($author$project$Morphir$Value$Interpreter$evaluateValue, references, variables, _List_Nil),
-								elems)));
-				case 'List':
-					var items = value.b;
-					return A2(
-						$elm$core$Result$map,
-						$author$project$Morphir$IR$Value$List(_Utils_Tuple0),
-						$author$project$Morphir$ListOfResults$liftFirstError(
-							A2(
-								$elm$core$List$map,
-								A3($author$project$Morphir$Value$Interpreter$evaluateValue, references, variables, _List_Nil),
-								items)));
-				case 'Record':
-					var fields = value.b;
-					return A2(
-						$elm$core$Result$map,
-						$author$project$Morphir$IR$Value$Record(_Utils_Tuple0),
-						$author$project$Morphir$ListOfResults$liftFirstError(
-							A2(
-								$elm$core$List$map,
-								function (_v1) {
-									var fieldName = _v1.a;
-									var fieldValue = _v1.b;
-									return A2(
-										$elm$core$Result$map,
-										$elm$core$Tuple$pair(fieldName),
-										A4($author$project$Morphir$Value$Interpreter$evaluateValue, references, variables, _List_Nil, fieldValue));
-								},
-								fields)));
-				case 'Variable':
-					var varName = value.b;
-					return A2(
-						$elm$core$Result$mapError,
-						$author$project$Morphir$Value$Error$ErrorWhileEvaluatingVariable(varName),
-						A2(
-							$elm$core$Result$andThen,
-							A3($author$project$Morphir$Value$Interpreter$evaluateValue, references, variables, _List_Nil),
-							A2(
-								$elm$core$Result$fromMaybe,
-								$author$project$Morphir$Value$Error$VariableNotFound(varName),
-								A2($elm$core$Dict$get, varName, variables))));
-				case 'Reference':
-					var fQName = value.b;
-					var packageName = fQName.a;
-					var moduleName = fQName.b;
-					var localName = fQName.c;
-					return A2(
-						$elm$core$Result$andThen,
-						function (reference) {
-							if (reference.$ === 'NativeReference') {
-								var nativeFunction = reference.a;
-								return A2(
-									$elm$core$Result$mapError,
-									$author$project$Morphir$Value$Error$ErrorWhileEvaluatingReference(fQName),
-									A2(
-										nativeFunction,
-										A3($author$project$Morphir$Value$Interpreter$evaluateValue, references, variables, _List_Nil),
-										_arguments));
-							} else {
-								var referredValue = reference.a;
-								return A2(
-									$elm$core$Result$mapError,
-									$author$project$Morphir$Value$Error$ErrorWhileEvaluatingReference(fQName),
-									A4($author$project$Morphir$Value$Interpreter$evaluateValue, references, $elm$core$Dict$empty, _arguments, referredValue));
-							}
-						},
-						A2(
-							$elm$core$Result$fromMaybe,
-							$author$project$Morphir$Value$Error$ReferenceNotFound(fQName),
-							A2(
-								$elm$core$Dict$get,
-								_Utils_Tuple3(packageName, moduleName, localName),
-								references)));
-				case 'Field':
-					var subjectValue = value.b;
-					var fieldName = value.c;
-					return A2(
-						$elm$core$Result$andThen,
-						function (evaluatedSubjectValue) {
-							if (evaluatedSubjectValue.$ === 'Record') {
-								var fields = evaluatedSubjectValue.b;
-								return A2(
-									$elm$core$Result$fromMaybe,
-									A2($author$project$Morphir$Value$Error$FieldNotFound, subjectValue, fieldName),
-									A2(
-										$elm$core$Dict$get,
-										fieldName,
-										$elm$core$Dict$fromList(fields)));
-							} else {
-								return $elm$core$Result$Err(
-									A2($author$project$Morphir$Value$Error$RecordExpected, subjectValue, evaluatedSubjectValue));
-							}
-						},
-						A4($author$project$Morphir$Value$Interpreter$evaluateValue, references, variables, _List_Nil, subjectValue));
-				case 'FieldFunction':
-					var fieldName = value.b;
-					if (_arguments.b && (!_arguments.b.b)) {
-						var subjectValue = _arguments.a;
-						return A2(
-							$elm$core$Result$andThen,
-							function (evaluatedSubjectValue) {
-								if (evaluatedSubjectValue.$ === 'Record') {
-									var fields = evaluatedSubjectValue.b;
-									return A2(
-										$elm$core$Result$fromMaybe,
-										A2($author$project$Morphir$Value$Error$FieldNotFound, subjectValue, fieldName),
-										A2(
-											$elm$core$Dict$get,
-											fieldName,
-											$elm$core$Dict$fromList(fields)));
-								} else {
-									return $elm$core$Result$Err(
-										A2($author$project$Morphir$Value$Error$RecordExpected, subjectValue, evaluatedSubjectValue));
-								}
-							},
-							A4($author$project$Morphir$Value$Interpreter$evaluateValue, references, variables, _List_Nil, subjectValue));
-					} else {
-						var other = _arguments;
-						return $elm$core$Result$Err(
-							$author$project$Morphir$Value$Error$ExactlyOneArgumentExpected(other));
-					}
-				case 'Apply':
-					var _function = value.b;
-					var argument = value.c;
-					var $temp$references = references,
-						$temp$variables = variables,
-						$temp$arguments = A2($elm$core$List$cons, argument, _arguments),
-						$temp$value = _function;
-					references = $temp$references;
-					variables = $temp$variables;
-					_arguments = $temp$arguments;
-					value = $temp$value;
-					continue evaluateValue;
-				case 'Lambda':
-					var argumentPattern = value.b;
-					var body = value.c;
-					return A2(
-						$elm$core$Result$andThen,
-						function (argumentVariables) {
-							return A4(
-								$author$project$Morphir$Value$Interpreter$evaluateValue,
-								references,
-								A2($elm$core$Dict$union, argumentVariables, variables),
-								_List_Nil,
-								body);
-						},
-						A2(
-							$elm$core$Result$andThen,
-							function (argumentValue) {
-								return A2(
-									$elm$core$Result$mapError,
-									$author$project$Morphir$Value$Error$LambdaArgumentDidNotMatch,
-									A2($author$project$Morphir$Value$Interpreter$matchPattern, argumentPattern, argumentValue));
-							},
-							A2(
-								$elm$core$Result$fromMaybe,
-								$author$project$Morphir$Value$Error$NoArgumentToPassToLambda,
-								$elm$core$List$head(_arguments))));
-				case 'LetDefinition':
-					var defName = value.b;
-					var def = value.c;
-					var inValue = value.d;
-					return A2(
-						$elm$core$Result$andThen,
-						function (defValue) {
-							return A4(
-								$author$project$Morphir$Value$Interpreter$evaluateValue,
-								references,
-								A3($elm$core$Dict$insert, defName, defValue, variables),
-								_List_Nil,
-								inValue);
-						},
-						A4(
-							$author$project$Morphir$Value$Interpreter$evaluateValue,
-							references,
-							variables,
-							_List_Nil,
-							$author$project$Morphir$IR$Value$definitionToValue(def)));
-				case 'LetRecursion':
-					var defs = value.b;
-					var inValue = value.c;
-					var defVariables = A2(
-						$elm$core$Dict$map,
-						F2(
-							function (_v6, def) {
-								return $author$project$Morphir$IR$Value$definitionToValue(def);
-							}),
-						defs);
-					var $temp$references = references,
-						$temp$variables = A2($elm$core$Dict$union, defVariables, variables),
-						$temp$arguments = _List_Nil,
-						$temp$value = inValue;
-					references = $temp$references;
-					variables = $temp$variables;
-					_arguments = $temp$arguments;
-					value = $temp$value;
-					continue evaluateValue;
-				case 'Destructure':
-					var bindPattern = value.b;
-					var bindValue = value.c;
-					var inValue = value.d;
-					return A2(
-						$elm$core$Result$andThen,
-						function (bindVariables) {
-							return A4(
-								$author$project$Morphir$Value$Interpreter$evaluateValue,
-								references,
-								A2($elm$core$Dict$union, bindVariables, variables),
-								_List_Nil,
-								inValue);
-						},
-						A2(
-							$elm$core$Result$andThen,
-							A2(
-								$elm$core$Basics$composeR,
-								$author$project$Morphir$Value$Interpreter$matchPattern(bindPattern),
-								$elm$core$Result$mapError(
-									$author$project$Morphir$Value$Error$BindPatternDidNotMatch(bindValue))),
-							A4($author$project$Morphir$Value$Interpreter$evaluateValue, references, variables, _List_Nil, bindValue)));
-				case 'IfThenElse':
-					var condition = value.b;
-					var thenBranch = value.c;
-					var elseBranch = value.d;
-					return A2(
-						$elm$core$Result$andThen,
-						function (conditionValue) {
-							if ((conditionValue.$ === 'Literal') && (conditionValue.b.$ === 'BoolLiteral')) {
-								var conditionTrue = conditionValue.b.a;
-								var branchToFollow = conditionTrue ? thenBranch : elseBranch;
-								return A4($author$project$Morphir$Value$Interpreter$evaluateValue, references, variables, _List_Nil, branchToFollow);
-							} else {
-								return $elm$core$Result$Err(
-									A2($author$project$Morphir$Value$Error$IfThenElseConditionShouldEvaluateToBool, condition, conditionValue));
-							}
-						},
-						A4($author$project$Morphir$Value$Interpreter$evaluateValue, references, variables, _List_Nil, condition));
-				case 'PatternMatch':
-					var subjectValue = value.b;
-					var cases = value.c;
-					var findMatch = F2(
-						function (remainingCases, evaluatedSubject) {
-							findMatch:
-							while (true) {
-								if (remainingCases.b) {
-									var _v9 = remainingCases.a;
-									var nextPattern = _v9.a;
-									var nextBody = _v9.b;
-									var restOfCases = remainingCases.b;
-									var _v10 = A2($author$project$Morphir$Value$Interpreter$matchPattern, nextPattern, evaluatedSubject);
-									if (_v10.$ === 'Ok') {
-										var patternVariables = _v10.a;
-										return A4(
-											$author$project$Morphir$Value$Interpreter$evaluateValue,
-											references,
-											A2($elm$core$Dict$union, patternVariables, variables),
-											_List_Nil,
-											nextBody);
-									} else {
-										var $temp$remainingCases = restOfCases,
-											$temp$evaluatedSubject = evaluatedSubject;
-										remainingCases = $temp$remainingCases;
-										evaluatedSubject = $temp$evaluatedSubject;
-										continue findMatch;
-									}
-								} else {
-									return $elm$core$Result$Err(
-										A2(
-											$author$project$Morphir$Value$Error$NoPatternsMatch,
-											evaluatedSubject,
-											A2($elm$core$List$map, $elm$core$Tuple$first, cases)));
-								}
-							}
-						});
-					return A2(
-						$elm$core$Result$andThen,
-						findMatch(cases),
-						A4($author$project$Morphir$Value$Interpreter$evaluateValue, references, variables, _List_Nil, subjectValue));
-				case 'UpdateRecord':
-					var subjectValue = value.b;
-					var fieldUpdates = value.c;
-					return A2(
-						$elm$core$Result$andThen,
-						function (evaluatedSubjectValue) {
-							if (evaluatedSubjectValue.$ === 'Record') {
-								var fields = evaluatedSubjectValue.b;
-								return A2(
-									$elm$core$Result$map,
-									A2(
-										$elm$core$Basics$composeR,
-										$elm$core$Dict$toList,
-										$author$project$Morphir$IR$Value$Record(_Utils_Tuple0)),
-									A3(
-										$elm$core$List$foldl,
-										F2(
-											function (_v12, fieldsResultSoFar) {
-												var fieldName = _v12.a;
-												var newFieldValue = _v12.b;
-												return A2(
-													$elm$core$Result$andThen,
-													function (fieldsSoFar) {
-														return A2(
-															$elm$core$Result$andThen,
-															function (_v13) {
-																return A2(
-																	$elm$core$Result$map,
-																	function (evaluatedNewFieldValue) {
-																		return A3($elm$core$Dict$insert, fieldName, evaluatedNewFieldValue, fieldsSoFar);
-																	},
-																	A4($author$project$Morphir$Value$Interpreter$evaluateValue, references, variables, _List_Nil, newFieldValue));
-															},
-															A2(
-																$elm$core$Result$fromMaybe,
-																A2($author$project$Morphir$Value$Error$FieldNotFound, subjectValue, fieldName),
-																A2($elm$core$Dict$get, fieldName, fieldsSoFar)));
-													},
-													fieldsResultSoFar);
-											}),
-										$elm$core$Result$Ok(
-											$elm$core$Dict$fromList(fields)),
-										fieldUpdates));
-							} else {
-								return $elm$core$Result$Err(
-									A2($author$project$Morphir$Value$Error$RecordExpected, subjectValue, evaluatedSubjectValue));
-							}
-						},
-						A4($author$project$Morphir$Value$Interpreter$evaluateValue, references, variables, _List_Nil, subjectValue));
-				default:
-					return $elm$core$Result$Ok(value);
-			}
-		}
-	});
-var $elm$core$Debug$log = _Debug_log;
-var $author$project$Morphir$Visual$Context$evaluate = F2(
-	function (value, ctx) {
-		return A2(
-			$elm$core$Result$mapError,
-			function (error) {
-				return $elm$core$Debug$toString(
-					A2(
-						$elm$core$Debug$log,
-						$elm$core$String$concat(
-							_List_fromArray(
-								[
-									'Error while evaluating \'',
-									$elm$core$Debug$toString(value),
-									'\''
-								])),
-						error));
-			},
-			A4($author$project$Morphir$Value$Interpreter$evaluateValue, ctx.references, ctx.variables, _List_Nil, value));
-	});
-var $author$project$Morphir$IR$Value$toRawValue = function (value) {
-	return A3(
-		$author$project$Morphir$IR$Value$mapValueAttributes,
-		$elm$core$Basics$always(_Utils_Tuple0),
-		$elm$core$Basics$always(_Utils_Tuple0),
-		value);
-};
-var $elm$core$Result$withDefault = F2(
-	function (def, result) {
-		if (result.$ === 'Ok') {
-			var a = result.a;
-			return a;
-		} else {
-			return def;
-		}
-	});
-var $author$project$Morphir$Visual$ViewIfThenElse$valueToTree = F3(
-	function (ctx, doEval, value) {
-		valueToTree:
-		while (true) {
-			switch (value.$) {
-				case 'IfThenElse':
-					var condition = value.b;
-					var thenBranch = value.c;
-					var elseBranch = value.d;
-					var result = function () {
-						if (doEval) {
-							var _v1 = A2(
-								$author$project$Morphir$Visual$Context$evaluate,
-								$author$project$Morphir$IR$Value$toRawValue(condition),
-								ctx);
-							if (((_v1.$ === 'Ok') && (_v1.a.$ === 'Literal')) && (_v1.a.b.$ === 'BoolLiteral')) {
-								var _v2 = _v1.a;
-								var v = _v2.b.a;
-								return $elm$core$Maybe$Just(v);
-							} else {
-								return $elm$core$Maybe$Nothing;
-							}
-						} else {
-							return $elm$core$Maybe$Nothing;
-						}
-					}();
-					return $author$project$Morphir$Visual$Components$DecisionTree$Branch(
-						{
-							condition: condition,
-							conditionValue: result,
-							elseBranch: A3(
-								$author$project$Morphir$Visual$ViewIfThenElse$valueToTree,
-								ctx,
-								_Utils_eq(
-									result,
-									$elm$core$Maybe$Just(false)),
-								elseBranch),
-							thenBranch: A3(
-								$author$project$Morphir$Visual$ViewIfThenElse$valueToTree,
-								ctx,
-								_Utils_eq(
-									result,
-									$elm$core$Maybe$Just(true)),
-								thenBranch)
-						});
-				case 'LetDefinition':
-					var defName = value.b;
-					var defValue = value.c;
-					var inValue = value.d;
-					var $temp$ctx = _Utils_update(
-						ctx,
-						{
-							variables: A2(
-								$elm$core$Result$withDefault,
-								ctx.variables,
-								A2(
-									$elm$core$Result$map,
-									function (evaluatedDefValue) {
-										return A3($elm$core$Dict$insert, defName, evaluatedDefValue, ctx.variables);
-									},
-									A2(
-										$author$project$Morphir$Visual$Context$evaluate,
-										$author$project$Morphir$IR$Value$definitionToValue(
-											A3(
-												$author$project$Morphir$IR$Value$mapDefinitionAttributes,
-												$elm$core$Basics$identity,
-												$elm$core$Basics$always(_Utils_Tuple0),
-												defValue)),
-										ctx)))
-						}),
-						$temp$doEval = doEval,
-						$temp$value = inValue;
-					ctx = $temp$ctx;
-					doEval = $temp$doEval;
-					value = $temp$value;
-					continue valueToTree;
-				default:
-					return $author$project$Morphir$Visual$Components$DecisionTree$Leaf(value);
-			}
-		}
-	});
-var $author$project$Morphir$Visual$ViewIfThenElse$view = F4(
-	function (ctx, viewValue, value, variables) {
-		return A2(
-			$author$project$Morphir$Visual$Components$DecisionTree$layout,
-			viewValue,
-			A3($author$project$Morphir$Visual$ViewIfThenElse$valueToTree, ctx, true, value));
-	});
-var $author$project$Morphir$Visual$ViewLetDefinition$view = F3(
-	function (viewValue, definitions, inValue) {
-		return A2(
-			$mdgriffith$elm_ui$Element$column,
-			_List_fromArray(
-				[
-					$mdgriffith$elm_ui$Element$spacing(10)
-				]),
-			_List_fromArray(
-				[
-					viewValue(inValue),
-					$mdgriffith$elm_ui$Element$text('where'),
-					A2(
-					$mdgriffith$elm_ui$Element$column,
-					_List_fromArray(
-						[
-							$mdgriffith$elm_ui$Element$moveRight(10),
-							$mdgriffith$elm_ui$Element$spacing(20)
-						]),
-					A2(
-						$elm$core$List$map,
-						function (_v0) {
-							var defName = _v0.a;
-							var def = _v0.b;
-							return A2(
-								$mdgriffith$elm_ui$Element$column,
-								_List_fromArray(
-									[
-										$mdgriffith$elm_ui$Element$spacing(10)
-									]),
-								_List_fromArray(
-									[
-										$mdgriffith$elm_ui$Element$text(
-										$author$project$Morphir$Visual$Common$nameToText(defName) + ' ='),
-										A2(
-										$mdgriffith$elm_ui$Element$el,
-										_List_fromArray(
-											[
-												$mdgriffith$elm_ui$Element$moveRight(10)
-											]),
-										viewValue(def.body))
-									]));
-						},
-						definitions))
-				]));
-	});
-var $author$project$Morphir$IR$AccessControlled$withPublicAccess = function (ac) {
-	var _v0 = ac.access;
-	if (_v0.$ === 'Public') {
-		return $elm$core$Maybe$Just(ac.value);
-	} else {
-		return $elm$core$Maybe$Nothing;
-	}
-};
-var $author$project$Morphir$IR$Type$definitionToSpecification = function (def) {
-	if (def.$ === 'TypeAliasDefinition') {
-		var params = def.a;
-		var exp = def.b;
-		return A2($author$project$Morphir$IR$Type$TypeAliasSpecification, params, exp);
-	} else {
-		var params = def.a;
-		var accessControlledCtors = def.b;
-		var _v1 = $author$project$Morphir$IR$AccessControlled$withPublicAccess(accessControlledCtors);
-		if (_v1.$ === 'Just') {
-			var ctors = _v1.a;
-			return A2($author$project$Morphir$IR$Type$CustomTypeSpecification, params, ctors);
-		} else {
-			return $author$project$Morphir$IR$Type$OpaqueTypeSpecification(params);
-		}
-	}
-};
-var $author$project$Morphir$IR$Value$definitionToSpecification = function (def) {
-	return {
-		inputs: A2(
-			$elm$core$List$map,
-			function (_v0) {
-				var name = _v0.a;
-				var tpe = _v0.c;
-				return _Utils_Tuple2(name, tpe);
-			},
-			def.inputTypes),
-		output: def.outputType
-	};
-};
-var $author$project$Morphir$IR$Documented$map = F2(
-	function (f, d) {
-		return A2(
-			$author$project$Morphir$IR$Documented$Documented,
-			d.doc,
-			f(d.value));
-	});
-var $author$project$Morphir$IR$Module$definitionToSpecification = function (def) {
-	return {
-		types: $elm$core$Dict$fromList(
-			A2(
-				$elm$core$List$filterMap,
-				function (_v0) {
-					var path = _v0.a;
-					var accessControlledType = _v0.b;
-					return A2(
-						$elm$core$Maybe$map,
-						function (typeDef) {
-							return _Utils_Tuple2(
-								path,
-								A2($author$project$Morphir$IR$Documented$map, $author$project$Morphir$IR$Type$definitionToSpecification, typeDef));
-						},
-						$author$project$Morphir$IR$AccessControlled$withPublicAccess(accessControlledType));
-				},
-				$elm$core$Dict$toList(def.types))),
-		values: $elm$core$Dict$fromList(
-			A2(
-				$elm$core$List$filterMap,
-				function (_v1) {
-					var path = _v1.a;
-					var accessControlledValue = _v1.b;
-					return A2(
-						$elm$core$Maybe$map,
-						function (valueDef) {
-							return _Utils_Tuple2(
-								path,
-								$author$project$Morphir$IR$Value$definitionToSpecification(valueDef));
-						},
-						$author$project$Morphir$IR$AccessControlled$withPublicAccess(accessControlledValue));
-				},
-				$elm$core$Dict$toList(def.values)))
-	};
-};
-var $author$project$Morphir$IR$Package$definitionToSpecification = function (def) {
-	return {
-		modules: $elm$core$Dict$fromList(
-			A2(
-				$elm$core$List$filterMap,
-				function (_v0) {
-					var path = _v0.a;
-					var accessControlledModule = _v0.b;
-					return A2(
-						$elm$core$Maybe$map,
-						function (moduleDef) {
-							return _Utils_Tuple2(
-								path,
-								$author$project$Morphir$IR$Module$definitionToSpecification(moduleDef));
-						},
-						$author$project$Morphir$IR$AccessControlled$withPublicAccess(accessControlledModule));
-				},
-				$elm$core$Dict$toList(def.modules)))
-	};
-};
-var $author$project$Morphir$IR$Package$lookupModuleSpecification = F2(
-	function (modulePath, packageSpec) {
-		return A2($elm$core$Dict$get, modulePath, packageSpec.modules);
-	});
-var $author$project$Morphir$IR$Distribution$lookupModuleSpecification = F3(
-	function (packageName, modulePath, distribution) {
-		var libraryPackageName = distribution.a;
-		var dependencies = distribution.b;
-		var packageDef = distribution.c;
-		return _Utils_eq(packageName, libraryPackageName) ? A2(
-			$author$project$Morphir$IR$Package$lookupModuleSpecification,
-			modulePath,
-			$author$project$Morphir$IR$Package$definitionToSpecification(packageDef)) : A2(
-			$elm$core$Maybe$andThen,
-			$author$project$Morphir$IR$Package$lookupModuleSpecification(modulePath),
-			A2($elm$core$Dict$get, packageName, dependencies));
-	});
-var $author$project$Morphir$IR$Module$lookupTypeSpecification = F2(
-	function (localName, moduleSpec) {
-		return A2(
-			$elm$core$Maybe$map,
-			function ($) {
-				return $.value;
-			},
-			A2($elm$core$Dict$get, localName, moduleSpec.types));
-	});
-var $author$project$Morphir$IR$Distribution$lookupTypeSpecification = F4(
-	function (packageName, moduleName, localName, distribution) {
-		return A2(
-			$elm$core$Maybe$andThen,
-			$author$project$Morphir$IR$Module$lookupTypeSpecification(localName),
-			A3($author$project$Morphir$IR$Distribution$lookupModuleSpecification, packageName, moduleName, distribution));
-	});
-var $author$project$Morphir$IR$Value$rewriteValue = F2(
-	function (f, value) {
-		var _v0 = f(value);
-		if (_v0.$ === 'Just') {
-			var newValue = _v0.a;
-			return newValue;
-		} else {
-			switch (value.$) {
-				case 'Tuple':
-					var va = value.a;
-					var elems = value.b;
-					return A2(
-						$author$project$Morphir$IR$Value$Tuple,
-						va,
-						A2(
-							$elm$core$List$map,
-							$author$project$Morphir$IR$Value$rewriteValue(f),
-							elems));
-				case 'List':
-					var va = value.a;
-					var items = value.b;
-					return A2(
-						$author$project$Morphir$IR$Value$List,
-						va,
-						A2(
-							$elm$core$List$map,
-							$author$project$Morphir$IR$Value$rewriteValue(f),
-							items));
-				case 'Record':
-					var va = value.a;
-					var fields = value.b;
-					return A2(
-						$author$project$Morphir$IR$Value$Record,
-						va,
-						A2(
-							$elm$core$List$map,
-							function (_v2) {
-								var n = _v2.a;
-								var v = _v2.b;
-								return _Utils_Tuple2(
-									n,
-									A2($author$project$Morphir$IR$Value$rewriteValue, f, v));
-							},
-							fields));
-				case 'Field':
-					var va = value.a;
-					var subject = value.b;
-					var name = value.c;
-					return A3(
-						$author$project$Morphir$IR$Value$Field,
-						va,
-						A2($author$project$Morphir$IR$Value$rewriteValue, f, subject),
-						name);
-				case 'Apply':
-					var va = value.a;
-					var fun = value.b;
-					var arg = value.c;
-					return A3(
-						$author$project$Morphir$IR$Value$Apply,
-						va,
-						A2($author$project$Morphir$IR$Value$rewriteValue, f, fun),
-						A2($author$project$Morphir$IR$Value$rewriteValue, f, arg));
-				case 'Lambda':
-					var va = value.a;
-					var pattern = value.b;
-					var body = value.c;
-					return A3(
-						$author$project$Morphir$IR$Value$Lambda,
-						va,
-						pattern,
-						A2($author$project$Morphir$IR$Value$rewriteValue, f, body));
-				case 'LetDefinition':
-					var va = value.a;
-					var defName = value.b;
-					var def = value.c;
-					var inValue = value.d;
-					return A4(
-						$author$project$Morphir$IR$Value$LetDefinition,
-						va,
-						defName,
-						_Utils_update(
-							def,
-							{
-								body: A2($author$project$Morphir$IR$Value$rewriteValue, f, def.body)
-							}),
-						A2($author$project$Morphir$IR$Value$rewriteValue, f, inValue));
-				case 'LetRecursion':
-					var va = value.a;
-					var defs = value.b;
-					var inValue = value.c;
-					return A3(
-						$author$project$Morphir$IR$Value$LetRecursion,
-						va,
-						A2(
-							$elm$core$Dict$map,
-							F2(
-								function (_v3, def) {
-									return _Utils_update(
-										def,
-										{
-											body: A2($author$project$Morphir$IR$Value$rewriteValue, f, def.body)
-										});
-								}),
-							defs),
-						A2($author$project$Morphir$IR$Value$rewriteValue, f, inValue));
-				case 'Destructure':
-					var va = value.a;
-					var bindPattern = value.b;
-					var bindValue = value.c;
-					var inValue = value.d;
-					return A4(
-						$author$project$Morphir$IR$Value$Destructure,
-						va,
-						bindPattern,
-						A2($author$project$Morphir$IR$Value$rewriteValue, f, bindValue),
-						A2($author$project$Morphir$IR$Value$rewriteValue, f, inValue));
-				case 'IfThenElse':
-					var va = value.a;
-					var condition = value.b;
-					var thenBranch = value.c;
-					var elseBranch = value.d;
-					return A4(
-						$author$project$Morphir$IR$Value$IfThenElse,
-						va,
-						A2($author$project$Morphir$IR$Value$rewriteValue, f, condition),
-						A2($author$project$Morphir$IR$Value$rewriteValue, f, thenBranch),
-						A2($author$project$Morphir$IR$Value$rewriteValue, f, elseBranch));
-				case 'PatternMatch':
-					var va = value.a;
-					var subject = value.b;
-					var cases = value.c;
-					return A3(
-						$author$project$Morphir$IR$Value$PatternMatch,
-						va,
-						A2($author$project$Morphir$IR$Value$rewriteValue, f, subject),
-						A2(
-							$elm$core$List$map,
-							function (_v4) {
-								var p = _v4.a;
-								var v = _v4.b;
-								return _Utils_Tuple2(
-									p,
-									A2($author$project$Morphir$IR$Value$rewriteValue, f, v));
-							},
-							cases));
-				case 'UpdateRecord':
-					var va = value.a;
-					var subject = value.b;
-					var fields = value.c;
-					return A3(
-						$author$project$Morphir$IR$Value$UpdateRecord,
-						va,
-						A2($author$project$Morphir$IR$Value$rewriteValue, f, subject),
-						A2(
-							$elm$core$List$map,
-							function (_v5) {
-								var n = _v5.a;
-								var v = _v5.b;
-								return _Utils_Tuple2(
-									n,
-									A2($author$project$Morphir$IR$Value$rewriteValue, f, v));
-							},
-							fields));
-				default:
-					return value;
-			}
-		}
-	});
-var $author$project$Morphir$IR$Distribution$resolveRecordConstructors = F2(
-	function (value, distribution) {
-		return A2(
-			$author$project$Morphir$IR$Value$rewriteValue,
-			function (v) {
-				if (v.$ === 'Apply') {
-					var fun = v.b;
-					var lastArg = v.c;
-					var _v1 = A2($author$project$Morphir$IR$Value$uncurryApply, fun, lastArg);
-					var bottomFun = _v1.a;
-					var args = _v1.b;
-					if (bottomFun.$ === 'Constructor') {
-						var va = bottomFun.a;
-						var _v3 = bottomFun.b;
-						var packageName = _v3.a;
-						var moduleName = _v3.b;
-						var localName = _v3.c;
-						return A2(
-							$elm$core$Maybe$andThen,
-							function (typeSpec) {
-								if ((typeSpec.$ === 'TypeAliasSpecification') && (typeSpec.b.$ === 'Record')) {
-									var _v5 = typeSpec.b;
-									var fields = _v5.b;
-									return $elm$core$Maybe$Just(
-										A2(
-											$author$project$Morphir$IR$Value$Record,
-											va,
-											A3(
-												$elm$core$List$map2,
-												$elm$core$Tuple$pair,
-												A2(
-													$elm$core$List$map,
-													function ($) {
-														return $.name;
-													},
-													fields),
-												args)));
-								} else {
-									return $elm$core$Maybe$Nothing;
-								}
-							},
-							A4($author$project$Morphir$IR$Distribution$lookupTypeSpecification, packageName, moduleName, localName, distribution));
-					} else {
-						return $elm$core$Maybe$Nothing;
-					}
-				} else {
-					return $elm$core$Maybe$Nothing;
-				}
-			},
-			value);
-	});
-var $author$project$Morphir$IR$Type$substituteTypeVariables = F2(
-	function (mapping, original) {
-		switch (original.$) {
-			case 'Variable':
-				var a = original.a;
-				var varName = original.b;
-				return A2(
-					$elm$core$Maybe$withDefault,
-					original,
-					A2($elm$core$Dict$get, varName, mapping));
-			case 'Reference':
-				var a = original.a;
-				var fQName = original.b;
-				var typeArgs = original.c;
-				return A3(
-					$author$project$Morphir$IR$Type$Reference,
-					a,
-					fQName,
-					A2(
-						$elm$core$List$map,
-						$author$project$Morphir$IR$Type$substituteTypeVariables(mapping),
-						typeArgs));
-			case 'Tuple':
-				var a = original.a;
-				var elemTypes = original.b;
-				return A2(
-					$author$project$Morphir$IR$Type$Tuple,
-					a,
-					A2(
-						$elm$core$List$map,
-						$author$project$Morphir$IR$Type$substituteTypeVariables(mapping),
-						elemTypes));
-			case 'Record':
-				var a = original.a;
-				var fields = original.b;
-				return A2(
-					$author$project$Morphir$IR$Type$Record,
-					a,
-					A2(
-						$elm$core$List$map,
-						function (field) {
-							return A2(
-								$author$project$Morphir$IR$Type$Field,
-								field.name,
-								A2($author$project$Morphir$IR$Type$substituteTypeVariables, mapping, field.tpe));
-						},
-						fields));
-			case 'ExtensibleRecord':
-				var a = original.a;
-				var name = original.b;
-				var fields = original.c;
-				return A3(
-					$author$project$Morphir$IR$Type$ExtensibleRecord,
-					a,
-					name,
-					A2(
-						$elm$core$List$map,
-						function (field) {
-							return A2(
-								$author$project$Morphir$IR$Type$Field,
-								field.name,
-								A2($author$project$Morphir$IR$Type$substituteTypeVariables, mapping, field.tpe));
-						},
-						fields));
-			case 'Function':
-				var a = original.a;
-				var argType = original.b;
-				var returnType = original.c;
-				return A3(
-					$author$project$Morphir$IR$Type$Function,
-					a,
-					A2($author$project$Morphir$IR$Type$substituteTypeVariables, mapping, argType),
-					A2($author$project$Morphir$IR$Type$substituteTypeVariables, mapping, returnType));
-			default:
-				var a = original.a;
-				return $author$project$Morphir$IR$Type$Unit(a);
-		}
-	});
-var $author$project$Morphir$IR$FQName$toString = function (_v0) {
-	var p = _v0.a;
-	var m = _v0.b;
-	var l = _v0.c;
-	return A2(
-		$elm$core$String$join,
-		':',
-		_List_fromArray(
-			[
-				A3($author$project$Morphir$IR$Path$toString, $author$project$Morphir$IR$Name$toTitleCase, '.', p),
-				A3($author$project$Morphir$IR$Path$toString, $author$project$Morphir$IR$Name$toTitleCase, '.', m),
-				$author$project$Morphir$IR$Name$toCamelCase(l)
-			]));
-};
-var $author$project$Morphir$IR$Distribution$resolveTypeReference = F3(
-	function (fQName, typeArgs, distribution) {
-		var packageName = fQName.a;
-		var moduleName = fQName.b;
-		var localName = fQName.c;
-		var _v0 = A4($author$project$Morphir$IR$Distribution$lookupTypeSpecification, packageName, moduleName, localName, distribution);
-		if (_v0.$ === 'Just') {
-			var typeSpec = _v0.a;
-			switch (typeSpec.$) {
-				case 'TypeAliasSpecification':
-					var paramNames = typeSpec.a;
-					var tpe = typeSpec.b;
-					var paramMapping = $elm$core$Dict$fromList(
-						A3($elm$core$List$map2, $elm$core$Tuple$pair, paramNames, typeArgs));
-					return $elm$core$Result$Ok(
-						A2($author$project$Morphir$IR$Type$substituteTypeVariables, paramMapping, tpe));
-				case 'OpaqueTypeSpecification':
-					return $elm$core$Result$Ok(
-						A3($author$project$Morphir$IR$Type$Reference, _Utils_Tuple0, fQName, typeArgs));
-				default:
-					return $elm$core$Result$Ok(
-						A3($author$project$Morphir$IR$Type$Reference, _Utils_Tuple0, fQName, typeArgs));
-			}
-		} else {
-			return $elm$core$Result$Err(
-				$elm$core$String$concat(
-					_List_fromArray(
-						[
-							'Type specification not found: ',
-							$author$project$Morphir$IR$FQName$toString(fQName)
-						])));
-		}
-	});
-var $mdgriffith$elm_ui$Element$InternalColumn = function (a) {
-	return {$: 'InternalColumn', a: a};
-};
-var $mdgriffith$elm_ui$Internal$Model$GridPosition = function (a) {
-	return {$: 'GridPosition', a: a};
-};
-var $mdgriffith$elm_ui$Internal$Model$GridTemplateStyle = function (a) {
-	return {$: 'GridTemplateStyle', a: a};
-};
-var $elm$core$List$all = F2(
-	function (isOkay, list) {
-		return !A2(
-			$elm$core$List$any,
-			A2($elm$core$Basics$composeL, $elm$core$Basics$not, isOkay),
-			list);
-	});
-var $mdgriffith$elm_ui$Internal$Model$AsGrid = {$: 'AsGrid'};
-var $mdgriffith$elm_ui$Internal$Model$asGrid = $mdgriffith$elm_ui$Internal$Model$AsGrid;
-var $mdgriffith$elm_ui$Internal$Model$getSpacing = F2(
-	function (attrs, _default) {
-		return A2(
-			$elm$core$Maybe$withDefault,
-			_default,
-			A3(
-				$elm$core$List$foldr,
-				F2(
-					function (attr, acc) {
-						if (acc.$ === 'Just') {
-							var x = acc.a;
-							return $elm$core$Maybe$Just(x);
-						} else {
-							if ((attr.$ === 'StyleClass') && (attr.b.$ === 'SpacingStyle')) {
-								var _v2 = attr.b;
-								var x = _v2.b;
-								var y = _v2.c;
-								return $elm$core$Maybe$Just(
-									_Utils_Tuple2(x, y));
-							} else {
-								return $elm$core$Maybe$Nothing;
-							}
-						}
-					}),
-				$elm$core$Maybe$Nothing,
-				attrs));
-	});
-var $mdgriffith$elm_ui$Internal$Flag$gridPosition = $mdgriffith$elm_ui$Internal$Flag$flag(35);
-var $mdgriffith$elm_ui$Internal$Flag$gridTemplate = $mdgriffith$elm_ui$Internal$Flag$flag(34);
-var $elm$core$List$repeatHelp = F3(
-	function (result, n, value) {
-		repeatHelp:
-		while (true) {
-			if (n <= 0) {
-				return result;
-			} else {
-				var $temp$result = A2($elm$core$List$cons, value, result),
-					$temp$n = n - 1,
-					$temp$value = value;
-				result = $temp$result;
-				n = $temp$n;
-				value = $temp$value;
-				continue repeatHelp;
-			}
-		}
-	});
-var $elm$core$List$repeat = F2(
-	function (n, value) {
-		return A3($elm$core$List$repeatHelp, _List_Nil, n, value);
-	});
-var $mdgriffith$elm_ui$Element$tableHelper = F2(
-	function (attrs, config) {
-		var onGrid = F3(
-			function (rowLevel, columnLevel, elem) {
-				return A4(
-					$mdgriffith$elm_ui$Internal$Model$element,
-					$mdgriffith$elm_ui$Internal$Model$asEl,
-					$mdgriffith$elm_ui$Internal$Model$div,
-					_List_fromArray(
-						[
-							A2(
-							$mdgriffith$elm_ui$Internal$Model$StyleClass,
-							$mdgriffith$elm_ui$Internal$Flag$gridPosition,
-							$mdgriffith$elm_ui$Internal$Model$GridPosition(
-								{col: columnLevel, height: 1, row: rowLevel, width: 1}))
-						]),
-					$mdgriffith$elm_ui$Internal$Model$Unkeyed(
-						_List_fromArray(
-							[elem])));
-			});
-		var columnWidth = function (col) {
-			if (col.$ === 'InternalIndexedColumn') {
-				var colConfig = col.a;
-				return colConfig.width;
-			} else {
-				var colConfig = col.a;
-				return colConfig.width;
-			}
-		};
-		var columnHeader = function (col) {
-			if (col.$ === 'InternalIndexedColumn') {
-				var colConfig = col.a;
-				return colConfig.header;
-			} else {
-				var colConfig = col.a;
-				return colConfig.header;
-			}
-		};
-		var maybeHeaders = function (headers) {
-			return A2(
-				$elm$core$List$all,
-				$elm$core$Basics$eq($mdgriffith$elm_ui$Internal$Model$Empty),
-				headers) ? $elm$core$Maybe$Nothing : $elm$core$Maybe$Just(
-				A2(
-					$elm$core$List$indexedMap,
-					F2(
-						function (col, header) {
-							return A3(onGrid, 1, col + 1, header);
-						}),
-					headers));
-		}(
-			A2($elm$core$List$map, columnHeader, config.columns));
-		var add = F3(
-			function (cell, columnConfig, cursor) {
-				if (columnConfig.$ === 'InternalIndexedColumn') {
-					var col = columnConfig.a;
-					return _Utils_update(
-						cursor,
-						{
-							column: cursor.column + 1,
-							elements: A2(
-								$elm$core$List$cons,
-								A3(
-									onGrid,
-									cursor.row,
-									cursor.column,
-									A2(
-										col.view,
-										_Utils_eq(maybeHeaders, $elm$core$Maybe$Nothing) ? (cursor.row - 1) : (cursor.row - 2),
-										cell)),
-								cursor.elements)
-						});
-				} else {
-					var col = columnConfig.a;
-					return {
-						column: cursor.column + 1,
-						elements: A2(
-							$elm$core$List$cons,
-							A3(
-								onGrid,
-								cursor.row,
-								cursor.column,
-								col.view(cell)),
-							cursor.elements),
-						row: cursor.row
-					};
-				}
-			});
-		var build = F3(
-			function (columns, rowData, cursor) {
-				var newCursor = A3(
-					$elm$core$List$foldl,
-					add(rowData),
-					cursor,
-					columns);
-				return {column: 1, elements: newCursor.elements, row: cursor.row + 1};
-			});
-		var children = A3(
-			$elm$core$List$foldl,
-			build(config.columns),
-			{
-				column: 1,
-				elements: _List_Nil,
-				row: _Utils_eq(maybeHeaders, $elm$core$Maybe$Nothing) ? 1 : 2
-			},
-			config.data);
-		var _v0 = A2(
-			$mdgriffith$elm_ui$Internal$Model$getSpacing,
-			attrs,
-			_Utils_Tuple2(0, 0));
-		var sX = _v0.a;
-		var sY = _v0.b;
-		var template = A2(
-			$mdgriffith$elm_ui$Internal$Model$StyleClass,
-			$mdgriffith$elm_ui$Internal$Flag$gridTemplate,
-			$mdgriffith$elm_ui$Internal$Model$GridTemplateStyle(
-				{
-					columns: A2($elm$core$List$map, columnWidth, config.columns),
-					rows: A2(
-						$elm$core$List$repeat,
-						$elm$core$List$length(config.data),
-						$mdgriffith$elm_ui$Internal$Model$Content),
-					spacing: _Utils_Tuple2(
-						$mdgriffith$elm_ui$Element$px(sX),
-						$mdgriffith$elm_ui$Element$px(sY))
-				}));
-		return A4(
-			$mdgriffith$elm_ui$Internal$Model$element,
-			$mdgriffith$elm_ui$Internal$Model$asGrid,
-			$mdgriffith$elm_ui$Internal$Model$div,
-			A2(
-				$elm$core$List$cons,
-				$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),
-				A2($elm$core$List$cons, template, attrs)),
-			$mdgriffith$elm_ui$Internal$Model$Unkeyed(
-				function () {
-					if (maybeHeaders.$ === 'Nothing') {
-						return children.elements;
-					} else {
-						var renderedHeaders = maybeHeaders.a;
-						return _Utils_ap(
-							renderedHeaders,
-							$elm$core$List$reverse(children.elements));
-					}
-				}()));
-	});
-var $mdgriffith$elm_ui$Element$table = F2(
-	function (attrs, config) {
-		return A2(
-			$mdgriffith$elm_ui$Element$tableHelper,
-			attrs,
-			{
-				columns: A2($elm$core$List$map, $mdgriffith$elm_ui$Element$InternalColumn, config.columns),
-				data: config.data
-			});
-	});
-var $author$project$Morphir$Visual$ViewList$view = F4(
-	function (distribution, viewValue, itemType, items) {
-		view:
-		while (true) {
-			switch (itemType.$) {
-				case 'Record':
-					var fields = itemType.b;
-					return A2(
-						$mdgriffith$elm_ui$Element$table,
-						_List_Nil,
-						{
-							columns: A2(
-								$elm$core$List$map,
-								function (field) {
-									return {
-										header: A2(
-											$mdgriffith$elm_ui$Element$el,
-											_List_fromArray(
-												[
-													$mdgriffith$elm_ui$Element$Border$widthEach(
-													{bottom: 1, left: 0, right: 0, top: 0}),
-													A2($mdgriffith$elm_ui$Element$paddingXY, 10, 5)
-												]),
-											$mdgriffith$elm_ui$Element$text(
-												A2(
-													$elm$core$String$join,
-													' ',
-													$author$project$Morphir$IR$Name$toHumanWords(field.name)))),
-										view: function (item) {
-											return A2(
-												$mdgriffith$elm_ui$Element$el,
-												_List_fromArray(
-													[
-														A2($mdgriffith$elm_ui$Element$paddingXY, 10, 5)
-													]),
-												function () {
-													if (item.$ === 'Record') {
-														var fieldValues = item.b;
-														return A2(
-															$elm$core$Maybe$withDefault,
-															$mdgriffith$elm_ui$Element$text('???'),
-															A2(
-																$elm$core$Maybe$map,
-																viewValue,
-																A2(
-																	$elm$core$Dict$get,
-																	field.name,
-																	$elm$core$Dict$fromList(fieldValues))));
-													} else {
-														return viewValue(item);
-													}
-												}());
-										},
-										width: $mdgriffith$elm_ui$Element$fill
-									};
-								},
-								fields),
-							data: A2(
-								$elm$core$List$map,
-								function (item) {
-									return A2($author$project$Morphir$IR$Distribution$resolveRecordConstructors, item, distribution);
-								},
-								items)
-						});
-				case 'Reference':
-					var fQName = itemType.b;
-					var typeArgs = itemType.c;
-					var _v2 = A3($author$project$Morphir$IR$Distribution$resolveTypeReference, fQName, typeArgs, distribution);
-					if (_v2.$ === 'Ok') {
-						var resolvedItemType = _v2.a;
-						var $temp$distribution = distribution,
-							$temp$viewValue = viewValue,
-							$temp$itemType = resolvedItemType,
-							$temp$items = items;
-						distribution = $temp$distribution;
-						viewValue = $temp$viewValue;
-						itemType = $temp$itemType;
-						items = $temp$items;
-						continue view;
-					} else {
-						var error = _v2.a;
-						return $mdgriffith$elm_ui$Element$text(error);
-					}
-				default:
-					return A2(
-						$mdgriffith$elm_ui$Element$table,
-						_List_fromArray(
-							[
-								$mdgriffith$elm_ui$Element$spacing(10)
-							]),
-						{
-							columns: _List_fromArray(
-								[
-									{header: $mdgriffith$elm_ui$Element$none, view: viewValue, width: $mdgriffith$elm_ui$Element$fill}
-								]),
-							data: items
-						});
-			}
-		}
-	});
-var $elm$core$String$fromChar = function (_char) {
-	return A2($elm$core$String$cons, _char, '');
-};
-var $author$project$Morphir$Visual$ViewLiteral$viewLiteralText = F2(
-	function (className, text) {
-		return A2(
-			$mdgriffith$elm_ui$Element$paragraph,
-			_List_fromArray(
-				[
-					$author$project$Morphir$Visual$Common$cssClass(className)
-				]),
-			_List_fromArray(
-				[
-					$mdgriffith$elm_ui$Element$text(text)
-				]));
-	});
-var $author$project$Morphir$Visual$ViewLiteral$view = function (literal) {
-	switch (literal.$) {
-		case 'BoolLiteral':
-			var bool = literal.a;
-			return A2(
-				$author$project$Morphir$Visual$ViewLiteral$viewLiteralText,
-				'bool-literal',
-				function () {
-					if (bool) {
-						return 'True';
-					} else {
-						return 'False';
-					}
-				}());
-		case 'CharLiteral':
-			var _char = literal.a;
-			return A2(
-				$author$project$Morphir$Visual$ViewLiteral$viewLiteralText,
-				'char-literal',
-				$elm$core$String$concat(
-					_List_fromArray(
-						[
-							'\'',
-							$elm$core$String$fromChar(_char),
-							'\''
-						])));
-		case 'StringLiteral':
-			var string = literal.a;
-			return A2(
-				$author$project$Morphir$Visual$ViewLiteral$viewLiteralText,
-				'string-literal',
-				$elm$core$String$concat(
-					_List_fromArray(
-						['\"', string, '\"'])));
-		case 'IntLiteral':
-			var _int = literal.a;
-			return A2(
-				$author$project$Morphir$Visual$ViewLiteral$viewLiteralText,
-				'int-literal',
-				$elm$core$String$fromInt(_int));
-		default:
-			var _float = literal.a;
-			return A2(
-				$author$project$Morphir$Visual$ViewLiteral$viewLiteralText,
-				'float-literal',
-				$elm$core$String$fromFloat(_float));
-	}
-};
-var $author$project$Morphir$Visual$ViewReference$view = F2(
-	function (viewValue, _v0) {
-		var packageName = _v0.a;
-		var moduleName = _v0.b;
-		var localName = _v0.c;
-		return $mdgriffith$elm_ui$Element$text(
-			$author$project$Morphir$Visual$Common$nameToText(localName));
-	});
-var $author$project$Morphir$Visual$ViewTuple$view = F2(
-	function (viewValue, elems) {
-		var tupleCase = function () {
-			var _v0 = $elm$core$List$length(elems);
-			switch (_v0) {
-				case 2:
-					return 'pair';
-				case 3:
-					return 'triple';
-				default:
-					return 'tuple';
-			}
-		}();
-		return A2(
-			$mdgriffith$elm_ui$Element$column,
-			_List_fromArray(
-				[
-					$mdgriffith$elm_ui$Element$spacing(10)
-				]),
-			_List_fromArray(
-				[
-					$mdgriffith$elm_ui$Element$text(tupleCase + ' of'),
-					A2(
-					$mdgriffith$elm_ui$Element$column,
-					_List_fromArray(
-						[
-							$mdgriffith$elm_ui$Element$moveRight(10),
-							$mdgriffith$elm_ui$Element$spacing(10)
-						]),
-					A2($elm$core$List$map, viewValue, elems))
-				]));
-	});
-var $author$project$Morphir$Visual$ViewValue$viewValue = F3(
-	function (ctx, argumentValues, value) {
-		return A3($author$project$Morphir$Visual$ViewValue$viewValueByValueType, ctx, argumentValues, value);
-	});
-var $author$project$Morphir$Visual$ViewValue$viewValueByLanguageFeature = F3(
-	function (ctx, argumentValues, value) {
-		_v0$10:
-		while (true) {
-			switch (value.$) {
-				case 'Literal':
-					var literalType = value.a;
-					var literal = value.b;
-					return $author$project$Morphir$Visual$ViewLiteral$view(literal);
-				case 'Constructor':
-					var tpe = value.a;
-					var fQName = value.b;
-					return A2(
-						$author$project$Morphir$Visual$ViewReference$view,
-						A2($author$project$Morphir$Visual$ViewValue$viewValue, ctx, argumentValues),
-						fQName);
-				case 'Tuple':
-					var tpe = value.a;
-					var elems = value.b;
-					return A2(
-						$author$project$Morphir$Visual$ViewTuple$view,
-						A2($author$project$Morphir$Visual$ViewValue$viewValue, ctx, argumentValues),
-						elems);
-				case 'List':
-					if ((((((((((((((((((((((((value.a.$ === 'Reference') && value.a.b.a.b) && value.a.b.a.a.b) && (value.a.b.a.a.a === 'morphir')) && (!value.a.b.a.a.b.b)) && value.a.b.a.b.b) && value.a.b.a.b.a.b) && (value.a.b.a.b.a.a === 's')) && value.a.b.a.b.a.b.b) && (value.a.b.a.b.a.b.a === 'd')) && value.a.b.a.b.a.b.b.b) && (value.a.b.a.b.a.b.b.a === 'k')) && (!value.a.b.a.b.a.b.b.b.b)) && (!value.a.b.a.b.b.b)) && value.a.b.b.b) && value.a.b.b.a.b) && (value.a.b.b.a.a === 'list')) && (!value.a.b.b.a.b.b)) && (!value.a.b.b.b.b)) && value.a.b.c.b) && (value.a.b.c.a === 'list')) && (!value.a.b.c.b.b)) && value.a.c.b) && (!value.a.c.b.b)) {
-						var _v1 = value.a;
-						var _v2 = _v1.b;
-						var _v3 = _v2.a;
-						var _v4 = _v3.a;
-						var _v5 = _v3.b;
-						var _v6 = _v5.a;
-						var _v7 = _v6.b;
-						var _v8 = _v7.b;
-						var _v9 = _v2.b;
-						var _v10 = _v9.a;
-						var _v11 = _v2.c;
-						var _v12 = _v1.c;
-						var itemType = _v12.a;
-						var items = value.b;
-						return A4(
-							$author$project$Morphir$Visual$ViewList$view,
-							ctx.distribution,
-							A2($author$project$Morphir$Visual$ViewValue$viewValue, ctx, argumentValues),
-							itemType,
-							items);
-					} else {
-						break _v0$10;
-					}
-				case 'Variable':
-					var tpe = value.a;
-					var name = value.b;
-					return A2(
-						$mdgriffith$elm_ui$Element$el,
-						_List_Nil,
-						$mdgriffith$elm_ui$Element$text(
-							$author$project$Morphir$Visual$Common$nameToText(name)));
-				case 'Reference':
-					var tpe = value.a;
-					var fQName = value.b;
-					return A2(
-						$author$project$Morphir$Visual$ViewReference$view,
-						A2($author$project$Morphir$Visual$ViewValue$viewValue, ctx, argumentValues),
-						fQName);
-				case 'Field':
-					var tpe = value.a;
-					var subjectValue = value.b;
-					var fieldName = value.c;
-					return A3(
-						$author$project$Morphir$Visual$ViewField$view,
-						A2($author$project$Morphir$Visual$ViewValue$viewValue, ctx, argumentValues),
-						subjectValue,
-						fieldName);
-				case 'Apply':
-					var fun = value.b;
-					var arg = value.c;
-					var _v13 = A2($author$project$Morphir$IR$Value$uncurryApply, fun, arg);
-					var _function = _v13.a;
-					var args = _v13.b;
-					return A3(
-						$author$project$Morphir$Visual$ViewApply$view,
-						A2($author$project$Morphir$Visual$ViewValue$viewValue, ctx, argumentValues),
-						_function,
-						args);
-				case 'LetDefinition':
-					var tpe = value.a;
-					var unnest = function (v) {
-						if (v.$ === 'LetDefinition') {
-							var defName = v.b;
-							var def = v.c;
-							var inVal = v.d;
-							var _v15 = unnest(inVal);
-							var defs = _v15.a;
-							var bottomIn = _v15.b;
-							return _Utils_Tuple2(
-								A2(
-									$elm$core$List$cons,
-									_Utils_Tuple2(defName, def),
-									defs),
-								bottomIn);
-						} else {
-							var notLet = v;
-							return _Utils_Tuple2(_List_Nil, notLet);
-						}
-					};
-					var _v16 = unnest(value);
-					var definitions = _v16.a;
-					var inValue = _v16.b;
-					return A3(
-						$author$project$Morphir$Visual$ViewLetDefinition$view,
-						A2($author$project$Morphir$Visual$ViewValue$viewValue, ctx, argumentValues),
-						definitions,
-						inValue);
-				case 'IfThenElse':
-					return A4(
-						$author$project$Morphir$Visual$ViewIfThenElse$view,
-						ctx,
-						A2($author$project$Morphir$Visual$ViewValue$viewValue, ctx, argumentValues),
-						value,
-						$elm$core$Dict$empty);
-				default:
-					break _v0$10;
-			}
-		}
-		return A2(
-			$mdgriffith$elm_ui$Element$paragraph,
-			_List_fromArray(
-				[
-					$author$project$Morphir$Visual$Common$cssClass('todo')
-				]),
-			_List_fromArray(
-				[
-					$mdgriffith$elm_ui$Element$text('???')
-				]));
-	});
-var $author$project$Morphir$Visual$ViewValue$viewValueByValueType = F3(
-	function (ctx, argumentValues, typedValue) {
-		var valueType = $author$project$Morphir$IR$Value$valueAttribute(typedValue);
-		if (_Utils_eq(
-			valueType,
-			$author$project$Morphir$IR$SDK$Basics$boolType(_Utils_Tuple0))) {
-			var boolOperatorTree = $author$project$Morphir$Visual$BoolOperatorTree$fromTypedValue(typedValue);
-			return A2(
-				$author$project$Morphir$Visual$ViewBoolOperatorTree$view,
-				A2($author$project$Morphir$Visual$ViewValue$viewValueByLanguageFeature, ctx, argumentValues),
-				boolOperatorTree);
-		} else {
-			return A3($author$project$Morphir$Visual$ViewValue$viewValueByLanguageFeature, ctx, argumentValues, typedValue);
-		}
-	});
-var $author$project$Morphir$Visual$ViewValue$viewDefinition = F3(
-	function (distribution, valueDef, variables) {
-		var ctx = A2($author$project$Morphir$Visual$Context$fromDistributionAndVariables, distribution, variables);
-		return A3($author$project$Morphir$Visual$ViewValue$viewValue, ctx, variables, valueDef.body);
-	});
-var $author$project$Morphir$Web$DevelopMain$viewValue = F3(
-	function (distribution, valueDef, argValues) {
-		var validArgValues = $elm$core$Dict$fromList(
-			A2(
-				$elm$core$List$filterMap,
-				function (_v0) {
-					var argName = _v0.a;
-					var argValueResult = _v0.b;
-					return A2(
-						$elm$core$Maybe$map,
-						$elm$core$Tuple$pair(argName),
-						$elm$core$Result$toMaybe(argValueResult));
-				},
-				$elm$core$Dict$toList(argValues)));
-		return A3($author$project$Morphir$Visual$ViewValue$viewDefinition, distribution, valueDef, validArgValues);
-	});
-var $author$project$Morphir$Web$DevelopMain$SelectFunction = function (a) {
-	return {$: 'SelectFunction', a: a};
-};
-var $elm$html$Html$option = _VirtualDom_node('option');
-var $elm$html$Html$select = _VirtualDom_node('select');
-var $author$project$Morphir$IR$QName$toString = function (_v0) {
-	var moduleName = _v0.a;
-	var localName = _v0.b;
-	return A2(
-		$elm$core$String$join,
-		':',
-		_List_fromArray(
-			[
-				A3($author$project$Morphir$IR$Path$toString, $author$project$Morphir$IR$Name$toTitleCase, '.', moduleName),
-				$author$project$Morphir$IR$Name$toCamelCase(localName)
-			]));
-};
-var $elm$html$Html$Attributes$value = $elm$html$Html$Attributes$stringProperty('value');
-var $author$project$Morphir$Web$DevelopMain$viewValueSelection = function (distro) {
-	var packageName = distro.a;
-	var dependencies = distro.b;
-	var packageDefinition = distro.c;
-	var options = A2(
-		$elm$core$List$concatMap,
-		function (_v1) {
-			var moduleName = _v1.a;
-			var accessControlledModuleDef = _v1.b;
-			return A2(
-				$elm$core$List$map,
-				function (_v2) {
-					var valueName = _v2.a;
-					var valueDef = _v2.b;
-					var valueNameText = A2(
-						$elm$core$String$join,
-						'.',
-						_List_fromArray(
-							[
-								A3($author$project$Morphir$IR$Path$toString, $author$project$Morphir$IR$Name$toTitleCase, '.', moduleName),
-								$author$project$Morphir$IR$Name$toCamelCase(valueName)
-							]));
-					var valueID = $author$project$Morphir$IR$QName$toString(
-						A2($author$project$Morphir$IR$QName$fromName, moduleName, valueName));
-					return A2(
-						$elm$html$Html$option,
-						_List_fromArray(
-							[
-								$elm$html$Html$Attributes$value(valueID)
-							]),
-						_List_fromArray(
-							[
-								$elm$html$Html$text(valueNameText)
-							]));
-				},
-				$elm$core$Dict$toList(accessControlledModuleDef.value.values));
-		},
-		$elm$core$Dict$toList(packageDefinition.modules));
-	return A2(
-		$mdgriffith$elm_ui$Element$column,
-		_List_fromArray(
-			[
-				$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)
-			]),
-		_List_fromArray(
-			[
-				$mdgriffith$elm_ui$Element$html(
-				A2(
-					$elm$html$Html$select,
-					_List_fromArray(
-						[
-							A2(
-							$elm$html$Html$Events$on,
-							'change',
-							A2(
-								$elm$json$Json$Decode$map,
-								$author$project$Morphir$Web$DevelopMain$SelectFunction,
-								A2(
-									$elm$json$Json$Decode$field,
-									'target',
-									A2($elm$json$Json$Decode$field, 'value', $elm$json$Json$Decode$string))))
-						]),
-					options))
-			]));
-};
-var $author$project$Morphir$Web$DevelopMain$viewResult = function (model) {
-	switch (model.$) {
-		case 'HttpFailure':
-			var error = model.a;
-			var message = function () {
-				switch (error.$) {
-					case 'BadUrl':
-						var string = error.a;
-						return 'Bad URL was supplied: ' + string;
-					case 'Timeout':
-						return 'Request timed out!';
-					case 'NetworkError':
-						return 'Network error!';
-					case 'BadStatus':
-						var _int = error.a;
-						return 'Request failed with error code ' + $elm$core$String$fromInt(_int);
-					default:
-						var string = error.a;
-						return 'Error while decoding response body: ' + string;
-				}
-			}();
-			return A2(
-				$mdgriffith$elm_ui$Element$column,
-				_List_Nil,
-				_List_fromArray(
-					[
-						$mdgriffith$elm_ui$Element$text(message)
-					]));
-		case 'WaitingForResponse':
-			return $mdgriffith$elm_ui$Element$text('Running morphir make  ...');
-		case 'MakeComplete':
-			var distributionResult = model.a;
-			if (distributionResult.$ === 'Ok') {
-				var distribution = distributionResult.a;
-				return A2(
-					$mdgriffith$elm_ui$Element$column,
-					_List_fromArray(
-						[
-							$mdgriffith$elm_ui$Element$spacing(20)
-						]),
-					_List_fromArray(
-						[
-							A2(
-							$mdgriffith$elm_ui$Element$el,
-							_List_fromArray(
-								[
-									$mdgriffith$elm_ui$Element$Font$size(18)
-								]),
-							$mdgriffith$elm_ui$Element$text('Function to visualize: ')),
-							$author$project$Morphir$Web$DevelopMain$viewValueSelection(distribution)
-						]));
-			} else {
-				var error = distributionResult.a;
-				return $mdgriffith$elm_ui$Element$text(
-					'Error: ' + $elm$core$Debug$toString(error));
-			}
-		default:
-			var distribution = model.a;
-			var qName = model.b;
-			var valueDef = model.c;
-			var argValues = model.d;
-			return A2(
-				$mdgriffith$elm_ui$Element$column,
-				_List_fromArray(
-					[
-						$mdgriffith$elm_ui$Element$spacing(20)
-					]),
-				_List_fromArray(
-					[
-						A2(
-						$mdgriffith$elm_ui$Element$el,
-						_List_fromArray(
-							[
-								$mdgriffith$elm_ui$Element$Font$size(18)
-							]),
-						$mdgriffith$elm_ui$Element$text('Function to visualize: ')),
-						$author$project$Morphir$Web$DevelopMain$viewValueSelection(distribution),
-						A2(
-						$mdgriffith$elm_ui$Element$el,
-						_List_fromArray(
-							[
-								$mdgriffith$elm_ui$Element$Font$size(18)
-							]),
-						$mdgriffith$elm_ui$Element$text('Arguments: ')),
-						A2($author$project$Morphir$Web$DevelopMain$viewArgumentEditors, valueDef, argValues),
-						A2(
-						$mdgriffith$elm_ui$Element$el,
-						_List_fromArray(
-							[
-								$mdgriffith$elm_ui$Element$Font$size(18)
-							]),
-						$mdgriffith$elm_ui$Element$text('Visualization: ')),
-						A3($author$project$Morphir$Web$DevelopMain$viewValue, distribution, valueDef, argValues)
-					]));
-	}
-};
-var $author$project$Morphir$Web$DevelopMain$view = function (model) {
-	return A3(
-		$mdgriffith$elm_ui$Element$layoutWith,
-		{options: _List_Nil},
-		_List_fromArray(
-			[
-				$mdgriffith$elm_ui$Element$Font$family(
-				_List_fromArray(
-					[
-						$mdgriffith$elm_ui$Element$Font$external(
-						{name: 'Poppins', url: 'https://fonts.googleapis.com/css2?family=Poppins:wght@300&display=swap'}),
-						$mdgriffith$elm_ui$Element$Font$sansSerif
-					])),
-				$mdgriffith$elm_ui$Element$Font$size(
-				$author$project$Morphir$Web$DevelopMain$scaled(2)),
-				$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)
-			]),
-		A2(
-			$mdgriffith$elm_ui$Element$column,
-			_List_fromArray(
-				[
-					$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)
-				]),
-			_List_fromArray(
-				[
-					A2(
-					$mdgriffith$elm_ui$Element$row,
-					_List_fromArray(
-						[
-							$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),
-							$mdgriffith$elm_ui$Element$padding(10),
-							$mdgriffith$elm_ui$Element$Background$color($author$project$Morphir$Web$Theme$Light$blue)
-						]),
-					_List_fromArray(
-						[
-							A2(
-							$mdgriffith$elm_ui$Element$row,
-							_List_fromArray(
-								[
-									$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)
-								]),
-							_List_fromArray(
-								[
-									A2(
-									$mdgriffith$elm_ui$Element$image,
-									_List_fromArray(
-										[
-											$mdgriffith$elm_ui$Element$height(
-											$mdgriffith$elm_ui$Element$px(50))
-										]),
-									{description: 'Morphir Logo', src: 'assets/2020_Morphir_Logo_Icon_WHT.svg'}),
-									A2(
-									$mdgriffith$elm_ui$Element$el,
-									_List_fromArray(
-										[
-											A2($mdgriffith$elm_ui$Element$paddingXY, 10, 0)
-										]),
-									A2($author$project$Morphir$Web$DevelopMain$theme.heading, 1, 'Morphir Development Server'))
-								])),
-							function () {
-							if (model.$ === 'WaitingForResponse') {
-								return $author$project$Morphir$Web$DevelopMain$theme.disabledButton('Loading ...');
-							} else {
-								return $author$project$Morphir$Web$DevelopMain$theme.button(
-									{label: 'Reload', onPress: $author$project$Morphir$Web$DevelopMain$Make});
-							}
-						}()
-						])),
-					A2(
-					$mdgriffith$elm_ui$Element$el,
-					_List_fromArray(
-						[
-							$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),
-							$mdgriffith$elm_ui$Element$padding(10)
-						]),
-					$author$project$Morphir$Web$DevelopMain$viewResult(model))
-				])));
-};
-var $author$project$Morphir$Web$DevelopMain$main = $elm$browser$Browser$element(
-	{init: $author$project$Morphir$Web$DevelopMain$init, subscriptions: $author$project$Morphir$Web$DevelopMain$subscriptions, update: $author$project$Morphir$Web$DevelopMain$update, view: $author$project$Morphir$Web$DevelopMain$view});
-_Platform_export({'Morphir':{'Web':{'DevelopMain':{'init':$author$project$Morphir$Web$DevelopMain$main(
-	$elm$json$Json$Decode$succeed(_Utils_Tuple0))(0)}}}});}(this));
\ No newline at end of file
diff --git a/example_app_model/doc/assets/2020_Morphir_Logo_Icon_WHT.svg b/example_app_model/doc/web/assets/2020_Morphir_Logo_Icon_WHT.svg
similarity index 100%
rename from example_app_model/doc/assets/2020_Morphir_Logo_Icon_WHT.svg
rename to example_app_model/doc/web/assets/2020_Morphir_Logo_Icon_WHT.svg
diff --git a/example_app_model/doc/index.html b/example_app_model/doc/web/index.html
similarity index 99%
rename from example_app_model/doc/index.html
rename to example_app_model/doc/web/index.html
index 2d842d9..9e0b3f5 100644
--- a/example_app_model/doc/index.html
+++ b/example_app_model/doc/web/index.html
@@ -7412,7 +7412,7 @@
 				}
 			},
 			$author$project$Morphir$IR$Distribution$Codec$decodeVersionedDistribution),
-		url: '/server/morphir-ir.json'
+		url: './morphir-ir.json'
 	});
 var $author$project$Morphir$Web$DevelopApp$NotFound = {$: 'NotFound'};
 var $elm$url$Url$Parser$State = F5(
@@ -9744,7 +9744,7 @@
 						}
 					},
 					$author$project$Morphir$Correctness$Codec$decodeTestSuite(ir)),
-				url: '/server/morphir-tests.json'
+				url: './morphir-tests.json'
 			});
 	});
 var $author$project$Morphir$Web$DevelopApp$httpTestModel = function (ir) {
@@ -9762,7 +9762,7 @@
 					}
 				},
 				$author$project$Morphir$Correctness$Codec$decodeTestSuite(ir)),
-			url: '/server/morphir-tests.json'
+			url: './morphir-tests.json'
 		});
 };
 var $author$project$Morphir$Visual$ValueEditor$RecordEditor = function (a) {
@@ -18328,6 +18328,66 @@
 					$author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral))
 				]))),
 		_Utils_Tuple2(
+		'lessThanOrEqual',
+		$author$project$Morphir$Value$Native$oneOf(
+			_List_fromArray(
+				[
+					A4(
+					$author$project$Morphir$Value$Native$eval2,
+					$elm$core$Basics$le,
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral),
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral),
+					$author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)),
+					A4(
+					$author$project$Morphir$Value$Native$eval2,
+					$elm$core$Basics$le,
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral),
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral),
+					$author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)),
+					A4(
+					$author$project$Morphir$Value$Native$eval2,
+					$elm$core$Basics$le,
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$charLiteral),
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$charLiteral),
+					$author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)),
+					A4(
+					$author$project$Morphir$Value$Native$eval2,
+					$elm$core$Basics$le,
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$stringLiteral),
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$stringLiteral),
+					$author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral))
+				]))),
+		_Utils_Tuple2(
+		'greaterThanOrEqual',
+		$author$project$Morphir$Value$Native$oneOf(
+			_List_fromArray(
+				[
+					A4(
+					$author$project$Morphir$Value$Native$eval2,
+					$elm$core$Basics$ge,
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral),
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral),
+					$author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)),
+					A4(
+					$author$project$Morphir$Value$Native$eval2,
+					$elm$core$Basics$ge,
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral),
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral),
+					$author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)),
+					A4(
+					$author$project$Morphir$Value$Native$eval2,
+					$elm$core$Basics$ge,
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$charLiteral),
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$charLiteral),
+					$author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)),
+					A4(
+					$author$project$Morphir$Value$Native$eval2,
+					$elm$core$Basics$ge,
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$stringLiteral),
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$stringLiteral),
+					$author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral))
+				]))),
+		_Utils_Tuple2(
 		'abs',
 		$author$project$Morphir$Value$Native$oneOf(
 			_List_fromArray(
@@ -30638,7 +30698,7 @@
 											$mdgriffith$elm_ui$Element$height(
 											$mdgriffith$elm_ui$Element$px(40))
 										]),
-									{description: 'Morphir Logo', src: '/assets/2020_Morphir_Logo_Icon_WHT.svg'})),
+									{description: 'Morphir Logo', src: './assets/2020_Morphir_Logo_Icon_WHT.svg'})),
 								A2(
 								$mdgriffith$elm_ui$Element$el,
 								_List_fromArray(
diff --git a/example_app_model/doc/insight.html b/example_app_model/doc/web/insight.html
similarity index 80%
rename from example_app_model/doc/insight.html
rename to example_app_model/doc/web/insight.html
index 3e3f3cc..b3f0d26 100644
--- a/example_app_model/doc/insight.html
+++ b/example_app_model/doc/web/insight.html
@@ -20,7 +20,7 @@
     }
 
     //HTTP GET request to fetch distribution JSON from server
-    var distribution = httpGet("https://finos.github.io/morphir-examples/example_app_model/doc/morphir-ir.json");
+    var distribution = httpGet("./morphir-ir.json");
 
     //ELM integration in JavaScript for interoperability
     var app = Elm.Morphir.Web.Insight.init({
@@ -34,9 +34,8 @@
     app.ports.receiveFunctionName.send("Insight.UseCase1:limitTracking");
 
     //Sending Arguments List threw port
-   // var argsList = [10 ,13 ,-16 ,15 ,-10];
-   // app.ports.receiveFunctionArguments.send(argsList);
+    var argsList = [10 ,13 ,-16 ,15 ,-10];
+    app.ports.receiveFunctionArguments.send(argsList);
 
 
-Morphir
-
+
\ No newline at end of file
diff --git a/example_app_model/doc/insight.js b/example_app_model/doc/web/insight.js
similarity index 99%
rename from example_app_model/doc/insight.js
rename to example_app_model/doc/web/insight.js
index 70bb894..4baa6de 100644
--- a/example_app_model/doc/insight.js
+++ b/example_app_model/doc/web/insight.js
@@ -14292,6 +14292,66 @@ var $author$project$Morphir$IR$SDK$Basics$nativeFunctions = _List_fromArray(
 					$author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral))
 				]))),
 		_Utils_Tuple2(
+		'lessThanOrEqual',
+		$author$project$Morphir$Value$Native$oneOf(
+			_List_fromArray(
+				[
+					A4(
+					$author$project$Morphir$Value$Native$eval2,
+					$elm$core$Basics$le,
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral),
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral),
+					$author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)),
+					A4(
+					$author$project$Morphir$Value$Native$eval2,
+					$elm$core$Basics$le,
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral),
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral),
+					$author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)),
+					A4(
+					$author$project$Morphir$Value$Native$eval2,
+					$elm$core$Basics$le,
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$charLiteral),
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$charLiteral),
+					$author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)),
+					A4(
+					$author$project$Morphir$Value$Native$eval2,
+					$elm$core$Basics$le,
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$stringLiteral),
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$stringLiteral),
+					$author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral))
+				]))),
+		_Utils_Tuple2(
+		'greaterThanOrEqual',
+		$author$project$Morphir$Value$Native$oneOf(
+			_List_fromArray(
+				[
+					A4(
+					$author$project$Morphir$Value$Native$eval2,
+					$elm$core$Basics$ge,
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral),
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral),
+					$author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)),
+					A4(
+					$author$project$Morphir$Value$Native$eval2,
+					$elm$core$Basics$ge,
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral),
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral),
+					$author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)),
+					A4(
+					$author$project$Morphir$Value$Native$eval2,
+					$elm$core$Basics$ge,
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$charLiteral),
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$charLiteral),
+					$author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)),
+					A4(
+					$author$project$Morphir$Value$Native$eval2,
+					$elm$core$Basics$ge,
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$stringLiteral),
+					$author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$stringLiteral),
+					$author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral))
+				]))),
+		_Utils_Tuple2(
 		'abs',
 		$author$project$Morphir$Value$Native$oneOf(
 			_List_fromArray(
diff --git a/example_app_model/doc/morphir-ir.json b/example_app_model/doc/web/morphir-ir.json
similarity index 100%
rename from example_app_model/doc/morphir-ir.json
rename to example_app_model/doc/web/morphir-ir.json
diff --git a/example_app_model/doc/try-morphir.html b/example_app_model/doc/web/try-morphir.html
similarity index 100%
rename from example_app_model/doc/try-morphir.html
rename to example_app_model/doc/web/try-morphir.html
diff --git a/example_app_model/morphir-ir.json b/example_app_model/morphir-ir.json
deleted file mode 100644
index be21acf..0000000
--- a/example_app_model/morphir-ir.json
+++ /dev/null
@@ -1,2596 +0,0 @@
-{
-    "formatVersion": 1,
-    "distribution": [
-        "library",
-        [
-            [
-                "morphir"
-            ],
-            [
-                "example"
-            ],
-            [
-                "app"
-            ]
-        ],
-        [],
-        {
-            "modules": [
-                {
-                    "name": [
-                        [
-                            "rentals"
-                        ]
-                    ],
-                    "def": [
-                        "public",
-                        {
-                            "types": [],
-                            "values": [
-                                [
-                                    [
-                                        "request"
-                                    ],
-                                    [
-                                        "public",
-                                        {
-                                            "inputTypes": [
-                                                [
-                                                    [
-                                                        "inventory"
-                                                    ],
-                                                    [
-                                                        "reference",
-                                                        {},
-                                                        [
-                                                            [
-                                                                [
-                                                                    "morphir"
-                                                                ],
-                                                                [
-                                                                    "s",
-                                                                    "d",
-                                                                    "k"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                [
-                                                                    "basics"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                "int"
-                                                            ]
-                                                        ],
-                                                        []
-                                                    ],
-                                                    [
-                                                        "reference",
-                                                        {},
-                                                        [
-                                                            [
-                                                                [
-                                                                    "morphir"
-                                                                ],
-                                                                [
-                                                                    "s",
-                                                                    "d",
-                                                                    "k"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                [
-                                                                    "basics"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                "int"
-                                                            ]
-                                                        ],
-                                                        []
-                                                    ]
-                                                ],
-                                                [
-                                                    [
-                                                        "reservations"
-                                                    ],
-                                                    [
-                                                        "reference",
-                                                        {},
-                                                        [
-                                                            [
-                                                                [
-                                                                    "morphir"
-                                                                ],
-                                                                [
-                                                                    "s",
-                                                                    "d",
-                                                                    "k"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                [
-                                                                    "basics"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                "int"
-                                                            ]
-                                                        ],
-                                                        []
-                                                    ],
-                                                    [
-                                                        "reference",
-                                                        {},
-                                                        [
-                                                            [
-                                                                [
-                                                                    "morphir"
-                                                                ],
-                                                                [
-                                                                    "s",
-                                                                    "d",
-                                                                    "k"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                [
-                                                                    "basics"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                "int"
-                                                            ]
-                                                        ],
-                                                        []
-                                                    ]
-                                                ],
-                                                [
-                                                    [
-                                                        "returns"
-                                                    ],
-                                                    [
-                                                        "reference",
-                                                        {},
-                                                        [
-                                                            [
-                                                                [
-                                                                    "morphir"
-                                                                ],
-                                                                [
-                                                                    "s",
-                                                                    "d",
-                                                                    "k"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                [
-                                                                    "basics"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                "int"
-                                                            ]
-                                                        ],
-                                                        []
-                                                    ],
-                                                    [
-                                                        "reference",
-                                                        {},
-                                                        [
-                                                            [
-                                                                [
-                                                                    "morphir"
-                                                                ],
-                                                                [
-                                                                    "s",
-                                                                    "d",
-                                                                    "k"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                [
-                                                                    "basics"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                "int"
-                                                            ]
-                                                        ],
-                                                        []
-                                                    ]
-                                                ],
-                                                [
-                                                    [
-                                                        "requested",
-                                                        "amount"
-                                                    ],
-                                                    [
-                                                        "reference",
-                                                        {},
-                                                        [
-                                                            [
-                                                                [
-                                                                    "morphir"
-                                                                ],
-                                                                [
-                                                                    "s",
-                                                                    "d",
-                                                                    "k"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                [
-                                                                    "basics"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                "int"
-                                                            ]
-                                                        ],
-                                                        []
-                                                    ],
-                                                    [
-                                                        "reference",
-                                                        {},
-                                                        [
-                                                            [
-                                                                [
-                                                                    "morphir"
-                                                                ],
-                                                                [
-                                                                    "s",
-                                                                    "d",
-                                                                    "k"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                [
-                                                                    "basics"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                "int"
-                                                            ]
-                                                        ],
-                                                        []
-                                                    ]
-                                                ],
-                                                [
-                                                    [
-                                                        "allow",
-                                                        "partial"
-                                                    ],
-                                                    [
-                                                        "reference",
-                                                        {},
-                                                        [
-                                                            [
-                                                                [
-                                                                    "morphir"
-                                                                ],
-                                                                [
-                                                                    "s",
-                                                                    "d",
-                                                                    "k"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                [
-                                                                    "basics"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                "bool"
-                                                            ]
-                                                        ],
-                                                        []
-                                                    ],
-                                                    [
-                                                        "reference",
-                                                        {},
-                                                        [
-                                                            [
-                                                                [
-                                                                    "morphir"
-                                                                ],
-                                                                [
-                                                                    "s",
-                                                                    "d",
-                                                                    "k"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                [
-                                                                    "basics"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                "bool"
-                                                            ]
-                                                        ],
-                                                        []
-                                                    ]
-                                                ]
-                                            ],
-                                            "outputType": [
-                                                "reference",
-                                                {},
-                                                [
-                                                    [
-                                                        [
-                                                            "morphir"
-                                                        ],
-                                                        [
-                                                            "s",
-                                                            "d",
-                                                            "k"
-                                                        ]
-                                                    ],
-                                                    [
-                                                        [
-                                                            "result"
-                                                        ]
-                                                    ],
-                                                    [
-                                                        "result"
-                                                    ]
-                                                ],
-                                                [
-                                                    [
-                                                        "reference",
-                                                        {},
-                                                        [
-                                                            [
-                                                                [
-                                                                    "morphir"
-                                                                ],
-                                                                [
-                                                                    "s",
-                                                                    "d",
-                                                                    "k"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                [
-                                                                    "string"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                "string"
-                                                            ]
-                                                        ],
-                                                        []
-                                                    ],
-                                                    [
-                                                        "reference",
-                                                        {},
-                                                        [
-                                                            [
-                                                                [
-                                                                    "morphir"
-                                                                ],
-                                                                [
-                                                                    "s",
-                                                                    "d",
-                                                                    "k"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                [
-                                                                    "basics"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                "int"
-                                                            ]
-                                                        ],
-                                                        []
-                                                    ]
-                                                ]
-                                            ],
-                                            "body": [
-                                                "let_definition",
-                                                [
-                                                    "reference",
-                                                    {},
-                                                    [
-                                                        [
-                                                            [
-                                                                "morphir"
-                                                            ],
-                                                            [
-                                                                "s",
-                                                                "d",
-                                                                "k"
-                                                            ]
-                                                        ],
-                                                        [
-                                                            [
-                                                                "result"
-                                                            ]
-                                                        ],
-                                                        [
-                                                            "result"
-                                                        ]
-                                                    ],
-                                                    [
-                                                        [
-                                                            "reference",
-                                                            {},
-                                                            [
-                                                                [
-                                                                    [
-                                                                        "morphir"
-                                                                    ],
-                                                                    [
-                                                                        "s",
-                                                                        "d",
-                                                                        "k"
-                                                                    ]
-                                                                ],
-                                                                [
-                                                                    [
-                                                                        "string"
-                                                                    ]
-                                                                ],
-                                                                [
-                                                                    "string"
-                                                                ]
-                                                            ],
-                                                            []
-                                                        ],
-                                                        [
-                                                            "reference",
-                                                            {},
-                                                            [
-                                                                [
-                                                                    [
-                                                                        "morphir"
-                                                                    ],
-                                                                    [
-                                                                        "s",
-                                                                        "d",
-                                                                        "k"
-                                                                    ]
-                                                                ],
-                                                                [
-                                                                    [
-                                                                        "basics"
-                                                                    ]
-                                                                ],
-                                                                [
-                                                                    "int"
-                                                                ]
-                                                            ],
-                                                            []
-                                                        ]
-                                                    ]
-                                                ],
-                                                [
-                                                    "availability"
-                                                ],
-                                                {
-                                                    "inputTypes": [],
-                                                    "outputType": [
-                                                        "reference",
-                                                        {},
-                                                        [
-                                                            [
-                                                                [
-                                                                    "morphir"
-                                                                ],
-                                                                [
-                                                                    "s",
-                                                                    "d",
-                                                                    "k"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                [
-                                                                    "basics"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                "int"
-                                                            ]
-                                                        ],
-                                                        []
-                                                    ],
-                                                    "body": [
-                                                        "apply",
-                                                        [
-                                                            "reference",
-                                                            {},
-                                                            [
-                                                                [
-                                                                    [
-                                                                        "morphir"
-                                                                    ],
-                                                                    [
-                                                                        "s",
-                                                                        "d",
-                                                                        "k"
-                                                                    ]
-                                                                ],
-                                                                [
-                                                                    [
-                                                                        "basics"
-                                                                    ]
-                                                                ],
-                                                                [
-                                                                    "int"
-                                                                ]
-                                                            ],
-                                                            []
-                                                        ],
-                                                        [
-                                                            "apply",
-                                                            [
-                                                                "function",
-                                                                {},
-                                                                [
-                                                                    "reference",
-                                                                    {},
-                                                                    [
-                                                                        [
-                                                                            [
-                                                                                "morphir"
-                                                                            ],
-                                                                            [
-                                                                                "s",
-                                                                                "d",
-                                                                                "k"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            [
-                                                                                "basics"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            "int"
-                                                                        ]
-                                                                    ],
-                                                                    []
-                                                                ],
-                                                                [
-                                                                    "reference",
-                                                                    {},
-                                                                    [
-                                                                        [
-                                                                            [
-                                                                                "morphir"
-                                                                            ],
-                                                                            [
-                                                                                "s",
-                                                                                "d",
-                                                                                "k"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            [
-                                                                                "basics"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            "int"
-                                                                        ]
-                                                                    ],
-                                                                    []
-                                                                ]
-                                                            ],
-                                                            [
-                                                                "reference",
-                                                                [
-                                                                    "function",
-                                                                    {},
-                                                                    [
-                                                                        "reference",
-                                                                        {},
-                                                                        [
-                                                                            [
-                                                                                [
-                                                                                    "morphir"
-                                                                                ],
-                                                                                [
-                                                                                    "s",
-                                                                                    "d",
-                                                                                    "k"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                [
-                                                                                    "basics"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                "int"
-                                                                            ]
-                                                                        ],
-                                                                        []
-                                                                    ],
-                                                                    [
-                                                                        "function",
-                                                                        {},
-                                                                        [
-                                                                            "reference",
-                                                                            {},
-                                                                            [
-                                                                                [
-                                                                                    [
-                                                                                        "morphir"
-                                                                                    ],
-                                                                                    [
-                                                                                        "s",
-                                                                                        "d",
-                                                                                        "k"
-                                                                                    ]
-                                                                                ],
-                                                                                [
-                                                                                    [
-                                                                                        "basics"
-                                                                                    ]
-                                                                                ],
-                                                                                [
-                                                                                    "int"
-                                                                                ]
-                                                                            ],
-                                                                            []
-                                                                        ],
-                                                                        [
-                                                                            "reference",
-                                                                            {},
-                                                                            [
-                                                                                [
-                                                                                    [
-                                                                                        "morphir"
-                                                                                    ],
-                                                                                    [
-                                                                                        "s",
-                                                                                        "d",
-                                                                                        "k"
-                                                                                    ]
-                                                                                ],
-                                                                                [
-                                                                                    [
-                                                                                        "basics"
-                                                                                    ]
-                                                                                ],
-                                                                                [
-                                                                                    "int"
-                                                                                ]
-                                                                            ],
-                                                                            []
-                                                                        ]
-                                                                    ]
-                                                                ],
-                                                                [
-                                                                    [
-                                                                        [
-                                                                            "morphir"
-                                                                        ],
-                                                                        [
-                                                                            "s",
-                                                                            "d",
-                                                                            "k"
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        [
-                                                                            "basics"
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        "add"
-                                                                    ]
-                                                                ]
-                                                            ],
-                                                            [
-                                                                "apply",
-                                                                [
-                                                                    "reference",
-                                                                    {},
-                                                                    [
-                                                                        [
-                                                                            [
-                                                                                "morphir"
-                                                                            ],
-                                                                            [
-                                                                                "s",
-                                                                                "d",
-                                                                                "k"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            [
-                                                                                "basics"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            "int"
-                                                                        ]
-                                                                    ],
-                                                                    []
-                                                                ],
-                                                                [
-                                                                    "apply",
-                                                                    [
-                                                                        "function",
-                                                                        {},
-                                                                        [
-                                                                            "reference",
-                                                                            {},
-                                                                            [
-                                                                                [
-                                                                                    [
-                                                                                        "morphir"
-                                                                                    ],
-                                                                                    [
-                                                                                        "s",
-                                                                                        "d",
-                                                                                        "k"
-                                                                                    ]
-                                                                                ],
-                                                                                [
-                                                                                    [
-                                                                                        "basics"
-                                                                                    ]
-                                                                                ],
-                                                                                [
-                                                                                    "int"
-                                                                                ]
-                                                                            ],
-                                                                            []
-                                                                        ],
-                                                                        [
-                                                                            "reference",
-                                                                            {},
-                                                                            [
-                                                                                [
-                                                                                    [
-                                                                                        "morphir"
-                                                                                    ],
-                                                                                    [
-                                                                                        "s",
-                                                                                        "d",
-                                                                                        "k"
-                                                                                    ]
-                                                                                ],
-                                                                                [
-                                                                                    [
-                                                                                        "basics"
-                                                                                    ]
-                                                                                ],
-                                                                                [
-                                                                                    "int"
-                                                                                ]
-                                                                            ],
-                                                                            []
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        "reference",
-                                                                        [
-                                                                            "function",
-                                                                            {},
-                                                                            [
-                                                                                "reference",
-                                                                                {},
-                                                                                [
-                                                                                    [
-                                                                                        [
-                                                                                            "morphir"
-                                                                                        ],
-                                                                                        [
-                                                                                            "s",
-                                                                                            "d",
-                                                                                            "k"
-                                                                                        ]
-                                                                                    ],
-                                                                                    [
-                                                                                        [
-                                                                                            "basics"
-                                                                                        ]
-                                                                                    ],
-                                                                                    [
-                                                                                        "int"
-                                                                                    ]
-                                                                                ],
-                                                                                []
-                                                                            ],
-                                                                            [
-                                                                                "function",
-                                                                                {},
-                                                                                [
-                                                                                    "reference",
-                                                                                    {},
-                                                                                    [
-                                                                                        [
-                                                                                            [
-                                                                                                "morphir"
-                                                                                            ],
-                                                                                            [
-                                                                                                "s",
-                                                                                                "d",
-                                                                                                "k"
-                                                                                            ]
-                                                                                        ],
-                                                                                        [
-                                                                                            [
-                                                                                                "basics"
-                                                                                            ]
-                                                                                        ],
-                                                                                        [
-                                                                                            "int"
-                                                                                        ]
-                                                                                    ],
-                                                                                    []
-                                                                                ],
-                                                                                [
-                                                                                    "reference",
-                                                                                    {},
-                                                                                    [
-                                                                                        [
-                                                                                            [
-                                                                                                "morphir"
-                                                                                            ],
-                                                                                            [
-                                                                                                "s",
-                                                                                                "d",
-                                                                                                "k"
-                                                                                            ]
-                                                                                        ],
-                                                                                        [
-                                                                                            [
-                                                                                                "basics"
-                                                                                            ]
-                                                                                        ],
-                                                                                        [
-                                                                                            "int"
-                                                                                        ]
-                                                                                    ],
-                                                                                    []
-                                                                                ]
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            [
-                                                                                [
-                                                                                    "morphir"
-                                                                                ],
-                                                                                [
-                                                                                    "s",
-                                                                                    "d",
-                                                                                    "k"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                [
-                                                                                    "basics"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                "subtract"
-                                                                            ]
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        "variable",
-                                                                        [
-                                                                            "reference",
-                                                                            {},
-                                                                            [
-                                                                                [
-                                                                                    [
-                                                                                        "morphir"
-                                                                                    ],
-                                                                                    [
-                                                                                        "s",
-                                                                                        "d",
-                                                                                        "k"
-                                                                                    ]
-                                                                                ],
-                                                                                [
-                                                                                    [
-                                                                                        "basics"
-                                                                                    ]
-                                                                                ],
-                                                                                [
-                                                                                    "int"
-                                                                                ]
-                                                                            ],
-                                                                            []
-                                                                        ],
-                                                                        [
-                                                                            "inventory"
-                                                                        ]
-                                                                    ]
-                                                                ],
-                                                                [
-                                                                    "variable",
-                                                                    [
-                                                                        "reference",
-                                                                        {},
-                                                                        [
-                                                                            [
-                                                                                [
-                                                                                    "morphir"
-                                                                                ],
-                                                                                [
-                                                                                    "s",
-                                                                                    "d",
-                                                                                    "k"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                [
-                                                                                    "basics"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                "int"
-                                                                            ]
-                                                                        ],
-                                                                        []
-                                                                    ],
-                                                                    [
-                                                                        "reservations"
-                                                                    ]
-                                                                ]
-                                                            ]
-                                                        ],
-                                                        [
-                                                            "variable",
-                                                            [
-                                                                "reference",
-                                                                {},
-                                                                [
-                                                                    [
-                                                                        [
-                                                                            "morphir"
-                                                                        ],
-                                                                        [
-                                                                            "s",
-                                                                            "d",
-                                                                            "k"
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        [
-                                                                            "basics"
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        "int"
-                                                                    ]
-                                                                ],
-                                                                []
-                                                            ],
-                                                            [
-                                                                "returns"
-                                                            ]
-                                                        ]
-                                                    ]
-                                                },
-                                                [
-                                                    "if_then_else",
-                                                    [
-                                                        "reference",
-                                                        {},
-                                                        [
-                                                            [
-                                                                [
-                                                                    "morphir"
-                                                                ],
-                                                                [
-                                                                    "s",
-                                                                    "d",
-                                                                    "k"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                [
-                                                                    "result"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                "result"
-                                                            ]
-                                                        ],
-                                                        [
-                                                            [
-                                                                "reference",
-                                                                {},
-                                                                [
-                                                                    [
-                                                                        [
-                                                                            "morphir"
-                                                                        ],
-                                                                        [
-                                                                            "s",
-                                                                            "d",
-                                                                            "k"
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        [
-                                                                            "string"
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        "string"
-                                                                    ]
-                                                                ],
-                                                                []
-                                                            ],
-                                                            [
-                                                                "reference",
-                                                                {},
-                                                                [
-                                                                    [
-                                                                        [
-                                                                            "morphir"
-                                                                        ],
-                                                                        [
-                                                                            "s",
-                                                                            "d",
-                                                                            "k"
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        [
-                                                                            "basics"
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        "int"
-                                                                    ]
-                                                                ],
-                                                                []
-                                                            ]
-                                                        ]
-                                                    ],
-                                                    [
-                                                        "apply",
-                                                        [
-                                                            "reference",
-                                                            {},
-                                                            [
-                                                                [
-                                                                    [
-                                                                        "morphir"
-                                                                    ],
-                                                                    [
-                                                                        "s",
-                                                                        "d",
-                                                                        "k"
-                                                                    ]
-                                                                ],
-                                                                [
-                                                                    [
-                                                                        "basics"
-                                                                    ]
-                                                                ],
-                                                                [
-                                                                    "bool"
-                                                                ]
-                                                            ],
-                                                            []
-                                                        ],
-                                                        [
-                                                            "apply",
-                                                            [
-                                                                "function",
-                                                                {},
-                                                                [
-                                                                    "reference",
-                                                                    {},
-                                                                    [
-                                                                        [
-                                                                            [
-                                                                                "morphir"
-                                                                            ],
-                                                                            [
-                                                                                "s",
-                                                                                "d",
-                                                                                "k"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            [
-                                                                                "basics"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            "int"
-                                                                        ]
-                                                                    ],
-                                                                    []
-                                                                ],
-                                                                [
-                                                                    "reference",
-                                                                    {},
-                                                                    [
-                                                                        [
-                                                                            [
-                                                                                "morphir"
-                                                                            ],
-                                                                            [
-                                                                                "s",
-                                                                                "d",
-                                                                                "k"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            [
-                                                                                "basics"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            "bool"
-                                                                        ]
-                                                                    ],
-                                                                    []
-                                                                ]
-                                                            ],
-                                                            [
-                                                                "reference",
-                                                                [
-                                                                    "function",
-                                                                    {},
-                                                                    [
-                                                                        "reference",
-                                                                        {},
-                                                                        [
-                                                                            [
-                                                                                [
-                                                                                    "morphir"
-                                                                                ],
-                                                                                [
-                                                                                    "s",
-                                                                                    "d",
-                                                                                    "k"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                [
-                                                                                    "basics"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                "int"
-                                                                            ]
-                                                                        ],
-                                                                        []
-                                                                    ],
-                                                                    [
-                                                                        "function",
-                                                                        {},
-                                                                        [
-                                                                            "reference",
-                                                                            {},
-                                                                            [
-                                                                                [
-                                                                                    [
-                                                                                        "morphir"
-                                                                                    ],
-                                                                                    [
-                                                                                        "s",
-                                                                                        "d",
-                                                                                        "k"
-                                                                                    ]
-                                                                                ],
-                                                                                [
-                                                                                    [
-                                                                                        "basics"
-                                                                                    ]
-                                                                                ],
-                                                                                [
-                                                                                    "int"
-                                                                                ]
-                                                                            ],
-                                                                            []
-                                                                        ],
-                                                                        [
-                                                                            "reference",
-                                                                            {},
-                                                                            [
-                                                                                [
-                                                                                    [
-                                                                                        "morphir"
-                                                                                    ],
-                                                                                    [
-                                                                                        "s",
-                                                                                        "d",
-                                                                                        "k"
-                                                                                    ]
-                                                                                ],
-                                                                                [
-                                                                                    [
-                                                                                        "basics"
-                                                                                    ]
-                                                                                ],
-                                                                                [
-                                                                                    "bool"
-                                                                                ]
-                                                                            ],
-                                                                            []
-                                                                        ]
-                                                                    ]
-                                                                ],
-                                                                [
-                                                                    [
-                                                                        [
-                                                                            "morphir"
-                                                                        ],
-                                                                        [
-                                                                            "s",
-                                                                            "d",
-                                                                            "k"
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        [
-                                                                            "basics"
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        "less",
-                                                                        "than",
-                                                                        "or",
-                                                                        "equal"
-                                                                    ]
-                                                                ]
-                                                            ],
-                                                            [
-                                                                "variable",
-                                                                [
-                                                                    "reference",
-                                                                    {},
-                                                                    [
-                                                                        [
-                                                                            [
-                                                                                "morphir"
-                                                                            ],
-                                                                            [
-                                                                                "s",
-                                                                                "d",
-                                                                                "k"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            [
-                                                                                "basics"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            "int"
-                                                                        ]
-                                                                    ],
-                                                                    []
-                                                                ],
-                                                                [
-                                                                    "requested",
-                                                                    "amount"
-                                                                ]
-                                                            ]
-                                                        ],
-                                                        [
-                                                            "variable",
-                                                            [
-                                                                "reference",
-                                                                {},
-                                                                [
-                                                                    [
-                                                                        [
-                                                                            "morphir"
-                                                                        ],
-                                                                        [
-                                                                            "s",
-                                                                            "d",
-                                                                            "k"
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        [
-                                                                            "basics"
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        "int"
-                                                                    ]
-                                                                ],
-                                                                []
-                                                            ],
-                                                            [
-                                                                "availability"
-                                                            ]
-                                                        ]
-                                                    ],
-                                                    [
-                                                        "apply",
-                                                        [
-                                                            "reference",
-                                                            {},
-                                                            [
-                                                                [
-                                                                    [
-                                                                        "morphir"
-                                                                    ],
-                                                                    [
-                                                                        "s",
-                                                                        "d",
-                                                                        "k"
-                                                                    ]
-                                                                ],
-                                                                [
-                                                                    [
-                                                                        "result"
-                                                                    ]
-                                                                ],
-                                                                [
-                                                                    "result"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                [
-                                                                    "reference",
-                                                                    {},
-                                                                    [
-                                                                        [
-                                                                            [
-                                                                                "morphir"
-                                                                            ],
-                                                                            [
-                                                                                "s",
-                                                                                "d",
-                                                                                "k"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            [
-                                                                                "string"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            "string"
-                                                                        ]
-                                                                    ],
-                                                                    []
-                                                                ],
-                                                                [
-                                                                    "reference",
-                                                                    {},
-                                                                    [
-                                                                        [
-                                                                            [
-                                                                                "morphir"
-                                                                            ],
-                                                                            [
-                                                                                "s",
-                                                                                "d",
-                                                                                "k"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            [
-                                                                                "basics"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            "int"
-                                                                        ]
-                                                                    ],
-                                                                    []
-                                                                ]
-                                                            ]
-                                                        ],
-                                                        [
-                                                            "constructor",
-                                                            [
-                                                                "function",
-                                                                {},
-                                                                [
-                                                                    "reference",
-                                                                    {},
-                                                                    [
-                                                                        [
-                                                                            [
-                                                                                "morphir"
-                                                                            ],
-                                                                            [
-                                                                                "s",
-                                                                                "d",
-                                                                                "k"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            [
-                                                                                "basics"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            "int"
-                                                                        ]
-                                                                    ],
-                                                                    []
-                                                                ],
-                                                                [
-                                                                    "reference",
-                                                                    {},
-                                                                    [
-                                                                        [
-                                                                            [
-                                                                                "morphir"
-                                                                            ],
-                                                                            [
-                                                                                "s",
-                                                                                "d",
-                                                                                "k"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            [
-                                                                                "result"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            "result"
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        [
-                                                                            "reference",
-                                                                            {},
-                                                                            [
-                                                                                [
-                                                                                    [
-                                                                                        "morphir"
-                                                                                    ],
-                                                                                    [
-                                                                                        "s",
-                                                                                        "d",
-                                                                                        "k"
-                                                                                    ]
-                                                                                ],
-                                                                                [
-                                                                                    [
-                                                                                        "string"
-                                                                                    ]
-                                                                                ],
-                                                                                [
-                                                                                    "string"
-                                                                                ]
-                                                                            ],
-                                                                            []
-                                                                        ],
-                                                                        [
-                                                                            "reference",
-                                                                            {},
-                                                                            [
-                                                                                [
-                                                                                    [
-                                                                                        "morphir"
-                                                                                    ],
-                                                                                    [
-                                                                                        "s",
-                                                                                        "d",
-                                                                                        "k"
-                                                                                    ]
-                                                                                ],
-                                                                                [
-                                                                                    [
-                                                                                        "basics"
-                                                                                    ]
-                                                                                ],
-                                                                                [
-                                                                                    "int"
-                                                                                ]
-                                                                            ],
-                                                                            []
-                                                                        ]
-                                                                    ]
-                                                                ]
-                                                            ],
-                                                            [
-                                                                [
-                                                                    [
-                                                                        "morphir"
-                                                                    ],
-                                                                    [
-                                                                        "s",
-                                                                        "d",
-                                                                        "k"
-                                                                    ]
-                                                                ],
-                                                                [
-                                                                    [
-                                                                        "result"
-                                                                    ]
-                                                                ],
-                                                                [
-                                                                    "ok"
-                                                                ]
-                                                            ]
-                                                        ],
-                                                        [
-                                                            "variable",
-                                                            [
-                                                                "reference",
-                                                                {},
-                                                                [
-                                                                    [
-                                                                        [
-                                                                            "morphir"
-                                                                        ],
-                                                                        [
-                                                                            "s",
-                                                                            "d",
-                                                                            "k"
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        [
-                                                                            "basics"
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        "int"
-                                                                    ]
-                                                                ],
-                                                                []
-                                                            ],
-                                                            [
-                                                                "requested",
-                                                                "amount"
-                                                            ]
-                                                        ]
-                                                    ],
-                                                    [
-                                                        "if_then_else",
-                                                        [
-                                                            "reference",
-                                                            {},
-                                                            [
-                                                                [
-                                                                    [
-                                                                        "morphir"
-                                                                    ],
-                                                                    [
-                                                                        "s",
-                                                                        "d",
-                                                                        "k"
-                                                                    ]
-                                                                ],
-                                                                [
-                                                                    [
-                                                                        "result"
-                                                                    ]
-                                                                ],
-                                                                [
-                                                                    "result"
-                                                                ]
-                                                            ],
-                                                            [
-                                                                [
-                                                                    "reference",
-                                                                    {},
-                                                                    [
-                                                                        [
-                                                                            [
-                                                                                "morphir"
-                                                                            ],
-                                                                            [
-                                                                                "s",
-                                                                                "d",
-                                                                                "k"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            [
-                                                                                "string"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            "string"
-                                                                        ]
-                                                                    ],
-                                                                    []
-                                                                ],
-                                                                [
-                                                                    "reference",
-                                                                    {},
-                                                                    [
-                                                                        [
-                                                                            [
-                                                                                "morphir"
-                                                                            ],
-                                                                            [
-                                                                                "s",
-                                                                                "d",
-                                                                                "k"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            [
-                                                                                "basics"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            "int"
-                                                                        ]
-                                                                    ],
-                                                                    []
-                                                                ]
-                                                            ]
-                                                        ],
-                                                        [
-                                                            "apply",
-                                                            [
-                                                                "reference",
-                                                                {},
-                                                                [
-                                                                    [
-                                                                        [
-                                                                            "morphir"
-                                                                        ],
-                                                                        [
-                                                                            "s",
-                                                                            "d",
-                                                                            "k"
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        [
-                                                                            "basics"
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        "bool"
-                                                                    ]
-                                                                ],
-                                                                []
-                                                            ],
-                                                            [
-                                                                "apply",
-                                                                [
-                                                                    "function",
-                                                                    {},
-                                                                    [
-                                                                        "reference",
-                                                                        {},
-                                                                        [
-                                                                            [
-                                                                                [
-                                                                                    "morphir"
-                                                                                ],
-                                                                                [
-                                                                                    "s",
-                                                                                    "d",
-                                                                                    "k"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                [
-                                                                                    "basics"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                "bool"
-                                                                            ]
-                                                                        ],
-                                                                        []
-                                                                    ],
-                                                                    [
-                                                                        "reference",
-                                                                        {},
-                                                                        [
-                                                                            [
-                                                                                [
-                                                                                    "morphir"
-                                                                                ],
-                                                                                [
-                                                                                    "s",
-                                                                                    "d",
-                                                                                    "k"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                [
-                                                                                    "basics"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                "bool"
-                                                                            ]
-                                                                        ],
-                                                                        []
-                                                                    ]
-                                                                ],
-                                                                [
-                                                                    "reference",
-                                                                    [
-                                                                        "function",
-                                                                        {},
-                                                                        [
-                                                                            "reference",
-                                                                            {},
-                                                                            [
-                                                                                [
-                                                                                    [
-                                                                                        "morphir"
-                                                                                    ],
-                                                                                    [
-                                                                                        "s",
-                                                                                        "d",
-                                                                                        "k"
-                                                                                    ]
-                                                                                ],
-                                                                                [
-                                                                                    [
-                                                                                        "basics"
-                                                                                    ]
-                                                                                ],
-                                                                                [
-                                                                                    "bool"
-                                                                                ]
-                                                                            ],
-                                                                            []
-                                                                        ],
-                                                                        [
-                                                                            "function",
-                                                                            {},
-                                                                            [
-                                                                                "reference",
-                                                                                {},
-                                                                                [
-                                                                                    [
-                                                                                        [
-                                                                                            "morphir"
-                                                                                        ],
-                                                                                        [
-                                                                                            "s",
-                                                                                            "d",
-                                                                                            "k"
-                                                                                        ]
-                                                                                    ],
-                                                                                    [
-                                                                                        [
-                                                                                            "basics"
-                                                                                        ]
-                                                                                    ],
-                                                                                    [
-                                                                                        "bool"
-                                                                                    ]
-                                                                                ],
-                                                                                []
-                                                                            ],
-                                                                            [
-                                                                                "reference",
-                                                                                {},
-                                                                                [
-                                                                                    [
-                                                                                        [
-                                                                                            "morphir"
-                                                                                        ],
-                                                                                        [
-                                                                                            "s",
-                                                                                            "d",
-                                                                                            "k"
-                                                                                        ]
-                                                                                    ],
-                                                                                    [
-                                                                                        [
-                                                                                            "basics"
-                                                                                        ]
-                                                                                    ],
-                                                                                    [
-                                                                                        "bool"
-                                                                                    ]
-                                                                                ],
-                                                                                []
-                                                                            ]
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        [
-                                                                            [
-                                                                                "morphir"
-                                                                            ],
-                                                                            [
-                                                                                "s",
-                                                                                "d",
-                                                                                "k"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            [
-                                                                                "basics"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            "and"
-                                                                        ]
-                                                                    ]
-                                                                ],
-                                                                [
-                                                                    "variable",
-                                                                    [
-                                                                        "reference",
-                                                                        {},
-                                                                        [
-                                                                            [
-                                                                                [
-                                                                                    "morphir"
-                                                                                ],
-                                                                                [
-                                                                                    "s",
-                                                                                    "d",
-                                                                                    "k"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                [
-                                                                                    "basics"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                "bool"
-                                                                            ]
-                                                                        ],
-                                                                        []
-                                                                    ],
-                                                                    [
-                                                                        "allow",
-                                                                        "partial"
-                                                                    ]
-                                                                ]
-                                                            ],
-                                                            [
-                                                                "apply",
-                                                                [
-                                                                    "reference",
-                                                                    {},
-                                                                    [
-                                                                        [
-                                                                            [
-                                                                                "morphir"
-                                                                            ],
-                                                                            [
-                                                                                "s",
-                                                                                "d",
-                                                                                "k"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            [
-                                                                                "basics"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            "bool"
-                                                                        ]
-                                                                    ],
-                                                                    []
-                                                                ],
-                                                                [
-                                                                    "apply",
-                                                                    [
-                                                                        "function",
-                                                                        {},
-                                                                        [
-                                                                            "reference",
-                                                                            {},
-                                                                            [
-                                                                                [
-                                                                                    [
-                                                                                        "morphir"
-                                                                                    ],
-                                                                                    [
-                                                                                        "s",
-                                                                                        "d",
-                                                                                        "k"
-                                                                                    ]
-                                                                                ],
-                                                                                [
-                                                                                    [
-                                                                                        "basics"
-                                                                                    ]
-                                                                                ],
-                                                                                [
-                                                                                    "int"
-                                                                                ]
-                                                                            ],
-                                                                            []
-                                                                        ],
-                                                                        [
-                                                                            "reference",
-                                                                            {},
-                                                                            [
-                                                                                [
-                                                                                    [
-                                                                                        "morphir"
-                                                                                    ],
-                                                                                    [
-                                                                                        "s",
-                                                                                        "d",
-                                                                                        "k"
-                                                                                    ]
-                                                                                ],
-                                                                                [
-                                                                                    [
-                                                                                        "basics"
-                                                                                    ]
-                                                                                ],
-                                                                                [
-                                                                                    "bool"
-                                                                                ]
-                                                                            ],
-                                                                            []
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        "reference",
-                                                                        [
-                                                                            "function",
-                                                                            {},
-                                                                            [
-                                                                                "reference",
-                                                                                {},
-                                                                                [
-                                                                                    [
-                                                                                        [
-                                                                                            "morphir"
-                                                                                        ],
-                                                                                        [
-                                                                                            "s",
-                                                                                            "d",
-                                                                                            "k"
-                                                                                        ]
-                                                                                    ],
-                                                                                    [
-                                                                                        [
-                                                                                            "basics"
-                                                                                        ]
-                                                                                    ],
-                                                                                    [
-                                                                                        "int"
-                                                                                    ]
-                                                                                ],
-                                                                                []
-                                                                            ],
-                                                                            [
-                                                                                "function",
-                                                                                {},
-                                                                                [
-                                                                                    "reference",
-                                                                                    {},
-                                                                                    [
-                                                                                        [
-                                                                                            [
-                                                                                                "morphir"
-                                                                                            ],
-                                                                                            [
-                                                                                                "s",
-                                                                                                "d",
-                                                                                                "k"
-                                                                                            ]
-                                                                                        ],
-                                                                                        [
-                                                                                            [
-                                                                                                "basics"
-                                                                                            ]
-                                                                                        ],
-                                                                                        [
-                                                                                            "int"
-                                                                                        ]
-                                                                                    ],
-                                                                                    []
-                                                                                ],
-                                                                                [
-                                                                                    "reference",
-                                                                                    {},
-                                                                                    [
-                                                                                        [
-                                                                                            [
-                                                                                                "morphir"
-                                                                                            ],
-                                                                                            [
-                                                                                                "s",
-                                                                                                "d",
-                                                                                                "k"
-                                                                                            ]
-                                                                                        ],
-                                                                                        [
-                                                                                            [
-                                                                                                "basics"
-                                                                                            ]
-                                                                                        ],
-                                                                                        [
-                                                                                            "bool"
-                                                                                        ]
-                                                                                    ],
-                                                                                    []
-                                                                                ]
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            [
-                                                                                [
-                                                                                    "morphir"
-                                                                                ],
-                                                                                [
-                                                                                    "s",
-                                                                                    "d",
-                                                                                    "k"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                [
-                                                                                    "basics"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                "greater",
-                                                                                "than"
-                                                                            ]
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        "variable",
-                                                                        [
-                                                                            "reference",
-                                                                            {},
-                                                                            [
-                                                                                [
-                                                                                    [
-                                                                                        "morphir"
-                                                                                    ],
-                                                                                    [
-                                                                                        "s",
-                                                                                        "d",
-                                                                                        "k"
-                                                                                    ]
-                                                                                ],
-                                                                                [
-                                                                                    [
-                                                                                        "basics"
-                                                                                    ]
-                                                                                ],
-                                                                                [
-                                                                                    "int"
-                                                                                ]
-                                                                            ],
-                                                                            []
-                                                                        ],
-                                                                        [
-                                                                            "availability"
-                                                                        ]
-                                                                    ]
-                                                                ],
-                                                                [
-                                                                    "literal",
-                                                                    [
-                                                                        "reference",
-                                                                        {},
-                                                                        [
-                                                                            [
-                                                                                [
-                                                                                    "morphir"
-                                                                                ],
-                                                                                [
-                                                                                    "s",
-                                                                                    "d",
-                                                                                    "k"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                [
-                                                                                    "basics"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                "int"
-                                                                            ]
-                                                                        ],
-                                                                        []
-                                                                    ],
-                                                                    [
-                                                                        "int_literal",
-                                                                        0
-                                                                    ]
-                                                                ]
-                                                            ]
-                                                        ],
-                                                        [
-                                                            "apply",
-                                                            [
-                                                                "reference",
-                                                                {},
-                                                                [
-                                                                    [
-                                                                        [
-                                                                            "morphir"
-                                                                        ],
-                                                                        [
-                                                                            "s",
-                                                                            "d",
-                                                                            "k"
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        [
-                                                                            "result"
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        "result"
-                                                                    ]
-                                                                ],
-                                                                [
-                                                                    [
-                                                                        "reference",
-                                                                        {},
-                                                                        [
-                                                                            [
-                                                                                [
-                                                                                    "morphir"
-                                                                                ],
-                                                                                [
-                                                                                    "s",
-                                                                                    "d",
-                                                                                    "k"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                [
-                                                                                    "string"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                "string"
-                                                                            ]
-                                                                        ],
-                                                                        []
-                                                                    ],
-                                                                    [
-                                                                        "reference",
-                                                                        {},
-                                                                        [
-                                                                            [
-                                                                                [
-                                                                                    "morphir"
-                                                                                ],
-                                                                                [
-                                                                                    "s",
-                                                                                    "d",
-                                                                                    "k"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                [
-                                                                                    "basics"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                "int"
-                                                                            ]
-                                                                        ],
-                                                                        []
-                                                                    ]
-                                                                ]
-                                                            ],
-                                                            [
-                                                                "constructor",
-                                                                [
-                                                                    "function",
-                                                                    {},
-                                                                    [
-                                                                        "reference",
-                                                                        {},
-                                                                        [
-                                                                            [
-                                                                                [
-                                                                                    "morphir"
-                                                                                ],
-                                                                                [
-                                                                                    "s",
-                                                                                    "d",
-                                                                                    "k"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                [
-                                                                                    "basics"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                "int"
-                                                                            ]
-                                                                        ],
-                                                                        []
-                                                                    ],
-                                                                    [
-                                                                        "reference",
-                                                                        {},
-                                                                        [
-                                                                            [
-                                                                                [
-                                                                                    "morphir"
-                                                                                ],
-                                                                                [
-                                                                                    "s",
-                                                                                    "d",
-                                                                                    "k"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                [
-                                                                                    "result"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                "result"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            [
-                                                                                "reference",
-                                                                                {},
-                                                                                [
-                                                                                    [
-                                                                                        [
-                                                                                            "morphir"
-                                                                                        ],
-                                                                                        [
-                                                                                            "s",
-                                                                                            "d",
-                                                                                            "k"
-                                                                                        ]
-                                                                                    ],
-                                                                                    [
-                                                                                        [
-                                                                                            "string"
-                                                                                        ]
-                                                                                    ],
-                                                                                    [
-                                                                                        "string"
-                                                                                    ]
-                                                                                ],
-                                                                                []
-                                                                            ],
-                                                                            [
-                                                                                "reference",
-                                                                                {},
-                                                                                [
-                                                                                    [
-                                                                                        [
-                                                                                            "morphir"
-                                                                                        ],
-                                                                                        [
-                                                                                            "s",
-                                                                                            "d",
-                                                                                            "k"
-                                                                                        ]
-                                                                                    ],
-                                                                                    [
-                                                                                        [
-                                                                                            "basics"
-                                                                                        ]
-                                                                                    ],
-                                                                                    [
-                                                                                        "int"
-                                                                                    ]
-                                                                                ],
-                                                                                []
-                                                                            ]
-                                                                        ]
-                                                                    ]
-                                                                ],
-                                                                [
-                                                                    [
-                                                                        [
-                                                                            "morphir"
-                                                                        ],
-                                                                        [
-                                                                            "s",
-                                                                            "d",
-                                                                            "k"
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        [
-                                                                            "result"
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        "ok"
-                                                                    ]
-                                                                ]
-                                                            ],
-                                                            [
-                                                                "variable",
-                                                                [
-                                                                    "reference",
-                                                                    {},
-                                                                    [
-                                                                        [
-                                                                            [
-                                                                                "morphir"
-                                                                            ],
-                                                                            [
-                                                                                "s",
-                                                                                "d",
-                                                                                "k"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            [
-                                                                                "basics"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            "int"
-                                                                        ]
-                                                                    ],
-                                                                    []
-                                                                ],
-                                                                [
-                                                                    "availability"
-                                                                ]
-                                                            ]
-                                                        ],
-                                                        [
-                                                            "apply",
-                                                            [
-                                                                "reference",
-                                                                {},
-                                                                [
-                                                                    [
-                                                                        [
-                                                                            "morphir"
-                                                                        ],
-                                                                        [
-                                                                            "s",
-                                                                            "d",
-                                                                            "k"
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        [
-                                                                            "result"
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        "result"
-                                                                    ]
-                                                                ],
-                                                                [
-                                                                    [
-                                                                        "reference",
-                                                                        {},
-                                                                        [
-                                                                            [
-                                                                                [
-                                                                                    "morphir"
-                                                                                ],
-                                                                                [
-                                                                                    "s",
-                                                                                    "d",
-                                                                                    "k"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                [
-                                                                                    "string"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                "string"
-                                                                            ]
-                                                                        ],
-                                                                        []
-                                                                    ],
-                                                                    [
-                                                                        "reference",
-                                                                        {},
-                                                                        [
-                                                                            [
-                                                                                [
-                                                                                    "morphir"
-                                                                                ],
-                                                                                [
-                                                                                    "s",
-                                                                                    "d",
-                                                                                    "k"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                [
-                                                                                    "basics"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                "int"
-                                                                            ]
-                                                                        ],
-                                                                        []
-                                                                    ]
-                                                                ]
-                                                            ],
-                                                            [
-                                                                "constructor",
-                                                                [
-                                                                    "function",
-                                                                    {},
-                                                                    [
-                                                                        "reference",
-                                                                        {},
-                                                                        [
-                                                                            [
-                                                                                [
-                                                                                    "morphir"
-                                                                                ],
-                                                                                [
-                                                                                    "s",
-                                                                                    "d",
-                                                                                    "k"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                [
-                                                                                    "string"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                "string"
-                                                                            ]
-                                                                        ],
-                                                                        []
-                                                                    ],
-                                                                    [
-                                                                        "reference",
-                                                                        {},
-                                                                        [
-                                                                            [
-                                                                                [
-                                                                                    "morphir"
-                                                                                ],
-                                                                                [
-                                                                                    "s",
-                                                                                    "d",
-                                                                                    "k"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                [
-                                                                                    "result"
-                                                                                ]
-                                                                            ],
-                                                                            [
-                                                                                "result"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            [
-                                                                                "reference",
-                                                                                {},
-                                                                                [
-                                                                                    [
-                                                                                        [
-                                                                                            "morphir"
-                                                                                        ],
-                                                                                        [
-                                                                                            "s",
-                                                                                            "d",
-                                                                                            "k"
-                                                                                        ]
-                                                                                    ],
-                                                                                    [
-                                                                                        [
-                                                                                            "string"
-                                                                                        ]
-                                                                                    ],
-                                                                                    [
-                                                                                        "string"
-                                                                                    ]
-                                                                                ],
-                                                                                []
-                                                                            ],
-                                                                            [
-                                                                                "reference",
-                                                                                {},
-                                                                                [
-                                                                                    [
-                                                                                        [
-                                                                                            "morphir"
-                                                                                        ],
-                                                                                        [
-                                                                                            "s",
-                                                                                            "d",
-                                                                                            "k"
-                                                                                        ]
-                                                                                    ],
-                                                                                    [
-                                                                                        [
-                                                                                            "basics"
-                                                                                        ]
-                                                                                    ],
-                                                                                    [
-                                                                                        "int"
-                                                                                    ]
-                                                                                ],
-                                                                                []
-                                                                            ]
-                                                                        ]
-                                                                    ]
-                                                                ],
-                                                                [
-                                                                    [
-                                                                        [
-                                                                            "morphir"
-                                                                        ],
-                                                                        [
-                                                                            "s",
-                                                                            "d",
-                                                                            "k"
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        [
-                                                                            "result"
-                                                                        ]
-                                                                    ],
-                                                                    [
-                                                                        "err"
-                                                                    ]
-                                                                ]
-                                                            ],
-                                                            [
-                                                                "literal",
-                                                                [
-                                                                    "reference",
-                                                                    {},
-                                                                    [
-                                                                        [
-                                                                            [
-                                                                                "morphir"
-                                                                            ],
-                                                                            [
-                                                                                "s",
-                                                                                "d",
-                                                                                "k"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            [
-                                                                                "string"
-                                                                            ]
-                                                                        ],
-                                                                        [
-                                                                            "string"
-                                                                        ]
-                                                                    ],
-                                                                    []
-                                                                ],
-                                                                [
-                                                                    "string_literal",
-                                                                    "Insufficient inventory"
-                                                                ]
-                                                            ]
-                                                        ]
-                                                    ]
-                                                ]
-                                            ]
-                                        }
-                                    ]
-                                ]
-                            ]
-                        }
-                    ]
-                }
-            ]
-        }
-    ]
-}
\ No newline at end of file
diff --git a/example_app_model/src/Morphir/Example/App/App.elm b/example_app_model/src/Morphir/Example/App/App.elm
new file mode 100644
index 0000000..f6dcd01
--- /dev/null
+++ b/example_app_model/src/Morphir/Example/App/App.elm
@@ -0,0 +1,84 @@
+module Morphir.Example.App.App exposing (..)
+
+
+request : State a -> Bool -> Int -> TimeUnit -> Response
+request state allowPartial requestedAmount startTime =
+    let
+        available : Int
+        available =
+            availableForRent state startTime
+    in
+    if available < requestedAmount then
+        if allowPartial then
+            Reserved (min available requestedAmount)
+
+        else
+            Rejected
+
+    else
+        Reserved requestedAmount
+
+
+availableForRent : State a -> TimeUnit -> Int
+availableForRent state byWhen =
+    let
+        inventory =
+            currentInventory state
+
+        estimatedReserved =
+            toFloat (currentlyReserved state) * state.averageNoShows |> floor
+
+        probablyReturns =
+            toFloat (scheduledReturns state byWhen) * state.averageLateReturnRatio |> floor
+    in
+    inventory - estimatedReserved + probablyReturns
+
+
+currentInventory : State a -> Int
+currentInventory state =
+    state.inventory
+        --|> List.filter (\item -> item.location == OnSite)
+        |> List.length
+
+
+currentlyReserved : State a -> Int
+currentlyReserved state =
+    state.reservations
+        |> List.length
+
+
+scheduledReturns : State a -> TimeUnit -> Int
+scheduledReturns state byWhen =
+    state.reservations
+        |> List.filter (\item -> item.endTime <= byWhen)
+        |> List.length
+
+
+type alias State a =
+    { inventory : List a
+    , reservations : List Reservation
+    , averageNoShows : Float
+    , averageLateReturnRatio : Float
+    }
+
+
+type alias Reservation =
+    { quantity : Int
+    , startTime : TimeUnit
+    , endTime : TimeUnit
+    }
+
+
+type Response
+    = Rejected
+    | Reserved Int
+
+
+type alias TimeUnit =
+    Int
+
+
+type Location
+    = OnSite
+    | PendingDelivery
+    | BackOrder
diff --git a/morphir-ir.json b/morphir-ir.json
index a9f669a..daad391 100644
--- a/morphir-ir.json
+++ b/morphir-ir.json
@@ -1,15 +1,18 @@
-[
-    "library",
-    [
+{
+    "formatVersion": 1,
+    "distribution": [
+        "library",
         [
-            "morphir"
+            [
+                "morphir"
+            ],
+            [
+                "sample"
+            ]
         ],
-        [
-            "sample"
-        ]
-    ],
-    [],
-    {
-        "modules": []
-    }
-]
\ No newline at end of file
+        [],
+        {
+            "modules": []
+        }
+    ]
+}
\ No newline at end of file
diff --git a/morphir.json b/morphir.json
index 341fdc6..76ff41a 100644
--- a/morphir.json
+++ b/morphir.json
@@ -3,8 +3,5 @@
   "sourceDirectory": "src",
   "exposedModules": [
     "BooksAndRecords"
-  , "CDM/RTS22"
-  , "CDM/RTS22Alt"
-  , "LCR/Calculations"
   ]
-}
\ No newline at end of file
+}
diff --git a/package.json b/package.json
index 531b27f..5d7a0ff 100644
--- a/package.json
+++ b/package.json
@@ -4,6 +4,6 @@
     "morphir-model"
   ],
   "devDependencies": {
-    "morphir-elm": "^2.15.0"
+    "morphir-elm": "^2.30.4"
   }
 }

From 2ac9595491bbbfd91b003b5372a2c62e9cd2827f Mon Sep 17 00:00:00 2001
From: Stephen Goldbaum 
Date: Wed, 2 Jun 2021 12:18:10 -0400
Subject: [PATCH 54/88] moved tests file to web

---
 example_app_model/{ => doc/web}/morphir-tests.json | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename example_app_model/{ => doc/web}/morphir-tests.json (100%)

diff --git a/example_app_model/morphir-tests.json b/example_app_model/doc/web/morphir-tests.json
similarity index 100%
rename from example_app_model/morphir-tests.json
rename to example_app_model/doc/web/morphir-tests.json

From ec40fbd25be629b9cf1038b203cc3d9192751cc1 Mon Sep 17 00:00:00 2001
From: Stephen Goldbaum 
Date: Thu, 3 Jun 2021 23:25:58 -0400
Subject: [PATCH 55/88] initial tutorial

---
 tutorial/business_view.png                    | Bin 0 -> 44958 bytes
 tutorial/developer_view.png                   | Bin 0 -> 76584 bytes
 .../web/assets/2020_Morphir_Logo_Icon_WHT.svg |   0
 .../getting_started}/doc/web/index.html       |   0
 .../getting_started}/doc/web/insight.html     |   0
 .../getting_started}/doc/web/insight.js       |   0
 .../getting_started}/doc/web/morphir-ir.json  |   0
 .../doc/web/morphir-tests.json                |   0
 .../getting_started}/doc/web/try-morphir.html |   0
 .../getting_started}/elm.json                 |   0
 tutorial/getting_started/model_a_request.md   |   2 +
 .../getting_started}/morphir.json             |   0
 .../src/Morphir/Example/App/App.elm           |   0
 .../src/Morphir/Example/App/Rentals.elm       |   0
 tutorial/ideal.png                            | Bin 0 -> 48087 bytes
 tutorial/install.md                           |  29 ++++++
 tutorial/lost_knowledge.png                   | Bin 0 -> 17531 bytes
 tutorial/readme.md                            |  98 ++++++++++++++++++
 tutorial/surfboard_rentals.png                | Bin 0 -> 400208 bytes
 19 files changed, 129 insertions(+)
 create mode 100644 tutorial/business_view.png
 create mode 100644 tutorial/developer_view.png
 rename {example_app_model => tutorial/getting_started}/doc/web/assets/2020_Morphir_Logo_Icon_WHT.svg (100%)
 rename {example_app_model => tutorial/getting_started}/doc/web/index.html (100%)
 rename {example_app_model => tutorial/getting_started}/doc/web/insight.html (100%)
 rename {example_app_model => tutorial/getting_started}/doc/web/insight.js (100%)
 rename {example_app_model => tutorial/getting_started}/doc/web/morphir-ir.json (100%)
 rename {example_app_model => tutorial/getting_started}/doc/web/morphir-tests.json (100%)
 rename {example_app_model => tutorial/getting_started}/doc/web/try-morphir.html (100%)
 rename {example_app_model => tutorial/getting_started}/elm.json (100%)
 create mode 100644 tutorial/getting_started/model_a_request.md
 rename {example_app_model => tutorial/getting_started}/morphir.json (100%)
 rename {example_app_model => tutorial/getting_started}/src/Morphir/Example/App/App.elm (100%)
 rename {example_app_model => tutorial/getting_started}/src/Morphir/Example/App/Rentals.elm (100%)
 create mode 100644 tutorial/ideal.png
 create mode 100644 tutorial/install.md
 create mode 100644 tutorial/lost_knowledge.png
 create mode 100644 tutorial/readme.md
 create mode 100644 tutorial/surfboard_rentals.png

diff --git a/tutorial/business_view.png b/tutorial/business_view.png
new file mode 100644
index 0000000000000000000000000000000000000000..ba607493820effd31b736e7712282ffe2af2356f
GIT binary patch
literal 44958
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
WiXx*Kal+70o2sIwLZ!Ub*Z%?iz?;PY

literal 0
HcmV?d00001

diff --git a/tutorial/developer_view.png b/tutorial/developer_view.png
new file mode 100644
index 0000000000000000000000000000000000000000..4baa7ea193e302ddf7f853ec963def81db9b5a7c
GIT binary patch
literal 76584
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

literal 0
HcmV?d00001

diff --git a/example_app_model/doc/web/assets/2020_Morphir_Logo_Icon_WHT.svg b/tutorial/getting_started/doc/web/assets/2020_Morphir_Logo_Icon_WHT.svg
similarity index 100%
rename from example_app_model/doc/web/assets/2020_Morphir_Logo_Icon_WHT.svg
rename to tutorial/getting_started/doc/web/assets/2020_Morphir_Logo_Icon_WHT.svg
diff --git a/example_app_model/doc/web/index.html b/tutorial/getting_started/doc/web/index.html
similarity index 100%
rename from example_app_model/doc/web/index.html
rename to tutorial/getting_started/doc/web/index.html
diff --git a/example_app_model/doc/web/insight.html b/tutorial/getting_started/doc/web/insight.html
similarity index 100%
rename from example_app_model/doc/web/insight.html
rename to tutorial/getting_started/doc/web/insight.html
diff --git a/example_app_model/doc/web/insight.js b/tutorial/getting_started/doc/web/insight.js
similarity index 100%
rename from example_app_model/doc/web/insight.js
rename to tutorial/getting_started/doc/web/insight.js
diff --git a/example_app_model/doc/web/morphir-ir.json b/tutorial/getting_started/doc/web/morphir-ir.json
similarity index 100%
rename from example_app_model/doc/web/morphir-ir.json
rename to tutorial/getting_started/doc/web/morphir-ir.json
diff --git a/example_app_model/doc/web/morphir-tests.json b/tutorial/getting_started/doc/web/morphir-tests.json
similarity index 100%
rename from example_app_model/doc/web/morphir-tests.json
rename to tutorial/getting_started/doc/web/morphir-tests.json
diff --git a/example_app_model/doc/web/try-morphir.html b/tutorial/getting_started/doc/web/try-morphir.html
similarity index 100%
rename from example_app_model/doc/web/try-morphir.html
rename to tutorial/getting_started/doc/web/try-morphir.html
diff --git a/example_app_model/elm.json b/tutorial/getting_started/elm.json
similarity index 100%
rename from example_app_model/elm.json
rename to tutorial/getting_started/elm.json
diff --git a/tutorial/getting_started/model_a_request.md b/tutorial/getting_started/model_a_request.md
new file mode 100644
index 0000000..fd4f40b
--- /dev/null
+++ b/tutorial/getting_started/model_a_request.md
@@ -0,0 +1,2 @@
+# Morphir Tutorial: Modelling Business Logic
+
diff --git a/example_app_model/morphir.json b/tutorial/getting_started/morphir.json
similarity index 100%
rename from example_app_model/morphir.json
rename to tutorial/getting_started/morphir.json
diff --git a/example_app_model/src/Morphir/Example/App/App.elm b/tutorial/getting_started/src/Morphir/Example/App/App.elm
similarity index 100%
rename from example_app_model/src/Morphir/Example/App/App.elm
rename to tutorial/getting_started/src/Morphir/Example/App/App.elm
diff --git a/example_app_model/src/Morphir/Example/App/Rentals.elm b/tutorial/getting_started/src/Morphir/Example/App/Rentals.elm
similarity index 100%
rename from example_app_model/src/Morphir/Example/App/Rentals.elm
rename to tutorial/getting_started/src/Morphir/Example/App/Rentals.elm
diff --git a/tutorial/ideal.png b/tutorial/ideal.png
new file mode 100644
index 0000000000000000000000000000000000000000..658241f7e981a502739284a4f5a6c659d1d9ed93
GIT binary patch
literal 48087
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æ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

+ + + availability + = + inventory + + + returns + - + reservations + + +
+
+where: +
+

+ + + inventory + = + items in the store + +
+ + returns + = + + + ( scheduled returns ) + * + late return ratio + + + +
+ + reserved + = + + + ( current reservations ) + * + no show ratio + + + + +

+

+ +## Developer View +This specification gets handed to developers, who immediately start thinking of how to split it up to run most efficiently on the various technologies. They might view it as: + + + + + +## Lost Knowledge +The problem comes when the business specifications get stale or lost over time. What's left is this: + + +That's a major problem for a large application. It leads to legacy debt, higher risk, and slower delivery. + +## Optimum Efficiency +We want to get back to a continuous state of: + + + + +So with that out of the way, let's dive in... +* [Install Morphir with a new project](install) +* [Model a request](model_a_request) + + +[Next](install) + diff --git a/tutorial/surfboard_rentals.png b/tutorial/surfboard_rentals.png new file mode 100644 index 0000000000000000000000000000000000000000..f3c7d472f97809552dbccacc3fefd08f00c5d455 GIT binary patch literal 400208 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

Z7^!n}D4vZ|RibriG=_0Q1J$rC84=!_gsU~)1G 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%0A1@m2E6cm$L8 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 VLYB|))qfgSSJhG}Q+^Tp{{ifuI+g$c literal 0 HcmV?d00001 From 7d164826b147c73a70922cb6d45c09ffa6f5738d Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Fri, 4 Jun 2021 11:07:23 -0400 Subject: [PATCH 56/88] tutorial first logic eample --- .../web/assets/2020_Morphir_Logo_Icon_WHT.svg | 22 - tutorial/getting_started/doc/web/index.html | 30838 ------------ tutorial/getting_started/doc/web/insight.html | 41 - tutorial/getting_started/doc/web/insight.js | 24406 ---------- .../getting_started/doc/web/morphir-ir.json | 2596 - .../doc/web/morphir-tests.json | 2 - .../getting_started/doc/web/try-morphir.html | 39981 ---------------- tutorial/getting_started/model_a_request.md | 2 - .../src/Morphir/Example/App/App.elm | 84 - .../src/Morphir/Example/App/Rentals.elm | 19 - tutorial/install.md | 2 +- tutorial/readme.md | 18 +- .../step_1_first_logic/developer_page_1.png | Bin 0 -> 78456 bytes .../step_1_first_logic/developer_page_2.png | Bin 0 -> 75244 bytes .../step_1_first_logic/developer_page_3.png | Bin 0 -> 75787 bytes .../elm.json | 0 tutorial/step_1_first_logic/morphir-ir.json | 1050 + .../morphir.json | 0 tutorial/step_1_first_logic/readme.md | 41 + .../src/Morphir/Example/App/Rentals.elm | 11 + 20 files changed, 1115 insertions(+), 97998 deletions(-) delete mode 100644 tutorial/getting_started/doc/web/assets/2020_Morphir_Logo_Icon_WHT.svg delete mode 100644 tutorial/getting_started/doc/web/index.html delete mode 100644 tutorial/getting_started/doc/web/insight.html delete mode 100644 tutorial/getting_started/doc/web/insight.js delete mode 100644 tutorial/getting_started/doc/web/morphir-ir.json delete mode 100644 tutorial/getting_started/doc/web/morphir-tests.json delete mode 100644 tutorial/getting_started/doc/web/try-morphir.html delete mode 100644 tutorial/getting_started/model_a_request.md delete mode 100644 tutorial/getting_started/src/Morphir/Example/App/App.elm delete mode 100644 tutorial/getting_started/src/Morphir/Example/App/Rentals.elm create mode 100644 tutorial/step_1_first_logic/developer_page_1.png create mode 100644 tutorial/step_1_first_logic/developer_page_2.png create mode 100644 tutorial/step_1_first_logic/developer_page_3.png rename tutorial/{getting_started => step_1_first_logic}/elm.json (100%) create mode 100644 tutorial/step_1_first_logic/morphir-ir.json rename tutorial/{getting_started => step_1_first_logic}/morphir.json (100%) create mode 100644 tutorial/step_1_first_logic/readme.md create mode 100644 tutorial/step_1_first_logic/src/Morphir/Example/App/Rentals.elm diff --git a/tutorial/getting_started/doc/web/assets/2020_Morphir_Logo_Icon_WHT.svg b/tutorial/getting_started/doc/web/assets/2020_Morphir_Logo_Icon_WHT.svg deleted file mode 100644 index 3a4ab96..0000000 --- a/tutorial/getting_started/doc/web/assets/2020_Morphir_Logo_Icon_WHT.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - diff --git a/tutorial/getting_started/doc/web/index.html b/tutorial/getting_started/doc/web/index.html deleted file mode 100644 index a9d720a..0000000 --- a/tutorial/getting_started/doc/web/index.html +++ /dev/null @@ -1,30838 +0,0 @@ - - - - - Morphir.Web.DevelopApp - - - - - -


-
-
-
-
-
diff --git a/tutorial/getting_started/doc/web/insight.html b/tutorial/getting_started/doc/web/insight.html
deleted file mode 100644
index b3f0d26..0000000
--- a/tutorial/getting_started/doc/web/insight.html
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-    
-    Morphir UI
-    
-
-
-    
- - - \ No newline at end of file diff --git a/tutorial/getting_started/doc/web/insight.js b/tutorial/getting_started/doc/web/insight.js deleted file mode 100644 index 4baa6de..0000000 --- a/tutorial/getting_started/doc/web/insight.js +++ /dev/null @@ -1,24406 +0,0 @@ -(function(scope){ -'use strict'; - -function F(arity, fun, wrapper) { - wrapper.a = arity; - wrapper.f = fun; - return wrapper; -} - -function F2(fun) { - return F(2, fun, function(a) { return function(b) { return fun(a,b); }; }) -} -function F3(fun) { - return F(3, fun, function(a) { - return function(b) { return function(c) { return fun(a, b, c); }; }; - }); -} -function F4(fun) { - return F(4, fun, function(a) { return function(b) { return function(c) { - return function(d) { return fun(a, b, c, d); }; }; }; - }); -} -function F5(fun) { - return F(5, fun, function(a) { return function(b) { return function(c) { - return function(d) { return function(e) { return fun(a, b, c, d, e); }; }; }; }; - }); -} -function F6(fun) { - return F(6, fun, function(a) { return function(b) { return function(c) { - return function(d) { return function(e) { return function(f) { - return fun(a, b, c, d, e, f); }; }; }; }; }; - }); -} -function F7(fun) { - return F(7, fun, function(a) { return function(b) { return function(c) { - return function(d) { return function(e) { return function(f) { - return function(g) { return fun(a, b, c, d, e, f, g); }; }; }; }; }; }; - }); -} -function F8(fun) { - return F(8, fun, function(a) { return function(b) { return function(c) { - return function(d) { return function(e) { return function(f) { - return function(g) { return function(h) { - return fun(a, b, c, d, e, f, g, h); }; }; }; }; }; }; }; - }); -} -function F9(fun) { - return F(9, fun, function(a) { return function(b) { return function(c) { - return function(d) { return function(e) { return function(f) { - return function(g) { return function(h) { return function(i) { - return fun(a, b, c, d, e, f, g, h, i); }; }; }; }; }; }; }; }; - }); -} - -function A2(fun, a, b) { - return fun.a === 2 ? fun.f(a, b) : fun(a)(b); -} -function A3(fun, a, b, c) { - return fun.a === 3 ? fun.f(a, b, c) : fun(a)(b)(c); -} -function A4(fun, a, b, c, d) { - return fun.a === 4 ? fun.f(a, b, c, d) : fun(a)(b)(c)(d); -} -function A5(fun, a, b, c, d, e) { - return fun.a === 5 ? fun.f(a, b, c, d, e) : fun(a)(b)(c)(d)(e); -} -function A6(fun, a, b, c, d, e, f) { - return fun.a === 6 ? fun.f(a, b, c, d, e, f) : fun(a)(b)(c)(d)(e)(f); -} -function A7(fun, a, b, c, d, e, f, g) { - return fun.a === 7 ? fun.f(a, b, c, d, e, f, g) : fun(a)(b)(c)(d)(e)(f)(g); -} -function A8(fun, a, b, c, d, e, f, g, h) { - return fun.a === 8 ? fun.f(a, b, c, d, e, f, g, h) : fun(a)(b)(c)(d)(e)(f)(g)(h); -} -function A9(fun, a, b, c, d, e, f, g, h, i) { - return fun.a === 9 ? fun.f(a, b, c, d, e, f, g, h, i) : fun(a)(b)(c)(d)(e)(f)(g)(h)(i); -} - -console.warn('Compiled in DEV mode. Follow the advice at https://elm-lang.org/0.19.1/optimize for better performance and smaller assets.'); - - -// EQUALITY - -function _Utils_eq(x, y) -{ - for ( - var pair, stack = [], isEqual = _Utils_eqHelp(x, y, 0, stack); - isEqual && (pair = stack.pop()); - isEqual = _Utils_eqHelp(pair.a, pair.b, 0, stack) - ) - {} - - return isEqual; -} - -function _Utils_eqHelp(x, y, depth, stack) -{ - if (x === y) - { - return true; - } - - if (typeof x !== 'object' || x === null || y === null) - { - typeof x === 'function' && _Debug_crash(5); - return false; - } - - if (depth > 100) - { - stack.push(_Utils_Tuple2(x,y)); - return true; - } - - /**/ - if (x.$ === 'Set_elm_builtin') - { - x = $elm$core$Set$toList(x); - y = $elm$core$Set$toList(y); - } - if (x.$ === 'RBNode_elm_builtin' || x.$ === 'RBEmpty_elm_builtin') - { - x = $elm$core$Dict$toList(x); - y = $elm$core$Dict$toList(y); - } - //*/ - - /**_UNUSED/ - if (x.$ < 0) - { - x = $elm$core$Dict$toList(x); - y = $elm$core$Dict$toList(y); - } - //*/ - - for (var key in x) - { - if (!_Utils_eqHelp(x[key], y[key], depth + 1, stack)) - { - return false; - } - } - return true; -} - -var _Utils_equal = F2(_Utils_eq); -var _Utils_notEqual = F2(function(a, b) { return !_Utils_eq(a,b); }); - - - -// COMPARISONS - -// Code in Generate/JavaScript.hs, Basics.js, and List.js depends on -// the particular integer values assigned to LT, EQ, and GT. - -function _Utils_cmp(x, y, ord) -{ - if (typeof x !== 'object') - { - return x === y ? /*EQ*/ 0 : x < y ? /*LT*/ -1 : /*GT*/ 1; - } - - /**/ - if (x instanceof String) - { - var a = x.valueOf(); - var b = y.valueOf(); - return a === b ? 0 : a < b ? -1 : 1; - } - //*/ - - /**_UNUSED/ - if (typeof x.$ === 'undefined') - //*/ - /**/ - if (x.$[0] === '#') - //*/ - { - return (ord = _Utils_cmp(x.a, y.a)) - ? ord - : (ord = _Utils_cmp(x.b, y.b)) - ? ord - : _Utils_cmp(x.c, y.c); - } - - // traverse conses until end of a list or a mismatch - for (; x.b && y.b && !(ord = _Utils_cmp(x.a, y.a)); x = x.b, y = y.b) {} // WHILE_CONSES - return ord || (x.b ? /*GT*/ 1 : y.b ? /*LT*/ -1 : /*EQ*/ 0); -} - -var _Utils_lt = F2(function(a, b) { return _Utils_cmp(a, b) < 0; }); -var _Utils_le = F2(function(a, b) { return _Utils_cmp(a, b) < 1; }); -var _Utils_gt = F2(function(a, b) { return _Utils_cmp(a, b) > 0; }); -var _Utils_ge = F2(function(a, b) { return _Utils_cmp(a, b) >= 0; }); - -var _Utils_compare = F2(function(x, y) -{ - var n = _Utils_cmp(x, y); - return n < 0 ? $elm$core$Basics$LT : n ? $elm$core$Basics$GT : $elm$core$Basics$EQ; -}); - - -// COMMON VALUES - -var _Utils_Tuple0_UNUSED = 0; -var _Utils_Tuple0 = { $: '#0' }; - -function _Utils_Tuple2_UNUSED(a, b) { return { a: a, b: b }; } -function _Utils_Tuple2(a, b) { return { $: '#2', a: a, b: b }; } - -function _Utils_Tuple3_UNUSED(a, b, c) { return { a: a, b: b, c: c }; } -function _Utils_Tuple3(a, b, c) { return { $: '#3', a: a, b: b, c: c }; } - -function _Utils_chr_UNUSED(c) { return c; } -function _Utils_chr(c) { return new String(c); } - - -// RECORDS - -function _Utils_update(oldRecord, updatedFields) -{ - var newRecord = {}; - - for (var key in oldRecord) - { - newRecord[key] = oldRecord[key]; - } - - for (var key in updatedFields) - { - newRecord[key] = updatedFields[key]; - } - - return newRecord; -} - - -// APPEND - -var _Utils_append = F2(_Utils_ap); - -function _Utils_ap(xs, ys) -{ - // append Strings - if (typeof xs === 'string') - { - return xs + ys; - } - - // append Lists - if (!xs.b) - { - return ys; - } - var root = _List_Cons(xs.a, ys); - xs = xs.b - for (var curr = root; xs.b; xs = xs.b) // WHILE_CONS - { - curr = curr.b = _List_Cons(xs.a, ys); - } - return root; -} - - - -var _List_Nil_UNUSED = { $: 0 }; -var _List_Nil = { $: '[]' }; - -function _List_Cons_UNUSED(hd, tl) { return { $: 1, a: hd, b: tl }; } -function _List_Cons(hd, tl) { return { $: '::', a: hd, b: tl }; } - - -var _List_cons = F2(_List_Cons); - -function _List_fromArray(arr) -{ - var out = _List_Nil; - for (var i = arr.length; i--; ) - { - out = _List_Cons(arr[i], out); - } - return out; -} - -function _List_toArray(xs) -{ - for (var out = []; xs.b; xs = xs.b) // WHILE_CONS - { - out.push(xs.a); - } - return out; -} - -var _List_map2 = F3(function(f, xs, ys) -{ - for (var arr = []; xs.b && ys.b; xs = xs.b, ys = ys.b) // WHILE_CONSES - { - arr.push(A2(f, xs.a, ys.a)); - } - return _List_fromArray(arr); -}); - -var _List_map3 = F4(function(f, xs, ys, zs) -{ - for (var arr = []; xs.b && ys.b && zs.b; xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES - { - arr.push(A3(f, xs.a, ys.a, zs.a)); - } - return _List_fromArray(arr); -}); - -var _List_map4 = F5(function(f, ws, xs, ys, zs) -{ - for (var arr = []; ws.b && xs.b && ys.b && zs.b; ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES - { - arr.push(A4(f, ws.a, xs.a, ys.a, zs.a)); - } - return _List_fromArray(arr); -}); - -var _List_map5 = F6(function(f, vs, ws, xs, ys, zs) -{ - for (var arr = []; vs.b && ws.b && xs.b && ys.b && zs.b; vs = vs.b, ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES - { - arr.push(A5(f, vs.a, ws.a, xs.a, ys.a, zs.a)); - } - return _List_fromArray(arr); -}); - -var _List_sortBy = F2(function(f, xs) -{ - return _List_fromArray(_List_toArray(xs).sort(function(a, b) { - return _Utils_cmp(f(a), f(b)); - })); -}); - -var _List_sortWith = F2(function(f, xs) -{ - return _List_fromArray(_List_toArray(xs).sort(function(a, b) { - var ord = A2(f, a, b); - return ord === $elm$core$Basics$EQ ? 0 : ord === $elm$core$Basics$LT ? -1 : 1; - })); -}); - - - -var _JsArray_empty = []; - -function _JsArray_singleton(value) -{ - return [value]; -} - -function _JsArray_length(array) -{ - return array.length; -} - -var _JsArray_initialize = F3(function(size, offset, func) -{ - var result = new Array(size); - - for (var i = 0; i < size; i++) - { - result[i] = func(offset + i); - } - - return result; -}); - -var _JsArray_initializeFromList = F2(function (max, ls) -{ - var result = new Array(max); - - for (var i = 0; i < max && ls.b; i++) - { - result[i] = ls.a; - ls = ls.b; - } - - result.length = i; - return _Utils_Tuple2(result, ls); -}); - -var _JsArray_unsafeGet = F2(function(index, array) -{ - return array[index]; -}); - -var _JsArray_unsafeSet = F3(function(index, value, array) -{ - var length = array.length; - var result = new Array(length); - - for (var i = 0; i < length; i++) - { - result[i] = array[i]; - } - - result[index] = value; - return result; -}); - -var _JsArray_push = F2(function(value, array) -{ - var length = array.length; - var result = new Array(length + 1); - - for (var i = 0; i < length; i++) - { - result[i] = array[i]; - } - - result[length] = value; - return result; -}); - -var _JsArray_foldl = F3(function(func, acc, array) -{ - var length = array.length; - - for (var i = 0; i < length; i++) - { - acc = A2(func, array[i], acc); - } - - return acc; -}); - -var _JsArray_foldr = F3(function(func, acc, array) -{ - for (var i = array.length - 1; i >= 0; i--) - { - acc = A2(func, array[i], acc); - } - - return acc; -}); - -var _JsArray_map = F2(function(func, array) -{ - var length = array.length; - var result = new Array(length); - - for (var i = 0; i < length; i++) - { - result[i] = func(array[i]); - } - - return result; -}); - -var _JsArray_indexedMap = F3(function(func, offset, array) -{ - var length = array.length; - var result = new Array(length); - - for (var i = 0; i < length; i++) - { - result[i] = A2(func, offset + i, array[i]); - } - - return result; -}); - -var _JsArray_slice = F3(function(from, to, array) -{ - return array.slice(from, to); -}); - -var _JsArray_appendN = F3(function(n, dest, source) -{ - var destLen = dest.length; - var itemsToCopy = n - destLen; - - if (itemsToCopy > source.length) - { - itemsToCopy = source.length; - } - - var size = destLen + itemsToCopy; - var result = new Array(size); - - for (var i = 0; i < destLen; i++) - { - result[i] = dest[i]; - } - - for (var i = 0; i < itemsToCopy; i++) - { - result[i + destLen] = source[i]; - } - - return result; -}); - - - -// LOG - -var _Debug_log_UNUSED = F2(function(tag, value) -{ - return value; -}); - -var _Debug_log = F2(function(tag, value) -{ - console.log(tag + ': ' + _Debug_toString(value)); - return value; -}); - - -// TODOS - -function _Debug_todo(moduleName, region) -{ - return function(message) { - _Debug_crash(8, moduleName, region, message); - }; -} - -function _Debug_todoCase(moduleName, region, value) -{ - return function(message) { - _Debug_crash(9, moduleName, region, value, message); - }; -} - - -// TO STRING - -function _Debug_toString_UNUSED(value) -{ - return ''; -} - -function _Debug_toString(value) -{ - return _Debug_toAnsiString(false, value); -} - -function _Debug_toAnsiString(ansi, value) -{ - if (typeof value === 'function') - { - return _Debug_internalColor(ansi, ''); - } - - if (typeof value === 'boolean') - { - return _Debug_ctorColor(ansi, value ? 'True' : 'False'); - } - - if (typeof value === 'number') - { - return _Debug_numberColor(ansi, value + ''); - } - - if (value instanceof String) - { - return _Debug_charColor(ansi, "'" + _Debug_addSlashes(value, true) + "'"); - } - - if (typeof value === 'string') - { - return _Debug_stringColor(ansi, '"' + _Debug_addSlashes(value, false) + '"'); - } - - if (typeof value === 'object' && '$' in value) - { - var tag = value.$; - - if (typeof tag === 'number') - { - return _Debug_internalColor(ansi, ''); - } - - if (tag[0] === '#') - { - var output = []; - for (var k in value) - { - if (k === '$') continue; - output.push(_Debug_toAnsiString(ansi, value[k])); - } - return '(' + output.join(',') + ')'; - } - - if (tag === 'Set_elm_builtin') - { - return _Debug_ctorColor(ansi, 'Set') - + _Debug_fadeColor(ansi, '.fromList') + ' ' - + _Debug_toAnsiString(ansi, $elm$core$Set$toList(value)); - } - - if (tag === 'RBNode_elm_builtin' || tag === 'RBEmpty_elm_builtin') - { - return _Debug_ctorColor(ansi, 'Dict') - + _Debug_fadeColor(ansi, '.fromList') + ' ' - + _Debug_toAnsiString(ansi, $elm$core$Dict$toList(value)); - } - - if (tag === 'Array_elm_builtin') - { - return _Debug_ctorColor(ansi, 'Array') - + _Debug_fadeColor(ansi, '.fromList') + ' ' - + _Debug_toAnsiString(ansi, $elm$core$Array$toList(value)); - } - - if (tag === '::' || tag === '[]') - { - var output = '['; - - value.b && (output += _Debug_toAnsiString(ansi, value.a), value = value.b) - - for (; value.b; value = value.b) // WHILE_CONS - { - output += ',' + _Debug_toAnsiString(ansi, value.a); - } - return output + ']'; - } - - var output = ''; - for (var i in value) - { - if (i === '$') continue; - var str = _Debug_toAnsiString(ansi, value[i]); - var c0 = str[0]; - var parenless = c0 === '{' || c0 === '(' || c0 === '[' || c0 === '<' || c0 === '"' || str.indexOf(' ') < 0; - output += ' ' + (parenless ? str : '(' + str + ')'); - } - return _Debug_ctorColor(ansi, tag) + output; - } - - if (typeof DataView === 'function' && value instanceof DataView) - { - return _Debug_stringColor(ansi, '<' + value.byteLength + ' bytes>'); - } - - if (typeof File !== 'undefined' && value instanceof File) - { - return _Debug_internalColor(ansi, '<' + value.name + '>'); - } - - if (typeof value === 'object') - { - var output = []; - for (var key in value) - { - var field = key[0] === '_' ? key.slice(1) : key; - output.push(_Debug_fadeColor(ansi, field) + ' = ' + _Debug_toAnsiString(ansi, value[key])); - } - if (output.length === 0) - { - return '{}'; - } - return '{ ' + output.join(', ') + ' }'; - } - - return _Debug_internalColor(ansi, ''); -} - -function _Debug_addSlashes(str, isChar) -{ - var s = str - .replace(/\\/g, '\\\\') - .replace(/\n/g, '\\n') - .replace(/\t/g, '\\t') - .replace(/\r/g, '\\r') - .replace(/\v/g, '\\v') - .replace(/\0/g, '\\0'); - - if (isChar) - { - return s.replace(/\'/g, '\\\''); - } - else - { - return s.replace(/\"/g, '\\"'); - } -} - -function _Debug_ctorColor(ansi, string) -{ - return ansi ? '\x1b[96m' + string + '\x1b[0m' : string; -} - -function _Debug_numberColor(ansi, string) -{ - return ansi ? '\x1b[95m' + string + '\x1b[0m' : string; -} - -function _Debug_stringColor(ansi, string) -{ - return ansi ? '\x1b[93m' + string + '\x1b[0m' : string; -} - -function _Debug_charColor(ansi, string) -{ - return ansi ? '\x1b[92m' + string + '\x1b[0m' : string; -} - -function _Debug_fadeColor(ansi, string) -{ - return ansi ? '\x1b[37m' + string + '\x1b[0m' : string; -} - -function _Debug_internalColor(ansi, string) -{ - return ansi ? '\x1b[36m' + string + '\x1b[0m' : string; -} - -function _Debug_toHexDigit(n) -{ - return String.fromCharCode(n < 10 ? 48 + n : 55 + n); -} - - -// CRASH - - -function _Debug_crash_UNUSED(identifier) -{ - throw new Error('https://github.com/elm/core/blob/1.0.0/hints/' + identifier + '.md'); -} - - -function _Debug_crash(identifier, fact1, fact2, fact3, fact4) -{ - switch(identifier) - { - case 0: - throw new Error('What node should I take over? In JavaScript I need something like:\n\n Elm.Main.init({\n node: document.getElementById("elm-node")\n })\n\nYou need to do this with any Browser.sandbox or Browser.element program.'); - - case 1: - throw new Error('Browser.application programs cannot handle URLs like this:\n\n ' + document.location.href + '\n\nWhat is the root? The root of your file system? Try looking at this program with `elm reactor` or some other server.'); - - case 2: - var jsonErrorString = fact1; - throw new Error('Problem with the flags given to your Elm program on initialization.\n\n' + jsonErrorString); - - case 3: - var portName = fact1; - throw new Error('There can only be one port named `' + portName + '`, but your program has multiple.'); - - case 4: - var portName = fact1; - var problem = fact2; - throw new Error('Trying to send an unexpected type of value through port `' + portName + '`:\n' + problem); - - case 5: - throw new Error('Trying to use `(==)` on functions.\nThere is no way to know if functions are "the same" in the Elm sense.\nRead more about this at https://package.elm-lang.org/packages/elm/core/latest/Basics#== which describes why it is this way and what the better version will look like.'); - - case 6: - var moduleName = fact1; - throw new Error('Your page is loading multiple Elm scripts with a module named ' + moduleName + '. Maybe a duplicate script is getting loaded accidentally? If not, rename one of them so I know which is which!'); - - case 8: - var moduleName = fact1; - var region = fact2; - var message = fact3; - throw new Error('TODO in module `' + moduleName + '` ' + _Debug_regionToString(region) + '\n\n' + message); - - case 9: - var moduleName = fact1; - var region = fact2; - var value = fact3; - var message = fact4; - throw new Error( - 'TODO in module `' + moduleName + '` from the `case` expression ' - + _Debug_regionToString(region) + '\n\nIt received the following value:\n\n ' - + _Debug_toString(value).replace('\n', '\n ') - + '\n\nBut the branch that handles it says:\n\n ' + message.replace('\n', '\n ') - ); - - case 10: - throw new Error('Bug in https://github.com/elm/virtual-dom/issues'); - - case 11: - throw new Error('Cannot perform mod 0. Division by zero error.'); - } -} - -function _Debug_regionToString(region) -{ - if (region.start.line === region.end.line) - { - return 'on line ' + region.start.line; - } - return 'on lines ' + region.start.line + ' through ' + region.end.line; -} - - - -// MATH - -var _Basics_add = F2(function(a, b) { return a + b; }); -var _Basics_sub = F2(function(a, b) { return a - b; }); -var _Basics_mul = F2(function(a, b) { return a * b; }); -var _Basics_fdiv = F2(function(a, b) { return a / b; }); -var _Basics_idiv = F2(function(a, b) { return (a / b) | 0; }); -var _Basics_pow = F2(Math.pow); - -var _Basics_remainderBy = F2(function(b, a) { return a % b; }); - -// https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/divmodnote-letter.pdf -var _Basics_modBy = F2(function(modulus, x) -{ - var answer = x % modulus; - return modulus === 0 - ? _Debug_crash(11) - : - ((answer > 0 && modulus < 0) || (answer < 0 && modulus > 0)) - ? answer + modulus - : answer; -}); - - -// TRIGONOMETRY - -var _Basics_pi = Math.PI; -var _Basics_e = Math.E; -var _Basics_cos = Math.cos; -var _Basics_sin = Math.sin; -var _Basics_tan = Math.tan; -var _Basics_acos = Math.acos; -var _Basics_asin = Math.asin; -var _Basics_atan = Math.atan; -var _Basics_atan2 = F2(Math.atan2); - - -// MORE MATH - -function _Basics_toFloat(x) { return x; } -function _Basics_truncate(n) { return n | 0; } -function _Basics_isInfinite(n) { return n === Infinity || n === -Infinity; } - -var _Basics_ceiling = Math.ceil; -var _Basics_floor = Math.floor; -var _Basics_round = Math.round; -var _Basics_sqrt = Math.sqrt; -var _Basics_log = Math.log; -var _Basics_isNaN = isNaN; - - -// BOOLEANS - -function _Basics_not(bool) { return !bool; } -var _Basics_and = F2(function(a, b) { return a && b; }); -var _Basics_or = F2(function(a, b) { return a || b; }); -var _Basics_xor = F2(function(a, b) { return a !== b; }); - - - -var _String_cons = F2(function(chr, str) -{ - return chr + str; -}); - -function _String_uncons(string) -{ - var word = string.charCodeAt(0); - return !isNaN(word) - ? $elm$core$Maybe$Just( - 0xD800 <= word && word <= 0xDBFF - ? _Utils_Tuple2(_Utils_chr(string[0] + string[1]), string.slice(2)) - : _Utils_Tuple2(_Utils_chr(string[0]), string.slice(1)) - ) - : $elm$core$Maybe$Nothing; -} - -var _String_append = F2(function(a, b) -{ - return a + b; -}); - -function _String_length(str) -{ - return str.length; -} - -var _String_map = F2(function(func, string) -{ - var len = string.length; - var array = new Array(len); - var i = 0; - while (i < len) - { - var word = string.charCodeAt(i); - if (0xD800 <= word && word <= 0xDBFF) - { - array[i] = func(_Utils_chr(string[i] + string[i+1])); - i += 2; - continue; - } - array[i] = func(_Utils_chr(string[i])); - i++; - } - return array.join(''); -}); - -var _String_filter = F2(function(isGood, str) -{ - var arr = []; - var len = str.length; - var i = 0; - while (i < len) - { - var char = str[i]; - var word = str.charCodeAt(i); - i++; - if (0xD800 <= word && word <= 0xDBFF) - { - char += str[i]; - i++; - } - - if (isGood(_Utils_chr(char))) - { - arr.push(char); - } - } - return arr.join(''); -}); - -function _String_reverse(str) -{ - var len = str.length; - var arr = new Array(len); - var i = 0; - while (i < len) - { - var word = str.charCodeAt(i); - if (0xD800 <= word && word <= 0xDBFF) - { - arr[len - i] = str[i + 1]; - i++; - arr[len - i] = str[i - 1]; - i++; - } - else - { - arr[len - i] = str[i]; - i++; - } - } - return arr.join(''); -} - -var _String_foldl = F3(function(func, state, string) -{ - var len = string.length; - var i = 0; - while (i < len) - { - var char = string[i]; - var word = string.charCodeAt(i); - i++; - if (0xD800 <= word && word <= 0xDBFF) - { - char += string[i]; - i++; - } - state = A2(func, _Utils_chr(char), state); - } - return state; -}); - -var _String_foldr = F3(function(func, state, string) -{ - var i = string.length; - while (i--) - { - var char = string[i]; - var word = string.charCodeAt(i); - if (0xDC00 <= word && word <= 0xDFFF) - { - i--; - char = string[i] + char; - } - state = A2(func, _Utils_chr(char), state); - } - return state; -}); - -var _String_split = F2(function(sep, str) -{ - return str.split(sep); -}); - -var _String_join = F2(function(sep, strs) -{ - return strs.join(sep); -}); - -var _String_slice = F3(function(start, end, str) { - return str.slice(start, end); -}); - -function _String_trim(str) -{ - return str.trim(); -} - -function _String_trimLeft(str) -{ - return str.replace(/^\s+/, ''); -} - -function _String_trimRight(str) -{ - return str.replace(/\s+$/, ''); -} - -function _String_words(str) -{ - return _List_fromArray(str.trim().split(/\s+/g)); -} - -function _String_lines(str) -{ - return _List_fromArray(str.split(/\r\n|\r|\n/g)); -} - -function _String_toUpper(str) -{ - return str.toUpperCase(); -} - -function _String_toLower(str) -{ - return str.toLowerCase(); -} - -var _String_any = F2(function(isGood, string) -{ - var i = string.length; - while (i--) - { - var char = string[i]; - var word = string.charCodeAt(i); - if (0xDC00 <= word && word <= 0xDFFF) - { - i--; - char = string[i] + char; - } - if (isGood(_Utils_chr(char))) - { - return true; - } - } - return false; -}); - -var _String_all = F2(function(isGood, string) -{ - var i = string.length; - while (i--) - { - var char = string[i]; - var word = string.charCodeAt(i); - if (0xDC00 <= word && word <= 0xDFFF) - { - i--; - char = string[i] + char; - } - if (!isGood(_Utils_chr(char))) - { - return false; - } - } - return true; -}); - -var _String_contains = F2(function(sub, str) -{ - return str.indexOf(sub) > -1; -}); - -var _String_startsWith = F2(function(sub, str) -{ - return str.indexOf(sub) === 0; -}); - -var _String_endsWith = F2(function(sub, str) -{ - return str.length >= sub.length && - str.lastIndexOf(sub) === str.length - sub.length; -}); - -var _String_indexes = F2(function(sub, str) -{ - var subLen = sub.length; - - if (subLen < 1) - { - return _List_Nil; - } - - var i = 0; - var is = []; - - while ((i = str.indexOf(sub, i)) > -1) - { - is.push(i); - i = i + subLen; - } - - return _List_fromArray(is); -}); - - -// TO STRING - -function _String_fromNumber(number) -{ - return number + ''; -} - - -// INT CONVERSIONS - -function _String_toInt(str) -{ - var total = 0; - var code0 = str.charCodeAt(0); - var start = code0 == 0x2B /* + */ || code0 == 0x2D /* - */ ? 1 : 0; - - for (var i = start; i < str.length; ++i) - { - var code = str.charCodeAt(i); - if (code < 0x30 || 0x39 < code) - { - return $elm$core$Maybe$Nothing; - } - total = 10 * total + code - 0x30; - } - - return i == start - ? $elm$core$Maybe$Nothing - : $elm$core$Maybe$Just(code0 == 0x2D ? -total : total); -} - - -// FLOAT CONVERSIONS - -function _String_toFloat(s) -{ - // check if it is a hex, octal, or binary number - if (s.length === 0 || /[\sxbo]/.test(s)) - { - return $elm$core$Maybe$Nothing; - } - var n = +s; - // faster isNaN check - return n === n ? $elm$core$Maybe$Just(n) : $elm$core$Maybe$Nothing; -} - -function _String_fromList(chars) -{ - return _List_toArray(chars).join(''); -} - - - - -function _Char_toCode(char) -{ - var code = char.charCodeAt(0); - if (0xD800 <= code && code <= 0xDBFF) - { - return (code - 0xD800) * 0x400 + char.charCodeAt(1) - 0xDC00 + 0x10000 - } - return code; -} - -function _Char_fromCode(code) -{ - return _Utils_chr( - (code < 0 || 0x10FFFF < code) - ? '\uFFFD' - : - (code <= 0xFFFF) - ? String.fromCharCode(code) - : - (code -= 0x10000, - String.fromCharCode(Math.floor(code / 0x400) + 0xD800, code % 0x400 + 0xDC00) - ) - ); -} - -function _Char_toUpper(char) -{ - return _Utils_chr(char.toUpperCase()); -} - -function _Char_toLower(char) -{ - return _Utils_chr(char.toLowerCase()); -} - -function _Char_toLocaleUpper(char) -{ - return _Utils_chr(char.toLocaleUpperCase()); -} - -function _Char_toLocaleLower(char) -{ - return _Utils_chr(char.toLocaleLowerCase()); -} - - - -/**/ -function _Json_errorToString(error) -{ - return $elm$json$Json$Decode$errorToString(error); -} -//*/ - - -// CORE DECODERS - -function _Json_succeed(msg) -{ - return { - $: 0, - a: msg - }; -} - -function _Json_fail(msg) -{ - return { - $: 1, - a: msg - }; -} - -function _Json_decodePrim(decoder) -{ - return { $: 2, b: decoder }; -} - -var _Json_decodeInt = _Json_decodePrim(function(value) { - return (typeof value !== 'number') - ? _Json_expecting('an INT', value) - : - (-2147483647 < value && value < 2147483647 && (value | 0) === value) - ? $elm$core$Result$Ok(value) - : - (isFinite(value) && !(value % 1)) - ? $elm$core$Result$Ok(value) - : _Json_expecting('an INT', value); -}); - -var _Json_decodeBool = _Json_decodePrim(function(value) { - return (typeof value === 'boolean') - ? $elm$core$Result$Ok(value) - : _Json_expecting('a BOOL', value); -}); - -var _Json_decodeFloat = _Json_decodePrim(function(value) { - return (typeof value === 'number') - ? $elm$core$Result$Ok(value) - : _Json_expecting('a FLOAT', value); -}); - -var _Json_decodeValue = _Json_decodePrim(function(value) { - return $elm$core$Result$Ok(_Json_wrap(value)); -}); - -var _Json_decodeString = _Json_decodePrim(function(value) { - return (typeof value === 'string') - ? $elm$core$Result$Ok(value) - : (value instanceof String) - ? $elm$core$Result$Ok(value + '') - : _Json_expecting('a STRING', value); -}); - -function _Json_decodeList(decoder) { return { $: 3, b: decoder }; } -function _Json_decodeArray(decoder) { return { $: 4, b: decoder }; } - -function _Json_decodeNull(value) { return { $: 5, c: value }; } - -var _Json_decodeField = F2(function(field, decoder) -{ - return { - $: 6, - d: field, - b: decoder - }; -}); - -var _Json_decodeIndex = F2(function(index, decoder) -{ - return { - $: 7, - e: index, - b: decoder - }; -}); - -function _Json_decodeKeyValuePairs(decoder) -{ - return { - $: 8, - b: decoder - }; -} - -function _Json_mapMany(f, decoders) -{ - return { - $: 9, - f: f, - g: decoders - }; -} - -var _Json_andThen = F2(function(callback, decoder) -{ - return { - $: 10, - b: decoder, - h: callback - }; -}); - -function _Json_oneOf(decoders) -{ - return { - $: 11, - g: decoders - }; -} - - -// DECODING OBJECTS - -var _Json_map1 = F2(function(f, d1) -{ - return _Json_mapMany(f, [d1]); -}); - -var _Json_map2 = F3(function(f, d1, d2) -{ - return _Json_mapMany(f, [d1, d2]); -}); - -var _Json_map3 = F4(function(f, d1, d2, d3) -{ - return _Json_mapMany(f, [d1, d2, d3]); -}); - -var _Json_map4 = F5(function(f, d1, d2, d3, d4) -{ - return _Json_mapMany(f, [d1, d2, d3, d4]); -}); - -var _Json_map5 = F6(function(f, d1, d2, d3, d4, d5) -{ - return _Json_mapMany(f, [d1, d2, d3, d4, d5]); -}); - -var _Json_map6 = F7(function(f, d1, d2, d3, d4, d5, d6) -{ - return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6]); -}); - -var _Json_map7 = F8(function(f, d1, d2, d3, d4, d5, d6, d7) -{ - return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7]); -}); - -var _Json_map8 = F9(function(f, d1, d2, d3, d4, d5, d6, d7, d8) -{ - return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7, d8]); -}); - - -// DECODE - -var _Json_runOnString = F2(function(decoder, string) -{ - try - { - var value = JSON.parse(string); - return _Json_runHelp(decoder, value); - } - catch (e) - { - return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, 'This is not valid JSON! ' + e.message, _Json_wrap(string))); - } -}); - -var _Json_run = F2(function(decoder, value) -{ - return _Json_runHelp(decoder, _Json_unwrap(value)); -}); - -function _Json_runHelp(decoder, value) -{ - switch (decoder.$) - { - case 2: - return decoder.b(value); - - case 5: - return (value === null) - ? $elm$core$Result$Ok(decoder.c) - : _Json_expecting('null', value); - - case 3: - if (!_Json_isArray(value)) - { - return _Json_expecting('a LIST', value); - } - return _Json_runArrayDecoder(decoder.b, value, _List_fromArray); - - case 4: - if (!_Json_isArray(value)) - { - return _Json_expecting('an ARRAY', value); - } - return _Json_runArrayDecoder(decoder.b, value, _Json_toElmArray); - - case 6: - var field = decoder.d; - if (typeof value !== 'object' || value === null || !(field in value)) - { - return _Json_expecting('an OBJECT with a field named `' + field + '`', value); - } - var result = _Json_runHelp(decoder.b, value[field]); - return ($elm$core$Result$isOk(result)) ? result : $elm$core$Result$Err(A2($elm$json$Json$Decode$Field, field, result.a)); - - case 7: - var index = decoder.e; - if (!_Json_isArray(value)) - { - return _Json_expecting('an ARRAY', value); - } - if (index >= value.length) - { - return _Json_expecting('a LONGER array. Need index ' + index + ' but only see ' + value.length + ' entries', value); - } - var result = _Json_runHelp(decoder.b, value[index]); - return ($elm$core$Result$isOk(result)) ? result : $elm$core$Result$Err(A2($elm$json$Json$Decode$Index, index, result.a)); - - case 8: - if (typeof value !== 'object' || value === null || _Json_isArray(value)) - { - return _Json_expecting('an OBJECT', value); - } - - var keyValuePairs = _List_Nil; - // TODO test perf of Object.keys and switch when support is good enough - for (var key in value) - { - if (value.hasOwnProperty(key)) - { - var result = _Json_runHelp(decoder.b, value[key]); - if (!$elm$core$Result$isOk(result)) - { - return $elm$core$Result$Err(A2($elm$json$Json$Decode$Field, key, result.a)); - } - keyValuePairs = _List_Cons(_Utils_Tuple2(key, result.a), keyValuePairs); - } - } - return $elm$core$Result$Ok($elm$core$List$reverse(keyValuePairs)); - - case 9: - var answer = decoder.f; - var decoders = decoder.g; - for (var i = 0; i < decoders.length; i++) - { - var result = _Json_runHelp(decoders[i], value); - if (!$elm$core$Result$isOk(result)) - { - return result; - } - answer = answer(result.a); - } - return $elm$core$Result$Ok(answer); - - case 10: - var result = _Json_runHelp(decoder.b, value); - return (!$elm$core$Result$isOk(result)) - ? result - : _Json_runHelp(decoder.h(result.a), value); - - case 11: - var errors = _List_Nil; - for (var temp = decoder.g; temp.b; temp = temp.b) // WHILE_CONS - { - var result = _Json_runHelp(temp.a, value); - if ($elm$core$Result$isOk(result)) - { - return result; - } - errors = _List_Cons(result.a, errors); - } - return $elm$core$Result$Err($elm$json$Json$Decode$OneOf($elm$core$List$reverse(errors))); - - case 1: - return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, decoder.a, _Json_wrap(value))); - - case 0: - return $elm$core$Result$Ok(decoder.a); - } -} - -function _Json_runArrayDecoder(decoder, value, toElmValue) -{ - var len = value.length; - var array = new Array(len); - for (var i = 0; i < len; i++) - { - var result = _Json_runHelp(decoder, value[i]); - if (!$elm$core$Result$isOk(result)) - { - return $elm$core$Result$Err(A2($elm$json$Json$Decode$Index, i, result.a)); - } - array[i] = result.a; - } - return $elm$core$Result$Ok(toElmValue(array)); -} - -function _Json_isArray(value) -{ - return Array.isArray(value) || (typeof FileList !== 'undefined' && value instanceof FileList); -} - -function _Json_toElmArray(array) -{ - return A2($elm$core$Array$initialize, array.length, function(i) { return array[i]; }); -} - -function _Json_expecting(type, value) -{ - return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, 'Expecting ' + type, _Json_wrap(value))); -} - - -// EQUALITY - -function _Json_equality(x, y) -{ - if (x === y) - { - return true; - } - - if (x.$ !== y.$) - { - return false; - } - - switch (x.$) - { - case 0: - case 1: - return x.a === y.a; - - case 2: - return x.b === y.b; - - case 5: - return x.c === y.c; - - case 3: - case 4: - case 8: - return _Json_equality(x.b, y.b); - - case 6: - return x.d === y.d && _Json_equality(x.b, y.b); - - case 7: - return x.e === y.e && _Json_equality(x.b, y.b); - - case 9: - return x.f === y.f && _Json_listEquality(x.g, y.g); - - case 10: - return x.h === y.h && _Json_equality(x.b, y.b); - - case 11: - return _Json_listEquality(x.g, y.g); - } -} - -function _Json_listEquality(aDecoders, bDecoders) -{ - var len = aDecoders.length; - if (len !== bDecoders.length) - { - return false; - } - for (var i = 0; i < len; i++) - { - if (!_Json_equality(aDecoders[i], bDecoders[i])) - { - return false; - } - } - return true; -} - - -// ENCODE - -var _Json_encode = F2(function(indentLevel, value) -{ - return JSON.stringify(_Json_unwrap(value), null, indentLevel) + ''; -}); - -function _Json_wrap(value) { return { $: 0, a: value }; } -function _Json_unwrap(value) { return value.a; } - -function _Json_wrap_UNUSED(value) { return value; } -function _Json_unwrap_UNUSED(value) { return value; } - -function _Json_emptyArray() { return []; } -function _Json_emptyObject() { return {}; } - -var _Json_addField = F3(function(key, value, object) -{ - object[key] = _Json_unwrap(value); - return object; -}); - -function _Json_addEntry(func) -{ - return F2(function(entry, array) - { - array.push(_Json_unwrap(func(entry))); - return array; - }); -} - -var _Json_encodeNull = _Json_wrap(null); - - - -// TASKS - -function _Scheduler_succeed(value) -{ - return { - $: 0, - a: value - }; -} - -function _Scheduler_fail(error) -{ - return { - $: 1, - a: error - }; -} - -function _Scheduler_binding(callback) -{ - return { - $: 2, - b: callback, - c: null - }; -} - -var _Scheduler_andThen = F2(function(callback, task) -{ - return { - $: 3, - b: callback, - d: task - }; -}); - -var _Scheduler_onError = F2(function(callback, task) -{ - return { - $: 4, - b: callback, - d: task - }; -}); - -function _Scheduler_receive(callback) -{ - return { - $: 5, - b: callback - }; -} - - -// PROCESSES - -var _Scheduler_guid = 0; - -function _Scheduler_rawSpawn(task) -{ - var proc = { - $: 0, - e: _Scheduler_guid++, - f: task, - g: null, - h: [] - }; - - _Scheduler_enqueue(proc); - - return proc; -} - -function _Scheduler_spawn(task) -{ - return _Scheduler_binding(function(callback) { - callback(_Scheduler_succeed(_Scheduler_rawSpawn(task))); - }); -} - -function _Scheduler_rawSend(proc, msg) -{ - proc.h.push(msg); - _Scheduler_enqueue(proc); -} - -var _Scheduler_send = F2(function(proc, msg) -{ - return _Scheduler_binding(function(callback) { - _Scheduler_rawSend(proc, msg); - callback(_Scheduler_succeed(_Utils_Tuple0)); - }); -}); - -function _Scheduler_kill(proc) -{ - return _Scheduler_binding(function(callback) { - var task = proc.f; - if (task.$ === 2 && task.c) - { - task.c(); - } - - proc.f = null; - - callback(_Scheduler_succeed(_Utils_Tuple0)); - }); -} - - -/* STEP PROCESSES - -type alias Process = - { $ : tag - , id : unique_id - , root : Task - , stack : null | { $: SUCCEED | FAIL, a: callback, b: stack } - , mailbox : [msg] - } - -*/ - - -var _Scheduler_working = false; -var _Scheduler_queue = []; - - -function _Scheduler_enqueue(proc) -{ - _Scheduler_queue.push(proc); - if (_Scheduler_working) - { - return; - } - _Scheduler_working = true; - while (proc = _Scheduler_queue.shift()) - { - _Scheduler_step(proc); - } - _Scheduler_working = false; -} - - -function _Scheduler_step(proc) -{ - while (proc.f) - { - var rootTag = proc.f.$; - if (rootTag === 0 || rootTag === 1) - { - while (proc.g && proc.g.$ !== rootTag) - { - proc.g = proc.g.i; - } - if (!proc.g) - { - return; - } - proc.f = proc.g.b(proc.f.a); - proc.g = proc.g.i; - } - else if (rootTag === 2) - { - proc.f.c = proc.f.b(function(newRoot) { - proc.f = newRoot; - _Scheduler_enqueue(proc); - }); - return; - } - else if (rootTag === 5) - { - if (proc.h.length === 0) - { - return; - } - proc.f = proc.f.b(proc.h.shift()); - } - else // if (rootTag === 3 || rootTag === 4) - { - proc.g = { - $: rootTag === 3 ? 0 : 1, - b: proc.f.b, - i: proc.g - }; - proc.f = proc.f.d; - } - } -} - - - -function _Process_sleep(time) -{ - return _Scheduler_binding(function(callback) { - var id = setTimeout(function() { - callback(_Scheduler_succeed(_Utils_Tuple0)); - }, time); - - return function() { clearTimeout(id); }; - }); -} - - - - -// PROGRAMS - - -var _Platform_worker = F4(function(impl, flagDecoder, debugMetadata, args) -{ - return _Platform_initialize( - flagDecoder, - args, - impl.init, - impl.update, - impl.subscriptions, - function() { return function() {} } - ); -}); - - - -// INITIALIZE A PROGRAM - - -function _Platform_initialize(flagDecoder, args, init, update, subscriptions, stepperBuilder) -{ - var result = A2(_Json_run, flagDecoder, _Json_wrap(args ? args['flags'] : undefined)); - $elm$core$Result$isOk(result) || _Debug_crash(2 /**/, _Json_errorToString(result.a) /**/); - var managers = {}; - var initPair = init(result.a); - var model = initPair.a; - var stepper = stepperBuilder(sendToApp, model); - var ports = _Platform_setupEffects(managers, sendToApp); - - function sendToApp(msg, viewMetadata) - { - var pair = A2(update, msg, model); - stepper(model = pair.a, viewMetadata); - _Platform_enqueueEffects(managers, pair.b, subscriptions(model)); - } - - _Platform_enqueueEffects(managers, initPair.b, subscriptions(model)); - - return ports ? { ports: ports } : {}; -} - - - -// TRACK PRELOADS -// -// This is used by code in elm/browser and elm/http -// to register any HTTP requests that are triggered by init. -// - - -var _Platform_preload; - - -function _Platform_registerPreload(url) -{ - _Platform_preload.add(url); -} - - - -// EFFECT MANAGERS - - -var _Platform_effectManagers = {}; - - -function _Platform_setupEffects(managers, sendToApp) -{ - var ports; - - // setup all necessary effect managers - for (var key in _Platform_effectManagers) - { - var manager = _Platform_effectManagers[key]; - - if (manager.a) - { - ports = ports || {}; - ports[key] = manager.a(key, sendToApp); - } - - managers[key] = _Platform_instantiateManager(manager, sendToApp); - } - - return ports; -} - - -function _Platform_createManager(init, onEffects, onSelfMsg, cmdMap, subMap) -{ - return { - b: init, - c: onEffects, - d: onSelfMsg, - e: cmdMap, - f: subMap - }; -} - - -function _Platform_instantiateManager(info, sendToApp) -{ - var router = { - g: sendToApp, - h: undefined - }; - - var onEffects = info.c; - var onSelfMsg = info.d; - var cmdMap = info.e; - var subMap = info.f; - - function loop(state) - { - return A2(_Scheduler_andThen, loop, _Scheduler_receive(function(msg) - { - var value = msg.a; - - if (msg.$ === 0) - { - return A3(onSelfMsg, router, value, state); - } - - return cmdMap && subMap - ? A4(onEffects, router, value.i, value.j, state) - : A3(onEffects, router, cmdMap ? value.i : value.j, state); - })); - } - - return router.h = _Scheduler_rawSpawn(A2(_Scheduler_andThen, loop, info.b)); -} - - - -// ROUTING - - -var _Platform_sendToApp = F2(function(router, msg) -{ - return _Scheduler_binding(function(callback) - { - router.g(msg); - callback(_Scheduler_succeed(_Utils_Tuple0)); - }); -}); - - -var _Platform_sendToSelf = F2(function(router, msg) -{ - return A2(_Scheduler_send, router.h, { - $: 0, - a: msg - }); -}); - - - -// BAGS - - -function _Platform_leaf(home) -{ - return function(value) - { - return { - $: 1, - k: home, - l: value - }; - }; -} - - -function _Platform_batch(list) -{ - return { - $: 2, - m: list - }; -} - - -var _Platform_map = F2(function(tagger, bag) -{ - return { - $: 3, - n: tagger, - o: bag - } -}); - - - -// PIPE BAGS INTO EFFECT MANAGERS -// -// Effects must be queued! -// -// Say your init contains a synchronous command, like Time.now or Time.here -// -// - This will produce a batch of effects (FX_1) -// - The synchronous task triggers the subsequent `update` call -// - This will produce a batch of effects (FX_2) -// -// If we just start dispatching FX_2, subscriptions from FX_2 can be processed -// before subscriptions from FX_1. No good! Earlier versions of this code had -// this problem, leading to these reports: -// -// https://github.com/elm/core/issues/980 -// https://github.com/elm/core/pull/981 -// https://github.com/elm/compiler/issues/1776 -// -// The queue is necessary to avoid ordering issues for synchronous commands. - - -// Why use true/false here? Why not just check the length of the queue? -// The goal is to detect "are we currently dispatching effects?" If we -// are, we need to bail and let the ongoing while loop handle things. -// -// Now say the queue has 1 element. When we dequeue the final element, -// the queue will be empty, but we are still actively dispatching effects. -// So you could get queue jumping in a really tricky category of cases. -// -var _Platform_effectsQueue = []; -var _Platform_effectsActive = false; - - -function _Platform_enqueueEffects(managers, cmdBag, subBag) -{ - _Platform_effectsQueue.push({ p: managers, q: cmdBag, r: subBag }); - - if (_Platform_effectsActive) return; - - _Platform_effectsActive = true; - for (var fx; fx = _Platform_effectsQueue.shift(); ) - { - _Platform_dispatchEffects(fx.p, fx.q, fx.r); - } - _Platform_effectsActive = false; -} - - -function _Platform_dispatchEffects(managers, cmdBag, subBag) -{ - var effectsDict = {}; - _Platform_gatherEffects(true, cmdBag, effectsDict, null); - _Platform_gatherEffects(false, subBag, effectsDict, null); - - for (var home in managers) - { - _Scheduler_rawSend(managers[home], { - $: 'fx', - a: effectsDict[home] || { i: _List_Nil, j: _List_Nil } - }); - } -} - - -function _Platform_gatherEffects(isCmd, bag, effectsDict, taggers) -{ - switch (bag.$) - { - case 1: - var home = bag.k; - var effect = _Platform_toEffect(isCmd, home, taggers, bag.l); - effectsDict[home] = _Platform_insert(isCmd, effect, effectsDict[home]); - return; - - case 2: - for (var list = bag.m; list.b; list = list.b) // WHILE_CONS - { - _Platform_gatherEffects(isCmd, list.a, effectsDict, taggers); - } - return; - - case 3: - _Platform_gatherEffects(isCmd, bag.o, effectsDict, { - s: bag.n, - t: taggers - }); - return; - } -} - - -function _Platform_toEffect(isCmd, home, taggers, value) -{ - function applyTaggers(x) - { - for (var temp = taggers; temp; temp = temp.t) - { - x = temp.s(x); - } - return x; - } - - var map = isCmd - ? _Platform_effectManagers[home].e - : _Platform_effectManagers[home].f; - - return A2(map, applyTaggers, value) -} - - -function _Platform_insert(isCmd, newEffect, effects) -{ - effects = effects || { i: _List_Nil, j: _List_Nil }; - - isCmd - ? (effects.i = _List_Cons(newEffect, effects.i)) - : (effects.j = _List_Cons(newEffect, effects.j)); - - return effects; -} - - - -// PORTS - - -function _Platform_checkPortName(name) -{ - if (_Platform_effectManagers[name]) - { - _Debug_crash(3, name) - } -} - - - -// OUTGOING PORTS - - -function _Platform_outgoingPort(name, converter) -{ - _Platform_checkPortName(name); - _Platform_effectManagers[name] = { - e: _Platform_outgoingPortMap, - u: converter, - a: _Platform_setupOutgoingPort - }; - return _Platform_leaf(name); -} - - -var _Platform_outgoingPortMap = F2(function(tagger, value) { return value; }); - - -function _Platform_setupOutgoingPort(name) -{ - var subs = []; - var converter = _Platform_effectManagers[name].u; - - // CREATE MANAGER - - var init = _Process_sleep(0); - - _Platform_effectManagers[name].b = init; - _Platform_effectManagers[name].c = F3(function(router, cmdList, state) - { - for ( ; cmdList.b; cmdList = cmdList.b) // WHILE_CONS - { - // grab a separate reference to subs in case unsubscribe is called - var currentSubs = subs; - var value = _Json_unwrap(converter(cmdList.a)); - for (var i = 0; i < currentSubs.length; i++) - { - currentSubs[i](value); - } - } - return init; - }); - - // PUBLIC API - - function subscribe(callback) - { - subs.push(callback); - } - - function unsubscribe(callback) - { - // copy subs into a new array in case unsubscribe is called within a - // subscribed callback - subs = subs.slice(); - var index = subs.indexOf(callback); - if (index >= 0) - { - subs.splice(index, 1); - } - } - - return { - subscribe: subscribe, - unsubscribe: unsubscribe - }; -} - - - -// INCOMING PORTS - - -function _Platform_incomingPort(name, converter) -{ - _Platform_checkPortName(name); - _Platform_effectManagers[name] = { - f: _Platform_incomingPortMap, - u: converter, - a: _Platform_setupIncomingPort - }; - return _Platform_leaf(name); -} - - -var _Platform_incomingPortMap = F2(function(tagger, finalTagger) -{ - return function(value) - { - return tagger(finalTagger(value)); - }; -}); - - -function _Platform_setupIncomingPort(name, sendToApp) -{ - var subs = _List_Nil; - var converter = _Platform_effectManagers[name].u; - - // CREATE MANAGER - - var init = _Scheduler_succeed(null); - - _Platform_effectManagers[name].b = init; - _Platform_effectManagers[name].c = F3(function(router, subList, state) - { - subs = subList; - return init; - }); - - // PUBLIC API - - function send(incomingValue) - { - var result = A2(_Json_run, converter, _Json_wrap(incomingValue)); - - $elm$core$Result$isOk(result) || _Debug_crash(4, name, result.a); - - var value = result.a; - for (var temp = subs; temp.b; temp = temp.b) // WHILE_CONS - { - sendToApp(temp.a(value)); - } - } - - return { send: send }; -} - - - -// EXPORT ELM MODULES -// -// Have DEBUG and PROD versions so that we can (1) give nicer errors in -// debug mode and (2) not pay for the bits needed for that in prod mode. -// - - -function _Platform_export_UNUSED(exports) -{ - scope['Elm'] - ? _Platform_mergeExportsProd(scope['Elm'], exports) - : scope['Elm'] = exports; -} - - -function _Platform_mergeExportsProd(obj, exports) -{ - for (var name in exports) - { - (name in obj) - ? (name == 'init') - ? _Debug_crash(6) - : _Platform_mergeExportsProd(obj[name], exports[name]) - : (obj[name] = exports[name]); - } -} - - -function _Platform_export(exports) -{ - scope['Elm'] - ? _Platform_mergeExportsDebug('Elm', scope['Elm'], exports) - : scope['Elm'] = exports; -} - - -function _Platform_mergeExportsDebug(moduleName, obj, exports) -{ - for (var name in exports) - { - (name in obj) - ? (name == 'init') - ? _Debug_crash(6, moduleName) - : _Platform_mergeExportsDebug(moduleName + '.' + name, obj[name], exports[name]) - : (obj[name] = exports[name]); - } -} - - - - -// HELPERS - - -var _VirtualDom_divertHrefToApp; - -var _VirtualDom_doc = typeof document !== 'undefined' ? document : {}; - - -function _VirtualDom_appendChild(parent, child) -{ - parent.appendChild(child); -} - -var _VirtualDom_init = F4(function(virtualNode, flagDecoder, debugMetadata, args) -{ - // NOTE: this function needs _Platform_export available to work - - /**_UNUSED/ - var node = args['node']; - //*/ - /**/ - var node = args && args['node'] ? args['node'] : _Debug_crash(0); - //*/ - - node.parentNode.replaceChild( - _VirtualDom_render(virtualNode, function() {}), - node - ); - - return {}; -}); - - - -// TEXT - - -function _VirtualDom_text(string) -{ - return { - $: 0, - a: string - }; -} - - - -// NODE - - -var _VirtualDom_nodeNS = F2(function(namespace, tag) -{ - return F2(function(factList, kidList) - { - for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS - { - var kid = kidList.a; - descendantsCount += (kid.b || 0); - kids.push(kid); - } - descendantsCount += kids.length; - - return { - $: 1, - c: tag, - d: _VirtualDom_organizeFacts(factList), - e: kids, - f: namespace, - b: descendantsCount - }; - }); -}); - - -var _VirtualDom_node = _VirtualDom_nodeNS(undefined); - - - -// KEYED NODE - - -var _VirtualDom_keyedNodeNS = F2(function(namespace, tag) -{ - return F2(function(factList, kidList) - { - for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS - { - var kid = kidList.a; - descendantsCount += (kid.b.b || 0); - kids.push(kid); - } - descendantsCount += kids.length; - - return { - $: 2, - c: tag, - d: _VirtualDom_organizeFacts(factList), - e: kids, - f: namespace, - b: descendantsCount - }; - }); -}); - - -var _VirtualDom_keyedNode = _VirtualDom_keyedNodeNS(undefined); - - - -// CUSTOM - - -function _VirtualDom_custom(factList, model, render, diff) -{ - return { - $: 3, - d: _VirtualDom_organizeFacts(factList), - g: model, - h: render, - i: diff - }; -} - - - -// MAP - - -var _VirtualDom_map = F2(function(tagger, node) -{ - return { - $: 4, - j: tagger, - k: node, - b: 1 + (node.b || 0) - }; -}); - - - -// LAZY - - -function _VirtualDom_thunk(refs, thunk) -{ - return { - $: 5, - l: refs, - m: thunk, - k: undefined - }; -} - -var _VirtualDom_lazy = F2(function(func, a) -{ - return _VirtualDom_thunk([func, a], function() { - return func(a); - }); -}); - -var _VirtualDom_lazy2 = F3(function(func, a, b) -{ - return _VirtualDom_thunk([func, a, b], function() { - return A2(func, a, b); - }); -}); - -var _VirtualDom_lazy3 = F4(function(func, a, b, c) -{ - return _VirtualDom_thunk([func, a, b, c], function() { - return A3(func, a, b, c); - }); -}); - -var _VirtualDom_lazy4 = F5(function(func, a, b, c, d) -{ - return _VirtualDom_thunk([func, a, b, c, d], function() { - return A4(func, a, b, c, d); - }); -}); - -var _VirtualDom_lazy5 = F6(function(func, a, b, c, d, e) -{ - return _VirtualDom_thunk([func, a, b, c, d, e], function() { - return A5(func, a, b, c, d, e); - }); -}); - -var _VirtualDom_lazy6 = F7(function(func, a, b, c, d, e, f) -{ - return _VirtualDom_thunk([func, a, b, c, d, e, f], function() { - return A6(func, a, b, c, d, e, f); - }); -}); - -var _VirtualDom_lazy7 = F8(function(func, a, b, c, d, e, f, g) -{ - return _VirtualDom_thunk([func, a, b, c, d, e, f, g], function() { - return A7(func, a, b, c, d, e, f, g); - }); -}); - -var _VirtualDom_lazy8 = F9(function(func, a, b, c, d, e, f, g, h) -{ - return _VirtualDom_thunk([func, a, b, c, d, e, f, g, h], function() { - return A8(func, a, b, c, d, e, f, g, h); - }); -}); - - - -// FACTS - - -var _VirtualDom_on = F2(function(key, handler) -{ - return { - $: 'a0', - n: key, - o: handler - }; -}); -var _VirtualDom_style = F2(function(key, value) -{ - return { - $: 'a1', - n: key, - o: value - }; -}); -var _VirtualDom_property = F2(function(key, value) -{ - return { - $: 'a2', - n: key, - o: value - }; -}); -var _VirtualDom_attribute = F2(function(key, value) -{ - return { - $: 'a3', - n: key, - o: value - }; -}); -var _VirtualDom_attributeNS = F3(function(namespace, key, value) -{ - return { - $: 'a4', - n: key, - o: { f: namespace, o: value } - }; -}); - - - -// XSS ATTACK VECTOR CHECKS - - -function _VirtualDom_noScript(tag) -{ - return tag == 'script' ? 'p' : tag; -} - -function _VirtualDom_noOnOrFormAction(key) -{ - return /^(on|formAction$)/i.test(key) ? 'data-' + key : key; -} - -function _VirtualDom_noInnerHtmlOrFormAction(key) -{ - return key == 'innerHTML' || key == 'formAction' ? 'data-' + key : key; -} - -function _VirtualDom_noJavaScriptUri_UNUSED(value) -{ - return /^javascript:/i.test(value.replace(/\s/g,'')) ? '' : value; -} - -function _VirtualDom_noJavaScriptUri(value) -{ - return /^javascript:/i.test(value.replace(/\s/g,'')) - ? 'javascript:alert("This is an XSS vector. Please use ports or web components instead.")' - : value; -} - -function _VirtualDom_noJavaScriptOrHtmlUri_UNUSED(value) -{ - return /^\s*(javascript:|data:text\/html)/i.test(value) ? '' : value; -} - -function _VirtualDom_noJavaScriptOrHtmlUri(value) -{ - return /^\s*(javascript:|data:text\/html)/i.test(value) - ? 'javascript:alert("This is an XSS vector. Please use ports or web components instead.")' - : value; -} - - - -// MAP FACTS - - -var _VirtualDom_mapAttribute = F2(function(func, attr) -{ - return (attr.$ === 'a0') - ? A2(_VirtualDom_on, attr.n, _VirtualDom_mapHandler(func, attr.o)) - : attr; -}); - -function _VirtualDom_mapHandler(func, handler) -{ - var tag = $elm$virtual_dom$VirtualDom$toHandlerInt(handler); - - // 0 = Normal - // 1 = MayStopPropagation - // 2 = MayPreventDefault - // 3 = Custom - - return { - $: handler.$, - a: - !tag - ? A2($elm$json$Json$Decode$map, func, handler.a) - : - A3($elm$json$Json$Decode$map2, - tag < 3 - ? _VirtualDom_mapEventTuple - : _VirtualDom_mapEventRecord, - $elm$json$Json$Decode$succeed(func), - handler.a - ) - }; -} - -var _VirtualDom_mapEventTuple = F2(function(func, tuple) -{ - return _Utils_Tuple2(func(tuple.a), tuple.b); -}); - -var _VirtualDom_mapEventRecord = F2(function(func, record) -{ - return { - message: func(record.message), - stopPropagation: record.stopPropagation, - preventDefault: record.preventDefault - } -}); - - - -// ORGANIZE FACTS - - -function _VirtualDom_organizeFacts(factList) -{ - for (var facts = {}; factList.b; factList = factList.b) // WHILE_CONS - { - var entry = factList.a; - - var tag = entry.$; - var key = entry.n; - var value = entry.o; - - if (tag === 'a2') - { - (key === 'className') - ? _VirtualDom_addClass(facts, key, _Json_unwrap(value)) - : facts[key] = _Json_unwrap(value); - - continue; - } - - var subFacts = facts[tag] || (facts[tag] = {}); - (tag === 'a3' && key === 'class') - ? _VirtualDom_addClass(subFacts, key, value) - : subFacts[key] = value; - } - - return facts; -} - -function _VirtualDom_addClass(object, key, newClass) -{ - var classes = object[key]; - object[key] = classes ? classes + ' ' + newClass : newClass; -} - - - -// RENDER - - -function _VirtualDom_render(vNode, eventNode) -{ - var tag = vNode.$; - - if (tag === 5) - { - return _VirtualDom_render(vNode.k || (vNode.k = vNode.m()), eventNode); - } - - if (tag === 0) - { - return _VirtualDom_doc.createTextNode(vNode.a); - } - - if (tag === 4) - { - var subNode = vNode.k; - var tagger = vNode.j; - - while (subNode.$ === 4) - { - typeof tagger !== 'object' - ? tagger = [tagger, subNode.j] - : tagger.push(subNode.j); - - subNode = subNode.k; - } - - var subEventRoot = { j: tagger, p: eventNode }; - var domNode = _VirtualDom_render(subNode, subEventRoot); - domNode.elm_event_node_ref = subEventRoot; - return domNode; - } - - if (tag === 3) - { - var domNode = vNode.h(vNode.g); - _VirtualDom_applyFacts(domNode, eventNode, vNode.d); - return domNode; - } - - // at this point `tag` must be 1 or 2 - - var domNode = vNode.f - ? _VirtualDom_doc.createElementNS(vNode.f, vNode.c) - : _VirtualDom_doc.createElement(vNode.c); - - if (_VirtualDom_divertHrefToApp && vNode.c == 'a') - { - domNode.addEventListener('click', _VirtualDom_divertHrefToApp(domNode)); - } - - _VirtualDom_applyFacts(domNode, eventNode, vNode.d); - - for (var kids = vNode.e, i = 0; i < kids.length; i++) - { - _VirtualDom_appendChild(domNode, _VirtualDom_render(tag === 1 ? kids[i] : kids[i].b, eventNode)); - } - - return domNode; -} - - - -// APPLY FACTS - - -function _VirtualDom_applyFacts(domNode, eventNode, facts) -{ - for (var key in facts) - { - var value = facts[key]; - - key === 'a1' - ? _VirtualDom_applyStyles(domNode, value) - : - key === 'a0' - ? _VirtualDom_applyEvents(domNode, eventNode, value) - : - key === 'a3' - ? _VirtualDom_applyAttrs(domNode, value) - : - key === 'a4' - ? _VirtualDom_applyAttrsNS(domNode, value) - : - ((key !== 'value' && key !== 'checked') || domNode[key] !== value) && (domNode[key] = value); - } -} - - - -// APPLY STYLES - - -function _VirtualDom_applyStyles(domNode, styles) -{ - var domNodeStyle = domNode.style; - - for (var key in styles) - { - domNodeStyle[key] = styles[key]; - } -} - - - -// APPLY ATTRS - - -function _VirtualDom_applyAttrs(domNode, attrs) -{ - for (var key in attrs) - { - var value = attrs[key]; - typeof value !== 'undefined' - ? domNode.setAttribute(key, value) - : domNode.removeAttribute(key); - } -} - - - -// APPLY NAMESPACED ATTRS - - -function _VirtualDom_applyAttrsNS(domNode, nsAttrs) -{ - for (var key in nsAttrs) - { - var pair = nsAttrs[key]; - var namespace = pair.f; - var value = pair.o; - - typeof value !== 'undefined' - ? domNode.setAttributeNS(namespace, key, value) - : domNode.removeAttributeNS(namespace, key); - } -} - - - -// APPLY EVENTS - - -function _VirtualDom_applyEvents(domNode, eventNode, events) -{ - var allCallbacks = domNode.elmFs || (domNode.elmFs = {}); - - for (var key in events) - { - var newHandler = events[key]; - var oldCallback = allCallbacks[key]; - - if (!newHandler) - { - domNode.removeEventListener(key, oldCallback); - allCallbacks[key] = undefined; - continue; - } - - if (oldCallback) - { - var oldHandler = oldCallback.q; - if (oldHandler.$ === newHandler.$) - { - oldCallback.q = newHandler; - continue; - } - domNode.removeEventListener(key, oldCallback); - } - - oldCallback = _VirtualDom_makeCallback(eventNode, newHandler); - domNode.addEventListener(key, oldCallback, - _VirtualDom_passiveSupported - && { passive: $elm$virtual_dom$VirtualDom$toHandlerInt(newHandler) < 2 } - ); - allCallbacks[key] = oldCallback; - } -} - - - -// PASSIVE EVENTS - - -var _VirtualDom_passiveSupported; - -try -{ - window.addEventListener('t', null, Object.defineProperty({}, 'passive', { - get: function() { _VirtualDom_passiveSupported = true; } - })); -} -catch(e) {} - - - -// EVENT HANDLERS - - -function _VirtualDom_makeCallback(eventNode, initialHandler) -{ - function callback(event) - { - var handler = callback.q; - var result = _Json_runHelp(handler.a, event); - - if (!$elm$core$Result$isOk(result)) - { - return; - } - - var tag = $elm$virtual_dom$VirtualDom$toHandlerInt(handler); - - // 0 = Normal - // 1 = MayStopPropagation - // 2 = MayPreventDefault - // 3 = Custom - - var value = result.a; - var message = !tag ? value : tag < 3 ? value.a : value.message; - var stopPropagation = tag == 1 ? value.b : tag == 3 && value.stopPropagation; - var currentEventNode = ( - stopPropagation && event.stopPropagation(), - (tag == 2 ? value.b : tag == 3 && value.preventDefault) && event.preventDefault(), - eventNode - ); - var tagger; - var i; - while (tagger = currentEventNode.j) - { - if (typeof tagger == 'function') - { - message = tagger(message); - } - else - { - for (var i = tagger.length; i--; ) - { - message = tagger[i](message); - } - } - currentEventNode = currentEventNode.p; - } - currentEventNode(message, stopPropagation); // stopPropagation implies isSync - } - - callback.q = initialHandler; - - return callback; -} - -function _VirtualDom_equalEvents(x, y) -{ - return x.$ == y.$ && _Json_equality(x.a, y.a); -} - - - -// DIFF - - -// TODO: Should we do patches like in iOS? -// -// type Patch -// = At Int Patch -// | Batch (List Patch) -// | Change ... -// -// How could it not be better? -// -function _VirtualDom_diff(x, y) -{ - var patches = []; - _VirtualDom_diffHelp(x, y, patches, 0); - return patches; -} - - -function _VirtualDom_pushPatch(patches, type, index, data) -{ - var patch = { - $: type, - r: index, - s: data, - t: undefined, - u: undefined - }; - patches.push(patch); - return patch; -} - - -function _VirtualDom_diffHelp(x, y, patches, index) -{ - if (x === y) - { - return; - } - - var xType = x.$; - var yType = y.$; - - // Bail if you run into different types of nodes. Implies that the - // structure has changed significantly and it's not worth a diff. - if (xType !== yType) - { - if (xType === 1 && yType === 2) - { - y = _VirtualDom_dekey(y); - yType = 1; - } - else - { - _VirtualDom_pushPatch(patches, 0, index, y); - return; - } - } - - // Now we know that both nodes are the same $. - switch (yType) - { - case 5: - var xRefs = x.l; - var yRefs = y.l; - var i = xRefs.length; - var same = i === yRefs.length; - while (same && i--) - { - same = xRefs[i] === yRefs[i]; - } - if (same) - { - y.k = x.k; - return; - } - y.k = y.m(); - var subPatches = []; - _VirtualDom_diffHelp(x.k, y.k, subPatches, 0); - subPatches.length > 0 && _VirtualDom_pushPatch(patches, 1, index, subPatches); - return; - - case 4: - // gather nested taggers - var xTaggers = x.j; - var yTaggers = y.j; - var nesting = false; - - var xSubNode = x.k; - while (xSubNode.$ === 4) - { - nesting = true; - - typeof xTaggers !== 'object' - ? xTaggers = [xTaggers, xSubNode.j] - : xTaggers.push(xSubNode.j); - - xSubNode = xSubNode.k; - } - - var ySubNode = y.k; - while (ySubNode.$ === 4) - { - nesting = true; - - typeof yTaggers !== 'object' - ? yTaggers = [yTaggers, ySubNode.j] - : yTaggers.push(ySubNode.j); - - ySubNode = ySubNode.k; - } - - // Just bail if different numbers of taggers. This implies the - // structure of the virtual DOM has changed. - if (nesting && xTaggers.length !== yTaggers.length) - { - _VirtualDom_pushPatch(patches, 0, index, y); - return; - } - - // check if taggers are "the same" - if (nesting ? !_VirtualDom_pairwiseRefEqual(xTaggers, yTaggers) : xTaggers !== yTaggers) - { - _VirtualDom_pushPatch(patches, 2, index, yTaggers); - } - - // diff everything below the taggers - _VirtualDom_diffHelp(xSubNode, ySubNode, patches, index + 1); - return; - - case 0: - if (x.a !== y.a) - { - _VirtualDom_pushPatch(patches, 3, index, y.a); - } - return; - - case 1: - _VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKids); - return; - - case 2: - _VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKeyedKids); - return; - - case 3: - if (x.h !== y.h) - { - _VirtualDom_pushPatch(patches, 0, index, y); - return; - } - - var factsDiff = _VirtualDom_diffFacts(x.d, y.d); - factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff); - - var patch = y.i(x.g, y.g); - patch && _VirtualDom_pushPatch(patches, 5, index, patch); - - return; - } -} - -// assumes the incoming arrays are the same length -function _VirtualDom_pairwiseRefEqual(as, bs) -{ - for (var i = 0; i < as.length; i++) - { - if (as[i] !== bs[i]) - { - return false; - } - } - - return true; -} - -function _VirtualDom_diffNodes(x, y, patches, index, diffKids) -{ - // Bail if obvious indicators have changed. Implies more serious - // structural changes such that it's not worth it to diff. - if (x.c !== y.c || x.f !== y.f) - { - _VirtualDom_pushPatch(patches, 0, index, y); - return; - } - - var factsDiff = _VirtualDom_diffFacts(x.d, y.d); - factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff); - - diffKids(x, y, patches, index); -} - - - -// DIFF FACTS - - -// TODO Instead of creating a new diff object, it's possible to just test if -// there *is* a diff. During the actual patch, do the diff again and make the -// modifications directly. This way, there's no new allocations. Worth it? -function _VirtualDom_diffFacts(x, y, category) -{ - var diff; - - // look for changes and removals - for (var xKey in x) - { - if (xKey === 'a1' || xKey === 'a0' || xKey === 'a3' || xKey === 'a4') - { - var subDiff = _VirtualDom_diffFacts(x[xKey], y[xKey] || {}, xKey); - if (subDiff) - { - diff = diff || {}; - diff[xKey] = subDiff; - } - continue; - } - - // remove if not in the new facts - if (!(xKey in y)) - { - diff = diff || {}; - diff[xKey] = - !category - ? (typeof x[xKey] === 'string' ? '' : null) - : - (category === 'a1') - ? '' - : - (category === 'a0' || category === 'a3') - ? undefined - : - { f: x[xKey].f, o: undefined }; - - continue; - } - - var xValue = x[xKey]; - var yValue = y[xKey]; - - // reference equal, so don't worry about it - if (xValue === yValue && xKey !== 'value' && xKey !== 'checked' - || category === 'a0' && _VirtualDom_equalEvents(xValue, yValue)) - { - continue; - } - - diff = diff || {}; - diff[xKey] = yValue; - } - - // add new stuff - for (var yKey in y) - { - if (!(yKey in x)) - { - diff = diff || {}; - diff[yKey] = y[yKey]; - } - } - - return diff; -} - - - -// DIFF KIDS - - -function _VirtualDom_diffKids(xParent, yParent, patches, index) -{ - var xKids = xParent.e; - var yKids = yParent.e; - - var xLen = xKids.length; - var yLen = yKids.length; - - // FIGURE OUT IF THERE ARE INSERTS OR REMOVALS - - if (xLen > yLen) - { - _VirtualDom_pushPatch(patches, 6, index, { - v: yLen, - i: xLen - yLen - }); - } - else if (xLen < yLen) - { - _VirtualDom_pushPatch(patches, 7, index, { - v: xLen, - e: yKids - }); - } - - // PAIRWISE DIFF EVERYTHING ELSE - - for (var minLen = xLen < yLen ? xLen : yLen, i = 0; i < minLen; i++) - { - var xKid = xKids[i]; - _VirtualDom_diffHelp(xKid, yKids[i], patches, ++index); - index += xKid.b || 0; - } -} - - - -// KEYED DIFF - - -function _VirtualDom_diffKeyedKids(xParent, yParent, patches, rootIndex) -{ - var localPatches = []; - - var changes = {}; // Dict String Entry - var inserts = []; // Array { index : Int, entry : Entry } - // type Entry = { tag : String, vnode : VNode, index : Int, data : _ } - - var xKids = xParent.e; - var yKids = yParent.e; - var xLen = xKids.length; - var yLen = yKids.length; - var xIndex = 0; - var yIndex = 0; - - var index = rootIndex; - - while (xIndex < xLen && yIndex < yLen) - { - var x = xKids[xIndex]; - var y = yKids[yIndex]; - - var xKey = x.a; - var yKey = y.a; - var xNode = x.b; - var yNode = y.b; - - var newMatch = undefined; - var oldMatch = undefined; - - // check if keys match - - if (xKey === yKey) - { - index++; - _VirtualDom_diffHelp(xNode, yNode, localPatches, index); - index += xNode.b || 0; - - xIndex++; - yIndex++; - continue; - } - - // look ahead 1 to detect insertions and removals. - - var xNext = xKids[xIndex + 1]; - var yNext = yKids[yIndex + 1]; - - if (xNext) - { - var xNextKey = xNext.a; - var xNextNode = xNext.b; - oldMatch = yKey === xNextKey; - } - - if (yNext) - { - var yNextKey = yNext.a; - var yNextNode = yNext.b; - newMatch = xKey === yNextKey; - } - - - // swap x and y - if (newMatch && oldMatch) - { - index++; - _VirtualDom_diffHelp(xNode, yNextNode, localPatches, index); - _VirtualDom_insertNode(changes, localPatches, xKey, yNode, yIndex, inserts); - index += xNode.b || 0; - - index++; - _VirtualDom_removeNode(changes, localPatches, xKey, xNextNode, index); - index += xNextNode.b || 0; - - xIndex += 2; - yIndex += 2; - continue; - } - - // insert y - if (newMatch) - { - index++; - _VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts); - _VirtualDom_diffHelp(xNode, yNextNode, localPatches, index); - index += xNode.b || 0; - - xIndex += 1; - yIndex += 2; - continue; - } - - // remove x - if (oldMatch) - { - index++; - _VirtualDom_removeNode(changes, localPatches, xKey, xNode, index); - index += xNode.b || 0; - - index++; - _VirtualDom_diffHelp(xNextNode, yNode, localPatches, index); - index += xNextNode.b || 0; - - xIndex += 2; - yIndex += 1; - continue; - } - - // remove x, insert y - if (xNext && xNextKey === yNextKey) - { - index++; - _VirtualDom_removeNode(changes, localPatches, xKey, xNode, index); - _VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts); - index += xNode.b || 0; - - index++; - _VirtualDom_diffHelp(xNextNode, yNextNode, localPatches, index); - index += xNextNode.b || 0; - - xIndex += 2; - yIndex += 2; - continue; - } - - break; - } - - // eat up any remaining nodes with removeNode and insertNode - - while (xIndex < xLen) - { - index++; - var x = xKids[xIndex]; - var xNode = x.b; - _VirtualDom_removeNode(changes, localPatches, x.a, xNode, index); - index += xNode.b || 0; - xIndex++; - } - - while (yIndex < yLen) - { - var endInserts = endInserts || []; - var y = yKids[yIndex]; - _VirtualDom_insertNode(changes, localPatches, y.a, y.b, undefined, endInserts); - yIndex++; - } - - if (localPatches.length > 0 || inserts.length > 0 || endInserts) - { - _VirtualDom_pushPatch(patches, 8, rootIndex, { - w: localPatches, - x: inserts, - y: endInserts - }); - } -} - - - -// CHANGES FROM KEYED DIFF - - -var _VirtualDom_POSTFIX = '_elmW6BL'; - - -function _VirtualDom_insertNode(changes, localPatches, key, vnode, yIndex, inserts) -{ - var entry = changes[key]; - - // never seen this key before - if (!entry) - { - entry = { - c: 0, - z: vnode, - r: yIndex, - s: undefined - }; - - inserts.push({ r: yIndex, A: entry }); - changes[key] = entry; - - return; - } - - // this key was removed earlier, a match! - if (entry.c === 1) - { - inserts.push({ r: yIndex, A: entry }); - - entry.c = 2; - var subPatches = []; - _VirtualDom_diffHelp(entry.z, vnode, subPatches, entry.r); - entry.r = yIndex; - entry.s.s = { - w: subPatches, - A: entry - }; - - return; - } - - // this key has already been inserted or moved, a duplicate! - _VirtualDom_insertNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, yIndex, inserts); -} - - -function _VirtualDom_removeNode(changes, localPatches, key, vnode, index) -{ - var entry = changes[key]; - - // never seen this key before - if (!entry) - { - var patch = _VirtualDom_pushPatch(localPatches, 9, index, undefined); - - changes[key] = { - c: 1, - z: vnode, - r: index, - s: patch - }; - - return; - } - - // this key was inserted earlier, a match! - if (entry.c === 0) - { - entry.c = 2; - var subPatches = []; - _VirtualDom_diffHelp(vnode, entry.z, subPatches, index); - - _VirtualDom_pushPatch(localPatches, 9, index, { - w: subPatches, - A: entry - }); - - return; - } - - // this key has already been removed or moved, a duplicate! - _VirtualDom_removeNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, index); -} - - - -// ADD DOM NODES -// -// Each DOM node has an "index" assigned in order of traversal. It is important -// to minimize our crawl over the actual DOM, so these indexes (along with the -// descendantsCount of virtual nodes) let us skip touching entire subtrees of -// the DOM if we know there are no patches there. - - -function _VirtualDom_addDomNodes(domNode, vNode, patches, eventNode) -{ - _VirtualDom_addDomNodesHelp(domNode, vNode, patches, 0, 0, vNode.b, eventNode); -} - - -// assumes `patches` is non-empty and indexes increase monotonically. -function _VirtualDom_addDomNodesHelp(domNode, vNode, patches, i, low, high, eventNode) -{ - var patch = patches[i]; - var index = patch.r; - - while (index === low) - { - var patchType = patch.$; - - if (patchType === 1) - { - _VirtualDom_addDomNodes(domNode, vNode.k, patch.s, eventNode); - } - else if (patchType === 8) - { - patch.t = domNode; - patch.u = eventNode; - - var subPatches = patch.s.w; - if (subPatches.length > 0) - { - _VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode); - } - } - else if (patchType === 9) - { - patch.t = domNode; - patch.u = eventNode; - - var data = patch.s; - if (data) - { - data.A.s = domNode; - var subPatches = data.w; - if (subPatches.length > 0) - { - _VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode); - } - } - } - else - { - patch.t = domNode; - patch.u = eventNode; - } - - i++; - - if (!(patch = patches[i]) || (index = patch.r) > high) - { - return i; - } - } - - var tag = vNode.$; - - if (tag === 4) - { - var subNode = vNode.k; - - while (subNode.$ === 4) - { - subNode = subNode.k; - } - - return _VirtualDom_addDomNodesHelp(domNode, subNode, patches, i, low + 1, high, domNode.elm_event_node_ref); - } - - // tag must be 1 or 2 at this point - - var vKids = vNode.e; - var childNodes = domNode.childNodes; - for (var j = 0; j < vKids.length; j++) - { - low++; - var vKid = tag === 1 ? vKids[j] : vKids[j].b; - var nextLow = low + (vKid.b || 0); - if (low <= index && index <= nextLow) - { - i = _VirtualDom_addDomNodesHelp(childNodes[j], vKid, patches, i, low, nextLow, eventNode); - if (!(patch = patches[i]) || (index = patch.r) > high) - { - return i; - } - } - low = nextLow; - } - return i; -} - - - -// APPLY PATCHES - - -function _VirtualDom_applyPatches(rootDomNode, oldVirtualNode, patches, eventNode) -{ - if (patches.length === 0) - { - return rootDomNode; - } - - _VirtualDom_addDomNodes(rootDomNode, oldVirtualNode, patches, eventNode); - return _VirtualDom_applyPatchesHelp(rootDomNode, patches); -} - -function _VirtualDom_applyPatchesHelp(rootDomNode, patches) -{ - for (var i = 0; i < patches.length; i++) - { - var patch = patches[i]; - var localDomNode = patch.t - var newNode = _VirtualDom_applyPatch(localDomNode, patch); - if (localDomNode === rootDomNode) - { - rootDomNode = newNode; - } - } - return rootDomNode; -} - -function _VirtualDom_applyPatch(domNode, patch) -{ - switch (patch.$) - { - case 0: - return _VirtualDom_applyPatchRedraw(domNode, patch.s, patch.u); - - case 4: - _VirtualDom_applyFacts(domNode, patch.u, patch.s); - return domNode; - - case 3: - domNode.replaceData(0, domNode.length, patch.s); - return domNode; - - case 1: - return _VirtualDom_applyPatchesHelp(domNode, patch.s); - - case 2: - if (domNode.elm_event_node_ref) - { - domNode.elm_event_node_ref.j = patch.s; - } - else - { - domNode.elm_event_node_ref = { j: patch.s, p: patch.u }; - } - return domNode; - - case 6: - var data = patch.s; - for (var i = 0; i < data.i; i++) - { - domNode.removeChild(domNode.childNodes[data.v]); - } - return domNode; - - case 7: - var data = patch.s; - var kids = data.e; - var i = data.v; - var theEnd = domNode.childNodes[i]; - for (; i < kids.length; i++) - { - domNode.insertBefore(_VirtualDom_render(kids[i], patch.u), theEnd); - } - return domNode; - - case 9: - var data = patch.s; - if (!data) - { - domNode.parentNode.removeChild(domNode); - return domNode; - } - var entry = data.A; - if (typeof entry.r !== 'undefined') - { - domNode.parentNode.removeChild(domNode); - } - entry.s = _VirtualDom_applyPatchesHelp(domNode, data.w); - return domNode; - - case 8: - return _VirtualDom_applyPatchReorder(domNode, patch); - - case 5: - return patch.s(domNode); - - default: - _Debug_crash(10); // 'Ran into an unknown patch!' - } -} - - -function _VirtualDom_applyPatchRedraw(domNode, vNode, eventNode) -{ - var parentNode = domNode.parentNode; - var newNode = _VirtualDom_render(vNode, eventNode); - - if (!newNode.elm_event_node_ref) - { - newNode.elm_event_node_ref = domNode.elm_event_node_ref; - } - - if (parentNode && newNode !== domNode) - { - parentNode.replaceChild(newNode, domNode); - } - return newNode; -} - - -function _VirtualDom_applyPatchReorder(domNode, patch) -{ - var data = patch.s; - - // remove end inserts - var frag = _VirtualDom_applyPatchReorderEndInsertsHelp(data.y, patch); - - // removals - domNode = _VirtualDom_applyPatchesHelp(domNode, data.w); - - // inserts - var inserts = data.x; - for (var i = 0; i < inserts.length; i++) - { - var insert = inserts[i]; - var entry = insert.A; - var node = entry.c === 2 - ? entry.s - : _VirtualDom_render(entry.z, patch.u); - domNode.insertBefore(node, domNode.childNodes[insert.r]); - } - - // add end inserts - if (frag) - { - _VirtualDom_appendChild(domNode, frag); - } - - return domNode; -} - - -function _VirtualDom_applyPatchReorderEndInsertsHelp(endInserts, patch) -{ - if (!endInserts) - { - return; - } - - var frag = _VirtualDom_doc.createDocumentFragment(); - for (var i = 0; i < endInserts.length; i++) - { - var insert = endInserts[i]; - var entry = insert.A; - _VirtualDom_appendChild(frag, entry.c === 2 - ? entry.s - : _VirtualDom_render(entry.z, patch.u) - ); - } - return frag; -} - - -function _VirtualDom_virtualize(node) -{ - // TEXT NODES - - if (node.nodeType === 3) - { - return _VirtualDom_text(node.textContent); - } - - - // WEIRD NODES - - if (node.nodeType !== 1) - { - return _VirtualDom_text(''); - } - - - // ELEMENT NODES - - var attrList = _List_Nil; - var attrs = node.attributes; - for (var i = attrs.length; i--; ) - { - var attr = attrs[i]; - var name = attr.name; - var value = attr.value; - attrList = _List_Cons( A2(_VirtualDom_attribute, name, value), attrList ); - } - - var tag = node.tagName.toLowerCase(); - var kidList = _List_Nil; - var kids = node.childNodes; - - for (var i = kids.length; i--; ) - { - kidList = _List_Cons(_VirtualDom_virtualize(kids[i]), kidList); - } - return A3(_VirtualDom_node, tag, attrList, kidList); -} - -function _VirtualDom_dekey(keyedNode) -{ - var keyedKids = keyedNode.e; - var len = keyedKids.length; - var kids = new Array(len); - for (var i = 0; i < len; i++) - { - kids[i] = keyedKids[i].b; - } - - return { - $: 1, - c: keyedNode.c, - d: keyedNode.d, - e: kids, - f: keyedNode.f, - b: keyedNode.b - }; -} - - - - -// ELEMENT - - -var _Debugger_element; - -var _Browser_element = _Debugger_element || F4(function(impl, flagDecoder, debugMetadata, args) -{ - return _Platform_initialize( - flagDecoder, - args, - impl.init, - impl.update, - impl.subscriptions, - function(sendToApp, initialModel) { - var view = impl.view; - /**_UNUSED/ - var domNode = args['node']; - //*/ - /**/ - var domNode = args && args['node'] ? args['node'] : _Debug_crash(0); - //*/ - var currNode = _VirtualDom_virtualize(domNode); - - return _Browser_makeAnimator(initialModel, function(model) - { - var nextNode = view(model); - var patches = _VirtualDom_diff(currNode, nextNode); - domNode = _VirtualDom_applyPatches(domNode, currNode, patches, sendToApp); - currNode = nextNode; - }); - } - ); -}); - - - -// DOCUMENT - - -var _Debugger_document; - -var _Browser_document = _Debugger_document || F4(function(impl, flagDecoder, debugMetadata, args) -{ - return _Platform_initialize( - flagDecoder, - args, - impl.init, - impl.update, - impl.subscriptions, - function(sendToApp, initialModel) { - var divertHrefToApp = impl.setup && impl.setup(sendToApp) - var view = impl.view; - var title = _VirtualDom_doc.title; - var bodyNode = _VirtualDom_doc.body; - var currNode = _VirtualDom_virtualize(bodyNode); - return _Browser_makeAnimator(initialModel, function(model) - { - _VirtualDom_divertHrefToApp = divertHrefToApp; - var doc = view(model); - var nextNode = _VirtualDom_node('body')(_List_Nil)(doc.body); - var patches = _VirtualDom_diff(currNode, nextNode); - bodyNode = _VirtualDom_applyPatches(bodyNode, currNode, patches, sendToApp); - currNode = nextNode; - _VirtualDom_divertHrefToApp = 0; - (title !== doc.title) && (_VirtualDom_doc.title = title = doc.title); - }); - } - ); -}); - - - -// ANIMATION - - -var _Browser_cancelAnimationFrame = - typeof cancelAnimationFrame !== 'undefined' - ? cancelAnimationFrame - : function(id) { clearTimeout(id); }; - -var _Browser_requestAnimationFrame = - typeof requestAnimationFrame !== 'undefined' - ? requestAnimationFrame - : function(callback) { return setTimeout(callback, 1000 / 60); }; - - -function _Browser_makeAnimator(model, draw) -{ - draw(model); - - var state = 0; - - function updateIfNeeded() - { - state = state === 1 - ? 0 - : ( _Browser_requestAnimationFrame(updateIfNeeded), draw(model), 1 ); - } - - return function(nextModel, isSync) - { - model = nextModel; - - isSync - ? ( draw(model), - state === 2 && (state = 1) - ) - : ( state === 0 && _Browser_requestAnimationFrame(updateIfNeeded), - state = 2 - ); - }; -} - - - -// APPLICATION - - -function _Browser_application(impl) -{ - var onUrlChange = impl.onUrlChange; - var onUrlRequest = impl.onUrlRequest; - var key = function() { key.a(onUrlChange(_Browser_getUrl())); }; - - return _Browser_document({ - setup: function(sendToApp) - { - key.a = sendToApp; - _Browser_window.addEventListener('popstate', key); - _Browser_window.navigator.userAgent.indexOf('Trident') < 0 || _Browser_window.addEventListener('hashchange', key); - - return F2(function(domNode, event) - { - if (!event.ctrlKey && !event.metaKey && !event.shiftKey && event.button < 1 && !domNode.target && !domNode.hasAttribute('download')) - { - event.preventDefault(); - var href = domNode.href; - var curr = _Browser_getUrl(); - var next = $elm$url$Url$fromString(href).a; - sendToApp(onUrlRequest( - (next - && curr.protocol === next.protocol - && curr.host === next.host - && curr.port_.a === next.port_.a - ) - ? $elm$browser$Browser$Internal(next) - : $elm$browser$Browser$External(href) - )); - } - }); - }, - init: function(flags) - { - return A3(impl.init, flags, _Browser_getUrl(), key); - }, - view: impl.view, - update: impl.update, - subscriptions: impl.subscriptions - }); -} - -function _Browser_getUrl() -{ - return $elm$url$Url$fromString(_VirtualDom_doc.location.href).a || _Debug_crash(1); -} - -var _Browser_go = F2(function(key, n) -{ - return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() { - n && history.go(n); - key(); - })); -}); - -var _Browser_pushUrl = F2(function(key, url) -{ - return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() { - history.pushState({}, '', url); - key(); - })); -}); - -var _Browser_replaceUrl = F2(function(key, url) -{ - return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() { - history.replaceState({}, '', url); - key(); - })); -}); - - - -// GLOBAL EVENTS - - -var _Browser_fakeNode = { addEventListener: function() {}, removeEventListener: function() {} }; -var _Browser_doc = typeof document !== 'undefined' ? document : _Browser_fakeNode; -var _Browser_window = typeof window !== 'undefined' ? window : _Browser_fakeNode; - -var _Browser_on = F3(function(node, eventName, sendToSelf) -{ - return _Scheduler_spawn(_Scheduler_binding(function(callback) - { - function handler(event) { _Scheduler_rawSpawn(sendToSelf(event)); } - node.addEventListener(eventName, handler, _VirtualDom_passiveSupported && { passive: true }); - return function() { node.removeEventListener(eventName, handler); }; - })); -}); - -var _Browser_decodeEvent = F2(function(decoder, event) -{ - var result = _Json_runHelp(decoder, event); - return $elm$core$Result$isOk(result) ? $elm$core$Maybe$Just(result.a) : $elm$core$Maybe$Nothing; -}); - - - -// PAGE VISIBILITY - - -function _Browser_visibilityInfo() -{ - return (typeof _VirtualDom_doc.hidden !== 'undefined') - ? { hidden: 'hidden', change: 'visibilitychange' } - : - (typeof _VirtualDom_doc.mozHidden !== 'undefined') - ? { hidden: 'mozHidden', change: 'mozvisibilitychange' } - : - (typeof _VirtualDom_doc.msHidden !== 'undefined') - ? { hidden: 'msHidden', change: 'msvisibilitychange' } - : - (typeof _VirtualDom_doc.webkitHidden !== 'undefined') - ? { hidden: 'webkitHidden', change: 'webkitvisibilitychange' } - : { hidden: 'hidden', change: 'visibilitychange' }; -} - - - -// ANIMATION FRAMES - - -function _Browser_rAF() -{ - return _Scheduler_binding(function(callback) - { - var id = _Browser_requestAnimationFrame(function() { - callback(_Scheduler_succeed(Date.now())); - }); - - return function() { - _Browser_cancelAnimationFrame(id); - }; - }); -} - - -function _Browser_now() -{ - return _Scheduler_binding(function(callback) - { - callback(_Scheduler_succeed(Date.now())); - }); -} - - - -// DOM STUFF - - -function _Browser_withNode(id, doStuff) -{ - return _Scheduler_binding(function(callback) - { - _Browser_requestAnimationFrame(function() { - var node = document.getElementById(id); - callback(node - ? _Scheduler_succeed(doStuff(node)) - : _Scheduler_fail($elm$browser$Browser$Dom$NotFound(id)) - ); - }); - }); -} - - -function _Browser_withWindow(doStuff) -{ - return _Scheduler_binding(function(callback) - { - _Browser_requestAnimationFrame(function() { - callback(_Scheduler_succeed(doStuff())); - }); - }); -} - - -// FOCUS and BLUR - - -var _Browser_call = F2(function(functionName, id) -{ - return _Browser_withNode(id, function(node) { - node[functionName](); - return _Utils_Tuple0; - }); -}); - - - -// WINDOW VIEWPORT - - -function _Browser_getViewport() -{ - return { - scene: _Browser_getScene(), - viewport: { - x: _Browser_window.pageXOffset, - y: _Browser_window.pageYOffset, - width: _Browser_doc.documentElement.clientWidth, - height: _Browser_doc.documentElement.clientHeight - } - }; -} - -function _Browser_getScene() -{ - var body = _Browser_doc.body; - var elem = _Browser_doc.documentElement; - return { - width: Math.max(body.scrollWidth, body.offsetWidth, elem.scrollWidth, elem.offsetWidth, elem.clientWidth), - height: Math.max(body.scrollHeight, body.offsetHeight, elem.scrollHeight, elem.offsetHeight, elem.clientHeight) - }; -} - -var _Browser_setViewport = F2(function(x, y) -{ - return _Browser_withWindow(function() - { - _Browser_window.scroll(x, y); - return _Utils_Tuple0; - }); -}); - - - -// ELEMENT VIEWPORT - - -function _Browser_getViewportOf(id) -{ - return _Browser_withNode(id, function(node) - { - return { - scene: { - width: node.scrollWidth, - height: node.scrollHeight - }, - viewport: { - x: node.scrollLeft, - y: node.scrollTop, - width: node.clientWidth, - height: node.clientHeight - } - }; - }); -} - - -var _Browser_setViewportOf = F3(function(id, x, y) -{ - return _Browser_withNode(id, function(node) - { - node.scrollLeft = x; - node.scrollTop = y; - return _Utils_Tuple0; - }); -}); - - - -// ELEMENT - - -function _Browser_getElement(id) -{ - return _Browser_withNode(id, function(node) - { - var rect = node.getBoundingClientRect(); - var x = _Browser_window.pageXOffset; - var y = _Browser_window.pageYOffset; - return { - scene: _Browser_getScene(), - viewport: { - x: x, - y: y, - width: _Browser_doc.documentElement.clientWidth, - height: _Browser_doc.documentElement.clientHeight - }, - element: { - x: x + rect.left, - y: y + rect.top, - width: rect.width, - height: rect.height - } - }; - }); -} - - - -// LOAD and RELOAD - - -function _Browser_reload(skipCache) -{ - return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function(callback) - { - _VirtualDom_doc.location.reload(skipCache); - })); -} - -function _Browser_load(url) -{ - return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function(callback) - { - try - { - _Browser_window.location = url; - } - catch(err) - { - // Only Firefox can throw a NS_ERROR_MALFORMED_URI exception here. - // Other browsers reload the page, so let's be consistent about that. - _VirtualDom_doc.location.reload(false); - } - })); -} - - -// CREATE - -var _Regex_never = /.^/; - -var _Regex_fromStringWith = F2(function(options, string) -{ - var flags = 'g'; - if (options.multiline) { flags += 'm'; } - if (options.caseInsensitive) { flags += 'i'; } - - try - { - return $elm$core$Maybe$Just(new RegExp(string, flags)); - } - catch(error) - { - return $elm$core$Maybe$Nothing; - } -}); - - -// USE - -var _Regex_contains = F2(function(re, string) -{ - return string.match(re) !== null; -}); - - -var _Regex_findAtMost = F3(function(n, re, str) -{ - var out = []; - var number = 0; - var string = str; - var lastIndex = re.lastIndex; - var prevLastIndex = -1; - var result; - while (number++ < n && (result = re.exec(string))) - { - if (prevLastIndex == re.lastIndex) break; - var i = result.length - 1; - var subs = new Array(i); - while (i > 0) - { - var submatch = result[i]; - subs[--i] = submatch - ? $elm$core$Maybe$Just(submatch) - : $elm$core$Maybe$Nothing; - } - out.push(A4($elm$regex$Regex$Match, result[0], result.index, number, _List_fromArray(subs))); - prevLastIndex = re.lastIndex; - } - re.lastIndex = lastIndex; - return _List_fromArray(out); -}); - - -var _Regex_replaceAtMost = F4(function(n, re, replacer, string) -{ - var count = 0; - function jsReplacer(match) - { - if (count++ >= n) - { - return match; - } - var i = arguments.length - 3; - var submatches = new Array(i); - while (i > 0) - { - var submatch = arguments[i]; - submatches[--i] = submatch - ? $elm$core$Maybe$Just(submatch) - : $elm$core$Maybe$Nothing; - } - return replacer(A4($elm$regex$Regex$Match, match, arguments[arguments.length - 2], count, _List_fromArray(submatches))); - } - return string.replace(re, jsReplacer); -}); - -var _Regex_splitAtMost = F3(function(n, re, str) -{ - var string = str; - var out = []; - var start = re.lastIndex; - var restoreLastIndex = re.lastIndex; - while (n--) - { - var result = re.exec(string); - if (!result) break; - out.push(string.slice(start, result.index)); - start = re.lastIndex; - } - out.push(string.slice(start)); - re.lastIndex = restoreLastIndex; - return _List_fromArray(out); -}); - -var _Regex_infinity = Infinity; - - - -var _Bitwise_and = F2(function(a, b) -{ - return a & b; -}); - -var _Bitwise_or = F2(function(a, b) -{ - return a | b; -}); - -var _Bitwise_xor = F2(function(a, b) -{ - return a ^ b; -}); - -function _Bitwise_complement(a) -{ - return ~a; -}; - -var _Bitwise_shiftLeftBy = F2(function(offset, a) -{ - return a << offset; -}); - -var _Bitwise_shiftRightBy = F2(function(offset, a) -{ - return a >> offset; -}); - -var _Bitwise_shiftRightZfBy = F2(function(offset, a) -{ - return a >>> offset; -}); -var $elm$core$Basics$EQ = {$: 'EQ'}; -var $elm$core$Basics$GT = {$: 'GT'}; -var $elm$core$Basics$LT = {$: 'LT'}; -var $elm$core$List$cons = _List_cons; -var $elm$core$Dict$foldr = F3( - function (func, acc, t) { - foldr: - while (true) { - if (t.$ === 'RBEmpty_elm_builtin') { - return acc; - } else { - var key = t.b; - var value = t.c; - var left = t.d; - var right = t.e; - var $temp$func = func, - $temp$acc = A3( - func, - key, - value, - A3($elm$core$Dict$foldr, func, acc, right)), - $temp$t = left; - func = $temp$func; - acc = $temp$acc; - t = $temp$t; - continue foldr; - } - } - }); -var $elm$core$Dict$toList = function (dict) { - return A3( - $elm$core$Dict$foldr, - F3( - function (key, value, list) { - return A2( - $elm$core$List$cons, - _Utils_Tuple2(key, value), - list); - }), - _List_Nil, - dict); -}; -var $elm$core$Dict$keys = function (dict) { - return A3( - $elm$core$Dict$foldr, - F3( - function (key, value, keyList) { - return A2($elm$core$List$cons, key, keyList); - }), - _List_Nil, - dict); -}; -var $elm$core$Set$toList = function (_v0) { - var dict = _v0.a; - return $elm$core$Dict$keys(dict); -}; -var $elm$core$Elm$JsArray$foldr = _JsArray_foldr; -var $elm$core$Array$foldr = F3( - function (func, baseCase, _v0) { - var tree = _v0.c; - var tail = _v0.d; - var helper = F2( - function (node, acc) { - if (node.$ === 'SubTree') { - var subTree = node.a; - return A3($elm$core$Elm$JsArray$foldr, helper, acc, subTree); - } else { - var values = node.a; - return A3($elm$core$Elm$JsArray$foldr, func, acc, values); - } - }); - return A3( - $elm$core$Elm$JsArray$foldr, - helper, - A3($elm$core$Elm$JsArray$foldr, func, baseCase, tail), - tree); - }); -var $elm$core$Array$toList = function (array) { - return A3($elm$core$Array$foldr, $elm$core$List$cons, _List_Nil, array); -}; -var $elm$core$Result$Err = function (a) { - return {$: 'Err', a: a}; -}; -var $elm$json$Json$Decode$Failure = F2( - function (a, b) { - return {$: 'Failure', a: a, b: b}; - }); -var $elm$json$Json$Decode$Field = F2( - function (a, b) { - return {$: 'Field', a: a, b: b}; - }); -var $elm$json$Json$Decode$Index = F2( - function (a, b) { - return {$: 'Index', a: a, b: b}; - }); -var $elm$core$Result$Ok = function (a) { - return {$: 'Ok', a: a}; -}; -var $elm$json$Json$Decode$OneOf = function (a) { - return {$: 'OneOf', a: a}; -}; -var $elm$core$Basics$False = {$: 'False'}; -var $elm$core$Basics$add = _Basics_add; -var $elm$core$Maybe$Just = function (a) { - return {$: 'Just', a: a}; -}; -var $elm$core$Maybe$Nothing = {$: 'Nothing'}; -var $elm$core$String$all = _String_all; -var $elm$core$Basics$and = _Basics_and; -var $elm$core$Basics$append = _Utils_append; -var $elm$json$Json$Encode$encode = _Json_encode; -var $elm$core$String$fromInt = _String_fromNumber; -var $elm$core$String$join = F2( - function (sep, chunks) { - return A2( - _String_join, - sep, - _List_toArray(chunks)); - }); -var $elm$core$String$split = F2( - function (sep, string) { - return _List_fromArray( - A2(_String_split, sep, string)); - }); -var $elm$json$Json$Decode$indent = function (str) { - return A2( - $elm$core$String$join, - '\n ', - A2($elm$core$String$split, '\n', str)); -}; -var $elm$core$List$foldl = F3( - function (func, acc, list) { - foldl: - while (true) { - if (!list.b) { - return acc; - } else { - var x = list.a; - var xs = list.b; - var $temp$func = func, - $temp$acc = A2(func, x, acc), - $temp$list = xs; - func = $temp$func; - acc = $temp$acc; - list = $temp$list; - continue foldl; - } - } - }); -var $elm$core$List$length = function (xs) { - return A3( - $elm$core$List$foldl, - F2( - function (_v0, i) { - return i + 1; - }), - 0, - xs); -}; -var $elm$core$List$map2 = _List_map2; -var $elm$core$Basics$le = _Utils_le; -var $elm$core$Basics$sub = _Basics_sub; -var $elm$core$List$rangeHelp = F3( - function (lo, hi, list) { - rangeHelp: - while (true) { - if (_Utils_cmp(lo, hi) < 1) { - var $temp$lo = lo, - $temp$hi = hi - 1, - $temp$list = A2($elm$core$List$cons, hi, list); - lo = $temp$lo; - hi = $temp$hi; - list = $temp$list; - continue rangeHelp; - } else { - return list; - } - } - }); -var $elm$core$List$range = F2( - function (lo, hi) { - return A3($elm$core$List$rangeHelp, lo, hi, _List_Nil); - }); -var $elm$core$List$indexedMap = F2( - function (f, xs) { - return A3( - $elm$core$List$map2, - f, - A2( - $elm$core$List$range, - 0, - $elm$core$List$length(xs) - 1), - xs); - }); -var $elm$core$Char$toCode = _Char_toCode; -var $elm$core$Char$isLower = function (_char) { - var code = $elm$core$Char$toCode(_char); - return (97 <= code) && (code <= 122); -}; -var $elm$core$Char$isUpper = function (_char) { - var code = $elm$core$Char$toCode(_char); - return (code <= 90) && (65 <= code); -}; -var $elm$core$Basics$or = _Basics_or; -var $elm$core$Char$isAlpha = function (_char) { - return $elm$core$Char$isLower(_char) || $elm$core$Char$isUpper(_char); -}; -var $elm$core$Char$isDigit = function (_char) { - var code = $elm$core$Char$toCode(_char); - return (code <= 57) && (48 <= code); -}; -var $elm$core$Char$isAlphaNum = function (_char) { - return $elm$core$Char$isLower(_char) || ($elm$core$Char$isUpper(_char) || $elm$core$Char$isDigit(_char)); -}; -var $elm$core$List$reverse = function (list) { - return A3($elm$core$List$foldl, $elm$core$List$cons, _List_Nil, list); -}; -var $elm$core$String$uncons = _String_uncons; -var $elm$json$Json$Decode$errorOneOf = F2( - function (i, error) { - return '\n\n(' + ($elm$core$String$fromInt(i + 1) + (') ' + $elm$json$Json$Decode$indent( - $elm$json$Json$Decode$errorToString(error)))); - }); -var $elm$json$Json$Decode$errorToString = function (error) { - return A2($elm$json$Json$Decode$errorToStringHelp, error, _List_Nil); -}; -var $elm$json$Json$Decode$errorToStringHelp = F2( - function (error, context) { - errorToStringHelp: - while (true) { - switch (error.$) { - case 'Field': - var f = error.a; - var err = error.b; - var isSimple = function () { - var _v1 = $elm$core$String$uncons(f); - if (_v1.$ === 'Nothing') { - return false; - } else { - var _v2 = _v1.a; - var _char = _v2.a; - var rest = _v2.b; - return $elm$core$Char$isAlpha(_char) && A2($elm$core$String$all, $elm$core$Char$isAlphaNum, rest); - } - }(); - var fieldName = isSimple ? ('.' + f) : ('[\'' + (f + '\']')); - var $temp$error = err, - $temp$context = A2($elm$core$List$cons, fieldName, context); - error = $temp$error; - context = $temp$context; - continue errorToStringHelp; - case 'Index': - var i = error.a; - var err = error.b; - var indexName = '[' + ($elm$core$String$fromInt(i) + ']'); - var $temp$error = err, - $temp$context = A2($elm$core$List$cons, indexName, context); - error = $temp$error; - context = $temp$context; - continue errorToStringHelp; - case 'OneOf': - var errors = error.a; - if (!errors.b) { - return 'Ran into a Json.Decode.oneOf with no possibilities' + function () { - if (!context.b) { - return '!'; - } else { - return ' at json' + A2( - $elm$core$String$join, - '', - $elm$core$List$reverse(context)); - } - }(); - } else { - if (!errors.b.b) { - var err = errors.a; - var $temp$error = err, - $temp$context = context; - error = $temp$error; - context = $temp$context; - continue errorToStringHelp; - } else { - var starter = function () { - if (!context.b) { - return 'Json.Decode.oneOf'; - } else { - return 'The Json.Decode.oneOf at json' + A2( - $elm$core$String$join, - '', - $elm$core$List$reverse(context)); - } - }(); - var introduction = starter + (' failed in the following ' + ($elm$core$String$fromInt( - $elm$core$List$length(errors)) + ' ways:')); - return A2( - $elm$core$String$join, - '\n\n', - A2( - $elm$core$List$cons, - introduction, - A2($elm$core$List$indexedMap, $elm$json$Json$Decode$errorOneOf, errors))); - } - } - default: - var msg = error.a; - var json = error.b; - var introduction = function () { - if (!context.b) { - return 'Problem with the given value:\n\n'; - } else { - return 'Problem with the value at json' + (A2( - $elm$core$String$join, - '', - $elm$core$List$reverse(context)) + ':\n\n '); - } - }(); - return introduction + ($elm$json$Json$Decode$indent( - A2($elm$json$Json$Encode$encode, 4, json)) + ('\n\n' + msg)); - } - } - }); -var $elm$core$Array$branchFactor = 32; -var $elm$core$Array$Array_elm_builtin = F4( - function (a, b, c, d) { - return {$: 'Array_elm_builtin', a: a, b: b, c: c, d: d}; - }); -var $elm$core$Elm$JsArray$empty = _JsArray_empty; -var $elm$core$Basics$ceiling = _Basics_ceiling; -var $elm$core$Basics$fdiv = _Basics_fdiv; -var $elm$core$Basics$logBase = F2( - function (base, number) { - return _Basics_log(number) / _Basics_log(base); - }); -var $elm$core$Basics$toFloat = _Basics_toFloat; -var $elm$core$Array$shiftStep = $elm$core$Basics$ceiling( - A2($elm$core$Basics$logBase, 2, $elm$core$Array$branchFactor)); -var $elm$core$Array$empty = A4($elm$core$Array$Array_elm_builtin, 0, $elm$core$Array$shiftStep, $elm$core$Elm$JsArray$empty, $elm$core$Elm$JsArray$empty); -var $elm$core$Elm$JsArray$initialize = _JsArray_initialize; -var $elm$core$Array$Leaf = function (a) { - return {$: 'Leaf', a: a}; -}; -var $elm$core$Basics$apL = F2( - function (f, x) { - return f(x); - }); -var $elm$core$Basics$apR = F2( - function (x, f) { - return f(x); - }); -var $elm$core$Basics$eq = _Utils_equal; -var $elm$core$Basics$floor = _Basics_floor; -var $elm$core$Elm$JsArray$length = _JsArray_length; -var $elm$core$Basics$gt = _Utils_gt; -var $elm$core$Basics$max = F2( - function (x, y) { - return (_Utils_cmp(x, y) > 0) ? x : y; - }); -var $elm$core$Basics$mul = _Basics_mul; -var $elm$core$Array$SubTree = function (a) { - return {$: 'SubTree', a: a}; -}; -var $elm$core$Elm$JsArray$initializeFromList = _JsArray_initializeFromList; -var $elm$core$Array$compressNodes = F2( - function (nodes, acc) { - compressNodes: - while (true) { - var _v0 = A2($elm$core$Elm$JsArray$initializeFromList, $elm$core$Array$branchFactor, nodes); - var node = _v0.a; - var remainingNodes = _v0.b; - var newAcc = A2( - $elm$core$List$cons, - $elm$core$Array$SubTree(node), - acc); - if (!remainingNodes.b) { - return $elm$core$List$reverse(newAcc); - } else { - var $temp$nodes = remainingNodes, - $temp$acc = newAcc; - nodes = $temp$nodes; - acc = $temp$acc; - continue compressNodes; - } - } - }); -var $elm$core$Tuple$first = function (_v0) { - var x = _v0.a; - return x; -}; -var $elm$core$Array$treeFromBuilder = F2( - function (nodeList, nodeListSize) { - treeFromBuilder: - while (true) { - var newNodeSize = $elm$core$Basics$ceiling(nodeListSize / $elm$core$Array$branchFactor); - if (newNodeSize === 1) { - return A2($elm$core$Elm$JsArray$initializeFromList, $elm$core$Array$branchFactor, nodeList).a; - } else { - var $temp$nodeList = A2($elm$core$Array$compressNodes, nodeList, _List_Nil), - $temp$nodeListSize = newNodeSize; - nodeList = $temp$nodeList; - nodeListSize = $temp$nodeListSize; - continue treeFromBuilder; - } - } - }); -var $elm$core$Array$builderToArray = F2( - function (reverseNodeList, builder) { - if (!builder.nodeListSize) { - return A4( - $elm$core$Array$Array_elm_builtin, - $elm$core$Elm$JsArray$length(builder.tail), - $elm$core$Array$shiftStep, - $elm$core$Elm$JsArray$empty, - builder.tail); - } else { - var treeLen = builder.nodeListSize * $elm$core$Array$branchFactor; - var depth = $elm$core$Basics$floor( - A2($elm$core$Basics$logBase, $elm$core$Array$branchFactor, treeLen - 1)); - var correctNodeList = reverseNodeList ? $elm$core$List$reverse(builder.nodeList) : builder.nodeList; - var tree = A2($elm$core$Array$treeFromBuilder, correctNodeList, builder.nodeListSize); - return A4( - $elm$core$Array$Array_elm_builtin, - $elm$core$Elm$JsArray$length(builder.tail) + treeLen, - A2($elm$core$Basics$max, 5, depth * $elm$core$Array$shiftStep), - tree, - builder.tail); - } - }); -var $elm$core$Basics$idiv = _Basics_idiv; -var $elm$core$Basics$lt = _Utils_lt; -var $elm$core$Array$initializeHelp = F5( - function (fn, fromIndex, len, nodeList, tail) { - initializeHelp: - while (true) { - if (fromIndex < 0) { - return A2( - $elm$core$Array$builderToArray, - false, - {nodeList: nodeList, nodeListSize: (len / $elm$core$Array$branchFactor) | 0, tail: tail}); - } else { - var leaf = $elm$core$Array$Leaf( - A3($elm$core$Elm$JsArray$initialize, $elm$core$Array$branchFactor, fromIndex, fn)); - var $temp$fn = fn, - $temp$fromIndex = fromIndex - $elm$core$Array$branchFactor, - $temp$len = len, - $temp$nodeList = A2($elm$core$List$cons, leaf, nodeList), - $temp$tail = tail; - fn = $temp$fn; - fromIndex = $temp$fromIndex; - len = $temp$len; - nodeList = $temp$nodeList; - tail = $temp$tail; - continue initializeHelp; - } - } - }); -var $elm$core$Basics$remainderBy = _Basics_remainderBy; -var $elm$core$Array$initialize = F2( - function (len, fn) { - if (len <= 0) { - return $elm$core$Array$empty; - } else { - var tailLen = len % $elm$core$Array$branchFactor; - var tail = A3($elm$core$Elm$JsArray$initialize, tailLen, len - tailLen, fn); - var initialFromIndex = (len - tailLen) - $elm$core$Array$branchFactor; - return A5($elm$core$Array$initializeHelp, fn, initialFromIndex, len, _List_Nil, tail); - } - }); -var $elm$core$Basics$True = {$: 'True'}; -var $elm$core$Result$isOk = function (result) { - if (result.$ === 'Ok') { - return true; - } else { - return false; - } -}; -var $elm$json$Json$Decode$map = _Json_map1; -var $elm$json$Json$Decode$map2 = _Json_map2; -var $elm$json$Json$Decode$succeed = _Json_succeed; -var $elm$virtual_dom$VirtualDom$toHandlerInt = function (handler) { - switch (handler.$) { - case 'Normal': - return 0; - case 'MayStopPropagation': - return 1; - case 'MayPreventDefault': - return 2; - default: - return 3; - } -}; -var $elm$browser$Browser$External = function (a) { - return {$: 'External', a: a}; -}; -var $elm$browser$Browser$Internal = function (a) { - return {$: 'Internal', a: a}; -}; -var $elm$core$Basics$identity = function (x) { - return x; -}; -var $elm$browser$Browser$Dom$NotFound = function (a) { - return {$: 'NotFound', a: a}; -}; -var $elm$url$Url$Http = {$: 'Http'}; -var $elm$url$Url$Https = {$: 'Https'}; -var $elm$url$Url$Url = F6( - function (protocol, host, port_, path, query, fragment) { - return {fragment: fragment, host: host, path: path, port_: port_, protocol: protocol, query: query}; - }); -var $elm$core$String$contains = _String_contains; -var $elm$core$String$length = _String_length; -var $elm$core$String$slice = _String_slice; -var $elm$core$String$dropLeft = F2( - function (n, string) { - return (n < 1) ? string : A3( - $elm$core$String$slice, - n, - $elm$core$String$length(string), - string); - }); -var $elm$core$String$indexes = _String_indexes; -var $elm$core$String$isEmpty = function (string) { - return string === ''; -}; -var $elm$core$String$left = F2( - function (n, string) { - return (n < 1) ? '' : A3($elm$core$String$slice, 0, n, string); - }); -var $elm$core$String$toInt = _String_toInt; -var $elm$url$Url$chompBeforePath = F5( - function (protocol, path, params, frag, str) { - if ($elm$core$String$isEmpty(str) || A2($elm$core$String$contains, '@', str)) { - return $elm$core$Maybe$Nothing; - } else { - var _v0 = A2($elm$core$String$indexes, ':', str); - if (!_v0.b) { - return $elm$core$Maybe$Just( - A6($elm$url$Url$Url, protocol, str, $elm$core$Maybe$Nothing, path, params, frag)); - } else { - if (!_v0.b.b) { - var i = _v0.a; - var _v1 = $elm$core$String$toInt( - A2($elm$core$String$dropLeft, i + 1, str)); - if (_v1.$ === 'Nothing') { - return $elm$core$Maybe$Nothing; - } else { - var port_ = _v1; - return $elm$core$Maybe$Just( - A6( - $elm$url$Url$Url, - protocol, - A2($elm$core$String$left, i, str), - port_, - path, - params, - frag)); - } - } else { - return $elm$core$Maybe$Nothing; - } - } - } - }); -var $elm$url$Url$chompBeforeQuery = F4( - function (protocol, params, frag, str) { - if ($elm$core$String$isEmpty(str)) { - return $elm$core$Maybe$Nothing; - } else { - var _v0 = A2($elm$core$String$indexes, '/', str); - if (!_v0.b) { - return A5($elm$url$Url$chompBeforePath, protocol, '/', params, frag, str); - } else { - var i = _v0.a; - return A5( - $elm$url$Url$chompBeforePath, - protocol, - A2($elm$core$String$dropLeft, i, str), - params, - frag, - A2($elm$core$String$left, i, str)); - } - } - }); -var $elm$url$Url$chompBeforeFragment = F3( - function (protocol, frag, str) { - if ($elm$core$String$isEmpty(str)) { - return $elm$core$Maybe$Nothing; - } else { - var _v0 = A2($elm$core$String$indexes, '?', str); - if (!_v0.b) { - return A4($elm$url$Url$chompBeforeQuery, protocol, $elm$core$Maybe$Nothing, frag, str); - } else { - var i = _v0.a; - return A4( - $elm$url$Url$chompBeforeQuery, - protocol, - $elm$core$Maybe$Just( - A2($elm$core$String$dropLeft, i + 1, str)), - frag, - A2($elm$core$String$left, i, str)); - } - } - }); -var $elm$url$Url$chompAfterProtocol = F2( - function (protocol, str) { - if ($elm$core$String$isEmpty(str)) { - return $elm$core$Maybe$Nothing; - } else { - var _v0 = A2($elm$core$String$indexes, '#', str); - if (!_v0.b) { - return A3($elm$url$Url$chompBeforeFragment, protocol, $elm$core$Maybe$Nothing, str); - } else { - var i = _v0.a; - return A3( - $elm$url$Url$chompBeforeFragment, - protocol, - $elm$core$Maybe$Just( - A2($elm$core$String$dropLeft, i + 1, str)), - A2($elm$core$String$left, i, str)); - } - } - }); -var $elm$core$String$startsWith = _String_startsWith; -var $elm$url$Url$fromString = function (str) { - return A2($elm$core$String$startsWith, 'http://', str) ? A2( - $elm$url$Url$chompAfterProtocol, - $elm$url$Url$Http, - A2($elm$core$String$dropLeft, 7, str)) : (A2($elm$core$String$startsWith, 'https://', str) ? A2( - $elm$url$Url$chompAfterProtocol, - $elm$url$Url$Https, - A2($elm$core$String$dropLeft, 8, str)) : $elm$core$Maybe$Nothing); -}; -var $elm$core$Basics$never = function (_v0) { - never: - while (true) { - var nvr = _v0.a; - var $temp$_v0 = nvr; - _v0 = $temp$_v0; - continue never; - } -}; -var $elm$core$Task$Perform = function (a) { - return {$: 'Perform', a: a}; -}; -var $elm$core$Task$succeed = _Scheduler_succeed; -var $elm$core$Task$init = $elm$core$Task$succeed(_Utils_Tuple0); -var $elm$core$List$foldrHelper = F4( - function (fn, acc, ctr, ls) { - if (!ls.b) { - return acc; - } else { - var a = ls.a; - var r1 = ls.b; - if (!r1.b) { - return A2(fn, a, acc); - } else { - var b = r1.a; - var r2 = r1.b; - if (!r2.b) { - return A2( - fn, - a, - A2(fn, b, acc)); - } else { - var c = r2.a; - var r3 = r2.b; - if (!r3.b) { - return A2( - fn, - a, - A2( - fn, - b, - A2(fn, c, acc))); - } else { - var d = r3.a; - var r4 = r3.b; - var res = (ctr > 500) ? A3( - $elm$core$List$foldl, - fn, - acc, - $elm$core$List$reverse(r4)) : A4($elm$core$List$foldrHelper, fn, acc, ctr + 1, r4); - return A2( - fn, - a, - A2( - fn, - b, - A2( - fn, - c, - A2(fn, d, res)))); - } - } - } - } - }); -var $elm$core$List$foldr = F3( - function (fn, acc, ls) { - return A4($elm$core$List$foldrHelper, fn, acc, 0, ls); - }); -var $elm$core$List$map = F2( - function (f, xs) { - return A3( - $elm$core$List$foldr, - F2( - function (x, acc) { - return A2( - $elm$core$List$cons, - f(x), - acc); - }), - _List_Nil, - xs); - }); -var $elm$core$Task$andThen = _Scheduler_andThen; -var $elm$core$Task$map = F2( - function (func, taskA) { - return A2( - $elm$core$Task$andThen, - function (a) { - return $elm$core$Task$succeed( - func(a)); - }, - taskA); - }); -var $elm$core$Task$map2 = F3( - function (func, taskA, taskB) { - return A2( - $elm$core$Task$andThen, - function (a) { - return A2( - $elm$core$Task$andThen, - function (b) { - return $elm$core$Task$succeed( - A2(func, a, b)); - }, - taskB); - }, - taskA); - }); -var $elm$core$Task$sequence = function (tasks) { - return A3( - $elm$core$List$foldr, - $elm$core$Task$map2($elm$core$List$cons), - $elm$core$Task$succeed(_List_Nil), - tasks); -}; -var $elm$core$Platform$sendToApp = _Platform_sendToApp; -var $elm$core$Task$spawnCmd = F2( - function (router, _v0) { - var task = _v0.a; - return _Scheduler_spawn( - A2( - $elm$core$Task$andThen, - $elm$core$Platform$sendToApp(router), - task)); - }); -var $elm$core$Task$onEffects = F3( - function (router, commands, state) { - return A2( - $elm$core$Task$map, - function (_v0) { - return _Utils_Tuple0; - }, - $elm$core$Task$sequence( - A2( - $elm$core$List$map, - $elm$core$Task$spawnCmd(router), - commands))); - }); -var $elm$core$Task$onSelfMsg = F3( - function (_v0, _v1, _v2) { - return $elm$core$Task$succeed(_Utils_Tuple0); - }); -var $elm$core$Task$cmdMap = F2( - function (tagger, _v0) { - var task = _v0.a; - return $elm$core$Task$Perform( - A2($elm$core$Task$map, tagger, task)); - }); -_Platform_effectManagers['Task'] = _Platform_createManager($elm$core$Task$init, $elm$core$Task$onEffects, $elm$core$Task$onSelfMsg, $elm$core$Task$cmdMap); -var $elm$core$Task$command = _Platform_leaf('Task'); -var $elm$core$Task$perform = F2( - function (toMessage, task) { - return $elm$core$Task$command( - $elm$core$Task$Perform( - A2($elm$core$Task$map, toMessage, task))); - }); -var $elm$browser$Browser$element = _Browser_element; -var $author$project$Morphir$Web$Insight$Failed = function (a) { - return {$: 'Failed', a: a}; -}; -var $author$project$Morphir$Web$Insight$IRLoaded = function (a) { - return {$: 'IRLoaded', a: a}; -}; -var $author$project$Morphir$Web$Insight$Flag = F2( - function (distribution, config) { - return {config: config, distribution: distribution}; - }); -var $author$project$Morphir$Visual$Theme$ThemeConfig = F2( - function (fontSize, decimalDigit) { - return {decimalDigit: decimalDigit, fontSize: fontSize}; - }); -var $elm$json$Json$Decode$field = _Json_decodeField; -var $elm$json$Json$Decode$int = _Json_decodeInt; -var $elm$json$Json$Decode$oneOf = _Json_oneOf; -var $elm$json$Json$Decode$maybe = function (decoder) { - return $elm$json$Json$Decode$oneOf( - _List_fromArray( - [ - A2($elm$json$Json$Decode$map, $elm$core$Maybe$Just, decoder), - $elm$json$Json$Decode$succeed($elm$core$Maybe$Nothing) - ])); -}; -var $author$project$Morphir$Visual$Theme$Codec$decodeThemeConfig = A3( - $elm$json$Json$Decode$map2, - $author$project$Morphir$Visual$Theme$ThemeConfig, - $elm$json$Json$Decode$maybe( - A2($elm$json$Json$Decode$field, 'fontSize', $elm$json$Json$Decode$int)), - $elm$json$Json$Decode$maybe( - A2($elm$json$Json$Decode$field, 'decimalDigit', $elm$json$Json$Decode$int))); -var $elm$json$Json$Decode$andThen = _Json_andThen; -var $elm$core$String$concat = function (strings) { - return A2($elm$core$String$join, '', strings); -}; -var $author$project$Morphir$IR$Distribution$Codec$currentFormatVersion = 1; -var $author$project$Morphir$IR$Distribution$Library = F3( - function (a, b, c) { - return {$: 'Library', a: a, b: b, c: c}; - }); -var $author$project$Morphir$IR$Package$Definition = function (modules) { - return {modules: modules}; -}; -var $author$project$Morphir$IR$AccessControlled$AccessControlled = F2( - function (access, value) { - return {access: access, value: value}; - }); -var $author$project$Morphir$IR$AccessControlled$Private = {$: 'Private'}; -var $author$project$Morphir$IR$AccessControlled$Public = {$: 'Public'}; -var $elm$json$Json$Decode$fail = _Json_fail; -var $elm$json$Json$Decode$index = _Json_decodeIndex; -var $elm$json$Json$Decode$string = _Json_decodeString; -var $author$project$Morphir$IR$AccessControlled$Codec$decodeAccessControlled = function (decodeValue) { - return A2( - $elm$json$Json$Decode$andThen, - function (tag) { - switch (tag) { - case 'public': - return A2( - $elm$json$Json$Decode$map, - $author$project$Morphir$IR$AccessControlled$AccessControlled($author$project$Morphir$IR$AccessControlled$Public), - A2($elm$json$Json$Decode$index, 1, decodeValue)); - case 'private': - return A2( - $elm$json$Json$Decode$map, - $author$project$Morphir$IR$AccessControlled$AccessControlled($author$project$Morphir$IR$AccessControlled$Private), - A2($elm$json$Json$Decode$index, 1, decodeValue)); - default: - var other = tag; - return $elm$json$Json$Decode$fail('Unknown access controlled type: ' + other); - } - }, - A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string)); -}; -var $author$project$Morphir$IR$Module$Definition = F2( - function (types, values) { - return {types: types, values: values}; - }); -var $author$project$Morphir$IR$Type$CustomTypeDefinition = F2( - function (a, b) { - return {$: 'CustomTypeDefinition', a: a, b: b}; - }); -var $author$project$Morphir$IR$Type$TypeAliasDefinition = F2( - function (a, b) { - return {$: 'TypeAliasDefinition', a: a, b: b}; - }); -var $author$project$Morphir$IR$Name$fromList = function (words) { - return words; -}; -var $elm$json$Json$Decode$list = _Json_decodeList; -var $author$project$Morphir$IR$Name$Codec$decodeName = A2( - $elm$json$Json$Decode$map, - $author$project$Morphir$IR$Name$fromList, - $elm$json$Json$Decode$list($elm$json$Json$Decode$string)); -var $author$project$Morphir$IR$Type$ExtensibleRecord = F3( - function (a, b, c) { - return {$: 'ExtensibleRecord', a: a, b: b, c: c}; - }); -var $author$project$Morphir$IR$Type$Field = F2( - function (name, tpe) { - return {name: name, tpe: tpe}; - }); -var $author$project$Morphir$IR$Type$Function = F3( - function (a, b, c) { - return {$: 'Function', a: a, b: b, c: c}; - }); -var $author$project$Morphir$IR$Type$Record = F2( - function (a, b) { - return {$: 'Record', a: a, b: b}; - }); -var $author$project$Morphir$IR$Type$Reference = F3( - function (a, b, c) { - return {$: 'Reference', a: a, b: b, c: c}; - }); -var $author$project$Morphir$IR$Type$Tuple = F2( - function (a, b) { - return {$: 'Tuple', a: a, b: b}; - }); -var $author$project$Morphir$IR$Type$Unit = function (a) { - return {$: 'Unit', a: a}; -}; -var $author$project$Morphir$IR$Type$Variable = F2( - function (a, b) { - return {$: 'Variable', a: a, b: b}; - }); -var $author$project$Morphir$IR$Path$fromList = function (names) { - return names; -}; -var $author$project$Morphir$IR$Path$Codec$decodePath = A2( - $elm$json$Json$Decode$map, - $author$project$Morphir$IR$Path$fromList, - $elm$json$Json$Decode$list($author$project$Morphir$IR$Name$Codec$decodeName)); -var $author$project$Morphir$IR$FQName$fQName = F3( - function (packagePath, modulePath, localName) { - return _Utils_Tuple3(packagePath, modulePath, localName); - }); -var $elm$json$Json$Decode$map3 = _Json_map3; -var $author$project$Morphir$IR$FQName$Codec$decodeFQName = A4( - $elm$json$Json$Decode$map3, - $author$project$Morphir$IR$FQName$fQName, - A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Path$Codec$decodePath), - A2($elm$json$Json$Decode$index, 1, $author$project$Morphir$IR$Path$Codec$decodePath), - A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Name$Codec$decodeName)); -var $elm$json$Json$Decode$lazy = function (thunk) { - return A2( - $elm$json$Json$Decode$andThen, - thunk, - $elm$json$Json$Decode$succeed(_Utils_Tuple0)); -}; -var $author$project$Morphir$IR$Type$Codec$decodeField = function (decodeAttributes) { - return A3( - $elm$json$Json$Decode$map2, - $author$project$Morphir$IR$Type$Field, - A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName), - A2( - $elm$json$Json$Decode$index, - 1, - $author$project$Morphir$IR$Type$Codec$decodeType(decodeAttributes))); -}; -var $author$project$Morphir$IR$Type$Codec$decodeType = function (decodeAttributes) { - var lazyDecodeType = $elm$json$Json$Decode$lazy( - function (_v3) { - return $author$project$Morphir$IR$Type$Codec$decodeType(decodeAttributes); - }); - var lazyDecodeField = $elm$json$Json$Decode$lazy( - function (_v2) { - return $author$project$Morphir$IR$Type$Codec$decodeField(decodeAttributes); - }); - return A2( - $elm$json$Json$Decode$andThen, - function (kind) { - switch (kind) { - case 'variable': - return A3( - $elm$json$Json$Decode$map2, - $author$project$Morphir$IR$Type$Variable, - A2($elm$json$Json$Decode$index, 1, decodeAttributes), - A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Name$Codec$decodeName)); - case 'reference': - return A4( - $elm$json$Json$Decode$map3, - $author$project$Morphir$IR$Type$Reference, - A2($elm$json$Json$Decode$index, 1, decodeAttributes), - A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$FQName$Codec$decodeFQName), - A2( - $elm$json$Json$Decode$index, - 3, - $elm$json$Json$Decode$list( - $elm$json$Json$Decode$lazy( - function (_v1) { - return $author$project$Morphir$IR$Type$Codec$decodeType(decodeAttributes); - })))); - case 'tuple': - return A3( - $elm$json$Json$Decode$map2, - $author$project$Morphir$IR$Type$Tuple, - A2($elm$json$Json$Decode$index, 1, decodeAttributes), - A2( - $elm$json$Json$Decode$index, - 2, - $elm$json$Json$Decode$list(lazyDecodeType))); - case 'record': - return A3( - $elm$json$Json$Decode$map2, - $author$project$Morphir$IR$Type$Record, - A2($elm$json$Json$Decode$index, 1, decodeAttributes), - A2( - $elm$json$Json$Decode$index, - 2, - $elm$json$Json$Decode$list(lazyDecodeField))); - case 'extensible_record': - return A4( - $elm$json$Json$Decode$map3, - $author$project$Morphir$IR$Type$ExtensibleRecord, - A2($elm$json$Json$Decode$index, 1, decodeAttributes), - A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Name$Codec$decodeName), - A2( - $elm$json$Json$Decode$index, - 3, - $elm$json$Json$Decode$list(lazyDecodeField))); - case 'function': - return A4( - $elm$json$Json$Decode$map3, - $author$project$Morphir$IR$Type$Function, - A2($elm$json$Json$Decode$index, 1, decodeAttributes), - A2($elm$json$Json$Decode$index, 2, lazyDecodeType), - A2($elm$json$Json$Decode$index, 3, lazyDecodeType)); - case 'unit': - return A2( - $elm$json$Json$Decode$map, - $author$project$Morphir$IR$Type$Unit, - A2($elm$json$Json$Decode$index, 1, decodeAttributes)); - default: - return $elm$json$Json$Decode$fail('Unknown kind: ' + kind); - } - }, - A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string)); -}; -var $elm$core$Dict$RBEmpty_elm_builtin = {$: 'RBEmpty_elm_builtin'}; -var $elm$core$Dict$empty = $elm$core$Dict$RBEmpty_elm_builtin; -var $elm$core$Dict$Black = {$: 'Black'}; -var $elm$core$Dict$RBNode_elm_builtin = F5( - function (a, b, c, d, e) { - return {$: 'RBNode_elm_builtin', a: a, b: b, c: c, d: d, e: e}; - }); -var $elm$core$Dict$Red = {$: 'Red'}; -var $elm$core$Dict$balance = F5( - function (color, key, value, left, right) { - if ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Red')) { - var _v1 = right.a; - var rK = right.b; - var rV = right.c; - var rLeft = right.d; - var rRight = right.e; - if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) { - var _v3 = left.a; - var lK = left.b; - var lV = left.c; - var lLeft = left.d; - var lRight = left.e; - return A5( - $elm$core$Dict$RBNode_elm_builtin, - $elm$core$Dict$Red, - key, - value, - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, lK, lV, lLeft, lRight), - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, rK, rV, rLeft, rRight)); - } else { - return A5( - $elm$core$Dict$RBNode_elm_builtin, - color, - rK, - rV, - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, key, value, left, rLeft), - rRight); - } - } else { - if ((((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) && (left.d.$ === 'RBNode_elm_builtin')) && (left.d.a.$ === 'Red')) { - var _v5 = left.a; - var lK = left.b; - var lV = left.c; - var _v6 = left.d; - var _v7 = _v6.a; - var llK = _v6.b; - var llV = _v6.c; - var llLeft = _v6.d; - var llRight = _v6.e; - var lRight = left.e; - return A5( - $elm$core$Dict$RBNode_elm_builtin, - $elm$core$Dict$Red, - lK, - lV, - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, llK, llV, llLeft, llRight), - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, key, value, lRight, right)); - } else { - return A5($elm$core$Dict$RBNode_elm_builtin, color, key, value, left, right); - } - } - }); -var $elm$core$Basics$compare = _Utils_compare; -var $elm$core$Dict$insertHelp = F3( - function (key, value, dict) { - if (dict.$ === 'RBEmpty_elm_builtin') { - return A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, key, value, $elm$core$Dict$RBEmpty_elm_builtin, $elm$core$Dict$RBEmpty_elm_builtin); - } else { - var nColor = dict.a; - var nKey = dict.b; - var nValue = dict.c; - var nLeft = dict.d; - var nRight = dict.e; - var _v1 = A2($elm$core$Basics$compare, key, nKey); - switch (_v1.$) { - case 'LT': - return A5( - $elm$core$Dict$balance, - nColor, - nKey, - nValue, - A3($elm$core$Dict$insertHelp, key, value, nLeft), - nRight); - case 'EQ': - return A5($elm$core$Dict$RBNode_elm_builtin, nColor, nKey, value, nLeft, nRight); - default: - return A5( - $elm$core$Dict$balance, - nColor, - nKey, - nValue, - nLeft, - A3($elm$core$Dict$insertHelp, key, value, nRight)); - } - } - }); -var $elm$core$Dict$insert = F3( - function (key, value, dict) { - var _v0 = A3($elm$core$Dict$insertHelp, key, value, dict); - if ((_v0.$ === 'RBNode_elm_builtin') && (_v0.a.$ === 'Red')) { - var _v1 = _v0.a; - var k = _v0.b; - var v = _v0.c; - var l = _v0.d; - var r = _v0.e; - return A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, k, v, l, r); - } else { - var x = _v0; - return x; - } - }); -var $elm$core$Dict$fromList = function (assocs) { - return A3( - $elm$core$List$foldl, - F2( - function (_v0, dict) { - var key = _v0.a; - var value = _v0.b; - return A3($elm$core$Dict$insert, key, value, dict); - }), - $elm$core$Dict$empty, - assocs); -}; -var $elm$core$Tuple$pair = F2( - function (a, b) { - return _Utils_Tuple2(a, b); - }); -var $author$project$Morphir$IR$Type$Codec$decodeConstructors = function (decodeAttributes) { - return A2( - $elm$json$Json$Decode$map, - $elm$core$Dict$fromList, - $elm$json$Json$Decode$list( - A3( - $elm$json$Json$Decode$map2, - $elm$core$Tuple$pair, - A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName), - A2( - $elm$json$Json$Decode$index, - 1, - $elm$json$Json$Decode$list( - A3( - $elm$json$Json$Decode$map2, - $elm$core$Tuple$pair, - A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName), - A2( - $elm$json$Json$Decode$index, - 1, - $author$project$Morphir$IR$Type$Codec$decodeType(decodeAttributes)))))))); -}; -var $author$project$Morphir$IR$Type$Codec$decodeDefinition = function (decodeAttributes) { - return A2( - $elm$json$Json$Decode$andThen, - function (kind) { - switch (kind) { - case 'type_alias_definition': - return A3( - $elm$json$Json$Decode$map2, - $author$project$Morphir$IR$Type$TypeAliasDefinition, - A2( - $elm$json$Json$Decode$index, - 1, - $elm$json$Json$Decode$list($author$project$Morphir$IR$Name$Codec$decodeName)), - A2( - $elm$json$Json$Decode$index, - 2, - $author$project$Morphir$IR$Type$Codec$decodeType(decodeAttributes))); - case 'custom_type_definition': - return A3( - $elm$json$Json$Decode$map2, - $author$project$Morphir$IR$Type$CustomTypeDefinition, - A2( - $elm$json$Json$Decode$index, - 1, - $elm$json$Json$Decode$list($author$project$Morphir$IR$Name$Codec$decodeName)), - A2( - $elm$json$Json$Decode$index, - 2, - $author$project$Morphir$IR$AccessControlled$Codec$decodeAccessControlled( - $author$project$Morphir$IR$Type$Codec$decodeConstructors(decodeAttributes)))); - default: - return $elm$json$Json$Decode$fail('Unknown kind: ' + kind); - } - }, - A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string)); -}; -var $author$project$Morphir$IR$Value$Apply = F3( - function (a, b, c) { - return {$: 'Apply', a: a, b: b, c: c}; - }); -var $author$project$Morphir$IR$Value$Constructor = F2( - function (a, b) { - return {$: 'Constructor', a: a, b: b}; - }); -var $author$project$Morphir$IR$Value$Definition = F3( - function (inputTypes, outputType, body) { - return {body: body, inputTypes: inputTypes, outputType: outputType}; - }); -var $author$project$Morphir$IR$Value$Destructure = F4( - function (a, b, c, d) { - return {$: 'Destructure', a: a, b: b, c: c, d: d}; - }); -var $author$project$Morphir$IR$Value$Field = F3( - function (a, b, c) { - return {$: 'Field', a: a, b: b, c: c}; - }); -var $author$project$Morphir$IR$Value$FieldFunction = F2( - function (a, b) { - return {$: 'FieldFunction', a: a, b: b}; - }); -var $author$project$Morphir$IR$Value$IfThenElse = F4( - function (a, b, c, d) { - return {$: 'IfThenElse', a: a, b: b, c: c, d: d}; - }); -var $author$project$Morphir$IR$Value$Lambda = F3( - function (a, b, c) { - return {$: 'Lambda', a: a, b: b, c: c}; - }); -var $author$project$Morphir$IR$Value$LetDefinition = F4( - function (a, b, c, d) { - return {$: 'LetDefinition', a: a, b: b, c: c, d: d}; - }); -var $author$project$Morphir$IR$Value$LetRecursion = F3( - function (a, b, c) { - return {$: 'LetRecursion', a: a, b: b, c: c}; - }); -var $author$project$Morphir$IR$Value$List = F2( - function (a, b) { - return {$: 'List', a: a, b: b}; - }); -var $author$project$Morphir$IR$Value$Literal = F2( - function (a, b) { - return {$: 'Literal', a: a, b: b}; - }); -var $author$project$Morphir$IR$Value$PatternMatch = F3( - function (a, b, c) { - return {$: 'PatternMatch', a: a, b: b, c: c}; - }); -var $author$project$Morphir$IR$Value$Record = F2( - function (a, b) { - return {$: 'Record', a: a, b: b}; - }); -var $author$project$Morphir$IR$Value$Reference = F2( - function (a, b) { - return {$: 'Reference', a: a, b: b}; - }); -var $author$project$Morphir$IR$Value$Tuple = F2( - function (a, b) { - return {$: 'Tuple', a: a, b: b}; - }); -var $author$project$Morphir$IR$Value$Unit = function (a) { - return {$: 'Unit', a: a}; -}; -var $author$project$Morphir$IR$Value$UpdateRecord = F3( - function (a, b, c) { - return {$: 'UpdateRecord', a: a, b: b, c: c}; - }); -var $author$project$Morphir$IR$Value$Variable = F2( - function (a, b) { - return {$: 'Variable', a: a, b: b}; - }); -var $author$project$Morphir$IR$Literal$BoolLiteral = function (a) { - return {$: 'BoolLiteral', a: a}; -}; -var $author$project$Morphir$IR$Literal$CharLiteral = function (a) { - return {$: 'CharLiteral', a: a}; -}; -var $author$project$Morphir$IR$Literal$FloatLiteral = function (a) { - return {$: 'FloatLiteral', a: a}; -}; -var $author$project$Morphir$IR$Literal$IntLiteral = function (a) { - return {$: 'IntLiteral', a: a}; -}; -var $author$project$Morphir$IR$Literal$StringLiteral = function (a) { - return {$: 'StringLiteral', a: a}; -}; -var $elm$json$Json$Decode$bool = _Json_decodeBool; -var $elm$json$Json$Decode$float = _Json_decodeFloat; -var $author$project$Morphir$IR$Literal$Codec$decodeLiteral = A2( - $elm$json$Json$Decode$andThen, - function (kind) { - switch (kind) { - case 'bool_literal': - return A2( - $elm$json$Json$Decode$map, - $author$project$Morphir$IR$Literal$BoolLiteral, - A2($elm$json$Json$Decode$index, 1, $elm$json$Json$Decode$bool)); - case 'char_literal': - return A2( - $elm$json$Json$Decode$map, - $author$project$Morphir$IR$Literal$CharLiteral, - A2( - $elm$json$Json$Decode$andThen, - function (str) { - var _v1 = $elm$core$String$uncons(str); - if (_v1.$ === 'Just') { - var _v2 = _v1.a; - var ch = _v2.a; - return $elm$json$Json$Decode$succeed(ch); - } else { - return $elm$json$Json$Decode$fail('Single char expected'); - } - }, - A2($elm$json$Json$Decode$index, 1, $elm$json$Json$Decode$string))); - case 'string_literal': - return A2( - $elm$json$Json$Decode$map, - $author$project$Morphir$IR$Literal$StringLiteral, - A2($elm$json$Json$Decode$index, 1, $elm$json$Json$Decode$string)); - case 'int_literal': - return A2( - $elm$json$Json$Decode$map, - $author$project$Morphir$IR$Literal$IntLiteral, - A2($elm$json$Json$Decode$index, 1, $elm$json$Json$Decode$int)); - case 'float_literal': - return A2( - $elm$json$Json$Decode$map, - $author$project$Morphir$IR$Literal$FloatLiteral, - A2($elm$json$Json$Decode$index, 1, $elm$json$Json$Decode$float)); - default: - var other = kind; - return $elm$json$Json$Decode$fail('Unknown literal type: ' + other); - } - }, - A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string)); -var $author$project$Morphir$IR$Value$AsPattern = F3( - function (a, b, c) { - return {$: 'AsPattern', a: a, b: b, c: c}; - }); -var $author$project$Morphir$IR$Value$ConstructorPattern = F3( - function (a, b, c) { - return {$: 'ConstructorPattern', a: a, b: b, c: c}; - }); -var $author$project$Morphir$IR$Value$EmptyListPattern = function (a) { - return {$: 'EmptyListPattern', a: a}; -}; -var $author$project$Morphir$IR$Value$HeadTailPattern = F3( - function (a, b, c) { - return {$: 'HeadTailPattern', a: a, b: b, c: c}; - }); -var $author$project$Morphir$IR$Value$LiteralPattern = F2( - function (a, b) { - return {$: 'LiteralPattern', a: a, b: b}; - }); -var $author$project$Morphir$IR$Value$TuplePattern = F2( - function (a, b) { - return {$: 'TuplePattern', a: a, b: b}; - }); -var $author$project$Morphir$IR$Value$UnitPattern = function (a) { - return {$: 'UnitPattern', a: a}; -}; -var $author$project$Morphir$IR$Value$WildcardPattern = function (a) { - return {$: 'WildcardPattern', a: a}; -}; -var $author$project$Morphir$IR$Value$Codec$decodePattern = function (decodeAttributes) { - var lazyDecodePattern = $elm$json$Json$Decode$lazy( - function (_v1) { - return $author$project$Morphir$IR$Value$Codec$decodePattern(decodeAttributes); - }); - return A2( - $elm$json$Json$Decode$andThen, - function (kind) { - switch (kind) { - case 'wildcard_pattern': - return A2( - $elm$json$Json$Decode$map, - $author$project$Morphir$IR$Value$WildcardPattern, - A2($elm$json$Json$Decode$index, 1, decodeAttributes)); - case 'as_pattern': - return A4( - $elm$json$Json$Decode$map3, - $author$project$Morphir$IR$Value$AsPattern, - A2($elm$json$Json$Decode$index, 1, decodeAttributes), - A2($elm$json$Json$Decode$index, 2, lazyDecodePattern), - A2($elm$json$Json$Decode$index, 3, $author$project$Morphir$IR$Name$Codec$decodeName)); - case 'tuple_pattern': - return A3( - $elm$json$Json$Decode$map2, - $author$project$Morphir$IR$Value$TuplePattern, - A2($elm$json$Json$Decode$index, 1, decodeAttributes), - A2( - $elm$json$Json$Decode$index, - 2, - $elm$json$Json$Decode$list(lazyDecodePattern))); - case 'constructor_pattern': - return A4( - $elm$json$Json$Decode$map3, - $author$project$Morphir$IR$Value$ConstructorPattern, - A2($elm$json$Json$Decode$index, 1, decodeAttributes), - A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$FQName$Codec$decodeFQName), - A2( - $elm$json$Json$Decode$index, - 3, - $elm$json$Json$Decode$list(lazyDecodePattern))); - case 'empty_list_pattern': - return A2( - $elm$json$Json$Decode$map, - $author$project$Morphir$IR$Value$EmptyListPattern, - A2($elm$json$Json$Decode$index, 1, decodeAttributes)); - case 'head_tail_pattern': - return A4( - $elm$json$Json$Decode$map3, - $author$project$Morphir$IR$Value$HeadTailPattern, - A2($elm$json$Json$Decode$index, 1, decodeAttributes), - A2($elm$json$Json$Decode$index, 2, lazyDecodePattern), - A2($elm$json$Json$Decode$index, 3, lazyDecodePattern)); - case 'literal_pattern': - return A3( - $elm$json$Json$Decode$map2, - $author$project$Morphir$IR$Value$LiteralPattern, - A2($elm$json$Json$Decode$index, 1, decodeAttributes), - A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Literal$Codec$decodeLiteral)); - case 'unit_pattern': - return A2( - $elm$json$Json$Decode$map, - $author$project$Morphir$IR$Value$UnitPattern, - A2($elm$json$Json$Decode$index, 1, decodeAttributes)); - default: - var other = kind; - return $elm$json$Json$Decode$fail('Unknown pattern type: ' + other); - } - }, - A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string)); -}; -var $elm$json$Json$Decode$map4 = _Json_map4; -var $author$project$Morphir$IR$Value$Codec$decodeDefinition = F2( - function (decodeTypeAttributes, decodeValueAttributes) { - return A4( - $elm$json$Json$Decode$map3, - $author$project$Morphir$IR$Value$Definition, - A2( - $elm$json$Json$Decode$field, - 'inputTypes', - $elm$json$Json$Decode$list( - A4( - $elm$json$Json$Decode$map3, - F3( - function (n, a, t) { - return _Utils_Tuple3(n, a, t); - }), - A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName), - A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), - A2( - $elm$json$Json$Decode$index, - 2, - $author$project$Morphir$IR$Type$Codec$decodeType(decodeTypeAttributes))))), - A2( - $elm$json$Json$Decode$field, - 'outputType', - $author$project$Morphir$IR$Type$Codec$decodeType(decodeTypeAttributes)), - A2( - $elm$json$Json$Decode$field, - 'body', - $elm$json$Json$Decode$lazy( - function (_v2) { - return A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes); - }))); - }); -var $author$project$Morphir$IR$Value$Codec$decodeValue = F2( - function (decodeTypeAttributes, decodeValueAttributes) { - var lazyDecodeValue = $elm$json$Json$Decode$lazy( - function (_v1) { - return A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes); - }); - return A2( - $elm$json$Json$Decode$andThen, - function (kind) { - switch (kind) { - case 'literal': - return A3( - $elm$json$Json$Decode$map2, - $author$project$Morphir$IR$Value$Literal, - A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), - A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Literal$Codec$decodeLiteral)); - case 'constructor': - return A3( - $elm$json$Json$Decode$map2, - $author$project$Morphir$IR$Value$Constructor, - A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), - A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$FQName$Codec$decodeFQName)); - case 'tuple': - return A3( - $elm$json$Json$Decode$map2, - $author$project$Morphir$IR$Value$Tuple, - A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), - A2( - $elm$json$Json$Decode$index, - 2, - $elm$json$Json$Decode$list(lazyDecodeValue))); - case 'list': - return A3( - $elm$json$Json$Decode$map2, - $author$project$Morphir$IR$Value$List, - A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), - A2( - $elm$json$Json$Decode$index, - 2, - $elm$json$Json$Decode$list(lazyDecodeValue))); - case 'record': - return A3( - $elm$json$Json$Decode$map2, - $author$project$Morphir$IR$Value$Record, - A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), - A2( - $elm$json$Json$Decode$index, - 2, - $elm$json$Json$Decode$list( - A3( - $elm$json$Json$Decode$map2, - $elm$core$Tuple$pair, - A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName), - A2( - $elm$json$Json$Decode$index, - 1, - A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)))))); - case 'variable': - return A3( - $elm$json$Json$Decode$map2, - $author$project$Morphir$IR$Value$Variable, - A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), - A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Name$Codec$decodeName)); - case 'reference': - return A3( - $elm$json$Json$Decode$map2, - $author$project$Morphir$IR$Value$Reference, - A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), - A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$FQName$Codec$decodeFQName)); - case 'field': - return A4( - $elm$json$Json$Decode$map3, - $author$project$Morphir$IR$Value$Field, - A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), - A2( - $elm$json$Json$Decode$index, - 2, - A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)), - A2($elm$json$Json$Decode$index, 3, $author$project$Morphir$IR$Name$Codec$decodeName)); - case 'field_function': - return A3( - $elm$json$Json$Decode$map2, - $author$project$Morphir$IR$Value$FieldFunction, - A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), - A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Name$Codec$decodeName)); - case 'apply': - return A4( - $elm$json$Json$Decode$map3, - $author$project$Morphir$IR$Value$Apply, - A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), - A2( - $elm$json$Json$Decode$index, - 2, - A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)), - A2( - $elm$json$Json$Decode$index, - 3, - A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes))); - case 'lambda': - return A4( - $elm$json$Json$Decode$map3, - $author$project$Morphir$IR$Value$Lambda, - A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), - A2( - $elm$json$Json$Decode$index, - 2, - $author$project$Morphir$IR$Value$Codec$decodePattern(decodeValueAttributes)), - A2( - $elm$json$Json$Decode$index, - 3, - A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes))); - case 'let_definition': - return A5( - $elm$json$Json$Decode$map4, - $author$project$Morphir$IR$Value$LetDefinition, - A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), - A2($elm$json$Json$Decode$index, 2, $author$project$Morphir$IR$Name$Codec$decodeName), - A2( - $elm$json$Json$Decode$index, - 3, - A2($author$project$Morphir$IR$Value$Codec$decodeDefinition, decodeTypeAttributes, decodeValueAttributes)), - A2( - $elm$json$Json$Decode$index, - 4, - A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes))); - case 'let_recursion': - return A4( - $elm$json$Json$Decode$map3, - $author$project$Morphir$IR$Value$LetRecursion, - A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), - A2( - $elm$json$Json$Decode$index, - 2, - A2( - $elm$json$Json$Decode$map, - $elm$core$Dict$fromList, - $elm$json$Json$Decode$list( - A3( - $elm$json$Json$Decode$map2, - $elm$core$Tuple$pair, - A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName), - A2( - $elm$json$Json$Decode$index, - 1, - A2($author$project$Morphir$IR$Value$Codec$decodeDefinition, decodeTypeAttributes, decodeValueAttributes)))))), - A2( - $elm$json$Json$Decode$index, - 3, - A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes))); - case 'destructure': - return A5( - $elm$json$Json$Decode$map4, - $author$project$Morphir$IR$Value$Destructure, - A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), - A2( - $elm$json$Json$Decode$index, - 2, - $author$project$Morphir$IR$Value$Codec$decodePattern(decodeValueAttributes)), - A2( - $elm$json$Json$Decode$index, - 3, - A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)), - A2( - $elm$json$Json$Decode$index, - 4, - A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes))); - case 'if_then_else': - return A5( - $elm$json$Json$Decode$map4, - $author$project$Morphir$IR$Value$IfThenElse, - A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), - A2( - $elm$json$Json$Decode$index, - 2, - A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)), - A2( - $elm$json$Json$Decode$index, - 3, - A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)), - A2( - $elm$json$Json$Decode$index, - 4, - A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes))); - case 'pattern_match': - return A4( - $elm$json$Json$Decode$map3, - $author$project$Morphir$IR$Value$PatternMatch, - A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), - A2( - $elm$json$Json$Decode$index, - 2, - A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)), - A2( - $elm$json$Json$Decode$index, - 3, - $elm$json$Json$Decode$list( - A3( - $elm$json$Json$Decode$map2, - $elm$core$Tuple$pair, - A2( - $elm$json$Json$Decode$index, - 0, - $author$project$Morphir$IR$Value$Codec$decodePattern(decodeValueAttributes)), - A2( - $elm$json$Json$Decode$index, - 1, - A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)))))); - case 'update_record': - return A4( - $elm$json$Json$Decode$map3, - $author$project$Morphir$IR$Value$UpdateRecord, - A2($elm$json$Json$Decode$index, 1, decodeValueAttributes), - A2( - $elm$json$Json$Decode$index, - 2, - A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)), - A2( - $elm$json$Json$Decode$index, - 3, - $elm$json$Json$Decode$list( - A3( - $elm$json$Json$Decode$map2, - $elm$core$Tuple$pair, - A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName), - A2( - $elm$json$Json$Decode$index, - 1, - A2($author$project$Morphir$IR$Value$Codec$decodeValue, decodeTypeAttributes, decodeValueAttributes)))))); - case 'unit': - return A2( - $elm$json$Json$Decode$map, - $author$project$Morphir$IR$Value$Unit, - A2($elm$json$Json$Decode$index, 1, decodeValueAttributes)); - default: - var other = kind; - return $elm$json$Json$Decode$fail('Unknown value type: ' + other); - } - }, - A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string)); - }); -var $author$project$Morphir$IR$Documented$Documented = F2( - function (doc, value) { - return {doc: doc, value: value}; - }); -var $author$project$Morphir$IR$Documented$Codec$decodeDocumented = function (decodeValue) { - return A3( - $elm$json$Json$Decode$map2, - $author$project$Morphir$IR$Documented$Documented, - A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string), - A2($elm$json$Json$Decode$index, 1, decodeValue)); -}; -var $author$project$Morphir$IR$Module$Codec$decodeDefinition = F2( - function (decodeTypeAttributes, decodeValueAttributes) { - return A3( - $elm$json$Json$Decode$map2, - $author$project$Morphir$IR$Module$Definition, - A2( - $elm$json$Json$Decode$field, - 'types', - A2( - $elm$json$Json$Decode$map, - $elm$core$Dict$fromList, - $elm$json$Json$Decode$list( - A3( - $elm$json$Json$Decode$map2, - $elm$core$Tuple$pair, - A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName), - A2( - $elm$json$Json$Decode$index, - 1, - $author$project$Morphir$IR$AccessControlled$Codec$decodeAccessControlled( - $author$project$Morphir$IR$Documented$Codec$decodeDocumented( - $author$project$Morphir$IR$Type$Codec$decodeDefinition(decodeTypeAttributes)))))))), - A2( - $elm$json$Json$Decode$field, - 'values', - A2( - $elm$json$Json$Decode$map, - $elm$core$Dict$fromList, - $elm$json$Json$Decode$list( - A3( - $elm$json$Json$Decode$map2, - $elm$core$Tuple$pair, - A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName), - A2( - $elm$json$Json$Decode$index, - 1, - $author$project$Morphir$IR$AccessControlled$Codec$decodeAccessControlled( - A2($author$project$Morphir$IR$Value$Codec$decodeDefinition, decodeTypeAttributes, decodeValueAttributes)))))))); - }); -var $author$project$Morphir$IR$Package$Codec$decodeDefinition = F2( - function (decodeAttributes, decodeAttributes2) { - return A2( - $elm$json$Json$Decode$map, - $author$project$Morphir$IR$Package$Definition, - A2( - $elm$json$Json$Decode$field, - 'modules', - A2( - $elm$json$Json$Decode$map, - $elm$core$Dict$fromList, - $elm$json$Json$Decode$list( - A3( - $elm$json$Json$Decode$map2, - $elm$core$Tuple$pair, - A2($elm$json$Json$Decode$field, 'name', $author$project$Morphir$IR$Path$Codec$decodePath), - A2( - $elm$json$Json$Decode$field, - 'def', - $author$project$Morphir$IR$AccessControlled$Codec$decodeAccessControlled( - A2($author$project$Morphir$IR$Module$Codec$decodeDefinition, decodeAttributes, decodeAttributes2)))))))); - }); -var $author$project$Morphir$IR$Package$Specification = function (modules) { - return {modules: modules}; -}; -var $author$project$Morphir$IR$Module$Specification = F2( - function (types, values) { - return {types: types, values: values}; - }); -var $author$project$Morphir$IR$Type$CustomTypeSpecification = F2( - function (a, b) { - return {$: 'CustomTypeSpecification', a: a, b: b}; - }); -var $author$project$Morphir$IR$Type$OpaqueTypeSpecification = function (a) { - return {$: 'OpaqueTypeSpecification', a: a}; -}; -var $author$project$Morphir$IR$Type$TypeAliasSpecification = F2( - function (a, b) { - return {$: 'TypeAliasSpecification', a: a, b: b}; - }); -var $author$project$Morphir$IR$Type$Codec$decodeSpecification = function (decodeAttributes) { - return A2( - $elm$json$Json$Decode$andThen, - function (kind) { - switch (kind) { - case 'type_alias_specification': - return A3( - $elm$json$Json$Decode$map2, - $author$project$Morphir$IR$Type$TypeAliasSpecification, - A2( - $elm$json$Json$Decode$index, - 1, - $elm$json$Json$Decode$list($author$project$Morphir$IR$Name$Codec$decodeName)), - A2( - $elm$json$Json$Decode$index, - 2, - $author$project$Morphir$IR$Type$Codec$decodeType(decodeAttributes))); - case 'opaque_type_specification': - return A2( - $elm$json$Json$Decode$map, - $author$project$Morphir$IR$Type$OpaqueTypeSpecification, - A2( - $elm$json$Json$Decode$index, - 1, - $elm$json$Json$Decode$list($author$project$Morphir$IR$Name$Codec$decodeName))); - case 'custom_type_specification': - return A3( - $elm$json$Json$Decode$map2, - $author$project$Morphir$IR$Type$CustomTypeSpecification, - A2( - $elm$json$Json$Decode$index, - 1, - $elm$json$Json$Decode$list($author$project$Morphir$IR$Name$Codec$decodeName)), - A2( - $elm$json$Json$Decode$index, - 2, - $author$project$Morphir$IR$Type$Codec$decodeConstructors(decodeAttributes))); - default: - return $elm$json$Json$Decode$fail('Unknown kind: ' + kind); - } - }, - A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string)); -}; -var $author$project$Morphir$IR$Value$Specification = F2( - function (inputs, output) { - return {inputs: inputs, output: output}; - }); -var $author$project$Morphir$IR$Value$Codec$decodeSpecification = function (decodeTypeAttributes) { - return A3( - $elm$json$Json$Decode$map2, - $author$project$Morphir$IR$Value$Specification, - A2( - $elm$json$Json$Decode$field, - 'inputs', - $elm$json$Json$Decode$list( - A3( - $elm$json$Json$Decode$map2, - $elm$core$Tuple$pair, - A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName), - A2( - $elm$json$Json$Decode$index, - 1, - $author$project$Morphir$IR$Type$Codec$decodeType(decodeTypeAttributes))))), - A2( - $elm$json$Json$Decode$field, - 'output', - $author$project$Morphir$IR$Type$Codec$decodeType(decodeTypeAttributes))); -}; -var $author$project$Morphir$IR$Module$Codec$decodeSpecification = function (decodeTypeAttributes) { - return A3( - $elm$json$Json$Decode$map2, - $author$project$Morphir$IR$Module$Specification, - A2( - $elm$json$Json$Decode$field, - 'types', - A2( - $elm$json$Json$Decode$map, - $elm$core$Dict$fromList, - $elm$json$Json$Decode$list( - A3( - $elm$json$Json$Decode$map2, - $elm$core$Tuple$pair, - A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName), - A2( - $elm$json$Json$Decode$index, - 1, - $author$project$Morphir$IR$Documented$Codec$decodeDocumented( - $author$project$Morphir$IR$Type$Codec$decodeSpecification(decodeTypeAttributes))))))), - A2( - $elm$json$Json$Decode$field, - 'values', - A2( - $elm$json$Json$Decode$map, - $elm$core$Dict$fromList, - $elm$json$Json$Decode$list( - A3( - $elm$json$Json$Decode$map2, - $elm$core$Tuple$pair, - A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Name$Codec$decodeName), - A2( - $elm$json$Json$Decode$index, - 1, - $author$project$Morphir$IR$Value$Codec$decodeSpecification(decodeTypeAttributes))))))); -}; -var $author$project$Morphir$IR$Package$Codec$decodeSpecification = function (decodeAttributes) { - return A2( - $elm$json$Json$Decode$map, - $author$project$Morphir$IR$Package$Specification, - A2( - $elm$json$Json$Decode$field, - 'modules', - A2( - $elm$json$Json$Decode$map, - $elm$core$Dict$fromList, - $elm$json$Json$Decode$list( - A3( - $elm$json$Json$Decode$map2, - $elm$core$Tuple$pair, - A2($elm$json$Json$Decode$field, 'name', $author$project$Morphir$IR$Path$Codec$decodePath), - A2( - $elm$json$Json$Decode$field, - 'spec', - $author$project$Morphir$IR$Module$Codec$decodeSpecification(decodeAttributes))))))); -}; -var $author$project$Morphir$Codec$decodeUnit = $elm$json$Json$Decode$succeed(_Utils_Tuple0); -var $author$project$Morphir$IR$Distribution$Codec$decodeDistribution = A2( - $elm$json$Json$Decode$andThen, - function (kind) { - if (kind === 'library') { - return A4( - $elm$json$Json$Decode$map3, - $author$project$Morphir$IR$Distribution$Library, - A2($elm$json$Json$Decode$index, 1, $author$project$Morphir$IR$Path$Codec$decodePath), - A2( - $elm$json$Json$Decode$index, - 2, - A2( - $elm$json$Json$Decode$map, - $elm$core$Dict$fromList, - $elm$json$Json$Decode$list( - A3( - $elm$json$Json$Decode$map2, - $elm$core$Tuple$pair, - A2($elm$json$Json$Decode$index, 0, $author$project$Morphir$IR$Path$Codec$decodePath), - A2( - $elm$json$Json$Decode$index, - 1, - $author$project$Morphir$IR$Package$Codec$decodeSpecification($author$project$Morphir$Codec$decodeUnit)))))), - A2( - $elm$json$Json$Decode$index, - 3, - A2( - $author$project$Morphir$IR$Package$Codec$decodeDefinition, - $author$project$Morphir$Codec$decodeUnit, - $author$project$Morphir$IR$Type$Codec$decodeType($author$project$Morphir$Codec$decodeUnit)))); - } else { - var other = kind; - return $elm$json$Json$Decode$fail('Unknown value type: ' + other); - } - }, - A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string)); -var $author$project$Morphir$IR$Distribution$Codec$decodeVersionedDistribution = $elm$json$Json$Decode$oneOf( - _List_fromArray( - [ - A2( - $elm$json$Json$Decode$andThen, - function (formatVersion) { - return _Utils_eq(formatVersion, $author$project$Morphir$IR$Distribution$Codec$currentFormatVersion) ? A2($elm$json$Json$Decode$field, 'distribution', $author$project$Morphir$IR$Distribution$Codec$decodeDistribution) : $elm$json$Json$Decode$fail( - $elm$core$String$concat( - _List_fromArray( - [ - 'The IR is using format version ', - $elm$core$String$fromInt(formatVersion), - ' but the latest format version is ', - $elm$core$String$fromInt($author$project$Morphir$IR$Distribution$Codec$currentFormatVersion), - '. Please regenerate it!' - ]))); - }, - A2($elm$json$Json$Decode$field, 'formatVersion', $elm$json$Json$Decode$int)), - $elm$json$Json$Decode$fail('The IR is in an old format that doesn\'t have a format version on it. Please regenerate it!') - ])); -var $author$project$Morphir$Web$Insight$decodeFlag = A3( - $elm$json$Json$Decode$map2, - $author$project$Morphir$Web$Insight$Flag, - A2($elm$json$Json$Decode$field, 'distribution', $author$project$Morphir$IR$Distribution$Codec$decodeVersionedDistribution), - $elm$json$Json$Decode$maybe( - A2($elm$json$Json$Decode$field, 'config', $author$project$Morphir$Visual$Theme$Codec$decodeThemeConfig))); -var $elm$json$Json$Decode$decodeValue = _Json_run; -var $mdgriffith$elm_ui$Internal$Model$Rgba = F4( - function (a, b, c, d) { - return {$: 'Rgba', a: a, b: b, c: c, d: d}; - }); -var $mdgriffith$elm_ui$Element$rgb = F3( - function (r, g, b) { - return A4($mdgriffith$elm_ui$Internal$Model$Rgba, r, g, b, 1); - }); -var $mdgriffith$elm_ui$Element$rgb255 = F3( - function (red, green, blue) { - return A4($mdgriffith$elm_ui$Internal$Model$Rgba, red / 255, green / 255, blue / 255, 1); - }); -var $author$project$Morphir$Visual$Theme$defaultColors = { - darkest: A3($mdgriffith$elm_ui$Element$rgb, 0.1, 0.1, 0.1), - lightest: A3($mdgriffith$elm_ui$Element$rgb, 1, 1, 1), - negative: A3($mdgriffith$elm_ui$Element$rgb, 0.7, 0, 0), - positive: A3($mdgriffith$elm_ui$Element$rgb, 0, 0.6, 0), - primaryHighlight: A3($mdgriffith$elm_ui$Element$rgb255, 0, 163, 225), - secondaryHighlight: A3($mdgriffith$elm_ui$Element$rgb255, 255, 105, 0) -}; -var $elm$core$Maybe$withDefault = F2( - function (_default, maybe) { - if (maybe.$ === 'Just') { - var value = maybe.a; - return value; - } else { - return _default; - } - }); -var $author$project$Morphir$Visual$Theme$fromConfig = function (maybeConfig) { - if (maybeConfig.$ === 'Just') { - var config = maybeConfig.a; - return { - colors: $author$project$Morphir$Visual$Theme$defaultColors, - decimalDigit: A2($elm$core$Maybe$withDefault, 2, config.decimalDigit), - fontSize: A2($elm$core$Maybe$withDefault, 12, config.fontSize) - }; - } else { - return {colors: $author$project$Morphir$Visual$Theme$defaultColors, decimalDigit: 2, fontSize: 12}; - } -}; -var $elm$core$Platform$Cmd$batch = _Platform_batch; -var $elm$core$Platform$Cmd$none = $elm$core$Platform$Cmd$batch(_List_Nil); -var $author$project$Morphir$Web$Insight$init = function (json) { - var model = function () { - var _v0 = A2($elm$json$Json$Decode$decodeValue, $author$project$Morphir$Web$Insight$decodeFlag, json); - if (_v0.$ === 'Ok') { - var flag = _v0.a; - return { - modelState: $author$project$Morphir$Web$Insight$IRLoaded(flag.distribution), - theme: $author$project$Morphir$Visual$Theme$fromConfig(flag.config) - }; - } else { - var error = _v0.a; - return { - modelState: $author$project$Morphir$Web$Insight$Failed( - 'Wrong IR: ' + $elm$json$Json$Decode$errorToString(error)), - theme: $author$project$Morphir$Visual$Theme$fromConfig($elm$core$Maybe$Nothing) - }; - } - }(); - return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none); -}; -var $author$project$Morphir$Web$Insight$FunctionArgumentsReceived = function (a) { - return {$: 'FunctionArgumentsReceived', a: a}; -}; -var $author$project$Morphir$Web$Insight$FunctionNameReceived = function (a) { - return {$: 'FunctionNameReceived', a: a}; -}; -var $elm$core$Platform$Sub$batch = _Platform_batch; -var $elm$json$Json$Decode$value = _Json_decodeValue; -var $author$project$Morphir$Web$Insight$receiveFunctionArguments = _Platform_incomingPort('receiveFunctionArguments', $elm$json$Json$Decode$value); -var $author$project$Morphir$Web$Insight$receiveFunctionName = _Platform_incomingPort('receiveFunctionName', $elm$json$Json$Decode$string); -var $author$project$Morphir$Web$Insight$subscriptions = function (model) { - return $elm$core$Platform$Sub$batch( - _List_fromArray( - [ - $author$project$Morphir$Web$Insight$receiveFunctionArguments($author$project$Morphir$Web$Insight$FunctionArgumentsReceived), - $author$project$Morphir$Web$Insight$receiveFunctionName($author$project$Morphir$Web$Insight$FunctionNameReceived) - ])); -}; -var $author$project$Morphir$Web$Insight$FunctionsSet = function (a) { - return {$: 'FunctionsSet', a: a}; -}; -var $author$project$Morphir$IR$QName$QName = F2( - function (a, b) { - return {$: 'QName', a: a, b: b}; - }); -var $elm$core$Maybe$andThen = F2( - function (callback, maybeValue) { - if (maybeValue.$ === 'Just') { - var value = maybeValue.a; - return callback(value); - } else { - return $elm$core$Maybe$Nothing; - } - }); -var $elm$core$Result$andThen = F2( - function (callback, result) { - if (result.$ === 'Ok') { - var value = result.a; - return callback(value); - } else { - var msg = result.a; - return $elm$core$Result$Err(msg); - } - }); -var $elm$core$Result$fromMaybe = F2( - function (err, maybe) { - if (maybe.$ === 'Just') { - var v = maybe.a; - return $elm$core$Result$Ok(v); - } else { - return $elm$core$Result$Err(err); - } - }); -var $elm$regex$Regex$Match = F4( - function (match, index, number, submatches) { - return {index: index, match: match, number: number, submatches: submatches}; - }); -var $elm$regex$Regex$find = _Regex_findAtMost(_Regex_infinity); -var $elm$regex$Regex$fromStringWith = _Regex_fromStringWith; -var $elm$regex$Regex$fromString = function (string) { - return A2( - $elm$regex$Regex$fromStringWith, - {caseInsensitive: false, multiline: false}, - string); -}; -var $elm$regex$Regex$never = _Regex_never; -var $elm$core$String$toLower = _String_toLower; -var $author$project$Morphir$IR$Name$fromString = function (string) { - var wordPattern = A2( - $elm$core$Maybe$withDefault, - $elm$regex$Regex$never, - $elm$regex$Regex$fromString('([a-zA-Z][a-z]*|[0-9]+)')); - return $author$project$Morphir$IR$Name$fromList( - A2( - $elm$core$List$map, - $elm$core$String$toLower, - A2( - $elm$core$List$map, - function ($) { - return $.match; - }, - A2($elm$regex$Regex$find, wordPattern, string)))); -}; -var $elm$core$Dict$get = F2( - function (targetKey, dict) { - get: - while (true) { - if (dict.$ === 'RBEmpty_elm_builtin') { - return $elm$core$Maybe$Nothing; - } else { - var key = dict.b; - var value = dict.c; - var left = dict.d; - var right = dict.e; - var _v1 = A2($elm$core$Basics$compare, targetKey, key); - switch (_v1.$) { - case 'LT': - var $temp$targetKey = targetKey, - $temp$dict = left; - targetKey = $temp$targetKey; - dict = $temp$dict; - continue get; - case 'EQ': - return $elm$core$Maybe$Just(value); - default: - var $temp$targetKey = targetKey, - $temp$dict = right; - targetKey = $temp$targetKey; - dict = $temp$dict; - continue get; - } - } - } - }); -var $elm$regex$Regex$split = _Regex_splitAtMost(_Regex_infinity); -var $author$project$Morphir$IR$Path$fromString = function (string) { - var separatorRegex = A2( - $elm$core$Maybe$withDefault, - $elm$regex$Regex$never, - $elm$regex$Regex$fromString('[^\\w\\s]+')); - return $author$project$Morphir$IR$Path$fromList( - A2( - $elm$core$List$map, - $author$project$Morphir$IR$Name$fromString, - A2($elm$regex$Regex$split, separatorRegex, string))); -}; -var $author$project$Morphir$IR$SDK$Maybe$moduleName = $author$project$Morphir$IR$Path$fromString('Maybe'); -var $author$project$Morphir$IR$QName$fromName = F2( - function (modulePath, localName) { - return A2($author$project$Morphir$IR$QName$QName, modulePath, localName); - }); -var $author$project$Morphir$IR$QName$getLocalName = function (_v0) { - var localName = _v0.b; - return localName; -}; -var $author$project$Morphir$IR$QName$getModulePath = function (_v0) { - var modulePath = _v0.a; - return modulePath; -}; -var $author$project$Morphir$IR$FQName$fromQName = F2( - function (packagePath, qName) { - return _Utils_Tuple3( - packagePath, - $author$project$Morphir$IR$QName$getModulePath(qName), - $author$project$Morphir$IR$QName$getLocalName(qName)); - }); -var $author$project$Morphir$IR$SDK$Common$packageName = $author$project$Morphir$IR$Path$fromString('Morphir.SDK'); -var $author$project$Morphir$IR$SDK$Common$toFQName = F2( - function (modulePath, localName) { - return A2( - $author$project$Morphir$IR$FQName$fromQName, - $author$project$Morphir$IR$SDK$Common$packageName, - A2( - $author$project$Morphir$IR$QName$fromName, - modulePath, - $author$project$Morphir$IR$Name$fromString(localName))); - }); -var $author$project$Morphir$IR$SDK$Maybe$just = F2( - function (va, v) { - return A3( - $author$project$Morphir$IR$Value$Apply, - va, - A2( - $author$project$Morphir$IR$Value$Reference, - va, - A2($author$project$Morphir$IR$SDK$Common$toFQName, $author$project$Morphir$IR$SDK$Maybe$moduleName, 'Just')), - v); - }); -var $author$project$Morphir$IR$lookupTypeSpecification = F2( - function (fqn, ir) { - return A2($elm$core$Dict$get, fqn, ir.typeSpecifications); - }); -var $elm$core$Result$map = F2( - function (func, ra) { - if (ra.$ === 'Ok') { - var a = ra.a; - return $elm$core$Result$Ok( - func(a)); - } else { - var e = ra.a; - return $elm$core$Result$Err(e); - } - }); -var $author$project$Morphir$IR$SDK$Maybe$nothing = function (va) { - return A2( - $author$project$Morphir$IR$Value$Reference, - va, - A2($author$project$Morphir$IR$SDK$Common$toFQName, $author$project$Morphir$IR$SDK$Maybe$moduleName, 'Nothing')); -}; -var $elm$core$Tuple$second = function (_v0) { - var y = _v0.b; - return y; -}; -var $author$project$Morphir$IR$Type$substituteTypeVariables = F2( - function (mapping, original) { - switch (original.$) { - case 'Variable': - var a = original.a; - var varName = original.b; - return A2( - $elm$core$Maybe$withDefault, - original, - A2($elm$core$Dict$get, varName, mapping)); - case 'Reference': - var a = original.a; - var fQName = original.b; - var typeArgs = original.c; - return A3( - $author$project$Morphir$IR$Type$Reference, - a, - fQName, - A2( - $elm$core$List$map, - $author$project$Morphir$IR$Type$substituteTypeVariables(mapping), - typeArgs)); - case 'Tuple': - var a = original.a; - var elemTypes = original.b; - return A2( - $author$project$Morphir$IR$Type$Tuple, - a, - A2( - $elm$core$List$map, - $author$project$Morphir$IR$Type$substituteTypeVariables(mapping), - elemTypes)); - case 'Record': - var a = original.a; - var fields = original.b; - return A2( - $author$project$Morphir$IR$Type$Record, - a, - A2( - $elm$core$List$map, - function (field) { - return A2( - $author$project$Morphir$IR$Type$Field, - field.name, - A2($author$project$Morphir$IR$Type$substituteTypeVariables, mapping, field.tpe)); - }, - fields)); - case 'ExtensibleRecord': - var a = original.a; - var name = original.b; - var fields = original.c; - return A3( - $author$project$Morphir$IR$Type$ExtensibleRecord, - a, - name, - A2( - $elm$core$List$map, - function (field) { - return A2( - $author$project$Morphir$IR$Type$Field, - field.name, - A2($author$project$Morphir$IR$Type$substituteTypeVariables, mapping, field.tpe)); - }, - fields)); - case 'Function': - var a = original.a; - var argType = original.b; - var returnType = original.c; - return A3( - $author$project$Morphir$IR$Type$Function, - a, - A2($author$project$Morphir$IR$Type$substituteTypeVariables, mapping, argType), - A2($author$project$Morphir$IR$Type$substituteTypeVariables, mapping, returnType)); - default: - var a = original.a; - return $author$project$Morphir$IR$Type$Unit(a); - } - }); -var $elm$core$String$cons = _String_cons; -var $elm$core$Char$toUpper = _Char_toUpper; -var $author$project$Morphir$IR$Name$capitalize = function (string) { - var _v0 = $elm$core$String$uncons(string); - if (_v0.$ === 'Just') { - var _v1 = _v0.a; - var headChar = _v1.a; - var tailString = _v1.b; - return A2( - $elm$core$String$cons, - $elm$core$Char$toUpper(headChar), - tailString); - } else { - return string; - } -}; -var $author$project$Morphir$IR$Name$toList = function (words) { - return words; -}; -var $author$project$Morphir$IR$Name$toCamelCase = function (name) { - var _v0 = $author$project$Morphir$IR$Name$toList(name); - if (!_v0.b) { - return ''; - } else { - var head = _v0.a; - var tail = _v0.b; - return A2( - $elm$core$String$join, - '', - A2( - $elm$core$List$cons, - head, - A2($elm$core$List$map, $author$project$Morphir$IR$Name$capitalize, tail))); - } -}; -var $author$project$Morphir$IR$Path$toList = function (names) { - return names; -}; -var $author$project$Morphir$IR$Path$toString = F3( - function (nameToString, sep, path) { - return A2( - $elm$core$String$join, - sep, - A2( - $elm$core$List$map, - nameToString, - $author$project$Morphir$IR$Path$toList(path))); - }); -var $author$project$Morphir$IR$Name$toTitleCase = function (name) { - return A2( - $elm$core$String$join, - '', - A2( - $elm$core$List$map, - $author$project$Morphir$IR$Name$capitalize, - $author$project$Morphir$IR$Name$toList(name))); -}; -var $author$project$Morphir$IR$FQName$toString = function (_v0) { - var p = _v0.a; - var m = _v0.b; - var l = _v0.c; - return A2( - $elm$core$String$join, - ':', - _List_fromArray( - [ - A3($author$project$Morphir$IR$Path$toString, $author$project$Morphir$IR$Name$toTitleCase, '.', p), - A3($author$project$Morphir$IR$Path$toString, $author$project$Morphir$IR$Name$toTitleCase, '.', m), - $author$project$Morphir$IR$Name$toCamelCase(l) - ])); -}; -var $elm$core$Debug$todo = _Debug_todo; -var $author$project$Morphir$IR$Type$DataCodec$decodeData = F2( - function (ir, tpe) { - switch (tpe.$) { - case 'Reference': - if ((((((((((((tpe.b.a.b && tpe.b.a.a.b) && (tpe.b.a.a.a === 'morphir')) && (!tpe.b.a.a.b.b)) && tpe.b.a.b.b) && tpe.b.a.b.a.b) && (tpe.b.a.b.a.a === 's')) && tpe.b.a.b.a.b.b) && (tpe.b.a.b.a.b.a === 'd')) && tpe.b.a.b.a.b.b.b) && (tpe.b.a.b.a.b.b.a === 'k')) && (!tpe.b.a.b.a.b.b.b.b)) && (!tpe.b.a.b.b.b)) { - var _v1 = tpe.b; - var _v2 = _v1.a; - var _v3 = _v2.a; - var _v4 = _v2.b; - var _v5 = _v4.a; - var _v6 = _v5.b; - var _v7 = _v6.b; - var moduleName = _v1.b; - var localName = _v1.c; - var args = tpe.c; - var _v8 = _Utils_Tuple3(moduleName, localName, args); - _v8$7: - while (true) { - if (((((_v8.a.b && _v8.a.a.b) && (!_v8.a.a.b.b)) && (!_v8.a.b.b)) && _v8.b.b) && (!_v8.b.b.b)) { - if (!_v8.c.b) { - switch (_v8.a.a.a) { - case 'basics': - switch (_v8.b.a) { - case 'bool': - var _v9 = _v8.a; - var _v10 = _v9.a; - var _v11 = _v8.b; - return $elm$core$Result$Ok( - A2( - $elm$json$Json$Decode$map, - function (value) { - return A2( - $author$project$Morphir$IR$Value$Literal, - _Utils_Tuple0, - $author$project$Morphir$IR$Literal$BoolLiteral(value)); - }, - $elm$json$Json$Decode$bool)); - case 'int': - var _v12 = _v8.a; - var _v13 = _v12.a; - var _v14 = _v8.b; - return $elm$core$Result$Ok( - A2( - $elm$json$Json$Decode$map, - function (value) { - return A2( - $author$project$Morphir$IR$Value$Literal, - _Utils_Tuple0, - $author$project$Morphir$IR$Literal$IntLiteral(value)); - }, - $elm$json$Json$Decode$int)); - case 'float': - var _v15 = _v8.a; - var _v16 = _v15.a; - var _v17 = _v8.b; - return $elm$core$Result$Ok( - A2( - $elm$json$Json$Decode$map, - function (value) { - return A2( - $author$project$Morphir$IR$Value$Literal, - _Utils_Tuple0, - $author$project$Morphir$IR$Literal$FloatLiteral(value)); - }, - $elm$json$Json$Decode$float)); - default: - break _v8$7; - } - case 'char': - if (_v8.b.a === 'char') { - var _v18 = _v8.a; - var _v19 = _v18.a; - var _v20 = _v8.b; - return $elm$core$Result$Ok( - A2( - $elm$json$Json$Decode$andThen, - function (value) { - var _v21 = $elm$core$String$uncons(value); - if (_v21.$ === 'Just') { - var _v22 = _v21.a; - var firstChar = _v22.a; - return $elm$json$Json$Decode$succeed( - A2( - $author$project$Morphir$IR$Value$Literal, - _Utils_Tuple0, - $author$project$Morphir$IR$Literal$CharLiteral(firstChar))); - } else { - return $elm$json$Json$Decode$fail('Expected char but found empty string.'); - } - }, - $elm$json$Json$Decode$string)); - } else { - break _v8$7; - } - case 'string': - if (_v8.b.a === 'string') { - var _v23 = _v8.a; - var _v24 = _v23.a; - var _v25 = _v8.b; - return $elm$core$Result$Ok( - A2( - $elm$json$Json$Decode$map, - function (value) { - return A2( - $author$project$Morphir$IR$Value$Literal, - _Utils_Tuple0, - $author$project$Morphir$IR$Literal$StringLiteral(value)); - }, - $elm$json$Json$Decode$string)); - } else { - break _v8$7; - } - default: - break _v8$7; - } - } else { - if (!_v8.c.b.b) { - switch (_v8.a.a.a) { - case 'list': - if (_v8.b.a === 'list') { - var _v26 = _v8.a; - var _v27 = _v26.a; - var _v28 = _v8.b; - var _v29 = _v8.c; - var itemType = _v29.a; - return A2( - $elm$core$Result$map, - function (itemDecoder) { - return A2( - $elm$json$Json$Decode$map, - $author$project$Morphir$IR$Value$List(_Utils_Tuple0), - $elm$json$Json$Decode$list(itemDecoder)); - }, - A2($author$project$Morphir$IR$Type$DataCodec$decodeData, ir, itemType)); - } else { - break _v8$7; - } - case 'maybe': - if (_v8.b.a === 'maybe') { - var _v30 = _v8.a; - var _v31 = _v30.a; - var _v32 = _v8.b; - var _v33 = _v8.c; - var itemType = _v33.a; - return A2( - $elm$core$Result$map, - function (itemDecoder) { - return A2( - $elm$json$Json$Decode$map, - function (item) { - if (item.$ === 'Just') { - var v = item.a; - return A2($author$project$Morphir$IR$SDK$Maybe$just, _Utils_Tuple0, v); - } else { - return $author$project$Morphir$IR$SDK$Maybe$nothing(_Utils_Tuple0); - } - }, - $elm$json$Json$Decode$maybe(itemDecoder)); - }, - A2($author$project$Morphir$IR$Type$DataCodec$decodeData, ir, itemType)); - } else { - break _v8$7; - } - default: - break _v8$7; - } - } else { - break _v8$7; - } - } - } else { - break _v8$7; - } - } - return _Debug_todo( - 'Morphir.IR.Type.DataCodec', - { - start: {line: 301, column: 21}, - end: {line: 301, column: 31} - })('Todo Custom Type'); - } else { - var fQName = tpe.b; - var typePackageName = fQName.a; - var typeModuleName = fQName.b; - var typeArgs = tpe.c; - return A2( - $elm$core$Result$andThen, - function (typeSpec) { - switch (typeSpec.$) { - case 'TypeAliasSpecification': - var typeArgNames = typeSpec.a; - var typeExp = typeSpec.b; - var argVariables = $elm$core$Dict$fromList( - A3($elm$core$List$map2, $elm$core$Tuple$pair, typeArgNames, typeArgs)); - return A2( - $author$project$Morphir$IR$Type$DataCodec$decodeData, - ir, - A2($author$project$Morphir$IR$Type$substituteTypeVariables, argVariables, typeExp)); - case 'OpaqueTypeSpecification': - return $elm$core$Result$Err( - $elm$core$String$concat( - _List_fromArray( - [ - 'Cannot serialize opaque type: ', - $author$project$Morphir$IR$FQName$toString(fQName) - ]))); - default: - var typeArgNames = typeSpec.a; - var constructors = typeSpec.b; - var argVariables = $elm$core$Dict$fromList( - A3($elm$core$List$map2, $elm$core$Tuple$pair, typeArgNames, typeArgs)); - return $elm$core$Result$Ok( - A2( - $elm$json$Json$Decode$andThen, - function (tag) { - var constructorLocalName = $author$project$Morphir$IR$Name$fromString(tag); - var decoderResult = A2( - $elm$core$Result$andThen, - function (constructorArgTypes) { - return A3( - $elm$core$List$foldl, - F2( - function (_v37, _v38) { - var argType = _v37.b; - var index = _v38.a; - var resultSoFar = _v38.b; - return _Utils_Tuple2( - index + 1, - A2( - $elm$core$Result$andThen, - function (decoderSoFar) { - return A2( - $elm$core$Result$map, - function (argDecoder) { - return A2( - $elm$json$Json$Decode$andThen, - function (constructorSoFar) { - return A2( - $elm$json$Json$Decode$map, - function (argValue) { - return A3($author$project$Morphir$IR$Value$Apply, _Utils_Tuple0, constructorSoFar, argValue); - }, - A2($elm$json$Json$Decode$index, index, argDecoder)); - }, - decoderSoFar); - }, - A2( - $author$project$Morphir$IR$Type$DataCodec$decodeData, - ir, - A2($author$project$Morphir$IR$Type$substituteTypeVariables, argVariables, argType))); - }, - resultSoFar)); - }), - _Utils_Tuple2( - 1, - $elm$core$Result$Ok( - $elm$json$Json$Decode$succeed( - A2( - $author$project$Morphir$IR$Value$Constructor, - _Utils_Tuple0, - _Utils_Tuple3(typePackageName, typeModuleName, constructorLocalName))))), - constructorArgTypes).b; - }, - A2( - $elm$core$Result$fromMaybe, - $elm$core$String$concat( - _List_fromArray( - [ - 'Constructor \'', - $author$project$Morphir$IR$Name$toTitleCase(constructorLocalName), - '\' in type \'', - $author$project$Morphir$IR$FQName$toString(fQName), - '\' not found.' - ])), - A2($elm$core$Dict$get, constructorLocalName, constructors))); - if (decoderResult.$ === 'Ok') { - var d = decoderResult.a; - return d; - } else { - var error = decoderResult.a; - return $elm$json$Json$Decode$fail(error); - } - }, - A2($elm$json$Json$Decode$index, 0, $elm$json$Json$Decode$string))); - } - }, - A2( - $elm$core$Result$fromMaybe, - $elm$core$String$concat( - _List_fromArray( - [ - 'Cannot find reference: ', - $author$project$Morphir$IR$FQName$toString(fQName) - ])), - A2($author$project$Morphir$IR$lookupTypeSpecification, fQName, ir))); - } - case 'Record': - var fields = tpe.b; - return A2( - $elm$core$Result$map, - function (decoder) { - return A2( - $elm$json$Json$Decode$map, - $author$project$Morphir$IR$Value$Record(_Utils_Tuple0), - decoder); - }, - A3( - $elm$core$List$foldr, - F2( - function (field, resultSoFar) { - return A2( - $elm$core$Result$andThen, - function (decoderSoFar) { - return A2( - $elm$core$Result$map, - function (fieldDecoder) { - return A2( - $elm$json$Json$Decode$andThen, - function (fieldValuesSoFar) { - return A2( - $elm$json$Json$Decode$map, - function (fieldValue) { - return A2( - $elm$core$List$cons, - _Utils_Tuple2(field.name, fieldValue), - fieldValuesSoFar); - }, - A2( - $elm$json$Json$Decode$field, - $author$project$Morphir$IR$Name$toCamelCase(field.name), - fieldDecoder)); - }, - decoderSoFar); - }, - A2($author$project$Morphir$IR$Type$DataCodec$decodeData, ir, field.tpe)); - }, - resultSoFar); - }), - $elm$core$Result$Ok( - $elm$json$Json$Decode$succeed(_List_Nil)), - fields)); - case 'Tuple': - var elemTypes = tpe.b; - return A2( - $elm$core$Result$map, - $elm$json$Json$Decode$map( - $author$project$Morphir$IR$Value$Tuple(_Utils_Tuple0)), - A3( - $elm$core$List$foldr, - F2( - function (elemType, _v39) { - var index = _v39.a; - var resultSoFar = _v39.b; - return _Utils_Tuple2( - index - 1, - A2( - $elm$core$Result$andThen, - function (decoderSoFar) { - return A2( - $elm$core$Result$map, - function (fieldDecoder) { - return A2( - $elm$json$Json$Decode$andThen, - function (fieldValuesSoFar) { - return A2( - $elm$json$Json$Decode$map, - function (fieldValue) { - return A2($elm$core$List$cons, fieldValue, fieldValuesSoFar); - }, - A2($elm$json$Json$Decode$index, index, fieldDecoder)); - }, - decoderSoFar); - }, - A2($author$project$Morphir$IR$Type$DataCodec$decodeData, ir, elemType)); - }, - resultSoFar)); - }), - _Utils_Tuple2( - $elm$core$List$length(elemTypes) - 1, - $elm$core$Result$Ok( - $elm$json$Json$Decode$succeed(_List_Nil))), - elemTypes).b); - default: - return $elm$core$Result$Err('Cannot Decode this type'); - } - }); -var $author$project$Morphir$IR$empty = {typeConstructors: $elm$core$Dict$empty, typeSpecifications: $elm$core$Dict$empty, valueDefinitions: $elm$core$Dict$empty, valueSpecifications: $elm$core$Dict$empty}; -var $elm$core$List$append = F2( - function (xs, ys) { - if (!ys.b) { - return xs; - } else { - return A3($elm$core$List$foldr, $elm$core$List$cons, ys, xs); - } - }); -var $elm$core$List$concat = function (lists) { - return A3($elm$core$List$foldr, $elm$core$List$append, _List_Nil, lists); -}; -var $elm$core$List$concatMap = F2( - function (f, list) { - return $elm$core$List$concat( - A2($elm$core$List$map, f, list)); - }); -var $author$project$Morphir$IR$AccessControlled$withPublicAccess = function (ac) { - var _v0 = ac.access; - if (_v0.$ === 'Public') { - return $elm$core$Maybe$Just(ac.value); - } else { - return $elm$core$Maybe$Nothing; - } -}; -var $author$project$Morphir$IR$Type$definitionToSpecification = function (def) { - if (def.$ === 'TypeAliasDefinition') { - var params = def.a; - var exp = def.b; - return A2($author$project$Morphir$IR$Type$TypeAliasSpecification, params, exp); - } else { - var params = def.a; - var accessControlledCtors = def.b; - var _v1 = $author$project$Morphir$IR$AccessControlled$withPublicAccess(accessControlledCtors); - if (_v1.$ === 'Just') { - var ctors = _v1.a; - return A2($author$project$Morphir$IR$Type$CustomTypeSpecification, params, ctors); - } else { - return $author$project$Morphir$IR$Type$OpaqueTypeSpecification(params); - } - } -}; -var $author$project$Morphir$IR$Value$definitionToSpecification = function (def) { - return { - inputs: A2( - $elm$core$List$map, - function (_v0) { - var name = _v0.a; - var tpe = _v0.c; - return _Utils_Tuple2(name, tpe); - }, - def.inputTypes), - output: def.outputType - }; -}; -var $author$project$Morphir$IR$Documented$map = F2( - function (f, d) { - return A2( - $author$project$Morphir$IR$Documented$Documented, - d.doc, - f(d.value)); - }); -var $author$project$Morphir$IR$AccessControlled$withPrivateAccess = function (ac) { - var _v0 = ac.access; - if (_v0.$ === 'Public') { - return ac.value; - } else { - return ac.value; - } -}; -var $author$project$Morphir$IR$Module$definitionToSpecificationWithPrivate = function (def) { - return { - types: $elm$core$Dict$fromList( - A2( - $elm$core$List$map, - function (_v0) { - var path = _v0.a; - var accessControlledType = _v0.b; - return _Utils_Tuple2( - path, - A2( - $author$project$Morphir$IR$Documented$map, - $author$project$Morphir$IR$Type$definitionToSpecification, - $author$project$Morphir$IR$AccessControlled$withPrivateAccess(accessControlledType))); - }, - $elm$core$Dict$toList(def.types))), - values: $elm$core$Dict$fromList( - A2( - $elm$core$List$map, - function (_v1) { - var path = _v1.a; - var accessControlledValue = _v1.b; - return _Utils_Tuple2( - path, - $author$project$Morphir$IR$Value$definitionToSpecification( - $author$project$Morphir$IR$AccessControlled$withPrivateAccess(accessControlledValue))); - }, - $elm$core$Dict$toList(def.values))) - }; -}; -var $author$project$Morphir$IR$Package$definitionToSpecificationWithPrivate = function (def) { - return { - modules: $elm$core$Dict$fromList( - A2( - $elm$core$List$map, - function (_v0) { - var path = _v0.a; - var accessControlledModule = _v0.b; - return _Utils_Tuple2( - path, - $author$project$Morphir$IR$Module$definitionToSpecificationWithPrivate( - $author$project$Morphir$IR$AccessControlled$withPrivateAccess(accessControlledModule))); - }, - $elm$core$Dict$toList(def.modules))) - }; -}; -var $author$project$Morphir$IR$flattenPackages = F2( - function (packages, f) { - return $elm$core$Dict$fromList( - A2( - $elm$core$List$concatMap, - function (_v0) { - var packageName = _v0.a; - var _package = _v0.b; - return A2(f, packageName, _package); - }, - $elm$core$Dict$toList(packages))); - }); -var $author$project$Morphir$IR$fromPackageSpecifications = function (packageSpecs) { - var packageValueSpecifications = F2( - function (packageName, packageSpec) { - return A2( - $elm$core$List$concatMap, - function (_v6) { - var moduleName = _v6.a; - var moduleSpec = _v6.b; - return A2( - $elm$core$List$map, - function (_v7) { - var valueName = _v7.a; - var valueSpec = _v7.b; - return _Utils_Tuple2( - _Utils_Tuple3(packageName, moduleName, valueName), - valueSpec); - }, - $elm$core$Dict$toList(moduleSpec.values)); - }, - $elm$core$Dict$toList(packageSpec.modules)); - }); - var packageTypeSpecifications = F2( - function (packageName, packageSpec) { - return A2( - $elm$core$List$concatMap, - function (_v4) { - var moduleName = _v4.a; - var moduleSpec = _v4.b; - return A2( - $elm$core$List$map, - function (_v5) { - var typeName = _v5.a; - var typeSpec = _v5.b; - return _Utils_Tuple2( - _Utils_Tuple3(packageName, moduleName, typeName), - typeSpec.value); - }, - $elm$core$Dict$toList(moduleSpec.types)); - }, - $elm$core$Dict$toList(packageSpec.modules)); - }); - var packageTypeConstructors = F2( - function (packageName, packageSpec) { - return A2( - $elm$core$List$concatMap, - function (_v0) { - var moduleName = _v0.a; - var moduleSpec = _v0.b; - return A2( - $elm$core$List$concatMap, - function (_v1) { - var typeName = _v1.a; - var typeSpec = _v1.b; - var _v2 = typeSpec.value; - if (_v2.$ === 'CustomTypeSpecification') { - var params = _v2.a; - var constructors = _v2.b; - return A2( - $elm$core$List$map, - function (_v3) { - var ctorName = _v3.a; - var ctorArgs = _v3.b; - return _Utils_Tuple2( - _Utils_Tuple3(packageName, moduleName, ctorName), - _Utils_Tuple3( - _Utils_Tuple3(packageName, moduleName, typeName), - params, - ctorArgs)); - }, - $elm$core$Dict$toList(constructors)); - } else { - return _List_Nil; - } - }, - $elm$core$Dict$toList(moduleSpec.types)); - }, - $elm$core$Dict$toList(packageSpec.modules)); - }); - return { - typeConstructors: A2($author$project$Morphir$IR$flattenPackages, packageSpecs, packageTypeConstructors), - typeSpecifications: A2($author$project$Morphir$IR$flattenPackages, packageSpecs, packageTypeSpecifications), - valueDefinitions: $elm$core$Dict$empty, - valueSpecifications: A2($author$project$Morphir$IR$flattenPackages, packageSpecs, packageValueSpecifications) - }; -}; -var $author$project$Morphir$IR$fromDistribution = function (_v0) { - var libraryName = _v0.a; - var dependencies = _v0.b; - var packageDef = _v0.c; - var packageValueDefinitions = $elm$core$Dict$fromList( - A2( - $elm$core$List$concatMap, - function (_v1) { - var moduleName = _v1.a; - var moduleDef = _v1.b; - return A2( - $elm$core$List$map, - function (_v2) { - var valueName = _v2.a; - var valueDef = _v2.b; - return _Utils_Tuple2( - _Utils_Tuple3(libraryName, moduleName, valueName), - valueDef.value); - }, - $elm$core$Dict$toList(moduleDef.value.values)); - }, - $elm$core$Dict$toList(packageDef.modules))); - var packageSpecs = A3( - $elm$core$Dict$insert, - libraryName, - $author$project$Morphir$IR$Package$definitionToSpecificationWithPrivate(packageDef), - dependencies); - var specificationsOnly = $author$project$Morphir$IR$fromPackageSpecifications(packageSpecs); - return _Utils_update( - specificationsOnly, - {valueDefinitions: packageValueDefinitions}); -}; -var $author$project$Morphir$IR$QName$fromString = function (qNameString) { - var _v0 = A2($elm$core$String$split, ':', qNameString); - if ((_v0.b && _v0.b.b) && (!_v0.b.b.b)) { - var packageNameString = _v0.a; - var _v1 = _v0.b; - var localNameString = _v1.a; - return $elm$core$Maybe$Just( - A2( - $author$project$Morphir$IR$QName$QName, - $author$project$Morphir$IR$Path$fromString(packageNameString), - $author$project$Morphir$IR$Name$fromString(localNameString))); - } else { - return $elm$core$Maybe$Nothing; - } -}; -var $elm$core$Maybe$map = F2( - function (f, maybe) { - if (maybe.$ === 'Just') { - var value = maybe.a; - return $elm$core$Maybe$Just( - f(value)); - } else { - return $elm$core$Maybe$Nothing; - } - }); -var $author$project$Morphir$IR$Package$lookupModuleDefinition = F2( - function (modulePath, packageDef) { - return A2( - $elm$core$Maybe$map, - $author$project$Morphir$IR$AccessControlled$withPrivateAccess, - A2($elm$core$Dict$get, modulePath, packageDef.modules)); - }); -var $author$project$Morphir$IR$Module$lookupValueDefinition = F2( - function (localName, moduleDef) { - return A2( - $elm$core$Maybe$map, - $author$project$Morphir$IR$AccessControlled$withPrivateAccess, - A2($elm$core$Dict$get, localName, moduleDef.values)); - }); -var $author$project$Morphir$IR$Distribution$lookupValueDefinition = F2( - function (_v0, distribution) { - var moduleName = _v0.a; - var localName = _v0.b; - var packageDef = distribution.c; - return A2( - $elm$core$Maybe$andThen, - $author$project$Morphir$IR$Module$lookupValueDefinition(localName), - A2($author$project$Morphir$IR$Package$lookupModuleDefinition, moduleName, packageDef)); - }); -var $elm$core$Result$mapError = F2( - function (f, result) { - if (result.$ === 'Ok') { - var v = result.a; - return $elm$core$Result$Ok(v); - } else { - var e = result.a; - return $elm$core$Result$Err( - f(e)); - } - }); -var $elm$core$Dict$member = F2( - function (key, dict) { - var _v0 = A2($elm$core$Dict$get, key, dict); - if (_v0.$ === 'Just') { - return true; - } else { - return false; - } - }); -var $elm$core$Dict$getMin = function (dict) { - getMin: - while (true) { - if ((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) { - var left = dict.d; - var $temp$dict = left; - dict = $temp$dict; - continue getMin; - } else { - return dict; - } - } -}; -var $elm$core$Dict$moveRedLeft = function (dict) { - if (((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) && (dict.e.$ === 'RBNode_elm_builtin')) { - if ((dict.e.d.$ === 'RBNode_elm_builtin') && (dict.e.d.a.$ === 'Red')) { - var clr = dict.a; - var k = dict.b; - var v = dict.c; - var _v1 = dict.d; - var lClr = _v1.a; - var lK = _v1.b; - var lV = _v1.c; - var lLeft = _v1.d; - var lRight = _v1.e; - var _v2 = dict.e; - var rClr = _v2.a; - var rK = _v2.b; - var rV = _v2.c; - var rLeft = _v2.d; - var _v3 = rLeft.a; - var rlK = rLeft.b; - var rlV = rLeft.c; - var rlL = rLeft.d; - var rlR = rLeft.e; - var rRight = _v2.e; - return A5( - $elm$core$Dict$RBNode_elm_builtin, - $elm$core$Dict$Red, - rlK, - rlV, - A5( - $elm$core$Dict$RBNode_elm_builtin, - $elm$core$Dict$Black, - k, - v, - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight), - rlL), - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, rK, rV, rlR, rRight)); - } else { - var clr = dict.a; - var k = dict.b; - var v = dict.c; - var _v4 = dict.d; - var lClr = _v4.a; - var lK = _v4.b; - var lV = _v4.c; - var lLeft = _v4.d; - var lRight = _v4.e; - var _v5 = dict.e; - var rClr = _v5.a; - var rK = _v5.b; - var rV = _v5.c; - var rLeft = _v5.d; - var rRight = _v5.e; - if (clr.$ === 'Black') { - return A5( - $elm$core$Dict$RBNode_elm_builtin, - $elm$core$Dict$Black, - k, - v, - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight), - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight)); - } else { - return A5( - $elm$core$Dict$RBNode_elm_builtin, - $elm$core$Dict$Black, - k, - v, - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight), - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight)); - } - } - } else { - return dict; - } -}; -var $elm$core$Dict$moveRedRight = function (dict) { - if (((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) && (dict.e.$ === 'RBNode_elm_builtin')) { - if ((dict.d.d.$ === 'RBNode_elm_builtin') && (dict.d.d.a.$ === 'Red')) { - var clr = dict.a; - var k = dict.b; - var v = dict.c; - var _v1 = dict.d; - var lClr = _v1.a; - var lK = _v1.b; - var lV = _v1.c; - var _v2 = _v1.d; - var _v3 = _v2.a; - var llK = _v2.b; - var llV = _v2.c; - var llLeft = _v2.d; - var llRight = _v2.e; - var lRight = _v1.e; - var _v4 = dict.e; - var rClr = _v4.a; - var rK = _v4.b; - var rV = _v4.c; - var rLeft = _v4.d; - var rRight = _v4.e; - return A5( - $elm$core$Dict$RBNode_elm_builtin, - $elm$core$Dict$Red, - lK, - lV, - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, llK, llV, llLeft, llRight), - A5( - $elm$core$Dict$RBNode_elm_builtin, - $elm$core$Dict$Black, - k, - v, - lRight, - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight))); - } else { - var clr = dict.a; - var k = dict.b; - var v = dict.c; - var _v5 = dict.d; - var lClr = _v5.a; - var lK = _v5.b; - var lV = _v5.c; - var lLeft = _v5.d; - var lRight = _v5.e; - var _v6 = dict.e; - var rClr = _v6.a; - var rK = _v6.b; - var rV = _v6.c; - var rLeft = _v6.d; - var rRight = _v6.e; - if (clr.$ === 'Black') { - return A5( - $elm$core$Dict$RBNode_elm_builtin, - $elm$core$Dict$Black, - k, - v, - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight), - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight)); - } else { - return A5( - $elm$core$Dict$RBNode_elm_builtin, - $elm$core$Dict$Black, - k, - v, - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight), - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight)); - } - } - } else { - return dict; - } -}; -var $elm$core$Dict$removeHelpPrepEQGT = F7( - function (targetKey, dict, color, key, value, left, right) { - if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) { - var _v1 = left.a; - var lK = left.b; - var lV = left.c; - var lLeft = left.d; - var lRight = left.e; - return A5( - $elm$core$Dict$RBNode_elm_builtin, - color, - lK, - lV, - lLeft, - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, key, value, lRight, right)); - } else { - _v2$2: - while (true) { - if ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Black')) { - if (right.d.$ === 'RBNode_elm_builtin') { - if (right.d.a.$ === 'Black') { - var _v3 = right.a; - var _v4 = right.d; - var _v5 = _v4.a; - return $elm$core$Dict$moveRedRight(dict); - } else { - break _v2$2; - } - } else { - var _v6 = right.a; - var _v7 = right.d; - return $elm$core$Dict$moveRedRight(dict); - } - } else { - break _v2$2; - } - } - return dict; - } - }); -var $elm$core$Dict$removeMin = function (dict) { - if ((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) { - var color = dict.a; - var key = dict.b; - var value = dict.c; - var left = dict.d; - var lColor = left.a; - var lLeft = left.d; - var right = dict.e; - if (lColor.$ === 'Black') { - if ((lLeft.$ === 'RBNode_elm_builtin') && (lLeft.a.$ === 'Red')) { - var _v3 = lLeft.a; - return A5( - $elm$core$Dict$RBNode_elm_builtin, - color, - key, - value, - $elm$core$Dict$removeMin(left), - right); - } else { - var _v4 = $elm$core$Dict$moveRedLeft(dict); - if (_v4.$ === 'RBNode_elm_builtin') { - var nColor = _v4.a; - var nKey = _v4.b; - var nValue = _v4.c; - var nLeft = _v4.d; - var nRight = _v4.e; - return A5( - $elm$core$Dict$balance, - nColor, - nKey, - nValue, - $elm$core$Dict$removeMin(nLeft), - nRight); - } else { - return $elm$core$Dict$RBEmpty_elm_builtin; - } - } - } else { - return A5( - $elm$core$Dict$RBNode_elm_builtin, - color, - key, - value, - $elm$core$Dict$removeMin(left), - right); - } - } else { - return $elm$core$Dict$RBEmpty_elm_builtin; - } -}; -var $elm$core$Dict$removeHelp = F2( - function (targetKey, dict) { - if (dict.$ === 'RBEmpty_elm_builtin') { - return $elm$core$Dict$RBEmpty_elm_builtin; - } else { - var color = dict.a; - var key = dict.b; - var value = dict.c; - var left = dict.d; - var right = dict.e; - if (_Utils_cmp(targetKey, key) < 0) { - if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Black')) { - var _v4 = left.a; - var lLeft = left.d; - if ((lLeft.$ === 'RBNode_elm_builtin') && (lLeft.a.$ === 'Red')) { - var _v6 = lLeft.a; - return A5( - $elm$core$Dict$RBNode_elm_builtin, - color, - key, - value, - A2($elm$core$Dict$removeHelp, targetKey, left), - right); - } else { - var _v7 = $elm$core$Dict$moveRedLeft(dict); - if (_v7.$ === 'RBNode_elm_builtin') { - var nColor = _v7.a; - var nKey = _v7.b; - var nValue = _v7.c; - var nLeft = _v7.d; - var nRight = _v7.e; - return A5( - $elm$core$Dict$balance, - nColor, - nKey, - nValue, - A2($elm$core$Dict$removeHelp, targetKey, nLeft), - nRight); - } else { - return $elm$core$Dict$RBEmpty_elm_builtin; - } - } - } else { - return A5( - $elm$core$Dict$RBNode_elm_builtin, - color, - key, - value, - A2($elm$core$Dict$removeHelp, targetKey, left), - right); - } - } else { - return A2( - $elm$core$Dict$removeHelpEQGT, - targetKey, - A7($elm$core$Dict$removeHelpPrepEQGT, targetKey, dict, color, key, value, left, right)); - } - } - }); -var $elm$core$Dict$removeHelpEQGT = F2( - function (targetKey, dict) { - if (dict.$ === 'RBNode_elm_builtin') { - var color = dict.a; - var key = dict.b; - var value = dict.c; - var left = dict.d; - var right = dict.e; - if (_Utils_eq(targetKey, key)) { - var _v1 = $elm$core$Dict$getMin(right); - if (_v1.$ === 'RBNode_elm_builtin') { - var minKey = _v1.b; - var minValue = _v1.c; - return A5( - $elm$core$Dict$balance, - color, - minKey, - minValue, - left, - $elm$core$Dict$removeMin(right)); - } else { - return $elm$core$Dict$RBEmpty_elm_builtin; - } - } else { - return A5( - $elm$core$Dict$balance, - color, - key, - value, - left, - A2($elm$core$Dict$removeHelp, targetKey, right)); - } - } else { - return $elm$core$Dict$RBEmpty_elm_builtin; - } - }); -var $elm$core$Dict$remove = F2( - function (key, dict) { - var _v0 = A2($elm$core$Dict$removeHelp, key, dict); - if ((_v0.$ === 'RBNode_elm_builtin') && (_v0.a.$ === 'Red')) { - var _v1 = _v0.a; - var k = _v0.b; - var v = _v0.c; - var l = _v0.d; - var r = _v0.e; - return A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, k, v, l, r); - } else { - var x = _v0; - return x; - } - }); -var $author$project$Morphir$Web$Insight$update = F2( - function (msg, model) { - var getDistribution = function () { - var _v12 = model.modelState; - switch (_v12.$) { - case 'IRLoaded': - var distribution = _v12.a; - return $elm$core$Maybe$Just(distribution); - case 'FunctionsSet': - var visualizationState = _v12.a; - return $elm$core$Maybe$Just(visualizationState.distribution); - default: - return $elm$core$Maybe$Nothing; - } - }(); - switch (msg.$) { - case 'FunctionNameReceived': - var qNameString = msg.a; - var popupScreen = {variableIndex: 0, variableValue: $elm$core$Maybe$Nothing}; - var _v1 = $author$project$Morphir$IR$QName$fromString(qNameString); - if (_v1.$ === 'Just') { - var qName = _v1.a; - return A2( - $elm$core$Maybe$withDefault, - _Utils_Tuple2( - _Utils_update( - model, - { - modelState: $author$project$Morphir$Web$Insight$Failed('Invalid State in receiving function name') - }), - $elm$core$Platform$Cmd$none), - A2( - $elm$core$Maybe$map, - function (m) { - return _Utils_Tuple2(m, $elm$core$Platform$Cmd$none); - }, - A2( - $elm$core$Maybe$andThen, - function (distribution) { - return A2( - $elm$core$Maybe$map, - function (funDef) { - return _Utils_update( - model, - { - modelState: $author$project$Morphir$Web$Insight$FunctionsSet( - {distribution: distribution, expandedFunctions: $elm$core$Dict$empty, functionArguments: _List_Nil, functionDefinition: funDef, popupVariables: popupScreen, selectedFunction: qName}) - }); - }, - A2($author$project$Morphir$IR$Distribution$lookupValueDefinition, qName, distribution)); - }, - getDistribution))); - } else { - return _Utils_Tuple2( - _Utils_update( - model, - { - modelState: $author$project$Morphir$Web$Insight$Failed('Received function name is not found') - }), - $elm$core$Platform$Cmd$none); - } - case 'FunctionArgumentsReceived': - var jsonList = msg.a; - var getTypes = function () { - var _v6 = model.modelState; - if (_v6.$ === 'FunctionsSet') { - var visualizationState = _v6.a; - return A2( - $author$project$Morphir$IR$Type$Tuple, - _Utils_Tuple0, - A2( - $elm$core$List$map, - function (_v7) { - var name = _v7.a; - var tpe = _v7.c; - return tpe; - }, - visualizationState.functionDefinition.inputTypes)); - } else { - return $author$project$Morphir$IR$Type$Unit(_Utils_Tuple0); - } - }(); - var getIR = function () { - if (getDistribution.$ === 'Just') { - var distribution = getDistribution.a; - return $author$project$Morphir$IR$fromDistribution(distribution); - } else { - return $author$project$Morphir$IR$empty; - } - }(); - var jsonDecoder = A2($author$project$Morphir$IR$Type$DataCodec$decodeData, getIR, getTypes); - var _v2 = A2( - $elm$core$Result$andThen, - function (decoder) { - return A2( - $elm$core$Result$mapError, - $elm$json$Json$Decode$errorToString, - A2($elm$json$Json$Decode$decodeValue, decoder, jsonList)); - }, - jsonDecoder); - if (_v2.$ === 'Ok') { - var tupleList = _v2.a; - var updatedArgValues = function () { - if (tupleList.$ === 'Tuple') { - var list = tupleList.b; - return list; - } else { - return _List_Nil; - } - }(); - var _v3 = model.modelState; - if (_v3.$ === 'FunctionsSet') { - var visualizationState = _v3.a; - return _Utils_Tuple2( - _Utils_update( - model, - { - modelState: $author$project$Morphir$Web$Insight$FunctionsSet( - _Utils_update( - visualizationState, - {functionArguments: updatedArgValues})) - }), - $elm$core$Platform$Cmd$none); - } else { - return _Utils_Tuple2( - _Utils_update( - model, - { - modelState: $author$project$Morphir$Web$Insight$Failed('Invalid State') - }), - $elm$core$Platform$Cmd$none); - } - } else { - return _Utils_Tuple2( - _Utils_update( - model, - { - modelState: $author$project$Morphir$Web$Insight$Failed('Received function arguments cannot be decoded') - }), - $elm$core$Platform$Cmd$none); - } - case 'ExpandReference': - var fqName = msg.a; - var packageName = fqName.a; - var moduleName = fqName.b; - var localName = fqName.c; - var isFunctionPresent = msg.b; - var _v8 = model.modelState; - if (_v8.$ === 'FunctionsSet') { - var visualizationState = _v8.a; - if (A2($elm$core$Dict$member, fqName, visualizationState.expandedFunctions)) { - if (isFunctionPresent) { - return _Utils_Tuple2( - _Utils_update( - model, - { - modelState: $author$project$Morphir$Web$Insight$FunctionsSet( - _Utils_update( - visualizationState, - { - expandedFunctions: A2($elm$core$Dict$remove, fqName, visualizationState.expandedFunctions) - })) - }), - $elm$core$Platform$Cmd$none); - } else { - return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none); - } - } else { - return _Utils_Tuple2( - _Utils_update( - model, - { - modelState: $author$project$Morphir$Web$Insight$FunctionsSet( - _Utils_update( - visualizationState, - { - expandedFunctions: A2( - $elm$core$Maybe$withDefault, - visualizationState.expandedFunctions, - A2( - $elm$core$Maybe$map, - function (valueDef) { - return A3($elm$core$Dict$insert, fqName, valueDef, visualizationState.expandedFunctions); - }, - A2( - $author$project$Morphir$IR$Distribution$lookupValueDefinition, - A2($author$project$Morphir$IR$QName$QName, moduleName, localName), - visualizationState.distribution))) - })) - }), - $elm$core$Platform$Cmd$none); - } - } else { - return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none); - } - case 'ExpandVariable': - var varIndex = msg.a; - var maybeRawValue = msg.b; - var _v10 = model.modelState; - if (_v10.$ === 'FunctionsSet') { - var visualizationState = _v10.a; - var popupScreen = {variableIndex: varIndex, variableValue: maybeRawValue}; - return _Utils_Tuple2( - _Utils_update( - model, - { - modelState: $author$project$Morphir$Web$Insight$FunctionsSet( - _Utils_update( - visualizationState, - {popupVariables: popupScreen})) - }), - $elm$core$Platform$Cmd$none); - } else { - return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none); - } - default: - var varIndex = msg.a; - var _v11 = model.modelState; - if (_v11.$ === 'FunctionsSet') { - var visualizationState = _v11.a; - var popupScreen = {variableIndex: varIndex, variableValue: $elm$core$Maybe$Nothing}; - return _Utils_Tuple2( - _Utils_update( - model, - { - modelState: $author$project$Morphir$Web$Insight$FunctionsSet( - _Utils_update( - visualizationState, - {popupVariables: popupScreen})) - }), - $elm$core$Platform$Cmd$none); - } else { - return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none); - } - } - }); -var $author$project$Morphir$Web$Insight$ExpandReference = F2( - function (a, b) { - return {$: 'ExpandReference', a: a, b: b}; - }); -var $author$project$Morphir$Web$Insight$ExpandVariable = F2( - function (a, b) { - return {$: 'ExpandVariable', a: a, b: b}; - }); -var $author$project$Morphir$Web$Insight$ShrinkVariable = function (a) { - return {$: 'ShrinkVariable', a: a}; -}; -var $mdgriffith$elm_ui$Internal$Model$Class = F2( - function (a, b) { - return {$: 'Class', a: a, b: b}; - }); -var $mdgriffith$elm_ui$Internal$Style$classes = {above: 'a', active: 'atv', alignBottom: 'ab', alignCenterX: 'cx', alignCenterY: 'cy', alignContainerBottom: 'acb', alignContainerCenterX: 'accx', alignContainerCenterY: 'accy', alignContainerRight: 'acr', alignLeft: 'al', alignRight: 'ar', alignTop: 'at', alignedHorizontally: 'ah', alignedVertically: 'av', any: 's', behind: 'bh', below: 'b', bold: 'w7', borderDashed: 'bd', borderDotted: 'bdt', borderNone: 'bn', borderSolid: 'bs', capturePointerEvents: 'cpe', clip: 'cp', clipX: 'cpx', clipY: 'cpy', column: 'c', container: 'ctr', contentBottom: 'cb', contentCenterX: 'ccx', contentCenterY: 'ccy', contentLeft: 'cl', contentRight: 'cr', contentTop: 'ct', cursorPointer: 'cptr', cursorText: 'ctxt', focus: 'fcs', focusedWithin: 'focus-within', fullSize: 'fs', grid: 'g', hasBehind: 'hbh', heightContent: 'hc', heightExact: 'he', heightFill: 'hf', heightFillPortion: 'hfp', hover: 'hv', imageContainer: 'ic', inFront: 'fr', inputLabel: 'lbl', inputMultiline: 'iml', inputMultilineFiller: 'imlf', inputMultilineParent: 'imlp', inputMultilineWrapper: 'implw', inputText: 'it', italic: 'i', link: 'lnk', nearby: 'nb', noTextSelection: 'notxt', onLeft: 'ol', onRight: 'or', opaque: 'oq', overflowHidden: 'oh', page: 'pg', paragraph: 'p', passPointerEvents: 'ppe', root: 'ui', row: 'r', scrollbars: 'sb', scrollbarsX: 'sbx', scrollbarsY: 'sby', seButton: 'sbt', single: 'e', sizeByCapital: 'cap', spaceEvenly: 'sev', strike: 'sk', text: 't', textCenter: 'tc', textExtraBold: 'w8', textExtraLight: 'w2', textHeavy: 'w9', textJustify: 'tj', textJustifyAll: 'tja', textLeft: 'tl', textLight: 'w3', textMedium: 'w5', textNormalWeight: 'w4', textRight: 'tr', textSemiBold: 'w6', textThin: 'w1', textUnitalicized: 'tun', transition: 'ts', transparent: 'clr', underline: 'u', widthContent: 'wc', widthExact: 'we', widthFill: 'wf', widthFillPortion: 'wfp', wrapped: 'wrp'}; -var $mdgriffith$elm_ui$Internal$Flag$Flag = function (a) { - return {$: 'Flag', a: a}; -}; -var $mdgriffith$elm_ui$Internal$Flag$Second = function (a) { - return {$: 'Second', a: a}; -}; -var $elm$core$Bitwise$shiftLeftBy = _Bitwise_shiftLeftBy; -var $mdgriffith$elm_ui$Internal$Flag$flag = function (i) { - return (i > 31) ? $mdgriffith$elm_ui$Internal$Flag$Second(1 << (i - 32)) : $mdgriffith$elm_ui$Internal$Flag$Flag(1 << i); -}; -var $mdgriffith$elm_ui$Internal$Flag$fontWeight = $mdgriffith$elm_ui$Internal$Flag$flag(13); -var $mdgriffith$elm_ui$Element$Font$bold = A2($mdgriffith$elm_ui$Internal$Model$Class, $mdgriffith$elm_ui$Internal$Flag$fontWeight, $mdgriffith$elm_ui$Internal$Style$classes.bold); -var $elm$html$Html$div = _VirtualDom_node('div'); -var $mdgriffith$elm_ui$Internal$Model$Attr = function (a) { - return {$: 'Attr', a: a}; -}; -var $elm$json$Json$Encode$string = _Json_wrap; -var $elm$html$Html$Attributes$stringProperty = F2( - function (key, string) { - return A2( - _VirtualDom_property, - key, - $elm$json$Json$Encode$string(string)); - }); -var $elm$html$Html$Attributes$class = $elm$html$Html$Attributes$stringProperty('className'); -var $mdgriffith$elm_ui$Internal$Model$htmlClass = function (cls) { - return $mdgriffith$elm_ui$Internal$Model$Attr( - $elm$html$Html$Attributes$class(cls)); -}; -var $mdgriffith$elm_ui$Internal$Model$OnlyDynamic = F2( - function (a, b) { - return {$: 'OnlyDynamic', a: a, b: b}; - }); -var $mdgriffith$elm_ui$Internal$Model$StaticRootAndDynamic = F2( - function (a, b) { - return {$: 'StaticRootAndDynamic', a: a, b: b}; - }); -var $mdgriffith$elm_ui$Internal$Model$Unkeyed = function (a) { - return {$: 'Unkeyed', a: a}; -}; -var $mdgriffith$elm_ui$Internal$Model$AsEl = {$: 'AsEl'}; -var $mdgriffith$elm_ui$Internal$Model$asEl = $mdgriffith$elm_ui$Internal$Model$AsEl; -var $mdgriffith$elm_ui$Internal$Model$Generic = {$: 'Generic'}; -var $mdgriffith$elm_ui$Internal$Model$div = $mdgriffith$elm_ui$Internal$Model$Generic; -var $mdgriffith$elm_ui$Internal$Model$NoNearbyChildren = {$: 'NoNearbyChildren'}; -var $mdgriffith$elm_ui$Internal$Model$columnClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.column); -var $mdgriffith$elm_ui$Internal$Model$gridClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.grid); -var $mdgriffith$elm_ui$Internal$Model$pageClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.page); -var $mdgriffith$elm_ui$Internal$Model$paragraphClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.paragraph); -var $mdgriffith$elm_ui$Internal$Model$rowClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.row); -var $mdgriffith$elm_ui$Internal$Model$singleClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.single); -var $mdgriffith$elm_ui$Internal$Model$contextClasses = function (context) { - switch (context.$) { - case 'AsRow': - return $mdgriffith$elm_ui$Internal$Model$rowClass; - case 'AsColumn': - return $mdgriffith$elm_ui$Internal$Model$columnClass; - case 'AsEl': - return $mdgriffith$elm_ui$Internal$Model$singleClass; - case 'AsGrid': - return $mdgriffith$elm_ui$Internal$Model$gridClass; - case 'AsParagraph': - return $mdgriffith$elm_ui$Internal$Model$paragraphClass; - default: - return $mdgriffith$elm_ui$Internal$Model$pageClass; - } -}; -var $mdgriffith$elm_ui$Internal$Model$Keyed = function (a) { - return {$: 'Keyed', a: a}; -}; -var $mdgriffith$elm_ui$Internal$Model$NoStyleSheet = {$: 'NoStyleSheet'}; -var $mdgriffith$elm_ui$Internal$Model$Styled = function (a) { - return {$: 'Styled', a: a}; -}; -var $mdgriffith$elm_ui$Internal$Model$Unstyled = function (a) { - return {$: 'Unstyled', a: a}; -}; -var $mdgriffith$elm_ui$Internal$Model$addChildren = F2( - function (existing, nearbyChildren) { - switch (nearbyChildren.$) { - case 'NoNearbyChildren': - return existing; - case 'ChildrenBehind': - var behind = nearbyChildren.a; - return _Utils_ap(behind, existing); - case 'ChildrenInFront': - var inFront = nearbyChildren.a; - return _Utils_ap(existing, inFront); - default: - var behind = nearbyChildren.a; - var inFront = nearbyChildren.b; - return _Utils_ap( - behind, - _Utils_ap(existing, inFront)); - } - }); -var $mdgriffith$elm_ui$Internal$Model$addKeyedChildren = F3( - function (key, existing, nearbyChildren) { - switch (nearbyChildren.$) { - case 'NoNearbyChildren': - return existing; - case 'ChildrenBehind': - var behind = nearbyChildren.a; - return _Utils_ap( - A2( - $elm$core$List$map, - function (x) { - return _Utils_Tuple2(key, x); - }, - behind), - existing); - case 'ChildrenInFront': - var inFront = nearbyChildren.a; - return _Utils_ap( - existing, - A2( - $elm$core$List$map, - function (x) { - return _Utils_Tuple2(key, x); - }, - inFront)); - default: - var behind = nearbyChildren.a; - var inFront = nearbyChildren.b; - return _Utils_ap( - A2( - $elm$core$List$map, - function (x) { - return _Utils_Tuple2(key, x); - }, - behind), - _Utils_ap( - existing, - A2( - $elm$core$List$map, - function (x) { - return _Utils_Tuple2(key, x); - }, - inFront))); - } - }); -var $mdgriffith$elm_ui$Internal$Model$AsParagraph = {$: 'AsParagraph'}; -var $mdgriffith$elm_ui$Internal$Model$asParagraph = $mdgriffith$elm_ui$Internal$Model$AsParagraph; -var $mdgriffith$elm_ui$Internal$Flag$alignBottom = $mdgriffith$elm_ui$Internal$Flag$flag(41); -var $mdgriffith$elm_ui$Internal$Flag$alignRight = $mdgriffith$elm_ui$Internal$Flag$flag(40); -var $mdgriffith$elm_ui$Internal$Flag$centerX = $mdgriffith$elm_ui$Internal$Flag$flag(42); -var $mdgriffith$elm_ui$Internal$Flag$centerY = $mdgriffith$elm_ui$Internal$Flag$flag(43); -var $elm$core$Set$Set_elm_builtin = function (a) { - return {$: 'Set_elm_builtin', a: a}; -}; -var $elm$core$Set$empty = $elm$core$Set$Set_elm_builtin($elm$core$Dict$empty); -var $mdgriffith$elm_ui$Internal$Model$lengthClassName = function (x) { - switch (x.$) { - case 'Px': - var px = x.a; - return $elm$core$String$fromInt(px) + 'px'; - case 'Content': - return 'auto'; - case 'Fill': - var i = x.a; - return $elm$core$String$fromInt(i) + 'fr'; - case 'Min': - var min = x.a; - var len = x.b; - return 'min' + ($elm$core$String$fromInt(min) + $mdgriffith$elm_ui$Internal$Model$lengthClassName(len)); - default: - var max = x.a; - var len = x.b; - return 'max' + ($elm$core$String$fromInt(max) + $mdgriffith$elm_ui$Internal$Model$lengthClassName(len)); - } -}; -var $elm$core$Basics$round = _Basics_round; -var $mdgriffith$elm_ui$Internal$Model$floatClass = function (x) { - return $elm$core$String$fromInt( - $elm$core$Basics$round(x * 255)); -}; -var $mdgriffith$elm_ui$Internal$Model$transformClass = function (transform) { - switch (transform.$) { - case 'Untransformed': - return $elm$core$Maybe$Nothing; - case 'Moved': - var _v1 = transform.a; - var x = _v1.a; - var y = _v1.b; - var z = _v1.c; - return $elm$core$Maybe$Just( - 'mv-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(x) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(y) + ('-' + $mdgriffith$elm_ui$Internal$Model$floatClass(z)))))); - default: - var _v2 = transform.a; - var tx = _v2.a; - var ty = _v2.b; - var tz = _v2.c; - var _v3 = transform.b; - var sx = _v3.a; - var sy = _v3.b; - var sz = _v3.c; - var _v4 = transform.c; - var ox = _v4.a; - var oy = _v4.b; - var oz = _v4.c; - var angle = transform.d; - return $elm$core$Maybe$Just( - 'tfrm-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(tx) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(ty) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(tz) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(sx) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(sy) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(sz) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(ox) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(oy) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(oz) + ('-' + $mdgriffith$elm_ui$Internal$Model$floatClass(angle)))))))))))))))))))); - } -}; -var $mdgriffith$elm_ui$Internal$Model$getStyleName = function (style) { - switch (style.$) { - case 'Shadows': - var name = style.a; - return name; - case 'Transparency': - var name = style.a; - var o = style.b; - return name; - case 'Style': - var _class = style.a; - return _class; - case 'FontFamily': - var name = style.a; - return name; - case 'FontSize': - var i = style.a; - return 'font-size-' + $elm$core$String$fromInt(i); - case 'Single': - var _class = style.a; - return _class; - case 'Colored': - var _class = style.a; - return _class; - case 'SpacingStyle': - var cls = style.a; - var x = style.b; - var y = style.c; - return cls; - case 'PaddingStyle': - var cls = style.a; - var top = style.b; - var right = style.c; - var bottom = style.d; - var left = style.e; - return cls; - case 'BorderWidth': - var cls = style.a; - var top = style.b; - var right = style.c; - var bottom = style.d; - var left = style.e; - return cls; - case 'GridTemplateStyle': - var template = style.a; - return 'grid-rows-' + (A2( - $elm$core$String$join, - '-', - A2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$lengthClassName, template.rows)) + ('-cols-' + (A2( - $elm$core$String$join, - '-', - A2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$lengthClassName, template.columns)) + ('-space-x-' + ($mdgriffith$elm_ui$Internal$Model$lengthClassName(template.spacing.a) + ('-space-y-' + $mdgriffith$elm_ui$Internal$Model$lengthClassName(template.spacing.b))))))); - case 'GridPosition': - var pos = style.a; - return 'gp grid-pos-' + ($elm$core$String$fromInt(pos.row) + ('-' + ($elm$core$String$fromInt(pos.col) + ('-' + ($elm$core$String$fromInt(pos.width) + ('-' + $elm$core$String$fromInt(pos.height))))))); - case 'PseudoSelector': - var selector = style.a; - var subStyle = style.b; - var name = function () { - switch (selector.$) { - case 'Focus': - return 'fs'; - case 'Hover': - return 'hv'; - default: - return 'act'; - } - }(); - return A2( - $elm$core$String$join, - ' ', - A2( - $elm$core$List$map, - function (sty) { - var _v1 = $mdgriffith$elm_ui$Internal$Model$getStyleName(sty); - if (_v1 === '') { - return ''; - } else { - var styleName = _v1; - return styleName + ('-' + name); - } - }, - subStyle)); - default: - var x = style.a; - return A2( - $elm$core$Maybe$withDefault, - '', - $mdgriffith$elm_ui$Internal$Model$transformClass(x)); - } -}; -var $elm$core$Set$insert = F2( - function (key, _v0) { - var dict = _v0.a; - return $elm$core$Set$Set_elm_builtin( - A3($elm$core$Dict$insert, key, _Utils_Tuple0, dict)); - }); -var $elm$core$Set$member = F2( - function (key, _v0) { - var dict = _v0.a; - return A2($elm$core$Dict$member, key, dict); - }); -var $mdgriffith$elm_ui$Internal$Model$reduceStyles = F2( - function (style, nevermind) { - var cache = nevermind.a; - var existing = nevermind.b; - var styleName = $mdgriffith$elm_ui$Internal$Model$getStyleName(style); - return A2($elm$core$Set$member, styleName, cache) ? nevermind : _Utils_Tuple2( - A2($elm$core$Set$insert, styleName, cache), - A2($elm$core$List$cons, style, existing)); - }); -var $mdgriffith$elm_ui$Internal$Model$Property = F2( - function (a, b) { - return {$: 'Property', a: a, b: b}; - }); -var $mdgriffith$elm_ui$Internal$Model$Style = F2( - function (a, b) { - return {$: 'Style', a: a, b: b}; - }); -var $mdgriffith$elm_ui$Internal$Style$dot = function (c) { - return '.' + c; -}; -var $elm$core$List$maybeCons = F3( - function (f, mx, xs) { - var _v0 = f(mx); - if (_v0.$ === 'Just') { - var x = _v0.a; - return A2($elm$core$List$cons, x, xs); - } else { - return xs; - } - }); -var $elm$core$List$filterMap = F2( - function (f, xs) { - return A3( - $elm$core$List$foldr, - $elm$core$List$maybeCons(f), - _List_Nil, - xs); - }); -var $elm$core$String$fromFloat = _String_fromNumber; -var $mdgriffith$elm_ui$Internal$Model$formatColor = function (_v0) { - var red = _v0.a; - var green = _v0.b; - var blue = _v0.c; - var alpha = _v0.d; - return 'rgba(' + ($elm$core$String$fromInt( - $elm$core$Basics$round(red * 255)) + ((',' + $elm$core$String$fromInt( - $elm$core$Basics$round(green * 255))) + ((',' + $elm$core$String$fromInt( - $elm$core$Basics$round(blue * 255))) + (',' + ($elm$core$String$fromFloat(alpha) + ')'))))); -}; -var $mdgriffith$elm_ui$Internal$Model$formatBoxShadow = function (shadow) { - return A2( - $elm$core$String$join, - ' ', - A2( - $elm$core$List$filterMap, - $elm$core$Basics$identity, - _List_fromArray( - [ - shadow.inset ? $elm$core$Maybe$Just('inset') : $elm$core$Maybe$Nothing, - $elm$core$Maybe$Just( - $elm$core$String$fromFloat(shadow.offset.a) + 'px'), - $elm$core$Maybe$Just( - $elm$core$String$fromFloat(shadow.offset.b) + 'px'), - $elm$core$Maybe$Just( - $elm$core$String$fromFloat(shadow.blur) + 'px'), - $elm$core$Maybe$Just( - $elm$core$String$fromFloat(shadow.size) + 'px'), - $elm$core$Maybe$Just( - $mdgriffith$elm_ui$Internal$Model$formatColor(shadow.color)) - ]))); -}; -var $elm$core$Tuple$mapFirst = F2( - function (func, _v0) { - var x = _v0.a; - var y = _v0.b; - return _Utils_Tuple2( - func(x), - y); - }); -var $elm$core$Tuple$mapSecond = F2( - function (func, _v0) { - var x = _v0.a; - var y = _v0.b; - return _Utils_Tuple2( - x, - func(y)); - }); -var $mdgriffith$elm_ui$Internal$Model$renderFocusStyle = function (focus) { - return _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Model$Style, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.focusedWithin) + ':focus-within', - A2( - $elm$core$List$filterMap, - $elm$core$Basics$identity, - _List_fromArray( - [ - A2( - $elm$core$Maybe$map, - function (color) { - return A2( - $mdgriffith$elm_ui$Internal$Model$Property, - 'border-color', - $mdgriffith$elm_ui$Internal$Model$formatColor(color)); - }, - focus.borderColor), - A2( - $elm$core$Maybe$map, - function (color) { - return A2( - $mdgriffith$elm_ui$Internal$Model$Property, - 'background-color', - $mdgriffith$elm_ui$Internal$Model$formatColor(color)); - }, - focus.backgroundColor), - A2( - $elm$core$Maybe$map, - function (shadow) { - return A2( - $mdgriffith$elm_ui$Internal$Model$Property, - 'box-shadow', - $mdgriffith$elm_ui$Internal$Model$formatBoxShadow( - { - blur: shadow.blur, - color: shadow.color, - inset: false, - offset: A2( - $elm$core$Tuple$mapSecond, - $elm$core$Basics$toFloat, - A2($elm$core$Tuple$mapFirst, $elm$core$Basics$toFloat, shadow.offset)), - size: shadow.size - })); - }, - focus.shadow), - $elm$core$Maybe$Just( - A2($mdgriffith$elm_ui$Internal$Model$Property, 'outline', 'none')) - ]))), - A2( - $mdgriffith$elm_ui$Internal$Model$Style, - ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ':focus .focusable, ') + (($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + '.focusable:focus, ') + ('.ui-slide-bar:focus + ' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ' .focusable-thumb'))), - A2( - $elm$core$List$filterMap, - $elm$core$Basics$identity, - _List_fromArray( - [ - A2( - $elm$core$Maybe$map, - function (color) { - return A2( - $mdgriffith$elm_ui$Internal$Model$Property, - 'border-color', - $mdgriffith$elm_ui$Internal$Model$formatColor(color)); - }, - focus.borderColor), - A2( - $elm$core$Maybe$map, - function (color) { - return A2( - $mdgriffith$elm_ui$Internal$Model$Property, - 'background-color', - $mdgriffith$elm_ui$Internal$Model$formatColor(color)); - }, - focus.backgroundColor), - A2( - $elm$core$Maybe$map, - function (shadow) { - return A2( - $mdgriffith$elm_ui$Internal$Model$Property, - 'box-shadow', - $mdgriffith$elm_ui$Internal$Model$formatBoxShadow( - { - blur: shadow.blur, - color: shadow.color, - inset: false, - offset: A2( - $elm$core$Tuple$mapSecond, - $elm$core$Basics$toFloat, - A2($elm$core$Tuple$mapFirst, $elm$core$Basics$toFloat, shadow.offset)), - size: shadow.size - })); - }, - focus.shadow), - $elm$core$Maybe$Just( - A2($mdgriffith$elm_ui$Internal$Model$Property, 'outline', 'none')) - ]))) - ]); -}; -var $elm$virtual_dom$VirtualDom$node = function (tag) { - return _VirtualDom_node( - _VirtualDom_noScript(tag)); -}; -var $elm$virtual_dom$VirtualDom$property = F2( - function (key, value) { - return A2( - _VirtualDom_property, - _VirtualDom_noInnerHtmlOrFormAction(key), - _VirtualDom_noJavaScriptOrHtmlUri(value)); - }); -var $mdgriffith$elm_ui$Internal$Style$AllChildren = F2( - function (a, b) { - return {$: 'AllChildren', a: a, b: b}; - }); -var $mdgriffith$elm_ui$Internal$Style$Batch = function (a) { - return {$: 'Batch', a: a}; -}; -var $mdgriffith$elm_ui$Internal$Style$Child = F2( - function (a, b) { - return {$: 'Child', a: a, b: b}; - }); -var $mdgriffith$elm_ui$Internal$Style$Class = F2( - function (a, b) { - return {$: 'Class', a: a, b: b}; - }); -var $mdgriffith$elm_ui$Internal$Style$Descriptor = F2( - function (a, b) { - return {$: 'Descriptor', a: a, b: b}; - }); -var $mdgriffith$elm_ui$Internal$Style$Left = {$: 'Left'}; -var $mdgriffith$elm_ui$Internal$Style$Prop = F2( - function (a, b) { - return {$: 'Prop', a: a, b: b}; - }); -var $mdgriffith$elm_ui$Internal$Style$Right = {$: 'Right'}; -var $mdgriffith$elm_ui$Internal$Style$Self = function (a) { - return {$: 'Self', a: a}; -}; -var $mdgriffith$elm_ui$Internal$Style$Supports = F2( - function (a, b) { - return {$: 'Supports', a: a, b: b}; - }); -var $mdgriffith$elm_ui$Internal$Style$Content = function (a) { - return {$: 'Content', a: a}; -}; -var $mdgriffith$elm_ui$Internal$Style$Bottom = {$: 'Bottom'}; -var $mdgriffith$elm_ui$Internal$Style$CenterX = {$: 'CenterX'}; -var $mdgriffith$elm_ui$Internal$Style$CenterY = {$: 'CenterY'}; -var $mdgriffith$elm_ui$Internal$Style$Top = {$: 'Top'}; -var $mdgriffith$elm_ui$Internal$Style$alignments = _List_fromArray( - [$mdgriffith$elm_ui$Internal$Style$Top, $mdgriffith$elm_ui$Internal$Style$Bottom, $mdgriffith$elm_ui$Internal$Style$Right, $mdgriffith$elm_ui$Internal$Style$Left, $mdgriffith$elm_ui$Internal$Style$CenterX, $mdgriffith$elm_ui$Internal$Style$CenterY]); -var $mdgriffith$elm_ui$Internal$Style$contentName = function (desc) { - switch (desc.a.$) { - case 'Top': - var _v1 = desc.a; - return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentTop); - case 'Bottom': - var _v2 = desc.a; - return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentBottom); - case 'Right': - var _v3 = desc.a; - return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentRight); - case 'Left': - var _v4 = desc.a; - return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentLeft); - case 'CenterX': - var _v5 = desc.a; - return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentCenterX); - default: - var _v6 = desc.a; - return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentCenterY); - } -}; -var $mdgriffith$elm_ui$Internal$Style$selfName = function (desc) { - switch (desc.a.$) { - case 'Top': - var _v1 = desc.a; - return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignTop); - case 'Bottom': - var _v2 = desc.a; - return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignBottom); - case 'Right': - var _v3 = desc.a; - return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignRight); - case 'Left': - var _v4 = desc.a; - return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignLeft); - case 'CenterX': - var _v5 = desc.a; - return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterX); - default: - var _v6 = desc.a; - return $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterY); - } -}; -var $mdgriffith$elm_ui$Internal$Style$describeAlignment = function (values) { - var createDescription = function (alignment) { - var _v0 = values(alignment); - var content = _v0.a; - var indiv = _v0.b; - return _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$contentName( - $mdgriffith$elm_ui$Internal$Style$Content(alignment)), - content), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$selfName( - $mdgriffith$elm_ui$Internal$Style$Self(alignment)), - indiv) - ])) - ]); - }; - return $mdgriffith$elm_ui$Internal$Style$Batch( - A2($elm$core$List$concatMap, createDescription, $mdgriffith$elm_ui$Internal$Style$alignments)); -}; -var $mdgriffith$elm_ui$Internal$Style$elDescription = _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-direction', 'column'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'pre'), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.hasBehind), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '0'), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.behind), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '-1') - ])) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.seButton), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.text), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'auto !important') - ])) - ])) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightContent), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', 'auto') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '100000') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFillPortion), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthContent), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-start') - ])), - $mdgriffith$elm_ui$Internal$Style$describeAlignment( - function (alignment) { - switch (alignment.$) { - case 'Top': - return _Utils_Tuple2( - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-start') - ]), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto !important'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', '0 !important') - ])); - case 'Bottom': - return _Utils_Tuple2( - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-end') - ]), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto !important'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', '0 !important') - ])); - case 'Right': - return _Utils_Tuple2( - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-end') - ]), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-end') - ])); - case 'Left': - return _Utils_Tuple2( - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-start') - ]), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-start') - ])); - case 'CenterX': - return _Utils_Tuple2( - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'center') - ]), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'center') - ])); - default: - return _Utils_Tuple2( - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto') - ])) - ]), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto !important'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto !important') - ])); - } - }) - ]); -var $mdgriffith$elm_ui$Internal$Style$gridAlignments = function (values) { - var createDescription = function (alignment) { - return _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$selfName( - $mdgriffith$elm_ui$Internal$Style$Self(alignment)), - values(alignment)) - ])) - ]); - }; - return $mdgriffith$elm_ui$Internal$Style$Batch( - A2($elm$core$List$concatMap, createDescription, $mdgriffith$elm_ui$Internal$Style$alignments)); -}; -var $mdgriffith$elm_ui$Internal$Style$Above = {$: 'Above'}; -var $mdgriffith$elm_ui$Internal$Style$Behind = {$: 'Behind'}; -var $mdgriffith$elm_ui$Internal$Style$Below = {$: 'Below'}; -var $mdgriffith$elm_ui$Internal$Style$OnLeft = {$: 'OnLeft'}; -var $mdgriffith$elm_ui$Internal$Style$OnRight = {$: 'OnRight'}; -var $mdgriffith$elm_ui$Internal$Style$Within = {$: 'Within'}; -var $mdgriffith$elm_ui$Internal$Style$locations = function () { - var loc = $mdgriffith$elm_ui$Internal$Style$Above; - var _v0 = function () { - switch (loc.$) { - case 'Above': - return _Utils_Tuple0; - case 'Below': - return _Utils_Tuple0; - case 'OnRight': - return _Utils_Tuple0; - case 'OnLeft': - return _Utils_Tuple0; - case 'Within': - return _Utils_Tuple0; - default: - return _Utils_Tuple0; - } - }(); - return _List_fromArray( - [$mdgriffith$elm_ui$Internal$Style$Above, $mdgriffith$elm_ui$Internal$Style$Below, $mdgriffith$elm_ui$Internal$Style$OnRight, $mdgriffith$elm_ui$Internal$Style$OnLeft, $mdgriffith$elm_ui$Internal$Style$Within, $mdgriffith$elm_ui$Internal$Style$Behind]); -}(); -var $mdgriffith$elm_ui$Internal$Style$baseSheet = _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Style$Class, - 'html,body', - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'padding', '0'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Class, - _Utils_ap( - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any), - _Utils_ap( - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single), - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.imageContainer))), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'block'), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - 'img', - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'max-height', '100%'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'object-fit', 'cover') - ])) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - 'img', - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'max-width', '100%'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'object-fit', 'cover') - ])) - ])) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Class, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ':focus', - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'outline', 'none') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Class, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.root), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', 'auto'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'min-height', '100%'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '0'), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - _Utils_ap( - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any), - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill)), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%') - ])) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inFront), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.nearby), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'fixed'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '20') - ])) - ])) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Class, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.nearby), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'relative'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border', 'none'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-direction', 'row'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto'), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single), - $mdgriffith$elm_ui$Internal$Style$elDescription), - $mdgriffith$elm_ui$Internal$Style$Batch( - function (fn) { - return A2($elm$core$List$map, fn, $mdgriffith$elm_ui$Internal$Style$locations); - }( - function (loc) { - switch (loc.$) { - case 'Above': - return A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.above), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'bottom', '100%'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '0'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '20'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', 'auto') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%') - ])), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - '*', - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto') - ])) - ])); - case 'Below': - return A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.below), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'bottom', '0'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '0'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '0'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '20'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - '*', - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', 'auto') - ])) - ])); - case 'OnRight': - return A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.onRight), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '100%'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'top', '0'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '20'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - '*', - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto') - ])) - ])); - case 'OnLeft': - return A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.onLeft), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'right', '100%'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'top', '0'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '20'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - '*', - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto') - ])) - ])); - case 'Within': - return A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inFront), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '0'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'top', '0'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - '*', - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto') - ])) - ])); - default: - return A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.behind), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '0'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'top', '0'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '0'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - '*', - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto') - ])) - ])); - } - })) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Class, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'relative'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border', 'none'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-shrink', '0'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-direction', 'row'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'resize', 'none'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-feature-settings', 'inherit'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'box-sizing', 'border-box'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'padding', '0'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-width', '0'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-style', 'solid'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-size', 'inherit'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'color', 'inherit'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-family', 'inherit'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'line-height', '1'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', 'inherit'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration', 'none'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-style', 'inherit'), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.wrapped), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-wrap', 'wrap') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.noTextSelection), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, '-moz-user-select', 'none'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, '-webkit-user-select', 'none'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, '-ms-user-select', 'none'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'user-select', 'none') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.cursorPointer), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'cursor', 'pointer') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.cursorText), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'cursor', 'text') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.passPointerEvents), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none !important') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.capturePointerEvents), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto !important') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.transparent), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '0') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.opaque), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '1') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot( - _Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.hover, $mdgriffith$elm_ui$Internal$Style$classes.transparent)) + ':hover', - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '0') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot( - _Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.hover, $mdgriffith$elm_ui$Internal$Style$classes.opaque)) + ':hover', - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '1') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot( - _Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.focus, $mdgriffith$elm_ui$Internal$Style$classes.transparent)) + ':focus', - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '0') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot( - _Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.focus, $mdgriffith$elm_ui$Internal$Style$classes.opaque)) + ':focus', - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '1') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot( - _Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.active, $mdgriffith$elm_ui$Internal$Style$classes.transparent)) + ':active', - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '0') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot( - _Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.active, $mdgriffith$elm_ui$Internal$Style$classes.opaque)) + ':active', - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '1') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.transition), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Style$Prop, - 'transition', - A2( - $elm$core$String$join, - ', ', - A2( - $elm$core$List$map, - function (x) { - return x + ' 160ms'; - }, - _List_fromArray( - ['transform', 'opacity', 'filter', 'background-color', 'color', 'font-size'])))) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.scrollbars), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow', 'auto'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-shrink', '1') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.scrollbarsX), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow-x', 'auto'), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.row), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-shrink', '1') - ])) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.scrollbarsY), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow-y', 'auto'), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.column), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-shrink', '1') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-shrink', '1') - ])) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.clip), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow', 'hidden') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.clipX), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow-x', 'hidden') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.clipY), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow-y', 'hidden') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthContent), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', 'auto') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.borderNone), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-width', '0') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.borderDashed), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-style', 'dashed') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.borderDotted), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-style', 'dotted') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.borderSolid), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-style', 'solid') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.text), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'pre'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline-block') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputText), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'line-height', '1.05'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'background', 'transparent'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'inherit') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single), - $mdgriffith$elm_ui$Internal$Style$elDescription), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.row), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-direction', 'row'), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', '0%'), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthExact), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.link), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto') - ])) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'stretch !important') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFillPortion), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'stretch !important') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '100000') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.container), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'stretch') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - 'u:first-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerRight, - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - 's:first-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX, - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterX), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-left', 'auto !important') - ])) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - 's:last-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX, - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterX), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-right', 'auto !important') - ])) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - 's:only-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX, - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterY), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto !important'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto !important') - ])) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - 's:last-of-type.' + ($mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX + ' ~ u'), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - 'u:first-of-type.' + ($mdgriffith$elm_ui$Internal$Style$classes.alignContainerRight + (' ~ s.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX)), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0') - ])), - $mdgriffith$elm_ui$Internal$Style$describeAlignment( - function (alignment) { - switch (alignment.$) { - case 'Top': - return _Utils_Tuple2( - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-start') - ]), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-start') - ])); - case 'Bottom': - return _Utils_Tuple2( - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-end') - ]), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-end') - ])); - case 'Right': - return _Utils_Tuple2( - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-end') - ]), - _List_Nil); - case 'Left': - return _Utils_Tuple2( - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-start') - ]), - _List_Nil); - case 'CenterX': - return _Utils_Tuple2( - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'center') - ]), - _List_Nil); - default: - return _Utils_Tuple2( - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'center') - ]), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'center') - ])); - } - }), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.spaceEvenly), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'space-between') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputLabel), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'baseline') - ])) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.column), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-direction', 'column'), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', '0px'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'min-height', 'min-content'), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightExact), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto') - ])) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '100000') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFillPortion), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthContent), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-start') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - 'u:first-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerBottom, - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - 's:first-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY, - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterY), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto !important'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', '0 !important') - ])) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - 's:last-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY, - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterY), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto !important'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', '0 !important') - ])) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - 's:only-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY, - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterY), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto !important'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto !important') - ])) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - 's:last-of-type.' + ($mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY + ' ~ u'), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - 'u:first-of-type.' + ($mdgriffith$elm_ui$Internal$Style$classes.alignContainerBottom + (' ~ s.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY)), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0') - ])), - $mdgriffith$elm_ui$Internal$Style$describeAlignment( - function (alignment) { - switch (alignment.$) { - case 'Top': - return _Utils_Tuple2( - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-start') - ]), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto') - ])); - case 'Bottom': - return _Utils_Tuple2( - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-end') - ]), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto') - ])); - case 'Right': - return _Utils_Tuple2( - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-end') - ]), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-end') - ])); - case 'Left': - return _Utils_Tuple2( - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-start') - ]), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-start') - ])); - case 'CenterX': - return _Utils_Tuple2( - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'center') - ]), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'center') - ])); - default: - return _Utils_Tuple2( - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'center') - ]), - _List_Nil); - } - }), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.container), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'stretch !important') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.spaceEvenly), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'space-between') - ])) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.grid), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', '-ms-grid'), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - '.gp', - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%') - ])) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Supports, - _Utils_Tuple2('display', 'grid'), - _List_fromArray( - [ - _Utils_Tuple2('display', 'grid') - ])), - $mdgriffith$elm_ui$Internal$Style$gridAlignments( - function (alignment) { - switch (alignment.$) { - case 'Top': - return _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-start') - ]); - case 'Bottom': - return _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-end') - ]); - case 'Right': - return _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-end') - ]); - case 'Left': - return _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-start') - ]); - case 'CenterX': - return _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'center') - ]); - default: - return _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'center') - ]); - } - }) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.page), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'block'), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any + ':first-child'), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot( - $mdgriffith$elm_ui$Internal$Style$classes.any + ($mdgriffith$elm_ui$Internal$Style$selfName( - $mdgriffith$elm_ui$Internal$Style$Self($mdgriffith$elm_ui$Internal$Style$Left)) + (':first-child + .' + $mdgriffith$elm_ui$Internal$Style$classes.any))), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot( - $mdgriffith$elm_ui$Internal$Style$classes.any + ($mdgriffith$elm_ui$Internal$Style$selfName( - $mdgriffith$elm_ui$Internal$Style$Self($mdgriffith$elm_ui$Internal$Style$Right)) + (':first-child + .' + $mdgriffith$elm_ui$Internal$Style$classes.any))), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important') - ])), - $mdgriffith$elm_ui$Internal$Style$describeAlignment( - function (alignment) { - switch (alignment.$) { - case 'Top': - return _Utils_Tuple2(_List_Nil, _List_Nil); - case 'Bottom': - return _Utils_Tuple2(_List_Nil, _List_Nil); - case 'Right': - return _Utils_Tuple2( - _List_Nil, - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'float', 'right'), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - '::after', - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'content', '\"\"'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'table'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'clear', 'both') - ])) - ])); - case 'Left': - return _Utils_Tuple2( - _List_Nil, - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'float', 'left'), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - '::after', - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'content', '\"\"'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'table'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'clear', 'both') - ])) - ])); - case 'CenterX': - return _Utils_Tuple2(_List_Nil, _List_Nil); - default: - return _Utils_Tuple2(_List_Nil, _List_Nil); - } - }) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputMultiline), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'pre-wrap !important'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'background-color', 'transparent') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputMultilineWrapper), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto') - ])) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputMultilineParent), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'pre-wrap !important'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'cursor', 'text'), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputMultilineFiller), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'pre-wrap !important'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'color', 'transparent') - ])) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.paragraph), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'block'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'normal'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow-wrap', 'break-word'), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.hasBehind), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '0'), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.behind), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '-1') - ])) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$AllChildren, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.text), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'normal') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$AllChildren, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.paragraph), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline'), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - '::after', - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'content', 'none') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - '::before', - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'content', 'none') - ])) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$AllChildren, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'normal'), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthExact), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline-block') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inFront), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.behind), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.above), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.below), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.onRight), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.onLeft), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.text), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'normal') - ])) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.row), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.column), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline-flex') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Child, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.grid), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline-grid') - ])), - $mdgriffith$elm_ui$Internal$Style$describeAlignment( - function (alignment) { - switch (alignment.$) { - case 'Top': - return _Utils_Tuple2(_List_Nil, _List_Nil); - case 'Bottom': - return _Utils_Tuple2(_List_Nil, _List_Nil); - case 'Right': - return _Utils_Tuple2( - _List_Nil, - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'float', 'right') - ])); - case 'Left': - return _Utils_Tuple2( - _List_Nil, - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'float', 'left') - ])); - case 'CenterX': - return _Utils_Tuple2(_List_Nil, _List_Nil); - default: - return _Utils_Tuple2(_List_Nil, _List_Nil); - } - }) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - '.hidden', - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'none') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textThin), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '100') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textExtraLight), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '200') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textLight), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '300') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textNormalWeight), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '400') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textMedium), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '500') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textSemiBold), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '600') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.bold), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '700') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textExtraBold), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '800') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textHeavy), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '900') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.italic), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-style', 'italic') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.strike), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration', 'line-through') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.underline), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration', 'underline'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration-skip-ink', 'auto'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration-skip', 'ink') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - _Utils_ap( - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.underline), - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.strike)), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration', 'line-through underline'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration-skip-ink', 'auto'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration-skip', 'ink') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textUnitalicized), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-style', 'normal') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textJustify), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'justify') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textJustifyAll), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'justify-all') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textCenter), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'center') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textRight), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'right') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textLeft), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'left') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Descriptor, - '.modal', - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'fixed'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '0'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'top', '0'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'), - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none') - ])) - ])) - ]); -var $mdgriffith$elm_ui$Internal$Style$fontVariant = function (_var) { - return _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Style$Class, - '.v-' + _var, - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-feature-settings', '\"' + (_var + '\"')) - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Class, - '.v-' + (_var + '-off'), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-feature-settings', '\"' + (_var + '\" 0')) - ])) - ]); -}; -var $mdgriffith$elm_ui$Internal$Style$commonValues = $elm$core$List$concat( - _List_fromArray( - [ - A2( - $elm$core$List$map, - function (x) { - return A2( - $mdgriffith$elm_ui$Internal$Style$Class, - '.border-' + $elm$core$String$fromInt(x), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Style$Prop, - 'border-width', - $elm$core$String$fromInt(x) + 'px') - ])); - }, - A2($elm$core$List$range, 0, 6)), - A2( - $elm$core$List$map, - function (i) { - return A2( - $mdgriffith$elm_ui$Internal$Style$Class, - '.font-size-' + $elm$core$String$fromInt(i), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Style$Prop, - 'font-size', - $elm$core$String$fromInt(i) + 'px') - ])); - }, - A2($elm$core$List$range, 8, 32)), - A2( - $elm$core$List$map, - function (i) { - return A2( - $mdgriffith$elm_ui$Internal$Style$Class, - '.p-' + $elm$core$String$fromInt(i), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Style$Prop, - 'padding', - $elm$core$String$fromInt(i) + 'px') - ])); - }, - A2($elm$core$List$range, 0, 24)), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Style$Class, - '.v-smcp', - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-variant', 'small-caps') - ])), - A2( - $mdgriffith$elm_ui$Internal$Style$Class, - '.v-smcp-off', - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-variant', 'normal') - ])) - ]), - $mdgriffith$elm_ui$Internal$Style$fontVariant('zero'), - $mdgriffith$elm_ui$Internal$Style$fontVariant('onum'), - $mdgriffith$elm_ui$Internal$Style$fontVariant('liga'), - $mdgriffith$elm_ui$Internal$Style$fontVariant('dlig'), - $mdgriffith$elm_ui$Internal$Style$fontVariant('ordn'), - $mdgriffith$elm_ui$Internal$Style$fontVariant('tnum'), - $mdgriffith$elm_ui$Internal$Style$fontVariant('afrc'), - $mdgriffith$elm_ui$Internal$Style$fontVariant('frac') - ])); -var $mdgriffith$elm_ui$Internal$Style$explainer = '\n.explain {\n border: 6px solid rgb(174, 121, 15) !important;\n}\n.explain > .' + ($mdgriffith$elm_ui$Internal$Style$classes.any + (' {\n border: 4px dashed rgb(0, 151, 167) !important;\n}\n\n.ctr {\n border: none !important;\n}\n.explain > .ctr > .' + ($mdgriffith$elm_ui$Internal$Style$classes.any + ' {\n border: 4px dashed rgb(0, 151, 167) !important;\n}\n\n'))); -var $mdgriffith$elm_ui$Internal$Style$inputTextReset = '\ninput[type="search"],\ninput[type="search"]::-webkit-search-decoration,\ninput[type="search"]::-webkit-search-cancel-button,\ninput[type="search"]::-webkit-search-results-button,\ninput[type="search"]::-webkit-search-results-decoration {\n -webkit-appearance:none;\n}\n'; -var $mdgriffith$elm_ui$Internal$Style$sliderReset = '\ninput[type=range] {\n -webkit-appearance: none; \n background: transparent;\n position:absolute;\n left:0;\n top:0;\n z-index:10;\n width: 100%;\n outline: dashed 1px;\n height: 100%;\n opacity: 0;\n}\n'; -var $mdgriffith$elm_ui$Internal$Style$thumbReset = '\ninput[type=range]::-webkit-slider-thumb {\n -webkit-appearance: none;\n opacity: 0.5;\n width: 80px;\n height: 80px;\n background-color: black;\n border:none;\n border-radius: 5px;\n}\ninput[type=range]::-moz-range-thumb {\n opacity: 0.5;\n width: 80px;\n height: 80px;\n background-color: black;\n border:none;\n border-radius: 5px;\n}\ninput[type=range]::-ms-thumb {\n opacity: 0.5;\n width: 80px;\n height: 80px;\n background-color: black;\n border:none;\n border-radius: 5px;\n}\ninput[type=range][orient=vertical]{\n writing-mode: bt-lr; /* IE */\n -webkit-appearance: slider-vertical; /* WebKit */\n}\n'; -var $mdgriffith$elm_ui$Internal$Style$trackReset = '\ninput[type=range]::-moz-range-track {\n background: transparent;\n cursor: pointer;\n}\ninput[type=range]::-ms-track {\n background: transparent;\n cursor: pointer;\n}\ninput[type=range]::-webkit-slider-runnable-track {\n background: transparent;\n cursor: pointer;\n}\n'; -var $mdgriffith$elm_ui$Internal$Style$overrides = '@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.row) + (' > ' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + (' { flex-basis: auto !important; } ' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.row) + (' > ' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.container) + (' { flex-basis: auto !important; }}' + ($mdgriffith$elm_ui$Internal$Style$inputTextReset + ($mdgriffith$elm_ui$Internal$Style$sliderReset + ($mdgriffith$elm_ui$Internal$Style$trackReset + ($mdgriffith$elm_ui$Internal$Style$thumbReset + $mdgriffith$elm_ui$Internal$Style$explainer))))))))))))))); -var $mdgriffith$elm_ui$Internal$Style$Intermediate = function (a) { - return {$: 'Intermediate', a: a}; -}; -var $mdgriffith$elm_ui$Internal$Style$emptyIntermediate = F2( - function (selector, closing) { - return $mdgriffith$elm_ui$Internal$Style$Intermediate( - {closing: closing, others: _List_Nil, props: _List_Nil, selector: selector}); - }); -var $mdgriffith$elm_ui$Internal$Style$renderRules = F2( - function (_v0, rulesToRender) { - var parent = _v0.a; - var generateIntermediates = F2( - function (rule, rendered) { - switch (rule.$) { - case 'Prop': - var name = rule.a; - var val = rule.b; - return _Utils_update( - rendered, - { - props: A2( - $elm$core$List$cons, - _Utils_Tuple2(name, val), - rendered.props) - }); - case 'Supports': - var _v2 = rule.a; - var prop = _v2.a; - var value = _v2.b; - var props = rule.b; - return _Utils_update( - rendered, - { - others: A2( - $elm$core$List$cons, - $mdgriffith$elm_ui$Internal$Style$Intermediate( - {closing: '\n}', others: _List_Nil, props: props, selector: '@supports (' + (prop + (':' + (value + (') {' + parent.selector))))}), - rendered.others) - }); - case 'Adjacent': - var selector = rule.a; - var adjRules = rule.b; - return _Utils_update( - rendered, - { - others: A2( - $elm$core$List$cons, - A2( - $mdgriffith$elm_ui$Internal$Style$renderRules, - A2($mdgriffith$elm_ui$Internal$Style$emptyIntermediate, parent.selector + (' + ' + selector), ''), - adjRules), - rendered.others) - }); - case 'Child': - var child = rule.a; - var childRules = rule.b; - return _Utils_update( - rendered, - { - others: A2( - $elm$core$List$cons, - A2( - $mdgriffith$elm_ui$Internal$Style$renderRules, - A2($mdgriffith$elm_ui$Internal$Style$emptyIntermediate, parent.selector + (' > ' + child), ''), - childRules), - rendered.others) - }); - case 'AllChildren': - var child = rule.a; - var childRules = rule.b; - return _Utils_update( - rendered, - { - others: A2( - $elm$core$List$cons, - A2( - $mdgriffith$elm_ui$Internal$Style$renderRules, - A2($mdgriffith$elm_ui$Internal$Style$emptyIntermediate, parent.selector + (' ' + child), ''), - childRules), - rendered.others) - }); - case 'Descriptor': - var descriptor = rule.a; - var descriptorRules = rule.b; - return _Utils_update( - rendered, - { - others: A2( - $elm$core$List$cons, - A2( - $mdgriffith$elm_ui$Internal$Style$renderRules, - A2( - $mdgriffith$elm_ui$Internal$Style$emptyIntermediate, - _Utils_ap(parent.selector, descriptor), - ''), - descriptorRules), - rendered.others) - }); - default: - var batched = rule.a; - return _Utils_update( - rendered, - { - others: A2( - $elm$core$List$cons, - A2( - $mdgriffith$elm_ui$Internal$Style$renderRules, - A2($mdgriffith$elm_ui$Internal$Style$emptyIntermediate, parent.selector, ''), - batched), - rendered.others) - }); - } - }); - return $mdgriffith$elm_ui$Internal$Style$Intermediate( - A3($elm$core$List$foldr, generateIntermediates, parent, rulesToRender)); - }); -var $mdgriffith$elm_ui$Internal$Style$renderCompact = function (styleClasses) { - var renderValues = function (values) { - return $elm$core$String$concat( - A2( - $elm$core$List$map, - function (_v3) { - var x = _v3.a; - var y = _v3.b; - return x + (':' + (y + ';')); - }, - values)); - }; - var renderClass = function (rule) { - var _v2 = rule.props; - if (!_v2.b) { - return ''; - } else { - return rule.selector + ('{' + (renderValues(rule.props) + (rule.closing + '}'))); - } - }; - var renderIntermediate = function (_v0) { - var rule = _v0.a; - return _Utils_ap( - renderClass(rule), - $elm$core$String$concat( - A2($elm$core$List$map, renderIntermediate, rule.others))); - }; - return $elm$core$String$concat( - A2( - $elm$core$List$map, - renderIntermediate, - A3( - $elm$core$List$foldr, - F2( - function (_v1, existing) { - var name = _v1.a; - var styleRules = _v1.b; - return A2( - $elm$core$List$cons, - A2( - $mdgriffith$elm_ui$Internal$Style$renderRules, - A2($mdgriffith$elm_ui$Internal$Style$emptyIntermediate, name, ''), - styleRules), - existing); - }), - _List_Nil, - styleClasses))); -}; -var $mdgriffith$elm_ui$Internal$Style$rules = _Utils_ap( - $mdgriffith$elm_ui$Internal$Style$overrides, - $mdgriffith$elm_ui$Internal$Style$renderCompact( - _Utils_ap($mdgriffith$elm_ui$Internal$Style$baseSheet, $mdgriffith$elm_ui$Internal$Style$commonValues))); -var $elm$virtual_dom$VirtualDom$text = _VirtualDom_text; -var $mdgriffith$elm_ui$Internal$Model$staticRoot = function (opts) { - var _v0 = opts.mode; - switch (_v0.$) { - case 'Layout': - return A3( - $elm$virtual_dom$VirtualDom$node, - 'div', - _List_Nil, - _List_fromArray( - [ - A3( - $elm$virtual_dom$VirtualDom$node, - 'style', - _List_Nil, - _List_fromArray( - [ - $elm$virtual_dom$VirtualDom$text($mdgriffith$elm_ui$Internal$Style$rules) - ])) - ])); - case 'NoStaticStyleSheet': - return $elm$virtual_dom$VirtualDom$text(''); - default: - return A3( - $elm$virtual_dom$VirtualDom$node, - 'elm-ui-static-rules', - _List_fromArray( - [ - A2( - $elm$virtual_dom$VirtualDom$property, - 'rules', - $elm$json$Json$Encode$string($mdgriffith$elm_ui$Internal$Style$rules)) - ]), - _List_Nil); - } -}; -var $elm$json$Json$Encode$list = F2( - function (func, entries) { - return _Json_wrap( - A3( - $elm$core$List$foldl, - _Json_addEntry(func), - _Json_emptyArray(_Utils_Tuple0), - entries)); - }); -var $elm$json$Json$Encode$object = function (pairs) { - return _Json_wrap( - A3( - $elm$core$List$foldl, - F2( - function (_v0, obj) { - var k = _v0.a; - var v = _v0.b; - return A3(_Json_addField, k, v, obj); - }), - _Json_emptyObject(_Utils_Tuple0), - pairs)); -}; -var $elm$core$List$any = F2( - function (isOkay, list) { - any: - while (true) { - if (!list.b) { - return false; - } else { - var x = list.a; - var xs = list.b; - if (isOkay(x)) { - return true; - } else { - var $temp$isOkay = isOkay, - $temp$list = xs; - isOkay = $temp$isOkay; - list = $temp$list; - continue any; - } - } - } - }); -var $mdgriffith$elm_ui$Internal$Model$fontName = function (font) { - switch (font.$) { - case 'Serif': - return 'serif'; - case 'SansSerif': - return 'sans-serif'; - case 'Monospace': - return 'monospace'; - case 'Typeface': - var name = font.a; - return '\"' + (name + '\"'); - case 'ImportFont': - var name = font.a; - var url = font.b; - return '\"' + (name + '\"'); - default: - var name = font.a.name; - return '\"' + (name + '\"'); - } -}; -var $mdgriffith$elm_ui$Internal$Model$isSmallCaps = function (_var) { - switch (_var.$) { - case 'VariantActive': - var name = _var.a; - return name === 'smcp'; - case 'VariantOff': - var name = _var.a; - return false; - default: - var name = _var.a; - var index = _var.b; - return (name === 'smcp') && (index === 1); - } -}; -var $mdgriffith$elm_ui$Internal$Model$hasSmallCaps = function (typeface) { - if (typeface.$ === 'FontWith') { - var font = typeface.a; - return A2($elm$core$List$any, $mdgriffith$elm_ui$Internal$Model$isSmallCaps, font.variants); - } else { - return false; - } -}; -var $elm$core$Basics$min = F2( - function (x, y) { - return (_Utils_cmp(x, y) < 0) ? x : y; - }); -var $elm$core$Basics$negate = function (n) { - return -n; -}; -var $mdgriffith$elm_ui$Internal$Model$renderProps = F3( - function (force, _v0, existing) { - var key = _v0.a; - var val = _v0.b; - return force ? (existing + ('\n ' + (key + (': ' + (val + ' !important;'))))) : (existing + ('\n ' + (key + (': ' + (val + ';'))))); - }); -var $mdgriffith$elm_ui$Internal$Model$renderStyle = F4( - function (options, maybePseudo, selector, props) { - if (maybePseudo.$ === 'Nothing') { - return _List_fromArray( - [ - selector + ('{' + (A3( - $elm$core$List$foldl, - $mdgriffith$elm_ui$Internal$Model$renderProps(false), - '', - props) + '\n}')) - ]); - } else { - var pseudo = maybePseudo.a; - switch (pseudo.$) { - case 'Hover': - var _v2 = options.hover; - switch (_v2.$) { - case 'NoHover': - return _List_Nil; - case 'ForceHover': - return _List_fromArray( - [ - selector + ('-hv {' + (A3( - $elm$core$List$foldl, - $mdgriffith$elm_ui$Internal$Model$renderProps(true), - '', - props) + '\n}')) - ]); - default: - return _List_fromArray( - [ - selector + ('-hv:hover {' + (A3( - $elm$core$List$foldl, - $mdgriffith$elm_ui$Internal$Model$renderProps(false), - '', - props) + '\n}')) - ]); - } - case 'Focus': - var renderedProps = A3( - $elm$core$List$foldl, - $mdgriffith$elm_ui$Internal$Model$renderProps(false), - '', - props); - return _List_fromArray( - [ - selector + ('-fs:focus {' + (renderedProps + '\n}')), - ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.any + (':focus ' + (selector + '-fs {')))) + (renderedProps + '\n}'), - (selector + '-fs:focus-within {') + (renderedProps + '\n}'), - ('.ui-slide-bar:focus + ' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + (' .focusable-thumb' + (selector + '-fs {')))) + (renderedProps + '\n}') - ]); - default: - return _List_fromArray( - [ - selector + ('-act:active {' + (A3( - $elm$core$List$foldl, - $mdgriffith$elm_ui$Internal$Model$renderProps(false), - '', - props) + '\n}')) - ]); - } - } - }); -var $mdgriffith$elm_ui$Internal$Model$renderVariant = function (_var) { - switch (_var.$) { - case 'VariantActive': - var name = _var.a; - return '\"' + (name + '\"'); - case 'VariantOff': - var name = _var.a; - return '\"' + (name + '\" 0'); - default: - var name = _var.a; - var index = _var.b; - return '\"' + (name + ('\" ' + $elm$core$String$fromInt(index))); - } -}; -var $mdgriffith$elm_ui$Internal$Model$renderVariants = function (typeface) { - if (typeface.$ === 'FontWith') { - var font = typeface.a; - return $elm$core$Maybe$Just( - A2( - $elm$core$String$join, - ', ', - A2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$renderVariant, font.variants))); - } else { - return $elm$core$Maybe$Nothing; - } -}; -var $mdgriffith$elm_ui$Internal$Model$transformValue = function (transform) { - switch (transform.$) { - case 'Untransformed': - return $elm$core$Maybe$Nothing; - case 'Moved': - var _v1 = transform.a; - var x = _v1.a; - var y = _v1.b; - var z = _v1.c; - return $elm$core$Maybe$Just( - 'translate3d(' + ($elm$core$String$fromFloat(x) + ('px, ' + ($elm$core$String$fromFloat(y) + ('px, ' + ($elm$core$String$fromFloat(z) + 'px)')))))); - default: - var _v2 = transform.a; - var tx = _v2.a; - var ty = _v2.b; - var tz = _v2.c; - var _v3 = transform.b; - var sx = _v3.a; - var sy = _v3.b; - var sz = _v3.c; - var _v4 = transform.c; - var ox = _v4.a; - var oy = _v4.b; - var oz = _v4.c; - var angle = transform.d; - var translate = 'translate3d(' + ($elm$core$String$fromFloat(tx) + ('px, ' + ($elm$core$String$fromFloat(ty) + ('px, ' + ($elm$core$String$fromFloat(tz) + 'px)'))))); - var scale = 'scale3d(' + ($elm$core$String$fromFloat(sx) + (', ' + ($elm$core$String$fromFloat(sy) + (', ' + ($elm$core$String$fromFloat(sz) + ')'))))); - var rotate = 'rotate3d(' + ($elm$core$String$fromFloat(ox) + (', ' + ($elm$core$String$fromFloat(oy) + (', ' + ($elm$core$String$fromFloat(oz) + (', ' + ($elm$core$String$fromFloat(angle) + 'rad)'))))))); - return $elm$core$Maybe$Just(translate + (' ' + (scale + (' ' + rotate)))); - } -}; -var $mdgriffith$elm_ui$Internal$Model$renderStyleRule = F3( - function (options, rule, maybePseudo) { - switch (rule.$) { - case 'Style': - var selector = rule.a; - var props = rule.b; - return A4($mdgriffith$elm_ui$Internal$Model$renderStyle, options, maybePseudo, selector, props); - case 'Shadows': - var name = rule.a; - var prop = rule.b; - return A4( - $mdgriffith$elm_ui$Internal$Model$renderStyle, - options, - maybePseudo, - '.' + name, - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Model$Property, 'box-shadow', prop) - ])); - case 'Transparency': - var name = rule.a; - var transparency = rule.b; - var opacity = A2( - $elm$core$Basics$max, - 0, - A2($elm$core$Basics$min, 1, 1 - transparency)); - return A4( - $mdgriffith$elm_ui$Internal$Model$renderStyle, - options, - maybePseudo, - '.' + name, - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Model$Property, - 'opacity', - $elm$core$String$fromFloat(opacity)) - ])); - case 'FontSize': - var i = rule.a; - return A4( - $mdgriffith$elm_ui$Internal$Model$renderStyle, - options, - maybePseudo, - '.font-size-' + $elm$core$String$fromInt(i), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Model$Property, - 'font-size', - $elm$core$String$fromInt(i) + 'px') - ])); - case 'FontFamily': - var name = rule.a; - var typefaces = rule.b; - var features = A2( - $elm$core$String$join, - ', ', - A2($elm$core$List$filterMap, $mdgriffith$elm_ui$Internal$Model$renderVariants, typefaces)); - var families = _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Model$Property, - 'font-family', - A2( - $elm$core$String$join, - ', ', - A2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$fontName, typefaces))), - A2($mdgriffith$elm_ui$Internal$Model$Property, 'font-feature-settings', features), - A2( - $mdgriffith$elm_ui$Internal$Model$Property, - 'font-variant', - A2($elm$core$List$any, $mdgriffith$elm_ui$Internal$Model$hasSmallCaps, typefaces) ? 'small-caps' : 'normal') - ]); - return A4($mdgriffith$elm_ui$Internal$Model$renderStyle, options, maybePseudo, '.' + name, families); - case 'Single': - var _class = rule.a; - var prop = rule.b; - var val = rule.c; - return A4( - $mdgriffith$elm_ui$Internal$Model$renderStyle, - options, - maybePseudo, - '.' + _class, - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Model$Property, prop, val) - ])); - case 'Colored': - var _class = rule.a; - var prop = rule.b; - var color = rule.c; - return A4( - $mdgriffith$elm_ui$Internal$Model$renderStyle, - options, - maybePseudo, - '.' + _class, - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Model$Property, - prop, - $mdgriffith$elm_ui$Internal$Model$formatColor(color)) - ])); - case 'SpacingStyle': - var cls = rule.a; - var x = rule.b; - var y = rule.c; - var yPx = $elm$core$String$fromInt(y) + 'px'; - var xPx = $elm$core$String$fromInt(x) + 'px'; - var single = '.' + $mdgriffith$elm_ui$Internal$Style$classes.single; - var row = '.' + $mdgriffith$elm_ui$Internal$Style$classes.row; - var wrappedRow = '.' + ($mdgriffith$elm_ui$Internal$Style$classes.wrapped + row); - var right = '.' + $mdgriffith$elm_ui$Internal$Style$classes.alignRight; - var paragraph = '.' + $mdgriffith$elm_ui$Internal$Style$classes.paragraph; - var page = '.' + $mdgriffith$elm_ui$Internal$Style$classes.page; - var left = '.' + $mdgriffith$elm_ui$Internal$Style$classes.alignLeft; - var halfY = $elm$core$String$fromFloat(y / 2) + 'px'; - var halfX = $elm$core$String$fromFloat(x / 2) + 'px'; - var column = '.' + $mdgriffith$elm_ui$Internal$Style$classes.column; - var _class = '.' + cls; - var any = '.' + $mdgriffith$elm_ui$Internal$Style$classes.any; - return $elm$core$List$concat( - _List_fromArray( - [ - A4( - $mdgriffith$elm_ui$Internal$Model$renderStyle, - options, - maybePseudo, - _class + (row + (' > ' + (any + (' + ' + any)))), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-left', xPx) - ])), - A4( - $mdgriffith$elm_ui$Internal$Model$renderStyle, - options, - maybePseudo, - _class + (wrappedRow + (' > ' + any)), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin', halfY + (' ' + halfX)) - ])), - A4( - $mdgriffith$elm_ui$Internal$Model$renderStyle, - options, - maybePseudo, - _class + (column + (' > ' + (any + (' + ' + any)))), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-top', yPx) - ])), - A4( - $mdgriffith$elm_ui$Internal$Model$renderStyle, - options, - maybePseudo, - _class + (page + (' > ' + (any + (' + ' + any)))), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-top', yPx) - ])), - A4( - $mdgriffith$elm_ui$Internal$Model$renderStyle, - options, - maybePseudo, - _class + (page + (' > ' + left)), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-right', xPx) - ])), - A4( - $mdgriffith$elm_ui$Internal$Model$renderStyle, - options, - maybePseudo, - _class + (page + (' > ' + right)), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-left', xPx) - ])), - A4( - $mdgriffith$elm_ui$Internal$Model$renderStyle, - options, - maybePseudo, - _Utils_ap(_class, paragraph), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Model$Property, - 'line-height', - 'calc(1em + ' + ($elm$core$String$fromInt(y) + 'px)')) - ])), - A4( - $mdgriffith$elm_ui$Internal$Model$renderStyle, - options, - maybePseudo, - 'textarea' + (any + _class), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Model$Property, - 'line-height', - 'calc(1em + ' + ($elm$core$String$fromInt(y) + 'px)')), - A2( - $mdgriffith$elm_ui$Internal$Model$Property, - 'height', - 'calc(100% + ' + ($elm$core$String$fromInt(y) + 'px)')) - ])), - A4( - $mdgriffith$elm_ui$Internal$Model$renderStyle, - options, - maybePseudo, - _class + (paragraph + (' > ' + left)), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-right', xPx) - ])), - A4( - $mdgriffith$elm_ui$Internal$Model$renderStyle, - options, - maybePseudo, - _class + (paragraph + (' > ' + right)), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-left', xPx) - ])), - A4( - $mdgriffith$elm_ui$Internal$Model$renderStyle, - options, - maybePseudo, - _class + (paragraph + '::after'), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Model$Property, 'content', '\'\''), - A2($mdgriffith$elm_ui$Internal$Model$Property, 'display', 'block'), - A2($mdgriffith$elm_ui$Internal$Model$Property, 'height', '0'), - A2($mdgriffith$elm_ui$Internal$Model$Property, 'width', '0'), - A2( - $mdgriffith$elm_ui$Internal$Model$Property, - 'margin-top', - $elm$core$String$fromInt((-1) * ((y / 2) | 0)) + 'px') - ])), - A4( - $mdgriffith$elm_ui$Internal$Model$renderStyle, - options, - maybePseudo, - _class + (paragraph + '::before'), - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Model$Property, 'content', '\'\''), - A2($mdgriffith$elm_ui$Internal$Model$Property, 'display', 'block'), - A2($mdgriffith$elm_ui$Internal$Model$Property, 'height', '0'), - A2($mdgriffith$elm_ui$Internal$Model$Property, 'width', '0'), - A2( - $mdgriffith$elm_ui$Internal$Model$Property, - 'margin-bottom', - $elm$core$String$fromInt((-1) * ((y / 2) | 0)) + 'px') - ])) - ])); - case 'PaddingStyle': - var cls = rule.a; - var top = rule.b; - var right = rule.c; - var bottom = rule.d; - var left = rule.e; - var _class = '.' + cls; - return A4( - $mdgriffith$elm_ui$Internal$Model$renderStyle, - options, - maybePseudo, - _class, - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Model$Property, - 'padding', - $elm$core$String$fromFloat(top) + ('px ' + ($elm$core$String$fromFloat(right) + ('px ' + ($elm$core$String$fromFloat(bottom) + ('px ' + ($elm$core$String$fromFloat(left) + 'px'))))))) - ])); - case 'BorderWidth': - var cls = rule.a; - var top = rule.b; - var right = rule.c; - var bottom = rule.d; - var left = rule.e; - var _class = '.' + cls; - return A4( - $mdgriffith$elm_ui$Internal$Model$renderStyle, - options, - maybePseudo, - _class, - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Model$Property, - 'border-width', - $elm$core$String$fromInt(top) + ('px ' + ($elm$core$String$fromInt(right) + ('px ' + ($elm$core$String$fromInt(bottom) + ('px ' + ($elm$core$String$fromInt(left) + 'px'))))))) - ])); - case 'GridTemplateStyle': - var template = rule.a; - var toGridLengthHelper = F3( - function (minimum, maximum, x) { - toGridLengthHelper: - while (true) { - switch (x.$) { - case 'Px': - var px = x.a; - return $elm$core$String$fromInt(px) + 'px'; - case 'Content': - var _v2 = _Utils_Tuple2(minimum, maximum); - if (_v2.a.$ === 'Nothing') { - if (_v2.b.$ === 'Nothing') { - var _v3 = _v2.a; - var _v4 = _v2.b; - return 'max-content'; - } else { - var _v6 = _v2.a; - var maxSize = _v2.b.a; - return 'minmax(max-content, ' + ($elm$core$String$fromInt(maxSize) + 'px)'); - } - } else { - if (_v2.b.$ === 'Nothing') { - var minSize = _v2.a.a; - var _v5 = _v2.b; - return 'minmax(' + ($elm$core$String$fromInt(minSize) + ('px, ' + 'max-content)')); - } else { - var minSize = _v2.a.a; - var maxSize = _v2.b.a; - return 'minmax(' + ($elm$core$String$fromInt(minSize) + ('px, ' + ($elm$core$String$fromInt(maxSize) + 'px)'))); - } - } - case 'Fill': - var i = x.a; - var _v7 = _Utils_Tuple2(minimum, maximum); - if (_v7.a.$ === 'Nothing') { - if (_v7.b.$ === 'Nothing') { - var _v8 = _v7.a; - var _v9 = _v7.b; - return $elm$core$String$fromInt(i) + 'fr'; - } else { - var _v11 = _v7.a; - var maxSize = _v7.b.a; - return 'minmax(max-content, ' + ($elm$core$String$fromInt(maxSize) + 'px)'); - } - } else { - if (_v7.b.$ === 'Nothing') { - var minSize = _v7.a.a; - var _v10 = _v7.b; - return 'minmax(' + ($elm$core$String$fromInt(minSize) + ('px, ' + ($elm$core$String$fromInt(i) + ('fr' + 'fr)')))); - } else { - var minSize = _v7.a.a; - var maxSize = _v7.b.a; - return 'minmax(' + ($elm$core$String$fromInt(minSize) + ('px, ' + ($elm$core$String$fromInt(maxSize) + 'px)'))); - } - } - case 'Min': - var m = x.a; - var len = x.b; - var $temp$minimum = $elm$core$Maybe$Just(m), - $temp$maximum = maximum, - $temp$x = len; - minimum = $temp$minimum; - maximum = $temp$maximum; - x = $temp$x; - continue toGridLengthHelper; - default: - var m = x.a; - var len = x.b; - var $temp$minimum = minimum, - $temp$maximum = $elm$core$Maybe$Just(m), - $temp$x = len; - minimum = $temp$minimum; - maximum = $temp$maximum; - x = $temp$x; - continue toGridLengthHelper; - } - } - }); - var toGridLength = function (x) { - return A3(toGridLengthHelper, $elm$core$Maybe$Nothing, $elm$core$Maybe$Nothing, x); - }; - var xSpacing = toGridLength(template.spacing.a); - var ySpacing = toGridLength(template.spacing.b); - var rows = function (x) { - return 'grid-template-rows: ' + (x + ';'); - }( - A2( - $elm$core$String$join, - ' ', - A2($elm$core$List$map, toGridLength, template.rows))); - var msRows = function (x) { - return '-ms-grid-rows: ' + (x + ';'); - }( - A2( - $elm$core$String$join, - ySpacing, - A2($elm$core$List$map, toGridLength, template.columns))); - var msColumns = function (x) { - return '-ms-grid-columns: ' + (x + ';'); - }( - A2( - $elm$core$String$join, - ySpacing, - A2($elm$core$List$map, toGridLength, template.columns))); - var gapY = 'grid-row-gap:' + (toGridLength(template.spacing.b) + ';'); - var gapX = 'grid-column-gap:' + (toGridLength(template.spacing.a) + ';'); - var columns = function (x) { - return 'grid-template-columns: ' + (x + ';'); - }( - A2( - $elm$core$String$join, - ' ', - A2($elm$core$List$map, toGridLength, template.columns))); - var _class = '.grid-rows-' + (A2( - $elm$core$String$join, - '-', - A2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$lengthClassName, template.rows)) + ('-cols-' + (A2( - $elm$core$String$join, - '-', - A2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$lengthClassName, template.columns)) + ('-space-x-' + ($mdgriffith$elm_ui$Internal$Model$lengthClassName(template.spacing.a) + ('-space-y-' + $mdgriffith$elm_ui$Internal$Model$lengthClassName(template.spacing.b))))))); - var modernGrid = _class + ('{' + (columns + (rows + (gapX + (gapY + '}'))))); - var supports = '@supports (display:grid) {' + (modernGrid + '}'); - var base = _class + ('{' + (msColumns + (msRows + '}'))); - return _List_fromArray( - [base, supports]); - case 'GridPosition': - var position = rule.a; - var msPosition = A2( - $elm$core$String$join, - ' ', - _List_fromArray( - [ - '-ms-grid-row: ' + ($elm$core$String$fromInt(position.row) + ';'), - '-ms-grid-row-span: ' + ($elm$core$String$fromInt(position.height) + ';'), - '-ms-grid-column: ' + ($elm$core$String$fromInt(position.col) + ';'), - '-ms-grid-column-span: ' + ($elm$core$String$fromInt(position.width) + ';') - ])); - var modernPosition = A2( - $elm$core$String$join, - ' ', - _List_fromArray( - [ - 'grid-row: ' + ($elm$core$String$fromInt(position.row) + (' / ' + ($elm$core$String$fromInt(position.row + position.height) + ';'))), - 'grid-column: ' + ($elm$core$String$fromInt(position.col) + (' / ' + ($elm$core$String$fromInt(position.col + position.width) + ';'))) - ])); - var _class = '.grid-pos-' + ($elm$core$String$fromInt(position.row) + ('-' + ($elm$core$String$fromInt(position.col) + ('-' + ($elm$core$String$fromInt(position.width) + ('-' + $elm$core$String$fromInt(position.height))))))); - var modernGrid = _class + ('{' + (modernPosition + '}')); - var supports = '@supports (display:grid) {' + (modernGrid + '}'); - var base = _class + ('{' + (msPosition + '}')); - return _List_fromArray( - [base, supports]); - case 'PseudoSelector': - var _class = rule.a; - var styles = rule.b; - var renderPseudoRule = function (style) { - return A3( - $mdgriffith$elm_ui$Internal$Model$renderStyleRule, - options, - style, - $elm$core$Maybe$Just(_class)); - }; - return A2($elm$core$List$concatMap, renderPseudoRule, styles); - default: - var transform = rule.a; - var val = $mdgriffith$elm_ui$Internal$Model$transformValue(transform); - var _class = $mdgriffith$elm_ui$Internal$Model$transformClass(transform); - var _v12 = _Utils_Tuple2(_class, val); - if ((_v12.a.$ === 'Just') && (_v12.b.$ === 'Just')) { - var cls = _v12.a.a; - var v = _v12.b.a; - return A4( - $mdgriffith$elm_ui$Internal$Model$renderStyle, - options, - maybePseudo, - '.' + cls, - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Model$Property, 'transform', v) - ])); - } else { - return _List_Nil; - } - } - }); -var $mdgriffith$elm_ui$Internal$Model$encodeStyles = F2( - function (options, stylesheet) { - return $elm$json$Json$Encode$object( - A2( - $elm$core$List$map, - function (style) { - var styled = A3($mdgriffith$elm_ui$Internal$Model$renderStyleRule, options, style, $elm$core$Maybe$Nothing); - return _Utils_Tuple2( - $mdgriffith$elm_ui$Internal$Model$getStyleName(style), - A2($elm$json$Json$Encode$list, $elm$json$Json$Encode$string, styled)); - }, - stylesheet)); - }); -var $mdgriffith$elm_ui$Internal$Model$bracket = F2( - function (selector, rules) { - var renderPair = function (_v0) { - var name = _v0.a; - var val = _v0.b; - return name + (': ' + (val + ';')); - }; - return selector + (' {' + (A2( - $elm$core$String$join, - '', - A2($elm$core$List$map, renderPair, rules)) + '}')); - }); -var $mdgriffith$elm_ui$Internal$Model$fontRule = F3( - function (name, modifier, _v0) { - var parentAdj = _v0.a; - var textAdjustment = _v0.b; - return _List_fromArray( - [ - A2($mdgriffith$elm_ui$Internal$Model$bracket, '.' + (name + ('.' + (modifier + (', ' + ('.' + (name + (' .' + modifier))))))), parentAdj), - A2($mdgriffith$elm_ui$Internal$Model$bracket, '.' + (name + ('.' + (modifier + ('> .' + ($mdgriffith$elm_ui$Internal$Style$classes.text + (', .' + (name + (' .' + (modifier + (' > .' + $mdgriffith$elm_ui$Internal$Style$classes.text)))))))))), textAdjustment) - ]); - }); -var $mdgriffith$elm_ui$Internal$Model$renderFontAdjustmentRule = F3( - function (fontToAdjust, _v0, otherFontName) { - var full = _v0.a; - var capital = _v0.b; - var name = _Utils_eq(fontToAdjust, otherFontName) ? fontToAdjust : (otherFontName + (' .' + fontToAdjust)); - return A2( - $elm$core$String$join, - ' ', - _Utils_ap( - A3($mdgriffith$elm_ui$Internal$Model$fontRule, name, $mdgriffith$elm_ui$Internal$Style$classes.sizeByCapital, capital), - A3($mdgriffith$elm_ui$Internal$Model$fontRule, name, $mdgriffith$elm_ui$Internal$Style$classes.fullSize, full))); - }); -var $mdgriffith$elm_ui$Internal$Model$renderNullAdjustmentRule = F2( - function (fontToAdjust, otherFontName) { - var name = _Utils_eq(fontToAdjust, otherFontName) ? fontToAdjust : (otherFontName + (' .' + fontToAdjust)); - return A2( - $elm$core$String$join, - ' ', - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Model$bracket, - '.' + (name + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.sizeByCapital + (', ' + ('.' + (name + (' .' + $mdgriffith$elm_ui$Internal$Style$classes.sizeByCapital))))))), - _List_fromArray( - [ - _Utils_Tuple2('line-height', '1') - ])), - A2( - $mdgriffith$elm_ui$Internal$Model$bracket, - '.' + (name + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.sizeByCapital + ('> .' + ($mdgriffith$elm_ui$Internal$Style$classes.text + (', .' + (name + (' .' + ($mdgriffith$elm_ui$Internal$Style$classes.sizeByCapital + (' > .' + $mdgriffith$elm_ui$Internal$Style$classes.text)))))))))), - _List_fromArray( - [ - _Utils_Tuple2('vertical-align', '0'), - _Utils_Tuple2('line-height', '1') - ])) - ])); - }); -var $mdgriffith$elm_ui$Internal$Model$adjust = F3( - function (size, height, vertical) { - return {height: height / size, size: size, vertical: vertical}; - }); -var $elm$core$List$filter = F2( - function (isGood, list) { - return A3( - $elm$core$List$foldr, - F2( - function (x, xs) { - return isGood(x) ? A2($elm$core$List$cons, x, xs) : xs; - }), - _List_Nil, - list); - }); -var $elm$core$List$maximum = function (list) { - if (list.b) { - var x = list.a; - var xs = list.b; - return $elm$core$Maybe$Just( - A3($elm$core$List$foldl, $elm$core$Basics$max, x, xs)); - } else { - return $elm$core$Maybe$Nothing; - } -}; -var $elm$core$List$minimum = function (list) { - if (list.b) { - var x = list.a; - var xs = list.b; - return $elm$core$Maybe$Just( - A3($elm$core$List$foldl, $elm$core$Basics$min, x, xs)); - } else { - return $elm$core$Maybe$Nothing; - } -}; -var $elm$core$Basics$neq = _Utils_notEqual; -var $mdgriffith$elm_ui$Internal$Model$convertAdjustment = function (adjustment) { - var lines = _List_fromArray( - [adjustment.capital, adjustment.baseline, adjustment.descender, adjustment.lowercase]); - var lineHeight = 1.5; - var normalDescender = (lineHeight - 1) / 2; - var oldMiddle = lineHeight / 2; - var descender = A2( - $elm$core$Maybe$withDefault, - adjustment.descender, - $elm$core$List$minimum(lines)); - var newBaseline = A2( - $elm$core$Maybe$withDefault, - adjustment.baseline, - $elm$core$List$minimum( - A2( - $elm$core$List$filter, - function (x) { - return !_Utils_eq(x, descender); - }, - lines))); - var base = lineHeight; - var ascender = A2( - $elm$core$Maybe$withDefault, - adjustment.capital, - $elm$core$List$maximum(lines)); - var capitalSize = 1 / (ascender - newBaseline); - var capitalVertical = 1 - ascender; - var fullSize = 1 / (ascender - descender); - var fullVertical = 1 - ascender; - var newCapitalMiddle = ((ascender - newBaseline) / 2) + newBaseline; - var newFullMiddle = ((ascender - descender) / 2) + descender; - return { - capital: A3($mdgriffith$elm_ui$Internal$Model$adjust, capitalSize, ascender - newBaseline, capitalVertical), - full: A3($mdgriffith$elm_ui$Internal$Model$adjust, fullSize, ascender - descender, fullVertical) - }; -}; -var $mdgriffith$elm_ui$Internal$Model$fontAdjustmentRules = function (converted) { - return _Utils_Tuple2( - _List_fromArray( - [ - _Utils_Tuple2('display', 'block') - ]), - _List_fromArray( - [ - _Utils_Tuple2('display', 'inline-block'), - _Utils_Tuple2( - 'line-height', - $elm$core$String$fromFloat(converted.height)), - _Utils_Tuple2( - 'vertical-align', - $elm$core$String$fromFloat(converted.vertical) + 'em'), - _Utils_Tuple2( - 'font-size', - $elm$core$String$fromFloat(converted.size) + 'em') - ])); -}; -var $mdgriffith$elm_ui$Internal$Model$typefaceAdjustment = function (typefaces) { - return A3( - $elm$core$List$foldl, - F2( - function (face, found) { - if (found.$ === 'Nothing') { - if (face.$ === 'FontWith') { - var _with = face.a; - var _v2 = _with.adjustment; - if (_v2.$ === 'Nothing') { - return found; - } else { - var adjustment = _v2.a; - return $elm$core$Maybe$Just( - _Utils_Tuple2( - $mdgriffith$elm_ui$Internal$Model$fontAdjustmentRules( - function ($) { - return $.full; - }( - $mdgriffith$elm_ui$Internal$Model$convertAdjustment(adjustment))), - $mdgriffith$elm_ui$Internal$Model$fontAdjustmentRules( - function ($) { - return $.capital; - }( - $mdgriffith$elm_ui$Internal$Model$convertAdjustment(adjustment))))); - } - } else { - return found; - } - } else { - return found; - } - }), - $elm$core$Maybe$Nothing, - typefaces); -}; -var $mdgriffith$elm_ui$Internal$Model$renderTopLevelValues = function (rules) { - var withImport = function (font) { - if (font.$ === 'ImportFont') { - var url = font.b; - return $elm$core$Maybe$Just('@import url(\'' + (url + '\');')); - } else { - return $elm$core$Maybe$Nothing; - } - }; - var fontImports = function (_v2) { - var name = _v2.a; - var typefaces = _v2.b; - var imports = A2( - $elm$core$String$join, - '\n', - A2($elm$core$List$filterMap, withImport, typefaces)); - return imports; - }; - var allNames = A2($elm$core$List$map, $elm$core$Tuple$first, rules); - var fontAdjustments = function (_v1) { - var name = _v1.a; - var typefaces = _v1.b; - var _v0 = $mdgriffith$elm_ui$Internal$Model$typefaceAdjustment(typefaces); - if (_v0.$ === 'Nothing') { - return A2( - $elm$core$String$join, - '', - A2( - $elm$core$List$map, - $mdgriffith$elm_ui$Internal$Model$renderNullAdjustmentRule(name), - allNames)); - } else { - var adjustment = _v0.a; - return A2( - $elm$core$String$join, - '', - A2( - $elm$core$List$map, - A2($mdgriffith$elm_ui$Internal$Model$renderFontAdjustmentRule, name, adjustment), - allNames)); - } - }; - return _Utils_ap( - A2( - $elm$core$String$join, - '\n', - A2($elm$core$List$map, fontImports, rules)), - A2( - $elm$core$String$join, - '\n', - A2($elm$core$List$map, fontAdjustments, rules))); -}; -var $mdgriffith$elm_ui$Internal$Model$topLevelValue = function (rule) { - if (rule.$ === 'FontFamily') { - var name = rule.a; - var typefaces = rule.b; - return $elm$core$Maybe$Just( - _Utils_Tuple2(name, typefaces)); - } else { - return $elm$core$Maybe$Nothing; - } -}; -var $mdgriffith$elm_ui$Internal$Model$toStyleSheetString = F2( - function (options, stylesheet) { - var combine = F2( - function (style, rendered) { - return { - rules: _Utils_ap( - rendered.rules, - A3($mdgriffith$elm_ui$Internal$Model$renderStyleRule, options, style, $elm$core$Maybe$Nothing)), - topLevel: function () { - var _v1 = $mdgriffith$elm_ui$Internal$Model$topLevelValue(style); - if (_v1.$ === 'Nothing') { - return rendered.topLevel; - } else { - var topLevel = _v1.a; - return A2($elm$core$List$cons, topLevel, rendered.topLevel); - } - }() - }; - }); - var _v0 = A3( - $elm$core$List$foldl, - combine, - {rules: _List_Nil, topLevel: _List_Nil}, - stylesheet); - var topLevel = _v0.topLevel; - var rules = _v0.rules; - return _Utils_ap( - $mdgriffith$elm_ui$Internal$Model$renderTopLevelValues(topLevel), - $elm$core$String$concat(rules)); - }); -var $mdgriffith$elm_ui$Internal$Model$toStyleSheet = F2( - function (options, styleSheet) { - var _v0 = options.mode; - switch (_v0.$) { - case 'Layout': - return A3( - $elm$virtual_dom$VirtualDom$node, - 'div', - _List_Nil, - _List_fromArray( - [ - A3( - $elm$virtual_dom$VirtualDom$node, - 'style', - _List_Nil, - _List_fromArray( - [ - $elm$virtual_dom$VirtualDom$text( - A2($mdgriffith$elm_ui$Internal$Model$toStyleSheetString, options, styleSheet)) - ])) - ])); - case 'NoStaticStyleSheet': - return A3( - $elm$virtual_dom$VirtualDom$node, - 'div', - _List_Nil, - _List_fromArray( - [ - A3( - $elm$virtual_dom$VirtualDom$node, - 'style', - _List_Nil, - _List_fromArray( - [ - $elm$virtual_dom$VirtualDom$text( - A2($mdgriffith$elm_ui$Internal$Model$toStyleSheetString, options, styleSheet)) - ])) - ])); - default: - return A3( - $elm$virtual_dom$VirtualDom$node, - 'elm-ui-rules', - _List_fromArray( - [ - A2( - $elm$virtual_dom$VirtualDom$property, - 'rules', - A2($mdgriffith$elm_ui$Internal$Model$encodeStyles, options, styleSheet)) - ]), - _List_Nil); - } - }); -var $mdgriffith$elm_ui$Internal$Model$embedKeyed = F4( - function (_static, opts, styles, children) { - var dynamicStyleSheet = A2( - $mdgriffith$elm_ui$Internal$Model$toStyleSheet, - opts, - A3( - $elm$core$List$foldl, - $mdgriffith$elm_ui$Internal$Model$reduceStyles, - _Utils_Tuple2( - $elm$core$Set$empty, - $mdgriffith$elm_ui$Internal$Model$renderFocusStyle(opts.focus)), - styles).b); - return _static ? A2( - $elm$core$List$cons, - _Utils_Tuple2( - 'static-stylesheet', - $mdgriffith$elm_ui$Internal$Model$staticRoot(opts)), - A2( - $elm$core$List$cons, - _Utils_Tuple2('dynamic-stylesheet', dynamicStyleSheet), - children)) : A2( - $elm$core$List$cons, - _Utils_Tuple2('dynamic-stylesheet', dynamicStyleSheet), - children); - }); -var $mdgriffith$elm_ui$Internal$Model$embedWith = F4( - function (_static, opts, styles, children) { - var dynamicStyleSheet = A2( - $mdgriffith$elm_ui$Internal$Model$toStyleSheet, - opts, - A3( - $elm$core$List$foldl, - $mdgriffith$elm_ui$Internal$Model$reduceStyles, - _Utils_Tuple2( - $elm$core$Set$empty, - $mdgriffith$elm_ui$Internal$Model$renderFocusStyle(opts.focus)), - styles).b); - return _static ? A2( - $elm$core$List$cons, - $mdgriffith$elm_ui$Internal$Model$staticRoot(opts), - A2($elm$core$List$cons, dynamicStyleSheet, children)) : A2($elm$core$List$cons, dynamicStyleSheet, children); - }); -var $mdgriffith$elm_ui$Internal$Flag$heightBetween = $mdgriffith$elm_ui$Internal$Flag$flag(45); -var $mdgriffith$elm_ui$Internal$Flag$heightFill = $mdgriffith$elm_ui$Internal$Flag$flag(37); -var $elm$virtual_dom$VirtualDom$keyedNode = function (tag) { - return _VirtualDom_keyedNode( - _VirtualDom_noScript(tag)); -}; -var $elm$core$Basics$not = _Basics_not; -var $elm$html$Html$p = _VirtualDom_node('p'); -var $elm$core$Bitwise$and = _Bitwise_and; -var $mdgriffith$elm_ui$Internal$Flag$present = F2( - function (myFlag, _v0) { - var fieldOne = _v0.a; - var fieldTwo = _v0.b; - if (myFlag.$ === 'Flag') { - var first = myFlag.a; - return _Utils_eq(first & fieldOne, first); - } else { - var second = myFlag.a; - return _Utils_eq(second & fieldTwo, second); - } - }); -var $elm$html$Html$s = _VirtualDom_node('s'); -var $elm$html$Html$u = _VirtualDom_node('u'); -var $mdgriffith$elm_ui$Internal$Flag$widthBetween = $mdgriffith$elm_ui$Internal$Flag$flag(44); -var $mdgriffith$elm_ui$Internal$Flag$widthFill = $mdgriffith$elm_ui$Internal$Flag$flag(39); -var $mdgriffith$elm_ui$Internal$Model$finalizeNode = F6( - function (has, node, attributes, children, embedMode, parentContext) { - var createNode = F2( - function (nodeName, attrs) { - if (children.$ === 'Keyed') { - var keyed = children.a; - return A3( - $elm$virtual_dom$VirtualDom$keyedNode, - nodeName, - attrs, - function () { - switch (embedMode.$) { - case 'NoStyleSheet': - return keyed; - case 'OnlyDynamic': - var opts = embedMode.a; - var styles = embedMode.b; - return A4($mdgriffith$elm_ui$Internal$Model$embedKeyed, false, opts, styles, keyed); - default: - var opts = embedMode.a; - var styles = embedMode.b; - return A4($mdgriffith$elm_ui$Internal$Model$embedKeyed, true, opts, styles, keyed); - } - }()); - } else { - var unkeyed = children.a; - return A2( - function () { - switch (nodeName) { - case 'div': - return $elm$html$Html$div; - case 'p': - return $elm$html$Html$p; - default: - return $elm$virtual_dom$VirtualDom$node(nodeName); - } - }(), - attrs, - function () { - switch (embedMode.$) { - case 'NoStyleSheet': - return unkeyed; - case 'OnlyDynamic': - var opts = embedMode.a; - var styles = embedMode.b; - return A4($mdgriffith$elm_ui$Internal$Model$embedWith, false, opts, styles, unkeyed); - default: - var opts = embedMode.a; - var styles = embedMode.b; - return A4($mdgriffith$elm_ui$Internal$Model$embedWith, true, opts, styles, unkeyed); - } - }()); - } - }); - var html = function () { - switch (node.$) { - case 'Generic': - return A2(createNode, 'div', attributes); - case 'NodeName': - var nodeName = node.a; - return A2(createNode, nodeName, attributes); - default: - var nodeName = node.a; - var internal = node.b; - return A3( - $elm$virtual_dom$VirtualDom$node, - nodeName, - attributes, - _List_fromArray( - [ - A2( - createNode, - internal, - _List_fromArray( - [ - $elm$html$Html$Attributes$class($mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.single)) - ])) - ])); - } - }(); - switch (parentContext.$) { - case 'AsRow': - return (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$widthFill, has) && (!A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$widthBetween, has))) ? html : (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$alignRight, has) ? A2( - $elm$html$Html$u, - _List_fromArray( - [ - $elm$html$Html$Attributes$class( - A2( - $elm$core$String$join, - ' ', - _List_fromArray( - [$mdgriffith$elm_ui$Internal$Style$classes.any, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.container, $mdgriffith$elm_ui$Internal$Style$classes.contentCenterY, $mdgriffith$elm_ui$Internal$Style$classes.alignContainerRight]))) - ]), - _List_fromArray( - [html])) : (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$centerX, has) ? A2( - $elm$html$Html$s, - _List_fromArray( - [ - $elm$html$Html$Attributes$class( - A2( - $elm$core$String$join, - ' ', - _List_fromArray( - [$mdgriffith$elm_ui$Internal$Style$classes.any, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.container, $mdgriffith$elm_ui$Internal$Style$classes.contentCenterY, $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX]))) - ]), - _List_fromArray( - [html])) : html)); - case 'AsColumn': - return (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$heightFill, has) && (!A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$heightBetween, has))) ? html : (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$centerY, has) ? A2( - $elm$html$Html$s, - _List_fromArray( - [ - $elm$html$Html$Attributes$class( - A2( - $elm$core$String$join, - ' ', - _List_fromArray( - [$mdgriffith$elm_ui$Internal$Style$classes.any, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.container, $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY]))) - ]), - _List_fromArray( - [html])) : (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$alignBottom, has) ? A2( - $elm$html$Html$u, - _List_fromArray( - [ - $elm$html$Html$Attributes$class( - A2( - $elm$core$String$join, - ' ', - _List_fromArray( - [$mdgriffith$elm_ui$Internal$Style$classes.any, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.container, $mdgriffith$elm_ui$Internal$Style$classes.alignContainerBottom]))) - ]), - _List_fromArray( - [html])) : html)); - default: - return html; - } - }); -var $elm$core$List$isEmpty = function (xs) { - if (!xs.b) { - return true; - } else { - return false; - } -}; -var $elm$html$Html$text = $elm$virtual_dom$VirtualDom$text; -var $mdgriffith$elm_ui$Internal$Model$textElementClasses = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.text + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.widthContent + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.heightContent))))); -var $mdgriffith$elm_ui$Internal$Model$textElement = function (str) { - return A2( - $elm$html$Html$div, - _List_fromArray( - [ - $elm$html$Html$Attributes$class($mdgriffith$elm_ui$Internal$Model$textElementClasses) - ]), - _List_fromArray( - [ - $elm$html$Html$text(str) - ])); -}; -var $mdgriffith$elm_ui$Internal$Model$textElementFillClasses = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.text + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.widthFill + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.heightFill))))); -var $mdgriffith$elm_ui$Internal$Model$textElementFill = function (str) { - return A2( - $elm$html$Html$div, - _List_fromArray( - [ - $elm$html$Html$Attributes$class($mdgriffith$elm_ui$Internal$Model$textElementFillClasses) - ]), - _List_fromArray( - [ - $elm$html$Html$text(str) - ])); -}; -var $mdgriffith$elm_ui$Internal$Model$createElement = F3( - function (context, children, rendered) { - var gatherKeyed = F2( - function (_v8, _v9) { - var key = _v8.a; - var child = _v8.b; - var htmls = _v9.a; - var existingStyles = _v9.b; - switch (child.$) { - case 'Unstyled': - var html = child.a; - return _Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asParagraph) ? _Utils_Tuple2( - A2( - $elm$core$List$cons, - _Utils_Tuple2( - key, - html(context)), - htmls), - existingStyles) : _Utils_Tuple2( - A2( - $elm$core$List$cons, - _Utils_Tuple2( - key, - html(context)), - htmls), - existingStyles); - case 'Styled': - var styled = child.a; - return _Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asParagraph) ? _Utils_Tuple2( - A2( - $elm$core$List$cons, - _Utils_Tuple2( - key, - A2(styled.html, $mdgriffith$elm_ui$Internal$Model$NoStyleSheet, context)), - htmls), - $elm$core$List$isEmpty(existingStyles) ? styled.styles : _Utils_ap(styled.styles, existingStyles)) : _Utils_Tuple2( - A2( - $elm$core$List$cons, - _Utils_Tuple2( - key, - A2(styled.html, $mdgriffith$elm_ui$Internal$Model$NoStyleSheet, context)), - htmls), - $elm$core$List$isEmpty(existingStyles) ? styled.styles : _Utils_ap(styled.styles, existingStyles)); - case 'Text': - var str = child.a; - return _Utils_Tuple2( - A2( - $elm$core$List$cons, - _Utils_Tuple2( - key, - _Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asEl) ? $mdgriffith$elm_ui$Internal$Model$textElementFill(str) : $mdgriffith$elm_ui$Internal$Model$textElement(str)), - htmls), - existingStyles); - default: - return _Utils_Tuple2(htmls, existingStyles); - } - }); - var gather = F2( - function (child, _v6) { - var htmls = _v6.a; - var existingStyles = _v6.b; - switch (child.$) { - case 'Unstyled': - var html = child.a; - return _Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asParagraph) ? _Utils_Tuple2( - A2( - $elm$core$List$cons, - html(context), - htmls), - existingStyles) : _Utils_Tuple2( - A2( - $elm$core$List$cons, - html(context), - htmls), - existingStyles); - case 'Styled': - var styled = child.a; - return _Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asParagraph) ? _Utils_Tuple2( - A2( - $elm$core$List$cons, - A2(styled.html, $mdgriffith$elm_ui$Internal$Model$NoStyleSheet, context), - htmls), - $elm$core$List$isEmpty(existingStyles) ? styled.styles : _Utils_ap(styled.styles, existingStyles)) : _Utils_Tuple2( - A2( - $elm$core$List$cons, - A2(styled.html, $mdgriffith$elm_ui$Internal$Model$NoStyleSheet, context), - htmls), - $elm$core$List$isEmpty(existingStyles) ? styled.styles : _Utils_ap(styled.styles, existingStyles)); - case 'Text': - var str = child.a; - return _Utils_Tuple2( - A2( - $elm$core$List$cons, - _Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asEl) ? $mdgriffith$elm_ui$Internal$Model$textElementFill(str) : $mdgriffith$elm_ui$Internal$Model$textElement(str), - htmls), - existingStyles); - default: - return _Utils_Tuple2(htmls, existingStyles); - } - }); - if (children.$ === 'Keyed') { - var keyedChildren = children.a; - var _v1 = A3( - $elm$core$List$foldr, - gatherKeyed, - _Utils_Tuple2(_List_Nil, _List_Nil), - keyedChildren); - var keyed = _v1.a; - var styles = _v1.b; - var newStyles = $elm$core$List$isEmpty(styles) ? rendered.styles : _Utils_ap(rendered.styles, styles); - if (!newStyles.b) { - return $mdgriffith$elm_ui$Internal$Model$Unstyled( - A5( - $mdgriffith$elm_ui$Internal$Model$finalizeNode, - rendered.has, - rendered.node, - rendered.attributes, - $mdgriffith$elm_ui$Internal$Model$Keyed( - A3($mdgriffith$elm_ui$Internal$Model$addKeyedChildren, 'nearby-element-pls', keyed, rendered.children)), - $mdgriffith$elm_ui$Internal$Model$NoStyleSheet)); - } else { - var allStyles = newStyles; - return $mdgriffith$elm_ui$Internal$Model$Styled( - { - html: A4( - $mdgriffith$elm_ui$Internal$Model$finalizeNode, - rendered.has, - rendered.node, - rendered.attributes, - $mdgriffith$elm_ui$Internal$Model$Keyed( - A3($mdgriffith$elm_ui$Internal$Model$addKeyedChildren, 'nearby-element-pls', keyed, rendered.children))), - styles: allStyles - }); - } - } else { - var unkeyedChildren = children.a; - var _v3 = A3( - $elm$core$List$foldr, - gather, - _Utils_Tuple2(_List_Nil, _List_Nil), - unkeyedChildren); - var unkeyed = _v3.a; - var styles = _v3.b; - var newStyles = $elm$core$List$isEmpty(styles) ? rendered.styles : _Utils_ap(rendered.styles, styles); - if (!newStyles.b) { - return $mdgriffith$elm_ui$Internal$Model$Unstyled( - A5( - $mdgriffith$elm_ui$Internal$Model$finalizeNode, - rendered.has, - rendered.node, - rendered.attributes, - $mdgriffith$elm_ui$Internal$Model$Unkeyed( - A2($mdgriffith$elm_ui$Internal$Model$addChildren, unkeyed, rendered.children)), - $mdgriffith$elm_ui$Internal$Model$NoStyleSheet)); - } else { - var allStyles = newStyles; - return $mdgriffith$elm_ui$Internal$Model$Styled( - { - html: A4( - $mdgriffith$elm_ui$Internal$Model$finalizeNode, - rendered.has, - rendered.node, - rendered.attributes, - $mdgriffith$elm_ui$Internal$Model$Unkeyed( - A2($mdgriffith$elm_ui$Internal$Model$addChildren, unkeyed, rendered.children))), - styles: allStyles - }); - } - } - }); -var $mdgriffith$elm_ui$Internal$Model$Single = F3( - function (a, b, c) { - return {$: 'Single', a: a, b: b, c: c}; - }); -var $mdgriffith$elm_ui$Internal$Model$Transform = function (a) { - return {$: 'Transform', a: a}; -}; -var $mdgriffith$elm_ui$Internal$Flag$Field = F2( - function (a, b) { - return {$: 'Field', a: a, b: b}; - }); -var $elm$core$Bitwise$or = _Bitwise_or; -var $mdgriffith$elm_ui$Internal$Flag$add = F2( - function (myFlag, _v0) { - var one = _v0.a; - var two = _v0.b; - if (myFlag.$ === 'Flag') { - var first = myFlag.a; - return A2($mdgriffith$elm_ui$Internal$Flag$Field, first | one, two); - } else { - var second = myFlag.a; - return A2($mdgriffith$elm_ui$Internal$Flag$Field, one, second | two); - } - }); -var $mdgriffith$elm_ui$Internal$Model$ChildrenBehind = function (a) { - return {$: 'ChildrenBehind', a: a}; -}; -var $mdgriffith$elm_ui$Internal$Model$ChildrenBehindAndInFront = F2( - function (a, b) { - return {$: 'ChildrenBehindAndInFront', a: a, b: b}; - }); -var $mdgriffith$elm_ui$Internal$Model$ChildrenInFront = function (a) { - return {$: 'ChildrenInFront', a: a}; -}; -var $mdgriffith$elm_ui$Internal$Model$nearbyElement = F2( - function (location, elem) { - return A2( - $elm$html$Html$div, - _List_fromArray( - [ - $elm$html$Html$Attributes$class( - function () { - switch (location.$) { - case 'Above': - return A2( - $elm$core$String$join, - ' ', - _List_fromArray( - [$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.above])); - case 'Below': - return A2( - $elm$core$String$join, - ' ', - _List_fromArray( - [$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.below])); - case 'OnRight': - return A2( - $elm$core$String$join, - ' ', - _List_fromArray( - [$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.onRight])); - case 'OnLeft': - return A2( - $elm$core$String$join, - ' ', - _List_fromArray( - [$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.onLeft])); - case 'InFront': - return A2( - $elm$core$String$join, - ' ', - _List_fromArray( - [$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.inFront])); - default: - return A2( - $elm$core$String$join, - ' ', - _List_fromArray( - [$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.behind])); - } - }()) - ]), - _List_fromArray( - [ - function () { - switch (elem.$) { - case 'Empty': - return $elm$virtual_dom$VirtualDom$text(''); - case 'Text': - var str = elem.a; - return $mdgriffith$elm_ui$Internal$Model$textElement(str); - case 'Unstyled': - var html = elem.a; - return html($mdgriffith$elm_ui$Internal$Model$asEl); - default: - var styled = elem.a; - return A2(styled.html, $mdgriffith$elm_ui$Internal$Model$NoStyleSheet, $mdgriffith$elm_ui$Internal$Model$asEl); - } - }() - ])); - }); -var $mdgriffith$elm_ui$Internal$Model$addNearbyElement = F3( - function (location, elem, existing) { - var nearby = A2($mdgriffith$elm_ui$Internal$Model$nearbyElement, location, elem); - switch (existing.$) { - case 'NoNearbyChildren': - if (location.$ === 'Behind') { - return $mdgriffith$elm_ui$Internal$Model$ChildrenBehind( - _List_fromArray( - [nearby])); - } else { - return $mdgriffith$elm_ui$Internal$Model$ChildrenInFront( - _List_fromArray( - [nearby])); - } - case 'ChildrenBehind': - var existingBehind = existing.a; - if (location.$ === 'Behind') { - return $mdgriffith$elm_ui$Internal$Model$ChildrenBehind( - A2($elm$core$List$cons, nearby, existingBehind)); - } else { - return A2( - $mdgriffith$elm_ui$Internal$Model$ChildrenBehindAndInFront, - existingBehind, - _List_fromArray( - [nearby])); - } - case 'ChildrenInFront': - var existingInFront = existing.a; - if (location.$ === 'Behind') { - return A2( - $mdgriffith$elm_ui$Internal$Model$ChildrenBehindAndInFront, - _List_fromArray( - [nearby]), - existingInFront); - } else { - return $mdgriffith$elm_ui$Internal$Model$ChildrenInFront( - A2($elm$core$List$cons, nearby, existingInFront)); - } - default: - var existingBehind = existing.a; - var existingInFront = existing.b; - if (location.$ === 'Behind') { - return A2( - $mdgriffith$elm_ui$Internal$Model$ChildrenBehindAndInFront, - A2($elm$core$List$cons, nearby, existingBehind), - existingInFront); - } else { - return A2( - $mdgriffith$elm_ui$Internal$Model$ChildrenBehindAndInFront, - existingBehind, - A2($elm$core$List$cons, nearby, existingInFront)); - } - } - }); -var $mdgriffith$elm_ui$Internal$Model$Embedded = F2( - function (a, b) { - return {$: 'Embedded', a: a, b: b}; - }); -var $mdgriffith$elm_ui$Internal$Model$NodeName = function (a) { - return {$: 'NodeName', a: a}; -}; -var $mdgriffith$elm_ui$Internal$Model$addNodeName = F2( - function (newNode, old) { - switch (old.$) { - case 'Generic': - return $mdgriffith$elm_ui$Internal$Model$NodeName(newNode); - case 'NodeName': - var name = old.a; - return A2($mdgriffith$elm_ui$Internal$Model$Embedded, name, newNode); - default: - var x = old.a; - var y = old.b; - return A2($mdgriffith$elm_ui$Internal$Model$Embedded, x, y); - } - }); -var $mdgriffith$elm_ui$Internal$Model$alignXName = function (align) { - switch (align.$) { - case 'Left': - return $mdgriffith$elm_ui$Internal$Style$classes.alignedHorizontally + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignLeft); - case 'Right': - return $mdgriffith$elm_ui$Internal$Style$classes.alignedHorizontally + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignRight); - default: - return $mdgriffith$elm_ui$Internal$Style$classes.alignedHorizontally + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignCenterX); - } -}; -var $mdgriffith$elm_ui$Internal$Model$alignYName = function (align) { - switch (align.$) { - case 'Top': - return $mdgriffith$elm_ui$Internal$Style$classes.alignedVertically + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignTop); - case 'Bottom': - return $mdgriffith$elm_ui$Internal$Style$classes.alignedVertically + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignBottom); - default: - return $mdgriffith$elm_ui$Internal$Style$classes.alignedVertically + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignCenterY); - } -}; -var $elm$virtual_dom$VirtualDom$attribute = F2( - function (key, value) { - return A2( - _VirtualDom_attribute, - _VirtualDom_noOnOrFormAction(key), - _VirtualDom_noJavaScriptOrHtmlUri(value)); - }); -var $mdgriffith$elm_ui$Internal$Model$FullTransform = F4( - function (a, b, c, d) { - return {$: 'FullTransform', a: a, b: b, c: c, d: d}; - }); -var $mdgriffith$elm_ui$Internal$Model$Moved = function (a) { - return {$: 'Moved', a: a}; -}; -var $mdgriffith$elm_ui$Internal$Model$composeTransformation = F2( - function (transform, component) { - switch (transform.$) { - case 'Untransformed': - switch (component.$) { - case 'MoveX': - var x = component.a; - return $mdgriffith$elm_ui$Internal$Model$Moved( - _Utils_Tuple3(x, 0, 0)); - case 'MoveY': - var y = component.a; - return $mdgriffith$elm_ui$Internal$Model$Moved( - _Utils_Tuple3(0, y, 0)); - case 'MoveZ': - var z = component.a; - return $mdgriffith$elm_ui$Internal$Model$Moved( - _Utils_Tuple3(0, 0, z)); - case 'MoveXYZ': - var xyz = component.a; - return $mdgriffith$elm_ui$Internal$Model$Moved(xyz); - case 'Rotate': - var xyz = component.a; - var angle = component.b; - return A4( - $mdgriffith$elm_ui$Internal$Model$FullTransform, - _Utils_Tuple3(0, 0, 0), - _Utils_Tuple3(1, 1, 1), - xyz, - angle); - default: - var xyz = component.a; - return A4( - $mdgriffith$elm_ui$Internal$Model$FullTransform, - _Utils_Tuple3(0, 0, 0), - xyz, - _Utils_Tuple3(0, 0, 1), - 0); - } - case 'Moved': - var moved = transform.a; - var x = moved.a; - var y = moved.b; - var z = moved.c; - switch (component.$) { - case 'MoveX': - var newX = component.a; - return $mdgriffith$elm_ui$Internal$Model$Moved( - _Utils_Tuple3(newX, y, z)); - case 'MoveY': - var newY = component.a; - return $mdgriffith$elm_ui$Internal$Model$Moved( - _Utils_Tuple3(x, newY, z)); - case 'MoveZ': - var newZ = component.a; - return $mdgriffith$elm_ui$Internal$Model$Moved( - _Utils_Tuple3(x, y, newZ)); - case 'MoveXYZ': - var xyz = component.a; - return $mdgriffith$elm_ui$Internal$Model$Moved(xyz); - case 'Rotate': - var xyz = component.a; - var angle = component.b; - return A4( - $mdgriffith$elm_ui$Internal$Model$FullTransform, - moved, - _Utils_Tuple3(1, 1, 1), - xyz, - angle); - default: - var scale = component.a; - return A4( - $mdgriffith$elm_ui$Internal$Model$FullTransform, - moved, - scale, - _Utils_Tuple3(0, 0, 1), - 0); - } - default: - var moved = transform.a; - var x = moved.a; - var y = moved.b; - var z = moved.c; - var scaled = transform.b; - var origin = transform.c; - var angle = transform.d; - switch (component.$) { - case 'MoveX': - var newX = component.a; - return A4( - $mdgriffith$elm_ui$Internal$Model$FullTransform, - _Utils_Tuple3(newX, y, z), - scaled, - origin, - angle); - case 'MoveY': - var newY = component.a; - return A4( - $mdgriffith$elm_ui$Internal$Model$FullTransform, - _Utils_Tuple3(x, newY, z), - scaled, - origin, - angle); - case 'MoveZ': - var newZ = component.a; - return A4( - $mdgriffith$elm_ui$Internal$Model$FullTransform, - _Utils_Tuple3(x, y, newZ), - scaled, - origin, - angle); - case 'MoveXYZ': - var newMove = component.a; - return A4($mdgriffith$elm_ui$Internal$Model$FullTransform, newMove, scaled, origin, angle); - case 'Rotate': - var newOrigin = component.a; - var newAngle = component.b; - return A4($mdgriffith$elm_ui$Internal$Model$FullTransform, moved, scaled, newOrigin, newAngle); - default: - var newScale = component.a; - return A4($mdgriffith$elm_ui$Internal$Model$FullTransform, moved, newScale, origin, angle); - } - } - }); -var $mdgriffith$elm_ui$Internal$Flag$height = $mdgriffith$elm_ui$Internal$Flag$flag(7); -var $mdgriffith$elm_ui$Internal$Flag$heightContent = $mdgriffith$elm_ui$Internal$Flag$flag(36); -var $mdgriffith$elm_ui$Internal$Flag$merge = F2( - function (_v0, _v1) { - var one = _v0.a; - var two = _v0.b; - var three = _v1.a; - var four = _v1.b; - return A2($mdgriffith$elm_ui$Internal$Flag$Field, one | three, two | four); - }); -var $mdgriffith$elm_ui$Internal$Flag$none = A2($mdgriffith$elm_ui$Internal$Flag$Field, 0, 0); -var $mdgriffith$elm_ui$Internal$Model$renderHeight = function (h) { - switch (h.$) { - case 'Px': - var px = h.a; - var val = $elm$core$String$fromInt(px); - var name = 'height-px-' + val; - return _Utils_Tuple3( - $mdgriffith$elm_ui$Internal$Flag$none, - $mdgriffith$elm_ui$Internal$Style$classes.heightExact + (' ' + name), - _List_fromArray( - [ - A3($mdgriffith$elm_ui$Internal$Model$Single, name, 'height', val + 'px') - ])); - case 'Content': - return _Utils_Tuple3( - A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$heightContent, $mdgriffith$elm_ui$Internal$Flag$none), - $mdgriffith$elm_ui$Internal$Style$classes.heightContent, - _List_Nil); - case 'Fill': - var portion = h.a; - return (portion === 1) ? _Utils_Tuple3( - A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$heightFill, $mdgriffith$elm_ui$Internal$Flag$none), - $mdgriffith$elm_ui$Internal$Style$classes.heightFill, - _List_Nil) : _Utils_Tuple3( - A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$heightFill, $mdgriffith$elm_ui$Internal$Flag$none), - $mdgriffith$elm_ui$Internal$Style$classes.heightFillPortion + (' height-fill-' + $elm$core$String$fromInt(portion)), - _List_fromArray( - [ - A3( - $mdgriffith$elm_ui$Internal$Model$Single, - $mdgriffith$elm_ui$Internal$Style$classes.any + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.column + (' > ' + $mdgriffith$elm_ui$Internal$Style$dot( - 'height-fill-' + $elm$core$String$fromInt(portion))))), - 'flex-grow', - $elm$core$String$fromInt(portion * 100000)) - ])); - case 'Min': - var minSize = h.a; - var len = h.b; - var cls = 'min-height-' + $elm$core$String$fromInt(minSize); - var style = A3( - $mdgriffith$elm_ui$Internal$Model$Single, - cls, - 'min-height', - $elm$core$String$fromInt(minSize) + 'px !important'); - var _v1 = $mdgriffith$elm_ui$Internal$Model$renderHeight(len); - var newFlag = _v1.a; - var newAttrs = _v1.b; - var newStyle = _v1.c; - return _Utils_Tuple3( - A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$heightBetween, newFlag), - cls + (' ' + newAttrs), - A2($elm$core$List$cons, style, newStyle)); - default: - var maxSize = h.a; - var len = h.b; - var cls = 'max-height-' + $elm$core$String$fromInt(maxSize); - var style = A3( - $mdgriffith$elm_ui$Internal$Model$Single, - cls, - 'max-height', - $elm$core$String$fromInt(maxSize) + 'px'); - var _v2 = $mdgriffith$elm_ui$Internal$Model$renderHeight(len); - var newFlag = _v2.a; - var newAttrs = _v2.b; - var newStyle = _v2.c; - return _Utils_Tuple3( - A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$heightBetween, newFlag), - cls + (' ' + newAttrs), - A2($elm$core$List$cons, style, newStyle)); - } -}; -var $mdgriffith$elm_ui$Internal$Flag$widthContent = $mdgriffith$elm_ui$Internal$Flag$flag(38); -var $mdgriffith$elm_ui$Internal$Model$renderWidth = function (w) { - switch (w.$) { - case 'Px': - var px = w.a; - return _Utils_Tuple3( - $mdgriffith$elm_ui$Internal$Flag$none, - $mdgriffith$elm_ui$Internal$Style$classes.widthExact + (' width-px-' + $elm$core$String$fromInt(px)), - _List_fromArray( - [ - A3( - $mdgriffith$elm_ui$Internal$Model$Single, - 'width-px-' + $elm$core$String$fromInt(px), - 'width', - $elm$core$String$fromInt(px) + 'px') - ])); - case 'Content': - return _Utils_Tuple3( - A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$widthContent, $mdgriffith$elm_ui$Internal$Flag$none), - $mdgriffith$elm_ui$Internal$Style$classes.widthContent, - _List_Nil); - case 'Fill': - var portion = w.a; - return (portion === 1) ? _Utils_Tuple3( - A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$widthFill, $mdgriffith$elm_ui$Internal$Flag$none), - $mdgriffith$elm_ui$Internal$Style$classes.widthFill, - _List_Nil) : _Utils_Tuple3( - A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$widthFill, $mdgriffith$elm_ui$Internal$Flag$none), - $mdgriffith$elm_ui$Internal$Style$classes.widthFillPortion + (' width-fill-' + $elm$core$String$fromInt(portion)), - _List_fromArray( - [ - A3( - $mdgriffith$elm_ui$Internal$Model$Single, - $mdgriffith$elm_ui$Internal$Style$classes.any + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.row + (' > ' + $mdgriffith$elm_ui$Internal$Style$dot( - 'width-fill-' + $elm$core$String$fromInt(portion))))), - 'flex-grow', - $elm$core$String$fromInt(portion * 100000)) - ])); - case 'Min': - var minSize = w.a; - var len = w.b; - var cls = 'min-width-' + $elm$core$String$fromInt(minSize); - var style = A3( - $mdgriffith$elm_ui$Internal$Model$Single, - cls, - 'min-width', - $elm$core$String$fromInt(minSize) + 'px'); - var _v1 = $mdgriffith$elm_ui$Internal$Model$renderWidth(len); - var newFlag = _v1.a; - var newAttrs = _v1.b; - var newStyle = _v1.c; - return _Utils_Tuple3( - A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$widthBetween, newFlag), - cls + (' ' + newAttrs), - A2($elm$core$List$cons, style, newStyle)); - default: - var maxSize = w.a; - var len = w.b; - var cls = 'max-width-' + $elm$core$String$fromInt(maxSize); - var style = A3( - $mdgriffith$elm_ui$Internal$Model$Single, - cls, - 'max-width', - $elm$core$String$fromInt(maxSize) + 'px'); - var _v2 = $mdgriffith$elm_ui$Internal$Model$renderWidth(len); - var newFlag = _v2.a; - var newAttrs = _v2.b; - var newStyle = _v2.c; - return _Utils_Tuple3( - A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$widthBetween, newFlag), - cls + (' ' + newAttrs), - A2($elm$core$List$cons, style, newStyle)); - } -}; -var $mdgriffith$elm_ui$Internal$Flag$borderWidth = $mdgriffith$elm_ui$Internal$Flag$flag(27); -var $elm$core$Basics$ge = _Utils_ge; -var $mdgriffith$elm_ui$Internal$Model$skippable = F2( - function (flag, style) { - if (_Utils_eq(flag, $mdgriffith$elm_ui$Internal$Flag$borderWidth)) { - if (style.$ === 'Single') { - var val = style.c; - switch (val) { - case '0px': - return true; - case '1px': - return true; - case '2px': - return true; - case '3px': - return true; - case '4px': - return true; - case '5px': - return true; - case '6px': - return true; - default: - return false; - } - } else { - return false; - } - } else { - switch (style.$) { - case 'FontSize': - var i = style.a; - return (i >= 8) && (i <= 32); - case 'PaddingStyle': - var name = style.a; - var t = style.b; - var r = style.c; - var b = style.d; - var l = style.e; - return _Utils_eq(t, b) && (_Utils_eq(t, r) && (_Utils_eq(t, l) && ((t >= 0) && (t <= 24)))); - default: - return false; - } - } - }); -var $mdgriffith$elm_ui$Internal$Flag$width = $mdgriffith$elm_ui$Internal$Flag$flag(6); -var $mdgriffith$elm_ui$Internal$Flag$xAlign = $mdgriffith$elm_ui$Internal$Flag$flag(30); -var $mdgriffith$elm_ui$Internal$Flag$yAlign = $mdgriffith$elm_ui$Internal$Flag$flag(29); -var $mdgriffith$elm_ui$Internal$Model$gatherAttrRecursive = F8( - function (classes, node, has, transform, styles, attrs, children, elementAttrs) { - gatherAttrRecursive: - while (true) { - if (!elementAttrs.b) { - var _v1 = $mdgriffith$elm_ui$Internal$Model$transformClass(transform); - if (_v1.$ === 'Nothing') { - return { - attributes: A2( - $elm$core$List$cons, - $elm$html$Html$Attributes$class(classes), - attrs), - children: children, - has: has, - node: node, - styles: styles - }; - } else { - var _class = _v1.a; - return { - attributes: A2( - $elm$core$List$cons, - $elm$html$Html$Attributes$class(classes + (' ' + _class)), - attrs), - children: children, - has: has, - node: node, - styles: A2( - $elm$core$List$cons, - $mdgriffith$elm_ui$Internal$Model$Transform(transform), - styles) - }; - } - } else { - var attribute = elementAttrs.a; - var remaining = elementAttrs.b; - switch (attribute.$) { - case 'NoAttribute': - var $temp$classes = classes, - $temp$node = node, - $temp$has = has, - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - case 'Class': - var flag = attribute.a; - var exactClassName = attribute.b; - if (A2($mdgriffith$elm_ui$Internal$Flag$present, flag, has)) { - var $temp$classes = classes, - $temp$node = node, - $temp$has = has, - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - } else { - var $temp$classes = exactClassName + (' ' + classes), - $temp$node = node, - $temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, flag, has), - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - } - case 'Attr': - var actualAttribute = attribute.a; - var $temp$classes = classes, - $temp$node = node, - $temp$has = has, - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = A2($elm$core$List$cons, actualAttribute, attrs), - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - case 'StyleClass': - var flag = attribute.a; - var style = attribute.b; - if (A2($mdgriffith$elm_ui$Internal$Flag$present, flag, has)) { - var $temp$classes = classes, - $temp$node = node, - $temp$has = has, - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - } else { - if (A2($mdgriffith$elm_ui$Internal$Model$skippable, flag, style)) { - var $temp$classes = $mdgriffith$elm_ui$Internal$Model$getStyleName(style) + (' ' + classes), - $temp$node = node, - $temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, flag, has), - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - } else { - var $temp$classes = $mdgriffith$elm_ui$Internal$Model$getStyleName(style) + (' ' + classes), - $temp$node = node, - $temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, flag, has), - $temp$transform = transform, - $temp$styles = A2($elm$core$List$cons, style, styles), - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - } - } - case 'TransformComponent': - var flag = attribute.a; - var component = attribute.b; - var $temp$classes = classes, - $temp$node = node, - $temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, flag, has), - $temp$transform = A2($mdgriffith$elm_ui$Internal$Model$composeTransformation, transform, component), - $temp$styles = styles, - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - case 'Width': - var width = attribute.a; - if (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$width, has)) { - var $temp$classes = classes, - $temp$node = node, - $temp$has = has, - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - } else { - switch (width.$) { - case 'Px': - var px = width.a; - var $temp$classes = ($mdgriffith$elm_ui$Internal$Style$classes.widthExact + (' width-px-' + $elm$core$String$fromInt(px))) + (' ' + classes), - $temp$node = node, - $temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$width, has), - $temp$transform = transform, - $temp$styles = A2( - $elm$core$List$cons, - A3( - $mdgriffith$elm_ui$Internal$Model$Single, - 'width-px-' + $elm$core$String$fromInt(px), - 'width', - $elm$core$String$fromInt(px) + 'px'), - styles), - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - case 'Content': - var $temp$classes = classes + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.widthContent), - $temp$node = node, - $temp$has = A2( - $mdgriffith$elm_ui$Internal$Flag$add, - $mdgriffith$elm_ui$Internal$Flag$widthContent, - A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$width, has)), - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - case 'Fill': - var portion = width.a; - if (portion === 1) { - var $temp$classes = classes + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.widthFill), - $temp$node = node, - $temp$has = A2( - $mdgriffith$elm_ui$Internal$Flag$add, - $mdgriffith$elm_ui$Internal$Flag$widthFill, - A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$width, has)), - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - } else { - var $temp$classes = classes + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.widthFillPortion + (' width-fill-' + $elm$core$String$fromInt(portion)))), - $temp$node = node, - $temp$has = A2( - $mdgriffith$elm_ui$Internal$Flag$add, - $mdgriffith$elm_ui$Internal$Flag$widthFill, - A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$width, has)), - $temp$transform = transform, - $temp$styles = A2( - $elm$core$List$cons, - A3( - $mdgriffith$elm_ui$Internal$Model$Single, - $mdgriffith$elm_ui$Internal$Style$classes.any + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.row + (' > ' + $mdgriffith$elm_ui$Internal$Style$dot( - 'width-fill-' + $elm$core$String$fromInt(portion))))), - 'flex-grow', - $elm$core$String$fromInt(portion * 100000)), - styles), - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - } - default: - var _v4 = $mdgriffith$elm_ui$Internal$Model$renderWidth(width); - var addToFlags = _v4.a; - var newClass = _v4.b; - var newStyles = _v4.c; - var $temp$classes = classes + (' ' + newClass), - $temp$node = node, - $temp$has = A2( - $mdgriffith$elm_ui$Internal$Flag$merge, - addToFlags, - A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$width, has)), - $temp$transform = transform, - $temp$styles = _Utils_ap(newStyles, styles), - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - } - } - case 'Height': - var height = attribute.a; - if (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$height, has)) { - var $temp$classes = classes, - $temp$node = node, - $temp$has = has, - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - } else { - switch (height.$) { - case 'Px': - var px = height.a; - var val = $elm$core$String$fromInt(px) + 'px'; - var name = 'height-px-' + val; - var $temp$classes = $mdgriffith$elm_ui$Internal$Style$classes.heightExact + (' ' + (name + (' ' + classes))), - $temp$node = node, - $temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$height, has), - $temp$transform = transform, - $temp$styles = A2( - $elm$core$List$cons, - A3($mdgriffith$elm_ui$Internal$Model$Single, name, 'height ', val), - styles), - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - case 'Content': - var $temp$classes = $mdgriffith$elm_ui$Internal$Style$classes.heightContent + (' ' + classes), - $temp$node = node, - $temp$has = A2( - $mdgriffith$elm_ui$Internal$Flag$add, - $mdgriffith$elm_ui$Internal$Flag$heightContent, - A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$height, has)), - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - case 'Fill': - var portion = height.a; - if (portion === 1) { - var $temp$classes = $mdgriffith$elm_ui$Internal$Style$classes.heightFill + (' ' + classes), - $temp$node = node, - $temp$has = A2( - $mdgriffith$elm_ui$Internal$Flag$add, - $mdgriffith$elm_ui$Internal$Flag$heightFill, - A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$height, has)), - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - } else { - var $temp$classes = classes + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.heightFillPortion + (' height-fill-' + $elm$core$String$fromInt(portion)))), - $temp$node = node, - $temp$has = A2( - $mdgriffith$elm_ui$Internal$Flag$add, - $mdgriffith$elm_ui$Internal$Flag$heightFill, - A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$height, has)), - $temp$transform = transform, - $temp$styles = A2( - $elm$core$List$cons, - A3( - $mdgriffith$elm_ui$Internal$Model$Single, - $mdgriffith$elm_ui$Internal$Style$classes.any + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.column + (' > ' + $mdgriffith$elm_ui$Internal$Style$dot( - 'height-fill-' + $elm$core$String$fromInt(portion))))), - 'flex-grow', - $elm$core$String$fromInt(portion * 100000)), - styles), - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - } - default: - var _v6 = $mdgriffith$elm_ui$Internal$Model$renderHeight(height); - var addToFlags = _v6.a; - var newClass = _v6.b; - var newStyles = _v6.c; - var $temp$classes = classes + (' ' + newClass), - $temp$node = node, - $temp$has = A2( - $mdgriffith$elm_ui$Internal$Flag$merge, - addToFlags, - A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$height, has)), - $temp$transform = transform, - $temp$styles = _Utils_ap(newStyles, styles), - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - } - } - case 'Describe': - var description = attribute.a; - switch (description.$) { - case 'Main': - var $temp$classes = classes, - $temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'main', node), - $temp$has = has, - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - case 'Navigation': - var $temp$classes = classes, - $temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'nav', node), - $temp$has = has, - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - case 'ContentInfo': - var $temp$classes = classes, - $temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'footer', node), - $temp$has = has, - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - case 'Complementary': - var $temp$classes = classes, - $temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'aside', node), - $temp$has = has, - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - case 'Heading': - var i = description.a; - if (i <= 1) { - var $temp$classes = classes, - $temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'h1', node), - $temp$has = has, - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - } else { - if (i < 7) { - var $temp$classes = classes, - $temp$node = A2( - $mdgriffith$elm_ui$Internal$Model$addNodeName, - 'h' + $elm$core$String$fromInt(i), - node), - $temp$has = has, - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - } else { - var $temp$classes = classes, - $temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'h6', node), - $temp$has = has, - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - } - } - case 'Paragraph': - var $temp$classes = classes, - $temp$node = node, - $temp$has = has, - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - case 'Button': - var $temp$classes = classes, - $temp$node = node, - $temp$has = has, - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = A2( - $elm$core$List$cons, - A2($elm$virtual_dom$VirtualDom$attribute, 'role', 'button'), - attrs), - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - case 'Label': - var label = description.a; - var $temp$classes = classes, - $temp$node = node, - $temp$has = has, - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = A2( - $elm$core$List$cons, - A2($elm$virtual_dom$VirtualDom$attribute, 'aria-label', label), - attrs), - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - case 'LivePolite': - var $temp$classes = classes, - $temp$node = node, - $temp$has = has, - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = A2( - $elm$core$List$cons, - A2($elm$virtual_dom$VirtualDom$attribute, 'aria-live', 'polite'), - attrs), - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - default: - var $temp$classes = classes, - $temp$node = node, - $temp$has = has, - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = A2( - $elm$core$List$cons, - A2($elm$virtual_dom$VirtualDom$attribute, 'aria-live', 'assertive'), - attrs), - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - } - case 'Nearby': - var location = attribute.a; - var elem = attribute.b; - var newStyles = function () { - switch (elem.$) { - case 'Empty': - return styles; - case 'Text': - var str = elem.a; - return styles; - case 'Unstyled': - var html = elem.a; - return styles; - default: - var styled = elem.a; - return _Utils_ap(styles, styled.styles); - } - }(); - var $temp$classes = classes, - $temp$node = node, - $temp$has = has, - $temp$transform = transform, - $temp$styles = newStyles, - $temp$attrs = attrs, - $temp$children = A3($mdgriffith$elm_ui$Internal$Model$addNearbyElement, location, elem, children), - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - case 'AlignX': - var x = attribute.a; - if (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$xAlign, has)) { - var $temp$classes = classes, - $temp$node = node, - $temp$has = has, - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - } else { - var $temp$classes = $mdgriffith$elm_ui$Internal$Model$alignXName(x) + (' ' + classes), - $temp$node = node, - $temp$has = function (flags) { - switch (x.$) { - case 'CenterX': - return A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$centerX, flags); - case 'Right': - return A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$alignRight, flags); - default: - return flags; - } - }( - A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$xAlign, has)), - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - } - default: - var y = attribute.a; - if (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$yAlign, has)) { - var $temp$classes = classes, - $temp$node = node, - $temp$has = has, - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - } else { - var $temp$classes = $mdgriffith$elm_ui$Internal$Model$alignYName(y) + (' ' + classes), - $temp$node = node, - $temp$has = function (flags) { - switch (y.$) { - case 'CenterY': - return A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$centerY, flags); - case 'Bottom': - return A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$alignBottom, flags); - default: - return flags; - } - }( - A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$yAlign, has)), - $temp$transform = transform, - $temp$styles = styles, - $temp$attrs = attrs, - $temp$children = children, - $temp$elementAttrs = remaining; - classes = $temp$classes; - node = $temp$node; - has = $temp$has; - transform = $temp$transform; - styles = $temp$styles; - attrs = $temp$attrs; - children = $temp$children; - elementAttrs = $temp$elementAttrs; - continue gatherAttrRecursive; - } - } - } - } - }); -var $mdgriffith$elm_ui$Internal$Model$Untransformed = {$: 'Untransformed'}; -var $mdgriffith$elm_ui$Internal$Model$untransformed = $mdgriffith$elm_ui$Internal$Model$Untransformed; -var $mdgriffith$elm_ui$Internal$Model$element = F4( - function (context, node, attributes, children) { - return A3( - $mdgriffith$elm_ui$Internal$Model$createElement, - context, - children, - A8( - $mdgriffith$elm_ui$Internal$Model$gatherAttrRecursive, - $mdgriffith$elm_ui$Internal$Model$contextClasses(context), - node, - $mdgriffith$elm_ui$Internal$Flag$none, - $mdgriffith$elm_ui$Internal$Model$untransformed, - _List_Nil, - _List_Nil, - $mdgriffith$elm_ui$Internal$Model$NoNearbyChildren, - $elm$core$List$reverse(attributes))); - }); -var $mdgriffith$elm_ui$Internal$Model$AllowHover = {$: 'AllowHover'}; -var $mdgriffith$elm_ui$Internal$Model$Layout = {$: 'Layout'}; -var $mdgriffith$elm_ui$Internal$Model$focusDefaultStyle = { - backgroundColor: $elm$core$Maybe$Nothing, - borderColor: $elm$core$Maybe$Nothing, - shadow: $elm$core$Maybe$Just( - { - blur: 0, - color: A4($mdgriffith$elm_ui$Internal$Model$Rgba, 155 / 255, 203 / 255, 1, 1), - offset: _Utils_Tuple2(0, 0), - size: 3 - }) -}; -var $mdgriffith$elm_ui$Internal$Model$optionsToRecord = function (options) { - var combine = F2( - function (opt, record) { - switch (opt.$) { - case 'HoverOption': - var hoverable = opt.a; - var _v4 = record.hover; - if (_v4.$ === 'Nothing') { - return _Utils_update( - record, - { - hover: $elm$core$Maybe$Just(hoverable) - }); - } else { - return record; - } - case 'FocusStyleOption': - var focusStyle = opt.a; - var _v5 = record.focus; - if (_v5.$ === 'Nothing') { - return _Utils_update( - record, - { - focus: $elm$core$Maybe$Just(focusStyle) - }); - } else { - return record; - } - default: - var renderMode = opt.a; - var _v6 = record.mode; - if (_v6.$ === 'Nothing') { - return _Utils_update( - record, - { - mode: $elm$core$Maybe$Just(renderMode) - }); - } else { - return record; - } - } - }); - var andFinally = function (record) { - return { - focus: function () { - var _v0 = record.focus; - if (_v0.$ === 'Nothing') { - return $mdgriffith$elm_ui$Internal$Model$focusDefaultStyle; - } else { - var focusable = _v0.a; - return focusable; - } - }(), - hover: function () { - var _v1 = record.hover; - if (_v1.$ === 'Nothing') { - return $mdgriffith$elm_ui$Internal$Model$AllowHover; - } else { - var hoverable = _v1.a; - return hoverable; - } - }(), - mode: function () { - var _v2 = record.mode; - if (_v2.$ === 'Nothing') { - return $mdgriffith$elm_ui$Internal$Model$Layout; - } else { - var actualMode = _v2.a; - return actualMode; - } - }() - }; - }; - return andFinally( - A3( - $elm$core$List$foldr, - combine, - {focus: $elm$core$Maybe$Nothing, hover: $elm$core$Maybe$Nothing, mode: $elm$core$Maybe$Nothing}, - options)); -}; -var $mdgriffith$elm_ui$Internal$Model$toHtml = F2( - function (mode, el) { - switch (el.$) { - case 'Unstyled': - var html = el.a; - return html($mdgriffith$elm_ui$Internal$Model$asEl); - case 'Styled': - var styles = el.a.styles; - var html = el.a.html; - return A2( - html, - mode(styles), - $mdgriffith$elm_ui$Internal$Model$asEl); - case 'Text': - var text = el.a; - return $mdgriffith$elm_ui$Internal$Model$textElement(text); - default: - return $mdgriffith$elm_ui$Internal$Model$textElement(''); - } - }); -var $mdgriffith$elm_ui$Internal$Model$renderRoot = F3( - function (optionList, attributes, child) { - var options = $mdgriffith$elm_ui$Internal$Model$optionsToRecord(optionList); - var embedStyle = function () { - var _v0 = options.mode; - if (_v0.$ === 'NoStaticStyleSheet') { - return $mdgriffith$elm_ui$Internal$Model$OnlyDynamic(options); - } else { - return $mdgriffith$elm_ui$Internal$Model$StaticRootAndDynamic(options); - } - }(); - return A2( - $mdgriffith$elm_ui$Internal$Model$toHtml, - embedStyle, - A4( - $mdgriffith$elm_ui$Internal$Model$element, - $mdgriffith$elm_ui$Internal$Model$asEl, - $mdgriffith$elm_ui$Internal$Model$div, - attributes, - $mdgriffith$elm_ui$Internal$Model$Unkeyed( - _List_fromArray( - [child])))); - }); -var $mdgriffith$elm_ui$Internal$Model$Colored = F3( - function (a, b, c) { - return {$: 'Colored', a: a, b: b, c: c}; - }); -var $mdgriffith$elm_ui$Internal$Model$FontFamily = F2( - function (a, b) { - return {$: 'FontFamily', a: a, b: b}; - }); -var $mdgriffith$elm_ui$Internal$Model$FontSize = function (a) { - return {$: 'FontSize', a: a}; -}; -var $mdgriffith$elm_ui$Internal$Model$SansSerif = {$: 'SansSerif'}; -var $mdgriffith$elm_ui$Internal$Model$StyleClass = F2( - function (a, b) { - return {$: 'StyleClass', a: a, b: b}; - }); -var $mdgriffith$elm_ui$Internal$Model$Typeface = function (a) { - return {$: 'Typeface', a: a}; -}; -var $mdgriffith$elm_ui$Internal$Flag$bgColor = $mdgriffith$elm_ui$Internal$Flag$flag(8); -var $mdgriffith$elm_ui$Internal$Flag$fontColor = $mdgriffith$elm_ui$Internal$Flag$flag(14); -var $mdgriffith$elm_ui$Internal$Flag$fontFamily = $mdgriffith$elm_ui$Internal$Flag$flag(5); -var $mdgriffith$elm_ui$Internal$Flag$fontSize = $mdgriffith$elm_ui$Internal$Flag$flag(4); -var $mdgriffith$elm_ui$Internal$Model$formatColorClass = function (_v0) { - var red = _v0.a; - var green = _v0.b; - var blue = _v0.c; - var alpha = _v0.d; - return $mdgriffith$elm_ui$Internal$Model$floatClass(red) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(green) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(blue) + ('-' + $mdgriffith$elm_ui$Internal$Model$floatClass(alpha)))))); -}; -var $elm$core$String$words = _String_words; -var $mdgriffith$elm_ui$Internal$Model$renderFontClassName = F2( - function (font, current) { - return _Utils_ap( - current, - function () { - switch (font.$) { - case 'Serif': - return 'serif'; - case 'SansSerif': - return 'sans-serif'; - case 'Monospace': - return 'monospace'; - case 'Typeface': - var name = font.a; - return A2( - $elm$core$String$join, - '-', - $elm$core$String$words( - $elm$core$String$toLower(name))); - case 'ImportFont': - var name = font.a; - var url = font.b; - return A2( - $elm$core$String$join, - '-', - $elm$core$String$words( - $elm$core$String$toLower(name))); - default: - var name = font.a.name; - return A2( - $elm$core$String$join, - '-', - $elm$core$String$words( - $elm$core$String$toLower(name))); - } - }()); - }); -var $mdgriffith$elm_ui$Internal$Model$rootStyle = function () { - var families = _List_fromArray( - [ - $mdgriffith$elm_ui$Internal$Model$Typeface('Open Sans'), - $mdgriffith$elm_ui$Internal$Model$Typeface('Helvetica'), - $mdgriffith$elm_ui$Internal$Model$Typeface('Verdana'), - $mdgriffith$elm_ui$Internal$Model$SansSerif - ]); - return _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Model$StyleClass, - $mdgriffith$elm_ui$Internal$Flag$bgColor, - A3( - $mdgriffith$elm_ui$Internal$Model$Colored, - 'bg-' + $mdgriffith$elm_ui$Internal$Model$formatColorClass( - A4($mdgriffith$elm_ui$Internal$Model$Rgba, 1, 1, 1, 0)), - 'background-color', - A4($mdgriffith$elm_ui$Internal$Model$Rgba, 1, 1, 1, 0))), - A2( - $mdgriffith$elm_ui$Internal$Model$StyleClass, - $mdgriffith$elm_ui$Internal$Flag$fontColor, - A3( - $mdgriffith$elm_ui$Internal$Model$Colored, - 'fc-' + $mdgriffith$elm_ui$Internal$Model$formatColorClass( - A4($mdgriffith$elm_ui$Internal$Model$Rgba, 0, 0, 0, 1)), - 'color', - A4($mdgriffith$elm_ui$Internal$Model$Rgba, 0, 0, 0, 1))), - A2( - $mdgriffith$elm_ui$Internal$Model$StyleClass, - $mdgriffith$elm_ui$Internal$Flag$fontSize, - $mdgriffith$elm_ui$Internal$Model$FontSize(20)), - A2( - $mdgriffith$elm_ui$Internal$Model$StyleClass, - $mdgriffith$elm_ui$Internal$Flag$fontFamily, - A2( - $mdgriffith$elm_ui$Internal$Model$FontFamily, - A3($elm$core$List$foldl, $mdgriffith$elm_ui$Internal$Model$renderFontClassName, 'font-', families), - families)) - ]); -}(); -var $mdgriffith$elm_ui$Element$layoutWith = F3( - function (_v0, attrs, child) { - var options = _v0.options; - return A3( - $mdgriffith$elm_ui$Internal$Model$renderRoot, - options, - A2( - $elm$core$List$cons, - $mdgriffith$elm_ui$Internal$Model$htmlClass( - A2( - $elm$core$String$join, - ' ', - _List_fromArray( - [$mdgriffith$elm_ui$Internal$Style$classes.root, $mdgriffith$elm_ui$Internal$Style$classes.any, $mdgriffith$elm_ui$Internal$Style$classes.single]))), - _Utils_ap($mdgriffith$elm_ui$Internal$Model$rootStyle, attrs)), - child); - }); -var $mdgriffith$elm_ui$Element$layout = $mdgriffith$elm_ui$Element$layoutWith( - {options: _List_Nil}); -var $elm$core$Basics$abs = function (n) { - return (n < 0) ? (-n) : n; -}; -var $author$project$Morphir$Value$Error$UnexpectedArguments = function (a) { - return {$: 'UnexpectedArguments', a: a}; -}; -var $author$project$Morphir$Value$Native$binaryLazy = function (f) { - return F2( - function (_eval, args) { - if ((args.b && args.b.b) && (!args.b.b.b)) { - var arg1 = args.a; - var _v1 = args.b; - var arg2 = _v1.a; - return A3(f, _eval, arg1, arg2); - } else { - return $elm$core$Result$Err( - $author$project$Morphir$Value$Error$UnexpectedArguments(args)); - } - }); -}; -var $author$project$Morphir$Value$Native$binaryStrict = function (f) { - return $author$project$Morphir$Value$Native$binaryLazy( - F3( - function (_eval, arg1, arg2) { - return A2( - $elm$core$Result$andThen, - function (a1) { - return A2( - $elm$core$Result$andThen, - f(a1), - _eval(arg2)); - }, - _eval(arg1)); - })); -}; -var $author$project$Morphir$Value$Error$ExpectedBoolLiteral = function (a) { - return {$: 'ExpectedBoolLiteral', a: a}; -}; -var $author$project$Morphir$Value$Native$boolLiteral = function (lit) { - if (lit.$ === 'BoolLiteral') { - var v = lit.a; - return $elm$core$Result$Ok(v); - } else { - return $elm$core$Result$Err( - $author$project$Morphir$Value$Error$ExpectedBoolLiteral(lit)); - } -}; -var $author$project$Morphir$Value$Native$charLiteral = function (lit) { - if (lit.$ === 'CharLiteral') { - var v = lit.a; - return $elm$core$Result$Ok(v); - } else { - return $elm$core$Result$Err( - $author$project$Morphir$Value$Error$ExpectedBoolLiteral(lit)); - } -}; -var $author$project$Morphir$Value$Native$eval1 = F5( - function (f, decodeA, encodeB, _eval, args) { - if (args.b && (!args.b.b)) { - var arg1 = args.a; - return A2( - $elm$core$Result$andThen, - function (a) { - return encodeB( - f(a)); - }, - A2(decodeA, _eval, arg1)); - } else { - return $elm$core$Result$Err( - $author$project$Morphir$Value$Error$UnexpectedArguments(args)); - } - }); -var $elm$core$Result$map2 = F3( - function (func, ra, rb) { - if (ra.$ === 'Err') { - var x = ra.a; - return $elm$core$Result$Err(x); - } else { - var a = ra.a; - if (rb.$ === 'Err') { - var x = rb.a; - return $elm$core$Result$Err(x); - } else { - var b = rb.a; - return $elm$core$Result$Ok( - A2(func, a, b)); - } - } - }); -var $author$project$Morphir$Value$Native$eval2 = F6( - function (f, decodeA, decodeB, encodeC, _eval, args) { - if ((args.b && args.b.b) && (!args.b.b.b)) { - var arg1 = args.a; - var _v1 = args.b; - var arg2 = _v1.a; - return A2( - $elm$core$Result$andThen, - $elm$core$Basics$identity, - A3( - $elm$core$Result$map2, - F2( - function (a, b) { - return encodeC( - A2(f, a, b)); - }), - A2(decodeA, _eval, arg1), - A2(decodeB, _eval, arg2))); - } else { - return $elm$core$Result$Err( - $author$project$Morphir$Value$Error$UnexpectedArguments(args)); - } - }); -var $author$project$Morphir$Value$Error$ExpectedLiteral = function (a) { - return {$: 'ExpectedLiteral', a: a}; -}; -var $author$project$Morphir$Value$Native$expectLiteral = F3( - function (decodeLiteral, _eval, value) { - var _v0 = _eval(value); - if (_v0.$ === 'Ok') { - if (_v0.a.$ === 'Literal') { - var _v1 = _v0.a; - var lit = _v1.b; - return decodeLiteral(lit); - } else { - return $elm$core$Result$Err( - $author$project$Morphir$Value$Error$ExpectedLiteral(value)); - } - } else { - var error = _v0.a; - return $elm$core$Result$Err(error); - } - }); -var $author$project$Morphir$Value$Native$floatLiteral = function (lit) { - if (lit.$ === 'FloatLiteral') { - var v = lit.a; - return $elm$core$Result$Ok(v); - } else { - return $elm$core$Result$Err( - $author$project$Morphir$Value$Error$ExpectedBoolLiteral(lit)); - } -}; -var $author$project$Morphir$Value$Native$intLiteral = function (lit) { - if (lit.$ === 'IntLiteral') { - var v = lit.a; - return $elm$core$Result$Ok(v); - } else { - return $elm$core$Result$Err( - $author$project$Morphir$Value$Error$ExpectedBoolLiteral(lit)); - } -}; -var $author$project$Morphir$Value$Error$NotImplemented = {$: 'NotImplemented'}; -var $author$project$Morphir$Value$Native$oneOf = function (funs) { - return A3( - $elm$core$List$foldl, - F2( - function (nextFun, funSoFar) { - return F2( - function (_eval, args) { - var _v0 = A2(funSoFar, _eval, args); - if (_v0.$ === 'Ok') { - var result = _v0.a; - return $elm$core$Result$Ok(result); - } else { - return A2(nextFun, _eval, args); - } - }); - }), - F2( - function (_eval, args) { - return $elm$core$Result$Err($author$project$Morphir$Value$Error$NotImplemented); - }), - funs); -}; -var $author$project$Morphir$Value$Native$returnLiteral = F2( - function (toLit, a) { - return $elm$core$Result$Ok( - A2( - $author$project$Morphir$IR$Value$Literal, - _Utils_Tuple0, - toLit(a))); - }); -var $author$project$Morphir$Value$Native$stringLiteral = function (lit) { - if (lit.$ === 'StringLiteral') { - var v = lit.a; - return $elm$core$Result$Ok(v); - } else { - return $elm$core$Result$Err( - $author$project$Morphir$Value$Error$ExpectedBoolLiteral(lit)); - } -}; -var $elm$core$Basics$xor = _Basics_xor; -var $author$project$Morphir$IR$SDK$Basics$nativeFunctions = _List_fromArray( - [ - _Utils_Tuple2( - 'not', - A3( - $author$project$Morphir$Value$Native$eval1, - $elm$core$Basics$not, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$boolLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral))), - _Utils_Tuple2( - 'and', - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$and, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$boolLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$boolLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral))), - _Utils_Tuple2( - 'or', - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$or, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$boolLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$boolLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral))), - _Utils_Tuple2( - 'xor', - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$xor, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$boolLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$boolLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral))), - _Utils_Tuple2( - 'add', - $author$project$Morphir$Value$Native$oneOf( - _List_fromArray( - [ - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$add, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$IntLiteral)), - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$add, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$FloatLiteral)) - ]))), - _Utils_Tuple2( - 'subtract', - $author$project$Morphir$Value$Native$oneOf( - _List_fromArray( - [ - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$sub, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$IntLiteral)), - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$sub, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$FloatLiteral)) - ]))), - _Utils_Tuple2( - 'multiply', - $author$project$Morphir$Value$Native$oneOf( - _List_fromArray( - [ - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$mul, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$IntLiteral)), - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$mul, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$FloatLiteral)) - ]))), - _Utils_Tuple2( - 'divide', - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$fdiv, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$FloatLiteral))), - _Utils_Tuple2( - 'integerDivide', - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$idiv, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$IntLiteral))), - _Utils_Tuple2( - 'equal', - $author$project$Morphir$Value$Native$binaryStrict( - F2( - function (arg1, arg2) { - return $elm$core$Result$Ok( - A2( - $author$project$Morphir$IR$Value$Literal, - _Utils_Tuple0, - $author$project$Morphir$IR$Literal$BoolLiteral( - _Utils_eq(arg1, arg2)))); - }))), - _Utils_Tuple2( - 'notEqual', - $author$project$Morphir$Value$Native$binaryStrict( - F2( - function (arg1, arg2) { - return $elm$core$Result$Ok( - A2( - $author$project$Morphir$IR$Value$Literal, - _Utils_Tuple0, - $author$project$Morphir$IR$Literal$BoolLiteral( - !_Utils_eq(arg1, arg2)))); - }))), - _Utils_Tuple2( - 'lessThan', - $author$project$Morphir$Value$Native$oneOf( - _List_fromArray( - [ - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$lt, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)), - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$lt, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)), - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$lt, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$charLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$charLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)), - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$lt, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$stringLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$stringLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)) - ]))), - _Utils_Tuple2( - 'greaterThan', - $author$project$Morphir$Value$Native$oneOf( - _List_fromArray( - [ - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$gt, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)), - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$gt, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)), - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$gt, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$charLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$charLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)), - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$gt, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$stringLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$stringLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)) - ]))), - _Utils_Tuple2( - 'lessThanOrEqual', - $author$project$Morphir$Value$Native$oneOf( - _List_fromArray( - [ - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$le, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)), - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$le, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)), - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$le, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$charLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$charLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)), - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$le, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$stringLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$stringLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)) - ]))), - _Utils_Tuple2( - 'greaterThanOrEqual', - $author$project$Morphir$Value$Native$oneOf( - _List_fromArray( - [ - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$ge, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)), - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$ge, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)), - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$ge, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$charLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$charLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)), - A4( - $author$project$Morphir$Value$Native$eval2, - $elm$core$Basics$ge, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$stringLiteral), - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$stringLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$BoolLiteral)) - ]))), - _Utils_Tuple2( - 'abs', - $author$project$Morphir$Value$Native$oneOf( - _List_fromArray( - [ - A3( - $author$project$Morphir$Value$Native$eval1, - $elm$core$Basics$abs, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$IntLiteral)), - A3( - $author$project$Morphir$Value$Native$eval1, - $elm$core$Basics$abs, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$FloatLiteral)) - ]))), - _Utils_Tuple2( - 'toFloat', - $author$project$Morphir$Value$Native$oneOf( - _List_fromArray( - [ - A3( - $author$project$Morphir$Value$Native$eval1, - $elm$core$Basics$toFloat, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$FloatLiteral)) - ]))), - _Utils_Tuple2( - 'negate', - $author$project$Morphir$Value$Native$oneOf( - _List_fromArray( - [ - A3( - $author$project$Morphir$Value$Native$eval1, - $elm$core$Basics$negate, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$intLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$IntLiteral)), - A3( - $author$project$Morphir$Value$Native$eval1, - $elm$core$Basics$negate, - $author$project$Morphir$Value$Native$expectLiteral($author$project$Morphir$Value$Native$floatLiteral), - $author$project$Morphir$Value$Native$returnLiteral($author$project$Morphir$IR$Literal$FloatLiteral)) - ]))) - ]); -var $author$project$Morphir$Value$Native$expectFun1 = F2( - function (_eval, fun) { - return $elm$core$Result$Ok( - function (arg) { - return _eval( - A3($author$project$Morphir$IR$Value$Apply, _Utils_Tuple0, fun, arg)); - }); - }); -var $author$project$Morphir$Value$Native$expectList = F2( - function (_eval, value) { - var _v0 = _eval(value); - if (_v0.$ === 'Ok') { - if (_v0.a.$ === 'List') { - var _v1 = _v0.a; - var values = _v1.b; - return $elm$core$Result$Ok(values); - } else { - return $elm$core$Result$Err( - $author$project$Morphir$Value$Error$ExpectedLiteral(value)); - } - } else { - var error = _v0.a; - return $elm$core$Result$Err(error); - } - }); -var $author$project$Morphir$IR$FQName$fqn = F3( - function (packageName, moduleName, localName) { - return A3( - $author$project$Morphir$IR$FQName$fQName, - $author$project$Morphir$IR$Path$fromString(packageName), - $author$project$Morphir$IR$Path$fromString(moduleName), - $author$project$Morphir$IR$Name$fromString(localName)); - }); -var $author$project$Morphir$Value$Native$returnList = function (list) { - return $elm$core$Result$Ok( - A2($author$project$Morphir$IR$Value$List, _Utils_Tuple0, list)); -}; -var $elm$core$List$head = function (list) { - if (list.b) { - var x = list.a; - var xs = list.b; - return $elm$core$Maybe$Just(x); - } else { - return $elm$core$Maybe$Nothing; - } -}; -var $elm$core$Result$toMaybe = function (result) { - if (result.$ === 'Ok') { - var v = result.a; - return $elm$core$Maybe$Just(v); - } else { - return $elm$core$Maybe$Nothing; - } -}; -var $author$project$Morphir$ListOfResults$liftAllErrors = function (results) { - var oks = A2( - $elm$core$List$filterMap, - function (result) { - return $elm$core$Result$toMaybe(result); - }, - results); - var errs = A2( - $elm$core$List$filterMap, - function (result) { - if (result.$ === 'Ok') { - return $elm$core$Maybe$Nothing; - } else { - var e = result.a; - return $elm$core$Maybe$Just(e); - } - }, - results); - if (!errs.b) { - return $elm$core$Result$Ok(oks); - } else { - return $elm$core$Result$Err(errs); - } -}; -var $author$project$Morphir$ListOfResults$liftFirstError = function (results) { - var _v0 = $author$project$Morphir$ListOfResults$liftAllErrors(results); - if (_v0.$ === 'Ok') { - var a = _v0.a; - return $elm$core$Result$Ok(a); - } else { - var errors = _v0.a; - return A2( - $elm$core$Maybe$withDefault, - $elm$core$Result$Ok(_List_Nil), - A2( - $elm$core$Maybe$map, - $elm$core$Result$Err, - $elm$core$List$head(errors))); - } -}; -var $author$project$Morphir$Value$Native$returnResultList = function (listOfValueResults) { - return A2( - $elm$core$Result$map, - $author$project$Morphir$IR$Value$List(_Utils_Tuple0), - $author$project$Morphir$ListOfResults$liftFirstError(listOfValueResults)); -}; -var $author$project$Morphir$Value$Native$unaryLazy = function (f) { - return F2( - function (_eval, args) { - if (args.b && (!args.b.b)) { - var arg = args.a; - return A2(f, _eval, arg); - } else { - return $elm$core$Result$Err( - $author$project$Morphir$Value$Error$UnexpectedArguments(args)); - } - }); -}; -var $author$project$Morphir$Value$Native$unaryStrict = function (f) { - return $author$project$Morphir$Value$Native$unaryLazy( - F2( - function (_eval, arg) { - return A2( - $elm$core$Result$andThen, - f(_eval), - _eval(arg)); - })); -}; -var $author$project$Morphir$IR$SDK$List$nativeFunctions = _List_fromArray( - [ - _Utils_Tuple2( - 'sum', - $author$project$Morphir$Value$Native$unaryStrict( - F2( - function (_eval, arg) { - if (arg.$ === 'List') { - var value = arg.b; - return A3( - $elm$core$List$foldl, - F2( - function (nextElem, resultSoFar) { - return A2( - $elm$core$Result$andThen, - function (resultValue) { - return _eval( - A3( - $author$project$Morphir$IR$Value$Apply, - _Utils_Tuple0, - A3( - $author$project$Morphir$IR$Value$Apply, - _Utils_Tuple0, - A2( - $author$project$Morphir$IR$Value$Reference, - _Utils_Tuple0, - A3($author$project$Morphir$IR$FQName$fqn, 'Morphir.SDK', 'Basics', 'add')), - nextElem), - resultValue)); - }, - resultSoFar); - }), - $elm$core$Result$Ok( - A2( - $author$project$Morphir$IR$Value$Literal, - _Utils_Tuple0, - $author$project$Morphir$IR$Literal$IntLiteral(0))), - value); - } else { - return $elm$core$Result$Err( - $author$project$Morphir$Value$Error$UnexpectedArguments( - _List_fromArray( - [arg]))); - } - }))), - _Utils_Tuple2( - 'map', - A4($author$project$Morphir$Value$Native$eval2, $elm$core$List$map, $author$project$Morphir$Value$Native$expectFun1, $author$project$Morphir$Value$Native$expectList, $author$project$Morphir$Value$Native$returnResultList)), - _Utils_Tuple2( - 'append', - A4($author$project$Morphir$Value$Native$eval2, $elm$core$List$append, $author$project$Morphir$Value$Native$expectList, $author$project$Morphir$Value$Native$expectList, $author$project$Morphir$Value$Native$returnList)) - ]); -var $elm$core$Basics$composeR = F3( - function (f, g, x) { - return g( - f(x)); - }); -var $author$project$Morphir$IR$SDK$String$nativeFunctions = _List_fromArray( - [ - _Utils_Tuple2( - 'concat', - $author$project$Morphir$Value$Native$unaryStrict( - F2( - function (_eval, arg) { - if (arg.$ === 'List') { - var value = arg.b; - return A2( - $elm$core$Result$map, - A2( - $elm$core$Basics$composeR, - $elm$core$String$concat, - A2( - $elm$core$Basics$composeR, - $author$project$Morphir$IR$Literal$StringLiteral, - $author$project$Morphir$IR$Value$Literal(_Utils_Tuple0))), - $author$project$Morphir$ListOfResults$liftFirstError( - A2( - $elm$core$List$map, - function (listItem) { - return A2( - $elm$core$Result$andThen, - function (evaluatedListItem) { - if ((evaluatedListItem.$ === 'Literal') && (evaluatedListItem.b.$ === 'StringLiteral')) { - var argument = evaluatedListItem.b.a; - return $elm$core$Result$Ok(argument); - } else { - return $elm$core$Result$Err( - $author$project$Morphir$Value$Error$UnexpectedArguments( - _List_fromArray( - [arg]))); - } - }, - _eval(listItem)); - }, - value))); - } else { - return $elm$core$Result$Err( - $author$project$Morphir$Value$Error$UnexpectedArguments( - _List_fromArray( - [arg]))); - } - }))) - ]); -var $author$project$Morphir$IR$SDK$packageName = $author$project$Morphir$IR$Path$fromString('Morphir.SDK'); -var $elm$core$Dict$foldl = F3( - function (func, acc, dict) { - foldl: - while (true) { - if (dict.$ === 'RBEmpty_elm_builtin') { - return acc; - } else { - var key = dict.b; - var value = dict.c; - var left = dict.d; - var right = dict.e; - var $temp$func = func, - $temp$acc = A3( - func, - key, - value, - A3($elm$core$Dict$foldl, func, acc, left)), - $temp$dict = right; - func = $temp$func; - acc = $temp$acc; - dict = $temp$dict; - continue foldl; - } - } - }); -var $elm$core$Dict$union = F2( - function (t1, t2) { - return A3($elm$core$Dict$foldl, $elm$core$Dict$insert, t2, t1); - }); -var $author$project$Morphir$IR$SDK$nativeFunctions = function () { - var moduleFunctions = F2( - function (moduleName, functionsByName) { - return $elm$core$Dict$fromList( - A2( - $elm$core$List$map, - function (_v0) { - var localName = _v0.a; - var fun = _v0.b; - return _Utils_Tuple2( - _Utils_Tuple3( - $author$project$Morphir$IR$SDK$packageName, - $author$project$Morphir$IR$Path$fromString(moduleName), - $author$project$Morphir$IR$Name$fromString(localName)), - fun); - }, - functionsByName)); - }); - return A3( - $elm$core$List$foldl, - $elm$core$Dict$union, - $elm$core$Dict$empty, - _List_fromArray( - [ - A2(moduleFunctions, 'Basics', $author$project$Morphir$IR$SDK$Basics$nativeFunctions), - A2(moduleFunctions, 'String', $author$project$Morphir$IR$SDK$String$nativeFunctions), - A2(moduleFunctions, 'List', $author$project$Morphir$IR$SDK$List$nativeFunctions) - ])); -}(); -var $mdgriffith$elm_ui$Internal$Model$PaddingStyle = F5( - function (a, b, c, d, e) { - return {$: 'PaddingStyle', a: a, b: b, c: c, d: d, e: e}; - }); -var $mdgriffith$elm_ui$Internal$Flag$padding = $mdgriffith$elm_ui$Internal$Flag$flag(2); -var $mdgriffith$elm_ui$Element$padding = function (x) { - var f = x; - return A2( - $mdgriffith$elm_ui$Internal$Model$StyleClass, - $mdgriffith$elm_ui$Internal$Flag$padding, - A5( - $mdgriffith$elm_ui$Internal$Model$PaddingStyle, - 'p-' + $elm$core$String$fromInt(x), - f, - f, - f, - f)); -}; -var $mdgriffith$elm_ui$Element$Font$size = function (i) { - return A2( - $mdgriffith$elm_ui$Internal$Model$StyleClass, - $mdgriffith$elm_ui$Internal$Flag$fontSize, - $mdgriffith$elm_ui$Internal$Model$FontSize(i)); -}; -var $elm$core$Basics$pow = _Basics_pow; -var $mdgriffith$elm_ui$Element$modular = F3( - function (normal, ratio, rescale) { - return (!rescale) ? normal : ((rescale < 0) ? (normal * A2($elm$core$Basics$pow, ratio, rescale)) : (normal * A2($elm$core$Basics$pow, ratio, rescale - 1))); - }); -var $author$project$Morphir$Visual$Theme$scaled = F2( - function (scaleValue, theme) { - return $elm$core$Basics$round( - A3($mdgriffith$elm_ui$Element$modular, theme.fontSize, 1.25, scaleValue)); - }); -var $author$project$Morphir$Visual$Theme$smallPadding = function (theme) { - return A2($author$project$Morphir$Visual$Theme$scaled, -3, theme); -}; -var $author$project$Morphir$Visual$Theme$smallSpacing = function (theme) { - return A2($author$project$Morphir$Visual$Theme$scaled, -3, theme); -}; -var $mdgriffith$elm_ui$Internal$Model$SpacingStyle = F3( - function (a, b, c) { - return {$: 'SpacingStyle', a: a, b: b, c: c}; - }); -var $mdgriffith$elm_ui$Internal$Flag$spacing = $mdgriffith$elm_ui$Internal$Flag$flag(3); -var $mdgriffith$elm_ui$Internal$Model$spacingName = F2( - function (x, y) { - return 'spacing-' + ($elm$core$String$fromInt(x) + ('-' + $elm$core$String$fromInt(y))); - }); -var $mdgriffith$elm_ui$Element$spacing = function (x) { - return A2( - $mdgriffith$elm_ui$Internal$Model$StyleClass, - $mdgriffith$elm_ui$Internal$Flag$spacing, - A3( - $mdgriffith$elm_ui$Internal$Model$SpacingStyle, - A2($mdgriffith$elm_ui$Internal$Model$spacingName, x, x), - x, - x)); -}; -var $mdgriffith$elm_ui$Internal$Model$Text = function (a) { - return {$: 'Text', a: a}; -}; -var $mdgriffith$elm_ui$Element$text = function (content) { - return $mdgriffith$elm_ui$Internal$Model$Text(content); -}; -var $mdgriffith$elm_ui$Element$Background$color = function (clr) { - return A2( - $mdgriffith$elm_ui$Internal$Model$StyleClass, - $mdgriffith$elm_ui$Internal$Flag$bgColor, - A3( - $mdgriffith$elm_ui$Internal$Model$Colored, - 'bg-' + $mdgriffith$elm_ui$Internal$Model$formatColorClass(clr), - 'background-color', - clr)); -}; -var $mdgriffith$elm_ui$Element$Font$color = function (fontColor) { - return A2( - $mdgriffith$elm_ui$Internal$Model$StyleClass, - $mdgriffith$elm_ui$Internal$Flag$fontColor, - A3( - $mdgriffith$elm_ui$Internal$Model$Colored, - 'fc-' + $mdgriffith$elm_ui$Internal$Model$formatColorClass(fontColor), - 'color', - fontColor)); -}; -var $mdgriffith$elm_ui$Internal$Model$AsColumn = {$: 'AsColumn'}; -var $mdgriffith$elm_ui$Internal$Model$asColumn = $mdgriffith$elm_ui$Internal$Model$AsColumn; -var $mdgriffith$elm_ui$Internal$Model$Height = function (a) { - return {$: 'Height', a: a}; -}; -var $mdgriffith$elm_ui$Element$height = $mdgriffith$elm_ui$Internal$Model$Height; -var $mdgriffith$elm_ui$Internal$Model$Content = {$: 'Content'}; -var $mdgriffith$elm_ui$Element$shrink = $mdgriffith$elm_ui$Internal$Model$Content; -var $mdgriffith$elm_ui$Internal$Model$Width = function (a) { - return {$: 'Width', a: a}; -}; -var $mdgriffith$elm_ui$Element$width = $mdgriffith$elm_ui$Internal$Model$Width; -var $mdgriffith$elm_ui$Element$column = F2( - function (attrs, children) { - return A4( - $mdgriffith$elm_ui$Internal$Model$element, - $mdgriffith$elm_ui$Internal$Model$asColumn, - $mdgriffith$elm_ui$Internal$Model$div, - A2( - $elm$core$List$cons, - $mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentTop + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.contentLeft)), - A2( - $elm$core$List$cons, - $mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink), - A2( - $elm$core$List$cons, - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink), - attrs))), - $mdgriffith$elm_ui$Internal$Model$Unkeyed(children)); - }); -var $mdgriffith$elm_ui$Element$el = F2( - function (attrs, child) { - return A4( - $mdgriffith$elm_ui$Internal$Model$element, - $mdgriffith$elm_ui$Internal$Model$asEl, - $mdgriffith$elm_ui$Internal$Model$div, - A2( - $elm$core$List$cons, - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink), - A2( - $elm$core$List$cons, - $mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink), - attrs)), - $mdgriffith$elm_ui$Internal$Model$Unkeyed( - _List_fromArray( - [child]))); - }); -var $author$project$Morphir$Visual$Theme$mediumPadding = function (theme) { - return A2($author$project$Morphir$Visual$Theme$scaled, 0, theme); -}; -var $author$project$Morphir$Visual$Theme$mediumSpacing = function (theme) { - return A2($author$project$Morphir$Visual$Theme$scaled, 0, theme); -}; -var $mdgriffith$elm_ui$Internal$Model$paddingName = F4( - function (top, right, bottom, left) { - return 'pad-' + ($elm$core$String$fromInt(top) + ('-' + ($elm$core$String$fromInt(right) + ('-' + ($elm$core$String$fromInt(bottom) + ('-' + $elm$core$String$fromInt(left))))))); - }); -var $mdgriffith$elm_ui$Element$paddingEach = function (_v0) { - var top = _v0.top; - var right = _v0.right; - var bottom = _v0.bottom; - var left = _v0.left; - if (_Utils_eq(top, right) && (_Utils_eq(top, bottom) && _Utils_eq(top, left))) { - var topFloat = top; - return A2( - $mdgriffith$elm_ui$Internal$Model$StyleClass, - $mdgriffith$elm_ui$Internal$Flag$padding, - A5( - $mdgriffith$elm_ui$Internal$Model$PaddingStyle, - 'p-' + $elm$core$String$fromInt(top), - topFloat, - topFloat, - topFloat, - topFloat)); - } else { - return A2( - $mdgriffith$elm_ui$Internal$Model$StyleClass, - $mdgriffith$elm_ui$Internal$Flag$padding, - A5( - $mdgriffith$elm_ui$Internal$Model$PaddingStyle, - A4($mdgriffith$elm_ui$Internal$Model$paddingName, top, right, bottom, left), - top, - right, - bottom, - left)); - } -}; -var $mdgriffith$elm_ui$Internal$Model$AsRow = {$: 'AsRow'}; -var $mdgriffith$elm_ui$Internal$Model$asRow = $mdgriffith$elm_ui$Internal$Model$AsRow; -var $mdgriffith$elm_ui$Element$row = F2( - function (attrs, children) { - return A4( - $mdgriffith$elm_ui$Internal$Model$element, - $mdgriffith$elm_ui$Internal$Model$asRow, - $mdgriffith$elm_ui$Internal$Model$div, - A2( - $elm$core$List$cons, - $mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentLeft + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.contentCenterY)), - A2( - $elm$core$List$cons, - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink), - A2( - $elm$core$List$cons, - $mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink), - attrs))), - $mdgriffith$elm_ui$Internal$Model$Unkeyed(children)); - }); -var $author$project$Morphir$Visual$Common$definition = F3( - function (config, header, body) { - return A2( - $mdgriffith$elm_ui$Element$column, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme)) - ]), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme)) - ]), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [$mdgriffith$elm_ui$Element$Font$bold]), - $mdgriffith$elm_ui$Element$text(header)), - A2( - $mdgriffith$elm_ui$Element$el, - _List_Nil, - $mdgriffith$elm_ui$Element$text('=')) - ])), - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$paddingEach( - { - bottom: 0, - left: $author$project$Morphir$Visual$Theme$mediumPadding(config.state.theme), - right: $author$project$Morphir$Visual$Theme$mediumPadding(config.state.theme), - top: 0 - }) - ]), - body) - ])); - }); -var $elm$core$Dict$isEmpty = function (dict) { - if (dict.$ === 'RBEmpty_elm_builtin') { - return true; - } else { - return false; - } -}; -var $elm$core$Debug$log = _Debug_log; -var $elm$core$String$toUpper = _String_toUpper; -var $author$project$Morphir$IR$Name$toHumanWords = function (name) { - var words = $author$project$Morphir$IR$Name$toList(name); - var join = function (abbrev) { - return $elm$core$String$toUpper( - A2($elm$core$String$join, '', abbrev)); - }; - var process = F3( - function (prefix, abbrev, suffix) { - process: - while (true) { - if (!suffix.b) { - return $elm$core$List$isEmpty(abbrev) ? prefix : A2( - $elm$core$List$append, - prefix, - _List_fromArray( - [ - join(abbrev) - ])); - } else { - var first = suffix.a; - var rest = suffix.b; - if ($elm$core$String$length(first) === 1) { - var $temp$prefix = prefix, - $temp$abbrev = A2( - $elm$core$List$append, - abbrev, - _List_fromArray( - [first])), - $temp$suffix = rest; - prefix = $temp$prefix; - abbrev = $temp$abbrev; - suffix = $temp$suffix; - continue process; - } else { - if (!abbrev.b) { - var $temp$prefix = A2( - $elm$core$List$append, - prefix, - _List_fromArray( - [first])), - $temp$abbrev = _List_Nil, - $temp$suffix = rest; - prefix = $temp$prefix; - abbrev = $temp$abbrev; - suffix = $temp$suffix; - continue process; - } else { - var $temp$prefix = A2( - $elm$core$List$append, - prefix, - _List_fromArray( - [ - join(abbrev), - first - ])), - $temp$abbrev = _List_Nil, - $temp$suffix = rest; - prefix = $temp$prefix; - abbrev = $temp$abbrev; - suffix = $temp$suffix; - continue process; - } - } - } - } - }); - return A3(process, _List_Nil, _List_Nil, words); -}; -var $author$project$Morphir$Visual$Common$nameToText = function (name) { - return A2( - $elm$core$String$join, - ' ', - $author$project$Morphir$IR$Name$toHumanWords(name)); -}; -var $mdgriffith$elm_ui$Internal$Model$Empty = {$: 'Empty'}; -var $mdgriffith$elm_ui$Element$none = $mdgriffith$elm_ui$Internal$Model$Empty; -var $elm$core$Basics$composeL = F3( - function (g, f, x) { - return g( - f(x)); - }); -var $elm$virtual_dom$VirtualDom$Normal = function (a) { - return {$: 'Normal', a: a}; -}; -var $elm$virtual_dom$VirtualDom$on = _VirtualDom_on; -var $elm$html$Html$Events$on = F2( - function (event, decoder) { - return A2( - $elm$virtual_dom$VirtualDom$on, - event, - $elm$virtual_dom$VirtualDom$Normal(decoder)); - }); -var $elm$html$Html$Events$onClick = function (msg) { - return A2( - $elm$html$Html$Events$on, - 'click', - $elm$json$Json$Decode$succeed(msg)); -}; -var $mdgriffith$elm_ui$Element$Events$onClick = A2($elm$core$Basics$composeL, $mdgriffith$elm_ui$Internal$Model$Attr, $elm$html$Html$Events$onClick); -var $mdgriffith$elm_ui$Internal$Flag$borderRound = $mdgriffith$elm_ui$Internal$Flag$flag(17); -var $mdgriffith$elm_ui$Element$Border$rounded = function (radius) { - return A2( - $mdgriffith$elm_ui$Internal$Model$StyleClass, - $mdgriffith$elm_ui$Internal$Flag$borderRound, - A3( - $mdgriffith$elm_ui$Internal$Model$Single, - 'br-' + $elm$core$String$fromInt(radius), - 'border-radius', - $elm$core$String$fromInt(radius) + 'px')); -}; -var $mdgriffith$elm_ui$Internal$Flag$borderStyle = $mdgriffith$elm_ui$Internal$Flag$flag(11); -var $mdgriffith$elm_ui$Element$Border$solid = A2($mdgriffith$elm_ui$Internal$Model$Class, $mdgriffith$elm_ui$Internal$Flag$borderStyle, $mdgriffith$elm_ui$Internal$Style$classes.borderSolid); -var $author$project$Morphir$IR$Value$indexedMapListHelp = F3( - function (f, baseIndex, elemList) { - return A3( - $elm$core$List$foldl, - F2( - function (nextElem, _v0) { - var elemsSoFar = _v0.a; - var lastIndexSoFar = _v0.b; - var _v1 = A2(f, lastIndexSoFar + 1, nextElem); - var mappedElem = _v1.a; - var lastIndex = _v1.b; - return _Utils_Tuple2( - A2( - $elm$core$List$append, - elemsSoFar, - _List_fromArray( - [mappedElem])), - lastIndex); - }), - _Utils_Tuple2(_List_Nil, baseIndex), - elemList); - }); -var $author$project$Morphir$IR$Value$indexedMapPattern = F3( - function (f, baseIndex, pattern) { - switch (pattern.$) { - case 'WildcardPattern': - var a = pattern.a; - return _Utils_Tuple2( - $author$project$Morphir$IR$Value$WildcardPattern( - A2(f, baseIndex, a)), - baseIndex); - case 'AsPattern': - var a = pattern.a; - var aliasedPattern = pattern.b; - var alias = pattern.c; - var _v1 = A3($author$project$Morphir$IR$Value$indexedMapPattern, f, baseIndex + 1, aliasedPattern); - var mappedAliasedPattern = _v1.a; - var lastIndex = _v1.b; - return _Utils_Tuple2( - A3( - $author$project$Morphir$IR$Value$AsPattern, - A2(f, baseIndex, a), - mappedAliasedPattern, - alias), - lastIndex); - case 'TuplePattern': - var a = pattern.a; - var elemPatterns = pattern.b; - var _v2 = A3( - $author$project$Morphir$IR$Value$indexedMapListHelp, - $author$project$Morphir$IR$Value$indexedMapPattern(f), - baseIndex, - elemPatterns); - var mappedElemPatterns = _v2.a; - var elemsLastIndex = _v2.b; - return _Utils_Tuple2( - A2( - $author$project$Morphir$IR$Value$TuplePattern, - A2(f, baseIndex, a), - mappedElemPatterns), - elemsLastIndex); - case 'ConstructorPattern': - var a = pattern.a; - var fQName = pattern.b; - var argPatterns = pattern.c; - var _v3 = A3( - $author$project$Morphir$IR$Value$indexedMapListHelp, - $author$project$Morphir$IR$Value$indexedMapPattern(f), - baseIndex, - argPatterns); - var mappedArgPatterns = _v3.a; - var argPatternsLastIndex = _v3.b; - return _Utils_Tuple2( - A3( - $author$project$Morphir$IR$Value$ConstructorPattern, - A2(f, baseIndex, a), - fQName, - mappedArgPatterns), - argPatternsLastIndex); - case 'EmptyListPattern': - var a = pattern.a; - return _Utils_Tuple2( - $author$project$Morphir$IR$Value$EmptyListPattern( - A2(f, baseIndex, a)), - baseIndex); - case 'HeadTailPattern': - var a = pattern.a; - var headPattern = pattern.b; - var tailPattern = pattern.c; - var _v4 = A3($author$project$Morphir$IR$Value$indexedMapPattern, f, baseIndex + 1, headPattern); - var mappedHeadPattern = _v4.a; - var lastIndexHeadPattern = _v4.b; - var _v5 = A3($author$project$Morphir$IR$Value$indexedMapPattern, f, lastIndexHeadPattern + 1, tailPattern); - var mappedTailPattern = _v5.a; - var lastIndexTailPattern = _v5.b; - return _Utils_Tuple2( - A3( - $author$project$Morphir$IR$Value$HeadTailPattern, - A2(f, baseIndex, a), - mappedHeadPattern, - mappedTailPattern), - lastIndexTailPattern); - case 'LiteralPattern': - var a = pattern.a; - var lit = pattern.b; - return _Utils_Tuple2( - A2( - $author$project$Morphir$IR$Value$LiteralPattern, - A2(f, baseIndex, a), - lit), - baseIndex); - default: - var a = pattern.a; - return _Utils_Tuple2( - $author$project$Morphir$IR$Value$UnitPattern( - A2(f, baseIndex, a)), - baseIndex); - } - }); -var $author$project$Morphir$IR$Value$indexedMapValue = F3( - function (f, baseIndex, value) { - switch (value.$) { - case 'Literal': - var a = value.a; - var lit = value.b; - return _Utils_Tuple2( - A2( - $author$project$Morphir$IR$Value$Literal, - A2(f, baseIndex, a), - lit), - baseIndex); - case 'Constructor': - var a = value.a; - var fullyQualifiedName = value.b; - return _Utils_Tuple2( - A2( - $author$project$Morphir$IR$Value$Constructor, - A2(f, baseIndex, a), - fullyQualifiedName), - baseIndex); - case 'Tuple': - var a = value.a; - var elems = value.b; - var _v1 = A3( - $author$project$Morphir$IR$Value$indexedMapListHelp, - $author$project$Morphir$IR$Value$indexedMapValue(f), - baseIndex, - elems); - var mappedElems = _v1.a; - var elemsLastIndex = _v1.b; - return _Utils_Tuple2( - A2( - $author$project$Morphir$IR$Value$Tuple, - A2(f, baseIndex, a), - mappedElems), - elemsLastIndex); - case 'List': - var a = value.a; - var values = value.b; - var _v2 = A3( - $author$project$Morphir$IR$Value$indexedMapListHelp, - $author$project$Morphir$IR$Value$indexedMapValue(f), - baseIndex, - values); - var mappedValues = _v2.a; - var valuesLastIndex = _v2.b; - return _Utils_Tuple2( - A2( - $author$project$Morphir$IR$Value$List, - A2(f, baseIndex, a), - mappedValues), - valuesLastIndex); - case 'Record': - var a = value.a; - var fields = value.b; - var _v3 = A3( - $author$project$Morphir$IR$Value$indexedMapListHelp, - F2( - function (fieldBaseIndex, _v4) { - var fieldName = _v4.a; - var fieldValue = _v4.b; - var _v5 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, fieldBaseIndex, fieldValue); - var mappedFieldValue = _v5.a; - var lastFieldIndex = _v5.b; - return _Utils_Tuple2( - _Utils_Tuple2(fieldName, mappedFieldValue), - lastFieldIndex); - }), - baseIndex, - fields); - var mappedFields = _v3.a; - var valuesLastIndex = _v3.b; - return _Utils_Tuple2( - A2( - $author$project$Morphir$IR$Value$Record, - A2(f, baseIndex, a), - mappedFields), - valuesLastIndex); - case 'Variable': - var a = value.a; - var name = value.b; - return _Utils_Tuple2( - A2( - $author$project$Morphir$IR$Value$Variable, - A2(f, baseIndex, a), - name), - baseIndex); - case 'Reference': - var a = value.a; - var fQName = value.b; - return _Utils_Tuple2( - A2( - $author$project$Morphir$IR$Value$Reference, - A2(f, baseIndex, a), - fQName), - baseIndex); - case 'Field': - var a = value.a; - var subjectValue = value.b; - var name = value.c; - var _v6 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, baseIndex + 1, subjectValue); - var mappedSubjectValue = _v6.a; - var subjectValueLastIndex = _v6.b; - return _Utils_Tuple2( - A3( - $author$project$Morphir$IR$Value$Field, - A2(f, baseIndex, a), - mappedSubjectValue, - name), - subjectValueLastIndex); - case 'FieldFunction': - var a = value.a; - var name = value.b; - return _Utils_Tuple2( - A2( - $author$project$Morphir$IR$Value$FieldFunction, - A2(f, baseIndex, a), - name), - baseIndex); - case 'Apply': - var a = value.a; - var funValue = value.b; - var argValue = value.c; - var _v7 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, baseIndex + 1, funValue); - var mappedFunValue = _v7.a; - var funValueLastIndex = _v7.b; - var _v8 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, funValueLastIndex + 1, argValue); - var mappedArgValue = _v8.a; - var argValueLastIndex = _v8.b; - return _Utils_Tuple2( - A3( - $author$project$Morphir$IR$Value$Apply, - A2(f, baseIndex, a), - mappedFunValue, - mappedArgValue), - argValueLastIndex); - case 'Lambda': - var a = value.a; - var argPattern = value.b; - var bodyValue = value.c; - var _v9 = A3($author$project$Morphir$IR$Value$indexedMapPattern, f, baseIndex + 1, argPattern); - var mappedArgPattern = _v9.a; - var argPatternLastIndex = _v9.b; - var _v10 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, argPatternLastIndex + 1, bodyValue); - var mappedBodyValue = _v10.a; - var bodyValueLastIndex = _v10.b; - return _Utils_Tuple2( - A3( - $author$project$Morphir$IR$Value$Lambda, - A2(f, baseIndex, a), - mappedArgPattern, - mappedBodyValue), - bodyValueLastIndex); - case 'LetDefinition': - var a = value.a; - var defName = value.b; - var def = value.c; - var inValue = value.d; - var _v11 = A3( - $author$project$Morphir$IR$Value$indexedMapListHelp, - F2( - function (inputBaseIndex, _v12) { - var inputName = _v12.a; - var inputA = _v12.b; - var inputType = _v12.c; - return _Utils_Tuple2( - _Utils_Tuple3( - inputName, - A2(f, inputBaseIndex, inputA), - inputType), - inputBaseIndex); - }), - baseIndex, - def.inputTypes); - var mappedDefArgs = _v11.a; - var defArgsLastIndex = _v11.b; - var _v13 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, defArgsLastIndex + 1, def.body); - var mappedDefBody = _v13.a; - var defBodyLastIndex = _v13.b; - var _v14 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, defBodyLastIndex + 1, inValue); - var mappedInValue = _v14.a; - var inValueLastIndex = _v14.b; - var mappedDef = {body: mappedDefBody, inputTypes: mappedDefArgs, outputType: def.outputType}; - return _Utils_Tuple2( - A4( - $author$project$Morphir$IR$Value$LetDefinition, - A2(f, baseIndex, a), - defName, - mappedDef, - mappedInValue), - inValueLastIndex); - case 'LetRecursion': - var a = value.a; - var defs = value.b; - var inValue = value.c; - var _v15 = $elm$core$Dict$isEmpty(defs) ? _Utils_Tuple2(_List_Nil, baseIndex) : A3( - $author$project$Morphir$IR$Value$indexedMapListHelp, - F2( - function (defBaseIndex, _v16) { - var defName = _v16.a; - var def = _v16.b; - var _v17 = A3( - $author$project$Morphir$IR$Value$indexedMapListHelp, - F2( - function (inputBaseIndex, _v18) { - var inputName = _v18.a; - var inputA = _v18.b; - var inputType = _v18.c; - return _Utils_Tuple2( - _Utils_Tuple3( - inputName, - A2(f, inputBaseIndex, inputA), - inputType), - inputBaseIndex); - }), - defBaseIndex - 1, - def.inputTypes); - var mappedDefArgs = _v17.a; - var defArgsLastIndex = _v17.b; - var _v19 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, defArgsLastIndex + 1, def.body); - var mappedDefBody = _v19.a; - var defBodyLastIndex = _v19.b; - var mappedDef = {body: mappedDefBody, inputTypes: mappedDefArgs, outputType: def.outputType}; - return _Utils_Tuple2( - _Utils_Tuple2(defName, mappedDef), - defBodyLastIndex); - }), - baseIndex, - $elm$core$Dict$toList(defs)); - var mappedDefs = _v15.a; - var defsLastIndex = _v15.b; - var _v20 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, defsLastIndex + 1, inValue); - var mappedInValue = _v20.a; - var inValueLastIndex = _v20.b; - return _Utils_Tuple2( - A3( - $author$project$Morphir$IR$Value$LetRecursion, - A2(f, baseIndex, a), - $elm$core$Dict$fromList(mappedDefs), - mappedInValue), - inValueLastIndex); - case 'Destructure': - var a = value.a; - var bindPattern = value.b; - var bindValue = value.c; - var inValue = value.d; - var _v21 = A3($author$project$Morphir$IR$Value$indexedMapPattern, f, baseIndex + 1, bindPattern); - var mappedBindPattern = _v21.a; - var bindPatternLastIndex = _v21.b; - var _v22 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, bindPatternLastIndex + 1, bindValue); - var mappedBindValue = _v22.a; - var bindValueLastIndex = _v22.b; - var _v23 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, bindValueLastIndex + 1, inValue); - var mappedInValue = _v23.a; - var inValueLastIndex = _v23.b; - return _Utils_Tuple2( - A4( - $author$project$Morphir$IR$Value$Destructure, - A2(f, baseIndex, a), - mappedBindPattern, - mappedBindValue, - mappedInValue), - inValueLastIndex); - case 'IfThenElse': - var a = value.a; - var condValue = value.b; - var thenValue = value.c; - var elseValue = value.d; - var _v24 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, baseIndex + 1, condValue); - var mappedCondValue = _v24.a; - var condValueLastIndex = _v24.b; - var _v25 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, condValueLastIndex + 1, thenValue); - var mappedThenValue = _v25.a; - var thenValueLastIndex = _v25.b; - var _v26 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, thenValueLastIndex + 1, elseValue); - var mappedElseValue = _v26.a; - var elseValueLastIndex = _v26.b; - return _Utils_Tuple2( - A4( - $author$project$Morphir$IR$Value$IfThenElse, - A2(f, baseIndex, a), - mappedCondValue, - mappedThenValue, - mappedElseValue), - elseValueLastIndex); - case 'PatternMatch': - var a = value.a; - var subjectValue = value.b; - var cases = value.c; - var _v27 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, baseIndex + 1, subjectValue); - var mappedSubjectValue = _v27.a; - var subjectValueLastIndex = _v27.b; - var _v28 = A3( - $author$project$Morphir$IR$Value$indexedMapListHelp, - F2( - function (fieldBaseIndex, _v29) { - var casePattern = _v29.a; - var caseBody = _v29.b; - var _v30 = A3($author$project$Morphir$IR$Value$indexedMapPattern, f, fieldBaseIndex, casePattern); - var mappedCasePattern = _v30.a; - var casePatternLastIndex = _v30.b; - var _v31 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, casePatternLastIndex + 1, caseBody); - var mappedCaseBody = _v31.a; - var caseBodyLastIndex = _v31.b; - return _Utils_Tuple2( - _Utils_Tuple2(mappedCasePattern, mappedCaseBody), - caseBodyLastIndex); - }), - subjectValueLastIndex + 1, - cases); - var mappedCases = _v28.a; - var casesLastIndex = _v28.b; - return _Utils_Tuple2( - A3( - $author$project$Morphir$IR$Value$PatternMatch, - A2(f, baseIndex, a), - mappedSubjectValue, - mappedCases), - casesLastIndex); - case 'UpdateRecord': - var a = value.a; - var subjectValue = value.b; - var fields = value.c; - var _v32 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, baseIndex + 1, subjectValue); - var mappedSubjectValue = _v32.a; - var subjectValueLastIndex = _v32.b; - var _v33 = A3( - $author$project$Morphir$IR$Value$indexedMapListHelp, - F2( - function (fieldBaseIndex, _v34) { - var fieldName = _v34.a; - var fieldValue = _v34.b; - var _v35 = A3($author$project$Morphir$IR$Value$indexedMapValue, f, fieldBaseIndex, fieldValue); - var mappedFieldValue = _v35.a; - var lastFieldIndex = _v35.b; - return _Utils_Tuple2( - _Utils_Tuple2(fieldName, mappedFieldValue), - lastFieldIndex); - }), - subjectValueLastIndex + 1, - fields); - var mappedFields = _v33.a; - var valuesLastIndex = _v33.b; - return _Utils_Tuple2( - A3( - $author$project$Morphir$IR$Value$UpdateRecord, - A2(f, baseIndex, a), - mappedSubjectValue, - mappedFields), - valuesLastIndex); - default: - var a = value.a; - return _Utils_Tuple2( - $author$project$Morphir$IR$Value$Unit( - A2(f, baseIndex, a)), - baseIndex); - } - }); -var $author$project$Morphir$Visual$VisualTypedValue$typedToVisualTypedValue = function (typedValue) { - return A3($author$project$Morphir$IR$Value$indexedMapValue, $elm$core$Tuple$pair, 0, typedValue).a; -}; -var $elm$core$Basics$always = F2( - function (a, _v0) { - return a; - }); -var $mdgriffith$elm_ui$Internal$Model$Below = {$: 'Below'}; -var $mdgriffith$elm_ui$Internal$Model$Nearby = F2( - function (a, b) { - return {$: 'Nearby', a: a, b: b}; - }); -var $mdgriffith$elm_ui$Internal$Model$NoAttribute = {$: 'NoAttribute'}; -var $mdgriffith$elm_ui$Element$createNearby = F2( - function (loc, element) { - if (element.$ === 'Empty') { - return $mdgriffith$elm_ui$Internal$Model$NoAttribute; - } else { - return A2($mdgriffith$elm_ui$Internal$Model$Nearby, loc, element); - } - }); -var $mdgriffith$elm_ui$Element$below = function (element) { - return A2($mdgriffith$elm_ui$Element$createNearby, $mdgriffith$elm_ui$Internal$Model$Below, element); -}; -var $author$project$Morphir$IR$SDK$Basics$moduleName = $author$project$Morphir$IR$Path$fromString('Basics'); -var $author$project$Morphir$IR$SDK$Basics$boolType = function (attributes) { - return A3( - $author$project$Morphir$IR$Type$Reference, - attributes, - A2($author$project$Morphir$IR$SDK$Common$toFQName, $author$project$Morphir$IR$SDK$Basics$moduleName, 'Bool'), - _List_Nil); -}; -var $mdgriffith$elm_ui$Internal$Flag$fontAlignment = $mdgriffith$elm_ui$Internal$Flag$flag(12); -var $mdgriffith$elm_ui$Element$Font$center = A2($mdgriffith$elm_ui$Internal$Model$Class, $mdgriffith$elm_ui$Internal$Flag$fontAlignment, $mdgriffith$elm_ui$Internal$Style$classes.textCenter); -var $author$project$Morphir$IR$Value$definitionToValue = function (def) { - var _v0 = def.inputTypes; - if (!_v0.b) { - return def.body; - } else { - var _v1 = _v0.a; - var firstArgName = _v1.a; - var restOfArgs = _v0.b; - return A3( - $author$project$Morphir$IR$Value$Lambda, - _Utils_Tuple0, - A3( - $author$project$Morphir$IR$Value$AsPattern, - _Utils_Tuple0, - $author$project$Morphir$IR$Value$WildcardPattern(_Utils_Tuple0), - firstArgName), - $author$project$Morphir$IR$Value$definitionToValue( - _Utils_update( - def, - {inputTypes: restOfArgs}))); - } -}; -var $author$project$Morphir$Value$Error$BindPatternDidNotMatch = F2( - function (a, b) { - return {$: 'BindPatternDidNotMatch', a: a, b: b}; - }); -var $author$project$Morphir$Value$Error$ErrorWhileEvaluatingReference = F2( - function (a, b) { - return {$: 'ErrorWhileEvaluatingReference', a: a, b: b}; - }); -var $author$project$Morphir$Value$Error$ErrorWhileEvaluatingVariable = F2( - function (a, b) { - return {$: 'ErrorWhileEvaluatingVariable', a: a, b: b}; - }); -var $author$project$Morphir$Value$Error$ExactlyOneArgumentExpected = function (a) { - return {$: 'ExactlyOneArgumentExpected', a: a}; -}; -var $author$project$Morphir$Value$Error$FieldNotFound = F2( - function (a, b) { - return {$: 'FieldNotFound', a: a, b: b}; - }); -var $author$project$Morphir$Value$Error$IfThenElseConditionShouldEvaluateToBool = F2( - function (a, b) { - return {$: 'IfThenElseConditionShouldEvaluateToBool', a: a, b: b}; - }); -var $author$project$Morphir$Value$Error$LambdaArgumentDidNotMatch = function (a) { - return {$: 'LambdaArgumentDidNotMatch', a: a}; -}; -var $author$project$Morphir$Value$Error$NoArgumentToPassToLambda = {$: 'NoArgumentToPassToLambda'}; -var $author$project$Morphir$Value$Error$NoPatternsMatch = F2( - function (a, b) { - return {$: 'NoPatternsMatch', a: a, b: b}; - }); -var $author$project$Morphir$Value$Error$RecordExpected = F2( - function (a, b) { - return {$: 'RecordExpected', a: a, b: b}; - }); -var $author$project$Morphir$Value$Error$ReferenceNotFound = function (a) { - return {$: 'ReferenceNotFound', a: a}; -}; -var $author$project$Morphir$Value$Error$VariableNotFound = function (a) { - return {$: 'VariableNotFound', a: a}; -}; -var $author$project$Morphir$IR$lookupValueDefinition = F2( - function (fqn, ir) { - return A2($elm$core$Dict$get, fqn, ir.valueDefinitions); - }); -var $elm$core$Dict$map = F2( - function (func, dict) { - if (dict.$ === 'RBEmpty_elm_builtin') { - return $elm$core$Dict$RBEmpty_elm_builtin; - } else { - var color = dict.a; - var key = dict.b; - var value = dict.c; - var left = dict.d; - var right = dict.e; - return A5( - $elm$core$Dict$RBNode_elm_builtin, - color, - key, - A2(func, key, value), - A2($elm$core$Dict$map, func, left), - A2($elm$core$Dict$map, func, right)); - } - }); -var $author$project$Morphir$Value$Error$PatternMismatch = F2( - function (a, b) { - return {$: 'PatternMismatch', a: a, b: b}; - }); -var $author$project$Morphir$Value$Interpreter$matchPattern = F2( - function (pattern, value) { - var error = $elm$core$Result$Err( - A2($author$project$Morphir$Value$Error$PatternMismatch, pattern, value)); - switch (pattern.$) { - case 'WildcardPattern': - return $elm$core$Result$Ok($elm$core$Dict$empty); - case 'AsPattern': - var subjectPattern = pattern.b; - var alias = pattern.c; - return A2( - $elm$core$Result$map, - function (subjectVariables) { - return A3($elm$core$Dict$insert, alias, value, subjectVariables); - }, - A2($author$project$Morphir$Value$Interpreter$matchPattern, subjectPattern, value)); - case 'TuplePattern': - var elemPatterns = pattern.b; - if (value.$ === 'Tuple') { - var elemValues = value.b; - var valueLength = $elm$core$List$length(elemValues); - var patternLength = $elm$core$List$length(elemPatterns); - return _Utils_eq(patternLength, valueLength) ? A2( - $elm$core$Result$map, - A2($elm$core$List$foldl, $elm$core$Dict$union, $elm$core$Dict$empty), - $author$project$Morphir$ListOfResults$liftFirstError( - A3($elm$core$List$map2, $author$project$Morphir$Value$Interpreter$matchPattern, elemPatterns, elemValues))) : error; - } else { - return error; - } - case 'ConstructorPattern': - var ctorPatternFQName = pattern.b; - var argPatterns = pattern.c; - var uncurry = function (v) { - if (v.$ === 'Apply') { - var f = v.b; - var a = v.c; - var _v3 = uncurry(f); - var nestedV = _v3.a; - var nestedArgs = _v3.b; - return _Utils_Tuple2( - nestedV, - _Utils_ap( - nestedArgs, - _List_fromArray( - [a]))); - } else { - return _Utils_Tuple2(v, _List_Nil); - } - }; - var _v4 = uncurry(value); - var ctorValue = _v4.a; - var argValues = _v4.b; - if (ctorValue.$ === 'Constructor') { - var ctorFQName = ctorValue.b; - if (_Utils_eq(ctorPatternFQName, ctorFQName)) { - var valueLength = $elm$core$List$length(argValues); - var patternLength = $elm$core$List$length(argPatterns); - return _Utils_eq(patternLength, valueLength) ? A2( - $elm$core$Result$map, - A2($elm$core$List$foldl, $elm$core$Dict$union, $elm$core$Dict$empty), - $author$project$Morphir$ListOfResults$liftFirstError( - A3($elm$core$List$map2, $author$project$Morphir$Value$Interpreter$matchPattern, argPatterns, argValues))) : error; - } else { - return error; - } - } else { - return error; - } - case 'EmptyListPattern': - if ((value.$ === 'List') && (!value.b.b)) { - return $elm$core$Result$Ok($elm$core$Dict$empty); - } else { - return error; - } - case 'HeadTailPattern': - var headPattern = pattern.b; - var tailPattern = pattern.c; - if ((value.$ === 'List') && value.b.b) { - var a = value.a; - var _v8 = value.b; - var headValue = _v8.a; - var tailValue = _v8.b; - return A3( - $elm$core$Result$map2, - $elm$core$Dict$union, - A2($author$project$Morphir$Value$Interpreter$matchPattern, headPattern, headValue), - A2( - $author$project$Morphir$Value$Interpreter$matchPattern, - tailPattern, - A2($author$project$Morphir$IR$Value$List, a, tailValue))); - } else { - return error; - } - case 'LiteralPattern': - var matchLiteral = pattern.b; - if (value.$ === 'Literal') { - var valueLiteral = value.b; - return _Utils_eq(matchLiteral, valueLiteral) ? $elm$core$Result$Ok($elm$core$Dict$empty) : error; - } else { - return error; - } - default: - if (value.$ === 'Unit') { - return $elm$core$Result$Ok($elm$core$Dict$empty); - } else { - return error; - } - } - }); -var $author$project$Morphir$IR$resolveAliases = F2( - function (fQName, ir) { - return A2( - $elm$core$Maybe$withDefault, - fQName, - A2( - $elm$core$Maybe$map, - function (typeSpec) { - if ((typeSpec.$ === 'TypeAliasSpecification') && (typeSpec.b.$ === 'Reference')) { - var _v1 = typeSpec.b; - var aliasFQName = _v1.b; - return aliasFQName; - } else { - return fQName; - } - }, - A2($author$project$Morphir$IR$lookupTypeSpecification, fQName, ir))); - }); -var $author$project$Morphir$IR$Value$mapPatternAttributes = F2( - function (f, p) { - switch (p.$) { - case 'WildcardPattern': - var a = p.a; - return $author$project$Morphir$IR$Value$WildcardPattern( - f(a)); - case 'AsPattern': - var a = p.a; - var p2 = p.b; - var name = p.c; - return A3( - $author$project$Morphir$IR$Value$AsPattern, - f(a), - A2($author$project$Morphir$IR$Value$mapPatternAttributes, f, p2), - name); - case 'TuplePattern': - var a = p.a; - var elementPatterns = p.b; - return A2( - $author$project$Morphir$IR$Value$TuplePattern, - f(a), - A2( - $elm$core$List$map, - $author$project$Morphir$IR$Value$mapPatternAttributes(f), - elementPatterns)); - case 'ConstructorPattern': - var a = p.a; - var constructorName = p.b; - var argumentPatterns = p.c; - return A3( - $author$project$Morphir$IR$Value$ConstructorPattern, - f(a), - constructorName, - A2( - $elm$core$List$map, - $author$project$Morphir$IR$Value$mapPatternAttributes(f), - argumentPatterns)); - case 'EmptyListPattern': - var a = p.a; - return $author$project$Morphir$IR$Value$EmptyListPattern( - f(a)); - case 'HeadTailPattern': - var a = p.a; - var headPattern = p.b; - var tailPattern = p.c; - return A3( - $author$project$Morphir$IR$Value$HeadTailPattern, - f(a), - A2($author$project$Morphir$IR$Value$mapPatternAttributes, f, headPattern), - A2($author$project$Morphir$IR$Value$mapPatternAttributes, f, tailPattern)); - case 'LiteralPattern': - var a = p.a; - var value = p.b; - return A2( - $author$project$Morphir$IR$Value$LiteralPattern, - f(a), - value); - default: - var a = p.a; - return $author$project$Morphir$IR$Value$UnitPattern( - f(a)); - } - }); -var $author$project$Morphir$IR$Type$mapFieldType = F2( - function (f, field) { - return A2( - $author$project$Morphir$IR$Type$Field, - field.name, - f(field.tpe)); - }); -var $author$project$Morphir$IR$Type$mapTypeAttributes = F2( - function (f, tpe) { - switch (tpe.$) { - case 'Variable': - var a = tpe.a; - var name = tpe.b; - return A2( - $author$project$Morphir$IR$Type$Variable, - f(a), - name); - case 'Reference': - var a = tpe.a; - var fQName = tpe.b; - var argTypes = tpe.c; - return A3( - $author$project$Morphir$IR$Type$Reference, - f(a), - fQName, - A2( - $elm$core$List$map, - $author$project$Morphir$IR$Type$mapTypeAttributes(f), - argTypes)); - case 'Tuple': - var a = tpe.a; - var elemTypes = tpe.b; - return A2( - $author$project$Morphir$IR$Type$Tuple, - f(a), - A2( - $elm$core$List$map, - $author$project$Morphir$IR$Type$mapTypeAttributes(f), - elemTypes)); - case 'Record': - var a = tpe.a; - var fields = tpe.b; - return A2( - $author$project$Morphir$IR$Type$Record, - f(a), - A2( - $elm$core$List$map, - $author$project$Morphir$IR$Type$mapFieldType( - $author$project$Morphir$IR$Type$mapTypeAttributes(f)), - fields)); - case 'ExtensibleRecord': - var a = tpe.a; - var name = tpe.b; - var fields = tpe.c; - return A3( - $author$project$Morphir$IR$Type$ExtensibleRecord, - f(a), - name, - A2( - $elm$core$List$map, - $author$project$Morphir$IR$Type$mapFieldType( - $author$project$Morphir$IR$Type$mapTypeAttributes(f)), - fields)); - case 'Function': - var a = tpe.a; - var argType = tpe.b; - var returnType = tpe.c; - return A3( - $author$project$Morphir$IR$Type$Function, - f(a), - A2($author$project$Morphir$IR$Type$mapTypeAttributes, f, argType), - A2($author$project$Morphir$IR$Type$mapTypeAttributes, f, returnType)); - default: - var a = tpe.a; - return $author$project$Morphir$IR$Type$Unit( - f(a)); - } - }); -var $author$project$Morphir$IR$Value$mapDefinitionAttributes = F3( - function (f, g, d) { - return A3( - $author$project$Morphir$IR$Value$Definition, - A2( - $elm$core$List$map, - function (_v5) { - var name = _v5.a; - var attr = _v5.b; - var tpe = _v5.c; - return _Utils_Tuple3( - name, - g(attr), - A2($author$project$Morphir$IR$Type$mapTypeAttributes, f, tpe)); - }, - d.inputTypes), - A2($author$project$Morphir$IR$Type$mapTypeAttributes, f, d.outputType), - A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, d.body)); - }); -var $author$project$Morphir$IR$Value$mapValueAttributes = F3( - function (f, g, v) { - switch (v.$) { - case 'Literal': - var a = v.a; - var value = v.b; - return A2( - $author$project$Morphir$IR$Value$Literal, - g(a), - value); - case 'Constructor': - var a = v.a; - var fullyQualifiedName = v.b; - return A2( - $author$project$Morphir$IR$Value$Constructor, - g(a), - fullyQualifiedName); - case 'Tuple': - var a = v.a; - var elements = v.b; - return A2( - $author$project$Morphir$IR$Value$Tuple, - g(a), - A2( - $elm$core$List$map, - A2($author$project$Morphir$IR$Value$mapValueAttributes, f, g), - elements)); - case 'List': - var a = v.a; - var items = v.b; - return A2( - $author$project$Morphir$IR$Value$List, - g(a), - A2( - $elm$core$List$map, - A2($author$project$Morphir$IR$Value$mapValueAttributes, f, g), - items)); - case 'Record': - var a = v.a; - var fields = v.b; - return A2( - $author$project$Morphir$IR$Value$Record, - g(a), - A2( - $elm$core$List$map, - function (_v1) { - var fieldName = _v1.a; - var fieldValue = _v1.b; - return _Utils_Tuple2( - fieldName, - A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, fieldValue)); - }, - fields)); - case 'Variable': - var a = v.a; - var name = v.b; - return A2( - $author$project$Morphir$IR$Value$Variable, - g(a), - name); - case 'Reference': - var a = v.a; - var fullyQualifiedName = v.b; - return A2( - $author$project$Morphir$IR$Value$Reference, - g(a), - fullyQualifiedName); - case 'Field': - var a = v.a; - var subjectValue = v.b; - var fieldName = v.c; - return A3( - $author$project$Morphir$IR$Value$Field, - g(a), - A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, subjectValue), - fieldName); - case 'FieldFunction': - var a = v.a; - var fieldName = v.b; - return A2( - $author$project$Morphir$IR$Value$FieldFunction, - g(a), - fieldName); - case 'Apply': - var a = v.a; - var _function = v.b; - var argument = v.c; - return A3( - $author$project$Morphir$IR$Value$Apply, - g(a), - A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, _function), - A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, argument)); - case 'Lambda': - var a = v.a; - var argumentPattern = v.b; - var body = v.c; - return A3( - $author$project$Morphir$IR$Value$Lambda, - g(a), - A2($author$project$Morphir$IR$Value$mapPatternAttributes, g, argumentPattern), - A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, body)); - case 'LetDefinition': - var a = v.a; - var valueName = v.b; - var valueDefinition = v.c; - var inValue = v.d; - return A4( - $author$project$Morphir$IR$Value$LetDefinition, - g(a), - valueName, - A3($author$project$Morphir$IR$Value$mapDefinitionAttributes, f, g, valueDefinition), - A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, inValue)); - case 'LetRecursion': - var a = v.a; - var valueDefinitions = v.b; - var inValue = v.c; - return A3( - $author$project$Morphir$IR$Value$LetRecursion, - g(a), - A2( - $elm$core$Dict$map, - F2( - function (_v2, def) { - return A3($author$project$Morphir$IR$Value$mapDefinitionAttributes, f, g, def); - }), - valueDefinitions), - A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, inValue)); - case 'Destructure': - var a = v.a; - var pattern = v.b; - var valueToDestruct = v.c; - var inValue = v.d; - return A4( - $author$project$Morphir$IR$Value$Destructure, - g(a), - A2($author$project$Morphir$IR$Value$mapPatternAttributes, g, pattern), - A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, valueToDestruct), - A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, inValue)); - case 'IfThenElse': - var a = v.a; - var condition = v.b; - var thenBranch = v.c; - var elseBranch = v.d; - return A4( - $author$project$Morphir$IR$Value$IfThenElse, - g(a), - A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, condition), - A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, thenBranch), - A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, elseBranch)); - case 'PatternMatch': - var a = v.a; - var branchOutOn = v.b; - var cases = v.c; - return A3( - $author$project$Morphir$IR$Value$PatternMatch, - g(a), - A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, branchOutOn), - A2( - $elm$core$List$map, - function (_v3) { - var pattern = _v3.a; - var body = _v3.b; - return _Utils_Tuple2( - A2($author$project$Morphir$IR$Value$mapPatternAttributes, g, pattern), - A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, body)); - }, - cases)); - case 'UpdateRecord': - var a = v.a; - var valueToUpdate = v.b; - var fieldsToUpdate = v.c; - return A3( - $author$project$Morphir$IR$Value$UpdateRecord, - g(a), - A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, valueToUpdate), - A2( - $elm$core$List$map, - function (_v4) { - var fieldName = _v4.a; - var fieldValue = _v4.b; - return _Utils_Tuple2( - fieldName, - A3($author$project$Morphir$IR$Value$mapValueAttributes, f, g, fieldValue)); - }, - fieldsToUpdate)); - default: - var a = v.a; - return $author$project$Morphir$IR$Value$Unit( - g(a)); - } - }); -var $author$project$Morphir$IR$Value$toRawValue = function (value) { - return A3( - $author$project$Morphir$IR$Value$mapValueAttributes, - $elm$core$Basics$always(_Utils_Tuple0), - $elm$core$Basics$always(_Utils_Tuple0), - value); -}; -var $author$project$Morphir$Value$Interpreter$evaluateValue = F5( - function (nativeFunctions, ir, variables, _arguments, value) { - evaluateValue: - while (true) { - switch (value.$) { - case 'Literal': - return $elm$core$Result$Ok(value); - case 'Constructor': - var fQName = value.b; - var _v1 = A2( - $author$project$Morphir$IR$lookupTypeSpecification, - A2($author$project$Morphir$IR$resolveAliases, fQName, ir), - ir); - if (((_v1.$ === 'Just') && (_v1.a.$ === 'TypeAliasSpecification')) && (_v1.a.b.$ === 'Record')) { - var _v2 = _v1.a; - var _v3 = _v2.b; - var fields = _v3.b; - return $elm$core$Result$Ok( - A2( - $author$project$Morphir$IR$Value$Record, - _Utils_Tuple0, - A3( - $elm$core$List$map2, - $elm$core$Tuple$pair, - A2( - $elm$core$List$map, - function ($) { - return $.name; - }, - fields), - _arguments))); - } else { - var applyArgs = F2( - function (subject, argsReversed) { - if (!argsReversed.b) { - return subject; - } else { - var lastArg = argsReversed.a; - var restOfArgsReversed = argsReversed.b; - return A3( - $author$project$Morphir$IR$Value$Apply, - _Utils_Tuple0, - A2(applyArgs, subject, restOfArgsReversed), - lastArg); - } - }); - return $elm$core$Result$Ok( - A2( - applyArgs, - value, - $elm$core$List$reverse(_arguments))); - } - case 'Tuple': - var elems = value.b; - return A2( - $elm$core$Result$map, - $author$project$Morphir$IR$Value$Tuple(_Utils_Tuple0), - $author$project$Morphir$ListOfResults$liftFirstError( - A2( - $elm$core$List$map, - A4($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil), - elems))); - case 'List': - var items = value.b; - return A2( - $elm$core$Result$map, - $author$project$Morphir$IR$Value$List(_Utils_Tuple0), - $author$project$Morphir$ListOfResults$liftFirstError( - A2( - $elm$core$List$map, - A4($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil), - items))); - case 'Record': - var fields = value.b; - return A2( - $elm$core$Result$map, - $author$project$Morphir$IR$Value$Record(_Utils_Tuple0), - $author$project$Morphir$ListOfResults$liftFirstError( - A2( - $elm$core$List$map, - function (_v5) { - var fieldName = _v5.a; - var fieldValue = _v5.b; - return A2( - $elm$core$Result$map, - $elm$core$Tuple$pair(fieldName), - A5($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil, fieldValue)); - }, - fields))); - case 'Variable': - var varName = value.b; - return A2( - $elm$core$Result$mapError, - $author$project$Morphir$Value$Error$ErrorWhileEvaluatingVariable(varName), - A2( - $elm$core$Result$andThen, - A4($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil), - A2( - $elm$core$Result$fromMaybe, - $author$project$Morphir$Value$Error$VariableNotFound(varName), - A2($elm$core$Dict$get, varName, variables)))); - case 'Reference': - var fQName = value.b; - var packageName = fQName.a; - var moduleName = fQName.b; - var localName = fQName.c; - var _v6 = A2( - $elm$core$Dict$get, - _Utils_Tuple3(packageName, moduleName, localName), - nativeFunctions); - if (_v6.$ === 'Just') { - var nativeFunction = _v6.a; - return A2( - $elm$core$Result$mapError, - $author$project$Morphir$Value$Error$ErrorWhileEvaluatingReference(fQName), - A2( - nativeFunction, - A4($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil), - _arguments)); - } else { - return A2( - $elm$core$Result$andThen, - function (referredValue) { - var rawValue = $author$project$Morphir$IR$Value$toRawValue(referredValue.body); - return A2( - $elm$core$Result$andThen, - function (evaluatedArgs) { - return A5($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, $elm$core$Dict$empty, evaluatedArgs, rawValue); - }, - A2( - $elm$core$Result$mapError, - $author$project$Morphir$Value$Error$ErrorWhileEvaluatingReference(fQName), - $author$project$Morphir$ListOfResults$liftFirstError( - A2( - $elm$core$List$map, - A4($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil), - _arguments)))); - }, - A2( - $elm$core$Result$fromMaybe, - $author$project$Morphir$Value$Error$ReferenceNotFound( - _Utils_Tuple3(packageName, moduleName, localName)), - A2( - $author$project$Morphir$IR$lookupValueDefinition, - _Utils_Tuple3(packageName, moduleName, localName), - ir))); - } - case 'Field': - var subjectValue = value.b; - var fieldName = value.c; - return A2( - $elm$core$Result$andThen, - function (evaluatedSubjectValue) { - if (evaluatedSubjectValue.$ === 'Record') { - var fields = evaluatedSubjectValue.b; - return A2( - $elm$core$Result$fromMaybe, - A2($author$project$Morphir$Value$Error$FieldNotFound, subjectValue, fieldName), - A2( - $elm$core$Dict$get, - fieldName, - $elm$core$Dict$fromList(fields))); - } else { - return $elm$core$Result$Err( - A2($author$project$Morphir$Value$Error$RecordExpected, subjectValue, evaluatedSubjectValue)); - } - }, - A5($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil, subjectValue)); - case 'FieldFunction': - var fieldName = value.b; - if (_arguments.b && (!_arguments.b.b)) { - var subjectValue = _arguments.a; - return A2( - $elm$core$Result$andThen, - function (evaluatedSubjectValue) { - if (evaluatedSubjectValue.$ === 'Record') { - var fields = evaluatedSubjectValue.b; - return A2( - $elm$core$Result$fromMaybe, - A2($author$project$Morphir$Value$Error$FieldNotFound, subjectValue, fieldName), - A2( - $elm$core$Dict$get, - fieldName, - $elm$core$Dict$fromList(fields))); - } else { - return $elm$core$Result$Err( - A2($author$project$Morphir$Value$Error$RecordExpected, subjectValue, evaluatedSubjectValue)); - } - }, - A5($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil, subjectValue)); - } else { - var other = _arguments; - return $elm$core$Result$Err( - $author$project$Morphir$Value$Error$ExactlyOneArgumentExpected(other)); - } - case 'Apply': - var _function = value.b; - var argument = value.c; - var $temp$nativeFunctions = nativeFunctions, - $temp$ir = ir, - $temp$variables = variables, - $temp$arguments = A2($elm$core$List$cons, argument, _arguments), - $temp$value = _function; - nativeFunctions = $temp$nativeFunctions; - ir = $temp$ir; - variables = $temp$variables; - _arguments = $temp$arguments; - value = $temp$value; - continue evaluateValue; - case 'Lambda': - var argumentPattern = value.b; - var body = value.c; - return A2( - $elm$core$Result$andThen, - function (argumentVariables) { - return A5( - $author$project$Morphir$Value$Interpreter$evaluateValue, - nativeFunctions, - ir, - A2($elm$core$Dict$union, argumentVariables, variables), - _List_Nil, - body); - }, - A2( - $elm$core$Result$andThen, - function (argumentValue) { - return A2( - $elm$core$Result$mapError, - $author$project$Morphir$Value$Error$LambdaArgumentDidNotMatch, - A2($author$project$Morphir$Value$Interpreter$matchPattern, argumentPattern, argumentValue)); - }, - A2( - $elm$core$Result$fromMaybe, - $author$project$Morphir$Value$Error$NoArgumentToPassToLambda, - $elm$core$List$head(_arguments)))); - case 'LetDefinition': - var defName = value.b; - var def = value.c; - var inValue = value.d; - return A2( - $elm$core$Result$andThen, - function (defValue) { - return A5( - $author$project$Morphir$Value$Interpreter$evaluateValue, - nativeFunctions, - ir, - A3($elm$core$Dict$insert, defName, defValue, variables), - _List_Nil, - inValue); - }, - A5( - $author$project$Morphir$Value$Interpreter$evaluateValue, - nativeFunctions, - ir, - variables, - _List_Nil, - $author$project$Morphir$IR$Value$definitionToValue(def))); - case 'LetRecursion': - var defs = value.b; - var inValue = value.c; - var defVariables = A2( - $elm$core$Dict$map, - F2( - function (_v10, def) { - return $author$project$Morphir$IR$Value$definitionToValue(def); - }), - defs); - var $temp$nativeFunctions = nativeFunctions, - $temp$ir = ir, - $temp$variables = A2($elm$core$Dict$union, defVariables, variables), - $temp$arguments = _List_Nil, - $temp$value = inValue; - nativeFunctions = $temp$nativeFunctions; - ir = $temp$ir; - variables = $temp$variables; - _arguments = $temp$arguments; - value = $temp$value; - continue evaluateValue; - case 'Destructure': - var bindPattern = value.b; - var bindValue = value.c; - var inValue = value.d; - return A2( - $elm$core$Result$andThen, - function (bindVariables) { - return A5( - $author$project$Morphir$Value$Interpreter$evaluateValue, - nativeFunctions, - ir, - A2($elm$core$Dict$union, bindVariables, variables), - _List_Nil, - inValue); - }, - A2( - $elm$core$Result$andThen, - A2( - $elm$core$Basics$composeR, - $author$project$Morphir$Value$Interpreter$matchPattern(bindPattern), - $elm$core$Result$mapError( - $author$project$Morphir$Value$Error$BindPatternDidNotMatch(bindValue))), - A5($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil, bindValue))); - case 'IfThenElse': - var condition = value.b; - var thenBranch = value.c; - var elseBranch = value.d; - return A2( - $elm$core$Result$andThen, - function (conditionValue) { - if ((conditionValue.$ === 'Literal') && (conditionValue.b.$ === 'BoolLiteral')) { - var conditionTrue = conditionValue.b.a; - var branchToFollow = conditionTrue ? thenBranch : elseBranch; - return A5($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil, branchToFollow); - } else { - return $elm$core$Result$Err( - A2($author$project$Morphir$Value$Error$IfThenElseConditionShouldEvaluateToBool, condition, conditionValue)); - } - }, - A5($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil, condition)); - case 'PatternMatch': - var subjectValue = value.b; - var cases = value.c; - var findMatch = F2( - function (remainingCases, evaluatedSubject) { - findMatch: - while (true) { - if (remainingCases.b) { - var _v13 = remainingCases.a; - var nextPattern = _v13.a; - var nextBody = _v13.b; - var restOfCases = remainingCases.b; - var _v14 = A2($author$project$Morphir$Value$Interpreter$matchPattern, nextPattern, evaluatedSubject); - if (_v14.$ === 'Ok') { - var patternVariables = _v14.a; - return A5( - $author$project$Morphir$Value$Interpreter$evaluateValue, - nativeFunctions, - ir, - A2($elm$core$Dict$union, patternVariables, variables), - _List_Nil, - nextBody); - } else { - var $temp$remainingCases = restOfCases, - $temp$evaluatedSubject = evaluatedSubject; - remainingCases = $temp$remainingCases; - evaluatedSubject = $temp$evaluatedSubject; - continue findMatch; - } - } else { - return $elm$core$Result$Err( - A2( - $author$project$Morphir$Value$Error$NoPatternsMatch, - evaluatedSubject, - A2($elm$core$List$map, $elm$core$Tuple$first, cases))); - } - } - }); - return A2( - $elm$core$Result$andThen, - findMatch(cases), - A5($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil, subjectValue)); - case 'UpdateRecord': - var subjectValue = value.b; - var fieldUpdates = value.c; - return A2( - $elm$core$Result$andThen, - function (evaluatedSubjectValue) { - if (evaluatedSubjectValue.$ === 'Record') { - var fields = evaluatedSubjectValue.b; - return A2( - $elm$core$Result$map, - A2( - $elm$core$Basics$composeR, - $elm$core$Dict$toList, - $author$project$Morphir$IR$Value$Record(_Utils_Tuple0)), - A3( - $elm$core$List$foldl, - F2( - function (_v16, fieldsResultSoFar) { - var fieldName = _v16.a; - var newFieldValue = _v16.b; - return A2( - $elm$core$Result$andThen, - function (fieldsSoFar) { - return A2( - $elm$core$Result$andThen, - function (_v17) { - return A2( - $elm$core$Result$map, - function (evaluatedNewFieldValue) { - return A3($elm$core$Dict$insert, fieldName, evaluatedNewFieldValue, fieldsSoFar); - }, - A5($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil, newFieldValue)); - }, - A2( - $elm$core$Result$fromMaybe, - A2($author$project$Morphir$Value$Error$FieldNotFound, subjectValue, fieldName), - A2($elm$core$Dict$get, fieldName, fieldsSoFar))); - }, - fieldsResultSoFar); - }), - $elm$core$Result$Ok( - $elm$core$Dict$fromList(fields)), - fieldUpdates)); - } else { - return $elm$core$Result$Err( - A2($author$project$Morphir$Value$Error$RecordExpected, subjectValue, evaluatedSubjectValue)); - } - }, - A5($author$project$Morphir$Value$Interpreter$evaluateValue, nativeFunctions, ir, variables, _List_Nil, subjectValue)); - default: - return $elm$core$Result$Ok(value); - } - } - }); -var $elm$core$Debug$toString = _Debug_toString; -var $author$project$Morphir$Visual$Config$evaluate = F2( - function (value, config) { - return A2( - $elm$core$Result$mapError, - function (error) { - return $elm$core$Debug$toString( - A2( - $elm$core$Debug$log, - $elm$core$String$concat( - _List_fromArray( - [ - 'Error while evaluating \'', - $elm$core$Debug$toString(value), - '\'' - ])), - error)); - }, - A5( - $author$project$Morphir$Value$Interpreter$evaluateValue, - config.irContext.nativeFunctions, - $author$project$Morphir$IR$fromDistribution(config.irContext.distribution), - config.state.variables, - _List_Nil, - value)); - }); -var $mdgriffith$elm_ui$Internal$Model$Fill = function (a) { - return {$: 'Fill', a: a}; -}; -var $mdgriffith$elm_ui$Element$fill = $mdgriffith$elm_ui$Internal$Model$Fill(1); -var $author$project$Morphir$Visual$Components$AritmeticExpressions$Add = {$: 'Add'}; -var $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticDivisionBranch = function (a) { - return {$: 'ArithmeticDivisionBranch', a: a}; -}; -var $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticOperatorBranch = F2( - function (a, b) { - return {$: 'ArithmeticOperatorBranch', a: a, b: b}; - }); -var $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticValueLeaf = function (a) { - return {$: 'ArithmeticValueLeaf', a: a}; -}; -var $author$project$Morphir$Visual$Components$AritmeticExpressions$Multiply = {$: 'Multiply'}; -var $author$project$Morphir$Visual$Components$AritmeticExpressions$Subtract = {$: 'Subtract'}; -var $author$project$Morphir$Visual$Components$AritmeticExpressions$functionName = F2( - function (moduleName, localName) { - return A2( - $elm$core$String$join, - '.', - _List_fromArray( - [ - A3($author$project$Morphir$IR$Path$toString, $author$project$Morphir$IR$Name$toTitleCase, '.', moduleName), - $author$project$Morphir$IR$Name$toCamelCase(localName) - ])); - }); -var $author$project$Morphir$IR$Value$uncurryApply = F2( - function (fun, lastArg) { - if (fun.$ === 'Apply') { - var nestedFun = fun.b; - var nestedArg = fun.c; - var _v1 = A2($author$project$Morphir$IR$Value$uncurryApply, nestedFun, nestedArg); - var f = _v1.a; - var initArgs = _v1.b; - return _Utils_Tuple2( - f, - A2( - $elm$core$List$append, - initArgs, - _List_fromArray( - [lastArg]))); - } else { - return _Utils_Tuple2( - fun, - _List_fromArray( - [lastArg])); - } - }); -var $author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion = F2( - function (value, operatorName) { - if (value.$ === 'Apply') { - var fun = value.b; - var arg = value.c; - var _v1 = A2($author$project$Morphir$IR$Value$uncurryApply, fun, arg); - var _function = _v1.a; - var args = _v1.b; - var _v2 = _Utils_Tuple2(_function, args); - if ((((_v2.a.$ === 'Reference') && _v2.b.b) && _v2.b.b.b) && (!_v2.b.b.b.b)) { - var _v3 = _v2.a; - var _v4 = _v3.b; - var moduleName = _v4.b; - var localName = _v4.c; - var _v5 = _v2.b; - var arg1 = _v5.a; - var _v6 = _v5.b; - var arg2 = _v6.a; - var _v7 = A2($author$project$Morphir$Visual$Components$AritmeticExpressions$functionName, moduleName, localName); - switch (_v7) { - case 'Basics.add': - return _List_fromArray( - [ - A2( - $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticOperatorBranch, - $author$project$Morphir$Visual$Components$AritmeticExpressions$Add, - _Utils_ap( - A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg1, operatorName), - A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg2, operatorName))) - ]); - case 'Basics.subtract': - return _List_fromArray( - [ - A2( - $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticOperatorBranch, - $author$project$Morphir$Visual$Components$AritmeticExpressions$Subtract, - _Utils_ap( - A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg1, operatorName), - A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg2, operatorName))) - ]); - case 'Basics.multiply': - return _List_fromArray( - [ - A2( - $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticOperatorBranch, - $author$project$Morphir$Visual$Components$AritmeticExpressions$Multiply, - _Utils_ap( - A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg1, operatorName), - A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg2, operatorName))) - ]); - case 'Basics.divide': - return _List_fromArray( - [ - $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticDivisionBranch( - _Utils_ap( - _List_fromArray( - [ - $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticValueLeaf(arg1) - ]), - A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg2, operatorName))) - ]); - default: - return _List_fromArray( - [ - $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticValueLeaf(value) - ]); - } - } else { - return _List_fromArray( - [ - $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticValueLeaf(value) - ]); - } - } else { - return _List_fromArray( - [ - $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticValueLeaf(value) - ]); - } - }); -var $author$project$Morphir$Visual$Components$AritmeticExpressions$fromArithmeticTypedValue = function (typedValue) { - if (typedValue.$ === 'Apply') { - var fun = typedValue.b; - var arg = typedValue.c; - var _v1 = A2($author$project$Morphir$IR$Value$uncurryApply, fun, arg); - var _function = _v1.a; - var args = _v1.b; - var _v2 = _Utils_Tuple2(_function, args); - if ((((_v2.a.$ === 'Reference') && _v2.b.b) && _v2.b.b.b) && (!_v2.b.b.b.b)) { - var _v3 = _v2.a; - var _v4 = _v3.b; - var moduleName = _v4.b; - var localName = _v4.c; - var _v5 = _v2.b; - var arg1 = _v5.a; - var _v6 = _v5.b; - var arg2 = _v6.a; - var operatorName = A2($author$project$Morphir$Visual$Components$AritmeticExpressions$functionName, moduleName, localName); - switch (operatorName) { - case 'Basics.add': - return A2( - $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticOperatorBranch, - $author$project$Morphir$Visual$Components$AritmeticExpressions$Add, - _Utils_ap( - A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg1, operatorName), - A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg2, operatorName))); - case 'Basics.subtract': - return A2( - $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticOperatorBranch, - $author$project$Morphir$Visual$Components$AritmeticExpressions$Subtract, - _Utils_ap( - A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg1, operatorName), - A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg2, operatorName))); - case 'Basics.divide': - return $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticDivisionBranch( - _Utils_ap( - _List_fromArray( - [ - $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticValueLeaf(arg1) - ]), - A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg2, operatorName))); - case 'Basics.multiply': - return A2( - $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticOperatorBranch, - $author$project$Morphir$Visual$Components$AritmeticExpressions$Multiply, - _Utils_ap( - A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg1, operatorName), - A2($author$project$Morphir$Visual$Components$AritmeticExpressions$helperArithmeticTreeBuilderRecursion, arg2, operatorName))); - default: - return $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticValueLeaf(typedValue); - } - } else { - return $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticValueLeaf(typedValue); - } - } else { - return $author$project$Morphir$Visual$Components$AritmeticExpressions$ArithmeticValueLeaf(typedValue); - } -}; -var $author$project$Morphir$Visual$BoolOperatorTree$And = {$: 'And'}; -var $author$project$Morphir$Visual$BoolOperatorTree$BoolOperatorBranch = F2( - function (a, b) { - return {$: 'BoolOperatorBranch', a: a, b: b}; - }); -var $author$project$Morphir$Visual$BoolOperatorTree$BoolValueLeaf = function (a) { - return {$: 'BoolValueLeaf', a: a}; -}; -var $author$project$Morphir$Visual$BoolOperatorTree$Or = {$: 'Or'}; -var $author$project$Morphir$Visual$BoolOperatorTree$functionName = F2( - function (moduleName, localName) { - return A2( - $elm$core$String$join, - '.', - _List_fromArray( - [ - A3($author$project$Morphir$IR$Path$toString, $author$project$Morphir$IR$Name$toTitleCase, '.', moduleName), - $author$project$Morphir$IR$Name$toCamelCase(localName) - ])); - }); -var $author$project$Morphir$Visual$BoolOperatorTree$fromTypedValue = function (typedValue) { - if (typedValue.$ === 'Apply') { - var fun = typedValue.b; - var arg = typedValue.c; - var _v8 = A2($author$project$Morphir$IR$Value$uncurryApply, fun, arg); - var _function = _v8.a; - var args = _v8.b; - var _v9 = _Utils_Tuple2(_function, args); - if ((((_v9.a.$ === 'Reference') && _v9.b.b) && _v9.b.b.b) && (!_v9.b.b.b.b)) { - var _v10 = _v9.a; - var _v11 = _v10.b; - var moduleName = _v11.b; - var localName = _v11.c; - var _v12 = _v9.b; - var arg1 = _v12.a; - var _v13 = _v12.b; - var arg2 = _v13.a; - var operatorName = A2($author$project$Morphir$Visual$BoolOperatorTree$functionName, moduleName, localName); - switch (operatorName) { - case 'Basics.or': - return A2( - $author$project$Morphir$Visual$BoolOperatorTree$BoolOperatorBranch, - $author$project$Morphir$Visual$BoolOperatorTree$Or, - A2($author$project$Morphir$Visual$BoolOperatorTree$helperFunction, typedValue, operatorName)); - case 'Basics.and': - return A2( - $author$project$Morphir$Visual$BoolOperatorTree$BoolOperatorBranch, - $author$project$Morphir$Visual$BoolOperatorTree$And, - A2($author$project$Morphir$Visual$BoolOperatorTree$helperFunction, typedValue, operatorName)); - default: - return $author$project$Morphir$Visual$BoolOperatorTree$BoolValueLeaf(typedValue); - } - } else { - return $author$project$Morphir$Visual$BoolOperatorTree$BoolValueLeaf(typedValue); - } - } else { - return $author$project$Morphir$Visual$BoolOperatorTree$BoolValueLeaf(typedValue); - } -}; -var $author$project$Morphir$Visual$BoolOperatorTree$helperFunction = F2( - function (value, operatorName) { - if (value.$ === 'Apply') { - var fun = value.b; - var arg = value.c; - var _v1 = A2($author$project$Morphir$IR$Value$uncurryApply, fun, arg); - var _function = _v1.a; - var args = _v1.b; - var _v2 = _Utils_Tuple2(_function, args); - if ((((_v2.a.$ === 'Reference') && _v2.b.b) && _v2.b.b.b) && (!_v2.b.b.b.b)) { - var _v3 = _v2.a; - var _v4 = _v3.b; - var moduleName = _v4.b; - var localName = _v4.c; - var _v5 = _v2.b; - var arg1 = _v5.a; - var _v6 = _v5.b; - var arg2 = _v6.a; - return _Utils_eq( - A2($author$project$Morphir$Visual$BoolOperatorTree$functionName, moduleName, localName), - operatorName) ? _Utils_ap( - A2($author$project$Morphir$Visual$BoolOperatorTree$helperFunction, arg1, operatorName), - A2($author$project$Morphir$Visual$BoolOperatorTree$helperFunction, arg2, operatorName)) : _List_fromArray( - [ - $author$project$Morphir$Visual$BoolOperatorTree$fromTypedValue(value) - ]); - } else { - return _List_fromArray( - [ - $author$project$Morphir$Visual$BoolOperatorTree$BoolValueLeaf(value) - ]); - } - } else { - return _List_fromArray( - [ - $author$project$Morphir$Visual$BoolOperatorTree$BoolValueLeaf(value) - ]); - } - }); -var $mdgriffith$elm_ui$Element$htmlAttribute = $mdgriffith$elm_ui$Internal$Model$Attr; -var $author$project$Morphir$IR$SDK$Basics$isNumber = function (tpe) { - _v0$2: - while (true) { - if ((((((((((((((((((((((tpe.$ === 'Reference') && tpe.b.a.b) && tpe.b.a.a.b) && (tpe.b.a.a.a === 'morphir')) && (!tpe.b.a.a.b.b)) && tpe.b.a.b.b) && tpe.b.a.b.a.b) && (tpe.b.a.b.a.a === 's')) && tpe.b.a.b.a.b.b) && (tpe.b.a.b.a.b.a === 'd')) && tpe.b.a.b.a.b.b.b) && (tpe.b.a.b.a.b.b.a === 'k')) && (!tpe.b.a.b.a.b.b.b.b)) && (!tpe.b.a.b.b.b)) && tpe.b.b.b) && tpe.b.b.a.b) && (tpe.b.b.a.a === 'basics')) && (!tpe.b.b.a.b.b)) && (!tpe.b.b.b.b)) && tpe.b.c.b) && (!tpe.b.c.b.b)) && (!tpe.c.b)) { - switch (tpe.b.c.a) { - case 'float': - var _v1 = tpe.b; - var _v2 = _v1.a; - var _v3 = _v2.a; - var _v4 = _v2.b; - var _v5 = _v4.a; - var _v6 = _v5.b; - var _v7 = _v6.b; - var _v8 = _v1.b; - var _v9 = _v8.a; - var _v10 = _v1.c; - return true; - case 'int': - var _v11 = tpe.b; - var _v12 = _v11.a; - var _v13 = _v12.a; - var _v14 = _v12.b; - var _v15 = _v14.a; - var _v16 = _v15.b; - var _v17 = _v16.b; - var _v18 = _v11.b; - var _v19 = _v18.a; - var _v20 = _v11.c; - return true; - default: - break _v0$2; - } - } else { - break _v0$2; - } - } - return false; -}; -var $elm$html$Html$Events$onMouseEnter = function (msg) { - return A2( - $elm$html$Html$Events$on, - 'mouseenter', - $elm$json$Json$Decode$succeed(msg)); -}; -var $mdgriffith$elm_ui$Element$Events$onMouseEnter = A2($elm$core$Basics$composeL, $mdgriffith$elm_ui$Internal$Model$Attr, $elm$html$Html$Events$onMouseEnter); -var $elm$html$Html$Events$onMouseLeave = function (msg) { - return A2( - $elm$html$Html$Events$on, - 'mouseleave', - $elm$json$Json$Decode$succeed(msg)); -}; -var $mdgriffith$elm_ui$Element$Events$onMouseLeave = A2($elm$core$Basics$composeL, $mdgriffith$elm_ui$Internal$Model$Attr, $elm$html$Html$Events$onMouseLeave); -var $author$project$Morphir$Type$MetaType$variableByIndex = function (i) { - return _Utils_Tuple3(_List_Nil, i, 0); -}; -var $author$project$Morphir$Type$Infer$annotateValue = F2( - function (baseIndex, untypedValue) { - return A3( - $author$project$Morphir$IR$Value$indexedMapValue, - F2( - function (index, va) { - return _Utils_Tuple2( - va, - $author$project$Morphir$Type$MetaType$variableByIndex(index)); - }), - baseIndex, - untypedValue); - }); -var $author$project$Morphir$IR$SDK$Basics$floatType = function (attributes) { - return A3( - $author$project$Morphir$IR$Type$Reference, - attributes, - A2($author$project$Morphir$IR$SDK$Common$toFQName, $author$project$Morphir$IR$SDK$Basics$moduleName, 'Float'), - _List_Nil); -}; -var $author$project$Morphir$IR$Value$rewriteValue = F2( - function (f, value) { - var _v0 = f(value); - if (_v0.$ === 'Just') { - var newValue = _v0.a; - return newValue; - } else { - switch (value.$) { - case 'Tuple': - var va = value.a; - var elems = value.b; - return A2( - $author$project$Morphir$IR$Value$Tuple, - va, - A2( - $elm$core$List$map, - $author$project$Morphir$IR$Value$rewriteValue(f), - elems)); - case 'List': - var va = value.a; - var items = value.b; - return A2( - $author$project$Morphir$IR$Value$List, - va, - A2( - $elm$core$List$map, - $author$project$Morphir$IR$Value$rewriteValue(f), - items)); - case 'Record': - var va = value.a; - var fields = value.b; - return A2( - $author$project$Morphir$IR$Value$Record, - va, - A2( - $elm$core$List$map, - function (_v2) { - var n = _v2.a; - var v = _v2.b; - return _Utils_Tuple2( - n, - A2($author$project$Morphir$IR$Value$rewriteValue, f, v)); - }, - fields)); - case 'Field': - var va = value.a; - var subject = value.b; - var name = value.c; - return A3( - $author$project$Morphir$IR$Value$Field, - va, - A2($author$project$Morphir$IR$Value$rewriteValue, f, subject), - name); - case 'Apply': - var va = value.a; - var fun = value.b; - var arg = value.c; - return A3( - $author$project$Morphir$IR$Value$Apply, - va, - A2($author$project$Morphir$IR$Value$rewriteValue, f, fun), - A2($author$project$Morphir$IR$Value$rewriteValue, f, arg)); - case 'Lambda': - var va = value.a; - var pattern = value.b; - var body = value.c; - return A3( - $author$project$Morphir$IR$Value$Lambda, - va, - pattern, - A2($author$project$Morphir$IR$Value$rewriteValue, f, body)); - case 'LetDefinition': - var va = value.a; - var defName = value.b; - var def = value.c; - var inValue = value.d; - return A4( - $author$project$Morphir$IR$Value$LetDefinition, - va, - defName, - _Utils_update( - def, - { - body: A2($author$project$Morphir$IR$Value$rewriteValue, f, def.body) - }), - A2($author$project$Morphir$IR$Value$rewriteValue, f, inValue)); - case 'LetRecursion': - var va = value.a; - var defs = value.b; - var inValue = value.c; - return A3( - $author$project$Morphir$IR$Value$LetRecursion, - va, - A2( - $elm$core$Dict$map, - F2( - function (_v3, def) { - return _Utils_update( - def, - { - body: A2($author$project$Morphir$IR$Value$rewriteValue, f, def.body) - }); - }), - defs), - A2($author$project$Morphir$IR$Value$rewriteValue, f, inValue)); - case 'Destructure': - var va = value.a; - var bindPattern = value.b; - var bindValue = value.c; - var inValue = value.d; - return A4( - $author$project$Morphir$IR$Value$Destructure, - va, - bindPattern, - A2($author$project$Morphir$IR$Value$rewriteValue, f, bindValue), - A2($author$project$Morphir$IR$Value$rewriteValue, f, inValue)); - case 'IfThenElse': - var va = value.a; - var condition = value.b; - var thenBranch = value.c; - var elseBranch = value.d; - return A4( - $author$project$Morphir$IR$Value$IfThenElse, - va, - A2($author$project$Morphir$IR$Value$rewriteValue, f, condition), - A2($author$project$Morphir$IR$Value$rewriteValue, f, thenBranch), - A2($author$project$Morphir$IR$Value$rewriteValue, f, elseBranch)); - case 'PatternMatch': - var va = value.a; - var subject = value.b; - var cases = value.c; - return A3( - $author$project$Morphir$IR$Value$PatternMatch, - va, - A2($author$project$Morphir$IR$Value$rewriteValue, f, subject), - A2( - $elm$core$List$map, - function (_v4) { - var p = _v4.a; - var v = _v4.b; - return _Utils_Tuple2( - p, - A2($author$project$Morphir$IR$Value$rewriteValue, f, v)); - }, - cases)); - case 'UpdateRecord': - var va = value.a; - var subject = value.b; - var fields = value.c; - return A3( - $author$project$Morphir$IR$Value$UpdateRecord, - va, - A2($author$project$Morphir$IR$Value$rewriteValue, f, subject), - A2( - $elm$core$List$map, - function (_v5) { - var n = _v5.a; - var v = _v5.b; - return _Utils_Tuple2( - n, - A2($author$project$Morphir$IR$Value$rewriteValue, f, v)); - }, - fields)); - default: - return value; - } - } - }); -var $author$project$Morphir$Type$Infer$fixNumberLiterals = function (typedValue) { - return A2( - $author$project$Morphir$IR$Value$rewriteValue, - function (value) { - if ((value.$ === 'Literal') && (value.b.$ === 'IntLiteral')) { - var _v1 = value.a; - var va = _v1.a; - var tpe = _v1.b; - var v = value.b.a; - return _Utils_eq( - tpe, - $author$project$Morphir$IR$SDK$Basics$floatType(_Utils_Tuple0)) ? $elm$core$Maybe$Just( - A2( - $author$project$Morphir$IR$Value$Literal, - _Utils_Tuple2(va, tpe), - $author$project$Morphir$IR$Literal$FloatLiteral(v))) : $elm$core$Maybe$Nothing; - } else { - return $elm$core$Maybe$Nothing; - } - }, - typedValue); -}; -var $author$project$Morphir$Type$Solve$get = F2( - function (_var, _v0) { - var dict = _v0.a; - return A2($elm$core$Dict$get, _var, dict); - }); -var $author$project$Morphir$Type$MetaType$toName = function (_v0) { - var n = _v0.a; - var i = _v0.b; - var s = _v0.c; - return $elm$core$List$isEmpty(n) ? _List_fromArray( - [ - 't', - $elm$core$String$fromInt(i), - $elm$core$String$fromInt(s) - ]) : (((i > 0) || (s > 0)) ? _Utils_ap( - n, - _List_fromArray( - [ - $elm$core$String$fromInt(i), - $elm$core$String$fromInt(s) - ])) : n); -}; -var $author$project$Morphir$Type$MetaTypeMapping$metaTypeToConcreteType = F2( - function (solutionMap, metaType) { - switch (metaType.$) { - case 'MetaVar': - var metaVar = metaType.a; - return A2( - $elm$core$Maybe$withDefault, - A2( - $author$project$Morphir$IR$Type$Variable, - _Utils_Tuple0, - $author$project$Morphir$Type$MetaType$toName(metaVar)), - A2( - $elm$core$Maybe$map, - $author$project$Morphir$Type$MetaTypeMapping$metaTypeToConcreteType(solutionMap), - A2($author$project$Morphir$Type$Solve$get, metaVar, solutionMap))); - case 'MetaTuple': - var metaElems = metaType.b; - return A2( - $author$project$Morphir$IR$Type$Tuple, - _Utils_Tuple0, - A2( - $elm$core$List$map, - $author$project$Morphir$Type$MetaTypeMapping$metaTypeToConcreteType(solutionMap), - metaElems)); - case 'MetaRecord': - var _extends = metaType.b; - var metaFields = metaType.c; - if (_extends.$ === 'Nothing') { - return A2( - $author$project$Morphir$IR$Type$Record, - _Utils_Tuple0, - A2( - $elm$core$List$map, - function (_v2) { - var fieldName = _v2.a; - var fieldType = _v2.b; - return A2( - $author$project$Morphir$IR$Type$Field, - fieldName, - A2($author$project$Morphir$Type$MetaTypeMapping$metaTypeToConcreteType, solutionMap, fieldType)); - }, - $elm$core$Dict$toList(metaFields))); - } else { - var baseType = _extends.a; - return A3( - $author$project$Morphir$IR$Type$ExtensibleRecord, - _Utils_Tuple0, - $author$project$Morphir$Type$MetaType$toName(baseType), - A2( - $elm$core$List$map, - function (_v3) { - var fieldName = _v3.a; - var fieldType = _v3.b; - return A2( - $author$project$Morphir$IR$Type$Field, - fieldName, - A2($author$project$Morphir$Type$MetaTypeMapping$metaTypeToConcreteType, solutionMap, fieldType)); - }, - $elm$core$Dict$toList(metaFields))); - } - case 'MetaFun': - var argType = metaType.b; - var returnType = metaType.c; - return A3( - $author$project$Morphir$IR$Type$Function, - _Utils_Tuple0, - A2($author$project$Morphir$Type$MetaTypeMapping$metaTypeToConcreteType, solutionMap, argType), - A2($author$project$Morphir$Type$MetaTypeMapping$metaTypeToConcreteType, solutionMap, returnType)); - case 'MetaRef': - var fQName = metaType.b; - var args = metaType.c; - return A3( - $author$project$Morphir$IR$Type$Reference, - _Utils_Tuple0, - fQName, - A2( - $elm$core$List$map, - $author$project$Morphir$Type$MetaTypeMapping$metaTypeToConcreteType(solutionMap), - args)); - default: - return $author$project$Morphir$IR$Type$Unit(_Utils_Tuple0); - } - }); -var $author$project$Morphir$Type$Infer$applySolutionToAnnotatedValue = F2( - function (annotatedValue, _v0) { - var residualConstraints = _v0.a; - var solutionMap = _v0.b; - return $author$project$Morphir$Type$Infer$fixNumberLiterals( - A3( - $author$project$Morphir$IR$Value$mapValueAttributes, - $elm$core$Basics$identity, - function (_v1) { - var va = _v1.a; - var metaVar = _v1.b; - return _Utils_Tuple2( - va, - A2( - $elm$core$Maybe$withDefault, - A2( - $author$project$Morphir$IR$Type$Variable, - _Utils_Tuple0, - $author$project$Morphir$Type$MetaType$toName(metaVar)), - A2( - $elm$core$Maybe$map, - $author$project$Morphir$Type$MetaTypeMapping$metaTypeToConcreteType(solutionMap), - A2($author$project$Morphir$Type$Solve$get, metaVar, solutionMap)))); - }, - annotatedValue)); - }); -var $author$project$Morphir$Type$MetaType$MetaRef = F4( - function (a, b, c, d) { - return {$: 'MetaRef', a: a, b: b, c: c, d: d}; - }); -var $elm$core$Set$union = F2( - function (_v0, _v1) { - var dict1 = _v0.a; - var dict2 = _v1.a; - return $elm$core$Set$Set_elm_builtin( - A2($elm$core$Dict$union, dict1, dict2)); - }); -var $elm$core$Dict$singleton = F2( - function (key, value) { - return A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, key, value, $elm$core$Dict$RBEmpty_elm_builtin, $elm$core$Dict$RBEmpty_elm_builtin); - }); -var $elm$core$Set$singleton = function (key) { - return $elm$core$Set$Set_elm_builtin( - A2($elm$core$Dict$singleton, key, _Utils_Tuple0)); -}; -var $author$project$Morphir$Type$MetaType$variables = function (metaType) { - switch (metaType.$) { - case 'MetaVar': - var variable = metaType.a; - return $elm$core$Set$singleton(variable); - case 'MetaRef': - var vars = metaType.a; - return vars; - case 'MetaTuple': - var vars = metaType.a; - return vars; - case 'MetaRecord': - var vars = metaType.a; - return vars; - case 'MetaFun': - var vars = metaType.a; - return vars; - default: - return $elm$core$Set$empty; - } -}; -var $author$project$Morphir$Type$MetaType$metaRef = F2( - function (fQName, args) { - var vars = A3( - $elm$core$List$foldl, - $elm$core$Set$union, - $elm$core$Set$empty, - A2($elm$core$List$map, $author$project$Morphir$Type$MetaType$variables, args)); - return A4($author$project$Morphir$Type$MetaType$MetaRef, vars, fQName, args, $elm$core$Maybe$Nothing); - }); -var $author$project$Morphir$Type$MetaType$boolType = A2( - $author$project$Morphir$Type$MetaType$metaRef, - A3($author$project$Morphir$IR$FQName$fqn, 'Morphir.SDK', 'Basics', 'Bool'), - _List_Nil); -var $author$project$Morphir$IR$Type$collectVariables = function (tpe) { - var collectUnion = function (values) { - return A3( - $elm$core$List$foldl, - $elm$core$Set$union, - $elm$core$Set$empty, - A2($elm$core$List$map, $author$project$Morphir$IR$Type$collectVariables, values)); - }; - switch (tpe.$) { - case 'Variable': - var name = tpe.b; - return $elm$core$Set$singleton(name); - case 'Reference': - var args = tpe.c; - return collectUnion(args); - case 'Tuple': - var elements = tpe.b; - return collectUnion(elements); - case 'Record': - var fields = tpe.b; - return collectUnion( - A2( - $elm$core$List$map, - function ($) { - return $.tpe; - }, - fields)); - case 'ExtensibleRecord': - var subjectName = tpe.b; - var fields = tpe.c; - return A2( - $elm$core$Set$insert, - subjectName, - collectUnion( - A2( - $elm$core$List$map, - function ($) { - return $.tpe; - }, - fields))); - case 'Function': - var argType = tpe.b; - var returnType = tpe.c; - return collectUnion( - _List_fromArray( - [argType, returnType])); - default: - return $elm$core$Set$empty; - } -}; -var $author$project$Morphir$Type$ConstraintSet$ConstraintSet = function (a) { - return {$: 'ConstraintSet', a: a}; -}; -var $author$project$Morphir$Type$ConstraintSet$empty = $author$project$Morphir$Type$ConstraintSet$ConstraintSet(_List_Nil); -var $author$project$Morphir$Type$Constraint$isTrivial = function (constraint) { - if (constraint.$ === 'Equality') { - var metaType1 = constraint.a; - var metaType2 = constraint.b; - return _Utils_eq(metaType1, metaType2); - } else { - return false; - } -}; -var $author$project$Morphir$Type$Constraint$equivalent = F2( - function (constraint1, constraint2) { - if (_Utils_eq(constraint1, constraint2)) { - return true; - } else { - var _v0 = _Utils_Tuple2(constraint1, constraint2); - if ((_v0.a.$ === 'Equality') && (_v0.b.$ === 'Equality')) { - var _v1 = _v0.a; - var a1 = _v1.a; - var a2 = _v1.b; - var _v2 = _v0.b; - var b1 = _v2.a; - var b2 = _v2.b; - return (_Utils_eq(a1, b1) && _Utils_eq(a2, b2)) || (_Utils_eq(a1, b2) && _Utils_eq(a2, b1)); - } else { - return false; - } - } - }); -var $author$project$Morphir$Type$ConstraintSet$member = F2( - function (constraint, _v0) { - var constraints = _v0.a; - return A2( - $elm$core$List$any, - $author$project$Morphir$Type$Constraint$equivalent(constraint), - constraints); - }); -var $author$project$Morphir$Type$ConstraintSet$insert = F2( - function (constraint, constraintSet) { - var constraints = constraintSet.a; - return ($author$project$Morphir$Type$Constraint$isTrivial(constraint) || A2($author$project$Morphir$Type$ConstraintSet$member, constraint, constraintSet)) ? constraintSet : $author$project$Morphir$Type$ConstraintSet$ConstraintSet( - A2($elm$core$List$cons, constraint, constraints)); - }); -var $author$project$Morphir$Type$ConstraintSet$union = F2( - function (constraintSet1, _v0) { - var constraints2 = _v0.a; - return A3($elm$core$List$foldl, $author$project$Morphir$Type$ConstraintSet$insert, constraintSet1, constraints2); - }); -var $author$project$Morphir$Type$ConstraintSet$concat = function (constraintSets) { - return A3($elm$core$List$foldl, $author$project$Morphir$Type$ConstraintSet$union, $author$project$Morphir$Type$ConstraintSet$empty, constraintSets); -}; -var $author$project$Morphir$Type$MetaTypeMapping$CouldNotFindAlias = function (a) { - return {$: 'CouldNotFindAlias', a: a}; -}; -var $author$project$Morphir$Type$MetaTypeMapping$ExpectedAlias = function (a) { - return {$: 'ExpectedAlias', a: a}; -}; -var $author$project$Morphir$Type$MetaTypeMapping$lookupAliasedType = F3( - function (baseVar, ir, typeFQN) { - return A2( - $elm$core$Result$andThen, - function (typeSpec) { - if (typeSpec.$ === 'TypeAliasSpecification') { - var paramNames = typeSpec.a; - var tpe = typeSpec.b; - return $elm$core$Result$Ok(tpe); - } else { - return $elm$core$Result$Err( - $author$project$Morphir$Type$MetaTypeMapping$ExpectedAlias(typeFQN)); - } - }, - A2( - $elm$core$Result$fromMaybe, - $author$project$Morphir$Type$MetaTypeMapping$CouldNotFindAlias(typeFQN), - A2($author$project$Morphir$IR$lookupTypeSpecification, typeFQN, ir))); - }); -var $author$project$Morphir$Type$MetaType$metaAlias = F3( - function (fQName, args, tpe) { - var vars = A2( - $elm$core$Set$union, - $author$project$Morphir$Type$MetaType$variables(tpe), - A3( - $elm$core$List$foldl, - $elm$core$Set$union, - $elm$core$Set$empty, - A2($elm$core$List$map, $author$project$Morphir$Type$MetaType$variables, args))); - return A4( - $author$project$Morphir$Type$MetaType$MetaRef, - vars, - fQName, - args, - $elm$core$Maybe$Just(tpe)); - }); -var $author$project$Morphir$Type$MetaType$MetaFun = F3( - function (a, b, c) { - return {$: 'MetaFun', a: a, b: b, c: c}; - }); -var $author$project$Morphir$Type$MetaType$metaFun = F2( - function (arg, body) { - var vars = A2( - $elm$core$Set$union, - $author$project$Morphir$Type$MetaType$variables(arg), - $author$project$Morphir$Type$MetaType$variables(body)); - return A3($author$project$Morphir$Type$MetaType$MetaFun, vars, arg, body); - }); -var $author$project$Morphir$Type$MetaType$MetaRecord = F3( - function (a, b, c) { - return {$: 'MetaRecord', a: a, b: b, c: c}; - }); -var $author$project$Morphir$Type$MetaType$metaRecord = F2( - function (_extends, fields) { - var fieldVars = A3( - $elm$core$List$foldl, - $elm$core$Set$union, - $elm$core$Set$empty, - A2( - $elm$core$List$map, - A2($elm$core$Basics$composeR, $elm$core$Tuple$second, $author$project$Morphir$Type$MetaType$variables), - $elm$core$Dict$toList(fields))); - var vars = A2( - $elm$core$Maybe$withDefault, - fieldVars, - A2( - $elm$core$Maybe$map, - function (eVar) { - return A2($elm$core$Set$insert, eVar, fieldVars); - }, - _extends)); - return A3($author$project$Morphir$Type$MetaType$MetaRecord, vars, _extends, fields); - }); -var $author$project$Morphir$Type$MetaType$MetaTuple = F2( - function (a, b) { - return {$: 'MetaTuple', a: a, b: b}; - }); -var $author$project$Morphir$Type$MetaType$metaTuple = function (elems) { - var vars = A3( - $elm$core$List$foldl, - $elm$core$Set$union, - $elm$core$Set$empty, - A2($elm$core$List$map, $author$project$Morphir$Type$MetaType$variables, elems)); - return A2($author$project$Morphir$Type$MetaType$MetaTuple, vars, elems); -}; -var $author$project$Morphir$Type$MetaType$MetaUnit = {$: 'MetaUnit'}; -var $author$project$Morphir$Type$MetaType$metaUnit = $author$project$Morphir$Type$MetaType$MetaUnit; -var $author$project$Morphir$Type$MetaType$MetaVar = function (a) { - return {$: 'MetaVar', a: a}; -}; -var $author$project$Morphir$Type$MetaType$metaVar = $author$project$Morphir$Type$MetaType$MetaVar; -var $elm$core$Result$withDefault = F2( - function (def, result) { - if (result.$ === 'Ok') { - var a = result.a; - return a; - } else { - return def; - } - }); -var $author$project$Morphir$Type$MetaTypeMapping$concreteTypeToMetaType = F4( - function (baseVar, ir, varToMeta, tpe) { - switch (tpe.$) { - case 'Variable': - var varName = tpe.b; - return $author$project$Morphir$Type$MetaType$metaVar( - A2( - $elm$core$Maybe$withDefault, - baseVar, - A2($elm$core$Dict$get, varName, varToMeta))); - case 'Reference': - var fQName = tpe.b; - var args = tpe.c; - var resolveAliases = F2( - function (fqn, ars) { - return A2( - $elm$core$Result$withDefault, - A2($author$project$Morphir$Type$MetaType$metaRef, fqn, ars), - A2( - $elm$core$Result$map, - A2( - $elm$core$Basics$composeR, - A3($author$project$Morphir$Type$MetaTypeMapping$concreteTypeToMetaType, baseVar, ir, varToMeta), - A2($author$project$Morphir$Type$MetaType$metaAlias, fqn, ars)), - A3($author$project$Morphir$Type$MetaTypeMapping$lookupAliasedType, baseVar, ir, fqn))); - }); - return A2( - resolveAliases, - fQName, - A2( - $elm$core$List$map, - A3($author$project$Morphir$Type$MetaTypeMapping$concreteTypeToMetaType, baseVar, ir, varToMeta), - args)); - case 'Tuple': - var elemTypes = tpe.b; - return $author$project$Morphir$Type$MetaType$metaTuple( - A2( - $elm$core$List$map, - A3($author$project$Morphir$Type$MetaTypeMapping$concreteTypeToMetaType, baseVar, ir, varToMeta), - elemTypes)); - case 'Record': - var fieldTypes = tpe.b; - return A2( - $author$project$Morphir$Type$MetaType$metaRecord, - $elm$core$Maybe$Nothing, - $elm$core$Dict$fromList( - A2( - $elm$core$List$map, - function (field) { - return _Utils_Tuple2( - field.name, - A4($author$project$Morphir$Type$MetaTypeMapping$concreteTypeToMetaType, baseVar, ir, varToMeta, field.tpe)); - }, - fieldTypes))); - case 'ExtensibleRecord': - var subjectName = tpe.b; - var fieldTypes = tpe.c; - return A2( - $author$project$Morphir$Type$MetaType$metaRecord, - A2($elm$core$Dict$get, subjectName, varToMeta), - $elm$core$Dict$fromList( - A2( - $elm$core$List$map, - function (field) { - return _Utils_Tuple2( - field.name, - A4($author$project$Morphir$Type$MetaTypeMapping$concreteTypeToMetaType, baseVar, ir, varToMeta, field.tpe)); - }, - fieldTypes))); - case 'Function': - var argType = tpe.b; - var returnType = tpe.c; - return A2( - $author$project$Morphir$Type$MetaType$metaFun, - A4($author$project$Morphir$Type$MetaTypeMapping$concreteTypeToMetaType, baseVar, ir, varToMeta, argType), - A4($author$project$Morphir$Type$MetaTypeMapping$concreteTypeToMetaType, baseVar, ir, varToMeta, returnType)); - default: - return $author$project$Morphir$Type$MetaType$metaUnit; - } - }); -var $author$project$Morphir$Type$Class$Number = {$: 'Number'}; -var $author$project$Morphir$Type$MetaType$charType = A2( - $author$project$Morphir$Type$MetaType$metaRef, - A3($author$project$Morphir$IR$FQName$fqn, 'Morphir.SDK', 'Char', 'Char'), - _List_Nil); -var $author$project$Morphir$Type$Constraint$Class = F2( - function (a, b) { - return {$: 'Class', a: a, b: b}; - }); -var $author$project$Morphir$Type$Constraint$class = $author$project$Morphir$Type$Constraint$Class; -var $author$project$Morphir$Type$Constraint$Equality = F2( - function (a, b) { - return {$: 'Equality', a: a, b: b}; - }); -var $author$project$Morphir$Type$Constraint$equality = $author$project$Morphir$Type$Constraint$Equality; -var $author$project$Morphir$Type$MetaType$floatType = A2( - $author$project$Morphir$Type$MetaType$metaRef, - A3($author$project$Morphir$IR$FQName$fqn, 'Morphir.SDK', 'Basics', 'Float'), - _List_Nil); -var $author$project$Morphir$Type$ConstraintSet$singleton = function (constraint) { - return $author$project$Morphir$Type$ConstraintSet$ConstraintSet( - _List_fromArray( - [constraint])); -}; -var $author$project$Morphir$Type$MetaType$stringType = A2( - $author$project$Morphir$Type$MetaType$metaRef, - A3($author$project$Morphir$IR$FQName$fqn, 'Morphir.SDK', 'String', 'String'), - _List_Nil); -var $author$project$Morphir$Type$Infer$constrainLiteral = F2( - function (thisTypeVar, literalValue) { - var expectExactType = function (expectedType) { - return $author$project$Morphir$Type$ConstraintSet$singleton( - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), - expectedType)); - }; - switch (literalValue.$) { - case 'BoolLiteral': - return expectExactType($author$project$Morphir$Type$MetaType$boolType); - case 'CharLiteral': - return expectExactType($author$project$Morphir$Type$MetaType$charType); - case 'StringLiteral': - return expectExactType($author$project$Morphir$Type$MetaType$stringType); - case 'IntLiteral': - return $author$project$Morphir$Type$ConstraintSet$singleton( - A2( - $author$project$Morphir$Type$Constraint$class, - $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), - $author$project$Morphir$Type$Class$Number)); - default: - return expectExactType($author$project$Morphir$Type$MetaType$floatType); - } - }); -var $author$project$Morphir$Type$ConstraintSet$fromList = function (list) { - return A3($elm$core$List$foldl, $author$project$Morphir$Type$ConstraintSet$insert, $author$project$Morphir$Type$ConstraintSet$empty, list); -}; -var $author$project$Morphir$Type$MetaType$listType = function (itemType) { - return A2( - $author$project$Morphir$Type$MetaType$metaRef, - A3($author$project$Morphir$IR$FQName$fqn, 'Morphir.SDK', 'List', 'List'), - _List_fromArray( - [itemType])); -}; -var $author$project$Morphir$Type$MetaTypeMapping$CouldNotFindConstructor = function (a) { - return {$: 'CouldNotFindConstructor', a: a}; -}; -var $author$project$Morphir$Type$MetaType$subVariable = function (_v0) { - var n = _v0.a; - var i = _v0.b; - var s = _v0.c; - return _Utils_Tuple3(n, i, s + 1); -}; -var $author$project$Morphir$Type$MetaTypeMapping$concreteVarsToMetaVars = F2( - function (baseVar, variables) { - return A3( - $elm$core$List$foldl, - F2( - function (varName, _v0) { - var metaVarSoFar = _v0.a; - var varToMetaSoFar = _v0.b; - var nextVar = $author$project$Morphir$Type$MetaType$subVariable(metaVarSoFar); - return _Utils_Tuple2( - nextVar, - A3($elm$core$Dict$insert, varName, nextVar, varToMetaSoFar)); - }), - _Utils_Tuple2(baseVar, $elm$core$Dict$empty), - $elm$core$Set$toList(variables)).b; - }); -var $elm$core$Set$fromList = function (list) { - return A3($elm$core$List$foldl, $elm$core$Set$insert, $elm$core$Set$empty, list); -}; -var $author$project$Morphir$Type$MetaTypeMapping$ctorToMetaType = F5( - function (baseVar, ir, ctorFQName, paramNames, ctorArgs) { - var argVariables = A3( - $elm$core$List$foldl, - $elm$core$Set$union, - $elm$core$Set$empty, - A2($elm$core$List$map, $author$project$Morphir$IR$Type$collectVariables, ctorArgs)); - var allVariables = A2( - $elm$core$Set$union, - argVariables, - $elm$core$Set$fromList(paramNames)); - var varToMeta = A2($author$project$Morphir$Type$MetaTypeMapping$concreteVarsToMetaVars, baseVar, allVariables); - var recurse = function (cargs) { - if (!cargs.b) { - return A2( - $author$project$Morphir$Type$MetaType$metaRef, - ctorFQName, - A2( - $elm$core$List$map, - function (paramName) { - return $author$project$Morphir$Type$MetaType$metaVar( - A2( - $elm$core$Maybe$withDefault, - baseVar, - A2($elm$core$Dict$get, paramName, varToMeta))); - }, - paramNames)); - } else { - var firstCtorArg = cargs.a; - var restOfCtorArgs = cargs.b; - return A2( - $author$project$Morphir$Type$MetaType$metaFun, - A4($author$project$Morphir$Type$MetaTypeMapping$concreteTypeToMetaType, baseVar, ir, varToMeta, firstCtorArg), - recurse(restOfCtorArgs)); - } - }; - return recurse(ctorArgs); - }); -var $author$project$Morphir$IR$lookupTypeConstructor = F2( - function (fqn, ir) { - return A2($elm$core$Dict$get, fqn, ir.typeConstructors); - }); -var $author$project$Morphir$Type$MetaTypeMapping$lookupConstructor = F3( - function (baseVar, ir, ctorFQN) { - return A2( - $elm$core$Result$fromMaybe, - $author$project$Morphir$Type$MetaTypeMapping$CouldNotFindConstructor(ctorFQN), - A2( - $elm$core$Maybe$map, - function (_v0) { - var typeFQN = _v0.a; - var paramNames = _v0.b; - var ctorArgs = _v0.c; - return A5( - $author$project$Morphir$Type$MetaTypeMapping$ctorToMetaType, - baseVar, - ir, - typeFQN, - paramNames, - A2($elm$core$List$map, $elm$core$Tuple$second, ctorArgs)); - }, - A2($author$project$Morphir$IR$lookupTypeConstructor, ctorFQN, ir))); - }); -var $author$project$Morphir$IR$Value$patternAttribute = function (p) { - switch (p.$) { - case 'WildcardPattern': - var a = p.a; - return a; - case 'AsPattern': - var a = p.a; - return a; - case 'TuplePattern': - var a = p.a; - return a; - case 'ConstructorPattern': - var a = p.a; - return a; - case 'EmptyListPattern': - var a = p.a; - return a; - case 'HeadTailPattern': - var a = p.a; - return a; - case 'LiteralPattern': - var a = p.a; - return a; - default: - var a = p.a; - return a; - } -}; -var $author$project$Morphir$Type$Infer$metaTypeVarForPattern = function (pattern) { - return $author$project$Morphir$Type$MetaType$metaVar( - $author$project$Morphir$IR$Value$patternAttribute(pattern).b); -}; -var $elm$core$List$unzip = function (pairs) { - var step = F2( - function (_v0, _v1) { - var x = _v0.a; - var y = _v0.b; - var xs = _v1.a; - var ys = _v1.b; - return _Utils_Tuple2( - A2($elm$core$List$cons, x, xs), - A2($elm$core$List$cons, y, ys)); - }); - return A3( - $elm$core$List$foldr, - step, - _Utils_Tuple2(_List_Nil, _List_Nil), - pairs); -}; -var $author$project$Morphir$Type$Infer$constrainPattern = F2( - function (ir, pattern) { - switch (pattern.$) { - case 'WildcardPattern': - var _v1 = pattern.a; - var va = _v1.a; - var thisTypeVar = _v1.b; - return _Utils_Tuple2($elm$core$Dict$empty, $author$project$Morphir$Type$ConstraintSet$empty); - case 'AsPattern': - var _v2 = pattern.a; - var va = _v2.a; - var thisTypeVar = _v2.b; - var nestedPattern = pattern.b; - var alias = pattern.c; - var thisPatternConstraints = $author$project$Morphir$Type$ConstraintSet$singleton( - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), - $author$project$Morphir$Type$Infer$metaTypeVarForPattern(nestedPattern))); - var _v3 = A2($author$project$Morphir$Type$Infer$constrainPattern, ir, nestedPattern); - var nestedVariables = _v3.a; - var nestedConstraints = _v3.b; - return _Utils_Tuple2( - A3($elm$core$Dict$insert, alias, thisTypeVar, nestedVariables), - A2($author$project$Morphir$Type$ConstraintSet$union, nestedConstraints, thisPatternConstraints)); - case 'TuplePattern': - var _v4 = pattern.a; - var va = _v4.a; - var thisTypeVar = _v4.b; - var elemPatterns = pattern.b; - var tupleConstraint = $author$project$Morphir$Type$ConstraintSet$singleton( - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), - $author$project$Morphir$Type$MetaType$metaTuple( - A2($elm$core$List$map, $author$project$Morphir$Type$Infer$metaTypeVarForPattern, elemPatterns)))); - var _v5 = $elm$core$List$unzip( - A2( - $elm$core$List$map, - $author$project$Morphir$Type$Infer$constrainPattern(ir), - elemPatterns)); - var elemsVariables = _v5.a; - var elemsConstraints = _v5.b; - return _Utils_Tuple2( - A3($elm$core$List$foldl, $elm$core$Dict$union, $elm$core$Dict$empty, elemsVariables), - $author$project$Morphir$Type$ConstraintSet$concat( - A2($elm$core$List$cons, tupleConstraint, elemsConstraints))); - case 'ConstructorPattern': - var _v6 = pattern.a; - var va = _v6.a; - var thisTypeVar = _v6.b; - var fQName = pattern.b; - var argPatterns = pattern.c; - var resultType = function (t) { - resultType: - while (true) { - if (t.$ === 'MetaFun') { - var a = t.b; - var r = t.c; - var $temp$t = r; - t = $temp$t; - continue resultType; - } else { - return t; - } - } - }; - var ctorTypeVar = $author$project$Morphir$Type$MetaType$subVariable(thisTypeVar); - var customTypeConstraint = A2( - $elm$core$Result$withDefault, - $author$project$Morphir$Type$ConstraintSet$empty, - A2( - $elm$core$Result$map, - function (ctorFunType) { - return $author$project$Morphir$Type$ConstraintSet$fromList( - _List_fromArray( - [ - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$MetaType$metaVar(ctorTypeVar), - ctorFunType), - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), - resultType(ctorFunType)) - ])); - }, - A3($author$project$Morphir$Type$MetaTypeMapping$lookupConstructor, ctorTypeVar, ir, fQName))); - var ctorType = function (args) { - if (!args.b) { - return $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar); - } else { - var firstArg = args.a; - var restOfArgs = args.b; - return A2( - $author$project$Morphir$Type$MetaType$metaFun, - firstArg, - ctorType(restOfArgs)); - } - }; - var ctorFunConstraint = $author$project$Morphir$Type$ConstraintSet$singleton( - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$MetaType$metaVar(ctorTypeVar), - ctorType( - A2($elm$core$List$map, $author$project$Morphir$Type$Infer$metaTypeVarForPattern, argPatterns)))); - var _v9 = $elm$core$List$unzip( - A2( - $elm$core$List$map, - $author$project$Morphir$Type$Infer$constrainPattern(ir), - argPatterns)); - var argVariables = _v9.a; - var argConstraints = _v9.b; - return _Utils_Tuple2( - A3($elm$core$List$foldl, $elm$core$Dict$union, $elm$core$Dict$empty, argVariables), - $author$project$Morphir$Type$ConstraintSet$concat( - A2( - $elm$core$List$cons, - customTypeConstraint, - A2($elm$core$List$cons, ctorFunConstraint, argConstraints)))); - case 'EmptyListPattern': - var _v10 = pattern.a; - var va = _v10.a; - var thisTypeVar = _v10.b; - var itemType = $author$project$Morphir$Type$MetaType$metaVar( - $author$project$Morphir$Type$MetaType$subVariable(thisTypeVar)); - var listType = $author$project$Morphir$Type$MetaType$listType(itemType); - return _Utils_Tuple2( - $elm$core$Dict$empty, - $author$project$Morphir$Type$ConstraintSet$singleton( - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), - listType))); - case 'HeadTailPattern': - var _v11 = pattern.a; - var va = _v11.a; - var thisTypeVar = _v11.b; - var headPattern = pattern.b; - var tailPattern = pattern.c; - var itemType = $author$project$Morphir$Type$Infer$metaTypeVarForPattern(headPattern); - var listType = $author$project$Morphir$Type$MetaType$listType(itemType); - var thisPatternConstraints = $author$project$Morphir$Type$ConstraintSet$fromList( - _List_fromArray( - [ - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), - listType), - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$Infer$metaTypeVarForPattern(tailPattern), - listType) - ])); - var _v12 = A2($author$project$Morphir$Type$Infer$constrainPattern, ir, tailPattern); - var tailVariables = _v12.a; - var tailConstraints = _v12.b; - var _v13 = A2($author$project$Morphir$Type$Infer$constrainPattern, ir, headPattern); - var headVariables = _v13.a; - var headConstraints = _v13.b; - return _Utils_Tuple2( - A2($elm$core$Dict$union, headVariables, tailVariables), - $author$project$Morphir$Type$ConstraintSet$concat( - _List_fromArray( - [headConstraints, tailConstraints, thisPatternConstraints]))); - case 'LiteralPattern': - var _v14 = pattern.a; - var va = _v14.a; - var thisTypeVar = _v14.b; - var literalValue = pattern.b; - return _Utils_Tuple2( - $elm$core$Dict$empty, - A2($author$project$Morphir$Type$Infer$constrainLiteral, thisTypeVar, literalValue)); - default: - var _v15 = pattern.a; - var va = _v15.a; - var thisTypeVar = _v15.b; - return _Utils_Tuple2( - $elm$core$Dict$empty, - $author$project$Morphir$Type$ConstraintSet$singleton( - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), - $author$project$Morphir$Type$MetaType$metaUnit))); - } - }); -var $author$project$Morphir$Type$MetaTypeMapping$CouldNotFindValue = function (a) { - return {$: 'CouldNotFindValue', a: a}; -}; -var $author$project$Morphir$IR$lookupValueSpecification = F2( - function (fqn, ir) { - return A2($elm$core$Dict$get, fqn, ir.valueSpecifications); - }); -var $author$project$Morphir$Type$MetaTypeMapping$valueSpecToMetaType = F3( - function (baseVar, ir, valueSpec) { - var specToFunctionType = F2( - function (argTypes, returnType) { - if (!argTypes.b) { - return returnType; - } else { - var firstArg = argTypes.a; - var restOfArgs = argTypes.b; - return A3( - $author$project$Morphir$IR$Type$Function, - _Utils_Tuple0, - firstArg, - A2(specToFunctionType, restOfArgs, returnType)); - } - }); - var functionType = A2( - specToFunctionType, - A2($elm$core$List$map, $elm$core$Tuple$second, valueSpec.inputs), - valueSpec.output); - var varToMeta = A2( - $author$project$Morphir$Type$MetaTypeMapping$concreteVarsToMetaVars, - baseVar, - $author$project$Morphir$IR$Type$collectVariables(functionType)); - return A4($author$project$Morphir$Type$MetaTypeMapping$concreteTypeToMetaType, baseVar, ir, varToMeta, functionType); - }); -var $author$project$Morphir$Type$MetaTypeMapping$lookupValue = F3( - function (baseVar, ir, valueFQN) { - return A2( - $elm$core$Result$fromMaybe, - $author$project$Morphir$Type$MetaTypeMapping$CouldNotFindValue(valueFQN), - A2( - $elm$core$Maybe$map, - A2($author$project$Morphir$Type$MetaTypeMapping$valueSpecToMetaType, baseVar, ir), - A2($author$project$Morphir$IR$lookupValueSpecification, valueFQN, ir))); - }); -var $author$project$Morphir$IR$Value$valueAttribute = function (v) { - switch (v.$) { - case 'Literal': - var a = v.a; - return a; - case 'Constructor': - var a = v.a; - return a; - case 'Tuple': - var a = v.a; - return a; - case 'List': - var a = v.a; - return a; - case 'Record': - var a = v.a; - return a; - case 'Variable': - var a = v.a; - return a; - case 'Reference': - var a = v.a; - return a; - case 'Field': - var a = v.a; - return a; - case 'FieldFunction': - var a = v.a; - return a; - case 'Apply': - var a = v.a; - return a; - case 'Lambda': - var a = v.a; - return a; - case 'LetDefinition': - var a = v.a; - return a; - case 'LetRecursion': - var a = v.a; - return a; - case 'Destructure': - var a = v.a; - return a; - case 'IfThenElse': - var a = v.a; - return a; - case 'PatternMatch': - var a = v.a; - return a; - case 'UpdateRecord': - var a = v.a; - return a; - default: - var a = v.a; - return a; - } -}; -var $author$project$Morphir$Type$Infer$metaTypeVarForValue = function (value) { - return $author$project$Morphir$Type$MetaType$metaVar( - $author$project$Morphir$IR$Value$valueAttribute(value).b); -}; -var $author$project$Morphir$Type$MetaType$variableByName = function (name) { - return _Utils_Tuple3(name, 0, 0); -}; -var $author$project$Morphir$Type$Infer$constrainDefinition = F4( - function (baseVar, ir, vars, def) { - var outputTypeVars = $author$project$Morphir$IR$Type$collectVariables(def.outputType); - var inputVars = $elm$core$Dict$fromList( - A2( - $elm$core$List$map, - function (_v41) { - var name = _v41.a; - var _v42 = _v41.b; - var thisTypeVar = _v42.b; - return _Utils_Tuple2(name, thisTypeVar); - }, - def.inputTypes)); - var inputTypeVars = A3( - $elm$core$List$foldl, - $elm$core$Set$union, - $elm$core$Set$empty, - A2( - $elm$core$List$map, - function (_v40) { - var declaredType = _v40.c; - return $author$project$Morphir$IR$Type$collectVariables(declaredType); - }, - def.inputTypes)); - var varToMeta = $elm$core$Dict$fromList( - A2( - $elm$core$List$map, - function (varName) { - return _Utils_Tuple2( - varName, - $author$project$Morphir$Type$MetaType$variableByName(varName)); - }, - $elm$core$Set$toList( - A2($elm$core$Set$union, inputTypeVars, outputTypeVars)))); - var outputConstraints = $author$project$Morphir$Type$ConstraintSet$singleton( - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$Infer$metaTypeVarForValue(def.body), - A4($author$project$Morphir$Type$MetaTypeMapping$concreteTypeToMetaType, baseVar, ir, varToMeta, def.outputType))); - var inputConstraints = $author$project$Morphir$Type$ConstraintSet$fromList( - A2( - $elm$core$List$map, - function (_v38) { - var _v39 = _v38.b; - var thisTypeVar = _v39.b; - var declaredType = _v38.c; - return A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), - A4($author$project$Morphir$Type$MetaTypeMapping$concreteTypeToMetaType, thisTypeVar, ir, varToMeta, declaredType)); - }, - def.inputTypes)); - var bodyConstraints = A3( - $author$project$Morphir$Type$Infer$constrainValue, - ir, - A2($elm$core$Dict$union, inputVars, vars), - def.body); - return $author$project$Morphir$Type$ConstraintSet$concat( - _List_fromArray( - [inputConstraints, outputConstraints, bodyConstraints])); - }); -var $author$project$Morphir$Type$Infer$constrainValue = F3( - function (ir, vars, annotatedValue) { - switch (annotatedValue.$) { - case 'Literal': - var _v1 = annotatedValue.a; - var thisTypeVar = _v1.b; - var literalValue = annotatedValue.b; - return A2($author$project$Morphir$Type$Infer$constrainLiteral, thisTypeVar, literalValue); - case 'Constructor': - var _v2 = annotatedValue.a; - var thisTypeVar = _v2.b; - var fQName = annotatedValue.b; - return A2( - $elm$core$Result$withDefault, - $author$project$Morphir$Type$ConstraintSet$empty, - A2( - $elm$core$Result$map, - $author$project$Morphir$Type$ConstraintSet$singleton, - A2( - $elm$core$Result$map, - $author$project$Morphir$Type$Constraint$equality( - $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar)), - A3($author$project$Morphir$Type$MetaTypeMapping$lookupConstructor, thisTypeVar, ir, fQName)))); - case 'Tuple': - var _v3 = annotatedValue.a; - var thisTypeVar = _v3.b; - var elems = annotatedValue.b; - var tupleConstraint = $author$project$Morphir$Type$ConstraintSet$singleton( - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), - $author$project$Morphir$Type$MetaType$metaTuple( - A2($elm$core$List$map, $author$project$Morphir$Type$Infer$metaTypeVarForValue, elems)))); - var elemsConstraints = A2( - $elm$core$List$map, - A2($author$project$Morphir$Type$Infer$constrainValue, ir, vars), - elems); - return $author$project$Morphir$Type$ConstraintSet$concat( - A2($elm$core$List$cons, tupleConstraint, elemsConstraints)); - case 'List': - var _v4 = annotatedValue.a; - var thisTypeVar = _v4.b; - var items = annotatedValue.b; - var itemType = $author$project$Morphir$Type$MetaType$metaVar( - $author$project$Morphir$Type$MetaType$subVariable(thisTypeVar)); - var listConstraint = A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), - $author$project$Morphir$Type$MetaType$listType(itemType)); - var itemConstraints = $author$project$Morphir$Type$ConstraintSet$concat( - A2( - $elm$core$List$map, - function (item) { - return A2( - $author$project$Morphir$Type$ConstraintSet$insert, - A2( - $author$project$Morphir$Type$Constraint$equality, - itemType, - $author$project$Morphir$Type$Infer$metaTypeVarForValue(item)), - A3($author$project$Morphir$Type$Infer$constrainValue, ir, vars, item)); - }, - items)); - return A2($author$project$Morphir$Type$ConstraintSet$insert, listConstraint, itemConstraints); - case 'Record': - var _v5 = annotatedValue.a; - var thisTypeVar = _v5.b; - var fieldValues = annotatedValue.b; - var recordType = A2( - $author$project$Morphir$Type$MetaType$metaRecord, - $elm$core$Maybe$Nothing, - $elm$core$Dict$fromList( - A2( - $elm$core$List$map, - function (_v6) { - var fieldName = _v6.a; - var fieldValue = _v6.b; - return _Utils_Tuple2( - fieldName, - $author$project$Morphir$Type$Infer$metaTypeVarForValue(fieldValue)); - }, - fieldValues))); - var recordConstraints = $author$project$Morphir$Type$ConstraintSet$singleton( - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), - recordType)); - var fieldConstraints = $author$project$Morphir$Type$ConstraintSet$concat( - A2( - $elm$core$List$map, - A2( - $elm$core$Basics$composeR, - $elm$core$Tuple$second, - A2($author$project$Morphir$Type$Infer$constrainValue, ir, vars)), - fieldValues)); - return $author$project$Morphir$Type$ConstraintSet$concat( - _List_fromArray( - [fieldConstraints, recordConstraints])); - case 'Variable': - var _v7 = annotatedValue.a; - var varUse = _v7.b; - var varName = annotatedValue.b; - var _v8 = A2($elm$core$Dict$get, varName, vars); - if (_v8.$ === 'Just') { - var varDecl = _v8.a; - return $author$project$Morphir$Type$ConstraintSet$singleton( - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$MetaType$metaVar(varUse), - $author$project$Morphir$Type$MetaType$metaVar(varDecl))); - } else { - return $author$project$Morphir$Type$ConstraintSet$empty; - } - case 'Reference': - var _v9 = annotatedValue.a; - var thisTypeVar = _v9.b; - var fQName = annotatedValue.b; - return A2( - $elm$core$Result$withDefault, - $author$project$Morphir$Type$ConstraintSet$empty, - A2( - $elm$core$Result$map, - $author$project$Morphir$Type$ConstraintSet$singleton, - A2( - $elm$core$Result$map, - $author$project$Morphir$Type$Constraint$equality( - $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar)), - A3($author$project$Morphir$Type$MetaTypeMapping$lookupValue, thisTypeVar, ir, fQName)))); - case 'Field': - var _v10 = annotatedValue.a; - var thisTypeVar = _v10.b; - var subjectValue = annotatedValue.b; - var fieldName = annotatedValue.c; - var extendsVar = $author$project$Morphir$Type$MetaType$subVariable(thisTypeVar); - var fieldType = $author$project$Morphir$Type$MetaType$metaVar( - $author$project$Morphir$Type$MetaType$subVariable(extendsVar)); - var extensibleRecordType = A2( - $author$project$Morphir$Type$MetaType$metaRecord, - $elm$core$Maybe$Just(extendsVar), - A2($elm$core$Dict$singleton, fieldName, fieldType)); - var fieldConstraints = $author$project$Morphir$Type$ConstraintSet$fromList( - _List_fromArray( - [ - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$Infer$metaTypeVarForValue(subjectValue), - extensibleRecordType), - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), - fieldType) - ])); - return $author$project$Morphir$Type$ConstraintSet$concat( - _List_fromArray( - [ - A3($author$project$Morphir$Type$Infer$constrainValue, ir, vars, subjectValue), - fieldConstraints - ])); - case 'FieldFunction': - var _v11 = annotatedValue.a; - var thisTypeVar = _v11.b; - var fieldName = annotatedValue.b; - var extendsVar = $author$project$Morphir$Type$MetaType$subVariable(thisTypeVar); - var fieldType = $author$project$Morphir$Type$MetaType$metaVar( - $author$project$Morphir$Type$MetaType$subVariable(extendsVar)); - var extensibleRecordType = A2( - $author$project$Morphir$Type$MetaType$metaRecord, - $elm$core$Maybe$Just(extendsVar), - A2($elm$core$Dict$singleton, fieldName, fieldType)); - return $author$project$Morphir$Type$ConstraintSet$singleton( - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), - A2($author$project$Morphir$Type$MetaType$metaFun, extensibleRecordType, fieldType))); - case 'Apply': - var _v12 = annotatedValue.a; - var thisTypeVar = _v12.b; - var funValue = annotatedValue.b; - var argValue = annotatedValue.c; - var funType = A2( - $author$project$Morphir$Type$MetaType$metaFun, - $author$project$Morphir$Type$Infer$metaTypeVarForValue(argValue), - $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar)); - var applyConstraints = $author$project$Morphir$Type$ConstraintSet$singleton( - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$Infer$metaTypeVarForValue(funValue), - funType)); - return $author$project$Morphir$Type$ConstraintSet$concat( - _List_fromArray( - [ - A3($author$project$Morphir$Type$Infer$constrainValue, ir, vars, funValue), - A3($author$project$Morphir$Type$Infer$constrainValue, ir, vars, argValue), - applyConstraints - ])); - case 'Lambda': - var _v13 = annotatedValue.a; - var thisTypeVar = _v13.b; - var argPattern = annotatedValue.b; - var bodyValue = annotatedValue.c; - var lambdaType = A2( - $author$project$Morphir$Type$MetaType$metaFun, - $author$project$Morphir$Type$Infer$metaTypeVarForPattern(argPattern), - $author$project$Morphir$Type$Infer$metaTypeVarForValue(bodyValue)); - var lambdaConstraints = $author$project$Morphir$Type$ConstraintSet$singleton( - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), - lambdaType)); - var _v14 = A2($author$project$Morphir$Type$Infer$constrainPattern, ir, argPattern); - var argVariables = _v14.a; - var argConstraints = _v14.b; - var bodyConstraints = A3( - $author$project$Morphir$Type$Infer$constrainValue, - ir, - A2($elm$core$Dict$union, argVariables, vars), - bodyValue); - return $author$project$Morphir$Type$ConstraintSet$concat( - _List_fromArray( - [lambdaConstraints, bodyConstraints, argConstraints])); - case 'LetDefinition': - var _v15 = annotatedValue.a; - var thisTypeVar = _v15.b; - var defName = annotatedValue.b; - var def = annotatedValue.c; - var inValue = annotatedValue.d; - var defTypeVar = $author$project$Morphir$Type$MetaType$subVariable(thisTypeVar); - var inConstraints = A3( - $author$project$Morphir$Type$Infer$constrainValue, - ir, - A3($elm$core$Dict$insert, defName, defTypeVar, vars), - inValue); - var defType = F2( - function (argTypes, returnType) { - if (!argTypes.b) { - return returnType; - } else { - var firstArg = argTypes.a; - var restOfArgs = argTypes.b; - return A2( - $author$project$Morphir$Type$MetaType$metaFun, - firstArg, - A2(defType, restOfArgs, returnType)); - } - }); - var letConstraints = $author$project$Morphir$Type$ConstraintSet$fromList( - _List_fromArray( - [ - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), - $author$project$Morphir$Type$Infer$metaTypeVarForValue(inValue)), - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$MetaType$metaVar(defTypeVar), - A2( - defType, - A2( - $elm$core$List$map, - function (_v17) { - var _v18 = _v17.b; - var argTypeVar = _v18.b; - return $author$project$Morphir$Type$MetaType$metaVar(argTypeVar); - }, - def.inputTypes), - $author$project$Morphir$Type$Infer$metaTypeVarForValue(def.body))) - ])); - var defConstraints = A4($author$project$Morphir$Type$Infer$constrainDefinition, thisTypeVar, ir, vars, def); - return $author$project$Morphir$Type$ConstraintSet$concat( - _List_fromArray( - [defConstraints, inConstraints, letConstraints])); - case 'LetRecursion': - var _v19 = annotatedValue.a; - var thisTypeVar = _v19.b; - var defs = annotatedValue.b; - var inValue = annotatedValue.c; - var letConstraints = $author$project$Morphir$Type$ConstraintSet$fromList( - _List_fromArray( - [ - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), - $author$project$Morphir$Type$Infer$metaTypeVarForValue(inValue)) - ])); - var defType = F2( - function (argTypes, returnType) { - if (!argTypes.b) { - return returnType; - } else { - var firstArg = argTypes.a; - var restOfArgs = argTypes.b; - return A2( - $author$project$Morphir$Type$MetaType$metaFun, - firstArg, - A2(defType, restOfArgs, returnType)); - } - }); - var _v21 = A3( - $elm$core$List$foldl, - F2( - function (_v22, _v23) { - var defName = _v22.a; - var def = _v22.b; - var lastTypeVar = _v23.a; - var constraintsSoFar = _v23.b; - var variablesSoFar = _v23.c; - var nextTypeVar = $author$project$Morphir$Type$MetaType$subVariable(lastTypeVar); - var letConstraint = $author$project$Morphir$Type$ConstraintSet$fromList( - _List_fromArray( - [ - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$MetaType$metaVar(nextTypeVar), - A2( - defType, - A2( - $elm$core$List$map, - function (_v24) { - var _v25 = _v24.b; - var argTypeVar = _v25.b; - return $author$project$Morphir$Type$MetaType$metaVar(argTypeVar); - }, - def.inputTypes), - $author$project$Morphir$Type$Infer$metaTypeVarForValue(def.body))) - ])); - return _Utils_Tuple3( - nextTypeVar, - A2($elm$core$List$cons, letConstraint, constraintsSoFar), - A2( - $elm$core$List$cons, - _Utils_Tuple2(defName, nextTypeVar), - variablesSoFar)); - }), - _Utils_Tuple3(thisTypeVar, _List_Nil, _List_Nil), - $elm$core$Dict$toList(defs)); - var lastDefTypeVar = _v21.a; - var defDeclsConstraints = _v21.b; - var defVariables = _v21.c; - var inConstraints = A3( - $author$project$Morphir$Type$Infer$constrainValue, - ir, - A2( - $elm$core$Dict$union, - $elm$core$Dict$fromList(defVariables), - vars), - inValue); - var defsConstraints = $author$project$Morphir$Type$ConstraintSet$concat( - A3( - $elm$core$List$foldl, - F2( - function (_v26, _v27) { - var def = _v26.b; - var lastTypeVar = _v27.a; - var constraintsSoFar = _v27.b; - var nextTypeVar = $author$project$Morphir$Type$MetaType$subVariable(lastTypeVar); - var defConstraints = A4($author$project$Morphir$Type$Infer$constrainDefinition, lastTypeVar, ir, vars, def); - return _Utils_Tuple2( - nextTypeVar, - A2($elm$core$List$cons, defConstraints, constraintsSoFar)); - }), - _Utils_Tuple2(lastDefTypeVar, defDeclsConstraints), - $elm$core$Dict$toList(defs)).b); - return $author$project$Morphir$Type$ConstraintSet$concat( - _List_fromArray( - [defsConstraints, inConstraints, letConstraints])); - case 'Destructure': - var _v28 = annotatedValue.a; - var thisTypeVar = _v28.b; - var bindPattern = annotatedValue.b; - var bindValue = annotatedValue.c; - var inValue = annotatedValue.d; - var destructureConstraints = $author$project$Morphir$Type$ConstraintSet$fromList( - _List_fromArray( - [ - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), - $author$project$Morphir$Type$Infer$metaTypeVarForValue(inValue)), - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$Infer$metaTypeVarForValue(bindValue), - $author$project$Morphir$Type$Infer$metaTypeVarForPattern(bindPattern)) - ])); - var bindValueConstraints = A3($author$project$Morphir$Type$Infer$constrainValue, ir, vars, bindValue); - var _v29 = A2($author$project$Morphir$Type$Infer$constrainPattern, ir, bindPattern); - var bindPatternVariables = _v29.a; - var bindPatternConstraints = _v29.b; - var inValueConstraints = A3( - $author$project$Morphir$Type$Infer$constrainValue, - ir, - A2($elm$core$Dict$union, bindPatternVariables, vars), - inValue); - return $author$project$Morphir$Type$ConstraintSet$concat( - _List_fromArray( - [bindPatternConstraints, bindValueConstraints, inValueConstraints, destructureConstraints])); - case 'IfThenElse': - var _v30 = annotatedValue.a; - var thisTypeVar = _v30.b; - var condition = annotatedValue.b; - var thenBranch = annotatedValue.c; - var elseBranch = annotatedValue.d; - var specificConstraints = $author$project$Morphir$Type$ConstraintSet$fromList( - _List_fromArray( - [ - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$Infer$metaTypeVarForValue(condition), - $author$project$Morphir$Type$MetaType$boolType), - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$Infer$metaTypeVarForValue(elseBranch), - $author$project$Morphir$Type$Infer$metaTypeVarForValue(thenBranch)), - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), - $author$project$Morphir$Type$Infer$metaTypeVarForValue(thenBranch)) - ])); - var childConstraints = _List_fromArray( - [ - A3($author$project$Morphir$Type$Infer$constrainValue, ir, vars, condition), - A3($author$project$Morphir$Type$Infer$constrainValue, ir, vars, thenBranch), - A3($author$project$Morphir$Type$Infer$constrainValue, ir, vars, elseBranch) - ]); - return $author$project$Morphir$Type$ConstraintSet$concat( - A2($elm$core$List$cons, specificConstraints, childConstraints)); - case 'PatternMatch': - var _v31 = annotatedValue.a; - var thisTypeVar = _v31.b; - var subjectValue = annotatedValue.b; - var cases = annotatedValue.c; - var thisType = $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar); - var subjectType = $author$project$Morphir$Type$Infer$metaTypeVarForValue(subjectValue); - var subjectConstraints = A3($author$project$Morphir$Type$Infer$constrainValue, ir, vars, subjectValue); - var casesConstraints = A2( - $elm$core$List$map, - function (_v32) { - var casePattern = _v32.a; - var caseValue = _v32.b; - var caseConstraints = $author$project$Morphir$Type$ConstraintSet$fromList( - _List_fromArray( - [ - A2( - $author$project$Morphir$Type$Constraint$equality, - subjectType, - $author$project$Morphir$Type$Infer$metaTypeVarForPattern(casePattern)), - A2( - $author$project$Morphir$Type$Constraint$equality, - thisType, - $author$project$Morphir$Type$Infer$metaTypeVarForValue(caseValue)) - ])); - var _v33 = A2($author$project$Morphir$Type$Infer$constrainPattern, ir, casePattern); - var casePatternVariables = _v33.a; - var casePatternConstraints = _v33.b; - var caseValueConstraints = A3( - $author$project$Morphir$Type$Infer$constrainValue, - ir, - A2($elm$core$Dict$union, casePatternVariables, vars), - caseValue); - return $author$project$Morphir$Type$ConstraintSet$concat( - _List_fromArray( - [casePatternConstraints, caseValueConstraints, caseConstraints])); - }, - cases); - return $author$project$Morphir$Type$ConstraintSet$concat( - A2($elm$core$List$cons, subjectConstraints, casesConstraints)); - case 'UpdateRecord': - var _v34 = annotatedValue.a; - var thisTypeVar = _v34.b; - var subjectValue = annotatedValue.b; - var fieldValues = annotatedValue.c; - var fieldValueConstraints = $author$project$Morphir$Type$ConstraintSet$concat( - A2( - $elm$core$List$map, - function (_v36) { - var fieldValue = _v36.b; - return A3($author$project$Morphir$Type$Infer$constrainValue, ir, vars, fieldValue); - }, - fieldValues)); - var extendsVar = $author$project$Morphir$Type$MetaType$subVariable(thisTypeVar); - var extensibleRecordType = A2( - $author$project$Morphir$Type$MetaType$metaRecord, - $elm$core$Maybe$Just(extendsVar), - $elm$core$Dict$fromList( - A2( - $elm$core$List$map, - function (_v35) { - var fieldName = _v35.a; - var fieldValue = _v35.b; - return _Utils_Tuple2( - fieldName, - $author$project$Morphir$Type$Infer$metaTypeVarForValue(fieldValue)); - }, - fieldValues))); - var fieldConstraints = $author$project$Morphir$Type$ConstraintSet$fromList( - _List_fromArray( - [ - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$Infer$metaTypeVarForValue(subjectValue), - extensibleRecordType), - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), - $author$project$Morphir$Type$Infer$metaTypeVarForValue(subjectValue)) - ])); - return $author$project$Morphir$Type$ConstraintSet$concat( - _List_fromArray( - [ - A3($author$project$Morphir$Type$Infer$constrainValue, ir, vars, subjectValue), - fieldValueConstraints, - fieldConstraints - ])); - default: - var _v37 = annotatedValue.a; - var thisTypeVar = _v37.b; - return $author$project$Morphir$Type$ConstraintSet$singleton( - A2( - $author$project$Morphir$Type$Constraint$equality, - $author$project$Morphir$Type$MetaType$metaVar(thisTypeVar), - $author$project$Morphir$Type$MetaType$metaUnit)); - } - }); -var $author$project$Morphir$Type$Solve$SolutionMap = function (a) { - return {$: 'SolutionMap', a: a}; -}; -var $author$project$Morphir$Type$Solve$emptySolution = $author$project$Morphir$Type$Solve$SolutionMap($elm$core$Dict$empty); -var $author$project$Morphir$Type$Infer$UnifyError = function (a) { - return {$: 'UnifyError', a: a}; -}; -var $author$project$Morphir$Type$MetaType$substituteVariable = F3( - function (_var, replacement, original) { - if (A2( - $elm$core$Set$member, - _var, - $author$project$Morphir$Type$MetaType$variables(original))) { - switch (original.$) { - case 'MetaVar': - var thisVar = original.a; - return _Utils_eq(thisVar, _var) ? replacement : original; - case 'MetaTuple': - var metaElems = original.b; - return $author$project$Morphir$Type$MetaType$metaTuple( - A2( - $elm$core$List$map, - A2($author$project$Morphir$Type$MetaType$substituteVariable, _var, replacement), - metaElems)); - case 'MetaRecord': - var _extends = original.b; - var metaFields = original.c; - return _Utils_eq( - _extends, - $elm$core$Maybe$Just(_var)) ? replacement : A2( - $author$project$Morphir$Type$MetaType$metaRecord, - _extends, - A2( - $elm$core$Dict$map, - F2( - function (_v1, fieldType) { - return A3($author$project$Morphir$Type$MetaType$substituteVariable, _var, replacement, fieldType); - }), - metaFields)); - case 'MetaFun': - var metaFunc = original.b; - var metaArg = original.c; - return A2( - $author$project$Morphir$Type$MetaType$metaFun, - A3($author$project$Morphir$Type$MetaType$substituteVariable, _var, replacement, metaFunc), - A3($author$project$Morphir$Type$MetaType$substituteVariable, _var, replacement, metaArg)); - case 'MetaRef': - var fQName = original.b; - var args = original.c; - var maybeAliasedType = original.d; - if (maybeAliasedType.$ === 'Just') { - var aliasedType = maybeAliasedType.a; - return A3( - $author$project$Morphir$Type$MetaType$metaAlias, - fQName, - A2( - $elm$core$List$map, - A2($author$project$Morphir$Type$MetaType$substituteVariable, _var, replacement), - args), - A3($author$project$Morphir$Type$MetaType$substituteVariable, _var, replacement, aliasedType)); - } else { - return A2( - $author$project$Morphir$Type$MetaType$metaRef, - fQName, - A2( - $elm$core$List$map, - A2($author$project$Morphir$Type$MetaType$substituteVariable, _var, replacement), - args)); - } - default: - return original; - } - } else { - return original; - } - }); -var $author$project$Morphir$Type$Constraint$substitute = F3( - function (_var, replacement, constraint) { - if (constraint.$ === 'Equality') { - var metaType1 = constraint.a; - var metaType2 = constraint.b; - return A2( - $author$project$Morphir$Type$Constraint$Equality, - A3($author$project$Morphir$Type$MetaType$substituteVariable, _var, replacement, metaType1), - A3($author$project$Morphir$Type$MetaType$substituteVariable, _var, replacement, metaType2)); - } else { - var metaType = constraint.a; - var cls = constraint.b; - return A2( - $author$project$Morphir$Type$Constraint$Class, - A3($author$project$Morphir$Type$MetaType$substituteVariable, _var, replacement, metaType), - cls); - } - }); -var $author$project$Morphir$Type$ConstraintSet$substituteVariable = F3( - function (_var, replacement, _v0) { - var constraints = _v0.a; - return $author$project$Morphir$Type$ConstraintSet$ConstraintSet( - A2( - $elm$core$List$filterMap, - function (constraint) { - var newConstraint = A3($author$project$Morphir$Type$Constraint$substitute, _var, replacement, constraint); - return $author$project$Morphir$Type$Constraint$isTrivial(newConstraint) ? $elm$core$Maybe$Nothing : $elm$core$Maybe$Just(newConstraint); - }, - constraints)); - }); -var $author$project$Morphir$Type$ConstraintSet$applySubstitutions = F2( - function (_v0, constraintSet) { - var substitutions = _v0.a; - return A3( - $elm$core$List$foldl, - F2( - function (_v1, soFar) { - var _var = _v1.a; - var replacement = _v1.b; - return A3($author$project$Morphir$Type$ConstraintSet$substituteVariable, _var, replacement, soFar); - }), - constraintSet, - $elm$core$Dict$toList(substitutions)); - }); -var $author$project$Morphir$Type$Solve$isEmptySolution = function (_v0) { - var solutions = _v0.a; - return $elm$core$Dict$isEmpty(solutions); -}; -var $author$project$Morphir$Type$Solve$CouldNotFindField = function (a) { - return {$: 'CouldNotFindField', a: a}; -}; -var $author$project$Morphir$Type$Solve$CouldNotUnify = F3( - function (a, b, c) { - return {$: 'CouldNotUnify', a: a, b: b, c: c}; - }); -var $author$project$Morphir$Type$Solve$FieldMismatch = {$: 'FieldMismatch'}; -var $author$project$Morphir$Type$Solve$NoUnificationRule = {$: 'NoUnificationRule'}; -var $author$project$Morphir$Type$Solve$RefMismatch = {$: 'RefMismatch'}; -var $author$project$Morphir$Type$Solve$TuplesOfDifferentSize = {$: 'TuplesOfDifferentSize'}; -var $author$project$Morphir$Type$Solve$UnificationErrors = function (a) { - return {$: 'UnificationErrors', a: a}; -}; -var $elm$core$Dict$diff = F2( - function (t1, t2) { - return A3( - $elm$core$Dict$foldl, - F3( - function (k, v, t) { - return A2($elm$core$Dict$remove, k, t); - }), - t1, - t2); - }); -var $elm$core$Dict$filter = F2( - function (isGood, dict) { - return A3( - $elm$core$Dict$foldl, - F3( - function (k, v, d) { - return A2(isGood, k, v) ? A3($elm$core$Dict$insert, k, v, d) : d; - }), - $elm$core$Dict$empty, - dict); - }); -var $elm$core$Dict$intersect = F2( - function (t1, t2) { - return A2( - $elm$core$Dict$filter, - F2( - function (k, _v0) { - return A2($elm$core$Dict$member, k, t2); - }), - t1); - }); -var $author$project$Morphir$Type$MetaType$wrapInAliases = F2( - function (aliases, tpe) { - if (!aliases.b) { - return tpe; - } else { - var _v1 = aliases.a; - var alias = _v1.a; - var aliasArgs = _v1.b; - var restOfAliases = aliases.b; - return A3( - $author$project$Morphir$Type$MetaType$metaAlias, - alias, - aliasArgs, - A2($author$project$Morphir$Type$MetaType$wrapInAliases, restOfAliases, tpe)); - } - }); -var $author$project$Morphir$Type$Solve$singleSolution = F3( - function (aliases, _var, metaType) { - return $author$project$Morphir$Type$Solve$SolutionMap( - A2( - $elm$core$Dict$singleton, - _var, - A2($author$project$Morphir$Type$MetaType$wrapInAliases, aliases, metaType))); - }); -var $author$project$Morphir$Type$Solve$substituteVariable = F3( - function (_var, replacement, _v0) { - var solutions = _v0.a; - return $author$project$Morphir$Type$Solve$SolutionMap( - A2( - $elm$core$Dict$map, - F2( - function (_v1, metaType) { - return A3($author$project$Morphir$Type$MetaType$substituteVariable, _var, replacement, metaType); - }), - solutions)); - }); -var $author$project$Morphir$Type$MetaType$substituteVariables = F2( - function (replacements, original) { - return A3( - $elm$core$List$foldl, - F2( - function (_v0, soFar) { - var _var = _v0.a; - var replacement = _v0.b; - return A3($author$project$Morphir$Type$MetaType$substituteVariable, _var, replacement, soFar); - }), - original, - replacements); - }); -var $author$project$Morphir$Type$Solve$unifyUnit = F2( - function (aliases, metaType2) { - if (metaType2.$ === 'MetaUnit') { - return $elm$core$Result$Ok($author$project$Morphir$Type$Solve$emptySolution); - } else { - return $elm$core$Result$Err( - A3($author$project$Morphir$Type$Solve$CouldNotUnify, $author$project$Morphir$Type$Solve$NoUnificationRule, $author$project$Morphir$Type$MetaType$MetaUnit, metaType2)); - } - }); -var $author$project$Morphir$Type$MetaType$isNamedVariable = function (_v0) { - var name = _v0.a; - return !$elm$core$List$isEmpty(name); -}; -var $author$project$Morphir$Type$Solve$unifyVariable = F3( - function (aliases, var1, metaType2) { - if (metaType2.$ === 'MetaVar') { - var var2 = metaType2.a; - return $author$project$Morphir$Type$MetaType$isNamedVariable(var1) ? $elm$core$Result$Ok( - A3( - $author$project$Morphir$Type$Solve$singleSolution, - aliases, - var2, - $author$project$Morphir$Type$MetaType$metaVar(var1))) : $elm$core$Result$Ok( - A3($author$project$Morphir$Type$Solve$singleSolution, aliases, var1, metaType2)); - } else { - return $elm$core$Result$Ok( - A3($author$project$Morphir$Type$Solve$singleSolution, aliases, var1, metaType2)); - } - }); -var $author$project$Morphir$Type$Solve$addSolution = F4( - function (ir, _var, newSolution, _v14) { - var currentSolutions = _v14.a; - var substitutedNewSolution = A3( - $elm$core$List$foldl, - F2( - function (_v17, soFar) { - var currentVar = _v17.a; - var currentMetaType = _v17.b; - return A3($author$project$Morphir$Type$MetaType$substituteVariable, currentVar, currentMetaType, soFar); - }), - newSolution, - $elm$core$Dict$toList(currentSolutions)); - var _v15 = A2($elm$core$Dict$get, _var, currentSolutions); - if (_v15.$ === 'Just') { - var existingSolution = _v15.a; - return A2( - $elm$core$Result$map, - function (_v16) { - var newSubstitutions = _v16.a; - return A3( - $author$project$Morphir$Type$Solve$substituteVariable, - _var, - substitutedNewSolution, - $author$project$Morphir$Type$Solve$SolutionMap( - A2( - $elm$core$Dict$union, - newSubstitutions, - A3( - $elm$core$Dict$insert, - _var, - A2( - $author$project$Morphir$Type$MetaType$substituteVariables, - $elm$core$Dict$toList(newSubstitutions), - existingSolution), - currentSolutions)))); - }, - A4($author$project$Morphir$Type$Solve$unifyMetaType, ir, _List_Nil, existingSolution, substitutedNewSolution)); - } else { - return $elm$core$Result$Ok( - A3( - $author$project$Morphir$Type$Solve$substituteVariable, - _var, - substitutedNewSolution, - $author$project$Morphir$Type$Solve$SolutionMap( - A3($elm$core$Dict$insert, _var, substitutedNewSolution, currentSolutions)))); - } - }); -var $author$project$Morphir$Type$Solve$concatSolutions = F2( - function (refs, solutionMaps) { - return A3( - $elm$core$List$foldl, - F2( - function (nextSolutions, resultSoFar) { - return A2( - $elm$core$Result$andThen, - function (solutionsSoFar) { - return A3($author$project$Morphir$Type$Solve$mergeSolutions, refs, solutionsSoFar, nextSolutions); - }, - resultSoFar); - }), - $elm$core$Result$Ok($author$project$Morphir$Type$Solve$emptySolution), - solutionMaps); - }); -var $author$project$Morphir$Type$Solve$mergeSolutions = F3( - function (refs, _v12, currentSolutions) { - var newSolutions = _v12.a; - return A3( - $elm$core$List$foldl, - F2( - function (_v13, solutionsSoFar) { - var _var = _v13.a; - var newSolution = _v13.b; - return A2( - $elm$core$Result$andThen, - A3($author$project$Morphir$Type$Solve$addSolution, refs, _var, newSolution), - solutionsSoFar); - }), - $elm$core$Result$Ok(currentSolutions), - $elm$core$Dict$toList(newSolutions)); - }); -var $author$project$Morphir$Type$Solve$unifyFields = F5( - function (ir, oldExtends, oldFields, newExtends, newFields) { - var extraOldFields = A2($elm$core$Dict$diff, oldFields, newFields); - var extraNewFields = A2($elm$core$Dict$diff, newFields, oldFields); - var commonFieldsOldType = A2($elm$core$Dict$intersect, oldFields, newFields); - var fieldSolutionsResult = A2( - $elm$core$Result$andThen, - $author$project$Morphir$Type$Solve$concatSolutions(ir), - A2( - $elm$core$Result$mapError, - $author$project$Morphir$Type$Solve$UnificationErrors, - $author$project$Morphir$ListOfResults$liftAllErrors( - A2( - $elm$core$List$map, - function (_v11) { - var fieldName = _v11.a; - var originalType = _v11.b; - return A2( - $elm$core$Result$andThen, - A3($author$project$Morphir$Type$Solve$unifyMetaType, ir, _List_Nil, originalType), - A2( - $elm$core$Result$fromMaybe, - $author$project$Morphir$Type$Solve$CouldNotFindField(fieldName), - A2($elm$core$Dict$get, fieldName, newFields))); - }, - $elm$core$Dict$toList(commonFieldsOldType))))); - var unifiedFields = A2( - $elm$core$Dict$union, - commonFieldsOldType, - A2($elm$core$Dict$union, extraOldFields, extraNewFields)); - return (_Utils_eq(oldExtends, $elm$core$Maybe$Nothing) && (!$elm$core$Dict$isEmpty(extraNewFields))) ? $elm$core$Result$Err( - A3( - $author$project$Morphir$Type$Solve$CouldNotUnify, - $author$project$Morphir$Type$Solve$FieldMismatch, - A2($author$project$Morphir$Type$MetaType$metaRecord, oldExtends, oldFields), - A2($author$project$Morphir$Type$MetaType$metaRecord, newExtends, newFields))) : ((_Utils_eq(newExtends, $elm$core$Maybe$Nothing) && (!$elm$core$Dict$isEmpty(extraOldFields))) ? $elm$core$Result$Err( - A3( - $author$project$Morphir$Type$Solve$CouldNotUnify, - $author$project$Morphir$Type$Solve$FieldMismatch, - A2($author$project$Morphir$Type$MetaType$metaRecord, oldExtends, oldFields), - A2($author$project$Morphir$Type$MetaType$metaRecord, newExtends, newFields))) : A2( - $elm$core$Result$map, - $elm$core$Tuple$pair(unifiedFields), - fieldSolutionsResult)); - }); -var $author$project$Morphir$Type$Solve$unifyFun = F5( - function (ir, aliases, arg1, return1, metaType2) { - if (metaType2.$ === 'MetaFun') { - var arg2 = metaType2.b; - var return2 = metaType2.c; - return A2( - $elm$core$Result$andThen, - $elm$core$Basics$identity, - A3( - $elm$core$Result$map2, - $author$project$Morphir$Type$Solve$mergeSolutions(ir), - A4($author$project$Morphir$Type$Solve$unifyMetaType, ir, _List_Nil, arg1, arg2), - A4($author$project$Morphir$Type$Solve$unifyMetaType, ir, _List_Nil, return1, return2))); - } else { - return $elm$core$Result$Err( - A3( - $author$project$Morphir$Type$Solve$CouldNotUnify, - $author$project$Morphir$Type$Solve$NoUnificationRule, - A2($author$project$Morphir$Type$MetaType$metaFun, arg1, return1), - metaType2)); - } - }); -var $author$project$Morphir$Type$Solve$unifyMetaType = F4( - function (ir, aliases, metaType1, metaType2) { - unifyMetaType: - while (true) { - var handleCommon = F2( - function (mt2, specific) { - _v9$2: - while (true) { - switch (mt2.$) { - case 'MetaVar': - var var2 = mt2.a; - return A3($author$project$Morphir$Type$Solve$unifyVariable, aliases, var2, metaType1); - case 'MetaRef': - if (mt2.d.$ === 'Just') { - var ref2 = mt2.b; - var args2 = mt2.c; - var aliasedType2 = mt2.d.a; - return A4( - $author$project$Morphir$Type$Solve$unifyMetaType, - ir, - A2( - $elm$core$List$cons, - _Utils_Tuple2(ref2, args2), - aliases), - aliasedType2, - metaType1); - } else { - break _v9$2; - } - default: - break _v9$2; - } - } - return specific(mt2); - }); - if (_Utils_eq(metaType1, metaType2)) { - return $elm$core$Result$Ok($author$project$Morphir$Type$Solve$emptySolution); - } else { - switch (metaType1.$) { - case 'MetaVar': - var var1 = metaType1.a; - return A3($author$project$Morphir$Type$Solve$unifyVariable, aliases, var1, metaType2); - case 'MetaTuple': - var elems1 = metaType1.b; - return A2( - handleCommon, - metaType2, - A3($author$project$Morphir$Type$Solve$unifyTuple, ir, aliases, elems1)); - case 'MetaRef': - if (metaType1.d.$ === 'Nothing') { - var ref1 = metaType1.b; - var args1 = metaType1.c; - var _v8 = metaType1.d; - return A2( - handleCommon, - metaType2, - A4($author$project$Morphir$Type$Solve$unifyRef, ir, aliases, ref1, args1)); - } else { - var ref1 = metaType1.b; - var args1 = metaType1.c; - var aliasedType1 = metaType1.d.a; - var $temp$ir = ir, - $temp$aliases = A2( - $elm$core$List$cons, - _Utils_Tuple2(ref1, args1), - aliases), - $temp$metaType1 = aliasedType1, - $temp$metaType2 = metaType2; - ir = $temp$ir; - aliases = $temp$aliases; - metaType1 = $temp$metaType1; - metaType2 = $temp$metaType2; - continue unifyMetaType; - } - case 'MetaFun': - var arg1 = metaType1.b; - var return1 = metaType1.c; - return A2( - handleCommon, - metaType2, - A4($author$project$Morphir$Type$Solve$unifyFun, ir, aliases, arg1, return1)); - case 'MetaRecord': - var extends1 = metaType1.b; - var fields1 = metaType1.c; - return A2( - handleCommon, - metaType2, - A4($author$project$Morphir$Type$Solve$unifyRecord, ir, aliases, extends1, fields1)); - default: - return A2( - handleCommon, - metaType2, - $author$project$Morphir$Type$Solve$unifyUnit(aliases)); - } - } - } - }); -var $author$project$Morphir$Type$Solve$unifyRecord = F5( - function (refs, aliases, extends1, fields1, metaType2) { - if (metaType2.$ === 'MetaRecord') { - var extends2 = metaType2.b; - var fields2 = metaType2.c; - return A2( - $elm$core$Result$andThen, - function (_v4) { - var newFields = _v4.a; - var fieldSolutions = _v4.b; - if (extends1.$ === 'Just') { - var extendsVar1 = extends1.a; - return A3( - $author$project$Morphir$Type$Solve$mergeSolutions, - refs, - fieldSolutions, - A3( - $author$project$Morphir$Type$Solve$singleSolution, - aliases, - extendsVar1, - A2($author$project$Morphir$Type$MetaType$metaRecord, extends2, newFields))); - } else { - if (extends2.$ === 'Just') { - var extendsVar2 = extends2.a; - return A3( - $author$project$Morphir$Type$Solve$mergeSolutions, - refs, - fieldSolutions, - A3( - $author$project$Morphir$Type$Solve$singleSolution, - aliases, - extendsVar2, - A2($author$project$Morphir$Type$MetaType$metaRecord, extends1, newFields))); - } else { - return $elm$core$Result$Ok(fieldSolutions); - } - } - }, - A5($author$project$Morphir$Type$Solve$unifyFields, refs, extends1, fields1, extends2, fields2)); - } else { - return $elm$core$Result$Err( - A3( - $author$project$Morphir$Type$Solve$CouldNotUnify, - $author$project$Morphir$Type$Solve$NoUnificationRule, - A2($author$project$Morphir$Type$MetaType$metaRecord, extends1, fields1), - metaType2)); - } - }); -var $author$project$Morphir$Type$Solve$unifyRef = F5( - function (ir, aliases, ref1, args1, metaType2) { - _v1$2: - while (true) { - switch (metaType2.$) { - case 'MetaRef': - if (metaType2.d.$ === 'Nothing') { - var ref2 = metaType2.b; - var args2 = metaType2.c; - var _v2 = metaType2.d; - return _Utils_eq(ref1, ref2) ? (_Utils_eq( - $elm$core$List$length(args1), - $elm$core$List$length(args2)) ? A2( - $elm$core$Result$andThen, - $author$project$Morphir$Type$Solve$concatSolutions(ir), - A2( - $elm$core$Result$mapError, - $author$project$Morphir$Type$Solve$UnificationErrors, - $author$project$Morphir$ListOfResults$liftAllErrors( - A3( - $elm$core$List$map2, - A2($author$project$Morphir$Type$Solve$unifyMetaType, ir, _List_Nil), - args1, - args2)))) : $elm$core$Result$Err( - A3( - $author$project$Morphir$Type$Solve$CouldNotUnify, - $author$project$Morphir$Type$Solve$TuplesOfDifferentSize, - A2($author$project$Morphir$Type$MetaType$metaRef, ref1, args1), - metaType2))) : $elm$core$Result$Err( - A3( - $author$project$Morphir$Type$Solve$CouldNotUnify, - $author$project$Morphir$Type$Solve$RefMismatch, - A2($author$project$Morphir$Type$MetaType$metaRef, ref1, args1), - metaType2)); - } else { - break _v1$2; - } - case 'MetaRecord': - var extends2 = metaType2.b; - var fields2 = metaType2.c; - return A5( - $author$project$Morphir$Type$Solve$unifyRecord, - ir, - aliases, - extends2, - fields2, - A2($author$project$Morphir$Type$MetaType$metaRef, ref1, args1)); - default: - break _v1$2; - } - } - return $elm$core$Result$Err( - A3( - $author$project$Morphir$Type$Solve$CouldNotUnify, - $author$project$Morphir$Type$Solve$NoUnificationRule, - A2($author$project$Morphir$Type$MetaType$metaRef, ref1, args1), - metaType2)); - }); -var $author$project$Morphir$Type$Solve$unifyTuple = F4( - function (ir, aliases, elems1, metaType2) { - if (metaType2.$ === 'MetaTuple') { - var elems2 = metaType2.b; - return _Utils_eq( - $elm$core$List$length(elems1), - $elm$core$List$length(elems2)) ? A2( - $elm$core$Result$andThen, - $author$project$Morphir$Type$Solve$concatSolutions(ir), - A2( - $elm$core$Result$mapError, - $author$project$Morphir$Type$Solve$UnificationErrors, - $author$project$Morphir$ListOfResults$liftAllErrors( - A3( - $elm$core$List$map2, - A2($author$project$Morphir$Type$Solve$unifyMetaType, ir, _List_Nil), - elems1, - elems2)))) : $elm$core$Result$Err( - A3( - $author$project$Morphir$Type$Solve$CouldNotUnify, - $author$project$Morphir$Type$Solve$TuplesOfDifferentSize, - $author$project$Morphir$Type$MetaType$metaTuple(elems1), - metaType2)); - } else { - return $elm$core$Result$Err( - A3( - $author$project$Morphir$Type$Solve$CouldNotUnify, - $author$project$Morphir$Type$Solve$NoUnificationRule, - $author$project$Morphir$Type$MetaType$metaTuple(elems1), - metaType2)); - } - }); -var $author$project$Morphir$Type$Solve$findSubstitution = F2( - function (ir, constraints) { - findSubstitution: - while (true) { - if (!constraints.b) { - return $elm$core$Result$Ok($elm$core$Maybe$Nothing); - } else { - var firstConstraint = constraints.a; - var restOfConstraints = constraints.b; - if (firstConstraint.$ === 'Equality') { - var metaType1 = firstConstraint.a; - var metaType2 = firstConstraint.b; - return A2( - $elm$core$Result$andThen, - function (solutions) { - return $author$project$Morphir$Type$Solve$isEmptySolution(solutions) ? A2($author$project$Morphir$Type$Solve$findSubstitution, ir, restOfConstraints) : $elm$core$Result$Ok( - $elm$core$Maybe$Just(solutions)); - }, - A4($author$project$Morphir$Type$Solve$unifyMetaType, ir, _List_Nil, metaType1, metaType2)); - } else { - var $temp$ir = ir, - $temp$constraints = restOfConstraints; - ir = $temp$ir; - constraints = $temp$constraints; - continue findSubstitution; - } - } - } - }); -var $author$project$Morphir$Type$Infer$ClassConstraintViolation = F2( - function (a, b) { - return {$: 'ClassConstraintViolation', a: a, b: b}; - }); -var $elm$core$List$member = F2( - function (x, xs) { - return A2( - $elm$core$List$any, - function (a) { - return _Utils_eq(a, x); - }, - xs); - }); -var $author$project$Morphir$Type$MetaType$intType = A2( - $author$project$Morphir$Type$MetaType$metaRef, - A3($author$project$Morphir$IR$FQName$fqn, 'Morphir.SDK', 'Basics', 'Int'), - _List_Nil); -var $author$project$Morphir$Type$Class$numberTypes = _List_fromArray( - [$author$project$Morphir$Type$MetaType$intType, $author$project$Morphir$Type$MetaType$floatType]); -var $author$project$Morphir$Type$Class$member = F2( - function (metaType, _class) { - var targetType = function (mt) { - targetType: - while (true) { - if ((mt.$ === 'MetaRef') && (mt.d.$ === 'Just')) { - var t = mt.d.a; - var $temp$mt = t; - mt = $temp$mt; - continue targetType; - } else { - return mt; - } - } - }; - return A2( - $elm$core$List$member, - targetType(metaType), - $author$project$Morphir$Type$Class$numberTypes); - }); -var $author$project$Morphir$Type$Infer$TypeErrors = function (a) { - return {$: 'TypeErrors', a: a}; -}; -var $author$project$Morphir$Type$Infer$typeErrors = function (errors) { - if (errors.b && (!errors.b.b)) { - var single = errors.a; - return single; - } else { - return $author$project$Morphir$Type$Infer$TypeErrors(errors); - } -}; -var $author$project$Morphir$Type$Infer$validateConstraints = function (constraints) { - return A2( - $elm$core$Result$mapError, - $author$project$Morphir$Type$Infer$typeErrors, - $author$project$Morphir$ListOfResults$liftAllErrors( - A2( - $elm$core$List$map, - function (constraint) { - if (constraint.$ === 'Class') { - if (constraint.a.$ === 'MetaVar') { - return $elm$core$Result$Ok(constraint); - } else { - var metaType = constraint.a; - var _class = constraint.b; - return A2($author$project$Morphir$Type$Class$member, metaType, _class) ? $elm$core$Result$Ok(constraint) : $elm$core$Result$Err( - A2($author$project$Morphir$Type$Infer$ClassConstraintViolation, metaType, _class)); - } - } else { - return $elm$core$Result$Ok(constraint); - } - }, - constraints))); -}; -var $author$project$Morphir$Type$Infer$solveHelp = F3( - function (refs, solutionsSoFar, constraintSet) { - var constraints = constraintSet.a; - return A2( - $elm$core$Result$andThen, - function (nonTrivialConstraints) { - return A2( - $elm$core$Result$andThen, - function (maybeNewSolutions) { - if (maybeNewSolutions.$ === 'Nothing') { - return $elm$core$Result$Ok( - _Utils_Tuple2( - $author$project$Morphir$Type$ConstraintSet$fromList(nonTrivialConstraints), - solutionsSoFar)); - } else { - var newSolutions = maybeNewSolutions.a; - return A2( - $elm$core$Result$andThen, - function (mergedSolutions) { - return A3( - $author$project$Morphir$Type$Infer$solveHelp, - refs, - mergedSolutions, - A2($author$project$Morphir$Type$ConstraintSet$applySubstitutions, mergedSolutions, constraintSet)); - }, - A2( - $elm$core$Result$mapError, - $author$project$Morphir$Type$Infer$UnifyError, - A3($author$project$Morphir$Type$Solve$mergeSolutions, refs, newSolutions, solutionsSoFar))); - } - }, - A2( - $elm$core$Result$mapError, - $author$project$Morphir$Type$Infer$UnifyError, - A2($author$project$Morphir$Type$Solve$findSubstitution, refs, nonTrivialConstraints))); - }, - $author$project$Morphir$Type$Infer$validateConstraints(constraints)); - }); -var $author$project$Morphir$Type$Infer$solve = F2( - function (refs, constraintSet) { - return A3($author$project$Morphir$Type$Infer$solveHelp, refs, $author$project$Morphir$Type$Solve$emptySolution, constraintSet); - }); -var $author$project$Morphir$Type$Infer$inferValue = F2( - function (ir, untypedValue) { - var _v0 = A2($author$project$Morphir$Type$Infer$annotateValue, 0, untypedValue); - var annotatedValue = _v0.a; - var lastVarIndex = _v0.b; - var constraints = A3($author$project$Morphir$Type$Infer$constrainValue, ir, $elm$core$Dict$empty, annotatedValue); - var solution = A2($author$project$Morphir$Type$Infer$solve, ir, constraints); - return A2( - $elm$core$Result$map, - $author$project$Morphir$Type$Infer$applySolutionToAnnotatedValue(annotatedValue), - solution); - }); -var $author$project$Morphir$Visual$VisualTypedValue$rawToVisualTypedValue = F2( - function (references, rawValue) { - return A2( - $elm$core$Result$andThen, - function (typedValue) { - return $elm$core$Result$Ok( - $author$project$Morphir$Visual$VisualTypedValue$typedToVisualTypedValue( - A3( - $author$project$Morphir$IR$Value$mapValueAttributes, - $elm$core$Basics$identity, - function (_v0) { - var tpe = _v0.b; - return tpe; - }, - typedValue))); - }, - A2($author$project$Morphir$Type$Infer$inferValue, references, rawValue)); - }); -var $mdgriffith$elm_ui$Internal$Model$boxShadowClass = function (shadow) { - return $elm$core$String$concat( - _List_fromArray( - [ - shadow.inset ? 'box-inset' : 'box-', - $mdgriffith$elm_ui$Internal$Model$floatClass(shadow.offset.a) + 'px', - $mdgriffith$elm_ui$Internal$Model$floatClass(shadow.offset.b) + 'px', - $mdgriffith$elm_ui$Internal$Model$floatClass(shadow.blur) + 'px', - $mdgriffith$elm_ui$Internal$Model$floatClass(shadow.size) + 'px', - $mdgriffith$elm_ui$Internal$Model$formatColorClass(shadow.color) - ])); -}; -var $mdgriffith$elm_ui$Internal$Flag$shadows = $mdgriffith$elm_ui$Internal$Flag$flag(19); -var $mdgriffith$elm_ui$Element$Border$shadow = function (almostShade) { - var shade = {blur: almostShade.blur, color: almostShade.color, inset: false, offset: almostShade.offset, size: almostShade.size}; - return A2( - $mdgriffith$elm_ui$Internal$Model$StyleClass, - $mdgriffith$elm_ui$Internal$Flag$shadows, - A3( - $mdgriffith$elm_ui$Internal$Model$Single, - $mdgriffith$elm_ui$Internal$Model$boxShadowClass(shade), - 'box-shadow', - $mdgriffith$elm_ui$Internal$Model$formatBoxShadow(shade))); -}; -var $elm$virtual_dom$VirtualDom$style = _VirtualDom_style; -var $elm$html$Html$Attributes$style = $elm$virtual_dom$VirtualDom$style; -var $author$project$Morphir$Type$Class$toString = function (_class) { - return 'number'; -}; -var $author$project$Morphir$IR$Name$toSnakeCase = function (name) { - return A2( - $elm$core$String$join, - '_', - $author$project$Morphir$IR$Name$toHumanWords(name)); -}; -var $author$project$Morphir$Type$MetaType$toString = function (metaType) { - switch (metaType.$) { - case 'MetaVar': - var _var = metaType.a; - return 'var_' + $author$project$Morphir$IR$Name$toSnakeCase( - $author$project$Morphir$Type$MetaType$toName(_var)); - case 'MetaRef': - var fQName = metaType.b; - var args = metaType.c; - var maybeAliasedType = metaType.d; - var refString = $elm$core$List$isEmpty(args) ? $author$project$Morphir$IR$FQName$toString(fQName) : A2( - $elm$core$String$join, - ' ', - _List_fromArray( - [ - $author$project$Morphir$IR$FQName$toString(fQName), - A2( - $elm$core$String$join, - ' ', - A2( - $elm$core$List$map, - function (arg) { - return $elm$core$String$concat( - _List_fromArray( - [ - '(', - $author$project$Morphir$Type$MetaType$toString(arg), - ')' - ])); - }, - args)) - ])); - if (maybeAliasedType.$ === 'Just') { - var aliasedType = maybeAliasedType.a; - return $elm$core$String$concat( - _List_fromArray( - [ - refString, - ' = ', - $author$project$Morphir$Type$MetaType$toString(aliasedType) - ])); - } else { - return refString; - } - case 'MetaTuple': - var metaTypes = metaType.b; - return $elm$core$String$concat( - _List_fromArray( - [ - '( ', - A2( - $elm$core$String$join, - ', ', - A2($elm$core$List$map, $author$project$Morphir$Type$MetaType$toString, metaTypes)), - ' )' - ])); - case 'MetaRecord': - var _extends = metaType.b; - var fields = metaType.c; - var prefix = function () { - if (_extends.$ === 'Just') { - var _var = _extends.a; - return 'var_' + $author$project$Morphir$IR$Name$toSnakeCase( - $author$project$Morphir$Type$MetaType$toName(_var)); - } else { - return ''; - } - }(); - var fieldStrings = A2( - $elm$core$List$map, - function (_v2) { - var fieldName = _v2.a; - var fieldType = _v2.b; - return $elm$core$String$concat( - _List_fromArray( - [ - $author$project$Morphir$IR$Name$toCamelCase(fieldName), - ' : ', - $author$project$Morphir$Type$MetaType$toString(fieldType) - ])); - }, - $elm$core$Dict$toList(fields)); - return $elm$core$String$concat( - _List_fromArray( - [ - '{ ', - prefix, - A2($elm$core$String$join, ', ', fieldStrings), - ' }' - ])); - case 'MetaFun': - var argType = metaType.b; - var returnType = metaType.c; - return $elm$core$String$concat( - _List_fromArray( - [ - $author$project$Morphir$Type$MetaType$toString(argType), - ' -> ', - $author$project$Morphir$Type$MetaType$toString(returnType) - ])); - default: - return '()'; - } -}; -var $author$project$Morphir$Type$Infer$typeErrorToMessage = function (typeError) { - switch (typeError.$) { - case 'TypeErrors': - var errors = typeError.a; - return $elm$core$String$concat( - _List_fromArray( - [ - 'Multiple errors: ', - A2( - $elm$core$String$join, - ', ', - A2($elm$core$List$map, $author$project$Morphir$Type$Infer$typeErrorToMessage, errors)) - ])); - case 'ClassConstraintViolation': - var metaType = typeError.a; - var _class = typeError.b; - return $elm$core$String$concat( - _List_fromArray( - [ - 'Type \'', - $author$project$Morphir$Type$MetaType$toString(metaType), - '\' is not a ', - $author$project$Morphir$Type$Class$toString(_class) - ])); - case 'LookupError': - var lookupError = typeError.a; - switch (lookupError.$) { - case 'CouldNotFindConstructor': - var fQName = lookupError.a; - return $elm$core$String$concat( - _List_fromArray( - [ - 'Could not find constructor: ', - $author$project$Morphir$IR$FQName$toString(fQName) - ])); - case 'CouldNotFindValue': - var fQName = lookupError.a; - return $elm$core$String$concat( - _List_fromArray( - [ - 'Could not find value: ', - $author$project$Morphir$IR$FQName$toString(fQName) - ])); - case 'CouldNotFindAlias': - var fQName = lookupError.a; - return $elm$core$String$concat( - _List_fromArray( - [ - 'Could not find alias: ', - $author$project$Morphir$IR$FQName$toString(fQName) - ])); - default: - var fQName = lookupError.a; - return $elm$core$String$concat( - _List_fromArray( - [ - 'Expected alias at: ', - $author$project$Morphir$IR$FQName$toString(fQName) - ])); - } - case 'UnknownError': - var message = typeError.a; - return $elm$core$String$concat( - _List_fromArray( - ['Unknown error: ', message])); - default: - var unificationError = typeError.a; - var mapUnificationError = function (uniError) { - switch (uniError.$) { - case 'CouldNotUnify': - var errorType = uniError.a; - var metaType1 = uniError.b; - var metaType2 = uniError.c; - var cause = function () { - switch (errorType.$) { - case 'NoUnificationRule': - return 'there are no unification rules to apply'; - case 'TuplesOfDifferentSize': - return 'they are tuples of different sizes'; - case 'RefMismatch': - return 'the references do not match'; - default: - return 'the fields don\'t match'; - } - }(); - return $elm$core$String$concat( - _List_fromArray( - [ - 'Could not unify \'', - $author$project$Morphir$Type$MetaType$toString(metaType1), - '\' with \'', - $author$project$Morphir$Type$MetaType$toString(metaType2), - '\' because ', - cause - ])); - case 'UnificationErrors': - var unificationErrors = uniError.a; - return A2( - $elm$core$String$join, - '. ', - A2($elm$core$List$map, mapUnificationError, unificationErrors)); - default: - var name = uniError.a; - return $elm$core$String$concat( - _List_fromArray( - [ - 'Could not find field \'', - $author$project$Morphir$IR$Name$toCamelCase(name), - '\'' - ])); - } - }; - return mapUnificationError(unificationError); - } -}; -var $mdgriffith$elm_ui$Internal$Model$AlignX = function (a) { - return {$: 'AlignX', a: a}; -}; -var $mdgriffith$elm_ui$Internal$Model$CenterX = {$: 'CenterX'}; -var $mdgriffith$elm_ui$Element$centerX = $mdgriffith$elm_ui$Internal$Model$AlignX($mdgriffith$elm_ui$Internal$Model$CenterX); -var $author$project$Morphir$Visual$ViewApply$inlineBinaryOperators = $elm$core$Dict$fromList( - _List_fromArray( - [ - _Utils_Tuple2('Basics.equal', '='), - _Utils_Tuple2('Basics.lessThan', '<'), - _Utils_Tuple2('Basics.lessThanOrEqual', '<='), - _Utils_Tuple2('Basics.greaterThan', '>'), - _Utils_Tuple2('Basics.greaterThanOrEqual', '>='), - _Utils_Tuple2('Basics.add', '+'), - _Utils_Tuple2('Basics.subtract', '-'), - _Utils_Tuple2('Basics.multiply', '*'), - _Utils_Tuple2('Basics.divide', '/'), - _Utils_Tuple2('List.append', '+') - ])); -var $mdgriffith$elm_ui$Internal$Model$MoveY = function (a) { - return {$: 'MoveY', a: a}; -}; -var $mdgriffith$elm_ui$Internal$Model$TransformComponent = F2( - function (a, b) { - return {$: 'TransformComponent', a: a, b: b}; - }); -var $mdgriffith$elm_ui$Internal$Flag$moveY = $mdgriffith$elm_ui$Internal$Flag$flag(26); -var $mdgriffith$elm_ui$Element$moveUp = function (y) { - return A2( - $mdgriffith$elm_ui$Internal$Model$TransformComponent, - $mdgriffith$elm_ui$Internal$Flag$moveY, - $mdgriffith$elm_ui$Internal$Model$MoveY(-y)); -}; -var $mdgriffith$elm_ui$Internal$Model$BorderWidth = F5( - function (a, b, c, d, e) { - return {$: 'BorderWidth', a: a, b: b, c: c, d: d, e: e}; - }); -var $mdgriffith$elm_ui$Element$Border$width = function (v) { - return A2( - $mdgriffith$elm_ui$Internal$Model$StyleClass, - $mdgriffith$elm_ui$Internal$Flag$borderWidth, - A5( - $mdgriffith$elm_ui$Internal$Model$BorderWidth, - 'b-' + $elm$core$String$fromInt(v), - v, - v, - v, - v)); -}; -var $mdgriffith$elm_ui$Element$Border$widthXY = F2( - function (x, y) { - return A2( - $mdgriffith$elm_ui$Internal$Model$StyleClass, - $mdgriffith$elm_ui$Internal$Flag$borderWidth, - A5( - $mdgriffith$elm_ui$Internal$Model$BorderWidth, - 'b-' + ($elm$core$String$fromInt(x) + ('-' + $elm$core$String$fromInt(y))), - y, - x, - y, - x)); - }); -var $mdgriffith$elm_ui$Element$Border$widthEach = function (_v0) { - var bottom = _v0.bottom; - var top = _v0.top; - var left = _v0.left; - var right = _v0.right; - return (_Utils_eq(top, bottom) && _Utils_eq(left, right)) ? (_Utils_eq(top, right) ? $mdgriffith$elm_ui$Element$Border$width(top) : A2($mdgriffith$elm_ui$Element$Border$widthXY, left, top)) : A2( - $mdgriffith$elm_ui$Internal$Model$StyleClass, - $mdgriffith$elm_ui$Internal$Flag$borderWidth, - A5( - $mdgriffith$elm_ui$Internal$Model$BorderWidth, - 'b-' + ($elm$core$String$fromInt(top) + ('-' + ($elm$core$String$fromInt(right) + ('-' + ($elm$core$String$fromInt(bottom) + ('-' + $elm$core$String$fromInt(left))))))), - top, - right, - bottom, - left)); -}; -var $author$project$Morphir$Visual$ViewApply$view = F4( - function (config, viewValue, functionValue, argValues) { - var _v0 = _Utils_Tuple2(functionValue, argValues); - _v0$4: - while (true) { - if ((_v0.a.$ === 'Reference') && _v0.b.b) { - if (!_v0.b.b.b) { - if (_v0.a.b.c.b) { - switch (_v0.a.b.c.a) { - case 'is': - var _v1 = _v0.a; - var _v2 = _v1.b; - var localName = _v2.c; - var _v3 = _v0.b; - var argValue = _v3.a; - return A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) - ]), - _List_fromArray( - [ - viewValue(argValue), - $mdgriffith$elm_ui$Element$text( - $author$project$Morphir$Visual$Common$nameToText(localName)) - ])); - case 'negate': - if ((((((((((((((((((_v0.a.b.a.b && _v0.a.b.a.a.b) && (_v0.a.b.a.a.a === 'morphir')) && (!_v0.a.b.a.a.b.b)) && _v0.a.b.a.b.b) && _v0.a.b.a.b.a.b) && (_v0.a.b.a.b.a.a === 's')) && _v0.a.b.a.b.a.b.b) && (_v0.a.b.a.b.a.b.a === 'd')) && _v0.a.b.a.b.a.b.b.b) && (_v0.a.b.a.b.a.b.b.a === 'k')) && (!_v0.a.b.a.b.a.b.b.b.b)) && (!_v0.a.b.a.b.b.b)) && _v0.a.b.b.b) && _v0.a.b.b.a.b) && (_v0.a.b.b.a.a === 'basics')) && (!_v0.a.b.b.a.b.b)) && (!_v0.a.b.b.b.b)) && (!_v0.a.b.c.b.b)) { - var _v4 = _v0.a; - var _v5 = _v4.b; - var _v6 = _v5.a; - var _v7 = _v6.a; - var _v8 = _v6.b; - var _v9 = _v8.a; - var _v10 = _v9.b; - var _v11 = _v10.b; - var _v12 = _v5.b; - var _v13 = _v12.a; - var _v14 = _v5.c; - var _v15 = _v0.b; - var argValue = _v15.a; - return A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) - ]), - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$text('- ('), - viewValue(argValue), - $mdgriffith$elm_ui$Element$text(')') - ])); - } else { - break _v0$4; - } - case 'abs': - if ((((((((((((((((((_v0.a.b.a.b && _v0.a.b.a.a.b) && (_v0.a.b.a.a.a === 'morphir')) && (!_v0.a.b.a.a.b.b)) && _v0.a.b.a.b.b) && _v0.a.b.a.b.a.b) && (_v0.a.b.a.b.a.a === 's')) && _v0.a.b.a.b.a.b.b) && (_v0.a.b.a.b.a.b.a === 'd')) && _v0.a.b.a.b.a.b.b.b) && (_v0.a.b.a.b.a.b.b.a === 'k')) && (!_v0.a.b.a.b.a.b.b.b.b)) && (!_v0.a.b.a.b.b.b)) && _v0.a.b.b.b) && _v0.a.b.b.a.b) && (_v0.a.b.b.a.a === 'basics')) && (!_v0.a.b.b.a.b.b)) && (!_v0.a.b.b.b.b)) && (!_v0.a.b.c.b.b)) { - var _v16 = _v0.a; - var _v17 = _v16.b; - var _v18 = _v17.a; - var _v19 = _v18.a; - var _v20 = _v18.b; - var _v21 = _v20.a; - var _v22 = _v21.b; - var _v23 = _v22.b; - var _v24 = _v17.b; - var _v25 = _v24.a; - var _v26 = _v17.c; - var _v27 = _v0.b; - var argValue = _v27.a; - return A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) - ]), - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$text('abs ('), - viewValue(argValue), - $mdgriffith$elm_ui$Element$text(')') - ])); - } else { - break _v0$4; - } - default: - break _v0$4; - } - } else { - break _v0$4; - } - } else { - if (((((((((((((_v0.a.b.a.b && _v0.a.b.a.a.b) && (_v0.a.b.a.a.a === 'morphir')) && (!_v0.a.b.a.a.b.b)) && _v0.a.b.a.b.b) && _v0.a.b.a.b.a.b) && (_v0.a.b.a.b.a.a === 's')) && _v0.a.b.a.b.a.b.b) && (_v0.a.b.a.b.a.b.a === 'd')) && _v0.a.b.a.b.a.b.b.b) && (_v0.a.b.a.b.a.b.b.a === 'k')) && (!_v0.a.b.a.b.a.b.b.b.b)) && (!_v0.a.b.a.b.b.b)) && (!_v0.b.b.b.b)) { - var _v28 = _v0.a; - var _v29 = _v28.b; - var _v30 = _v29.a; - var _v31 = _v30.a; - var _v32 = _v30.b; - var _v33 = _v32.a; - var _v34 = _v33.b; - var _v35 = _v34.b; - var moduleName = _v29.b; - var localName = _v29.c; - var _v36 = _v0.b; - var argValues1 = _v36.a; - var _v37 = _v36.b; - var argValues2 = _v37.a; - var functionName = A2( - $elm$core$String$join, - '.', - _List_fromArray( - [ - A3($author$project$Morphir$IR$Path$toString, $author$project$Morphir$IR$Name$toTitleCase, '.', moduleName), - $author$project$Morphir$IR$Name$toCamelCase(localName) - ])); - return (A2( - $elm$core$Maybe$withDefault, - '', - A2($elm$core$Dict$get, functionName, $author$project$Morphir$Visual$ViewApply$inlineBinaryOperators)) === '/') ? A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$centerX, - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), - $mdgriffith$elm_ui$Element$spacing(5) - ]), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Element$column, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$centerX, - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) - ]), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$centerX, - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) - ]), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)), - $mdgriffith$elm_ui$Element$padding( - $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)), - $mdgriffith$elm_ui$Element$Border$widthEach( - {bottom: 1, left: 0, right: 0, top: 0}), - $mdgriffith$elm_ui$Element$centerX - ]), - _List_fromArray( - [ - viewValue(argValues1) - ])) - ])), - A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$centerX, - $mdgriffith$elm_ui$Element$Border$solid, - $mdgriffith$elm_ui$Element$Border$widthEach( - {bottom: 0, left: 0, right: 0, top: 1}), - $mdgriffith$elm_ui$Element$moveUp(1), - $mdgriffith$elm_ui$Element$padding( - $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)) - ]), - _List_fromArray( - [ - viewValue(argValues2) - ])) - ])) - ])) : (A2($elm$core$Dict$member, functionName, $author$project$Morphir$Visual$ViewApply$inlineBinaryOperators) ? A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) - ]), - _List_fromArray( - [ - viewValue(argValues1), - $mdgriffith$elm_ui$Element$text( - A2( - $elm$core$Maybe$withDefault, - '', - A2($elm$core$Dict$get, functionName, $author$project$Morphir$Visual$ViewApply$inlineBinaryOperators))), - viewValue(argValues2) - ])) : A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) - ]), - _List_fromArray( - [ - viewValue(argValues1), - viewValue(functionValue), - viewValue(argValues2) - ]))); - } else { - break _v0$4; - } - } - } else { - break _v0$4; - } - } - return A2( - $mdgriffith$elm_ui$Element$column, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) - ]), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Element$column, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), - $mdgriffith$elm_ui$Element$centerX, - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) - ]), - _List_fromArray( - [ - viewValue(functionValue) - ])), - A2( - $mdgriffith$elm_ui$Element$column, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), - $mdgriffith$elm_ui$Element$centerX, - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) - ]), - A2($elm$core$List$map, viewValue, argValues)) - ])); - }); -var $mdgriffith$elm_ui$Internal$Flag$borderColor = $mdgriffith$elm_ui$Internal$Flag$flag(28); -var $mdgriffith$elm_ui$Element$Border$color = function (clr) { - return A2( - $mdgriffith$elm_ui$Internal$Model$StyleClass, - $mdgriffith$elm_ui$Internal$Flag$borderColor, - A3( - $mdgriffith$elm_ui$Internal$Model$Colored, - 'bc-' + $mdgriffith$elm_ui$Internal$Model$formatColorClass(clr), - 'border-color', - clr)); -}; -var $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence = function (operatorName) { - switch (operatorName) { - case 'Basics.add': - return 1; - case 'Basics.subtract': - return 1; - case 'Basics.multiply': - return 2; - case 'Basics.divide': - return 2; - default: - return 0; - } -}; -var $elm$core$List$drop = F2( - function (n, list) { - drop: - while (true) { - if (n <= 0) { - return list; - } else { - if (!list.b) { - return list; - } else { - var x = list.a; - var xs = list.b; - var $temp$n = n - 1, - $temp$list = xs; - n = $temp$n; - list = $temp$list; - continue drop; - } - } - } - }); -var $author$project$Morphir$Visual$ViewArithmetic$functionName = function (ao) { - switch (ao.$) { - case 'Add': - return 'Basics.add'; - case 'Subtract': - return 'Basics.subtract'; - default: - return 'Basics.multiply'; - } -}; -var $author$project$Morphir$Visual$ViewArithmetic$dropInPrecedence = F5( - function (arithmeticOperatorTrees, index, currentPointer, currentPrecedenceValue, previousOperator) { - dropInPrecedence: - while (true) { - if (_Utils_cmp(currentPointer, index) < 0) { - var $temp$arithmeticOperatorTrees = A2($elm$core$List$drop, 1, arithmeticOperatorTrees), - $temp$index = index, - $temp$currentPointer = currentPointer + 1, - $temp$currentPrecedenceValue = currentPrecedenceValue, - $temp$previousOperator = previousOperator; - arithmeticOperatorTrees = $temp$arithmeticOperatorTrees; - index = $temp$index; - currentPointer = $temp$currentPointer; - currentPrecedenceValue = $temp$currentPrecedenceValue; - previousOperator = $temp$previousOperator; - continue dropInPrecedence; - } else { - var _v0 = $elm$core$List$head(arithmeticOperatorTrees); - if (_v0.$ === 'Just') { - var a = _v0.a; - switch (a.$) { - case 'ArithmeticOperatorBranch': - var arithmeticOperator = a.a; - var arithmeticOperatorTrees1 = a.b; - return (_Utils_cmp( - $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( - $author$project$Morphir$Visual$ViewArithmetic$functionName(arithmeticOperator)), - $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( - $author$project$Morphir$Visual$ViewArithmetic$functionName(previousOperator))) < 0) ? true : false; - case 'ArithmeticValueLeaf': - var typedValue = a.a; - var $temp$arithmeticOperatorTrees = A2($elm$core$List$drop, 2, arithmeticOperatorTrees), - $temp$index = index, - $temp$currentPointer = currentPointer + 2, - $temp$currentPrecedenceValue = currentPrecedenceValue, - $temp$previousOperator = previousOperator; - arithmeticOperatorTrees = $temp$arithmeticOperatorTrees; - index = $temp$index; - currentPointer = $temp$currentPointer; - currentPrecedenceValue = $temp$currentPrecedenceValue; - previousOperator = $temp$previousOperator; - continue dropInPrecedence; - default: - if ((a.a.b && a.a.b.b) && (!a.a.b.b.b)) { - var _v3 = a.a; - var arithmeticOperatorTree = _v3.a; - var _v4 = _v3.b; - var arithmeticOperatorTree1 = _v4.a; - return (_Utils_cmp( - $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence('Basics.divide'), - $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( - $author$project$Morphir$Visual$ViewArithmetic$functionName(previousOperator))) < 0) ? true : false; - } else { - return false; - } - } - } else { - return false; - } - } - } - }); -var $author$project$Morphir$Visual$ViewArithmetic$functionNameHelper = function (ao) { - switch (ao.$) { - case 'Add': - return 'Add'; - case 'Subtract': - return 'Subtract'; - default: - return 'Multiply'; - } -}; -var $author$project$Morphir$Visual$ViewArithmetic$inlineBinaryOperators = $elm$core$Dict$fromList( - _List_fromArray( - [ - _Utils_Tuple2('Basics.equal', '='), - _Utils_Tuple2('Basics.lessThan', '<'), - _Utils_Tuple2('Basics.lessThanOrEqual', '<='), - _Utils_Tuple2('Basics.greaterThan', '>'), - _Utils_Tuple2('Basics.greaterThanOrEqual', '>='), - _Utils_Tuple2('Add', '+'), - _Utils_Tuple2('Subtract', '-'), - _Utils_Tuple2('Multiply', '*') - ])); -var $author$project$Morphir$Visual$ViewArithmetic$riseInPrecedence = F5( - function (arithmeticOperatorTrees, index, currentPointer, currentPrecedenceValue, previousOperator) { - riseInPrecedence: - while (true) { - if (_Utils_cmp(currentPointer, index) < 0) { - var $temp$arithmeticOperatorTrees = A2($elm$core$List$drop, 1, arithmeticOperatorTrees), - $temp$index = index, - $temp$currentPointer = currentPointer + 1, - $temp$currentPrecedenceValue = currentPrecedenceValue, - $temp$previousOperator = previousOperator; - arithmeticOperatorTrees = $temp$arithmeticOperatorTrees; - index = $temp$index; - currentPointer = $temp$currentPointer; - currentPrecedenceValue = $temp$currentPrecedenceValue; - previousOperator = $temp$previousOperator; - continue riseInPrecedence; - } else { - var _v0 = $elm$core$List$head(arithmeticOperatorTrees); - if (_v0.$ === 'Just') { - var a = _v0.a; - switch (a.$) { - case 'ArithmeticOperatorBranch': - var arithmeticOperator = a.a; - var arithmeticOperatorTrees1 = a.b; - return (_Utils_cmp( - $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( - $author$project$Morphir$Visual$ViewArithmetic$functionName(arithmeticOperator)), - $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( - $author$project$Morphir$Visual$ViewArithmetic$functionName(previousOperator))) > 0) ? true : false; - case 'ArithmeticValueLeaf': - var typedValue = a.a; - var $temp$arithmeticOperatorTrees = A2($elm$core$List$drop, 2, arithmeticOperatorTrees), - $temp$index = index, - $temp$currentPointer = currentPointer + 2, - $temp$currentPrecedenceValue = currentPrecedenceValue, - $temp$previousOperator = previousOperator; - arithmeticOperatorTrees = $temp$arithmeticOperatorTrees; - index = $temp$index; - currentPointer = $temp$currentPointer; - currentPrecedenceValue = $temp$currentPrecedenceValue; - previousOperator = $temp$previousOperator; - continue riseInPrecedence; - default: - if ((a.a.b && a.a.b.b) && (!a.a.b.b.b)) { - var _v3 = a.a; - var arithmeticOperatorTree = _v3.a; - var _v4 = _v3.b; - var arithmeticOperatorTree1 = _v4.a; - return (_Utils_cmp( - $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence('Basics.divide'), - $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( - $author$project$Morphir$Visual$ViewArithmetic$functionName(previousOperator))) > 0) ? true : false; - } else { - return false; - } - } - } else { - return false; - } - } - } - }); -var $author$project$Morphir$Visual$ViewArithmetic$view = F3( - function (config, viewValue, arithmeticOperatorTree) { - switch (arithmeticOperatorTree.$) { - case 'ArithmeticOperatorBranch': - var arithmeticOperator = arithmeticOperatorTree.a; - var arithmeticOperatorTrees = arithmeticOperatorTree.b; - var separator = A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing(5), - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), - $mdgriffith$elm_ui$Element$centerX - ]), - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$text( - A2( - $elm$core$Maybe$withDefault, - '', - A2( - $elm$core$Dict$get, - $author$project$Morphir$Visual$ViewArithmetic$functionNameHelper(arithmeticOperator), - $author$project$Morphir$Visual$ViewArithmetic$inlineBinaryOperators))) - ])); - return A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing(5), - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), - $mdgriffith$elm_ui$Element$centerX - ]), - A2( - $elm$core$List$indexedMap, - F2( - function (i, b) { - return (A5( - $author$project$Morphir$Visual$ViewArithmetic$dropInPrecedence, - arithmeticOperatorTrees, - i, - 0, - $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( - $author$project$Morphir$Visual$ViewArithmetic$functionName(arithmeticOperator)), - arithmeticOperator) && (_Utils_cmp( - i, - $elm$core$List$length(arithmeticOperatorTrees) - 1) < 0)) ? A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$padding(2), - $mdgriffith$elm_ui$Element$spacing(5), - $mdgriffith$elm_ui$Element$centerX - ]), - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$text('('), - b, - $mdgriffith$elm_ui$Element$text(')'), - separator - ])) : (A5( - $author$project$Morphir$Visual$ViewArithmetic$dropInPrecedence, - arithmeticOperatorTrees, - i, - 0, - $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( - $author$project$Morphir$Visual$ViewArithmetic$functionName(arithmeticOperator)), - arithmeticOperator) ? A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$padding(2), - $mdgriffith$elm_ui$Element$spacing(5), - $mdgriffith$elm_ui$Element$centerX - ]), - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$text('('), - b, - $mdgriffith$elm_ui$Element$text(')') - ])) : ((A5( - $author$project$Morphir$Visual$ViewArithmetic$riseInPrecedence, - arithmeticOperatorTrees, - i, - 0, - $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( - $author$project$Morphir$Visual$ViewArithmetic$functionName(arithmeticOperator)), - arithmeticOperator) && (_Utils_cmp( - i, - $elm$core$List$length(arithmeticOperatorTrees) - 1) < 0)) ? A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$padding(2), - $mdgriffith$elm_ui$Element$spacing(5), - $mdgriffith$elm_ui$Element$centerX - ]), - _List_fromArray( - [b, separator])) : (A5( - $author$project$Morphir$Visual$ViewArithmetic$riseInPrecedence, - arithmeticOperatorTrees, - i, - 0, - $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( - $author$project$Morphir$Visual$ViewArithmetic$functionName(arithmeticOperator)), - arithmeticOperator) ? A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$padding(2), - $mdgriffith$elm_ui$Element$spacing(5), - $mdgriffith$elm_ui$Element$centerX - ]), - _List_fromArray( - [b])) : ((_Utils_cmp( - i, - $elm$core$List$length(arithmeticOperatorTrees) - 1) < 0) ? A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$padding(2), - $mdgriffith$elm_ui$Element$spacing(5), - $mdgriffith$elm_ui$Element$centerX - ]), - _List_fromArray( - [b, separator])) : A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$padding(2), - $mdgriffith$elm_ui$Element$spacing(5), - $mdgriffith$elm_ui$Element$centerX - ]), - _List_fromArray( - [b])))))); - }), - A2( - $elm$core$List$map, - A2($author$project$Morphir$Visual$ViewArithmetic$view, config, viewValue), - arithmeticOperatorTrees))); - case 'ArithmeticDivisionBranch': - if ((arithmeticOperatorTree.a.b && arithmeticOperatorTree.a.b.b) && (!arithmeticOperatorTree.a.b.b.b)) { - var _v1 = arithmeticOperatorTree.a; - var arithmeticOperatorTree1 = _v1.a; - var _v2 = _v1.b; - var arithmeticOperatorTree2 = _v2.a; - if (arithmeticOperatorTree1.$ === 'ArithmeticValueLeaf') { - var typedValue1 = arithmeticOperatorTree1.a; - switch (arithmeticOperatorTree2.$) { - case 'ArithmeticValueLeaf': - var typedValue2 = arithmeticOperatorTree2.a; - return A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$centerX, - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), - $mdgriffith$elm_ui$Element$spacing(5) - ]), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Element$column, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$centerX, - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) - ]), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$centerX, - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) - ]), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)), - $mdgriffith$elm_ui$Element$Border$color( - A3($mdgriffith$elm_ui$Element$rgb, 0, 0.7, 0)), - $mdgriffith$elm_ui$Element$padding( - $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)), - $mdgriffith$elm_ui$Element$centerX - ]), - _List_fromArray( - [ - viewValue(typedValue1) - ])) - ])), - A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$centerX, - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), - $mdgriffith$elm_ui$Element$Border$solid, - $mdgriffith$elm_ui$Element$Border$widthEach( - {bottom: 0, left: 0, right: 0, top: 1}), - $mdgriffith$elm_ui$Element$padding( - $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)) - ]), - _List_fromArray( - [ - viewValue(typedValue2) - ])) - ])) - ])); - case 'ArithmeticOperatorBranch': - var arithmeticOperator = arithmeticOperatorTree2.a; - var arithmeticOperatorTrees = arithmeticOperatorTree2.b; - var separator = A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)), - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), - $mdgriffith$elm_ui$Element$centerX - ]), - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$text( - A2( - $elm$core$Maybe$withDefault, - '', - A2( - $elm$core$Dict$get, - $author$project$Morphir$Visual$ViewArithmetic$functionNameHelper(arithmeticOperator), - $author$project$Morphir$Visual$ViewArithmetic$inlineBinaryOperators))) - ])); - var mainBody = A2( - $elm$core$List$indexedMap, - F2( - function (i, b) { - return (A5( - $author$project$Morphir$Visual$ViewArithmetic$dropInPrecedence, - arithmeticOperatorTrees, - i, - 0, - $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( - $author$project$Morphir$Visual$ViewArithmetic$functionName(arithmeticOperator)), - arithmeticOperator) && (_Utils_cmp( - i, - $elm$core$List$length(arithmeticOperatorTrees) - 1) < 0)) ? A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$padding(2), - $mdgriffith$elm_ui$Element$spacing(5), - $mdgriffith$elm_ui$Element$centerX - ]), - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$text('('), - b, - $mdgriffith$elm_ui$Element$text(')'), - separator - ])) : (A5( - $author$project$Morphir$Visual$ViewArithmetic$dropInPrecedence, - arithmeticOperatorTrees, - i, - 0, - $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( - $author$project$Morphir$Visual$ViewArithmetic$functionName(arithmeticOperator)), - arithmeticOperator) ? A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$padding(2), - $mdgriffith$elm_ui$Element$spacing(5), - $mdgriffith$elm_ui$Element$centerX - ]), - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$text('('), - b, - $mdgriffith$elm_ui$Element$text(')') - ])) : ((A5( - $author$project$Morphir$Visual$ViewArithmetic$riseInPrecedence, - arithmeticOperatorTrees, - i, - 0, - $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( - $author$project$Morphir$Visual$ViewArithmetic$functionName(arithmeticOperator)), - arithmeticOperator) && (_Utils_cmp( - i, - $elm$core$List$length(arithmeticOperatorTrees) - 1) < 0)) ? A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$padding(2), - $mdgriffith$elm_ui$Element$spacing(5), - $mdgriffith$elm_ui$Element$centerX - ]), - _List_fromArray( - [b, separator])) : (A5( - $author$project$Morphir$Visual$ViewArithmetic$riseInPrecedence, - arithmeticOperatorTrees, - i, - 0, - $author$project$Morphir$Visual$ViewArithmetic$currentPrecedence( - $author$project$Morphir$Visual$ViewArithmetic$functionName(arithmeticOperator)), - arithmeticOperator) ? A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$padding(2), - $mdgriffith$elm_ui$Element$spacing(5), - $mdgriffith$elm_ui$Element$centerX - ]), - _List_fromArray( - [b])) : ((_Utils_cmp( - i, - $elm$core$List$length(arithmeticOperatorTrees) - 1) < 0) ? A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$padding(2), - $mdgriffith$elm_ui$Element$spacing(5), - $mdgriffith$elm_ui$Element$centerX - ]), - _List_fromArray( - [b, separator])) : A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$padding(2), - $mdgriffith$elm_ui$Element$spacing(5), - $mdgriffith$elm_ui$Element$centerX - ]), - _List_fromArray( - [b])))))); - }), - A2( - $elm$core$List$map, - A2($author$project$Morphir$Visual$ViewArithmetic$view, config, viewValue), - arithmeticOperatorTrees)); - return A2( - $mdgriffith$elm_ui$Element$column, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$centerX, - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) - ]), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$centerX, - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) - ]), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing(5), - $mdgriffith$elm_ui$Element$Border$color( - A3($mdgriffith$elm_ui$Element$rgb, 0, 0.7, 0)), - $mdgriffith$elm_ui$Element$paddingEach( - {bottom: 4, left: 0, right: 0, top: 0}), - $mdgriffith$elm_ui$Element$centerX - ]), - _List_fromArray( - [ - viewValue(typedValue1) - ])) - ])), - A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$centerX, - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), - $mdgriffith$elm_ui$Element$Border$solid, - $mdgriffith$elm_ui$Element$Border$widthEach( - {bottom: 0, left: 0, right: 0, top: 1}), - $mdgriffith$elm_ui$Element$paddingEach( - {bottom: 0, left: 0, right: 0, top: 10}) - ]), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing(5), - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), - $mdgriffith$elm_ui$Element$centerX - ]), - mainBody) - ])) - ])); - default: - return $mdgriffith$elm_ui$Element$none; - } - } else { - return $mdgriffith$elm_ui$Element$none; - } - } else { - return $mdgriffith$elm_ui$Element$none; - } - default: - var typedValue = arithmeticOperatorTree.a; - return viewValue(typedValue); - } - }); -var $author$project$Morphir$Visual$ViewBoolOperatorTree$Vertical = {$: 'Vertical'}; -var $mdgriffith$elm_ui$Internal$Model$AlignY = function (a) { - return {$: 'AlignY', a: a}; -}; -var $mdgriffith$elm_ui$Internal$Model$CenterY = {$: 'CenterY'}; -var $mdgriffith$elm_ui$Element$centerY = $mdgriffith$elm_ui$Internal$Model$AlignY($mdgriffith$elm_ui$Internal$Model$CenterY); -var $author$project$Morphir$Visual$ViewBoolOperatorTree$Horizontal = {$: 'Horizontal'}; -var $author$project$Morphir$Visual$ViewBoolOperatorTree$flipLayoutDirection = function (direction) { - if (direction.$ === 'Horizontal') { - return $author$project$Morphir$Visual$ViewBoolOperatorTree$Vertical; - } else { - return $author$project$Morphir$Visual$ViewBoolOperatorTree$Horizontal; - } -}; -var $elm$core$List$intersperse = F2( - function (sep, xs) { - if (!xs.b) { - return _List_Nil; - } else { - var hd = xs.a; - var tl = xs.b; - var step = F2( - function (x, rest) { - return A2( - $elm$core$List$cons, - sep, - A2($elm$core$List$cons, x, rest)); - }); - var spersed = A3($elm$core$List$foldr, step, _List_Nil, tl); - return A2($elm$core$List$cons, hd, spersed); - } - }); -var $author$project$Morphir$Visual$ViewBoolOperatorTree$operatorToString = function (operator) { - if (operator.$ === 'Or') { - return 'OR'; - } else { - return 'AND'; - } -}; -var $author$project$Morphir$Visual$ViewBoolOperatorTree$viewTreeNode = F4( - function (config, viewValue, direction, boolOperatorTree) { - if (boolOperatorTree.$ === 'BoolOperatorBranch') { - var operator = boolOperatorTree.a; - var values = boolOperatorTree.b; - var separator = function () { - if (direction.$ === 'Horizontal') { - var verticalLine = A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$centerX, - $mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill) - ]), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$Border$widthEach( - {bottom: 0, left: 1, right: 0, top: 0}), - $mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill) - ]), - $mdgriffith$elm_ui$Element$none), - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill) - ]), - $mdgriffith$elm_ui$Element$none) - ])); - return A2( - $mdgriffith$elm_ui$Element$column, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$centerY, - $mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill) - ]), - _List_fromArray( - [ - verticalLine, - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$padding( - $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)), - $mdgriffith$elm_ui$Element$Font$bold - ]), - $mdgriffith$elm_ui$Element$text( - $author$project$Morphir$Visual$ViewBoolOperatorTree$operatorToString(operator))), - verticalLine - ])); - } else { - var horizontalLine = A2( - $mdgriffith$elm_ui$Element$column, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) - ]), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$Border$widthEach( - {bottom: 1, left: 0, right: 0, top: 0}), - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) - ]), - $mdgriffith$elm_ui$Element$none), - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) - ]), - $mdgriffith$elm_ui$Element$none) - ])); - return A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$centerX, - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) - ]), - _List_fromArray( - [ - horizontalLine, - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$padding( - $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)), - $mdgriffith$elm_ui$Element$Font$bold - ]), - $mdgriffith$elm_ui$Element$text( - $author$project$Morphir$Visual$ViewBoolOperatorTree$operatorToString(operator))), - horizontalLine - ])); - } - }(); - var layout = function (elems) { - if (direction.$ === 'Horizontal') { - return A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$centerX, - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) - ]), - elems); - } else { - return A2( - $mdgriffith$elm_ui$Element$column, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$centerY, - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) - ]), - elems); - } - }; - return layout( - A2( - $elm$core$List$intersperse, - separator, - A2( - $elm$core$List$map, - $mdgriffith$elm_ui$Element$el( - _List_fromArray( - [$mdgriffith$elm_ui$Element$centerX])), - A2( - $elm$core$List$map, - A3( - $author$project$Morphir$Visual$ViewBoolOperatorTree$viewTreeNode, - config, - viewValue, - $author$project$Morphir$Visual$ViewBoolOperatorTree$flipLayoutDirection(direction)), - values)))); - } else { - var value = boolOperatorTree.a; - return viewValue(value); - } - }); -var $author$project$Morphir$Visual$ViewBoolOperatorTree$view = F3( - function (config, viewValue, boolOperatorTree) { - return A4($author$project$Morphir$Visual$ViewBoolOperatorTree$viewTreeNode, config, viewValue, $author$project$Morphir$Visual$ViewBoolOperatorTree$Vertical, boolOperatorTree); - }); -var $author$project$Morphir$Visual$ViewField$view = F3( - function (viewValue, subjectValue, fieldName) { - if (subjectValue.$ === 'Variable') { - var variableName = subjectValue.b; - return $mdgriffith$elm_ui$Element$text( - $elm$core$String$concat( - _List_fromArray( - [ - 'the ', - $author$project$Morphir$Visual$Common$nameToText(variableName), - '\'s ', - $author$project$Morphir$Visual$Common$nameToText(fieldName) - ]))); - } else { - return A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) - ]), - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$text( - $elm$core$String$concat( - _List_fromArray( - [ - 'the ', - $author$project$Morphir$Visual$Common$nameToText(fieldName), - ' field of ' - ]))), - viewValue(subjectValue) - ])); - } - }); -var $author$project$Morphir$Visual$Components$DecisionTree$NotHighlighted = {$: 'NotHighlighted'}; -var $author$project$Morphir$Visual$Components$DecisionTree$Highlighted = function (a) { - return {$: 'Highlighted', a: a}; -}; -var $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToBorderWidth = function (state) { - if (state.$ === 'Highlighted') { - return 4; - } else { - return 2; - } -}; -var $author$project$Morphir$Visual$Components$DecisionTree$Color = F3( - function (a, b, c) { - return {$: 'Color', a: a, b: b, c: c}; - }); -var $author$project$Morphir$Visual$Components$DecisionTree$highlightColor = { - _default: A3($author$project$Morphir$Visual$Components$DecisionTree$Color, 120, 120, 120), - _false: A3($author$project$Morphir$Visual$Components$DecisionTree$Color, 180, 100, 100), - _true: A3($author$project$Morphir$Visual$Components$DecisionTree$Color, 100, 180, 100) -}; -var $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToColor = function (state) { - if (state.$ === 'Highlighted') { - var bool = state.a; - return bool ? $author$project$Morphir$Visual$Components$DecisionTree$highlightColor._true : $author$project$Morphir$Visual$Components$DecisionTree$highlightColor._false; - } else { - return $author$project$Morphir$Visual$Components$DecisionTree$highlightColor._default; - } -}; -var $mdgriffith$elm_ui$Element$Font$regular = A2($mdgriffith$elm_ui$Internal$Model$Class, $mdgriffith$elm_ui$Internal$Flag$fontWeight, $mdgriffith$elm_ui$Internal$Style$classes.textNormalWeight); -var $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToFontWeight = function (state) { - if (state.$ === 'Highlighted') { - return $mdgriffith$elm_ui$Element$Font$bold; - } else { - return $mdgriffith$elm_ui$Element$Font$regular; - } -}; -var $mdgriffith$elm_ui$Internal$Model$Left = {$: 'Left'}; -var $mdgriffith$elm_ui$Element$alignLeft = $mdgriffith$elm_ui$Internal$Model$AlignX($mdgriffith$elm_ui$Internal$Model$Left); -var $mdgriffith$elm_ui$Internal$Model$Top = {$: 'Top'}; -var $mdgriffith$elm_ui$Element$alignTop = $mdgriffith$elm_ui$Internal$Model$AlignY($mdgriffith$elm_ui$Internal$Model$Top); -var $elm$html$Html$Attributes$colspan = function (n) { - return A2( - _VirtualDom_attribute, - 'colspan', - $elm$core$String$fromInt(n)); -}; -var $elm$svg$Svg$Attributes$height = _VirtualDom_attribute('height'); -var $elm$svg$Svg$Attributes$points = _VirtualDom_attribute('points'); -var $elm$svg$Svg$trustedNode = _VirtualDom_nodeNS('http://www.w3.org/2000/svg'); -var $elm$svg$Svg$polygon = $elm$svg$Svg$trustedNode('polygon'); -var $elm$svg$Svg$Attributes$style = _VirtualDom_attribute('style'); -var $elm$svg$Svg$svg = $elm$svg$Svg$trustedNode('svg'); -var $author$project$Morphir$Visual$Components$DecisionTree$toCssColor = function (_v0) { - var r = _v0.a; - var g = _v0.b; - var b = _v0.c; - return $elm$core$String$concat( - _List_fromArray( - [ - 'rgb(', - $elm$core$String$fromInt(r), - ',', - $elm$core$String$fromInt(g), - ',', - $elm$core$String$fromInt(b), - ')' - ])); -}; -var $elm$svg$Svg$Attributes$viewBox = _VirtualDom_attribute('viewBox'); -var $elm$svg$Svg$Attributes$width = _VirtualDom_attribute('width'); -var $author$project$Morphir$Visual$Components$DecisionTree$downArrowHead = F2( - function (config, highlightState) { - return A2( - $elm$svg$Svg$svg, - _List_fromArray( - [ - $elm$svg$Svg$Attributes$width( - _Utils_eq(highlightState, $author$project$Morphir$Visual$Components$DecisionTree$NotHighlighted) ? $elm$core$String$fromInt( - $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme)) : $elm$core$String$fromInt( - $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme))), - $elm$svg$Svg$Attributes$height( - _Utils_eq(highlightState, $author$project$Morphir$Visual$Components$DecisionTree$NotHighlighted) ? $elm$core$String$fromInt( - $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme)) : $elm$core$String$fromInt( - $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme))), - $elm$svg$Svg$Attributes$viewBox('0 0 200 200') - ]), - _List_fromArray( - [ - A2( - $elm$svg$Svg$polygon, - _List_fromArray( - [ - $elm$svg$Svg$Attributes$points('0,0 100,200 200,0'), - $elm$svg$Svg$Attributes$style( - 'fill:' + $author$project$Morphir$Visual$Components$DecisionTree$toCssColor( - $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToColor(highlightState))) - ]), - _List_Nil) - ])); - }); -var $mdgriffith$elm_ui$Internal$Model$NoStaticStyleSheet = {$: 'NoStaticStyleSheet'}; -var $mdgriffith$elm_ui$Internal$Model$RenderModeOption = function (a) { - return {$: 'RenderModeOption', a: a}; -}; -var $mdgriffith$elm_ui$Element$noStaticStyleSheet = $mdgriffith$elm_ui$Internal$Model$RenderModeOption($mdgriffith$elm_ui$Internal$Model$NoStaticStyleSheet); -var $author$project$Morphir$Visual$Common$element = function (elem) { - return A3( - $mdgriffith$elm_ui$Element$layoutWith, - { - options: _List_fromArray( - [$mdgriffith$elm_ui$Element$noStaticStyleSheet]) - }, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink), - $mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink) - ]), - elem); -}; -var $mdgriffith$elm_ui$Internal$Model$unstyled = A2($elm$core$Basics$composeL, $mdgriffith$elm_ui$Internal$Model$Unstyled, $elm$core$Basics$always); -var $mdgriffith$elm_ui$Element$html = $mdgriffith$elm_ui$Internal$Model$unstyled; -var $elm$html$Html$table = _VirtualDom_node('table'); -var $elm$html$Html$td = _VirtualDom_node('td'); -var $elm$html$Html$tr = _VirtualDom_node('tr'); -var $author$project$Morphir$Visual$Components$DecisionTree$downArrow = F2( - function (config, highlightState) { - return A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), - $mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill) - ]), - $mdgriffith$elm_ui$Element$html( - A2( - $elm$html$Html$table, - _List_fromArray( - [ - A2($elm$html$Html$Attributes$style, 'border-collapse', 'collapse'), - A2($elm$html$Html$Attributes$style, 'height', '100%') - ]), - _List_fromArray( - [ - A2( - $elm$html$Html$tr, - _List_fromArray( - [ - A2($elm$html$Html$Attributes$style, 'height', '100%') - ]), - _List_fromArray( - [ - A2( - $elm$html$Html$td, - _List_fromArray( - [ - A2( - $elm$html$Html$Attributes$style, - 'border-right', - $elm$core$String$concat( - _List_fromArray( - [ - 'solid ', - $elm$core$String$fromInt( - $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToBorderWidth(highlightState)), - 'px ', - $author$project$Morphir$Visual$Components$DecisionTree$toCssColor( - $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToColor(highlightState)) - ]))) - ]), - _List_Nil), - A2($elm$html$Html$td, _List_Nil, _List_Nil) - ])), - A2( - $elm$html$Html$tr, - _List_Nil, - _List_fromArray( - [ - A2( - $elm$html$Html$td, - _List_fromArray( - [ - $elm$html$Html$Attributes$colspan(2) - ]), - _List_fromArray( - [ - $author$project$Morphir$Visual$Common$element( - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [$mdgriffith$elm_ui$Element$centerX]), - $mdgriffith$elm_ui$Element$html( - A2($author$project$Morphir$Visual$Components$DecisionTree$downArrowHead, config, highlightState)))) - ])) - ])) - ])))); - }); -var $author$project$Morphir$Visual$Components$DecisionTree$noPadding = {bottom: 0, left: 0, right: 0, top: 0}; -var $mdgriffith$elm_ui$Element$paddingXY = F2( - function (x, y) { - if (_Utils_eq(x, y)) { - var f = x; - return A2( - $mdgriffith$elm_ui$Internal$Model$StyleClass, - $mdgriffith$elm_ui$Internal$Flag$padding, - A5( - $mdgriffith$elm_ui$Internal$Model$PaddingStyle, - 'p-' + $elm$core$String$fromInt(x), - f, - f, - f, - f)); - } else { - var yFloat = y; - var xFloat = x; - return A2( - $mdgriffith$elm_ui$Internal$Model$StyleClass, - $mdgriffith$elm_ui$Internal$Flag$padding, - A5( - $mdgriffith$elm_ui$Internal$Model$PaddingStyle, - 'p-' + ($elm$core$String$fromInt(x) + ('-' + $elm$core$String$fromInt(y))), - yFloat, - xFloat, - yFloat, - xFloat)); - } - }); -var $author$project$Morphir$Visual$Components$DecisionTree$rightArrowHead = F2( - function (config, highlightState) { - return A2( - $elm$svg$Svg$svg, - _List_fromArray( - [ - $elm$svg$Svg$Attributes$width( - _Utils_eq(highlightState, $author$project$Morphir$Visual$Components$DecisionTree$NotHighlighted) ? $elm$core$String$fromInt( - $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme)) : $elm$core$String$fromInt( - $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme))), - $elm$svg$Svg$Attributes$height( - _Utils_eq(highlightState, $author$project$Morphir$Visual$Components$DecisionTree$NotHighlighted) ? $elm$core$String$fromInt( - $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme)) : $elm$core$String$fromInt( - $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme))), - $elm$svg$Svg$Attributes$viewBox('0 0 200 200') - ]), - _List_fromArray( - [ - A2( - $elm$svg$Svg$polygon, - _List_fromArray( - [ - $elm$svg$Svg$Attributes$points('0,0 200,100 0,200'), - $elm$svg$Svg$Attributes$style( - 'fill:' + $author$project$Morphir$Visual$Components$DecisionTree$toCssColor( - $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToColor(highlightState))) - ]), - _List_Nil) - ])); - }); -var $elm$html$Html$Attributes$rowspan = function (n) { - return A2( - _VirtualDom_attribute, - 'rowspan', - $elm$core$String$fromInt(n)); -}; -var $author$project$Morphir$Visual$Components$DecisionTree$rightArrow = F2( - function (config, highlightState) { - return A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), - $mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill) - ]), - $mdgriffith$elm_ui$Element$html( - A2( - $elm$html$Html$table, - _List_fromArray( - [ - A2($elm$html$Html$Attributes$style, 'border-collapse', 'collapse'), - A2($elm$html$Html$Attributes$style, 'width', '100%') - ]), - _List_fromArray( - [ - A2( - $elm$html$Html$tr, - _List_Nil, - _List_fromArray( - [ - A2( - $elm$html$Html$td, - _List_fromArray( - [ - A2( - $elm$html$Html$Attributes$style, - 'border-bottom', - $elm$core$String$concat( - _List_fromArray( - [ - 'solid ', - $elm$core$String$fromInt( - $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToBorderWidth(highlightState)), - 'px ', - $author$project$Morphir$Visual$Components$DecisionTree$toCssColor( - $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToColor(highlightState)) - ]))), - A2($elm$html$Html$Attributes$style, 'width', '100%') - ]), - _List_Nil), - A2( - $elm$html$Html$td, - _List_fromArray( - [ - $elm$html$Html$Attributes$rowspan(2) - ]), - _List_fromArray( - [ - $author$project$Morphir$Visual$Common$element( - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [$mdgriffith$elm_ui$Element$centerY]), - $mdgriffith$elm_ui$Element$html( - A2($author$project$Morphir$Visual$Components$DecisionTree$rightArrowHead, config, highlightState)))) - ])) - ])), - A2( - $elm$html$Html$tr, - _List_Nil, - _List_fromArray( - [ - A2($elm$html$Html$td, _List_Nil, _List_Nil) - ])) - ])))); - }); -var $author$project$Morphir$Visual$Components$DecisionTree$horizontalLayout = F8( - function (config, condition, branch1Label, branch1State, branch1, branch2Label, branch2State, branch2) { - return A2( - $mdgriffith$elm_ui$Element$row, - _List_Nil, - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Element$column, - _List_fromArray( - [$mdgriffith$elm_ui$Element$alignTop]), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) - ]), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Element$column, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$alignTop, - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink) - ]), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink) - ]), - condition), - A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$alignLeft, - $mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill), - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) - ]), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$paddingEach( - _Utils_update( - $author$project$Morphir$Visual$Components$DecisionTree$noPadding, - { - left: $author$project$Morphir$Visual$Theme$mediumPadding(config.state.theme) - })), - $mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill) - ]), - A2($author$project$Morphir$Visual$Components$DecisionTree$downArrow, config, branch1State)), - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$centerY, - A2( - $mdgriffith$elm_ui$Element$paddingXY, - 0, - $author$project$Morphir$Visual$Theme$mediumPadding(config.state.theme)) - ]), - branch1Label) - ])) - ])), - A2( - $mdgriffith$elm_ui$Element$column, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$alignTop, - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) - ]), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), - $mdgriffith$elm_ui$Element$paddingEach( - _Utils_update( - $author$project$Morphir$Visual$Components$DecisionTree$noPadding, - { - top: $author$project$Morphir$Visual$Theme$mediumPadding(config.state.theme) - })) - ]), - A2($author$project$Morphir$Visual$Components$DecisionTree$rightArrow, config, branch2State)), - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$centerX, - $mdgriffith$elm_ui$Element$padding( - $author$project$Morphir$Visual$Theme$mediumPadding(config.state.theme)) - ]), - branch2Label) - ])) - ])), - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$paddingEach( - _Utils_update( - $author$project$Morphir$Visual$Components$DecisionTree$noPadding, - { - right: $author$project$Morphir$Visual$Theme$mediumPadding(config.state.theme) - })) - ]), - branch1) - ])), - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [$mdgriffith$elm_ui$Element$alignTop]), - branch2) - ])); - }); -var $author$project$Morphir$Visual$Components$DecisionTree$toElementColor = function (_v0) { - var r = _v0.a; - var g = _v0.b; - var b = _v0.c; - return A3($mdgriffith$elm_ui$Element$rgb255, r, g, b); -}; -var $author$project$Morphir$Visual$Components$DecisionTree$layoutHelp = F4( - function (config, highlightState, viewValue, rootNode) { - var depthOf = F2( - function (f, node) { - if (node.$ === 'Branch') { - var branch = node.a; - return A2( - depthOf, - f, - f(branch)) + 1; - } else { - return 1; - } - }); - if (rootNode.$ === 'Branch') { - var branch = rootNode.a; - var thenState = function () { - var _v4 = branch.conditionValue; - if (_v4.$ === 'Just') { - var v = _v4.a; - return v ? $author$project$Morphir$Visual$Components$DecisionTree$Highlighted(true) : $author$project$Morphir$Visual$Components$DecisionTree$NotHighlighted; - } else { - return $author$project$Morphir$Visual$Components$DecisionTree$NotHighlighted; - } - }(); - var elseState = function () { - var _v3 = branch.conditionValue; - if (_v3.$ === 'Just') { - var v = _v3.a; - return v ? $author$project$Morphir$Visual$Components$DecisionTree$NotHighlighted : $author$project$Morphir$Visual$Components$DecisionTree$Highlighted(false); - } else { - return $author$project$Morphir$Visual$Components$DecisionTree$NotHighlighted; - } - }(); - var conditionState = function () { - var _v2 = branch.conditionValue; - if (_v2.$ === 'Just') { - var v = _v2.a; - return $author$project$Morphir$Visual$Components$DecisionTree$Highlighted(v); - } else { - return $author$project$Morphir$Visual$Components$DecisionTree$NotHighlighted; - } - }(); - return A8( - $author$project$Morphir$Visual$Components$DecisionTree$horizontalLayout, - config, - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$Border$width( - $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToBorderWidth(conditionState)), - $mdgriffith$elm_ui$Element$Border$rounded(6), - $mdgriffith$elm_ui$Element$Border$color( - $author$project$Morphir$Visual$Components$DecisionTree$toElementColor( - $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToColor(conditionState))), - $mdgriffith$elm_ui$Element$padding( - $author$project$Morphir$Visual$Theme$mediumPadding(config.state.theme)) - ]), - viewValue(branch.condition)), - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$Font$color( - $author$project$Morphir$Visual$Components$DecisionTree$toElementColor( - $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToColor(thenState))), - $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToFontWeight(thenState) - ]), - $mdgriffith$elm_ui$Element$text('Yes')), - thenState, - A4($author$project$Morphir$Visual$Components$DecisionTree$layoutHelp, config, thenState, viewValue, branch.thenBranch), - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$Font$color( - $author$project$Morphir$Visual$Components$DecisionTree$toElementColor( - $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToColor(elseState))), - $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToFontWeight(elseState) - ]), - $mdgriffith$elm_ui$Element$text('No')), - elseState, - A4($author$project$Morphir$Visual$Components$DecisionTree$layoutHelp, config, elseState, viewValue, branch.elseBranch)); - } else { - var value = rootNode.a; - return A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$Border$width( - $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToBorderWidth(highlightState)), - $mdgriffith$elm_ui$Element$Border$rounded(6), - $mdgriffith$elm_ui$Element$Border$color( - $author$project$Morphir$Visual$Components$DecisionTree$toElementColor( - $author$project$Morphir$Visual$Components$DecisionTree$highlightStateToColor(highlightState))), - $mdgriffith$elm_ui$Element$padding( - $author$project$Morphir$Visual$Theme$mediumPadding(config.state.theme)) - ]), - viewValue(value)); - } - }); -var $author$project$Morphir$Visual$Components$DecisionTree$layout = F3( - function (config, viewValue, rootNode) { - return A4($author$project$Morphir$Visual$Components$DecisionTree$layoutHelp, config, $author$project$Morphir$Visual$Components$DecisionTree$NotHighlighted, viewValue, rootNode); - }); -var $author$project$Morphir$Visual$Components$DecisionTree$Branch = function (a) { - return {$: 'Branch', a: a}; -}; -var $author$project$Morphir$Visual$Components$DecisionTree$Leaf = function (a) { - return {$: 'Leaf', a: a}; -}; -var $author$project$Morphir$Visual$ViewIfThenElse$valueToTree = F3( - function (config, doEval, value) { - valueToTree: - while (true) { - switch (value.$) { - case 'IfThenElse': - var condition = value.b; - var thenBranch = value.c; - var elseBranch = value.d; - var result = function () { - if (doEval) { - var _v1 = A2( - $author$project$Morphir$Visual$Config$evaluate, - $author$project$Morphir$IR$Value$toRawValue(condition), - config); - if (((_v1.$ === 'Ok') && (_v1.a.$ === 'Literal')) && (_v1.a.b.$ === 'BoolLiteral')) { - var _v2 = _v1.a; - var v = _v2.b.a; - return $elm$core$Maybe$Just(v); - } else { - return $elm$core$Maybe$Nothing; - } - } else { - return $elm$core$Maybe$Nothing; - } - }(); - return $author$project$Morphir$Visual$Components$DecisionTree$Branch( - { - condition: condition, - conditionValue: result, - elseBranch: A3( - $author$project$Morphir$Visual$ViewIfThenElse$valueToTree, - config, - _Utils_eq( - result, - $elm$core$Maybe$Just(false)), - elseBranch), - thenBranch: A3( - $author$project$Morphir$Visual$ViewIfThenElse$valueToTree, - config, - _Utils_eq( - result, - $elm$core$Maybe$Just(true)), - thenBranch) - }); - case 'LetDefinition': - var defName = value.b; - var defValue = value.c; - var inValue = value.d; - var currentState = config.state; - var newState = _Utils_update( - currentState, - { - variables: A2( - $elm$core$Result$withDefault, - currentState.variables, - A2( - $elm$core$Result$map, - function (evaluatedDefValue) { - return A3($elm$core$Dict$insert, defName, evaluatedDefValue, currentState.variables); - }, - A2( - $author$project$Morphir$Visual$Config$evaluate, - $author$project$Morphir$IR$Value$definitionToValue( - A3( - $author$project$Morphir$IR$Value$mapDefinitionAttributes, - $elm$core$Basics$identity, - $elm$core$Basics$always(_Utils_Tuple0), - defValue)), - config))) - }); - var $temp$config = _Utils_update( - config, - {state: newState}), - $temp$doEval = doEval, - $temp$value = inValue; - config = $temp$config; - doEval = $temp$doEval; - value = $temp$value; - continue valueToTree; - default: - return $author$project$Morphir$Visual$Components$DecisionTree$Leaf(value); - } - } - }); -var $author$project$Morphir$Visual$ViewIfThenElse$view = F3( - function (config, viewValue, value) { - return A3( - $author$project$Morphir$Visual$Components$DecisionTree$layout, - config, - viewValue, - A3($author$project$Morphir$Visual$ViewIfThenElse$valueToTree, config, true, value)); - }); -var $mdgriffith$elm_ui$Element$InternalIndexedColumn = function (a) { - return {$: 'InternalIndexedColumn', a: a}; -}; -var $mdgriffith$elm_ui$Internal$Model$GridPosition = function (a) { - return {$: 'GridPosition', a: a}; -}; -var $mdgriffith$elm_ui$Internal$Model$GridTemplateStyle = function (a) { - return {$: 'GridTemplateStyle', a: a}; -}; -var $elm$core$List$all = F2( - function (isOkay, list) { - return !A2( - $elm$core$List$any, - A2($elm$core$Basics$composeL, $elm$core$Basics$not, isOkay), - list); - }); -var $mdgriffith$elm_ui$Internal$Model$AsGrid = {$: 'AsGrid'}; -var $mdgriffith$elm_ui$Internal$Model$asGrid = $mdgriffith$elm_ui$Internal$Model$AsGrid; -var $mdgriffith$elm_ui$Internal$Model$getSpacing = F2( - function (attrs, _default) { - return A2( - $elm$core$Maybe$withDefault, - _default, - A3( - $elm$core$List$foldr, - F2( - function (attr, acc) { - if (acc.$ === 'Just') { - var x = acc.a; - return $elm$core$Maybe$Just(x); - } else { - if ((attr.$ === 'StyleClass') && (attr.b.$ === 'SpacingStyle')) { - var _v2 = attr.b; - var x = _v2.b; - var y = _v2.c; - return $elm$core$Maybe$Just( - _Utils_Tuple2(x, y)); - } else { - return $elm$core$Maybe$Nothing; - } - } - }), - $elm$core$Maybe$Nothing, - attrs)); - }); -var $mdgriffith$elm_ui$Internal$Flag$gridPosition = $mdgriffith$elm_ui$Internal$Flag$flag(35); -var $mdgriffith$elm_ui$Internal$Flag$gridTemplate = $mdgriffith$elm_ui$Internal$Flag$flag(34); -var $mdgriffith$elm_ui$Internal$Model$Px = function (a) { - return {$: 'Px', a: a}; -}; -var $mdgriffith$elm_ui$Element$px = $mdgriffith$elm_ui$Internal$Model$Px; -var $elm$core$List$repeatHelp = F3( - function (result, n, value) { - repeatHelp: - while (true) { - if (n <= 0) { - return result; - } else { - var $temp$result = A2($elm$core$List$cons, value, result), - $temp$n = n - 1, - $temp$value = value; - result = $temp$result; - n = $temp$n; - value = $temp$value; - continue repeatHelp; - } - } - }); -var $elm$core$List$repeat = F2( - function (n, value) { - return A3($elm$core$List$repeatHelp, _List_Nil, n, value); - }); -var $mdgriffith$elm_ui$Element$tableHelper = F2( - function (attrs, config) { - var onGrid = F3( - function (rowLevel, columnLevel, elem) { - return A4( - $mdgriffith$elm_ui$Internal$Model$element, - $mdgriffith$elm_ui$Internal$Model$asEl, - $mdgriffith$elm_ui$Internal$Model$div, - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Internal$Model$StyleClass, - $mdgriffith$elm_ui$Internal$Flag$gridPosition, - $mdgriffith$elm_ui$Internal$Model$GridPosition( - {col: columnLevel, height: 1, row: rowLevel, width: 1})) - ]), - $mdgriffith$elm_ui$Internal$Model$Unkeyed( - _List_fromArray( - [elem]))); - }); - var columnWidth = function (col) { - if (col.$ === 'InternalIndexedColumn') { - var colConfig = col.a; - return colConfig.width; - } else { - var colConfig = col.a; - return colConfig.width; - } - }; - var columnHeader = function (col) { - if (col.$ === 'InternalIndexedColumn') { - var colConfig = col.a; - return colConfig.header; - } else { - var colConfig = col.a; - return colConfig.header; - } - }; - var maybeHeaders = function (headers) { - return A2( - $elm$core$List$all, - $elm$core$Basics$eq($mdgriffith$elm_ui$Internal$Model$Empty), - headers) ? $elm$core$Maybe$Nothing : $elm$core$Maybe$Just( - A2( - $elm$core$List$indexedMap, - F2( - function (col, header) { - return A3(onGrid, 1, col + 1, header); - }), - headers)); - }( - A2($elm$core$List$map, columnHeader, config.columns)); - var add = F3( - function (cell, columnConfig, cursor) { - if (columnConfig.$ === 'InternalIndexedColumn') { - var col = columnConfig.a; - return _Utils_update( - cursor, - { - column: cursor.column + 1, - elements: A2( - $elm$core$List$cons, - A3( - onGrid, - cursor.row, - cursor.column, - A2( - col.view, - _Utils_eq(maybeHeaders, $elm$core$Maybe$Nothing) ? (cursor.row - 1) : (cursor.row - 2), - cell)), - cursor.elements) - }); - } else { - var col = columnConfig.a; - return { - column: cursor.column + 1, - elements: A2( - $elm$core$List$cons, - A3( - onGrid, - cursor.row, - cursor.column, - col.view(cell)), - cursor.elements), - row: cursor.row - }; - } - }); - var build = F3( - function (columns, rowData, cursor) { - var newCursor = A3( - $elm$core$List$foldl, - add(rowData), - cursor, - columns); - return {column: 1, elements: newCursor.elements, row: cursor.row + 1}; - }); - var children = A3( - $elm$core$List$foldl, - build(config.columns), - { - column: 1, - elements: _List_Nil, - row: _Utils_eq(maybeHeaders, $elm$core$Maybe$Nothing) ? 1 : 2 - }, - config.data); - var _v0 = A2( - $mdgriffith$elm_ui$Internal$Model$getSpacing, - attrs, - _Utils_Tuple2(0, 0)); - var sX = _v0.a; - var sY = _v0.b; - var template = A2( - $mdgriffith$elm_ui$Internal$Model$StyleClass, - $mdgriffith$elm_ui$Internal$Flag$gridTemplate, - $mdgriffith$elm_ui$Internal$Model$GridTemplateStyle( - { - columns: A2($elm$core$List$map, columnWidth, config.columns), - rows: A2( - $elm$core$List$repeat, - $elm$core$List$length(config.data), - $mdgriffith$elm_ui$Internal$Model$Content), - spacing: _Utils_Tuple2( - $mdgriffith$elm_ui$Element$px(sX), - $mdgriffith$elm_ui$Element$px(sY)) - })); - return A4( - $mdgriffith$elm_ui$Internal$Model$element, - $mdgriffith$elm_ui$Internal$Model$asGrid, - $mdgriffith$elm_ui$Internal$Model$div, - A2( - $elm$core$List$cons, - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), - A2($elm$core$List$cons, template, attrs)), - $mdgriffith$elm_ui$Internal$Model$Unkeyed( - function () { - if (maybeHeaders.$ === 'Nothing') { - return children.elements; - } else { - var renderedHeaders = maybeHeaders.a; - return _Utils_ap( - renderedHeaders, - $elm$core$List$reverse(children.elements)); - } - }())); - }); -var $mdgriffith$elm_ui$Element$indexedTable = F2( - function (attrs, config) { - return A2( - $mdgriffith$elm_ui$Element$tableHelper, - attrs, - { - columns: A2($elm$core$List$map, $mdgriffith$elm_ui$Element$InternalIndexedColumn, config.columns), - data: config.data - }); - }); -var $author$project$Morphir$IR$Module$definitionToSpecification = function (def) { - return { - types: $elm$core$Dict$fromList( - A2( - $elm$core$List$filterMap, - function (_v0) { - var path = _v0.a; - var accessControlledType = _v0.b; - return A2( - $elm$core$Maybe$map, - function (typeDef) { - return _Utils_Tuple2( - path, - A2($author$project$Morphir$IR$Documented$map, $author$project$Morphir$IR$Type$definitionToSpecification, typeDef)); - }, - $author$project$Morphir$IR$AccessControlled$withPublicAccess(accessControlledType)); - }, - $elm$core$Dict$toList(def.types))), - values: $elm$core$Dict$fromList( - A2( - $elm$core$List$filterMap, - function (_v1) { - var path = _v1.a; - var accessControlledValue = _v1.b; - return A2( - $elm$core$Maybe$map, - function (valueDef) { - return _Utils_Tuple2( - path, - $author$project$Morphir$IR$Value$definitionToSpecification(valueDef)); - }, - $author$project$Morphir$IR$AccessControlled$withPublicAccess(accessControlledValue)); - }, - $elm$core$Dict$toList(def.values))) - }; -}; -var $author$project$Morphir$IR$Package$definitionToSpecification = function (def) { - return { - modules: $elm$core$Dict$fromList( - A2( - $elm$core$List$filterMap, - function (_v0) { - var path = _v0.a; - var accessControlledModule = _v0.b; - return A2( - $elm$core$Maybe$map, - function (moduleDef) { - return _Utils_Tuple2( - path, - $author$project$Morphir$IR$Module$definitionToSpecification(moduleDef)); - }, - $author$project$Morphir$IR$AccessControlled$withPublicAccess(accessControlledModule)); - }, - $elm$core$Dict$toList(def.modules))) - }; -}; -var $author$project$Morphir$IR$Package$lookupModuleSpecification = F2( - function (modulePath, packageSpec) { - return A2($elm$core$Dict$get, modulePath, packageSpec.modules); - }); -var $author$project$Morphir$IR$Distribution$lookupModuleSpecification = F3( - function (packageName, modulePath, distribution) { - var libraryPackageName = distribution.a; - var dependencies = distribution.b; - var packageDef = distribution.c; - return _Utils_eq(packageName, libraryPackageName) ? A2( - $author$project$Morphir$IR$Package$lookupModuleSpecification, - modulePath, - $author$project$Morphir$IR$Package$definitionToSpecification(packageDef)) : A2( - $elm$core$Maybe$andThen, - $author$project$Morphir$IR$Package$lookupModuleSpecification(modulePath), - A2($elm$core$Dict$get, packageName, dependencies)); - }); -var $author$project$Morphir$IR$Module$lookupTypeSpecification = F2( - function (localName, moduleSpec) { - return A2( - $elm$core$Maybe$map, - function ($) { - return $.value; - }, - A2($elm$core$Dict$get, localName, moduleSpec.types)); - }); -var $author$project$Morphir$IR$Distribution$lookupTypeSpecification = F4( - function (packageName, moduleName, localName, distribution) { - return A2( - $elm$core$Maybe$andThen, - $author$project$Morphir$IR$Module$lookupTypeSpecification(localName), - A3($author$project$Morphir$IR$Distribution$lookupModuleSpecification, packageName, moduleName, distribution)); - }); -var $author$project$Morphir$IR$Distribution$resolveRecordConstructors = F2( - function (value, distribution) { - return A2( - $author$project$Morphir$IR$Value$rewriteValue, - function (v) { - if (v.$ === 'Apply') { - var fun = v.b; - var lastArg = v.c; - var _v1 = A2($author$project$Morphir$IR$Value$uncurryApply, fun, lastArg); - var bottomFun = _v1.a; - var args = _v1.b; - if (bottomFun.$ === 'Constructor') { - var va = bottomFun.a; - var _v3 = bottomFun.b; - var packageName = _v3.a; - var moduleName = _v3.b; - var localName = _v3.c; - return A2( - $elm$core$Maybe$andThen, - function (typeSpec) { - if ((typeSpec.$ === 'TypeAliasSpecification') && (typeSpec.b.$ === 'Record')) { - var _v5 = typeSpec.b; - var fields = _v5.b; - return $elm$core$Maybe$Just( - A2( - $author$project$Morphir$IR$Value$Record, - va, - A3( - $elm$core$List$map2, - $elm$core$Tuple$pair, - A2( - $elm$core$List$map, - function ($) { - return $.name; - }, - fields), - args))); - } else { - return $elm$core$Maybe$Nothing; - } - }, - A4($author$project$Morphir$IR$Distribution$lookupTypeSpecification, packageName, moduleName, localName, distribution)); - } else { - return $elm$core$Maybe$Nothing; - } - } else { - return $elm$core$Maybe$Nothing; - } - }, - value); - }); -var $author$project$Morphir$IR$Distribution$resolveTypeReference = F3( - function (fQName, typeArgs, distribution) { - var packageName = fQName.a; - var moduleName = fQName.b; - var localName = fQName.c; - var _v0 = A4($author$project$Morphir$IR$Distribution$lookupTypeSpecification, packageName, moduleName, localName, distribution); - if (_v0.$ === 'Just') { - var typeSpec = _v0.a; - switch (typeSpec.$) { - case 'TypeAliasSpecification': - var paramNames = typeSpec.a; - var tpe = typeSpec.b; - var paramMapping = $elm$core$Dict$fromList( - A3($elm$core$List$map2, $elm$core$Tuple$pair, paramNames, typeArgs)); - return $elm$core$Result$Ok( - A2($author$project$Morphir$IR$Type$substituteTypeVariables, paramMapping, tpe)); - case 'OpaqueTypeSpecification': - return $elm$core$Result$Err( - $elm$core$String$concat( - _List_fromArray( - [ - 'Opaque types cannot be resolved: ', - $author$project$Morphir$IR$FQName$toString(fQName) - ]))); - default: - return $elm$core$Result$Err( - $elm$core$String$concat( - _List_fromArray( - [ - 'Custom types cannot be resolved: ', - $author$project$Morphir$IR$FQName$toString(fQName) - ]))); - } - } else { - return $elm$core$Result$Err( - $elm$core$String$concat( - _List_fromArray( - [ - 'Type specification not found: ', - $author$project$Morphir$IR$FQName$toString(fQName) - ]))); - } - }); -var $mdgriffith$elm_ui$Element$InternalColumn = function (a) { - return {$: 'InternalColumn', a: a}; -}; -var $mdgriffith$elm_ui$Element$table = F2( - function (attrs, config) { - return A2( - $mdgriffith$elm_ui$Element$tableHelper, - attrs, - { - columns: A2($elm$core$List$map, $mdgriffith$elm_ui$Element$InternalColumn, config.columns), - data: config.data - }); - }); -var $author$project$Morphir$Visual$ViewList$viewAsList = F3( - function (config, viewValue, items) { - return A2( - $mdgriffith$elm_ui$Element$table, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) - ]), - { - columns: _List_fromArray( - [ - {header: $mdgriffith$elm_ui$Element$none, view: viewValue, width: $mdgriffith$elm_ui$Element$fill} - ]), - data: items - }); - }); -var $author$project$Morphir$Visual$ViewList$view = F4( - function (config, viewValue, itemType, items) { - view: - while (true) { - if ($elm$core$List$isEmpty(items)) { - return A2( - $mdgriffith$elm_ui$Element$el, - _List_Nil, - $mdgriffith$elm_ui$Element$text('[ ]')); - } else { - switch (itemType.$) { - case 'Record': - var fields = itemType.b; - return A2( - $mdgriffith$elm_ui$Element$indexedTable, - _List_fromArray( - [$mdgriffith$elm_ui$Element$centerX, $mdgriffith$elm_ui$Element$centerY]), - { - columns: A2( - $elm$core$List$map, - function (field) { - return { - header: A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$Border$widthEach( - {bottom: 1, left: 0, right: 0, top: 0}), - $mdgriffith$elm_ui$Element$padding( - $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)) - ]), - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [$mdgriffith$elm_ui$Element$centerY, $mdgriffith$elm_ui$Element$centerX]), - $mdgriffith$elm_ui$Element$text( - A2( - $elm$core$String$join, - ' ', - $author$project$Morphir$IR$Name$toHumanWords(field.name))))), - view: F2( - function (rowIndex, item) { - return A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$padding( - $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)), - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), - $mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill) - ]), - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [$mdgriffith$elm_ui$Element$centerX, $mdgriffith$elm_ui$Element$centerY]), - function () { - if (item.$ === 'Record') { - var fieldValues = item.b; - return A2( - $elm$core$Maybe$withDefault, - $mdgriffith$elm_ui$Element$text('???'), - A2( - $elm$core$Maybe$map, - viewValue, - A2( - $elm$core$Dict$get, - field.name, - $elm$core$Dict$fromList(fieldValues)))); - } else { - return viewValue(item); - } - }())); - }), - width: $mdgriffith$elm_ui$Element$fill - }; - }, - fields), - data: A2( - $elm$core$List$map, - function (item) { - return A2($author$project$Morphir$IR$Distribution$resolveRecordConstructors, item, config.irContext.distribution); - }, - items) - }); - case 'Reference': - var fQName = itemType.b; - var typeArgs = itemType.c; - var _v2 = A3($author$project$Morphir$IR$Distribution$resolveTypeReference, fQName, typeArgs, config.irContext.distribution); - if (_v2.$ === 'Ok') { - var resolvedItemType = _v2.a; - var $temp$config = config, - $temp$viewValue = viewValue, - $temp$itemType = resolvedItemType, - $temp$items = items; - config = $temp$config; - viewValue = $temp$viewValue; - itemType = $temp$itemType; - items = $temp$items; - continue view; - } else { - return A3($author$project$Morphir$Visual$ViewList$viewAsList, config, viewValue, items); - } - default: - return A3($author$project$Morphir$Visual$ViewList$viewAsList, config, viewValue, items); - } - } - } - }); -var $cuducos$elm_format_number$FormatNumber$Locales$Exact = function (a) { - return {$: 'Exact', a: a}; -}; -var $cuducos$elm_format_number$FormatNumber$Parser$FormattedNumber = F5( - function (original, integers, decimals, prefix, suffix) { - return {decimals: decimals, integers: integers, original: original, prefix: prefix, suffix: suffix}; - }); -var $cuducos$elm_format_number$FormatNumber$Parser$Negative = {$: 'Negative'}; -var $cuducos$elm_format_number$FormatNumber$Parser$Positive = {$: 'Positive'}; -var $cuducos$elm_format_number$FormatNumber$Parser$Zero = {$: 'Zero'}; -var $elm$core$List$singleton = function (value) { - return _List_fromArray( - [value]); -}; -var $cuducos$elm_format_number$FormatNumber$Parser$classify = function (formatted) { - var onlyZeros = A2( - $elm$core$String$all, - function (_char) { - return _Utils_eq( - _char, - _Utils_chr('0')); - }, - $elm$core$String$concat( - A2( - $elm$core$List$append, - formatted.integers, - $elm$core$List$singleton(formatted.decimals)))); - return onlyZeros ? $cuducos$elm_format_number$FormatNumber$Parser$Zero : ((formatted.original < 0) ? $cuducos$elm_format_number$FormatNumber$Parser$Negative : $cuducos$elm_format_number$FormatNumber$Parser$Positive); -}; -var $elm$core$String$filter = _String_filter; -var $elm$core$Bitwise$shiftRightBy = _Bitwise_shiftRightBy; -var $elm$core$String$repeatHelp = F3( - function (n, chunk, result) { - return (n <= 0) ? result : A3( - $elm$core$String$repeatHelp, - n >> 1, - _Utils_ap(chunk, chunk), - (!(n & 1)) ? result : _Utils_ap(result, chunk)); - }); -var $elm$core$String$repeat = F2( - function (n, chunk) { - return A3($elm$core$String$repeatHelp, n, chunk, ''); - }); -var $cuducos$elm_format_number$FormatNumber$Parser$addZerosToFit = F2( - function (desiredLength, value) { - var length = $elm$core$String$length(value); - var missing = (_Utils_cmp(length, desiredLength) < 0) ? $elm$core$Basics$abs(desiredLength - length) : 0; - return _Utils_ap( - value, - A2($elm$core$String$repeat, missing, '0')); - }); -var $elm$core$String$dropRight = F2( - function (n, string) { - return (n < 1) ? string : A3($elm$core$String$slice, 0, -n, string); - }); -var $elm$core$String$right = F2( - function (n, string) { - return (n < 1) ? '' : A3( - $elm$core$String$slice, - -n, - $elm$core$String$length(string), - string); - }); -var $cuducos$elm_format_number$FormatNumber$Parser$removeZeros = function (decimals) { - return (A2($elm$core$String$right, 1, decimals) !== '0') ? decimals : $cuducos$elm_format_number$FormatNumber$Parser$removeZeros( - A2($elm$core$String$dropRight, 1, decimals)); -}; -var $cuducos$elm_format_number$FormatNumber$Parser$getDecimals = F2( - function (locale, digits) { - var _v0 = locale.decimals; - switch (_v0.$) { - case 'Max': - return $cuducos$elm_format_number$FormatNumber$Parser$removeZeros(digits); - case 'Exact': - return digits; - default: - var min = _v0.a; - return A2($cuducos$elm_format_number$FormatNumber$Parser$addZerosToFit, min, digits); - } - }); -var $elm$core$String$foldr = _String_foldr; -var $elm$core$String$toList = function (string) { - return A3($elm$core$String$foldr, $elm$core$List$cons, _List_Nil, string); -}; -var $myrho$elm_round$Round$addSign = F2( - function (signed, str) { - var isNotZero = A2( - $elm$core$List$any, - function (c) { - return (!_Utils_eq( - c, - _Utils_chr('0'))) && (!_Utils_eq( - c, - _Utils_chr('.'))); - }, - $elm$core$String$toList(str)); - return _Utils_ap( - (signed && isNotZero) ? '-' : '', - str); - }); -var $elm$core$Char$fromCode = _Char_fromCode; -var $myrho$elm_round$Round$increaseNum = function (_v0) { - var head = _v0.a; - var tail = _v0.b; - if (_Utils_eq( - head, - _Utils_chr('9'))) { - var _v1 = $elm$core$String$uncons(tail); - if (_v1.$ === 'Nothing') { - return '01'; - } else { - var headtail = _v1.a; - return A2( - $elm$core$String$cons, - _Utils_chr('0'), - $myrho$elm_round$Round$increaseNum(headtail)); - } - } else { - var c = $elm$core$Char$toCode(head); - return ((c >= 48) && (c < 57)) ? A2( - $elm$core$String$cons, - $elm$core$Char$fromCode(c + 1), - tail) : '0'; - } -}; -var $elm$core$Basics$isInfinite = _Basics_isInfinite; -var $elm$core$Basics$isNaN = _Basics_isNaN; -var $elm$core$String$fromChar = function (_char) { - return A2($elm$core$String$cons, _char, ''); -}; -var $elm$core$String$padRight = F3( - function (n, _char, string) { - return _Utils_ap( - string, - A2( - $elm$core$String$repeat, - n - $elm$core$String$length(string), - $elm$core$String$fromChar(_char))); - }); -var $elm$core$String$reverse = _String_reverse; -var $myrho$elm_round$Round$splitComma = function (str) { - var _v0 = A2($elm$core$String$split, '.', str); - if (_v0.b) { - if (_v0.b.b) { - var before = _v0.a; - var _v1 = _v0.b; - var after = _v1.a; - return _Utils_Tuple2(before, after); - } else { - var before = _v0.a; - return _Utils_Tuple2(before, '0'); - } - } else { - return _Utils_Tuple2('0', '0'); - } -}; -var $myrho$elm_round$Round$toDecimal = function (fl) { - var _v0 = A2( - $elm$core$String$split, - 'e', - $elm$core$String$fromFloat( - $elm$core$Basics$abs(fl))); - if (_v0.b) { - if (_v0.b.b) { - var num = _v0.a; - var _v1 = _v0.b; - var exp = _v1.a; - var e = A2( - $elm$core$Maybe$withDefault, - 0, - $elm$core$String$toInt( - A2($elm$core$String$startsWith, '+', exp) ? A2($elm$core$String$dropLeft, 1, exp) : exp)); - var _v2 = $myrho$elm_round$Round$splitComma(num); - var before = _v2.a; - var after = _v2.b; - var total = _Utils_ap(before, after); - var zeroed = (e < 0) ? A2( - $elm$core$Maybe$withDefault, - '0', - A2( - $elm$core$Maybe$map, - function (_v3) { - var a = _v3.a; - var b = _v3.b; - return a + ('.' + b); - }, - A2( - $elm$core$Maybe$map, - $elm$core$Tuple$mapFirst($elm$core$String$fromChar), - $elm$core$String$uncons( - _Utils_ap( - A2( - $elm$core$String$repeat, - $elm$core$Basics$abs(e), - '0'), - total))))) : A3( - $elm$core$String$padRight, - e + 1, - _Utils_chr('0'), - total); - return _Utils_ap( - (fl < 0) ? '-' : '', - zeroed); - } else { - var num = _v0.a; - return _Utils_ap( - (fl < 0) ? '-' : '', - num); - } - } else { - return ''; - } -}; -var $myrho$elm_round$Round$roundFun = F3( - function (functor, s, fl) { - if ($elm$core$Basics$isInfinite(fl) || $elm$core$Basics$isNaN(fl)) { - return $elm$core$String$fromFloat(fl); - } else { - var signed = fl < 0; - var _v0 = $myrho$elm_round$Round$splitComma( - $myrho$elm_round$Round$toDecimal( - $elm$core$Basics$abs(fl))); - var before = _v0.a; - var after = _v0.b; - var r = $elm$core$String$length(before) + s; - var normalized = _Utils_ap( - A2($elm$core$String$repeat, (-r) + 1, '0'), - A3( - $elm$core$String$padRight, - r, - _Utils_chr('0'), - _Utils_ap(before, after))); - var totalLen = $elm$core$String$length(normalized); - var roundDigitIndex = A2($elm$core$Basics$max, 1, r); - var increase = A2( - functor, - signed, - A3($elm$core$String$slice, roundDigitIndex, totalLen, normalized)); - var remains = A3($elm$core$String$slice, 0, roundDigitIndex, normalized); - var num = increase ? $elm$core$String$reverse( - A2( - $elm$core$Maybe$withDefault, - '1', - A2( - $elm$core$Maybe$map, - $myrho$elm_round$Round$increaseNum, - $elm$core$String$uncons( - $elm$core$String$reverse(remains))))) : remains; - var numLen = $elm$core$String$length(num); - var numZeroed = (num === '0') ? num : ((s <= 0) ? _Utils_ap( - num, - A2( - $elm$core$String$repeat, - $elm$core$Basics$abs(s), - '0')) : ((_Utils_cmp( - s, - $elm$core$String$length(after)) < 0) ? (A3($elm$core$String$slice, 0, numLen - s, num) + ('.' + A3($elm$core$String$slice, numLen - s, numLen, num))) : _Utils_ap( - before + '.', - A3( - $elm$core$String$padRight, - s, - _Utils_chr('0'), - after)))); - return A2($myrho$elm_round$Round$addSign, signed, numZeroed); - } - }); -var $myrho$elm_round$Round$round = $myrho$elm_round$Round$roundFun( - F2( - function (signed, str) { - var _v0 = $elm$core$String$uncons(str); - if (_v0.$ === 'Nothing') { - return false; - } else { - if ('5' === _v0.a.a.valueOf()) { - if (_v0.a.b === '') { - var _v1 = _v0.a; - return !signed; - } else { - var _v2 = _v0.a; - return true; - } - } else { - var _v3 = _v0.a; - var _int = _v3.a; - return function (i) { - return ((i > 53) && signed) || ((i >= 53) && (!signed)); - }( - $elm$core$Char$toCode(_int)); - } - } - })); -var $elm$core$List$tail = function (list) { - if (list.b) { - var x = list.a; - var xs = list.b; - return $elm$core$Maybe$Just(xs); - } else { - return $elm$core$Maybe$Nothing; - } -}; -var $cuducos$elm_format_number$FormatNumber$Parser$splitInParts = F2( - function (locale, value) { - var toString = function () { - var _v1 = locale.decimals; - switch (_v1.$) { - case 'Max': - var max = _v1.a; - return $myrho$elm_round$Round$round(max); - case 'Min': - return $elm$core$String$fromFloat; - default: - var exact = _v1.a; - return $myrho$elm_round$Round$round(exact); - } - }(); - var asList = A2( - $elm$core$String$split, - '.', - toString(value)); - var decimals = function () { - var _v0 = $elm$core$List$tail(asList); - if (_v0.$ === 'Just') { - var values = _v0.a; - return A2( - $elm$core$Maybe$withDefault, - '', - $elm$core$List$head(values)); - } else { - return ''; - } - }(); - var integers = A2( - $elm$core$Maybe$withDefault, - '', - $elm$core$List$head(asList)); - return _Utils_Tuple2(integers, decimals); - }); -var $cuducos$elm_format_number$FormatNumber$Parser$splitThousands = function (integers) { - var reversedSplitThousands = function (value) { - return ($elm$core$String$length(value) > 3) ? A2( - $elm$core$List$cons, - A2($elm$core$String$right, 3, value), - reversedSplitThousands( - A2($elm$core$String$dropRight, 3, value))) : _List_fromArray( - [value]); - }; - return $elm$core$List$reverse( - reversedSplitThousands(integers)); -}; -var $cuducos$elm_format_number$FormatNumber$Parser$parse = F2( - function (locale, original) { - var parts = A2($cuducos$elm_format_number$FormatNumber$Parser$splitInParts, locale, original); - var integers = $cuducos$elm_format_number$FormatNumber$Parser$splitThousands( - A2($elm$core$String$filter, $elm$core$Char$isDigit, parts.a)); - var decimals = A2($cuducos$elm_format_number$FormatNumber$Parser$getDecimals, locale, parts.b); - var partial = A5($cuducos$elm_format_number$FormatNumber$Parser$FormattedNumber, original, integers, decimals, '', ''); - var _v0 = $cuducos$elm_format_number$FormatNumber$Parser$classify(partial); - switch (_v0.$) { - case 'Negative': - return _Utils_update( - partial, - {prefix: locale.negativePrefix, suffix: locale.negativeSuffix}); - case 'Positive': - return _Utils_update( - partial, - {prefix: locale.positivePrefix, suffix: locale.positiveSuffix}); - default: - return _Utils_update( - partial, - {prefix: locale.zeroPrefix, suffix: locale.zeroSuffix}); - } - }); -var $cuducos$elm_format_number$FormatNumber$Stringfy$formatDecimals = F2( - function (locale, decimals) { - return (decimals === '') ? '' : _Utils_ap(locale.decimalSeparator, decimals); - }); -var $cuducos$elm_format_number$FormatNumber$Stringfy$stringfy = F2( - function (locale, formatted) { - var stringfyDecimals = $cuducos$elm_format_number$FormatNumber$Stringfy$formatDecimals(locale); - var integers = A2($elm$core$String$join, locale.thousandSeparator, formatted.integers); - var decimals = stringfyDecimals(formatted.decimals); - return $elm$core$String$concat( - _List_fromArray( - [formatted.prefix, integers, decimals, formatted.suffix])); - }); -var $cuducos$elm_format_number$FormatNumber$format = F2( - function (locale, number_) { - return A2( - $cuducos$elm_format_number$FormatNumber$Stringfy$stringfy, - locale, - A2($cuducos$elm_format_number$FormatNumber$Parser$parse, locale, number_)); - }); -var $cuducos$elm_format_number$FormatNumber$Locales$Min = function (a) { - return {$: 'Min', a: a}; -}; -var $cuducos$elm_format_number$FormatNumber$Locales$base = { - decimalSeparator: '.', - decimals: $cuducos$elm_format_number$FormatNumber$Locales$Min(0), - negativePrefix: '−', - negativeSuffix: '', - positivePrefix: '', - positiveSuffix: '', - thousandSeparator: '', - zeroPrefix: '', - zeroSuffix: '' -}; -var $cuducos$elm_format_number$FormatNumber$Locales$usLocale = _Utils_update( - $cuducos$elm_format_number$FormatNumber$Locales$base, - { - decimals: $cuducos$elm_format_number$FormatNumber$Locales$Exact(2), - thousandSeparator: ',' - }); -var $author$project$Morphir$Visual$Common$cssClass = function (className) { - return $mdgriffith$elm_ui$Element$htmlAttribute( - $elm$html$Html$Attributes$class(className)); -}; -var $author$project$Morphir$Visual$ViewLiteral$viewLiteralText = F2( - function (className, literalText) { - return A2( - $mdgriffith$elm_ui$Element$el, - _List_Nil, - A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $author$project$Morphir$Visual$Common$cssClass(className) - ]), - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$text(literalText) - ]))); - }); -var $author$project$Morphir$Visual$ViewLiteral$view = F2( - function (config, literal) { - switch (literal.$) { - case 'BoolLiteral': - var bool = literal.a; - return A2( - $author$project$Morphir$Visual$ViewLiteral$viewLiteralText, - 'bool-literal', - function () { - if (bool) { - return 'True'; - } else { - return 'False'; - } - }()); - case 'CharLiteral': - var _char = literal.a; - return A2( - $author$project$Morphir$Visual$ViewLiteral$viewLiteralText, - 'char-literal', - $elm$core$String$concat( - _List_fromArray( - [ - '\'', - $elm$core$String$fromChar(_char), - '\'' - ]))); - case 'StringLiteral': - var string = literal.a; - return A2( - $author$project$Morphir$Visual$ViewLiteral$viewLiteralText, - 'string-literal', - $elm$core$String$concat( - _List_fromArray( - ['\"', string, '\"']))); - case 'IntLiteral': - var _int = literal.a; - return A2( - $author$project$Morphir$Visual$ViewLiteral$viewLiteralText, - 'int-literal', - A2( - $cuducos$elm_format_number$FormatNumber$format, - _Utils_update( - $cuducos$elm_format_number$FormatNumber$Locales$usLocale, - { - decimals: $cuducos$elm_format_number$FormatNumber$Locales$Exact(0), - negativePrefix: '- ( ', - negativeSuffix: ' )' - }), - _int)); - default: - var _float = literal.a; - return A2( - $author$project$Morphir$Visual$ViewLiteral$viewLiteralText, - 'float-literal', - A2( - $cuducos$elm_format_number$FormatNumber$format, - _Utils_update( - $cuducos$elm_format_number$FormatNumber$Locales$usLocale, - { - decimals: $cuducos$elm_format_number$FormatNumber$Locales$Exact(config.state.theme.decimalDigit), - negativePrefix: '- ( ', - negativeSuffix: ' )' - }), - _float)); - } - }); -var $mdgriffith$elm_ui$Element$Column = F3( - function (header, width, view) { - return {header: header, view: view, width: width}; - }); -var $author$project$Morphir$IR$FQName$getLocalName = function (_v0) { - var l = _v0.c; - return l; -}; -var $author$project$Morphir$Visual$DecisionTable$Pattern = function (a) { - return {$: 'Pattern', a: a}; -}; -var $author$project$Morphir$Visual$DecisionTable$toTypedPattern = function (match) { - return A2( - $author$project$Morphir$IR$Value$mapPatternAttributes, - $elm$core$Basics$always( - $author$project$Morphir$IR$Value$patternAttribute(match)), - match); -}; -var $author$project$Morphir$Visual$DecisionTable$patternToMatch = function (pattern) { - return $author$project$Morphir$Visual$DecisionTable$Pattern( - $author$project$Morphir$Visual$DecisionTable$toTypedPattern(pattern)); -}; -var $author$project$Morphir$Visual$DecisionTable$toVisualTypedValue = function (typedValue) { - return A3($author$project$Morphir$IR$Value$indexedMapValue, $elm$core$Tuple$pair, 0, typedValue).a; -}; -var $author$project$Morphir$Visual$DecisionTable$getCaseFromIndex = F2( - function (viewValue, rules) { - getCaseFromIndex: - while (true) { - if (rules.$ === 'Just') { - var match = rules.a; - if (match.$ === 'Pattern') { - var pattern = match.a; - switch (pattern.$) { - case 'WildcardPattern': - return A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$Background$color( - A3($mdgriffith$elm_ui$Element$rgb255, 200, 200, 200)) - ]), - $mdgriffith$elm_ui$Element$text(' ')); - case 'LiteralPattern': - var va = pattern.a; - var literal = pattern.b; - var value = $author$project$Morphir$Visual$DecisionTable$toVisualTypedValue( - A2($author$project$Morphir$IR$Value$Literal, va, literal)); - return viewValue(value); - case 'ConstructorPattern': - var tpe = pattern.a; - var fQName = pattern.b; - var matches = pattern.c; - var patternToMaybeMatch = function (input) { - return $elm$core$Maybe$Just( - $author$project$Morphir$Visual$DecisionTable$patternToMatch(input)); - }; - var maybeMatches = A2($elm$core$List$map, patternToMaybeMatch, matches); - var parsedMatches = A2( - $elm$core$List$map, - $author$project$Morphir$Visual$DecisionTable$getCaseFromIndex(viewValue), - maybeMatches); - return A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing(5), - $mdgriffith$elm_ui$Element$Border$widthEach( - {bottom: 0, left: 2, right: 0, top: 0}) - ]), - $elm$core$List$concat( - _List_fromArray( - [ - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$text( - $author$project$Morphir$Visual$Common$nameToText( - $author$project$Morphir$IR$FQName$getLocalName(fQName))) - ]), - parsedMatches - ]))); - case 'AsPattern': - var tpe = pattern.a; - var asPattern = pattern.b; - var name = pattern.c; - var $temp$viewValue = viewValue, - $temp$rules = $elm$core$Maybe$Just( - $author$project$Morphir$Visual$DecisionTable$patternToMatch(asPattern)); - viewValue = $temp$viewValue; - rules = $temp$rules; - continue getCaseFromIndex; - default: - return $mdgriffith$elm_ui$Element$text('pattern type not implemented'); - } - } else { - return $mdgriffith$elm_ui$Element$text('guard'); - } - } else { - return $mdgriffith$elm_ui$Element$text('nothing'); - } - } - }); -var $author$project$Morphir$Visual$DecisionTable$columnHelper = F3( - function (viewValue, header, index) { - var head = $author$project$Morphir$Visual$DecisionTable$toVisualTypedValue(header); - return _List_fromArray( - [ - A3( - $mdgriffith$elm_ui$Element$Column, - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$Border$widthEach( - {bottom: 1, left: 0, right: 0, top: 0}) - ]), - viewValue(head)), - $mdgriffith$elm_ui$Element$fill, - function (rules) { - return A2( - $author$project$Morphir$Visual$DecisionTable$getCaseFromIndex, - viewValue, - $elm$core$List$head( - A2($elm$core$List$drop, index, rules.a))); - }) - ]); - }); -var $author$project$Morphir$Visual$DecisionTable$getColumnFromHeader = F3( - function (viewValue, index, decomposeInput) { - if (decomposeInput.b) { - if (!decomposeInput.b.b) { - var inputHead = decomposeInput.a; - return A3($author$project$Morphir$Visual$DecisionTable$columnHelper, viewValue, inputHead, index); - } else { - var inputHead = decomposeInput.a; - var inputTail = decomposeInput.b; - return $elm$core$List$concat( - _List_fromArray( - [ - A3($author$project$Morphir$Visual$DecisionTable$columnHelper, viewValue, inputHead, index), - A3($author$project$Morphir$Visual$DecisionTable$getColumnFromHeader, viewValue, index + 1, inputTail) - ])); - } - } else { - return _List_Nil; - } - }); -var $author$project$Morphir$Visual$DecisionTable$tableHelp = F3( - function (viewValue, headerFunctions, rows) { - return A2( - $mdgriffith$elm_ui$Element$table, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing(10), - $mdgriffith$elm_ui$Element$padding(10), - $mdgriffith$elm_ui$Element$Border$solid, - $mdgriffith$elm_ui$Element$Border$width(1) - ]), - { - columns: A2( - $elm$core$List$append, - A3($author$project$Morphir$Visual$DecisionTable$getColumnFromHeader, viewValue, 0, headerFunctions), - _List_fromArray( - [ - A3( - $mdgriffith$elm_ui$Element$Column, - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$Border$widthEach( - {bottom: 1, left: 0, right: 0, top: 0}) - ]), - $mdgriffith$elm_ui$Element$text('Result')), - $mdgriffith$elm_ui$Element$fill, - function (rules) { - return viewValue( - $author$project$Morphir$Visual$DecisionTable$toVisualTypedValue(rules.b)); - }) - ])), - data: rows - }); - }); -var $author$project$Morphir$Visual$DecisionTable$displayTable = F2( - function (viewValue, table) { - return A3($author$project$Morphir$Visual$DecisionTable$tableHelp, viewValue, table.decomposeInput, table.rules); - }); -var $author$project$Morphir$Visual$ViewPatternMatch$decomposeInput = function (subject) { - if (subject.$ === 'Tuple') { - var elems = subject.b; - return A2($elm$core$List$concatMap, $author$project$Morphir$Visual$ViewPatternMatch$decomposeInput, elems); - } else { - return _List_fromArray( - [subject]); - } -}; -var $author$project$Morphir$Visual$ViewPatternMatch$decomposePattern = F2( - function (subject, match) { - switch (match.a.$) { - case 'WildcardPattern': - var tpe = match.a.a; - var wildcardMatch = $author$project$Morphir$Visual$DecisionTable$Pattern(match.a); - return _List_fromArray( - [ - _Utils_Tuple2( - A2( - $elm$core$List$repeat, - $elm$core$List$length(subject), - wildcardMatch), - match.b) - ]); - case 'LiteralPattern': - var _v1 = match.a; - var tpe = _v1.a; - var literal = _v1.b; - var literalMatch = $author$project$Morphir$Visual$DecisionTable$Pattern(match.a); - return _List_fromArray( - [ - _Utils_Tuple2( - _List_fromArray( - [literalMatch]), - match.b) - ]); - case 'TuplePattern': - var _v2 = match.a; - var tpe = _v2.a; - var matches = _v2.b; - var tupleMatch = A2($elm$core$List$map, $author$project$Morphir$Visual$DecisionTable$Pattern, matches); - return _List_fromArray( - [ - _Utils_Tuple2(tupleMatch, match.b) - ]); - case 'ConstructorPattern': - var _v3 = match.a; - var tpe = _v3.a; - var fQName = _v3.b; - var matches = _v3.c; - var constructorMatch = $author$project$Morphir$Visual$DecisionTable$Pattern(match.a); - return _List_fromArray( - [ - _Utils_Tuple2( - _List_fromArray( - [constructorMatch]), - match.b) - ]); - case 'AsPattern': - var _v4 = match.a; - var tpe = _v4.a; - var pattern = _v4.b; - var name = _v4.c; - var asMatch = $author$project$Morphir$Visual$DecisionTable$Pattern(match.a); - return _List_fromArray( - [ - _Utils_Tuple2( - _List_fromArray( - [asMatch]), - match.b) - ]); - default: - return _List_Nil; - } - }); -var $author$project$Morphir$Visual$ViewPatternMatch$getRules = F2( - function (subject, matches) { - return A2( - $elm$core$List$concatMap, - $author$project$Morphir$Visual$ViewPatternMatch$decomposePattern(subject), - matches); - }); -var $author$project$Morphir$Visual$ViewPatternMatch$toDecisionTable = F2( - function (subject, matches) { - var decomposedInput = $author$project$Morphir$Visual$ViewPatternMatch$decomposeInput(subject); - return { - decomposeInput: decomposedInput, - rules: A2($author$project$Morphir$Visual$ViewPatternMatch$getRules, decomposedInput, matches) - }; - }); -var $author$project$Morphir$Visual$ViewPatternMatch$toTypedPattern = function (match) { - return A2( - $author$project$Morphir$IR$Value$mapPatternAttributes, - A2( - $elm$core$Basics$always, - $elm$core$Tuple$second, - $author$project$Morphir$IR$Value$patternAttribute(match)), - match); -}; -var $author$project$Morphir$Visual$ViewPatternMatch$toTypedValue = function (visualTypedValue) { - return A3( - $author$project$Morphir$IR$Value$mapValueAttributes, - $elm$core$Basics$always(_Utils_Tuple0), - A2( - $elm$core$Basics$always, - $elm$core$Tuple$second, - $author$project$Morphir$IR$Value$valueAttribute(visualTypedValue)), - visualTypedValue); -}; -var $author$project$Morphir$Visual$ViewPatternMatch$view = F4( - function (config, viewValue, subject, matches) { - var typedSubject = $author$project$Morphir$Visual$ViewPatternMatch$toTypedValue(subject); - var typedMatches = A2( - $elm$core$List$map, - function (_v0) { - var a = _v0.a; - var b = _v0.b; - return _Utils_Tuple2( - $author$project$Morphir$Visual$ViewPatternMatch$toTypedPattern(a), - $author$project$Morphir$Visual$ViewPatternMatch$toTypedValue(b)); - }, - matches); - var decisionTable = A2($author$project$Morphir$Visual$ViewPatternMatch$toDecisionTable, typedSubject, typedMatches); - return A2($author$project$Morphir$Visual$DecisionTable$displayTable, viewValue, decisionTable); - }); -var $author$project$Morphir$Visual$ViewReference$view = F3( - function (config, viewValue, fQName) { - var packageName = fQName.a; - var moduleName = fQName.b; - var localName = fQName.c; - return A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$padding( - $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)), - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)), - $mdgriffith$elm_ui$Element$Events$onClick( - A2(config.handlers.onReferenceClicked, fQName, false)) - ]), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Element$el, - _List_Nil, - $mdgriffith$elm_ui$Element$text( - $author$project$Morphir$Visual$Common$nameToText(localName))) - ])); - }); -var $mdgriffith$elm_ui$Internal$Model$MoveX = function (a) { - return {$: 'MoveX', a: a}; -}; -var $mdgriffith$elm_ui$Internal$Flag$moveX = $mdgriffith$elm_ui$Internal$Flag$flag(25); -var $mdgriffith$elm_ui$Element$moveRight = function (x) { - return A2( - $mdgriffith$elm_ui$Internal$Model$TransformComponent, - $mdgriffith$elm_ui$Internal$Flag$moveX, - $mdgriffith$elm_ui$Internal$Model$MoveX(x)); -}; -var $author$project$Morphir$Visual$ViewTuple$view = F3( - function (config, viewValue, elems) { - var tupleCase = function () { - var _v0 = $elm$core$List$length(elems); - switch (_v0) { - case 2: - return 'pair'; - case 3: - return 'triple'; - default: - return 'tuple'; - } - }(); - return A2( - $mdgriffith$elm_ui$Element$column, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) - ]), - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$text(tupleCase + ' of'), - A2( - $mdgriffith$elm_ui$Element$column, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$moveRight(10), - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) - ]), - A2($elm$core$List$map, viewValue, elems)) - ])); - }); -var $author$project$Morphir$Visual$XRayView$viewType = function (tpe) { - switch (tpe.$) { - case 'Variable': - var varName = tpe.b; - return $mdgriffith$elm_ui$Element$text( - $author$project$Morphir$IR$Name$toCamelCase(varName)); - case 'Reference': - var _v1 = tpe.b; - var localName = _v1.c; - var argTypes = tpe.c; - return $elm$core$List$isEmpty(argTypes) ? $mdgriffith$elm_ui$Element$text( - $author$project$Morphir$IR$Name$toTitleCase(localName)) : A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing(6) - ]), - $elm$core$List$concat( - _List_fromArray( - [ - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$text( - $author$project$Morphir$IR$Name$toTitleCase(localName)) - ]), - A2($elm$core$List$map, $author$project$Morphir$Visual$XRayView$viewType, argTypes) - ]))); - case 'Tuple': - var a = tpe.a; - var elems = tpe.b; - var elemsView = A2( - $mdgriffith$elm_ui$Element$row, - _List_Nil, - A2( - $elm$core$List$intersperse, - $mdgriffith$elm_ui$Element$text(', '), - A2($elm$core$List$map, $author$project$Morphir$Visual$XRayView$viewType, elems))); - return A2( - $mdgriffith$elm_ui$Element$row, - _List_Nil, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$text('( '), - elemsView, - $mdgriffith$elm_ui$Element$text(' )') - ])); - case 'Record': - var a = tpe.a; - var fields = tpe.b; - var fieldsView = A2( - $mdgriffith$elm_ui$Element$row, - _List_Nil, - A2( - $elm$core$List$intersperse, - $mdgriffith$elm_ui$Element$text(', '), - A2( - $elm$core$List$map, - function (field) { - return A2( - $mdgriffith$elm_ui$Element$row, - _List_Nil, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$text( - $author$project$Morphir$IR$Name$toCamelCase(field.name)), - $mdgriffith$elm_ui$Element$text(' : '), - $author$project$Morphir$Visual$XRayView$viewType(field.tpe) - ])); - }, - fields))); - return A2( - $mdgriffith$elm_ui$Element$row, - _List_Nil, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$text('{ '), - fieldsView, - $mdgriffith$elm_ui$Element$text(' }') - ])); - case 'ExtensibleRecord': - var a = tpe.a; - var varName = tpe.b; - var fields = tpe.c; - var fieldsView = A2( - $mdgriffith$elm_ui$Element$row, - _List_Nil, - A2( - $elm$core$List$intersperse, - $mdgriffith$elm_ui$Element$text(', '), - A2( - $elm$core$List$map, - function (field) { - return A2( - $mdgriffith$elm_ui$Element$row, - _List_Nil, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$text( - $author$project$Morphir$IR$Name$toCamelCase(field.name)), - $mdgriffith$elm_ui$Element$text(' : '), - $author$project$Morphir$Visual$XRayView$viewType(field.tpe) - ])); - }, - fields))); - return A2( - $mdgriffith$elm_ui$Element$row, - _List_Nil, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$text('{ '), - $mdgriffith$elm_ui$Element$text( - $author$project$Morphir$IR$Name$toCamelCase(varName)), - $mdgriffith$elm_ui$Element$text(' | '), - fieldsView, - $mdgriffith$elm_ui$Element$text(' }') - ])); - case 'Function': - var argType = tpe.b; - var returnType = tpe.c; - return A2( - $mdgriffith$elm_ui$Element$row, - _List_Nil, - _List_fromArray( - [ - $author$project$Morphir$Visual$XRayView$viewType(argType), - $mdgriffith$elm_ui$Element$text(' -> '), - $author$project$Morphir$Visual$XRayView$viewType(returnType) - ])); - default: - return $mdgriffith$elm_ui$Element$text('()'); - } -}; -var $mdgriffith$elm_ui$Element$Font$family = function (families) { - return A2( - $mdgriffith$elm_ui$Internal$Model$StyleClass, - $mdgriffith$elm_ui$Internal$Flag$fontFamily, - A2( - $mdgriffith$elm_ui$Internal$Model$FontFamily, - A3($elm$core$List$foldl, $mdgriffith$elm_ui$Internal$Model$renderFontClassName, 'ff-', families), - families)); -}; -var $author$project$Morphir$Visual$Common$grayScale = function (v) { - return A3($mdgriffith$elm_ui$Element$rgb, v, v, v); -}; -var $mdgriffith$elm_ui$Internal$Model$Monospace = {$: 'Monospace'}; -var $mdgriffith$elm_ui$Element$Font$monospace = $mdgriffith$elm_ui$Internal$Model$Monospace; -var $author$project$Morphir$Visual$XRayView$TreeNode = F3( - function (a, b, c) { - return {$: 'TreeNode', a: a, b: b, c: c}; - }); -var $author$project$Morphir$Visual$XRayView$ValueNode = function (a) { - return {$: 'ValueNode', a: a}; -}; -var $author$project$Morphir$Visual$XRayView$PatternNode = function (a) { - return {$: 'PatternNode', a: a}; -}; -var $author$project$Morphir$Visual$XRayView$patternToNode = F2( - function (maybeTag, pattern) { - switch (pattern.$) { - case 'AsPattern': - var target = pattern.b; - return A3( - $author$project$Morphir$Visual$XRayView$TreeNode, - maybeTag, - $author$project$Morphir$Visual$XRayView$PatternNode(pattern), - _List_fromArray( - [ - A2($author$project$Morphir$Visual$XRayView$patternToNode, $elm$core$Maybe$Nothing, target) - ])); - case 'TuplePattern': - var elems = pattern.b; - return A3( - $author$project$Morphir$Visual$XRayView$TreeNode, - maybeTag, - $author$project$Morphir$Visual$XRayView$PatternNode(pattern), - A2( - $elm$core$List$map, - $author$project$Morphir$Visual$XRayView$patternToNode($elm$core$Maybe$Nothing), - elems)); - case 'ConstructorPattern': - var args = pattern.c; - return A3( - $author$project$Morphir$Visual$XRayView$TreeNode, - maybeTag, - $author$project$Morphir$Visual$XRayView$PatternNode(pattern), - A2( - $elm$core$List$map, - $author$project$Morphir$Visual$XRayView$patternToNode($elm$core$Maybe$Nothing), - args)); - case 'HeadTailPattern': - var head = pattern.b; - var tail = pattern.c; - return A3( - $author$project$Morphir$Visual$XRayView$TreeNode, - maybeTag, - $author$project$Morphir$Visual$XRayView$PatternNode(pattern), - _List_fromArray( - [ - A2($author$project$Morphir$Visual$XRayView$patternToNode, $elm$core$Maybe$Nothing, head), - A2($author$project$Morphir$Visual$XRayView$patternToNode, $elm$core$Maybe$Nothing, tail) - ])); - default: - return A3( - $author$project$Morphir$Visual$XRayView$TreeNode, - maybeTag, - $author$project$Morphir$Visual$XRayView$PatternNode(pattern), - _List_Nil); - } - }); -var $author$project$Morphir$Visual$XRayView$valueToNode = F2( - function (tag, value) { - switch (value.$) { - case 'Tuple': - var elems = value.b; - return A3( - $author$project$Morphir$Visual$XRayView$TreeNode, - tag, - $author$project$Morphir$Visual$XRayView$ValueNode(value), - A2( - $elm$core$List$map, - $author$project$Morphir$Visual$XRayView$valueToNode($elm$core$Maybe$Nothing), - elems)); - case 'List': - var items = value.b; - return A3( - $author$project$Morphir$Visual$XRayView$TreeNode, - tag, - $author$project$Morphir$Visual$XRayView$ValueNode(value), - A2( - $elm$core$List$map, - $author$project$Morphir$Visual$XRayView$valueToNode($elm$core$Maybe$Nothing), - items)); - case 'Record': - var fields = value.b; - return A3( - $author$project$Morphir$Visual$XRayView$TreeNode, - tag, - $author$project$Morphir$Visual$XRayView$ValueNode(value), - A2( - $elm$core$List$map, - function (_v1) { - var fieldName = _v1.a; - var fieldValue = _v1.b; - return A2( - $author$project$Morphir$Visual$XRayView$valueToNode, - $elm$core$Maybe$Just( - $author$project$Morphir$IR$Name$toCamelCase(fieldName)), - fieldValue); - }, - fields)); - case 'Field': - var subject = value.b; - return A3( - $author$project$Morphir$Visual$XRayView$TreeNode, - tag, - $author$project$Morphir$Visual$XRayView$ValueNode(value), - _List_fromArray( - [ - A2( - $author$project$Morphir$Visual$XRayView$valueToNode, - $elm$core$Maybe$Just('subject'), - subject) - ])); - case 'Apply': - var fun = value.b; - var arg = value.c; - return A3( - $author$project$Morphir$Visual$XRayView$TreeNode, - tag, - $author$project$Morphir$Visual$XRayView$ValueNode(value), - _List_fromArray( - [ - A2( - $author$project$Morphir$Visual$XRayView$valueToNode, - $elm$core$Maybe$Just('fun'), - fun), - A2( - $author$project$Morphir$Visual$XRayView$valueToNode, - $elm$core$Maybe$Just('arg'), - arg) - ])); - case 'Lambda': - var arg = value.b; - var body = value.c; - return A3( - $author$project$Morphir$Visual$XRayView$TreeNode, - tag, - $author$project$Morphir$Visual$XRayView$ValueNode(value), - _List_fromArray( - [ - A2( - $author$project$Morphir$Visual$XRayView$patternToNode, - $elm$core$Maybe$Just('\\'), - arg), - A2( - $author$project$Morphir$Visual$XRayView$valueToNode, - $elm$core$Maybe$Just('->'), - body) - ])); - case 'LetDefinition': - var flattenLet = function (v) { - if (v.$ === 'LetDefinition') { - var defName = v.b; - var def = v.c; - var inValue = v.d; - var _v3 = flattenLet(inValue); - var subInValue = _v3.a; - var subDefs = _v3.b; - return _Utils_Tuple2( - subInValue, - A2( - $elm$core$List$cons, - _Utils_Tuple2(defName, def), - subDefs)); - } else { - return _Utils_Tuple2(v, _List_Nil); - } - }; - var _v4 = flattenLet(value); - var bottomInValue = _v4.a; - var defs = _v4.b; - return A3( - $author$project$Morphir$Visual$XRayView$TreeNode, - tag, - $author$project$Morphir$Visual$XRayView$ValueNode(value), - $elm$core$List$concat( - _List_fromArray( - [ - A2( - $elm$core$List$map, - function (_v5) { - var defName = _v5.a; - var def = _v5.b; - return A2( - $author$project$Morphir$Visual$XRayView$valueToNode, - $elm$core$Maybe$Just( - $author$project$Morphir$IR$Name$toCamelCase(defName)), - def.body); - }, - defs), - _List_fromArray( - [ - A2( - $author$project$Morphir$Visual$XRayView$valueToNode, - $elm$core$Maybe$Just('in'), - bottomInValue) - ]) - ]))); - case 'LetRecursion': - var defs = value.b; - var inValue = value.c; - return A3( - $author$project$Morphir$Visual$XRayView$TreeNode, - tag, - $author$project$Morphir$Visual$XRayView$ValueNode(value), - $elm$core$List$concat( - _List_fromArray( - [ - A2( - $elm$core$List$map, - function (_v6) { - var defName = _v6.a; - var def = _v6.b; - return A2( - $author$project$Morphir$Visual$XRayView$valueToNode, - $elm$core$Maybe$Just( - $author$project$Morphir$IR$Name$toCamelCase(defName)), - def.body); - }, - $elm$core$Dict$toList(defs)), - _List_fromArray( - [ - A2( - $author$project$Morphir$Visual$XRayView$valueToNode, - $elm$core$Maybe$Just('in'), - inValue) - ]) - ]))); - case 'Destructure': - var pattern = value.b; - var subject = value.c; - var inValue = value.d; - return A3( - $author$project$Morphir$Visual$XRayView$TreeNode, - tag, - $author$project$Morphir$Visual$XRayView$ValueNode(value), - _List_fromArray( - [ - A2($author$project$Morphir$Visual$XRayView$patternToNode, $elm$core$Maybe$Nothing, pattern), - A2( - $author$project$Morphir$Visual$XRayView$valueToNode, - $elm$core$Maybe$Just('='), - subject), - A2( - $author$project$Morphir$Visual$XRayView$valueToNode, - $elm$core$Maybe$Just('in'), - inValue) - ])); - case 'IfThenElse': - var cond = value.b; - var thenBranch = value.c; - var elseBranch = value.d; - return A3( - $author$project$Morphir$Visual$XRayView$TreeNode, - tag, - $author$project$Morphir$Visual$XRayView$ValueNode(value), - _List_fromArray( - [ - A2( - $author$project$Morphir$Visual$XRayView$valueToNode, - $elm$core$Maybe$Just('cond'), - cond), - A2( - $author$project$Morphir$Visual$XRayView$valueToNode, - $elm$core$Maybe$Just('then'), - thenBranch), - A2( - $author$project$Morphir$Visual$XRayView$valueToNode, - $elm$core$Maybe$Just('else'), - elseBranch) - ])); - case 'PatternMatch': - var subject = value.b; - var cases = value.c; - return A3( - $author$project$Morphir$Visual$XRayView$TreeNode, - tag, - $author$project$Morphir$Visual$XRayView$ValueNode(value), - $elm$core$List$concat( - _List_fromArray( - [ - _List_fromArray( - [ - A2( - $author$project$Morphir$Visual$XRayView$valueToNode, - $elm$core$Maybe$Just('case'), - subject) - ]), - $elm$core$List$concat( - A2( - $elm$core$List$indexedMap, - F2( - function (index, _v7) { - var casePattern = _v7.a; - var caseValue = _v7.b; - return _List_fromArray( - [ - A2($author$project$Morphir$Visual$XRayView$patternToNode, $elm$core$Maybe$Nothing, casePattern), - A2( - $author$project$Morphir$Visual$XRayView$valueToNode, - $elm$core$Maybe$Just('->'), - caseValue) - ]); - }), - cases)) - ]))); - case 'UpdateRecord': - var subject = value.b; - var fields = value.c; - return A3( - $author$project$Morphir$Visual$XRayView$TreeNode, - tag, - $author$project$Morphir$Visual$XRayView$ValueNode(value), - $elm$core$List$concat( - _List_fromArray( - [ - _List_fromArray( - [ - A2($author$project$Morphir$Visual$XRayView$valueToNode, $elm$core$Maybe$Nothing, subject) - ]), - A2( - $elm$core$List$map, - function (_v8) { - var fieldName = _v8.a; - var fieldValue = _v8.b; - return A2( - $author$project$Morphir$Visual$XRayView$valueToNode, - $elm$core$Maybe$Just( - $author$project$Morphir$IR$Name$toCamelCase(fieldName)), - fieldValue); - }, - fields) - ]))); - default: - return A3( - $author$project$Morphir$Visual$XRayView$TreeNode, - tag, - $author$project$Morphir$Visual$XRayView$ValueNode(value), - _List_Nil); - } - }); -var $author$project$Morphir$Visual$XRayView$noPadding = {bottom: 0, left: 0, right: 0, top: 0}; -var $author$project$Morphir$Visual$XRayView$viewConstructorName = function (_v0) { - var localName = _v0.c; - return $mdgriffith$elm_ui$Element$text( - $author$project$Morphir$IR$Name$toTitleCase(localName)); -}; -var $author$project$Morphir$Visual$XRayView$viewLiteral = function (lit) { - switch (lit.$) { - case 'BoolLiteral': - var bool = lit.a; - return bool ? $mdgriffith$elm_ui$Element$text('True') : $mdgriffith$elm_ui$Element$text('False'); - case 'CharLiteral': - var _char = lit.a; - return $mdgriffith$elm_ui$Element$text( - $elm$core$String$concat( - _List_fromArray( - [ - '\'', - $elm$core$String$fromChar(_char), - '\'' - ]))); - case 'StringLiteral': - var string = lit.a; - return $mdgriffith$elm_ui$Element$text( - $elm$core$String$concat( - _List_fromArray( - ['\"', string, '\"']))); - case 'IntLiteral': - var _int = lit.a; - return $mdgriffith$elm_ui$Element$text( - $elm$core$String$fromInt(_int)); - default: - var _float = lit.a; - return $mdgriffith$elm_ui$Element$text( - $elm$core$String$fromFloat(_float)); - } -}; -var $author$project$Morphir$Visual$XRayView$viewPatternAsHeader = function (pattern) { - var nodeLabel = function (labelText) { - return A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Element$paddingXY, 6, 3), - $mdgriffith$elm_ui$Element$Border$rounded(3), - $mdgriffith$elm_ui$Element$Background$color( - A3($mdgriffith$elm_ui$Element$rgb, 1, 0.9, 1)) - ]), - $mdgriffith$elm_ui$Element$text(labelText)); - }; - var header = function (elems) { - return A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing(5) - ]), - elems); - }; - switch (pattern.$) { - case 'WildcardPattern': - var a = pattern.a; - return header( - _List_fromArray( - [ - nodeLabel('WildcardPattern') - ])); - case 'AsPattern': - var a = pattern.a; - var name = pattern.c; - return header( - _List_fromArray( - [ - nodeLabel('AsPattern'), - $mdgriffith$elm_ui$Element$text( - $author$project$Morphir$IR$Name$toCamelCase(name)) - ])); - case 'TuplePattern': - var a = pattern.a; - return header( - _List_fromArray( - [ - nodeLabel('TuplePattern') - ])); - case 'ConstructorPattern': - var a = pattern.a; - var fQName = pattern.b; - return header( - _List_fromArray( - [ - nodeLabel('ConstructorPattern'), - $author$project$Morphir$Visual$XRayView$viewConstructorName(fQName) - ])); - case 'EmptyListPattern': - var a = pattern.a; - return header( - _List_fromArray( - [ - nodeLabel('EmptyListPattern') - ])); - case 'HeadTailPattern': - var a = pattern.a; - return header( - _List_fromArray( - [ - nodeLabel('HeadTailPattern') - ])); - case 'LiteralPattern': - var a = pattern.a; - var literal = pattern.b; - return header( - _List_fromArray( - [ - nodeLabel('LiteralPattern'), - $author$project$Morphir$Visual$XRayView$viewLiteral(literal) - ])); - default: - var a = pattern.a; - return header( - _List_fromArray( - [ - nodeLabel('UnitPattern') - ])); - } -}; -var $author$project$Morphir$Visual$XRayView$viewReferenceName = function (_v0) { - var localName = _v0.c; - return $mdgriffith$elm_ui$Element$text( - $author$project$Morphir$IR$Name$toCamelCase(localName)); -}; -var $author$project$Morphir$Visual$XRayView$viewValueAsHeader = function (value) { - var nodeLabel = function (labelText) { - return A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Element$paddingXY, 6, 3), - $mdgriffith$elm_ui$Element$Border$rounded(3), - $mdgriffith$elm_ui$Element$Background$color( - A3($mdgriffith$elm_ui$Element$rgb, 0.9, 1, 0.9)) - ]), - $mdgriffith$elm_ui$Element$text(labelText)); - }; - var header = function (elems) { - return A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing(5) - ]), - elems); - }; - switch (value.$) { - case 'Literal': - var lit = value.b; - return header( - _List_fromArray( - [ - nodeLabel('Literal'), - $author$project$Morphir$Visual$XRayView$viewLiteral(lit) - ])); - case 'Constructor': - var fQName = value.b; - return header( - _List_fromArray( - [ - nodeLabel('Constructor'), - $author$project$Morphir$Visual$XRayView$viewConstructorName(fQName) - ])); - case 'Tuple': - var items = value.b; - return $elm$core$List$isEmpty(items) ? header( - _List_fromArray( - [ - nodeLabel('Tuple'), - $mdgriffith$elm_ui$Element$text('()') - ])) : header( - _List_fromArray( - [ - nodeLabel('Tuple') - ])); - case 'List': - var items = value.b; - return $elm$core$List$isEmpty(items) ? header( - _List_fromArray( - [ - nodeLabel('List'), - $mdgriffith$elm_ui$Element$text('[]') - ])) : header( - _List_fromArray( - [ - nodeLabel('List') - ])); - case 'Record': - var fields = value.b; - return $elm$core$List$isEmpty(fields) ? header( - _List_fromArray( - [ - nodeLabel('Record'), - $mdgriffith$elm_ui$Element$text('{}') - ])) : header( - _List_fromArray( - [ - nodeLabel('Record') - ])); - case 'Variable': - var varName = value.b; - return header( - _List_fromArray( - [ - nodeLabel('Variable'), - $mdgriffith$elm_ui$Element$text( - $author$project$Morphir$IR$Name$toCamelCase(varName)) - ])); - case 'Reference': - var fQName = value.b; - return header( - _List_fromArray( - [ - nodeLabel('Reference'), - $author$project$Morphir$Visual$XRayView$viewReferenceName(fQName) - ])); - case 'Field': - var fieldName = value.c; - return header( - _List_fromArray( - [ - nodeLabel('Field'), - $mdgriffith$elm_ui$Element$text( - $author$project$Morphir$IR$Name$toCamelCase(fieldName)) - ])); - case 'FieldFunction': - var fieldName = value.b; - return header( - _List_fromArray( - [ - nodeLabel('FieldFunction'), - $mdgriffith$elm_ui$Element$text( - $author$project$Morphir$IR$Name$toCamelCase(fieldName)) - ])); - case 'Apply': - return header( - _List_fromArray( - [ - nodeLabel('Apply') - ])); - case 'Lambda': - return header( - _List_fromArray( - [ - nodeLabel('Lambda') - ])); - case 'LetDefinition': - return header( - _List_fromArray( - [ - nodeLabel('LetDefinition') - ])); - case 'LetRecursion': - return header( - _List_fromArray( - [ - nodeLabel('LetRecursion') - ])); - case 'Destructure': - return header( - _List_fromArray( - [ - nodeLabel('Destructure') - ])); - case 'IfThenElse': - return header( - _List_fromArray( - [ - nodeLabel('IfThenElse') - ])); - case 'PatternMatch': - return header( - _List_fromArray( - [ - nodeLabel('PatternMatch') - ])); - case 'UpdateRecord': - return header( - _List_fromArray( - [ - nodeLabel('UpdateRecord') - ])); - default: - return header( - _List_fromArray( - [ - nodeLabel('Unit') - ])); - } -}; -var $author$project$Morphir$Visual$XRayView$viewTreeNode = F2( - function (viewValueAttr, _v0) { - var maybeTag = _v0.a; - var nodeType = _v0.b; - var treeNodes = _v0.c; - var viewHeaderAndChildren = F3( - function (header, attr, children) { - return A2( - $mdgriffith$elm_ui$Element$column, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), - $mdgriffith$elm_ui$Element$spacing(5) - ]), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), - $mdgriffith$elm_ui$Element$spacing(5) - ]), - _List_fromArray( - [ - function () { - if (maybeTag.$ === 'Just') { - var tag = maybeTag.a; - return A2( - $mdgriffith$elm_ui$Element$row, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing(5) - ]), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$Font$color( - $author$project$Morphir$Visual$Common$grayScale(0.7)) - ]), - $mdgriffith$elm_ui$Element$text(tag)), - header - ])); - } else { - return header; - } - }(), - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - A2($mdgriffith$elm_ui$Element$paddingXY, 10, 2), - $mdgriffith$elm_ui$Element$Background$color( - A3($mdgriffith$elm_ui$Element$rgb, 1, 0.9, 0.8)), - $mdgriffith$elm_ui$Element$Border$rounded(3) - ]), - attr) - ])), - A2( - $mdgriffith$elm_ui$Element$column, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), - $mdgriffith$elm_ui$Element$paddingEach( - _Utils_update( - $author$project$Morphir$Visual$XRayView$noPadding, - {left: 20})) - ]), - children) - ])); - }); - if (nodeType.$ === 'ValueNode') { - var value = nodeType.a; - return A3( - viewHeaderAndChildren, - $author$project$Morphir$Visual$XRayView$viewValueAsHeader(value), - viewValueAttr( - $author$project$Morphir$IR$Value$valueAttribute(value)), - A2( - $elm$core$List$map, - $author$project$Morphir$Visual$XRayView$viewTreeNode(viewValueAttr), - treeNodes)); - } else { - var pattern = nodeType.a; - return A3( - viewHeaderAndChildren, - $author$project$Morphir$Visual$XRayView$viewPatternAsHeader(pattern), - viewValueAttr( - $author$project$Morphir$IR$Value$patternAttribute(pattern)), - A2( - $elm$core$List$map, - $author$project$Morphir$Visual$XRayView$viewTreeNode(viewValueAttr), - treeNodes)); - } - }); -var $author$project$Morphir$Visual$XRayView$viewValue = F2( - function (viewValueAttr, value) { - return A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$Font$family( - _List_fromArray( - [$mdgriffith$elm_ui$Element$Font$monospace])), - $mdgriffith$elm_ui$Element$Font$color( - $author$project$Morphir$Visual$Common$grayScale(0.3)) - ]), - A2( - $author$project$Morphir$Visual$XRayView$viewTreeNode, - viewValueAttr, - A2($author$project$Morphir$Visual$XRayView$valueToNode, $elm$core$Maybe$Nothing, value))); - }); -var $author$project$Morphir$Visual$ViewValue$viewPopup = function (config) { - return A2( - $elm$core$Maybe$withDefault, - A2( - $mdgriffith$elm_ui$Element$el, - _List_Nil, - $mdgriffith$elm_ui$Element$text('')), - A2( - $elm$core$Maybe$map, - function (rawValue) { - var visualTypedVal = A2( - $author$project$Morphir$Visual$VisualTypedValue$rawToVisualTypedValue, - $author$project$Morphir$IR$fromDistribution(config.irContext.distribution), - rawValue); - var popUpStyle = function (element) { - return A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$Border$shadow( - { - blur: 2, - color: config.state.theme.colors.darkest, - offset: _Utils_Tuple2(2, 2), - size: 2 - }), - $mdgriffith$elm_ui$Element$Background$color(config.state.theme.colors.lightest), - $mdgriffith$elm_ui$Element$Font$bold, - $mdgriffith$elm_ui$Element$Font$color(config.state.theme.colors.darkest), - $mdgriffith$elm_ui$Element$Border$rounded(4), - $mdgriffith$elm_ui$Element$Font$center, - $mdgriffith$elm_ui$Element$padding( - $author$project$Morphir$Visual$Theme$mediumPadding(config.state.theme)), - $mdgriffith$elm_ui$Element$htmlAttribute( - A2($elm$html$Html$Attributes$style, 'position', 'absolute')), - $mdgriffith$elm_ui$Element$htmlAttribute( - A2($elm$html$Html$Attributes$style, 'transition', 'all 0.2s ease-in-out')) - ]), - element); - }; - if (visualTypedVal.$ === 'Ok') { - var visualTypedValue = visualTypedVal.a; - return popUpStyle( - A2($author$project$Morphir$Visual$ViewValue$viewValue, config, visualTypedValue)); - } else { - var error = visualTypedVal.a; - return popUpStyle( - $mdgriffith$elm_ui$Element$text( - $author$project$Morphir$Type$Infer$typeErrorToMessage(error))); - } - }, - config.state.popupVariables.variableValue)); -}; -var $author$project$Morphir$Visual$ViewValue$viewValue = F2( - function (config, value) { - return A2($author$project$Morphir$Visual$ViewValue$viewValueByValueType, config, value); - }); -var $author$project$Morphir$Visual$ViewValue$viewValueByLanguageFeature = F2( - function (config, value) { - var valueElem = function () { - _v0$12: - while (true) { - switch (value.$) { - case 'Literal': - var literal = value.b; - return A2($author$project$Morphir$Visual$ViewLiteral$view, config, literal); - case 'Constructor': - var fQName = value.b; - return A3( - $author$project$Morphir$Visual$ViewReference$view, - config, - $author$project$Morphir$Visual$ViewValue$viewValue(config), - fQName); - case 'Tuple': - var elems = value.b; - return A3( - $author$project$Morphir$Visual$ViewTuple$view, - config, - $author$project$Morphir$Visual$ViewValue$viewValue(config), - elems); - case 'List': - if ((((((((((((((((((((((((value.a.b.$ === 'Reference') && value.a.b.b.a.b) && value.a.b.b.a.a.b) && (value.a.b.b.a.a.a === 'morphir')) && (!value.a.b.b.a.a.b.b)) && value.a.b.b.a.b.b) && value.a.b.b.a.b.a.b) && (value.a.b.b.a.b.a.a === 's')) && value.a.b.b.a.b.a.b.b) && (value.a.b.b.a.b.a.b.a === 'd')) && value.a.b.b.a.b.a.b.b.b) && (value.a.b.b.a.b.a.b.b.a === 'k')) && (!value.a.b.b.a.b.a.b.b.b.b)) && (!value.a.b.b.a.b.b.b)) && value.a.b.b.b.b) && value.a.b.b.b.a.b) && (value.a.b.b.b.a.a === 'list')) && (!value.a.b.b.b.a.b.b)) && (!value.a.b.b.b.b.b)) && value.a.b.b.c.b) && (value.a.b.b.c.a === 'list')) && (!value.a.b.b.c.b.b)) && value.a.b.c.b) && (!value.a.b.c.b.b)) { - var _v1 = value.a; - var index = _v1.a; - var _v2 = _v1.b; - var _v3 = _v2.b; - var _v4 = _v3.a; - var _v5 = _v4.a; - var _v6 = _v4.b; - var _v7 = _v6.a; - var _v8 = _v7.b; - var _v9 = _v8.b; - var _v10 = _v3.b; - var _v11 = _v10.a; - var _v12 = _v3.c; - var _v13 = _v2.c; - var itemType = _v13.a; - var items = value.b; - return A4( - $author$project$Morphir$Visual$ViewList$view, - config, - $author$project$Morphir$Visual$ViewValue$viewValue(config), - itemType, - items); - } else { - break _v0$12; - } - case 'Variable': - var _v14 = value.a; - var index = _v14.a; - var tpe = _v14.b; - var name = value.b; - var variableValue = A2($elm$core$Dict$get, name, config.state.variables); - return A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$Events$onMouseEnter( - A2(config.handlers.onHoverOver, index, variableValue)), - $mdgriffith$elm_ui$Element$Events$onMouseLeave( - config.handlers.onHoverLeave(index)), - $mdgriffith$elm_ui$Element$below( - _Utils_eq(config.state.popupVariables.variableIndex, index) ? A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$padding( - $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)) - ]), - $author$project$Morphir$Visual$ViewValue$viewPopup(config)) : $mdgriffith$elm_ui$Element$none), - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill), - $mdgriffith$elm_ui$Element$Font$center - ]), - $mdgriffith$elm_ui$Element$text( - $author$project$Morphir$Visual$Common$nameToText(name))); - case 'Reference': - var fQName = value.b; - return A3( - $author$project$Morphir$Visual$ViewReference$view, - config, - $author$project$Morphir$Visual$ViewValue$viewValue(config), - fQName); - case 'Field': - var subjectValue = value.b; - var fieldName = value.c; - return A3( - $author$project$Morphir$Visual$ViewField$view, - $author$project$Morphir$Visual$ViewValue$viewValue(config), - subjectValue, - fieldName); - case 'Apply': - var fun = value.b; - var arg = value.c; - var _v15 = A2($author$project$Morphir$IR$Value$uncurryApply, fun, arg); - var _function = _v15.a; - var args = _v15.b; - return A4( - $author$project$Morphir$Visual$ViewApply$view, - config, - $author$project$Morphir$Visual$ViewValue$viewValue(config), - _function, - args); - case 'LetDefinition': - var unnest = F2( - function (conf, v) { - if (v.$ === 'LetDefinition') { - var defName = v.b; - var def = v.c; - var inVal = v.d; - var currentState = conf.state; - var newState = _Utils_update( - currentState, - { - variables: A2( - $elm$core$Result$withDefault, - currentState.variables, - A2( - $elm$core$Result$map, - function (evaluatedDefValue) { - return A3($elm$core$Dict$insert, defName, evaluatedDefValue, currentState.variables); - }, - A2( - $author$project$Morphir$Visual$Config$evaluate, - $author$project$Morphir$IR$Value$definitionToValue( - A3( - $author$project$Morphir$IR$Value$mapDefinitionAttributes, - $elm$core$Basics$always(_Utils_Tuple0), - $elm$core$Basics$always(_Utils_Tuple0), - def)), - conf))) - }); - var _v17 = A2( - unnest, - _Utils_update( - conf, - {state: newState}), - inVal); - var defs = _v17.a; - var bottomIn = _v17.b; - return _Utils_Tuple2( - A2( - $elm$core$List$cons, - _Utils_Tuple2( - defName, - A2($author$project$Morphir$Visual$ViewValue$viewValue, conf, def.body)), - defs), - bottomIn); - } else { - var notLet = v; - return _Utils_Tuple2( - _List_Nil, - A2($author$project$Morphir$Visual$ViewValue$viewValue, conf, notLet)); - } - }); - var _v18 = A2(unnest, config, value); - var definitions = _v18.a; - var inValueElem = _v18.b; - return A2( - $mdgriffith$elm_ui$Element$column, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme)) - ]), - _List_fromArray( - [ - inValueElem, - A2( - $mdgriffith$elm_ui$Element$column, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme)) - ]), - A2( - $elm$core$List$map, - function (_v19) { - var defName = _v19.a; - var defElem = _v19.b; - return A2( - $mdgriffith$elm_ui$Element$column, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme)) - ]), - _List_fromArray( - [ - A3( - $author$project$Morphir$Visual$Common$definition, - config, - $author$project$Morphir$Visual$Common$nameToText(defName), - defElem) - ])); - }, - definitions)) - ])); - case 'IfThenElse': - return A3( - $author$project$Morphir$Visual$ViewIfThenElse$view, - config, - $author$project$Morphir$Visual$ViewValue$viewValue(config), - value); - case 'PatternMatch': - var tpe = value.a; - var param = value.b; - var patterns = value.c; - return A4( - $author$project$Morphir$Visual$ViewPatternMatch$view, - config, - $author$project$Morphir$Visual$ViewValue$viewValue(config), - param, - patterns); - case 'Unit': - return A2( - $mdgriffith$elm_ui$Element$el, - _List_Nil, - $mdgriffith$elm_ui$Element$text('not set')); - default: - break _v0$12; - } - } - var other = value; - return A2( - $mdgriffith$elm_ui$Element$column, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$Background$color( - A3($mdgriffith$elm_ui$Element$rgb, 1, 0.6, 0.6)), - $mdgriffith$elm_ui$Element$padding( - $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)), - $mdgriffith$elm_ui$Element$Border$rounded(6) - ]), - _List_fromArray( - [ - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$padding( - $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)), - $mdgriffith$elm_ui$Element$Font$bold - ]), - $mdgriffith$elm_ui$Element$text('No visual mapping found for:')), - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$Background$color( - A3($mdgriffith$elm_ui$Element$rgb, 1, 1, 1)), - $mdgriffith$elm_ui$Element$padding( - $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)), - $mdgriffith$elm_ui$Element$Border$rounded(6), - $mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill) - ]), - A2( - $author$project$Morphir$Visual$XRayView$viewValue, - $author$project$Morphir$Visual$XRayView$viewType, - A3( - $author$project$Morphir$IR$Value$mapValueAttributes, - $elm$core$Basics$identity, - function (_v20) { - var tpe = _v20.b; - return tpe; - }, - other))) - ])); - }(); - return valueElem; - }); -var $author$project$Morphir$Visual$ViewValue$viewValueByValueType = F2( - function (config, typedValue) { - var valueType = $author$project$Morphir$IR$Value$valueAttribute(typedValue).b; - if (_Utils_eq( - valueType, - $author$project$Morphir$IR$SDK$Basics$boolType(_Utils_Tuple0))) { - var boolOperatorTree = $author$project$Morphir$Visual$BoolOperatorTree$fromTypedValue(typedValue); - return A3( - $author$project$Morphir$Visual$ViewBoolOperatorTree$view, - config, - $author$project$Morphir$Visual$ViewValue$viewValueByLanguageFeature(config), - boolOperatorTree); - } else { - if ($author$project$Morphir$IR$SDK$Basics$isNumber(valueType)) { - var arithmeticOperatorTree = $author$project$Morphir$Visual$Components$AritmeticExpressions$fromArithmeticTypedValue(typedValue); - return A3( - $author$project$Morphir$Visual$ViewArithmetic$view, - config, - $author$project$Morphir$Visual$ViewValue$viewValueByLanguageFeature(config), - arithmeticOperatorTree); - } else { - return A2($author$project$Morphir$Visual$ViewValue$viewValueByLanguageFeature, config, typedValue); - } - } - }); -var $author$project$Morphir$Visual$ViewValue$viewDefinition = F3( - function (config, _v0, valueDef) { - var valueName = _v0.c; - var definitionElem = A3( - $author$project$Morphir$Visual$Common$definition, - config, - $author$project$Morphir$Visual$Common$nameToText(valueName), - A2( - $author$project$Morphir$Visual$ViewValue$viewValue, - config, - $author$project$Morphir$Visual$VisualTypedValue$typedToVisualTypedValue(valueDef.body))); - var _v1 = A2($elm$core$Debug$log, 'variables', config.state.variables); - return A2( - $mdgriffith$elm_ui$Element$column, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme)) - ]), - _List_fromArray( - [ - definitionElem, - $elm$core$Dict$isEmpty(config.state.expandedFunctions) ? $mdgriffith$elm_ui$Element$none : A2( - $mdgriffith$elm_ui$Element$column, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$mediumSpacing(config.state.theme)) - ]), - A2( - $elm$core$List$map, - function (_v2) { - var fqName = _v2.a; - var localName = fqName.c; - var valDef = _v2.b; - return A2( - $mdgriffith$elm_ui$Element$column, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)) - ]), - _List_fromArray( - [ - A3( - $author$project$Morphir$Visual$Common$definition, - config, - $author$project$Morphir$Visual$Common$nameToText(localName), - A2( - $author$project$Morphir$Visual$ViewValue$viewValue, - config, - $author$project$Morphir$Visual$VisualTypedValue$typedToVisualTypedValue(valDef.body))), - A2( - $mdgriffith$elm_ui$Element$el, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$Font$bold, - $mdgriffith$elm_ui$Element$Border$solid, - $mdgriffith$elm_ui$Element$Border$rounded(3), - $mdgriffith$elm_ui$Element$Background$color(config.state.theme.colors.lightest), - $mdgriffith$elm_ui$Element$Font$color(config.state.theme.colors.darkest), - $mdgriffith$elm_ui$Element$padding( - $author$project$Morphir$Visual$Theme$smallPadding(config.state.theme)), - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$smallSpacing(config.state.theme)), - $mdgriffith$elm_ui$Element$Events$onClick( - A2(config.handlers.onReferenceClicked, fqName, true)) - ]), - $mdgriffith$elm_ui$Element$text('Close')) - ])); - }, - $elm$core$List$reverse( - $elm$core$Dict$toList(config.state.expandedFunctions)))) - ])); - }); -var $author$project$Morphir$Web$Insight$view = function (model) { - var _v0 = model.modelState; - switch (_v0.$) { - case 'IRLoaded': - return A2($elm$html$Html$div, _List_Nil, _List_Nil); - case 'Failed': - var string = _v0.a; - return A2( - $mdgriffith$elm_ui$Element$layout, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$Font$size(model.theme.fontSize), - $mdgriffith$elm_ui$Element$padding( - $author$project$Morphir$Visual$Theme$smallPadding(model.theme)), - $mdgriffith$elm_ui$Element$Font$bold - ]), - $mdgriffith$elm_ui$Element$text(string)); - default: - var visualizationState = _v0.a; - var valueFQName = function () { - var _v2 = _Utils_Tuple2(visualizationState.distribution, visualizationState.selectedFunction); - var _v3 = _v2.a; - var packageName = _v3.a; - var _v4 = _v2.b; - var moduleName = _v4.a; - var localName = _v4.b; - return _Utils_Tuple3(packageName, moduleName, localName); - }(); - var validArgValues = $elm$core$Dict$fromList( - A3( - $elm$core$List$map2, - F2( - function (_v1, argValue) { - var argName = _v1.a; - return _Utils_Tuple2(argName, argValue); - }), - visualizationState.functionDefinition.inputTypes, - visualizationState.functionArguments)); - var config = { - handlers: {onHoverLeave: $author$project$Morphir$Web$Insight$ShrinkVariable, onHoverOver: $author$project$Morphir$Web$Insight$ExpandVariable, onReferenceClicked: $author$project$Morphir$Web$Insight$ExpandReference}, - irContext: {distribution: visualizationState.distribution, nativeFunctions: $author$project$Morphir$IR$SDK$nativeFunctions}, - state: {expandedFunctions: visualizationState.expandedFunctions, popupVariables: visualizationState.popupVariables, theme: model.theme, variables: validArgValues} - }; - return A2( - $mdgriffith$elm_ui$Element$layout, - _List_fromArray( - [ - $mdgriffith$elm_ui$Element$Font$size(model.theme.fontSize), - $mdgriffith$elm_ui$Element$padding( - $author$project$Morphir$Visual$Theme$smallPadding(model.theme)), - $mdgriffith$elm_ui$Element$spacing( - $author$project$Morphir$Visual$Theme$smallSpacing(model.theme)) - ]), - A3($author$project$Morphir$Visual$ViewValue$viewDefinition, config, valueFQName, visualizationState.functionDefinition)); - } -}; -var $author$project$Morphir$Web$Insight$main = $elm$browser$Browser$element( - {init: $author$project$Morphir$Web$Insight$init, subscriptions: $author$project$Morphir$Web$Insight$subscriptions, update: $author$project$Morphir$Web$Insight$update, view: $author$project$Morphir$Web$Insight$view}); -_Platform_export({'Morphir':{'Web':{'Insight':{'init':$author$project$Morphir$Web$Insight$main($elm$json$Json$Decode$value)(0)}}}});}(this)); \ No newline at end of file diff --git a/tutorial/getting_started/doc/web/morphir-ir.json b/tutorial/getting_started/doc/web/morphir-ir.json deleted file mode 100644 index be21acf..0000000 --- a/tutorial/getting_started/doc/web/morphir-ir.json +++ /dev/null @@ -1,2596 +0,0 @@ -{ - "formatVersion": 1, - "distribution": [ - "library", - [ - [ - "morphir" - ], - [ - "example" - ], - [ - "app" - ] - ], - [], - { - "modules": [ - { - "name": [ - [ - "rentals" - ] - ], - "def": [ - "public", - { - "types": [], - "values": [ - [ - [ - "request" - ], - [ - "public", - { - "inputTypes": [ - [ - [ - "inventory" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ] - ], - [ - [ - "reservations" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ] - ], - [ - [ - "returns" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ] - ], - [ - [ - "requested", - "amount" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ] - ], - [ - [ - "allow", - "partial" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - "outputType": [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "result" - ] - ], - [ - "result" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ] - ] - ], - "body": [ - "let_definition", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "result" - ] - ], - [ - "result" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ] - ] - ], - [ - "availability" - ], - { - "inputTypes": [], - "outputType": [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - "body": [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "add" - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "subtract" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "inventory" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "reservations" - ] - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "returns" - ] - ] - ] - }, - [ - "if_then_else", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "result" - ] - ], - [ - "result" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "less", - "than", - "or", - "equal" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "requested", - "amount" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "availability" - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "result" - ] - ], - [ - "result" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ] - ] - ], - [ - "constructor", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "result" - ] - ], - [ - "result" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "result" - ] - ], - [ - "ok" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "requested", - "amount" - ] - ] - ], - [ - "if_then_else", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "result" - ] - ], - [ - "result" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "and" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "allow", - "partial" - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "greater", - "than" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "availability" - ] - ] - ], - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "int_literal", - 0 - ] - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "result" - ] - ], - [ - "result" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ] - ] - ], - [ - "constructor", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "result" - ] - ], - [ - "result" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "result" - ] - ], - [ - "ok" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ], - [ - "availability" - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "result" - ] - ], - [ - "result" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ] - ] - ], - [ - "constructor", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "result" - ] - ], - [ - "result" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "int" - ] - ], - [] - ] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "result" - ] - ], - [ - "err" - ] - ] - ], - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "Insufficient inventory" - ] - ] - ] - ] - ] - ] - } - ] - ] - ] - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/tutorial/getting_started/doc/web/morphir-tests.json b/tutorial/getting_started/doc/web/morphir-tests.json deleted file mode 100644 index 32960f8..0000000 --- a/tutorial/getting_started/doc/web/morphir-tests.json +++ /dev/null @@ -1,2 +0,0 @@ -[ -] \ No newline at end of file diff --git a/tutorial/getting_started/doc/web/try-morphir.html b/tutorial/getting_started/doc/web/try-morphir.html deleted file mode 100644 index 62a71ff..0000000 --- a/tutorial/getting_started/doc/web/try-morphir.html +++ /dev/null @@ -1,39981 +0,0 @@ - - - - - Morphir.Web.TryMorphir - - - - - -

-
-
-
-
-
\ No newline at end of file
diff --git a/tutorial/getting_started/model_a_request.md b/tutorial/getting_started/model_a_request.md
deleted file mode 100644
index fd4f40b..0000000
--- a/tutorial/getting_started/model_a_request.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# Morphir Tutorial: Modelling Business Logic
-
diff --git a/tutorial/getting_started/src/Morphir/Example/App/App.elm b/tutorial/getting_started/src/Morphir/Example/App/App.elm
deleted file mode 100644
index f6dcd01..0000000
--- a/tutorial/getting_started/src/Morphir/Example/App/App.elm
+++ /dev/null
@@ -1,84 +0,0 @@
-module Morphir.Example.App.App exposing (..)
-
-
-request : State a -> Bool -> Int -> TimeUnit -> Response
-request state allowPartial requestedAmount startTime =
-    let
-        available : Int
-        available =
-            availableForRent state startTime
-    in
-    if available < requestedAmount then
-        if allowPartial then
-            Reserved (min available requestedAmount)
-
-        else
-            Rejected
-
-    else
-        Reserved requestedAmount
-
-
-availableForRent : State a -> TimeUnit -> Int
-availableForRent state byWhen =
-    let
-        inventory =
-            currentInventory state
-
-        estimatedReserved =
-            toFloat (currentlyReserved state) * state.averageNoShows |> floor
-
-        probablyReturns =
-            toFloat (scheduledReturns state byWhen) * state.averageLateReturnRatio |> floor
-    in
-    inventory - estimatedReserved + probablyReturns
-
-
-currentInventory : State a -> Int
-currentInventory state =
-    state.inventory
-        --|> List.filter (\item -> item.location == OnSite)
-        |> List.length
-
-
-currentlyReserved : State a -> Int
-currentlyReserved state =
-    state.reservations
-        |> List.length
-
-
-scheduledReturns : State a -> TimeUnit -> Int
-scheduledReturns state byWhen =
-    state.reservations
-        |> List.filter (\item -> item.endTime <= byWhen)
-        |> List.length
-
-
-type alias State a =
-    { inventory : List a
-    , reservations : List Reservation
-    , averageNoShows : Float
-    , averageLateReturnRatio : Float
-    }
-
-
-type alias Reservation =
-    { quantity : Int
-    , startTime : TimeUnit
-    , endTime : TimeUnit
-    }
-
-
-type Response
-    = Rejected
-    | Reserved Int
-
-
-type alias TimeUnit =
-    Int
-
-
-type Location
-    = OnSite
-    | PendingDelivery
-    | BackOrder
diff --git a/tutorial/getting_started/src/Morphir/Example/App/Rentals.elm b/tutorial/getting_started/src/Morphir/Example/App/Rentals.elm
deleted file mode 100644
index 5beb052..0000000
--- a/tutorial/getting_started/src/Morphir/Example/App/Rentals.elm
+++ /dev/null
@@ -1,19 +0,0 @@
-module Morphir.Example.App.Rentals exposing (..)
-
-
-request : Int -> Int -> Int -> Int -> Bool -> Result String Int
-request inventory reservations returns requestedAmount allowPartial =
-    let
-        availability : Int
-        availability =
-            inventory - reservations + returns
-    in
-        if requestedAmount <= availability then
-            Ok requestedAmount
-
-        else
-            if allowPartial && availability > 0 then
-                Ok availability
-            else
-                Err "Insufficient inventory"
-
diff --git a/tutorial/install.md b/tutorial/install.md
index b0fc97d..b1d6fd0 100644
--- a/tutorial/install.md
+++ b/tutorial/install.md
@@ -26,4 +26,4 @@ elm init
 ```
 
 
-[Home](../) | [Prev](../) | [Next](model_a_request)
+[Home](../) | [Prev](../) | [Next](step_1_first_logic/readme)
diff --git a/tutorial/readme.md b/tutorial/readme.md
index 66110b8..8f54901 100644
--- a/tutorial/readme.md
+++ b/tutorial/readme.md
@@ -12,10 +12,13 @@ The business is simple: Rent surfboards whenever they're available.
 
 ## Why?
 Seems simple enough, so why would we consider doing it with Morphir.  One of our goals is to optimize the feedback loop between the business and developers. 
-Business experts tend to the think of an application in its business terms.  In this case they might be thinking something like:
+Business experts tend to the think of an application in its business terms.  
 
-## Business View
-

+### Business View + +In this case they might be thinking something like: + +

availability @@ -31,7 +34,7 @@ Business experts tend to the think of an application in its business terms. In
where:
-

+

inventory @@ -64,10 +67,12 @@ where:

-

+
+ +### Developer View -## Developer View This specification gets handed to developers, who immediately start thinking of how to split it up to run most efficiently on the various technologies. They might view it as: + @@ -80,6 +85,7 @@ The problem comes when the business specifications get stale or lost over time. + That's a major problem for a large application. It leads to legacy debt, higher risk, and slower delivery. ## Optimum Efficiency diff --git a/tutorial/step_1_first_logic/developer_page_1.png b/tutorial/step_1_first_logic/developer_page_1.png new file mode 100644 index 0000000000000000000000000000000000000000..0fa99b1cf4299315f842e2f202c430fdca6dc395 GIT binary patch literal 78456 zcmeFYWl$Z;vM7u@1b11%A-KD{yE`o0-66O;1or?zg1fszu;A{&Jp_9z*?XUJZhi01 zt@_@-14Y%WneLwMo}QkTMWm8~Br*a%0vH$=vb2<#3K$q9G#D885gZI?1{WZT1O|rl z>aC{bs$%Q`aCCMsx3UEST)iBD0HCLpIT)DdN>!GH``QS0@!KJ-IsEaY^K33FZ~Fc; zPGq54aT$jqeJ*7bHDJ;W&FLe@)7#6Y>Fc|HEVlr-Pb|vtP9_=`^Uu#2aDa8 zmuFdyjwyd02X{ZeTSB){myD`M?zZ?F63EWDuQxQE$ZCft(N~Yr*m*_OhA`gpm<^=U z;dl6DoiGTmkA0mmN7GHV_Kh75#;1or+uoQV-|${CpW^J+ZJMeBhJ)@jcFZpQVHIvx z!++8Njsz`44n@1V$#9&}^2mmL4jR#su5)ruSIZ|D4IY2q4t{vqePUFAe{Ah@+^J{2 ziQjEL)c>{d^C0u5-2qcTNPp>#efz5$FUea@eL1&Fo2${4n+f6$4>9-`XmR zVCWlq-uR2vvzq9wf?n5YLvY@4=8e{K%Te0Nc?~*IX%-#xuQNo+3#z!;R{SUje;Auf z#rb&Nt`KaEGA@^$jUMecQ~L9%)pOT5bxMP{51pn=!$ccLivd?Rs~@M7M|i1B?}x1` z$3G}(hw+te>V=A~Jw_C{B0pc<+~qyvUmCTUf3>Yyy+UG6@)=Cqq1KaxWsoDx({llK z!t{tuhpdiI#(B#lpDUqrhs)$Zg?38fZaLE^NeJe#Bnge5pB++}9@M71ye+RK}p zrz1?1stmHxIr>SfvJ{br{(*U3Rf_p@imEhwy#<(YgUK)?(23BqGdUbJJM8n&OfY5-!3y*<8=cb9}f*&NDOWk zRoiNwFY%kxu9-trxuvi1h;L@LuSnmaelrlLUl=@!)uYN=J{XPK(*`EFq$Lku8m� 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

)QI=f?ZZ%Tp-`E^8ky29t~!FoLXkD9r2 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

  • O?-RQA$Uj=cta0V5O2vGF5~;M`ty+PtN4{RX zhzUJ7Z~U@`QtnVdHK&<|BW^|Kl=)TPNk3kkg>-I8S_cH;FVX| zI9M1?X6pIW9#GKgI+G`ekf|XC#YsoM+Xa-B3^d+jf&GYC? zL4yPKRon%pJ||TsCGs{8V(rX27yTQG?*RZ$p258OMfzP?U-&3Ca!dv1Q$SHusQ+|!g|yq!4>vX}tSxXOBse>-hxH~p?66ba zR_c7X=yT%h{!c9tw5l0JQHt`ns089Og5Pwwc!)81dP=it^sO?}&p)bNbu-rC#{p99szE z5SK_!zed)7BwV67J>$Gv>mt34K*s^ zyx$kRC}@VRtQ2mmSN?9GaNWMq!TH>GD#5n;lOW~kQ1Pgm61|l)F9l!5kw{TgCUyOc zF5l--*-|+=u6T`Jdl*GrfgZ)q@*R%Vy&L}hqyrdeRSHNF2|P)4V7^IVB0oJP0i1dT zRe$-}Et=9u0Kf_?>HH_XNwN6QZ{mX{$Lf66q~o~vS&ZNvW$ D!{mbM literal 0 HcmV?d00001 diff --git a/tutorial/step_1_first_logic/developer_page_3.png b/tutorial/step_1_first_logic/developer_page_3.png new file mode 100644 index 0000000000000000000000000000000000000000..f71399272f0ee80bad7e8b65e5629720e05d01ce GIT binary patch literal 75787 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�%ZvIY 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 EA4gyiFaQ7m literal 0 HcmV?d00001 diff --git a/tutorial/getting_started/elm.json b/tutorial/step_1_first_logic/elm.json similarity index 100% rename from tutorial/getting_started/elm.json rename to tutorial/step_1_first_logic/elm.json diff --git a/tutorial/step_1_first_logic/morphir-ir.json b/tutorial/step_1_first_logic/morphir-ir.json new file mode 100644 index 0000000..7f26211 --- /dev/null +++ b/tutorial/step_1_first_logic/morphir-ir.json @@ -0,0 +1,1050 @@ +{ + "formatVersion": 1, + "distribution": [ + "library", + [ + [ + "morphir" + ], + [ + "example" + ], + [ + "app" + ] + ], + [], + { + "modules": [ + { + "name": [ + [ + "rentals" + ] + ], + "def": [ + "public", + { + "types": [], + "values": [ + [ + [ + "request" + ], + [ + "public", + { + "inputTypes": [ + [ + [ + "availability" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ] + ], + [ + [ + "requested", + "quantity" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ] + ] + ], + "outputType": [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "result" + ] + ], + [ + "result" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ] + ] + ], + "body": [ + "if_then_else", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "result" + ] + ], + [ + "result" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "less", + "than", + "or", + "equal" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "requested", + "quantity" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "availability" + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "result" + ] + ], + [ + "result" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ] + ] + ], + [ + "constructor", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "result" + ] + ], + [ + "result" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "result" + ] + ], + [ + "ok" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ], + [ + "requested", + "quantity" + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "result" + ] + ], + [ + "result" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ] + ] + ], + [ + "constructor", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "result" + ] + ], + [ + "result" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "int" + ] + ], + [] + ] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "result" + ] + ], + [ + "err" + ] + ] + ], + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "Insufficient availability" + ] + ] + ] + ] + } + ] + ] + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/tutorial/getting_started/morphir.json b/tutorial/step_1_first_logic/morphir.json similarity index 100% rename from tutorial/getting_started/morphir.json rename to tutorial/step_1_first_logic/morphir.json diff --git a/tutorial/step_1_first_logic/readme.md b/tutorial/step_1_first_logic/readme.md new file mode 100644 index 0000000..a2b6eb4 --- /dev/null +++ b/tutorial/step_1_first_logic/readme.md @@ -0,0 +1,41 @@ +# Morphir Tutorial: First Logic Model + +We'll start out with a very simple example of modeling logic: whether we have enough surfboards to satisfy a rental request. We'll put that logic into a function: + +``` Elm +request : Int -> Int -> Result String Int +request availability requestedQuantity = + if requestedQuantity <= availability then + Ok requestedQuantity + else + Err "Insufficient availability" +``` +This is Elm's way of declaring a function. In this case, the function takes the current availability and the requested amount and returns a Result, which is either the quantity to be rented or an error message. At this point, we might want to play around to test that we got everything covered. We can do this with Morphir's developer tools. On the command line, type: + +``` +morphir-elm make +morphir-elm develop +``` + +Go ahead and click on the http://0.0.0.0:3000 link (note: you can also find an online example at [Insight Sample](https://finos.github.io/morphir-service)). Click on the "Rentals" link. You should see a page like: + + + +We can test out our logic by trying different values and checking the execution paths below: + + + +### Generating code +You might be interested in using this logic in a larger application. One option is to use the base Scala generator to transpile to a Scala library. This would allow you to use it as you would any other Scala library. To generate into the ```dist``` folder default, run: + +``` +morphir-elm gen +``` + +The full source code for the model can be found at [Rentals.elm](src/Morphir/Example/App/Rentals.elm) + +That wraps up our first Morphir model! + + + +[Home](../..) | [Prev](../../install) | [Next](step_2_refined_logic/readme) diff --git a/tutorial/step_1_first_logic/src/Morphir/Example/App/Rentals.elm b/tutorial/step_1_first_logic/src/Morphir/Example/App/Rentals.elm new file mode 100644 index 0000000..b8618a8 --- /dev/null +++ b/tutorial/step_1_first_logic/src/Morphir/Example/App/Rentals.elm @@ -0,0 +1,11 @@ +module Morphir.Example.App.Rentals exposing (..) + + +request : Int -> Int -> Result String Int +request availability requestedQuantity = + if requestedQuantity <= availability then + Ok requestedQuantity + + else + Err "Insufficient availability" + From 32f9a5ebd878f3698679f65c56c2cdf5be22efe5 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Fri, 4 Jun 2021 11:14:16 -0400 Subject: [PATCH 57/88] assume not github pages --- tutorial/install.md | 2 +- tutorial/readme.md | 6 +++--- tutorial/step_1_first_logic/readme.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tutorial/install.md b/tutorial/install.md index b1d6fd0..9a3122b 100644 --- a/tutorial/install.md +++ b/tutorial/install.md @@ -26,4 +26,4 @@ elm init ``` -[Home](../) | [Prev](../) | [Next](step_1_first_logic/readme) +[Home](../readme.md) | [Prev](../readme.md) | [Next](step_1_first_logic/readme.md) diff --git a/tutorial/readme.md b/tutorial/readme.md index 8f54901..a0caecb 100644 --- a/tutorial/readme.md +++ b/tutorial/readme.md @@ -96,9 +96,9 @@ We want to get back to a continuous state of: So with that out of the way, let's dive in... -* [Install Morphir with a new project](install) -* [Model a request](model_a_request) +* [Install Morphir with a new project](install.md) +* [Step 1: First Logic Model](step_1_first_logic/readme.md) -[Next](install) +[Next](install.md) diff --git a/tutorial/step_1_first_logic/readme.md b/tutorial/step_1_first_logic/readme.md index a2b6eb4..01283ed 100644 --- a/tutorial/step_1_first_logic/readme.md +++ b/tutorial/step_1_first_logic/readme.md @@ -38,4 +38,4 @@ That wraps up our first Morphir model! -[Home](../..) | [Prev](../../install) | [Next](step_2_refined_logic/readme) +[Home](../../readme.md) | [Prev](../../install.md) | [Next](step_2_refined_logic/readme.md) From 07792b1cacf35eaf8dc3e7ce23c6a2a84874a428 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Fri, 4 Jun 2021 11:33:58 -0400 Subject: [PATCH 58/88] added boilderplate tasks --- tutorial/step_1_first_logic/readme.md | 33 ++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/tutorial/step_1_first_logic/readme.md b/tutorial/step_1_first_logic/readme.md index 01283ed..4e6f1b3 100644 --- a/tutorial/step_1_first_logic/readme.md +++ b/tutorial/step_1_first_logic/readme.md @@ -1,6 +1,37 @@ # Morphir Tutorial: First Logic Model -We'll start out with a very simple example of modeling logic: whether we have enough surfboards to satisfy a rental request. We'll put that logic into a function: +We'll start out with a very simple example of modeling logic: whether we have enough surfboards to satisfy a rental request. First up, let's create the Elm source file for our code. + +First create the file ```src/Morphir/Examples/App/Rentals.elm```. In linux that's: + +``` +mkdir src/Morphir +mkdir src/Morphir/Examples +mkdir src/Morphir/Examples/App +touch src/Morphir/Examples/App/Rentals.elm +``` + +We need to update ```morphir.json``` to reflect our new module. Edit it to add the ```Morphir.Example.App``` package and the ```Rentals``` module and like this: + +``` +{ + "name": "Morphir.Example.App", + "sourceDirectory": "src", + "exposedModules": [ + "Rentals" + ] +} +``` + +Now edit the ```Rentals.eml``` file. First, we want to reflect the module (aka namespace). Add: + +``` Elm +module Morphir.Example.App.Rentals exposing (..) + + +``` + +That takes care of the boilerplate. Now we can focus on the business logic. We'll put that into a function: ``` Elm request : Int -> Int -> Result String Int From d11a10b880b2aa489be9526d45e50d398199a850 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum <129341+stephengoldbaum@users.noreply.github.com> Date: Fri, 4 Jun 2021 11:48:45 -0400 Subject: [PATCH 59/88] some more thoughts on staleness --- tutorial/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tutorial/readme.md b/tutorial/readme.md index a0caecb..ca275e6 100644 --- a/tutorial/readme.md +++ b/tutorial/readme.md @@ -81,12 +81,12 @@ This specification gets handed to developers, who immediately start thinking of style="background-color:LightGray" /> --> ## Lost Knowledge -The problem comes when the business specifications get stale or lost over time. What's left is this: +The problem comes when, inevitably, developers and business experts come and go, documentation gets stale, and other factors cause the knowledge of the application's expected behavior to get out of sync, stale, or lost over time. As that happens, individual technologies become the system of record for the application's behavior. What's left is this: -That's a major problem for a large application. It leads to legacy debt, higher risk, and slower delivery. +At this point, it becomes difficult to reason about the application and what changes will do to it. That's a major problem for a large application. It leads to legacy debt, higher risk, and slower delivery. ## Optimum Efficiency We want to get back to a continuous state of: From d6d2ecff8923e5e045bb536b89395a3a81627ed0 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum <129341+stephengoldbaum@users.noreply.github.com> Date: Fri, 4 Jun 2021 11:51:40 -0400 Subject: [PATCH 60/88] More optimum efficiency --- tutorial/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutorial/readme.md b/tutorial/readme.md index ca275e6..fce66f7 100644 --- a/tutorial/readme.md +++ b/tutorial/readme.md @@ -89,7 +89,7 @@ The problem comes when, inevitably, developers and business experts come and go, At this point, it becomes difficult to reason about the application and what changes will do to it. That's a major problem for a large application. It leads to legacy debt, higher risk, and slower delivery. ## Optimum Efficiency -We want to get back to a continuous state of: +We want to get back to the business logic being the main asset of the application. The optimal efficiency is a state where the business logic is the central developer focus that gets continuosly projected onto the various technologies of the moment: From 611e492d328a8d4735edbc779aa55b3b89c2bcc5 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Tue, 8 Jun 2021 17:20:47 -0400 Subject: [PATCH 61/88] Updating for 6G --- README.md | 2 +- elm.json | 2 +- lobo.json | 39 +- morphir-ir.json | 61057 +++++++++++++++- morphir.json | 2 +- package.json | 8 + src/Morphir/Sample/LCR/Basics.elm | 68 - src/Morphir/Sample/LCR/Counterparty.elm | 43 - src/Morphir/Sample/LCR/Inflows.elm | 187 - src/Morphir/Sample/LCR/Product.elm | 34 - src/Morphir/Sample/LCR/Rules.elm | 64 - .../CDM}/MiFIR/AncillaryRoleEnum.elm | 2 +- .../{CDM/Reg => Reg/CDM}/MiFIR/Basics.elm | 2 +- .../{CDM/Reg => Reg/CDM}/MiFIR/Enums.elm | 2 +- .../CDM}/MiFIR/FloatingRateIndexEnum.elm | 2 +- .../{CDM/Reg => Reg/CDM}/MiFIR/Quantities.elm | 4 +- .../{CDM/Reg => Reg/CDM}/MiFIR/README.md | 0 .../{CDM/Reg => Reg/CDM}/MiFIR/RTS22.elm | 20 +- .../{CDM/Reg => Reg/CDM}/MiFIR/RTS22Alt.elm | 10 +- src/Morphir/Sample/Reg/Country.elm | 248 + src/Morphir/Sample/Reg/Currency.elm | 439 + src/Morphir/Sample/Reg/LCR/Basics.elm | 75 + .../Sample/{ => Reg}/LCR/Calculations.elm | 255 +- src/Morphir/Sample/Reg/LCR/Counterparty.elm | 45 + src/Morphir/Sample/{ => Reg}/LCR/Flows.elm | 8 +- src/Morphir/Sample/Reg/LCR/Inflows.elm | 198 + .../Sample/{ => Reg}/LCR/MaturityBucket.elm | 53 +- src/Morphir/Sample/{ => Reg}/LCR/Outflows.elm | 305 +- src/Morphir/Sample/Reg/LCR/Product.elm | 36 + src/Morphir/Sample/{ => Reg}/LCR/README.md | 0 src/Morphir/Sample/Reg/LCR/Rules.elm | 66 + tests/Morphir/Sample/Apps/Rates/AppTests.elm | 95 - tests/Morphir/Sample/LCR/FedSampleTest.elm | 105 - tests/Morphir/Sample/LCR/RulesTest.elm | 82 - tests/Morphir/Sample/Reg/LCR/FedCodeTest.elm | 138 + .../Morphir/Sample/Reg/LCR/FedSampleTest.elm | 162 + tests/Morphir/Sample/Reg/LCR/RulesTest.elm | 71 + 37 files changed, 62960 insertions(+), 969 deletions(-) delete mode 100644 src/Morphir/Sample/LCR/Basics.elm delete mode 100644 src/Morphir/Sample/LCR/Counterparty.elm delete mode 100644 src/Morphir/Sample/LCR/Inflows.elm delete mode 100644 src/Morphir/Sample/LCR/Product.elm delete mode 100644 src/Morphir/Sample/LCR/Rules.elm rename src/Morphir/Sample/{CDM/Reg => Reg/CDM}/MiFIR/AncillaryRoleEnum.elm (95%) rename src/Morphir/Sample/{CDM/Reg => Reg/CDM}/MiFIR/Basics.elm (87%) rename src/Morphir/Sample/{CDM/Reg => Reg/CDM}/MiFIR/Enums.elm (88%) rename src/Morphir/Sample/{CDM/Reg => Reg/CDM}/MiFIR/FloatingRateIndexEnum.elm (99%) rename src/Morphir/Sample/{CDM/Reg => Reg/CDM}/MiFIR/Quantities.elm (82%) rename src/Morphir/Sample/{CDM/Reg => Reg/CDM}/MiFIR/README.md (100%) rename src/Morphir/Sample/{CDM/Reg => Reg/CDM}/MiFIR/RTS22.elm (96%) rename src/Morphir/Sample/{CDM/Reg => Reg/CDM}/MiFIR/RTS22Alt.elm (97%) create mode 100644 src/Morphir/Sample/Reg/Country.elm create mode 100644 src/Morphir/Sample/Reg/Currency.elm create mode 100644 src/Morphir/Sample/Reg/LCR/Basics.elm rename src/Morphir/Sample/{ => Reg}/LCR/Calculations.elm (53%) create mode 100644 src/Morphir/Sample/Reg/LCR/Counterparty.elm rename src/Morphir/Sample/{ => Reg}/LCR/Flows.elm (81%) create mode 100644 src/Morphir/Sample/Reg/LCR/Inflows.elm rename src/Morphir/Sample/{ => Reg}/LCR/MaturityBucket.elm (62%) rename src/Morphir/Sample/{ => Reg}/LCR/Outflows.elm (52%) create mode 100644 src/Morphir/Sample/Reg/LCR/Product.elm rename src/Morphir/Sample/{ => Reg}/LCR/README.md (100%) create mode 100644 src/Morphir/Sample/Reg/LCR/Rules.elm delete mode 100644 tests/Morphir/Sample/Apps/Rates/AppTests.elm delete mode 100644 tests/Morphir/Sample/LCR/FedSampleTest.elm delete mode 100644 tests/Morphir/Sample/LCR/RulesTest.elm create mode 100644 tests/Morphir/Sample/Reg/LCR/FedCodeTest.elm create mode 100644 tests/Morphir/Sample/Reg/LCR/FedSampleTest.elm create mode 100644 tests/Morphir/Sample/Reg/LCR/RulesTest.elm diff --git a/README.md b/README.md index 4c6437f..94e512c 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ This repo contains various models that represent the kinds of business problems ## Code Structure - *[Rules](src/Morphir/Sample/Rules/README.md)* - Examples of modeling business rules in Elm that are traditionally implemented using rules engines. -- *[LCR](src/Morphir/Sample/LCR/README.md)* - An example of modeling regulatory reporting that includes complex calculations. +- *[LCR](src/Morphir/Sample/Reg/LCR/README.md)* - An example of modeling regulatory reporting that includes complex calculations. - *[Apps](src/Morphir/Sample/Apps/README.md)* - Examples of modeling entire business applications and their interactions. ### Compile example diff --git a/elm.json b/elm.json index 8d9a3ee..f91458c 100644 --- a/elm.json +++ b/elm.json @@ -10,6 +10,7 @@ "elm/core": "1.0.5", "elm/html": "1.0.0", "elm/time": "1.0.0", + "elm-explorations/test": "1.2.2", "finos/morphir-elm": "7.1.0", "justinmimbs/date": "3.2.1", "mgold/elm-nonempty-list": "4.1.0" @@ -27,7 +28,6 @@ "elm-community/json-extra": "4.3.0", "elm-community/list-extra": "8.2.4", "elm-community/maybe-extra": "5.2.0", - "elm-explorations/test": "1.2.2", "mdgriffith/elm-ui": "1.1.8", "pzp1997/assoc-list": "1.0.0", "rtfeldman/elm-hex": "1.0.0", diff --git a/lobo.json b/lobo.json index cf7b12c..63e1cbd 100644 --- a/lobo.json +++ b/lobo.json @@ -1,26 +1,49 @@ { "type": "application", - "elm-version": "0.19.0", + "elm-version": "0.19.1", "source-directories": [ - "../src", "../tests", + "../src", "../node_modules/lobo/runner", - "../node_modules/lobo/plugin/elm-test" + "../node_modules/lobo/plugin/elm-test", + "../node_modules/lobo/plugin/elm-test-extra" ], "dependencies": { "direct": { + "benansell/lobo-elm-test-extra": "3.0.0", + "elm-community/graph": "6.0.0", "elm-explorations/test": "1.2.2", - "elm/core": "1.0.2", + "elm/browser": "1.0.2", + "elm/core": "1.0.5", + "elm/html": "1.0.0", "elm/json": "1.1.3", "elm/parser": "1.1.0", "elm/random": "1.0.0", + "elm/regex": "1.0.0", "elm/time": "1.0.0", - "justinmimbs/date": "3.2.0" - "morphir/elm": "1.0.0" + "finos/morphir-elm": "11.1.0", + "justinmimbs/date": "3.2.1", + "mgold/elm-nonempty-list": "4.2.0", + "myrho/elm-round": "1.0.4", + "stil4m/elm-syntax": "7.2.1" }, "indirect": { - "elm/html": "1.0.0", - "elm/virtual-dom": "1.0.2" + "avh4/elm-fifo": "1.0.4", + "chain-partners/elm-bignum": "1.0.1", + "cmditch/elm-bigint": "1.0.1", + "elm-community/intdict": "3.0.0", + "elm-community/list-extra": "8.2.4", + "elm-community/maybe-extra": "5.2.0", + "elm/bytes": "1.0.8", + "elm/file": "1.0.5", + "elm/svg": "1.0.1", + "elm/url": "1.0.0", + "elm/virtual-dom": "1.0.2", + "mdgriffith/elm-ui": "1.1.8", + "mpizenberg/elm-pointer-events": "4.0.2", + "pzp1997/assoc-list": "1.0.0", + "rtfeldman/elm-hex": "1.0.0", + "stil4m/structured-writer": "1.0.3" } }, "test-dependencies": { diff --git a/morphir-ir.json b/morphir-ir.json index daad391..b9d3178 100644 --- a/morphir-ir.json +++ b/morphir-ir.json @@ -12,7 +12,61062 @@ ], [], { - "modules": [] + "modules": [ + { + "name": [ + [ + "reg" + ], + [ + "country" + ] + ], + "def": [ + "private", + { + "types": [ + [ + [ + "country" + ], + [ + "public", + [ + "", + [ + "custom_type_definition", + [], + [ + "public", + [ + [ + [ + "a", + "b", + "w" + ], + [] + ], + [ + [ + "a", + "f", + "g" + ], + [] + ], + [ + [ + "a", + "g", + "o" + ], + [] + ], + [ + [ + "a", + "i", + "a" + ], + [] + ], + [ + [ + "a", + "l", + "a" + ], + [] + ], + [ + [ + "a", + "l", + "b" + ], + [] + ], + [ + [ + "a", + "n", + "d" + ], + [] + ], + [ + [ + "a", + "r", + "e" + ], + [] + ], + [ + [ + "a", + "r", + "g" + ], + [] + ], + [ + [ + "a", + "r", + "m" + ], + [] + ], + [ + [ + "a", + "s", + "m" + ], + [] + ], + [ + [ + "a", + "t", + "f" + ], + [] + ], + [ + [ + "a", + "t", + "g" + ], + [] + ], + [ + [ + "a", + "u", + "s" + ], + [] + ], + [ + [ + "a", + "u", + "t" + ], + [] + ], + [ + [ + "a", + "z", + "e" + ], + [] + ], + [ + [ + "b", + "d", + "i" + ], + [] + ], + [ + [ + "b", + "e", + "l" + ], + [] + ], + [ + [ + "b", + "e", + "n" + ], + [] + ], + [ + [ + "b", + "e", + "s" + ], + [] + ], + [ + [ + "b", + "f", + "a" + ], + [] + ], + [ + [ + "b", + "g", + "d" + ], + [] + ], + [ + [ + "b", + "g", + "r" + ], + [] + ], + [ + [ + "b", + "h", + "r" + ], + [] + ], + [ + [ + "b", + "h", + "s" + ], + [] + ], + [ + [ + "b", + "i", + "h" + ], + [] + ], + [ + [ + "b", + "l", + "m" + ], + [] + ], + [ + [ + "b", + "l", + "r" + ], + [] + ], + [ + [ + "b", + "l", + "z" + ], + [] + ], + [ + [ + "b", + "m", + "u" + ], + [] + ], + [ + [ + "b", + "o", + "l" + ], + [] + ], + [ + [ + "b", + "r", + "a" + ], + [] + ], + [ + [ + "b", + "r", + "b" + ], + [] + ], + [ + [ + "b", + "r", + "n" + ], + [] + ], + [ + [ + "b", + "t", + "n" + ], + [] + ], + [ + [ + "b", + "v", + "t" + ], + [] + ], + [ + [ + "b", + "w", + "a" + ], + [] + ], + [ + [ + "c", + "a", + "f" + ], + [] + ], + [ + [ + "c", + "a", + "n" + ], + [] + ], + [ + [ + "c", + "c", + "k" + ], + [] + ], + [ + [ + "c", + "h", + "e" + ], + [] + ], + [ + [ + "c", + "h", + "l" + ], + [] + ], + [ + [ + "c", + "h", + "n" + ], + [] + ], + [ + [ + "c", + "i", + "v" + ], + [] + ], + [ + [ + "c", + "m", + "r" + ], + [] + ], + [ + [ + "c", + "o", + "d" + ], + [] + ], + [ + [ + "c", + "o", + "g" + ], + [] + ], + [ + [ + "c", + "o", + "k" + ], + [] + ], + [ + [ + "c", + "o", + "l" + ], + [] + ], + [ + [ + "c", + "o", + "m" + ], + [] + ], + [ + [ + "c", + "p", + "v" + ], + [] + ], + [ + [ + "c", + "r", + "i" + ], + [] + ], + [ + [ + "c", + "u", + "b" + ], + [] + ], + [ + [ + "c", + "u", + "w" + ], + [] + ], + [ + [ + "c", + "x", + "r" + ], + [] + ], + [ + [ + "c", + "y", + "m" + ], + [] + ], + [ + [ + "c", + "y", + "p" + ], + [] + ], + [ + [ + "c", + "z", + "e" + ], + [] + ], + [ + [ + "d", + "e", + "u" + ], + [] + ], + [ + [ + "d", + "j", + "i" + ], + [] + ], + [ + [ + "d", + "m", + "a" + ], + [] + ], + [ + [ + "d", + "n", + "k" + ], + [] + ], + [ + [ + "d", + "o", + "m" + ], + [] + ], + [ + [ + "d", + "z", + "a" + ], + [] + ], + [ + [ + "e", + "c", + "u" + ], + [] + ], + [ + [ + "e", + "g", + "y" + ], + [] + ], + [ + [ + "e", + "r", + "i" + ], + [] + ], + [ + [ + "e", + "s", + "h" + ], + [] + ], + [ + [ + "e", + "s", + "p" + ], + [] + ], + [ + [ + "e", + "s", + "t" + ], + [] + ], + [ + [ + "e", + "t", + "h" + ], + [] + ], + [ + [ + "f", + "i", + "n" + ], + [] + ], + [ + [ + "f", + "j", + "i" + ], + [] + ], + [ + [ + "f", + "r", + "a" + ], + [] + ], + [ + [ + "f", + "r", + "o" + ], + [] + ], + [ + [ + "f", + "s", + "m" + ], + [] + ], + [ + [ + "g", + "a", + "b" + ], + [] + ], + [ + [ + "g", + "b", + "r" + ], + [] + ], + [ + [ + "g", + "e", + "o" + ], + [] + ], + [ + [ + "g", + "g", + "y" + ], + [] + ], + [ + [ + "g", + "h", + "a" + ], + [] + ], + [ + [ + "g", + "i", + "b" + ], + [] + ], + [ + [ + "g", + "i", + "n" + ], + [] + ], + [ + [ + "g", + "l", + "p" + ], + [] + ], + [ + [ + "g", + "m", + "b" + ], + [] + ], + [ + [ + "g", + "n", + "b" + ], + [] + ], + [ + [ + "g", + "n", + "q" + ], + [] + ], + [ + [ + "g", + "r", + "c" + ], + [] + ], + [ + [ + "g", + "r", + "d" + ], + [] + ], + [ + [ + "g", + "r", + "l" + ], + [] + ], + [ + [ + "g", + "t", + "m" + ], + [] + ], + [ + [ + "g", + "u", + "f" + ], + [] + ], + [ + [ + "g", + "u", + "m" + ], + [] + ], + [ + [ + "g", + "u", + "y" + ], + [] + ], + [ + [ + "h", + "k", + "g" + ], + [] + ], + [ + [ + "h", + "m", + "d" + ], + [] + ], + [ + [ + "h", + "n", + "d" + ], + [] + ], + [ + [ + "h", + "r", + "v" + ], + [] + ], + [ + [ + "h", + "t", + "i" + ], + [] + ], + [ + [ + "h", + "u", + "n" + ], + [] + ], + [ + [ + "i", + "d", + "n" + ], + [] + ], + [ + [ + "i", + "m", + "n" + ], + [] + ], + [ + [ + "i", + "n", + "d" + ], + [] + ], + [ + [ + "i", + "o", + "t" + ], + [] + ], + [ + [ + "i", + "r", + "l" + ], + [] + ], + [ + [ + "i", + "r", + "n" + ], + [] + ], + [ + [ + "i", + "r", + "q" + ], + [] + ], + [ + [ + "i", + "s", + "l" + ], + [] + ], + [ + [ + "i", + "s", + "r" + ], + [] + ], + [ + [ + "i", + "t", + "a" + ], + [] + ], + [ + [ + "j", + "a", + "m" + ], + [] + ], + [ + [ + "j", + "e", + "y" + ], + [] + ], + [ + [ + "j", + "o", + "r" + ], + [] + ], + [ + [ + "j", + "p", + "n" + ], + [] + ], + [ + [ + "k", + "a", + "z" + ], + [] + ], + [ + [ + "k", + "e", + "n" + ], + [] + ], + [ + [ + "k", + "g", + "z" + ], + [] + ], + [ + [ + "k", + "h", + "m" + ], + [] + ], + [ + [ + "k", + "i", + "r" + ], + [] + ], + [ + [ + "k", + "n", + "a" + ], + [] + ], + [ + [ + "k", + "o", + "r" + ], + [] + ], + [ + [ + "k", + "w", + "t" + ], + [] + ], + [ + [ + "l", + "a", + "o" + ], + [] + ], + [ + [ + "l", + "b", + "n" + ], + [] + ], + [ + [ + "l", + "b", + "r" + ], + [] + ], + [ + [ + "l", + "b", + "y" + ], + [] + ], + [ + [ + "l", + "c", + "a" + ], + [] + ], + [ + [ + "l", + "i", + "e" + ], + [] + ], + [ + [ + "l", + "k", + "a" + ], + [] + ], + [ + [ + "l", + "s", + "o" + ], + [] + ], + [ + [ + "l", + "t", + "u" + ], + [] + ], + [ + [ + "l", + "u", + "x" + ], + [] + ], + [ + [ + "l", + "v", + "a" + ], + [] + ], + [ + [ + "m", + "a", + "c" + ], + [] + ], + [ + [ + "m", + "a", + "f" + ], + [] + ], + [ + [ + "m", + "a", + "r" + ], + [] + ], + [ + [ + "m", + "c", + "o" + ], + [] + ], + [ + [ + "m", + "d", + "a" + ], + [] + ], + [ + [ + "m", + "d", + "g" + ], + [] + ], + [ + [ + "m", + "d", + "v" + ], + [] + ], + [ + [ + "m", + "e", + "x" + ], + [] + ], + [ + [ + "m", + "h", + "l" + ], + [] + ], + [ + [ + "m", + "k", + "d" + ], + [] + ], + [ + [ + "m", + "l", + "i" + ], + [] + ], + [ + [ + "m", + "l", + "t" + ], + [] + ], + [ + [ + "m", + "m", + "r" + ], + [] + ], + [ + [ + "m", + "n", + "e" + ], + [] + ], + [ + [ + "m", + "n", + "g" + ], + [] + ], + [ + [ + "m", + "n", + "p" + ], + [] + ], + [ + [ + "m", + "o", + "z" + ], + [] + ], + [ + [ + "m", + "r", + "t" + ], + [] + ], + [ + [ + "m", + "s", + "r" + ], + [] + ], + [ + [ + "m", + "t", + "q" + ], + [] + ], + [ + [ + "m", + "u", + "s" + ], + [] + ], + [ + [ + "m", + "w", + "i" + ], + [] + ], + [ + [ + "m", + "y", + "s" + ], + [] + ], + [ + [ + "m", + "y", + "t" + ], + [] + ], + [ + [ + "n", + "a", + "m" + ], + [] + ], + [ + [ + "n", + "c", + "l" + ], + [] + ], + [ + [ + "n", + "e", + "r" + ], + [] + ], + [ + [ + "n", + "f", + "k" + ], + [] + ], + [ + [ + "n", + "g", + "a" + ], + [] + ], + [ + [ + "n", + "i", + "c" + ], + [] + ], + [ + [ + "n", + "i", + "u" + ], + [] + ], + [ + [ + "n", + "l", + "d" + ], + [] + ], + [ + [ + "n", + "o", + "r" + ], + [] + ], + [ + [ + "n", + "p", + "l" + ], + [] + ], + [ + [ + "n", + "r", + "u" + ], + [] + ], + [ + [ + "n", + "z", + "l" + ], + [] + ], + [ + [ + "o", + "m", + "n" + ], + [] + ], + [ + [ + "p", + "a", + "k" + ], + [] + ], + [ + [ + "p", + "a", + "n" + ], + [] + ], + [ + [ + "p", + "c", + "n" + ], + [] + ], + [ + [ + "p", + "e", + "r" + ], + [] + ], + [ + [ + "p", + "h", + "l" + ], + [] + ], + [ + [ + "p", + "l", + "w" + ], + [] + ], + [ + [ + "p", + "n", + "g" + ], + [] + ], + [ + [ + "p", + "o", + "l" + ], + [] + ], + [ + [ + "p", + "r", + "i" + ], + [] + ], + [ + [ + "p", + "r", + "k" + ], + [] + ], + [ + [ + "p", + "r", + "t" + ], + [] + ], + [ + [ + "p", + "r", + "y" + ], + [] + ], + [ + [ + "p", + "y", + "f" + ], + [] + ], + [ + [ + "q", + "a", + "t" + ], + [] + ], + [ + [ + "r", + "e", + "u" + ], + [] + ], + [ + [ + "r", + "o", + "u" + ], + [] + ], + [ + [ + "r", + "u", + "s" + ], + [] + ], + [ + [ + "r", + "w", + "a" + ], + [] + ], + [ + [ + "s", + "a", + "u" + ], + [] + ], + [ + [ + "s", + "d", + "n" + ], + [] + ], + [ + [ + "s", + "e", + "n" + ], + [] + ], + [ + [ + "s", + "g", + "p" + ], + [] + ], + [ + [ + "s", + "h", + "n" + ], + [] + ], + [ + [ + "s", + "j", + "m" + ], + [] + ], + [ + [ + "s", + "l", + "b" + ], + [] + ], + [ + [ + "s", + "l", + "e" + ], + [] + ], + [ + [ + "s", + "l", + "v" + ], + [] + ], + [ + [ + "s", + "m", + "r" + ], + [] + ], + [ + [ + "s", + "o", + "m" + ], + [] + ], + [ + [ + "s", + "p", + "m" + ], + [] + ], + [ + [ + "s", + "r", + "b" + ], + [] + ], + [ + [ + "s", + "s", + "d" + ], + [] + ], + [ + [ + "s", + "t", + "p" + ], + [] + ], + [ + [ + "s", + "u", + "r" + ], + [] + ], + [ + [ + "s", + "v", + "k" + ], + [] + ], + [ + [ + "s", + "v", + "n" + ], + [] + ], + [ + [ + "s", + "w", + "e" + ], + [] + ], + [ + [ + "s", + "w", + "z" + ], + [] + ], + [ + [ + "s", + "x", + "m" + ], + [] + ], + [ + [ + "s", + "y", + "c" + ], + [] + ], + [ + [ + "s", + "y", + "r" + ], + [] + ], + [ + [ + "t", + "c", + "a" + ], + [] + ], + [ + [ + "t", + "c", + "d" + ], + [] + ], + [ + [ + "t", + "g", + "o" + ], + [] + ], + [ + [ + "t", + "h", + "a" + ], + [] + ], + [ + [ + "t", + "j", + "k" + ], + [] + ], + [ + [ + "t", + "k", + "l" + ], + [] + ], + [ + [ + "t", + "k", + "m" + ], + [] + ], + [ + [ + "t", + "l", + "s" + ], + [] + ], + [ + [ + "t", + "o", + "n" + ], + [] + ], + [ + [ + "t", + "t", + "o" + ], + [] + ], + [ + [ + "t", + "u", + "n" + ], + [] + ], + [ + [ + "t", + "u", + "r" + ], + [] + ], + [ + [ + "t", + "u", + "v" + ], + [] + ], + [ + [ + "t", + "z", + "a" + ], + [] + ], + [ + [ + "u", + "g", + "a" + ], + [] + ], + [ + [ + "u", + "k", + "r" + ], + [] + ], + [ + [ + "u", + "m", + "i" + ], + [] + ], + [ + [ + "u", + "r", + "y" + ], + [] + ], + [ + [ + "u", + "s", + "a" + ], + [] + ], + [ + [ + "u", + "z", + "b" + ], + [] + ], + [ + [ + "v", + "a", + "t" + ], + [] + ], + [ + [ + "v", + "c", + "t" + ], + [] + ], + [ + [ + "v", + "e", + "n" + ], + [] + ], + [ + [ + "v", + "g", + "b" + ], + [] + ], + [ + [ + "v", + "i", + "r" + ], + [] + ], + [ + [ + "v", + "n", + "m" + ], + [] + ], + [ + [ + "v", + "u", + "t" + ], + [] + ], + [ + [ + "w", + "l", + "f" + ], + [] + ], + [ + [ + "w", + "s", + "m" + ], + [] + ], + [ + [ + "y", + "e", + "m" + ], + [] + ], + [ + [ + "z", + "a", + "f" + ], + [] + ], + [ + [ + "z", + "m", + "b" + ], + [] + ], + [ + [ + "z", + "w", + "e" + ], + [] + ] + ] + ] + ] + ] + ] + ] + ], + "values": [] + } + ] + }, + { + "name": [ + [ + "reg" + ], + [ + "currency" + ] + ], + "def": [ + "private", + { + "types": [ + [ + [ + "currency" + ], + [ + "public", + [ + "", + [ + "custom_type_definition", + [], + [ + "public", + [ + [ + [ + "a", + "e", + "d" + ], + [] + ], + [ + [ + "a", + "f", + "n" + ], + [] + ], + [ + [ + "a", + "l", + "l" + ], + [] + ], + [ + [ + "a", + "m", + "d" + ], + [] + ], + [ + [ + "a", + "n", + "g" + ], + [] + ], + [ + [ + "a", + "o", + "a" + ], + [] + ], + [ + [ + "a", + "r", + "s" + ], + [] + ], + [ + [ + "a", + "u", + "d" + ], + [] + ], + [ + [ + "a", + "w", + "g" + ], + [] + ], + [ + [ + "a", + "z", + "n" + ], + [] + ], + [ + [ + "b", + "a", + "m" + ], + [] + ], + [ + [ + "b", + "b", + "d" + ], + [] + ], + [ + [ + "b", + "d", + "t" + ], + [] + ], + [ + [ + "b", + "g", + "n" + ], + [] + ], + [ + [ + "b", + "h", + "d" + ], + [] + ], + [ + [ + "b", + "i", + "f" + ], + [] + ], + [ + [ + "b", + "m", + "d" + ], + [] + ], + [ + [ + "b", + "n", + "d" + ], + [] + ], + [ + [ + "b", + "o", + "b" + ], + [] + ], + [ + [ + "b", + "r", + "l" + ], + [] + ], + [ + [ + "b", + "s", + "d" + ], + [] + ], + [ + [ + "b", + "w", + "p" + ], + [] + ], + [ + [ + "b", + "y", + "n" + ], + [] + ], + [ + [ + "b", + "z", + "d" + ], + [] + ], + [ + [ + "c", + "a", + "d" + ], + [] + ], + [ + [ + "c", + "d", + "f" + ], + [] + ], + [ + [ + "c", + "h", + "f" + ], + [] + ], + [ + [ + "c", + "l", + "p" + ], + [] + ], + [ + [ + "c", + "n", + "y" + ], + [] + ], + [ + [ + "c", + "o", + "p" + ], + [] + ], + [ + [ + "c", + "r", + "c" + ], + [] + ], + [ + [ + "c", + "u", + "p" + ], + [] + ], + [ + [ + "c", + "v", + "e" + ], + [] + ], + [ + [ + "c", + "z", + "k" + ], + [] + ], + [ + [ + "d", + "j", + "f" + ], + [] + ], + [ + [ + "d", + "k", + "k" + ], + [] + ], + [ + [ + "d", + "o", + "p" + ], + [] + ], + [ + [ + "d", + "z", + "d" + ], + [] + ], + [ + [ + "e", + "g", + "p" + ], + [] + ], + [ + [ + "e", + "r", + "n" + ], + [] + ], + [ + [ + "e", + "t", + "b" + ], + [] + ], + [ + [ + "e", + "u", + "r" + ], + [] + ], + [ + [ + "f", + "j", + "d" + ], + [] + ], + [ + [ + "g", + "b", + "p" + ], + [] + ], + [ + [ + "g", + "e", + "l" + ], + [] + ], + [ + [ + "g", + "h", + "s" + ], + [] + ], + [ + [ + "g", + "i", + "p" + ], + [] + ], + [ + [ + "g", + "m", + "d" + ], + [] + ], + [ + [ + "g", + "n", + "f" + ], + [] + ], + [ + [ + "g", + "t", + "q" + ], + [] + ], + [ + [ + "g", + "y", + "d" + ], + [] + ], + [ + [ + "h", + "k", + "d" + ], + [] + ], + [ + [ + "h", + "n", + "l" + ], + [] + ], + [ + [ + "h", + "r", + "k" + ], + [] + ], + [ + [ + "h", + "t", + "g" + ], + [] + ], + [ + [ + "h", + "u", + "f" + ], + [] + ], + [ + [ + "i", + "d", + "r" + ], + [] + ], + [ + [ + "i", + "l", + "s" + ], + [] + ], + [ + [ + "i", + "n", + "r" + ], + [] + ], + [ + [ + "i", + "q", + "d" + ], + [] + ], + [ + [ + "i", + "r", + "r" + ], + [] + ], + [ + [ + "i", + "s", + "k" + ], + [] + ], + [ + [ + "j", + "m", + "d" + ], + [] + ], + [ + [ + "j", + "o", + "d" + ], + [] + ], + [ + [ + "j", + "p", + "y" + ], + [] + ], + [ + [ + "k", + "e", + "s" + ], + [] + ], + [ + [ + "k", + "g", + "s" + ], + [] + ], + [ + [ + "k", + "h", + "r" + ], + [] + ], + [ + [ + "k", + "m", + "f" + ], + [] + ], + [ + [ + "k", + "p", + "w" + ], + [] + ], + [ + [ + "k", + "r", + "w" + ], + [] + ], + [ + [ + "k", + "w", + "d" + ], + [] + ], + [ + [ + "k", + "y", + "d" + ], + [] + ], + [ + [ + "k", + "z", + "t" + ], + [] + ], + [ + [ + "l", + "a", + "k" + ], + [] + ], + [ + [ + "l", + "b", + "p" + ], + [] + ], + [ + [ + "l", + "k", + "r" + ], + [] + ], + [ + [ + "l", + "r", + "d" + ], + [] + ], + [ + [ + "l", + "s", + "l" + ], + [] + ], + [ + [ + "l", + "y", + "d" + ], + [] + ], + [ + [ + "m", + "a", + "d" + ], + [] + ], + [ + [ + "m", + "d", + "l" + ], + [] + ], + [ + [ + "m", + "g", + "a" + ], + [] + ], + [ + [ + "m", + "k", + "d" + ], + [] + ], + [ + [ + "m", + "m", + "k" + ], + [] + ], + [ + [ + "m", + "n", + "t" + ], + [] + ], + [ + [ + "m", + "o", + "p" + ], + [] + ], + [ + [ + "m", + "r", + "u" + ], + [] + ], + [ + [ + "m", + "u", + "r" + ], + [] + ], + [ + [ + "m", + "v", + "r" + ], + [] + ], + [ + [ + "m", + "w", + "k" + ], + [] + ], + [ + [ + "m", + "x", + "n" + ], + [] + ], + [ + [ + "m", + "y", + "r" + ], + [] + ], + [ + [ + "m", + "z", + "n" + ], + [] + ], + [ + [ + "n", + "a", + "d" + ], + [] + ], + [ + [ + "n", + "g", + "n" + ], + [] + ], + [ + [ + "n", + "i", + "o" + ], + [] + ], + [ + [ + "n", + "o", + "k" + ], + [] + ], + [ + [ + "n", + "p", + "r" + ], + [] + ], + [ + [ + "n", + "z", + "d" + ], + [] + ], + [ + [ + "o", + "m", + "r" + ], + [] + ], + [ + [ + "p", + "a", + "b" + ], + [] + ], + [ + [ + "p", + "e", + "n" + ], + [] + ], + [ + [ + "p", + "g", + "k" + ], + [] + ], + [ + [ + "p", + "h", + "p" + ], + [] + ], + [ + [ + "p", + "k", + "r" + ], + [] + ], + [ + [ + "p", + "l", + "n" + ], + [] + ], + [ + [ + "p", + "y", + "g" + ], + [] + ], + [ + [ + "q", + "a", + "r" + ], + [] + ], + [ + [ + "r", + "o", + "n" + ], + [] + ], + [ + [ + "r", + "s", + "d" + ], + [] + ], + [ + [ + "r", + "u", + "b" + ], + [] + ], + [ + [ + "r", + "w", + "f" + ], + [] + ], + [ + [ + "s", + "a", + "r" + ], + [] + ], + [ + [ + "s", + "b", + "d" + ], + [] + ], + [ + [ + "s", + "c", + "r" + ], + [] + ], + [ + [ + "s", + "d", + "g" + ], + [] + ], + [ + [ + "s", + "e", + "k" + ], + [] + ], + [ + [ + "s", + "g", + "d" + ], + [] + ], + [ + [ + "s", + "h", + "p" + ], + [] + ], + [ + [ + "s", + "l", + "l" + ], + [] + ], + [ + [ + "s", + "o", + "s" + ], + [] + ], + [ + [ + "s", + "r", + "d" + ], + [] + ], + [ + [ + "s", + "s", + "p" + ], + [] + ], + [ + [ + "s", + "t", + "n" + ], + [] + ], + [ + [ + "s", + "v", + "c" + ], + [] + ], + [ + [ + "s", + "y", + "p" + ], + [] + ], + [ + [ + "s", + "z", + "l" + ], + [] + ], + [ + [ + "t", + "h", + "b" + ], + [] + ], + [ + [ + "t", + "j", + "s" + ], + [] + ], + [ + [ + "t", + "m", + "t" + ], + [] + ], + [ + [ + "t", + "n", + "d" + ], + [] + ], + [ + [ + "t", + "o", + "p" + ], + [] + ], + [ + [ + "t", + "r", + "y" + ], + [] + ], + [ + [ + "t", + "t", + "d" + ], + [] + ], + [ + [ + "t", + "z", + "s" + ], + [] + ], + [ + [ + "u", + "a", + "h" + ], + [] + ], + [ + [ + "u", + "g", + "x" + ], + [] + ], + [ + [ + "u", + "s", + "d" + ], + [] + ], + [ + [ + "u", + "y", + "u" + ], + [] + ], + [ + [ + "u", + "z", + "s" + ], + [] + ], + [ + [ + "v", + "e", + "s" + ], + [] + ], + [ + [ + "v", + "n", + "d" + ], + [] + ], + [ + [ + "v", + "u", + "v" + ], + [] + ], + [ + [ + "w", + "s", + "t" + ], + [] + ], + [ + [ + "x", + "a", + "f" + ], + [] + ], + [ + [ + "x", + "c", + "d" + ], + [] + ], + [ + [ + "x", + "o", + "f" + ], + [] + ], + [ + [ + "x", + "p", + "f" + ], + [] + ], + [ + [ + "y", + "e", + "r" + ], + [] + ], + [ + [ + "z", + "a", + "r" + ], + [] + ], + [ + [ + "z", + "m", + "w" + ], + [] + ], + [ + [ + "z", + "w", + "l" + ], + [] + ] + ] + ] + ] + ] + ] + ] + ], + "values": [ + [ + [ + "country" + ], + [ + "public", + { + "inputTypes": [ + [ + [ + "currency" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ] + ] + ], + "outputType": [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + "body": [ + "pattern_match", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "currency" + ] + ], + [ + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "a", + "u", + "d" + ] + ], + [] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "constructor", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "just" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "a", + "u", + "s" + ] + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "u", + "s", + "d" + ] + ], + [] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "constructor", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "just" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "u", + "s", + "a" + ] + ] + ] + ] + ], + [ + [ + "wildcard_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ] + ], + [ + "let_definition", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "countries" + ], + { + "inputTypes": [], + "outputType": [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + "body": [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "function", + {}, + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "filter", + "map" + ] + ] + ], + [ + "lambda", + [ + "function", + {}, + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ] + ], + [ + "tuple_pattern", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "as_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "wildcard_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ] + ], + [ + "cy" + ] + ], + [ + "as_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "wildcard_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ], + [ + "co" + ] + ] + ] + ], + [ + "if_then_else", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "equal" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "cy" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "currency" + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "constructor", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "just" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "co" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "nothing" + ] + ] + ] + ] + ] + ], + [ + "reference", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency", + "countries" + ] + ] + ] + ] + }, + [ + "pattern_match", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "countries" + ] + ], + [ + [ + [ + "head_tail_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "as_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "wildcard_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ], + [ + "country", + "code" + ] + ], + [ + "empty_list_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "constructor", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "just" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "country", + "code" + ] + ] + ] + ], + [ + [ + "wildcard_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "nothing" + ] + ] + ] + ] + ] + ] + ] + ] + ] + ] + } + ] + ], + [ + [ + "currency", + "countries" + ], + [ + "public", + { + "inputTypes": [], + "outputType": [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ] + ] + ], + "body": [ + "list", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "a", + "e", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "a", + "r", + "e" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "a", + "f", + "n" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "a", + "f", + "g" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "a", + "l", + "l" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "a", + "l", + "b" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "a", + "m", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "a", + "r", + "m" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "a", + "n", + "g" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "c", + "u", + "w" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "a", + "n", + "g" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "s", + "x", + "m" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "a", + "o", + "a" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "a", + "g", + "o" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "a", + "r", + "s" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "a", + "r", + "g" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "a", + "u", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "a", + "u", + "s" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "a", + "u", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "c", + "c", + "k" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "a", + "u", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "c", + "x", + "r" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "a", + "u", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "h", + "m", + "d" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "a", + "u", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "k", + "i", + "r" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "a", + "u", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "n", + "f", + "k" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "a", + "u", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "n", + "r", + "u" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "a", + "u", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "t", + "u", + "v" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "a", + "w", + "g" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "a", + "b", + "w" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "a", + "z", + "n" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "a", + "z", + "e" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "b", + "a", + "m" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "b", + "i", + "h" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "b", + "b", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "b", + "r", + "b" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "b", + "d", + "t" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "b", + "g", + "d" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "b", + "g", + "n" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "b", + "g", + "r" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "b", + "h", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "b", + "h", + "r" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "b", + "i", + "f" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "b", + "d", + "i" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "b", + "m", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "b", + "m", + "u" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "b", + "n", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "b", + "r", + "n" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "b", + "o", + "b" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "b", + "o", + "l" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "b", + "r", + "l" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "b", + "r", + "a" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "b", + "s", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "b", + "h", + "s" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "b", + "w", + "p" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "b", + "w", + "a" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "b", + "y", + "n" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "b", + "l", + "r" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "b", + "z", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "b", + "l", + "z" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "c", + "a", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "c", + "a", + "n" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "c", + "d", + "f" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "c", + "o", + "d" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "c", + "h", + "f" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "c", + "h", + "e" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "c", + "h", + "f" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "l", + "i", + "e" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "c", + "l", + "p" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "c", + "h", + "l" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "c", + "n", + "y" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "c", + "h", + "n" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "c", + "o", + "p" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "c", + "o", + "l" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "c", + "r", + "c" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "c", + "r", + "i" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "c", + "u", + "p" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "c", + "u", + "b" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "c", + "v", + "e" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "c", + "p", + "v" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "c", + "z", + "k" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "c", + "z", + "e" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "d", + "j", + "f" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "d", + "j", + "i" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "d", + "k", + "k" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "d", + "n", + "k" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "d", + "k", + "k" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "f", + "r", + "o" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "d", + "k", + "k" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "g", + "r", + "l" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "d", + "o", + "p" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "d", + "o", + "m" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "d", + "z", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "d", + "z", + "a" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "g", + "p" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "e", + "g", + "y" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "r", + "n" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "e", + "r", + "i" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "t", + "b" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "e", + "t", + "h" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "a", + "l", + "a" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "a", + "n", + "d" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "a", + "t", + "f" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "a", + "u", + "t" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "b", + "e", + "l" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "b", + "l", + "m" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "c", + "y", + "p" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "d", + "e", + "u" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "e", + "s", + "p" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "e", + "s", + "t" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "f", + "i", + "n" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "f", + "r", + "a" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "g", + "l", + "p" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "g", + "r", + "c" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "g", + "u", + "f" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "i", + "r", + "l" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "i", + "t", + "a" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "l", + "t", + "u" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "l", + "u", + "x" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "l", + "v", + "a" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "m", + "a", + "f" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "m", + "c", + "o" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "m", + "l", + "t" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "m", + "n", + "e" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "m", + "t", + "q" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "m", + "y", + "t" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "n", + "l", + "d" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "p", + "r", + "t" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "r", + "e", + "u" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "s", + "m", + "r" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "s", + "p", + "m" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "s", + "v", + "k" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "s", + "v", + "n" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "e", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "v", + "a", + "t" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "f", + "j", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "f", + "j", + "i" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "g", + "b", + "p" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "g", + "b", + "r" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "g", + "b", + "p" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "g", + "g", + "y" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "g", + "b", + "p" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "i", + "m", + "n" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "g", + "b", + "p" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "j", + "e", + "y" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "g", + "e", + "l" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "g", + "e", + "o" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "g", + "h", + "s" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "g", + "h", + "a" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "g", + "i", + "p" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "g", + "i", + "b" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "g", + "m", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "g", + "m", + "b" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "g", + "n", + "f" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "g", + "i", + "n" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "g", + "t", + "q" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "g", + "t", + "m" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "g", + "y", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "g", + "u", + "y" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "h", + "k", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "h", + "k", + "g" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "h", + "n", + "l" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "h", + "n", + "d" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "h", + "r", + "k" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "h", + "r", + "v" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "h", + "t", + "g" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "h", + "t", + "i" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "h", + "u", + "f" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "h", + "u", + "n" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "i", + "d", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "i", + "d", + "n" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "i", + "l", + "s" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "i", + "s", + "r" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "i", + "n", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "i", + "n", + "d" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "i", + "n", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "b", + "t", + "n" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "i", + "q", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "i", + "r", + "q" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "i", + "r", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "i", + "r", + "n" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "i", + "s", + "k" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "i", + "s", + "l" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "j", + "m", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "j", + "a", + "m" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "j", + "o", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "j", + "o", + "r" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "j", + "p", + "y" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "j", + "p", + "n" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "k", + "e", + "s" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "k", + "e", + "n" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "k", + "g", + "s" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "k", + "g", + "z" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "k", + "h", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "k", + "h", + "m" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "k", + "m", + "f" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "c", + "o", + "m" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "k", + "p", + "w" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "p", + "r", + "k" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "k", + "r", + "w" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "k", + "o", + "r" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "k", + "w", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "k", + "w", + "t" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "k", + "y", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "c", + "y", + "m" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "k", + "z", + "t" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "k", + "a", + "z" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "l", + "a", + "k" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "l", + "a", + "o" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "l", + "b", + "p" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "l", + "b", + "n" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "l", + "k", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "l", + "k", + "a" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "l", + "r", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "l", + "b", + "r" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "l", + "s", + "l" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "l", + "s", + "o" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "l", + "y", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "l", + "b", + "y" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "m", + "a", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "e", + "s", + "h" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "m", + "a", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "m", + "a", + "r" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "m", + "d", + "l" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "m", + "d", + "a" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "m", + "g", + "a" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "m", + "d", + "g" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "m", + "k", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "m", + "k", + "d" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "m", + "m", + "k" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "m", + "m", + "r" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "m", + "n", + "t" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "m", + "n", + "g" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "m", + "o", + "p" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "m", + "a", + "c" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "m", + "r", + "u" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "m", + "r", + "t" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "m", + "u", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "m", + "u", + "s" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "m", + "v", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "m", + "d", + "v" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "m", + "w", + "k" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "m", + "w", + "i" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "m", + "x", + "n" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "m", + "e", + "x" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "m", + "y", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "m", + "y", + "s" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "m", + "z", + "n" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "m", + "o", + "z" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "n", + "a", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "n", + "a", + "m" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "n", + "g", + "n" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "n", + "g", + "a" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "n", + "i", + "o" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "n", + "i", + "c" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "n", + "o", + "k" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "b", + "v", + "t" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "n", + "o", + "k" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "n", + "o", + "r" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "n", + "o", + "k" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "s", + "j", + "m" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "n", + "p", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "n", + "p", + "l" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "n", + "z", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "c", + "o", + "k" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "n", + "z", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "n", + "i", + "u" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "n", + "z", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "n", + "z", + "l" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "n", + "z", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "p", + "c", + "n" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "n", + "z", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "t", + "k", + "l" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "o", + "m", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "o", + "m", + "n" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "p", + "a", + "b" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "p", + "a", + "n" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "p", + "e", + "n" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "p", + "e", + "r" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "p", + "g", + "k" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "p", + "n", + "g" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "p", + "h", + "p" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "p", + "h", + "l" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "p", + "k", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "p", + "a", + "k" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "p", + "l", + "n" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "p", + "o", + "l" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "p", + "y", + "g" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "p", + "r", + "y" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "q", + "a", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "q", + "a", + "t" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "r", + "o", + "n" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "r", + "o", + "u" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "r", + "s", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "s", + "r", + "b" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "r", + "u", + "b" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "r", + "u", + "s" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "r", + "w", + "f" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "r", + "w", + "a" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "s", + "a", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "s", + "a", + "u" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "s", + "b", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "s", + "l", + "b" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "s", + "c", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "s", + "y", + "c" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "s", + "d", + "g" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "s", + "d", + "n" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "s", + "e", + "k" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "s", + "w", + "e" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "s", + "g", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "s", + "g", + "p" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "s", + "h", + "p" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "s", + "h", + "n" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "s", + "l", + "l" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "s", + "l", + "e" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "s", + "o", + "s" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "s", + "o", + "m" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "s", + "r", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "s", + "u", + "r" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "s", + "s", + "p" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "s", + "s", + "d" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "s", + "t", + "n" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "s", + "t", + "p" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "s", + "v", + "c" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "s", + "l", + "v" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "s", + "y", + "p" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "s", + "y", + "r" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "s", + "z", + "l" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "s", + "w", + "z" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "t", + "h", + "b" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "t", + "h", + "a" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "t", + "j", + "s" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "t", + "j", + "k" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "t", + "m", + "t" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "t", + "k", + "m" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "t", + "n", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "t", + "u", + "n" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "t", + "o", + "p" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "t", + "o", + "n" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "t", + "r", + "y" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "t", + "u", + "r" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "t", + "t", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "t", + "t", + "o" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "t", + "z", + "s" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "t", + "z", + "a" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "u", + "a", + "h" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "u", + "k", + "r" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "u", + "g", + "x" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "u", + "g", + "a" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "u", + "s", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "a", + "s", + "m" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "u", + "s", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "b", + "e", + "s" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "u", + "s", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "e", + "c", + "u" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "u", + "s", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "f", + "s", + "m" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "u", + "s", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "g", + "u", + "m" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "u", + "s", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "i", + "o", + "t" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "u", + "s", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "m", + "h", + "l" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "u", + "s", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "m", + "n", + "p" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "u", + "s", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "p", + "l", + "w" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "u", + "s", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "p", + "r", + "i" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "u", + "s", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "t", + "c", + "a" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "u", + "s", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "t", + "l", + "s" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "u", + "s", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "u", + "m", + "i" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "u", + "s", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "u", + "s", + "a" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "u", + "s", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "v", + "g", + "b" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "u", + "s", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "v", + "i", + "r" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "u", + "y", + "u" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "u", + "r", + "y" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "u", + "z", + "s" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "u", + "z", + "b" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "v", + "e", + "s" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "v", + "e", + "n" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "v", + "n", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "v", + "n", + "m" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "v", + "u", + "v" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "v", + "u", + "t" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "w", + "s", + "t" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "w", + "s", + "m" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "x", + "a", + "f" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "c", + "a", + "f" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "x", + "a", + "f" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "c", + "m", + "r" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "x", + "a", + "f" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "c", + "o", + "g" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "x", + "a", + "f" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "g", + "a", + "b" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "x", + "a", + "f" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "g", + "n", + "q" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "x", + "a", + "f" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "t", + "c", + "d" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "x", + "c", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "a", + "i", + "a" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "x", + "c", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "a", + "t", + "g" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "x", + "c", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "d", + "m", + "a" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "x", + "c", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "g", + "r", + "d" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "x", + "c", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "k", + "n", + "a" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "x", + "c", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "l", + "c", + "a" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "x", + "c", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "m", + "s", + "r" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "x", + "c", + "d" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "v", + "c", + "t" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "x", + "o", + "f" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "b", + "e", + "n" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "x", + "o", + "f" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "b", + "f", + "a" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "x", + "o", + "f" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "c", + "i", + "v" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "x", + "o", + "f" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "g", + "n", + "b" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "x", + "o", + "f" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "m", + "l", + "i" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "x", + "o", + "f" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "n", + "e", + "r" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "x", + "o", + "f" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "s", + "e", + "n" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "x", + "o", + "f" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "t", + "g", + "o" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "x", + "p", + "f" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "n", + "c", + "l" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "x", + "p", + "f" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "p", + "y", + "f" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "x", + "p", + "f" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "w", + "l", + "f" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "y", + "e", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "y", + "e", + "m" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "z", + "a", + "r" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "z", + "a", + "f" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "z", + "m", + "w" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "z", + "m", + "b" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "z", + "w", + "l" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "z", + "w", + "e" + ] + ] + ] + ] + ] + ] + ] + } + ] + ] + ] + } + ] + }, + { + "name": [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + "def": [ + "private", + { + "types": [ + [ + [ + "central", + "bank" + ], + [ + "public", + [ + "", + [ + "custom_type_definition", + [], + [ + "public", + [ + [ + [ + "banca", + "de", + "france" + ], + [] + ], + [ + [ + "bance", + "di", + "italia" + ], + [] + ], + [ + [ + "banco", + "central", + "do", + "brasil" + ], + [] + ], + [ + [ + "bank", + "of", + "canada" + ], + [] + ], + [ + [ + "bank", + "of", + "england" + ], + [] + ], + [ + [ + "bank", + "of", + "japan" + ], + [] + ], + [ + [ + "bank", + "of", + "korea" + ], + [] + ], + [ + [ + "banque", + "centrale", + "du", + "luxembourg" + ], + [] + ], + [ + [ + "beutsche", + "bundesbank" + ], + [] + ], + [ + [ + "central", + "bank", + "of", + "the", + "russian", + "federation" + ], + [] + ], + [ + [ + "european", + "central", + "bank" + ], + [] + ], + [ + [ + "federal", + "reserve", + "bank" + ], + [] + ], + [ + [ + "peoples", + "bank", + "of", + "china" + ], + [] + ], + [ + [ + "reserve", + "bank", + "of", + "australia" + ], + [] + ], + [ + [ + "reserve", + "bank", + "of", + "india" + ], + [] + ], + [ + [ + "swiss", + "national", + "bank" + ], + [] + ] + ] + ] + ] + ] + ] + ] + ], + "values": [] + } + ] + }, + { + "name": [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + "def": [ + "public", + { + "types": [ + [ + [ + "account" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "adjusted", + "amount", + "u", + "s", + "d" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "adjusted", + "m", + "x", + "amount" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "cashflow" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "record", + {}, + [ + [ + [ + "legal", + "entity" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "legal", + "entity" + ] + ], + [] + ] + ], + [ + [ + "party", + "id" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "party", + "i", + "d" + ] + ], + [] + ] + ], + [ + [ + "currency" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ] + ], + [ + [ + "counterparty" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "counterparty" + ] + ], + [] + ] + ], + [ + [ + "amount", + "u", + "s", + "d" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "money" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "usd" + ] + ], + [] + ] + ] + ] + ], + [ + [ + "amount", + "mx" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "money" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "mx" + ] + ], + [] + ] + ] + ] + ], + [ + [ + "legacy", + "g", + "l", + "account" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "legacy", + "g", + "l", + "account" + ] + ], + [] + ] + ], + [ + [ + "gl", + "account", + "level", + "1" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "g", + "l", + "account", + "level", + "1" + ] + ], + [] + ] + ], + [ + [ + "gl", + "account", + "level", + "2" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "g", + "l", + "account", + "level", + "2" + ] + ], + [] + ] + ], + [ + [ + "gl", + "account", + "level", + "3" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "g", + "l", + "account", + "level", + "3" + ] + ], + [] + ] + ], + [ + [ + "gl", + "account", + "level", + "4" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "g", + "l", + "account", + "level", + "4" + ] + ], + [] + ] + ], + [ + [ + "gl", + "account", + "level", + "5" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "g", + "l", + "account", + "level", + "5" + ] + ], + [] + ] + ], + [ + [ + "gl", + "account", + "level", + "6" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "g", + "l", + "account", + "level", + "6" + ] + ], + [] + ] + ] + ] + ] + ] + ] + ] + ], + [ + [ + "central", + "bank", + "sub", + "product" + ], + [ + "public", + [ + "", + [ + "custom_type_definition", + [], + [ + "public", + [ + [ + [ + "b", + "o", + "c" + ], + [] + ], + [ + [ + "b", + "o", + "e" + ], + [] + ], + [ + [ + "b", + "o", + "j" + ], + [] + ], + [ + [ + "e", + "c", + "b" + ], + [] + ], + [ + [ + "f", + "r", + "b" + ], + [] + ], + [ + [ + "o", + "c", + "b" + ], + [] + ], + [ + [ + "other", + "cash", + "currency", + "and", + "coin" + ], + [] + ], + [ + [ + "r", + "b", + "a" + ], + [] + ], + [ + [ + "s", + "n", + "b" + ], + [] + ] + ] + ] + ] + ] + ] + ], + [ + [ + "cost", + "center" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "record", + {}, + [ + [ + [ + "code" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cost", + "center", + "code" + ] + ], + [] + ] + ], + [ + [ + "description" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cost", + "center", + "description" + ] + ], + [] + ] + ] + ] + ] + ] + ] + ] + ], + [ + [ + "cost", + "center", + "code" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "cost", + "center", + "description" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "counterparty" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "record", + {}, + [ + [ + [ + "country" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ], + [ + [ + "description", + "5", + "g" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "description", + "5", + "g" + ] + ], + [] + ] + ], + [ + [ + "account" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "account" + ] + ], + [] + ] + ] + ] + ] + ] + ] + ] + ], + [ + [ + "country", + "code" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "description", + "5", + "g" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "fed", + "code" + ], + [ + "public", + [ + "", + [ + "custom_type_definition", + [], + [ + "public", + [ + [ + [ + "i", + "a", + "31" + ], + [] + ], + [ + [ + "i", + "a", + "32" + ], + [] + ], + [ + [ + "i", + "a", + "33" + ], + [] + ], + [ + [ + "i", + "a", + "34" + ], + [] + ], + [ + [ + "i", + "a", + "35" + ], + [] + ], + [ + [ + "i", + "a", + "36" + ], + [] + ], + [ + [ + "i", + "a", + "37" + ], + [] + ], + [ + [ + "i", + "a", + "38" + ], + [] + ], + [ + [ + "i", + "a", + "39" + ], + [] + ], + [ + [ + "i", + "a", + "41" + ], + [] + ], + [ + [ + "i", + "a", + "42" + ], + [] + ], + [ + [ + "i", + "a", + "43" + ], + [] + ], + [ + [ + "i", + "a", + "44" + ], + [] + ], + [ + [ + "i", + "a", + "45" + ], + [] + ], + [ + [ + "i", + "a", + "46" + ], + [] + ], + [ + [ + "i", + "a", + "47" + ], + [] + ], + [ + [ + "i", + "a", + "48" + ], + [] + ], + [ + [ + "i", + "a", + "49" + ], + [] + ], + [ + [ + "i", + "u", + "1" + ], + [] + ], + [ + [ + "i", + "u", + "2" + ], + [] + ], + [ + [ + "i", + "u", + "4" + ], + [] + ], + [ + [ + "o", + "w", + "10" + ], + [] + ], + [ + [ + "o", + "w", + "9" + ], + [] + ], + [ + [ + "z", + "0" + ], + [] + ] + ] + ] + ] + ] + ] + ], + [ + [ + "g", + "l", + "account", + "level", + "1" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "g", + "l", + "account", + "level", + "2" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "g", + "l", + "account", + "level", + "3" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "g", + "l", + "account", + "level", + "4" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "g", + "l", + "account", + "level", + "5" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "g", + "l", + "account", + "level", + "6" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "legacy", + "g", + "l", + "account" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "legal", + "entity" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "record", + {}, + [ + [ + [ + "code" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "legal", + "entity", + "code" + ] + ], + [] + ] + ], + [ + [ + "country" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ] + ] + ] + ] + ] + ] + ] + ], + [ + [ + "legal", + "entity", + "code" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "money" + ], + [ + "public", + [ + "", + [ + "custom_type_definition", + [ + [ + "a" + ] + ], + [ + "public", + [ + [ + [ + "money" + ], + [ + [ + [ + "arg", + "1" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ] + ] + ] + ] + ] + ] + ] + ] + ] + ], + [ + [ + "mx" + ], + [ + "public", + [ + "", + [ + "custom_type_definition", + [], + [ + "public", + [ + [ + [ + "mx" + ], + [] + ] + ] + ] + ] + ] + ] + ], + [ + [ + "party", + "i", + "d" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "product", + "type" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "usd" + ], + [ + "public", + [ + "", + [ + "custom_type_definition", + [], + [ + "public", + [ + [ + [ + "usd" + ], + [] + ] + ] + ] + ] + ] + ] + ] + ], + "values": [ + [ + [ + "central", + "bank", + "to", + "sub", + "product" + ], + [ + "public", + { + "inputTypes": [ + [ + [ + "cb" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + "outputType": [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + "body": [ + "pattern_match", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + "cb" + ] + ], + [ + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "federal", + "reserve", + "bank" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "f", + "r", + "b" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "swiss", + "national", + "bank" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "s", + "n", + "b" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "bank", + "of", + "england" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "b", + "o", + "e" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "european", + "central", + "bank" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "e", + "c", + "b" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "bank", + "of", + "japan" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "b", + "o", + "j" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "reserve", + "bank", + "of", + "australia" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "r", + "b", + "a" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "bank", + "of", + "canada" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "b", + "o", + "c" + ] + ] + ] + ], + [ + [ + "wildcard_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "o", + "c", + "b" + ] + ] + ] + ] + ] + ] + } + ] + ], + [ + [ + "central", + "banks" + ], + [ + "public", + { + "inputTypes": [], + "outputType": [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "dict" + ] + ], + [ + "dict" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "party", + "i", + "d" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + "body": [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "dict" + ] + ], + [ + "dict" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "party", + "i", + "d" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "party", + "i", + "d" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "dict" + ] + ], + [ + "dict" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "party", + "i", + "d" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "dict" + ] + ], + [ + "from", + "list" + ] + ] + ], + [ + "list", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "BBB00137300" + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "banco", + "central", + "do", + "brasil" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "BBB00173449" + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "bank", + "of", + "japan" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "BBB00173298" + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "bank", + "of", + "england" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "BBB00176525" + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "banca", + "de", + "france" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "BBB00170219" + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "bance", + "di", + "italia" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "BBB00601646" + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "swiss", + "national", + "bank" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "BBB00173467" + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "bank", + "of", + "korea" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "BBB00224297" + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "beutsche", + "bundesbank" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "BBB01625286" + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "banque", + "centrale", + "du", + "luxembourg" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "BBB01277095" + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "peoples", + "bank", + "of", + "china" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "BBB00102953" + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "reserve", + "bank", + "of", + "india" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "BBB00197539" + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank", + "of", + "the", + "russian", + "federation" + ] + ] + ] + ] + ], + [ + "tuple", + [ + "tuple", + {}, + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "BBB00238530" + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "federal", + "reserve", + "bank" + ] + ] + ] + ] + ] + ] + ] + ] + } + ] + ], + [ + [ + "classify" + ], + [ + "public", + { + "inputTypes": [ + [ + [ + "cashflow" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ] + ] + ], + "outputType": [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + "body": [ + "pattern_match", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "dict" + ] + ], + [ + "dict" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "party", + "i", + "d" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "party", + "i", + "d" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "dict" + ] + ], + [ + "dict" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "party", + "i", + "d" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "dict" + ] + ], + [ + "get" + ] + ] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "party", + "i", + "d" + ] + ], + [] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ], + [ + "party", + "id" + ] + ] + ], + [ + "reference", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "dict" + ] + ], + [ + "dict" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "party", + "i", + "d" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "banks" + ] + ] + ] + ], + [ + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "just" + ] + ], + [ + [ + "as_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + "wildcard_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ], + [ + "central", + "bank" + ] + ] + ] + ], + [ + "pattern_match", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ], + [ + "gl", + "account", + "level", + "6" + ] + ], + [ + [ + [ + "literal_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "Segregated Cash" + ] + ], + [ + "pattern_match", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "to", + "sub", + "product" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + "central", + "bank" + ] + ] + ], + [ + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "f", + "r", + "b" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "31" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "s", + "n", + "b" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "32" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "b", + "o", + "e" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "33" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "e", + "c", + "b" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "34" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "b", + "o", + "j" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "35" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "r", + "b", + "a" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "36" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "b", + "o", + "c" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "37" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "o", + "c", + "b" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "38" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "other", + "cash", + "currency", + "and", + "coin" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "39" + ] + ] + ] + ] + ] + ] + ], + [ + [ + "wildcard_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ], + [ + "pattern_match", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "to", + "sub", + "product" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + "central", + "bank" + ] + ] + ], + [ + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "f", + "r", + "b" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "41" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "s", + "n", + "b" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "42" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "b", + "o", + "e" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "43" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "e", + "c", + "b" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "44" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "b", + "o", + "j" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "45" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "r", + "b", + "a" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "46" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "b", + "o", + "c" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "47" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "o", + "c", + "b" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "48" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "other", + "cash", + "currency", + "and", + "coin" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "49" + ] + ] + ] + ] + ] + ] + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "nothing" + ] + ], + [] + ], + [ + "if_then_else", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "member" + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "to", + "upper" + ] + ] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "g", + "l", + "account", + "level", + "5" + ] + ], + [] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ], + [ + "gl", + "account", + "level", + "5" + ] + ] + ] + ], + [ + "list", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "CASH AND DUE FROM BANKS" + ] + ], + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "OVERNIGHT AND TERM DEPOSITS" + ] + ], + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "CASH EQUIVALENTS" + ] + ] + ] + ] + ], + [ + "if_then_else", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "greater", + "than", + "or", + "equal" + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "net", + "cash", + "u", + "s", + "d" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ] + ] + ], + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ], + [ + "float_literal", + 0 + ] + ] + ], + [ + "if_then_else", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "is", + "onshore" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "u", + "1" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "u", + "2" + ] + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "u", + "4" + ] + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "z", + "0" + ] + ] + ] + ] + ] + ] + ] + } + ] + ], + [ + [ + "is", + "onshore" + ], + [ + "public", + { + "inputTypes": [ + [ + [ + "cashflow" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ] + ] + ], + "outputType": [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + "body": [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "and" + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "equal" + ] + ] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "legal", + "entity" + ] + ], + [] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ], + [ + "legal", + "entity" + ] + ], + [ + "country" + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "country" + ] + ] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ], + [ + "currency" + ] + ] + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "equal" + ] + ] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "legal", + "entity" + ] + ], + [] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ], + [ + "legal", + "entity" + ] + ], + [ + "country" + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "constructor", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "just" + ] + ] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "counterparty" + ] + ], + [] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ], + [ + "counterparty" + ] + ], + [ + "country" + ] + ] + ] + ] + ] + } + ] + ], + [ + [ + "net", + "cash", + "u", + "s", + "d" + ], + [ + "public", + { + "inputTypes": [ + [ + [ + "cashflow" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ] + ] + ], + "outputType": [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ], + "body": [ + "pattern_match", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "money" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "usd" + ] + ], + [] + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ], + [ + "amount", + "u", + "s", + "d" + ] + ], + [ + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "money" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "usd" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "money" + ] + ], + [ + [ + "as_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ], + [ + "wildcard_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ] + ], + [ + "amount" + ] + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ], + [ + "amount" + ] + ] + ] + ] + ] + } + ] + ] + ] + } + ] + } + ] } ] } \ No newline at end of file diff --git a/morphir.json b/morphir.json index 76ff41a..2276819 100644 --- a/morphir.json +++ b/morphir.json @@ -2,6 +2,6 @@ "name": "Morphir/Sample", "sourceDirectory": "src", "exposedModules": [ - "BooksAndRecords" + "Reg.LCR.FedCode" ] } diff --git a/package.json b/package.json index 5d7a0ff..beb2d8b 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,15 @@ "keywords": [ "morphir-model" ], + "scripts": { + "build": "elm make && morphir-elm make", + "test": "lobo --framework=elm-test", + "train-build-release": "train-build-release" + }, "devDependencies": { + "lobo": "^1.0.0" + }, + "dependencies": { "morphir-elm": "^2.30.4" } } diff --git a/src/Morphir/Sample/LCR/Basics.elm b/src/Morphir/Sample/LCR/Basics.elm deleted file mode 100644 index 677dc12..0000000 --- a/src/Morphir/Sample/LCR/Basics.elm +++ /dev/null @@ -1,68 +0,0 @@ -{- -Copyright 2020 Morgan Stanley - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. --} - -module Morphir.Sample.LCR.Basics exposing - ( AssetCategoryCodes(..) - , InsuranceType(..) - , Entity - , Currency - , Balance - , Ratio - , Fed5GCode - ) - -{-| Asset categories apply to the flows and are specified in the spec. - There are a bunch of them, but we're only concerned with these three in this example . --} -type AssetCategoryCodes - = Level1Assets - | Level2aAssets - | Level2bAssets - - -{-| Insurance type as specified in the spec. - There are a bunch of them, but we're only concerned with FDIC in this example . --} -type InsuranceType - = FDIC - | Uninsured - - -type alias Entity = String - - -type alias Currency = String - - -type alias Balance = Float - - -type alias Ratio = Float - - -type alias Fed5GCode = String - - -{-| A currency isn't always itself in 5G. --} -fed5GCurrency : Currency -> Currency -fed5GCurrency currency = - if - List.member currency ["USD", "EUR", "GBP", "CHF", "JPY", "AUD", "CAD"] - then - currency - else - "USD" diff --git a/src/Morphir/Sample/LCR/Counterparty.elm b/src/Morphir/Sample/LCR/Counterparty.elm deleted file mode 100644 index 87c64dd..0000000 --- a/src/Morphir/Sample/LCR/Counterparty.elm +++ /dev/null @@ -1,43 +0,0 @@ -{- -Copyright 2020 Morgan Stanley - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. --} - -module Morphir.Sample.LCR.Counterparty exposing (..) - - -type alias CounterpartyId = String - - -type CounterpartyType - = Bank - | Retail - | SmallBusiness - | NonFinancialCorporate - | Sovereign - | CentralBank - | GovernmentSponsoredEntity - | PublicSectorEntity - | MultilateralDevelopmentBank - | OtherSupranational - | SupervisedNonBankFinancialEntity - | DebtIssuingSpecialPurposeEntity - | OtherFinancialEntity - | Other - - -type alias Counterparty = - { counterpartyId : CounterpartyId - , counterpartyType : CounterpartyType - } diff --git a/src/Morphir/Sample/LCR/Inflows.elm b/src/Morphir/Sample/LCR/Inflows.elm deleted file mode 100644 index 6dcd4fa..0000000 --- a/src/Morphir/Sample/LCR/Inflows.elm +++ /dev/null @@ -1,187 +0,0 @@ -{- -Copyright 2020 Morgan Stanley - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. --} - -module Morphir.Sample.LCR.Inflows exposing (..) - - -import Morphir.SDK.LocalDate exposing (LocalDate) -import Morphir.Sample.LCR.Basics exposing (..) -import Morphir.Sample.LCR.Flows exposing (..) -import Morphir.Sample.LCR.Counterparty exposing (..) -import Morphir.Sample.LCR.Rules exposing (..) -import Morphir.Sample.LCR.MaturityBucket exposing (..) - - -{-| The list of all rules pertaining to inflows. -} -inflowRules : (Flow -> Counterparty) -> LocalDate -> List (Rule Flow) -inflowRules toCounterparty t = - [ Rule "20(a)(1)" 1.0 (isRule20a1 t) - , Rule "20(a)(3)-(6)" 1.0 isRule20a3dash6 - , Rule "22(b)(3)L1" -1.0 isRule22b3L2a - , Rule "22(b)(3)L2a" -0.85 isRule22b3L2a - , Rule "22(b)(3)L2b" -0.5 isRule22b3L2b - , Rule "20(b)" 0.85 isRule20b - , Rule "20(c)" 0.5 isRule20c - , Rule "33(b)" 1.0 isRule33b - , Rule "33(c)" 0.5 (isRule33c toCounterparty t) - , Rule "33(d)(1)" 1.0 (isRule33d1 toCounterparty) - , Rule "33(d)(2)" 1.0 (isRule33d2 toCounterparty) - , Rule "33(e)" 1.0 isRule33e - , Rule "33(g)" 1.0 isRule33g - , Rule "33(h)" 0.0 isRule33h - ] - --- Rule logic is below for (eventual) unit testability - -isRule20a1 : LocalDate -> Flow -> Bool -isRule20a1 t flow = - List.member flow.fed5GCode ["I.A.3.1", "I.A.3.2", "I.A.3.3", "I.A.3.4", "I.A.3.5", "I.A.3.6", "I.A.3.7", "I.A.3.8"] - && daysToMaturity t flow.maturityDate == 0 - - -isRule20a3dash6 : Flow -> Bool -isRule20a3dash6 flow = - ( - List.member flow.fed5GCode ["I.A.1", "I.A.2"] - && flow.collateralClass == Level1Assets - && flow.isTreasuryControl - ) - || - ( - List.member flow.fed5GCode ["I.S.1", "I.S.2", "I.S.4"] - && flow.collateralClass == Level1Assets - && flow.isTreasuryControl - && flow.isUnencumbered - ) - - -isRule22b3L2a : Flow -> Bool -isRule22b3L2a flow = - flow.fed5GCode == "S.I.19" && flow.collateralClass == Level2aAssets - - -isRule22b3L2b : Flow -> Bool -isRule22b3L2b flow = - flow.fed5GCode == "S.I.19" && flow.collateralClass == Level2bAssets - - -isRule20b : Flow -> Bool -isRule20b flow = - ( - List.member flow.fed5GCode ["I.A.1", "I.A.2"] - && flow.collateralClass == Level2aAssets - && flow.isTreasuryControl - ) - || - ( - List.member flow.fed5GCode ["I.S.1", "I.S.2", "I.S.4"] - && flow.collateralClass == Level2aAssets - && flow.isTreasuryControl - && flow.isUnencumbered - ) - -isRule20c : Flow -> Bool -isRule20c flow = - ( - List.member flow.fed5GCode ["I.A.1", "I.A.2"] - && flow.collateralClass == Level2bAssets - && flow.isTreasuryControl - ) - || - ( - List.member flow.fed5GCode ["I.S.1", "I.S.2", "I.S.4"] - && flow.collateralClass == Level2bAssets - && flow.isTreasuryControl - && flow.isUnencumbered - ) - -isRule33b : { a | fed5GCode : String } -> Bool -isRule33b cashflow = - cashflow.fed5GCode == "1.O.7" - - -isRule33c : (Flow -> Counterparty) -> LocalDate -> Flow -> Bool -isRule33c toCounterparty t flow = - let - cpty : Counterparty - cpty = toCounterparty flow - - days : Int - days = daysToMaturity t flow.maturityDate - in - ( - List.member flow.fed5GCode ["I.U.5", "I.U.6"] - && List.member cpty.counterpartyType [ Retail, SmallBusiness ] - && (0 < days && days <= 30) - ) - || - ( - List.member flow.fed5GCode ["I.S.1", "I.S.2", "I.S.4", "I.S.5", "I.S.6", "I.S.7"] - && cpty.counterpartyType == Retail - && (0 < days && days <= 30) - ) - -isRule33d1 : (Flow -> Counterparty) -> Flow -> Bool -isRule33d1 toCounterparty flow = - let - cpty : Counterparty - cpty = toCounterparty flow - in - List.member flow.fed5GCode ["I.U.1", "I.U.2", "I.U.4"] - || - ( List.member flow.fed5GCode ["I.U.5", "I.U.6"] - && List.member cpty.counterpartyType - [ CentralBank - , Bank - , SupervisedNonBankFinancialEntity - , DebtIssuingSpecialPurposeEntity - , OtherFinancialEntity - ] - ) - - -isRule33d2 : (Flow -> Counterparty) -> Flow -> Bool -isRule33d2 toCounterparty flow = - let - cpty : Counterparty - cpty = toCounterparty flow - in - List.member flow.fed5GCode ["I.U.5", "I.U.6"] - && List.member cpty.counterpartyType - [ NonFinancialCorporate - , Sovereign - , GovernmentSponsoredEntity - , PublicSectorEntity - , MultilateralDevelopmentBank - , OtherSupranational - , Other - ] - -isRule33e : Flow -> Bool -isRule33e cashflow = - cashflow.fed5GCode == "I.O.6" || cashflow.fed5GCode == "I.O.8" - --- isRule33f : a -> b --- isRule33f flow = --- Debug.todo "Rule 33(f) is actually a bunch of rules. Too many to do for now..." - -isRule33g : { a | fed5GCode : String, isTreasuryControl : Bool } -> Bool -isRule33g cashflow = - cashflow.fed5GCode == "I.O.5" && cashflow.isTreasuryControl - -isRule33h : { a | fed5GCode : String, isTreasuryControl : Bool } -> Bool -isRule33h cashflow = - cashflow.fed5GCode == "I.O.9" && cashflow.isTreasuryControl diff --git a/src/Morphir/Sample/LCR/Product.elm b/src/Morphir/Sample/LCR/Product.elm deleted file mode 100644 index d6dc9b6..0000000 --- a/src/Morphir/Sample/LCR/Product.elm +++ /dev/null @@ -1,34 +0,0 @@ -{- -Copyright 2020 Morgan Stanley - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. --} - -module Morphir.Sample.LCR.Product exposing (..) - - -type alias ProductId = String - - -type ProductType - = Cash - | Equity - | Bond - | Other -- There are way more... - - -type alias Product = - { productId : ProductId - , productType : ProductType - , isHQLA : Bool - } diff --git a/src/Morphir/Sample/LCR/Rules.elm b/src/Morphir/Sample/LCR/Rules.elm deleted file mode 100644 index 63792dc..0000000 --- a/src/Morphir/Sample/LCR/Rules.elm +++ /dev/null @@ -1,64 +0,0 @@ -{- -Copyright 2020 Morgan Stanley - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. --} - -module Morphir.Sample.LCR.Rules exposing (..) - - -import Morphir.Sample.LCR.Basics exposing (..) -import Morphir.Sample.LCR.Flows exposing (..) -import Morphir.Sample.LCR.Counterparty exposing (..) - - -type alias Weight = Float - -type alias Rule a = - { name : String - , weight : Weight - , applies : a -> Bool - } - - -isApplicable : a -> (Rule a) -> Bool -isApplicable a rule = - rule.applies a - - -findApplicable : a -> List (Rule a) -> Maybe (Rule a) -findApplicable a rules = - rules - |> List.filter (isApplicable a) - |> List.head - - -isAnyApplicable : List (Rule a) -> a -> Bool -isAnyApplicable rules a = - rules - |> List.filter (isApplicable a) - |> List.isEmpty - |> not - - -find : String -> List (Rule a) -> Maybe (Rule a) -find name rules = - rules - |> List.filter (\r -> r.name == name) - |> List.head - - -findAll : List String -> List (Rule a) -> List (Rule a) -findAll names rules = - rules - |> List.filter (\r -> List.member r.name names) diff --git a/src/Morphir/Sample/CDM/Reg/MiFIR/AncillaryRoleEnum.elm b/src/Morphir/Sample/Reg/CDM/MiFIR/AncillaryRoleEnum.elm similarity index 95% rename from src/Morphir/Sample/CDM/Reg/MiFIR/AncillaryRoleEnum.elm rename to src/Morphir/Sample/Reg/CDM/MiFIR/AncillaryRoleEnum.elm index 7eeab2e..e6201fe 100644 --- a/src/Morphir/Sample/CDM/Reg/MiFIR/AncillaryRoleEnum.elm +++ b/src/Morphir/Sample/Reg/CDM/MiFIR/AncillaryRoleEnum.elm @@ -15,7 +15,7 @@ -} -module Morphir.Sample.CDM.Reg.MiFIR.AncillaryRoleEnum exposing (AncillaryRoleEnum(..)) +module Morphir.Sample.Reg.CDM.MiFIR.AncillaryRoleEnum exposing (AncillaryRoleEnum(..)) type AncillaryRoleEnum diff --git a/src/Morphir/Sample/CDM/Reg/MiFIR/Basics.elm b/src/Morphir/Sample/Reg/CDM/MiFIR/Basics.elm similarity index 87% rename from src/Morphir/Sample/CDM/Reg/MiFIR/Basics.elm rename to src/Morphir/Sample/Reg/CDM/MiFIR/Basics.elm index 07e66d0..3cfb64c 100644 --- a/src/Morphir/Sample/CDM/Reg/MiFIR/Basics.elm +++ b/src/Morphir/Sample/Reg/CDM/MiFIR/Basics.elm @@ -1,4 +1,4 @@ -module Morphir.Sample.CDM.Reg.MiFIR.Basics exposing (..) +module Morphir.Sample.Reg.CDM.MiFIR.Basics exposing (..) exists : Maybe a -> Bool diff --git a/src/Morphir/Sample/CDM/Reg/MiFIR/Enums.elm b/src/Morphir/Sample/Reg/CDM/MiFIR/Enums.elm similarity index 88% rename from src/Morphir/Sample/CDM/Reg/MiFIR/Enums.elm rename to src/Morphir/Sample/Reg/CDM/MiFIR/Enums.elm index ddb7aba..3b61986 100644 --- a/src/Morphir/Sample/CDM/Reg/MiFIR/Enums.elm +++ b/src/Morphir/Sample/Reg/CDM/MiFIR/Enums.elm @@ -1,4 +1,4 @@ -module Morphir.Sample.CDM.Reg.MiFIR.Enums exposing (..) +module Morphir.Sample.Reg.CDM.MiFIR.Enums exposing (..) type PriceExpressionEnum diff --git a/src/Morphir/Sample/CDM/Reg/MiFIR/FloatingRateIndexEnum.elm b/src/Morphir/Sample/Reg/CDM/MiFIR/FloatingRateIndexEnum.elm similarity index 99% rename from src/Morphir/Sample/CDM/Reg/MiFIR/FloatingRateIndexEnum.elm rename to src/Morphir/Sample/Reg/CDM/MiFIR/FloatingRateIndexEnum.elm index 0f4b3ab..1d18ccd 100644 --- a/src/Morphir/Sample/CDM/Reg/MiFIR/FloatingRateIndexEnum.elm +++ b/src/Morphir/Sample/Reg/CDM/MiFIR/FloatingRateIndexEnum.elm @@ -15,7 +15,7 @@ -} -module Morphir.Sample.CDM.Reg.MiFIR.FloatingRateIndexEnum exposing (..) +module Morphir.Sample.Reg.CDM.MiFIR.FloatingRateIndexEnum exposing (..) type FloatingRateIndexEnum diff --git a/src/Morphir/Sample/CDM/Reg/MiFIR/Quantities.elm b/src/Morphir/Sample/Reg/CDM/MiFIR/Quantities.elm similarity index 82% rename from src/Morphir/Sample/CDM/Reg/MiFIR/Quantities.elm rename to src/Morphir/Sample/Reg/CDM/MiFIR/Quantities.elm index 7504508..088f6c8 100644 --- a/src/Morphir/Sample/CDM/Reg/MiFIR/Quantities.elm +++ b/src/Morphir/Sample/Reg/CDM/MiFIR/Quantities.elm @@ -1,11 +1,11 @@ -module Morphir.Sample.CDM.Reg.MiFIR.Quantities exposing +module Morphir.Sample.Reg.CDM.MiFIR.Quantities exposing ( NonNegativeQuantity , Quantity , UnitEnum(..) , nonNegativeQuantity ) -import Morphir.Sample.CDM.Reg.MiFIR.Basics exposing (Amount) +import Morphir.Sample.Reg.CDM.MiFIR.Basics exposing (Amount) type alias Quantity a = diff --git a/src/Morphir/Sample/CDM/Reg/MiFIR/README.md b/src/Morphir/Sample/Reg/CDM/MiFIR/README.md similarity index 100% rename from src/Morphir/Sample/CDM/Reg/MiFIR/README.md rename to src/Morphir/Sample/Reg/CDM/MiFIR/README.md diff --git a/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm b/src/Morphir/Sample/Reg/CDM/MiFIR/RTS22.elm similarity index 96% rename from src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm rename to src/Morphir/Sample/Reg/CDM/MiFIR/RTS22.elm index 42f8154..944f39e 100644 --- a/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22.elm +++ b/src/Morphir/Sample/Reg/CDM/MiFIR/RTS22.elm @@ -15,21 +15,24 @@ -} -module Morphir.Sample.CDM.Reg.MiFIR.RTS22 exposing (..) +module Morphir.Sample.Reg.CDM.MiFIR.RTS22 exposing (..) import Company.Operations.BooksAndRecords exposing (Quantity) import List.Nonempty as Nonempty exposing (Nonempty) import Morphir.SDK.LocalDate exposing (LocalDate) -import Morphir.Sample.CDM.Reg.MiFIR.AncillaryRoleEnum exposing (AncillaryRoleEnum) -import Morphir.Sample.CDM.Reg.MiFIR.Basics exposing (..) -import Morphir.Sample.CDM.Reg.MiFIR.Enums exposing (..) -import Morphir.Sample.CDM.Reg.MiFIR.FloatingRateIndexEnum exposing (FloatingRateIndexEnum(..)) -import Morphir.Sample.CDM.Reg.MiFIR.Quantities exposing (NonNegativeQuantity) -import Morphir.Sample.LCR.Flows exposing (Amount) +import Morphir.Sample.Reg.CDM.MiFIR.AncillaryRoleEnum exposing (AncillaryRoleEnum) +import Morphir.Sample.Reg.CDM.MiFIR.Basics exposing (..) +import Morphir.Sample.Reg.CDM.MiFIR.Enums exposing (..) +import Morphir.Sample.Reg.CDM.MiFIR.FloatingRateIndexEnum exposing (FloatingRateIndexEnum(..)) +import Morphir.Sample.Reg.CDM.MiFIR.Quantities exposing (NonNegativeQuantity) +import Morphir.Sample.Reg.LCR.Flows exposing (Amount) + {-| This example focuses on the Rosetta DSL's reporting functionality. -} + + -- Trade Data Structures -- @@ -279,8 +282,9 @@ type alias RateSpecification = -- Report -- - {- While the CDM RTS22 report contains all of the fields listed, this example focuses solely on the price and quantity fields. -} + + type alias Report = { price : Number diff --git a/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22Alt.elm b/src/Morphir/Sample/Reg/CDM/MiFIR/RTS22Alt.elm similarity index 97% rename from src/Morphir/Sample/CDM/Reg/MiFIR/RTS22Alt.elm rename to src/Morphir/Sample/Reg/CDM/MiFIR/RTS22Alt.elm index bdf2c60..903cb38 100644 --- a/src/Morphir/Sample/CDM/Reg/MiFIR/RTS22Alt.elm +++ b/src/Morphir/Sample/Reg/CDM/MiFIR/RTS22Alt.elm @@ -15,14 +15,14 @@ -} -module Morphir.Sample.CDM.Reg.MiFIR.RTS22Alt exposing (..) +module Morphir.Sample.Reg.CDM.MiFIR.RTS22Alt exposing (..) import List.Nonempty as Nonempty exposing (Nonempty) import Morphir.SDK.LocalDate exposing (LocalDate) -import Morphir.Sample.CDM.Reg.MiFIR.AncillaryRoleEnum exposing (AncillaryRoleEnum) -import Morphir.Sample.CDM.Reg.MiFIR.Basics exposing (..) -import Morphir.Sample.CDM.Reg.MiFIR.Enums exposing (..) -import Morphir.Sample.CDM.Reg.MiFIR.FloatingRateIndexEnum exposing (FloatingRateIndexEnum(..)) +import Morphir.Sample.Reg.CDM.MiFIR.AncillaryRoleEnum exposing (AncillaryRoleEnum) +import Morphir.Sample.Reg.CDM.MiFIR.Basics exposing (..) +import Morphir.Sample.Reg.CDM.MiFIR.Enums exposing (..) +import Morphir.Sample.Reg.CDM.MiFIR.FloatingRateIndexEnum exposing (FloatingRateIndexEnum(..)) type alias Report = diff --git a/src/Morphir/Sample/Reg/Country.elm b/src/Morphir/Sample/Reg/Country.elm new file mode 100644 index 0000000..c3a9d48 --- /dev/null +++ b/src/Morphir/Sample/Reg/Country.elm @@ -0,0 +1,248 @@ +module Morphir.Sample.Reg.Country exposing (..) + + +type Country + = ABW + | AFG + | AGO + | AIA + | ALA + | ALB + | AND + | ARE + | ARG + | ARM + | ASM + | ATF + | ATG + | AUS + | AUT + | AZE + | BDI + | BEL + | BEN + | BES + | BFA + | BGD + | BGR + | BHR + | BHS + | BIH + | BLM + | BLR + | BLZ + | BMU + | BOL + | BRA + | BRB + | BRN + | BTN + | BVT + | BWA + | CAF + | CAN + | CCK + | CHE + | CHL + | CHN + | CIV + | CMR + | COD + | COG + | COK + | COL + | COM + | CPV + | CRI + | CUB + | CUW + | CXR + | CYM + | CYP + | CZE + | DEU + | DJI + | DMA + | DNK + | DOM + | DZA + | ECU + | EGY + | ERI + | ESH + | ESP + | EST + | ETH + | FIN + | FJI + | FRA + | FRO + | FSM + | GAB + | GBR + | GEO + | GGY + | GHA + | GIB + | GIN + | GLP + | GMB + | GNB + | GNQ + | GRC + | GRD + | GRL + | GTM + | GUF + | GUM + | GUY + | HKG + | HMD + | HND + | HRV + | HTI + | HUN + | IDN + | IMN + | IND + | IOT + | IRL + | IRN + | IRQ + | ISL + | ISR + | ITA + | JAM + | JEY + | JOR + | JPN + | KAZ + | KEN + | KGZ + | KHM + | KIR + | KNA + | KOR + | KWT + | LAO + | LBN + | LBR + | LBY + | LCA + | LIE + | LKA + | LSO + | LTU + | LUX + | LVA + | MAC + | MAF + | MAR + | MCO + | MDA + | MDG + | MDV + | MEX + | MHL + | MKD + | MLI + | MLT + | MMR + | MNE + | MNG + | MNP + | MOZ + | MRT + | MSR + | MTQ + | MUS + | MWI + | MYS + | MYT + | NAM + | NCL + | NER + | NFK + | NGA + | NIC + | NIU + | NLD + | NOR + | NPL + | NRU + | NZL + | OMN + | PAK + | PAN + | PCN + | PER + | PHL + | PLW + | PNG + | POL + | PRI + | PRK + | PRT + | PRY + | PYF + | QAT + | REU + | ROU + | RUS + | RWA + | SAU + | SDN + | SEN + | SGP + | SHN + | SJM + | SLB + | SLE + | SLV + | SMR + | SOM + | SPM + | SRB + | SSD + | STP + | SUR + | SVK + | SVN + | SWE + | SWZ + | SXM + | SYC + | SYR + | TCA + | TCD + | TGO + | THA + | TJK + | TKL + | TKM + | TLS + | TON + | TTO + | TUN + | TUR + | TUV + | TZA + | UGA + | UKR + | UMI + | URY + | USA + | UZB + | VAT + | VCT + | VEN + | VGB + | VIR + | VNM + | VUT + | WLF + | WSM + | YEM + | ZAF + | ZMB + | ZWE diff --git a/src/Morphir/Sample/Reg/Currency.elm b/src/Morphir/Sample/Reg/Currency.elm new file mode 100644 index 0000000..9e136d8 --- /dev/null +++ b/src/Morphir/Sample/Reg/Currency.elm @@ -0,0 +1,439 @@ +module Morphir.Sample.Reg.Currency exposing (..) + +import Morphir.Sample.Reg.Country as Country exposing (Country(..)) + + +type Currency + = AED + | AFN + | ALL + | AMD + | ANG + | AOA + | ARS + | AUD + | AWG + | AZN + | BAM + | BBD + | BDT + | BGN + | BHD + | BIF + | BMD + | BND + | BOB + | BRL + | BSD + | BWP + | BYN + | BZD + | CAD + | CDF + | CHF + | CLP + | CNY + | COP + | CRC + | CUP --,CUC + | CVE + | CZK + | DJF + | DKK + | DOP + | DZD + | EGP + | ERN + | ETB + | EUR + | FJD + | GBP + | GEL + | GHS + | GIP + | GMD + | GNF + | GTQ + | GYD + | HKD + | HNL + | HRK + | HTG --,USD + | HUF + | IDR + | ILS + | INR --,BTN + | IQD + | IRR + | ISK + | JMD + | JOD + | JPY + | KES + | KGS + | KHR + | KMF + | KPW + | KRW + | KWD + | KYD + | KZT + | LAK + | LBP + | LKR + | LRD + | LSL --,ZAR + | LYD + | MAD + | MDL + | MGA + | MKD + | MMK + | MNT + | MOP + | MRU + | MUR + | MVR + | MWK + | MXN + | MYR + | MZN + | NAD --,ZAR + | NGN + | NIO + | NOK + | NPR + | NZD + | OMR + | PAB --,USD + | PEN + | PGK + | PHP + | PKR + | PLN + | PYG + | QAR + | RON + | RSD + | RUB + | RWF + | SAR + | SBD + | SCR + | SDG + | SEK + | SGD + | SHP + | SLL + | SOS + | SRD + | SSP + | STN + | SVC --,USD + | SYP + | SZL + | THB + | TJS + | TMT + | TND + | TOP + | TRY + | TTD + | TZS + | UAH + | UGX + | USD + | UYU + | UZS + | VES + | VND + | VUV + | WST + | XAF + | XCD + | XOF + | XPF + | YER + | ZAR + | ZMW + | ZWL + + +currencyCountries : List ( Currency, Country ) +currencyCountries = + [ ( AED, ARE ) + , ( AFN, AFG ) + , ( ALL, ALB ) + , ( AMD, ARM ) + , ( ANG, CUW ) + , ( ANG, SXM ) + , ( AOA, AGO ) + , ( ARS, ARG ) + , ( AUD, AUS ) + , ( AUD, CCK ) + , ( AUD, CXR ) + , ( AUD, HMD ) + , ( AUD, KIR ) + , ( AUD, NFK ) + , ( AUD, NRU ) + , ( AUD, TUV ) + , ( AWG, ABW ) + , ( AZN, AZE ) + , ( BAM, BIH ) + , ( BBD, BRB ) + , ( BDT, BGD ) + , ( BGN, BGR ) + , ( BHD, BHR ) + , ( BIF, BDI ) + , ( BMD, BMU ) + , ( BND, BRN ) + , ( BOB, BOL ) + , ( BRL, BRA ) + , ( BSD, BHS ) + , ( BWP, BWA ) + , ( BYN, BLR ) + , ( BZD, BLZ ) + , ( CAD, CAN ) + , ( CDF, COD ) + , ( CHF, CHE ) + , ( CHF, LIE ) + , ( CLP, CHL ) + , ( CNY, CHN ) + , ( COP, COL ) + , ( CRC, CRI ) + , ( CUP, CUB ) + , ( CVE, CPV ) + , ( CZK, CZE ) + , ( DJF, DJI ) + , ( DKK, DNK ) + , ( DKK, FRO ) + , ( DKK, GRL ) + , ( DOP, DOM ) + , ( DZD, DZA ) + , ( EGP, EGY ) + , ( ERN, ERI ) + , ( ETB, ETH ) + , ( EUR, ALA ) + , ( EUR, AND ) + , ( EUR, ATF ) + , ( EUR, AUT ) + , ( EUR, BEL ) + , ( EUR, BLM ) + , ( EUR, CYP ) + , ( EUR, DEU ) + , ( EUR, ESP ) + , ( EUR, EST ) + , ( EUR, FIN ) + , ( EUR, FRA ) + , ( EUR, GLP ) + , ( EUR, GRC ) + , ( EUR, GUF ) + , ( EUR, IRL ) + , ( EUR, ITA ) + , ( EUR, LTU ) + , ( EUR, LUX ) + , ( EUR, LVA ) + , ( EUR, MAF ) + , ( EUR, MCO ) + , ( EUR, MLT ) + , ( EUR, MNE ) + , ( EUR, MTQ ) + , ( EUR, MYT ) + , ( EUR, NLD ) + , ( EUR, PRT ) + , ( EUR, REU ) + , ( EUR, SMR ) + , ( EUR, SPM ) + , ( EUR, SVK ) + , ( EUR, SVN ) + , ( EUR, VAT ) + , ( FJD, FJI ) + , ( GBP, GBR ) + , ( GBP, GGY ) + , ( GBP, IMN ) + , ( GBP, JEY ) + , ( GEL, GEO ) + , ( GHS, GHA ) + , ( GIP, GIB ) + , ( GMD, GMB ) + , ( GNF, GIN ) + , ( GTQ, GTM ) + , ( GYD, GUY ) + , ( HKD, HKG ) + , ( HNL, HND ) + , ( HRK, HRV ) + , ( HTG, HTI ) + , ( HUF, HUN ) + , ( IDR, IDN ) + , ( ILS, ISR ) + , ( INR, IND ) + , ( INR, BTN ) + , ( IQD, IRQ ) + , ( IRR, IRN ) + , ( ISK, ISL ) + , ( JMD, JAM ) + , ( JOD, JOR ) + , ( JPY, JPN ) + , ( KES, KEN ) + , ( KGS, KGZ ) + , ( KHR, KHM ) + , ( KMF, COM ) + , ( KPW, PRK ) + , ( KRW, KOR ) + , ( KWD, KWT ) + , ( KYD, CYM ) + , ( KZT, KAZ ) + , ( LAK, LAO ) + , ( LBP, LBN ) + , ( LKR, LKA ) + , ( LRD, LBR ) + , ( LSL, LSO ) + , ( LYD, LBY ) + , ( MAD, ESH ) + , ( MAD, MAR ) + , ( MDL, MDA ) + , ( MGA, MDG ) + , ( MKD, Country.MKD ) + , ( MMK, MMR ) + , ( MNT, MNG ) + , ( MOP, MAC ) + , ( MRU, MRT ) + , ( MUR, MUS ) + , ( MVR, MDV ) + , ( MWK, MWI ) + , ( MXN, MEX ) + , ( MYR, MYS ) + , ( MZN, MOZ ) + , ( NAD, NAM ) + , ( NGN, NGA ) + , ( NIO, NIC ) + , ( NOK, BVT ) + , ( NOK, NOR ) + , ( NOK, SJM ) + , ( NPR, NPL ) + , ( NZD, COK ) + , ( NZD, NIU ) + , ( NZD, NZL ) + , ( NZD, PCN ) + , ( NZD, TKL ) + , ( OMR, OMN ) + , ( PAB, PAN ) + , ( PEN, PER ) + , ( PGK, PNG ) + , ( PHP, PHL ) + , ( PKR, PAK ) + , ( PLN, POL ) + , ( PYG, PRY ) + , ( QAR, QAT ) + , ( RON, ROU ) + , ( RSD, SRB ) + , ( RUB, RUS ) + , ( RWF, RWA ) + , ( SAR, SAU ) + , ( SBD, SLB ) + , ( SCR, SYC ) + , ( SDG, SDN ) + , ( SEK, SWE ) + , ( SGD, SGP ) + , ( SHP, SHN ) + , ( SLL, SLE ) + , ( SOS, SOM ) + , ( SRD, SUR ) + , ( SSP, SSD ) + , ( STN, STP ) + , ( SVC, SLV ) + , ( SYP, SYR ) + , ( SZL, SWZ ) + , ( THB, THA ) + , ( TJS, TJK ) + , ( TMT, TKM ) + , ( TND, TUN ) + , ( TOP, TON ) + , ( TRY, TUR ) + , ( TTD, TTO ) + , ( TZS, TZA ) + , ( UAH, UKR ) + , ( UGX, UGA ) + , ( USD, ASM ) + , ( USD, BES ) + , ( USD, ECU ) + , ( USD, FSM ) + , ( USD, GUM ) + , ( USD, IOT ) + , ( USD, MHL ) + , ( USD, MNP ) + , ( USD, PLW ) + , ( USD, PRI ) + , ( USD, TCA ) + , ( USD, TLS ) + , ( USD, UMI ) + , ( USD, USA ) + , ( USD, VGB ) + , ( USD, VIR ) + , ( UYU, URY ) + , ( UZS, UZB ) + , ( VES, VEN ) + , ( VND, VNM ) + , ( VUV, VUT ) + , ( WST, WSM ) + , ( XAF, CAF ) + , ( XAF, CMR ) + , ( XAF, COG ) + , ( XAF, GAB ) + , ( XAF, GNQ ) + , ( XAF, TCD ) + , ( XCD, AIA ) + , ( XCD, ATG ) + , ( XCD, DMA ) + , ( XCD, GRD ) + , ( XCD, KNA ) + , ( XCD, LCA ) + , ( XCD, MSR ) + , ( XCD, VCT ) + , ( XOF, BEN ) + , ( XOF, BFA ) + , ( XOF, CIV ) + , ( XOF, GNB ) + , ( XOF, MLI ) + , ( XOF, NER ) + , ( XOF, SEN ) + , ( XOF, TGO ) + , ( XPF, NCL ) + , ( XPF, PYF ) + , ( XPF, WLF ) + , ( YER, YEM ) + , ( ZAR, ZAF ) + , ( ZMW, ZMB ) + , ( ZWL, ZWE ) + ] + + +country : Currency -> Maybe Country +country currency = + case currency of + AUD -> + Just AUS + + USD -> + Just USA + + _ -> + let + countries : List Country + countries = + currencyCountries + |> List.filterMap + (\( cy, co ) -> + if cy == currency then + Just co + + else + Nothing + ) + in + case countries of + [ countryCode ] -> + Just countryCode + + _ -> + Nothing diff --git a/src/Morphir/Sample/Reg/LCR/Basics.elm b/src/Morphir/Sample/Reg/LCR/Basics.elm new file mode 100644 index 0000000..3d18988 --- /dev/null +++ b/src/Morphir/Sample/Reg/LCR/Basics.elm @@ -0,0 +1,75 @@ +{- + Copyright 2020 Morgan Stanley + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +-} + + +module Morphir.Sample.Reg.LCR.Basics exposing + ( AssetCategoryCodes(..) + , Balance + , Currency + , Entity + , Fed5GCode + , InsuranceType(..) + , Ratio + ) + +{-| Asset categories apply to the flows and are specified in the spec. +There are a bunch of them, but we're only concerned with these three in this example . +-} + + +type AssetCategoryCodes + = Level1Assets + | Level2aAssets + | Level2bAssets + + +{-| Insurance type as specified in the spec. +There are a bunch of them, but we're only concerned with FDIC in this example . +-} +type InsuranceType + = FDIC + | Uninsured + + +type alias Entity = + String + + +type alias Currency = + String + + +type alias Balance = + Float + + +type alias Ratio = + Float + + +type alias Fed5GCode = + String + + +{-| A currency isn't always itself in 5G. +-} +fed5GCurrency : Currency -> Currency +fed5GCurrency currency = + if List.member currency [ "USD", "EUR", "GBP", "CHF", "JPY", "AUD", "CAD" ] then + currency + + else + "USD" diff --git a/src/Morphir/Sample/LCR/Calculations.elm b/src/Morphir/Sample/Reg/LCR/Calculations.elm similarity index 53% rename from src/Morphir/Sample/LCR/Calculations.elm rename to src/Morphir/Sample/Reg/LCR/Calculations.elm index 51effa6..40afb62 100644 --- a/src/Morphir/Sample/LCR/Calculations.elm +++ b/src/Morphir/Sample/Reg/LCR/Calculations.elm @@ -1,66 +1,70 @@ {- -Copyright 2020 Morgan Stanley + Copyright 2020 Morgan Stanley -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 + 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 + http://www.apache.org/licenses/LICENSE-2.0 -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. -} -module Morphir.Sample.LCR.Calculations exposing (..) +module Morphir.Sample.Reg.LCR.Calculations exposing (..) import Morphir.SDK.LocalDate exposing (LocalDate, addDays) -import Morphir.Sample.LCR.Basics exposing (..) -import Morphir.Sample.LCR.Flows exposing (..) -import Morphir.Sample.LCR.Counterparty exposing (..) -import Morphir.Sample.LCR.Inflows as Inflows -import Morphir.Sample.LCR.Outflows as Outflows -import Morphir.Sample.LCR.Product exposing (..) -import Morphir.Sample.LCR.Rules as Rules +import Morphir.Sample.Reg.LCR.Basics exposing (..) +import Morphir.Sample.Reg.LCR.Counterparty exposing (..) +import Morphir.Sample.Reg.LCR.Flows exposing (..) +import Morphir.Sample.Reg.LCR.Inflows as Inflows +import Morphir.Sample.Reg.LCR.Outflows as Outflows +import Morphir.Sample.Reg.LCR.Product exposing (..) +import Morphir.Sample.Reg.LCR.Rules as Rules + + -- Forumulas from the OCC: https://www.occ.gov/news-issuances/bulletins/2014/bulletin-2014-51.html -- https://www.occ.gov/topics/supervision-and-examination/capital-markets/balance-sheet-management/liquidity/Basel-III-LCR-Formulas.pdf -- https://www.govinfo.gov/content/pkg/FR-2014-10-10/pdf/2014-22520.pdf (page 61477) -- {-| This module is broken up into the same structure as the example formulas in the referenced PDF. -} +-- {-| Here's the LCR as it's commonly known. -} --- {-| Here's the LCR as it's commonly known. -} lcr : (Flow -> Counterparty) -> (ProductId -> Product) -> LocalDate -> (LocalDate -> List Flow) -> Balance -> Ratio -lcr toCounterparty product t flowsForDate reserveBalanceRequirement = +lcr toCounterparty product t flowsForDate reserveBalanceRequirement = let hqla : Balance - hqla = hqlaAmount product (flowsForDate t) reserveBalanceRequirement + hqla = + hqlaAmount product (flowsForDate t) reserveBalanceRequirement totalNetCashOutflow : Balance - totalNetCashOutflow = totalNetCashOutflowAmount toCounterparty t flowsForDate + totalNetCashOutflow = + totalNetCashOutflowAmount toCounterparty t flowsForDate in - hqla / totalNetCashOutflow + hqla / totalNetCashOutflow -{-| HQLA Amount is the LCR numerator. It has several components, which are specified as nested functions. -} +{-| HQLA Amount is the LCR numerator. It has several components, which are specified as nested functions. +-} hqlaAmount : (ProductId -> Product) -> List Flow -> Balance -> Balance hqlaAmount product t0Flows reserveBalanceRequirement = let level1LiquidAssetsThatAreEligibleHQLA : Balance level1LiquidAssetsThatAreEligibleHQLA = t0Flows - |> List.filter (\flow -> flow.assetType == Level1Assets && isHQLA product flow) + |> List.filter (\flow -> flow.assetType == Level1Assets && isHQLA product flow) |> List.map .amount |> List.sum level1LiquidAssetAmount : Balance - level1LiquidAssetAmount = + level1LiquidAssetAmount = level1LiquidAssetsThatAreEligibleHQLA - reserveBalanceRequirement - level2aLiquidAssetsThatAreEligibleHQLA : Balance level2aLiquidAssetsThatAreEligibleHQLA = t0Flows @@ -69,175 +73,203 @@ hqlaAmount product t0Flows reserveBalanceRequirement = |> List.sum level2aLiquidAssetAmount : Balance - level2aLiquidAssetAmount = + level2aLiquidAssetAmount = 0.85 * level2aLiquidAssetsThatAreEligibleHQLA - level2bLiquidAssetsThatAreEligibleHQLA : Balance level2bLiquidAssetsThatAreEligibleHQLA = - t0Flows - |> List.filter (\flow -> flow.assetType == Level2bAssets && isHQLA product flow) + t0Flows + |> List.filter (\flow -> flow.assetType == Level2bAssets && isHQLA product flow) |> List.map .amount |> List.sum level2bLiquidAssetAmount : Balance - level2bLiquidAssetAmount = - 0.50 * level2bLiquidAssetsThatAreEligibleHQLA - + level2bLiquidAssetAmount = + 0.5 * level2bLiquidAssetsThatAreEligibleHQLA unadjustedExcessHQLAAmount : Balance - unadjustedExcessHQLAAmount = + unadjustedExcessHQLAAmount = let level2CapExcessAmount : Balance - level2CapExcessAmount = + level2CapExcessAmount = max (level2aLiquidAssetAmount + level2bLiquidAssetAmount - 0.6667 * level1LiquidAssetAmount) 0.0 level2bCapExcessAmount : Balance - level2bCapExcessAmount = + level2bCapExcessAmount = max (level2bLiquidAssetAmount - level2CapExcessAmount - 0.1765 * (level1LiquidAssetAmount + level2aLiquidAssetAmount)) 0.0 in level2CapExcessAmount + level2bCapExcessAmount - adjustedExcessHQLAAmount : Balance - adjustedExcessHQLAAmount = + adjustedExcessHQLAAmount = let adjustedLevel1LiquidAssetAmount : Balance - adjustedLevel1LiquidAssetAmount = level1LiquidAssetAmount + adjustedLevel1LiquidAssetAmount = + level1LiquidAssetAmount adjustedlevel2aLiquidAssetAmount : Balance - adjustedlevel2aLiquidAssetAmount = level2aLiquidAssetAmount * 0.85 + adjustedlevel2aLiquidAssetAmount = + level2aLiquidAssetAmount * 0.85 adjustedlevel2bLiquidAssetAmount : Balance - adjustedlevel2bLiquidAssetAmount = level2bLiquidAssetAmount * 0.50 + adjustedlevel2bLiquidAssetAmount = + level2bLiquidAssetAmount * 0.5 adjustedLevel2CapExcessAmount : Balance - adjustedLevel2CapExcessAmount = + adjustedLevel2CapExcessAmount = max (adjustedlevel2aLiquidAssetAmount + adjustedlevel2bLiquidAssetAmount - 0.6667 * adjustedLevel1LiquidAssetAmount) 0.0 adjustedlevel2bCapExcessAmount : Balance adjustedlevel2bCapExcessAmount = max (adjustedlevel2bLiquidAssetAmount - adjustedLevel2CapExcessAmount - 0.1765 * (adjustedLevel1LiquidAssetAmount + adjustedlevel2aLiquidAssetAmount)) 0.0 in - adjustedLevel2CapExcessAmount + adjustedlevel2bCapExcessAmount + adjustedLevel2CapExcessAmount + adjustedlevel2bCapExcessAmount in - level1LiquidAssetAmount + level2aLiquidAssetAmount + level2bLiquidAssetAmount - (max unadjustedExcessHQLAAmount adjustedExcessHQLAAmount) + level1LiquidAssetAmount + level2aLiquidAssetAmount + level2bLiquidAssetAmount - max unadjustedExcessHQLAAmount adjustedExcessHQLAAmount -{-| Total Net Cash Outflow Amount is the LCR denominator. It has several components, which are specified as nested functions. - The function takes a function to lookup the counterparty for a flow. - the LocalDate (t) from which to calculate the remaining days until the flows maturity - and a function takes a function to lookup flows for a given date, +{-| Total Net Cash Outflow Amount is the LCR denominator. It has several components, which are specified as nested functions. +The function takes a function to lookup the counterparty for a flow. +the LocalDate (t) from which to calculate the remaining days until the flows maturity +and a function takes a function to lookup flows for a given date, -} -totalNetCashOutflowAmount : (Flow -> Counterparty) -> LocalDate -> (LocalDate -> List Flow) -> Balance +totalNetCashOutflowAmount : (Flow -> Counterparty) -> LocalDate -> (LocalDate -> List Flow) -> Balance totalNetCashOutflowAmount toCounterparty t flowsForDate = let -- List of the next 30 days from t dates : List LocalDate - dates = + dates = List.range 1 30 |> List.map (\i -> addDays i t) -- Aggregating helpers spanDates : (Flow -> Bool) -> List Balance - spanDates = \filter -> - dates - |> List.map flowsForDate - |> List.map (\flows -> flows |> aggregateDaily filter) + spanDates = + \filter -> + dates + |> List.map flowsForDate + |> List.map (\flows -> flows |> aggregateDaily filter) aggregateSpan : (Flow -> Bool) -> Balance - aggregateSpan = \filter -> - spanDates filter |> List.sum + aggregateSpan = + \filter -> + spanDates filter |> List.sum aggregateDaily : (Flow -> Bool) -> List Flow -> Balance - aggregateDaily = \filter flows -> - flows - |> List.filter filter - |> List.map .amount - |> List.sum + aggregateDaily = + \filter flows -> + flows + |> List.filter filter + |> List.map .amount + |> List.sum -- Non maturity nonMaturityOutflowRules : LocalDate -> List (Rules.Rule Flow) - nonMaturityOutflowRules = \date -> - Rules.findAll - [ "32(a)(1)", "32(a)(2)", "32(a)(3)", "32(a)(4)", "32(a)(5)" - , "32(b)", "32(c)", "32(d)", "32(e)", "32(f)", "32(i)" - ] - (Outflows.outflowRules toCounterparty date) - - nonMaturityInflowRules : LocalDate -> List (Rules.Rule Flow) - nonMaturityInflowRules = \date -> - Rules.findAll - [ "33(b)", "33(g)" ] - (Inflows.inflowRules toCounterparty date) + nonMaturityOutflowRules = + \date -> + Rules.findAll + [ "32(a)(1)" + , "32(a)(2)" + , "32(a)(3)" + , "32(a)(4)" + , "32(a)(5)" + , "32(b)" + , "32(c)" + , "32(d)" + , "32(e)" + , "32(f)" + , "32(i)" + ] + (Outflows.outflowRules toCounterparty date) + nonMaturityInflowRules : LocalDate -> List (Rules.Rule Flow) + nonMaturityInflowRules = + \date -> + Rules.findAll + [ "33(b)", "33(g)" ] + (Inflows.inflowRules toCounterparty date) nonMaturityOutflowAmount : Balance nonMaturityOutflowAmount = aggregateSpan (Rules.isAnyApplicable (nonMaturityOutflowRules t)) - + nonMaturityInflowAmount : Balance - nonMaturityInflowAmount = + nonMaturityInflowAmount = aggregateSpan (Rules.isAnyApplicable (nonMaturityInflowRules t)) -- Maturity maturityMismatchOutflowRules : LocalDate -> List (Rules.Rule Flow) - maturityMismatchOutflowRules = \date -> - Rules.findAll - ["32(g)(1)", "32(g)(2)", "32(g)(3)", "32(g)(4)", "32(g)(5)", "32(g)(6)", "32(g)(7)", "32(g)(8)", "32(g)(9)" - ,"32(h)(1)", "32(h)(2)", "32(h)(5)", "32(j)", "32(k)", "32(l)" - ] (Outflows.outflowRules toCounterparty date) + maturityMismatchOutflowRules = + \date -> + Rules.findAll + [ "32(g)(1)" + , "32(g)(2)" + , "32(g)(3)" + , "32(g)(4)" + , "32(g)(5)" + , "32(g)(6)" + , "32(g)(7)" + , "32(g)(8)" + , "32(g)(9)" + , "32(h)(1)" + , "32(h)(2)" + , "32(h)(5)" + , "32(j)" + , "32(k)" + , "32(l)" + ] + (Outflows.outflowRules toCounterparty date) maturityOutflows : List Balance - maturityOutflows = + maturityOutflows = spanDates (Rules.isAnyApplicable (maturityMismatchOutflowRules t)) maturityOutflowAmount : Balance - maturityOutflowAmount = + maturityOutflowAmount = maturityOutflows |> List.sum maturityMismatchInflowRules : LocalDate -> List (Rules.Rule Flow) - maturityMismatchInflowRules = \date -> - Rules.findAll [ "33(c)", "33(d)", "33(e)", "33(f)" ] (Inflows.inflowRules toCounterparty date) + maturityMismatchInflowRules = + \date -> + Rules.findAll [ "33(c)", "33(d)", "33(e)", "33(f)" ] (Inflows.inflowRules toCounterparty date) maturityInflows : List Balance - maturityInflows = + maturityInflows = spanDates (Rules.isAnyApplicable (maturityMismatchInflowRules t)) maturityInflowAmount : Balance - maturityInflowAmount = + maturityInflowAmount = maturityInflows |> List.sum -- Aggregate it all together aggregatedOutflowAmount : Balance - aggregatedOutflowAmount = + aggregatedOutflowAmount = nonMaturityOutflowAmount + maturityOutflowAmount - + aggregatedInflowAmount : Balance - aggregatedInflowAmount = + aggregatedInflowAmount = nonMaturityInflowAmount + maturityInflowAmount - + -- This add-on was added later maturityMismatchAddOn : Balance - maturityMismatchAddOn = + maturityMismatchAddOn = let netCumulativeMaturityOutflowAmount : Balance - netCumulativeMaturityOutflowAmount = - (List.map2 Tuple.pair (accumulate 0 maturityOutflows) (accumulate 0 maturityInflows)) - |> List.map (\(o, i) -> o - i) + netCumulativeMaturityOutflowAmount = + List.map2 Tuple.pair (accumulate 0 maturityOutflows) (accumulate 0 maturityInflows) + |> List.map (\( o, i ) -> o - i) |> List.maximum |> Maybe.withDefault 0 - netDay30CumulativeMaturityOutflowAmount : Balance - netDay30CumulativeMaturityOutflowAmount = - (List.sum maturityOutflows) - (List.sum maturityInflows) - + netDay30CumulativeMaturityOutflowAmount = + List.sum maturityOutflows - List.sum maturityInflows + maxNext30DaysOfCumulativeMaturityOutflowAmountFloor : Balance - maxNext30DaysOfCumulativeMaturityOutflowAmountFloor = + maxNext30DaysOfCumulativeMaturityOutflowAmountFloor = max 0.0 netCumulativeMaturityOutflowAmount - + netDay30CumulativeMaturityOutflowAmountFloor : Balance - netDay30CumulativeMaturityOutflowAmountFloor = + netDay30CumulativeMaturityOutflowAmountFloor = max 0.0 netDay30CumulativeMaturityOutflowAmount in maxNext30DaysOfCumulativeMaturityOutflowAmountFloor - netDay30CumulativeMaturityOutflowAmountFloor @@ -249,23 +281,24 @@ totalNetCashOutflowAmount toCounterparty t flowsForDate = aggregatedOutflowAmount - cappedInflows + maturityMismatchAddOn - isMember : Maybe a -> List a -> Bool isMember ruleM rules = ruleM - |> Maybe.map (\r -> List.member r rules) - |> Maybe.withDefault False + |> Maybe.map (\r -> List.member r rules) + |> Maybe.withDefault False + isHQLA : (ProductId -> Product) -> Flow -> Bool isHQLA product flow = - (product flow.productId) |> .isHQLA + product flow.productId |> .isHQLA -{-| Helper function to accumulated steps of a sum across a list. This is used in calculating the maturity mismatch add-on. -} +{-| Helper function to accumulated steps of a sum across a list. This is used in calculating the maturity mismatch add-on. +-} accumulate : number -> List number -> List number accumulate starter list = - let - (sum, acc) = - List.foldl ( \y (x,xs) -> (x+y, (x+y) :: xs)) (starter, []) list + let + ( sum, acc ) = + List.foldl (\y ( x, xs ) -> ( x + y, (x + y) :: xs )) ( starter, [] ) list in - List.reverse acc + List.reverse acc diff --git a/src/Morphir/Sample/Reg/LCR/Counterparty.elm b/src/Morphir/Sample/Reg/LCR/Counterparty.elm new file mode 100644 index 0000000..ffe74c9 --- /dev/null +++ b/src/Morphir/Sample/Reg/LCR/Counterparty.elm @@ -0,0 +1,45 @@ +{- + Copyright 2020 Morgan Stanley + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +-} + + +module Morphir.Sample.Reg.LCR.Counterparty exposing (..) + + +type alias CounterpartyId = + String + + +type CounterpartyType + = Bank + | Retail + | SmallBusiness + | NonFinancialCorporate + | Sovereign + | CentralBank + | GovernmentSponsoredEntity + | PublicSectorEntity + | MultilateralDevelopmentBank + | OtherSupranational + | SupervisedNonBankFinancialEntity + | DebtIssuingSpecialPurposeEntity + | OtherFinancialEntity + | Other + + +type alias Counterparty = + { counterpartyId : CounterpartyId + , counterpartyType : CounterpartyType + } diff --git a/src/Morphir/Sample/LCR/Flows.elm b/src/Morphir/Sample/Reg/LCR/Flows.elm similarity index 81% rename from src/Morphir/Sample/LCR/Flows.elm rename to src/Morphir/Sample/Reg/LCR/Flows.elm index ac99831..ed40baf 100644 --- a/src/Morphir/Sample/LCR/Flows.elm +++ b/src/Morphir/Sample/Reg/LCR/Flows.elm @@ -15,12 +15,12 @@ -} -module Morphir.Sample.LCR.Flows exposing (Amount, BusinessDate, Flow, ReportingEntity) +module Morphir.Sample.Reg.LCR.Flows exposing (Amount, BusinessDate, Flow, ReportingEntity) import Morphir.SDK.LocalDate exposing (LocalDate) -import Morphir.Sample.LCR.Basics exposing (..) -import Morphir.Sample.LCR.Counterparty exposing (CounterpartyId) -import Morphir.Sample.LCR.Product exposing (ProductId) +import Morphir.Sample.Reg.LCR.Basics exposing (..) +import Morphir.Sample.Reg.LCR.Counterparty exposing (CounterpartyId) +import Morphir.Sample.Reg.LCR.Product exposing (ProductId) type alias BusinessDate = diff --git a/src/Morphir/Sample/Reg/LCR/Inflows.elm b/src/Morphir/Sample/Reg/LCR/Inflows.elm new file mode 100644 index 0000000..0b23592 --- /dev/null +++ b/src/Morphir/Sample/Reg/LCR/Inflows.elm @@ -0,0 +1,198 @@ +{- + Copyright 2020 Morgan Stanley + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +-} + + +module Morphir.Sample.Reg.LCR.Inflows exposing (..) + +import Morphir.SDK.LocalDate exposing (LocalDate) +import Morphir.Sample.Reg.LCR.Basics exposing (..) +import Morphir.Sample.Reg.LCR.Counterparty exposing (..) +import Morphir.Sample.Reg.LCR.Flows exposing (..) +import Morphir.Sample.Reg.LCR.MaturityBucket exposing (..) +import Morphir.Sample.Reg.LCR.Rules exposing (..) + + +{-| The list of all rules pertaining to inflows. +-} +inflowRules : (Flow -> Counterparty) -> LocalDate -> List (Rule Flow) +inflowRules toCounterparty t = + [ Rule "20(a)(1)" 1.0 (isRule20a1 t) + , Rule "20(a)(3)-(6)" 1.0 isRule20a3dash6 + , Rule "22(b)(3)L1" -1.0 isRule22b3L2a + , Rule "22(b)(3)L2a" -0.85 isRule22b3L2a + , Rule "22(b)(3)L2b" -0.5 isRule22b3L2b + , Rule "20(b)" 0.85 isRule20b + , Rule "20(c)" 0.5 isRule20c + , Rule "33(b)" 1.0 isRule33b + , Rule "33(c)" 0.5 (isRule33c toCounterparty t) + , Rule "33(d)(1)" 1.0 (isRule33d1 toCounterparty) + , Rule "33(d)(2)" 1.0 (isRule33d2 toCounterparty) + , Rule "33(e)" 1.0 isRule33e + , Rule "33(g)" 1.0 isRule33g + , Rule "33(h)" 0.0 isRule33h + ] + + + +-- Rule logic is below for (eventual) unit testability + + +isRule20a1 : LocalDate -> Flow -> Bool +isRule20a1 t flow = + List.member flow.fed5GCode [ "I.A.3.1", "I.A.3.2", "I.A.3.3", "I.A.3.4", "I.A.3.5", "I.A.3.6", "I.A.3.7", "I.A.3.8" ] + && daysToMaturity t flow.maturityDate + == 0 + + +isRule20a3dash6 : Flow -> Bool +isRule20a3dash6 flow = + (List.member flow.fed5GCode [ "I.A.1", "I.A.2" ] + && flow.collateralClass + == Level1Assets + && flow.isTreasuryControl + ) + || (List.member flow.fed5GCode [ "I.S.1", "I.S.2", "I.S.4" ] + && flow.collateralClass + == Level1Assets + && flow.isTreasuryControl + && flow.isUnencumbered + ) + + +isRule22b3L2a : Flow -> Bool +isRule22b3L2a flow = + flow.fed5GCode == "S.I.19" && flow.collateralClass == Level2aAssets + + +isRule22b3L2b : Flow -> Bool +isRule22b3L2b flow = + flow.fed5GCode == "S.I.19" && flow.collateralClass == Level2bAssets + + +isRule20b : Flow -> Bool +isRule20b flow = + (List.member flow.fed5GCode [ "I.A.1", "I.A.2" ] + && flow.collateralClass + == Level2aAssets + && flow.isTreasuryControl + ) + || (List.member flow.fed5GCode [ "I.S.1", "I.S.2", "I.S.4" ] + && flow.collateralClass + == Level2aAssets + && flow.isTreasuryControl + && flow.isUnencumbered + ) + + +isRule20c : Flow -> Bool +isRule20c flow = + (List.member flow.fed5GCode [ "I.A.1", "I.A.2" ] + && flow.collateralClass + == Level2bAssets + && flow.isTreasuryControl + ) + || (List.member flow.fed5GCode [ "I.S.1", "I.S.2", "I.S.4" ] + && flow.collateralClass + == Level2bAssets + && flow.isTreasuryControl + && flow.isUnencumbered + ) + + +isRule33b : { a | fed5GCode : String } -> Bool +isRule33b cashflow = + cashflow.fed5GCode == "1.O.7" + + +isRule33c : (Flow -> Counterparty) -> LocalDate -> Flow -> Bool +isRule33c toCounterparty t flow = + let + cpty : Counterparty + cpty = + toCounterparty flow + + days : Int + days = + daysToMaturity t flow.maturityDate + in + (List.member flow.fed5GCode [ "I.U.5", "I.U.6" ] + && List.member cpty.counterpartyType [ Retail, SmallBusiness ] + && (0 < days && days <= 30) + ) + || (List.member flow.fed5GCode [ "I.S.1", "I.S.2", "I.S.4", "I.S.5", "I.S.6", "I.S.7" ] + && cpty.counterpartyType + == Retail + && (0 < days && days <= 30) + ) + + +isRule33d1 : (Flow -> Counterparty) -> Flow -> Bool +isRule33d1 toCounterparty flow = + let + cpty : Counterparty + cpty = + toCounterparty flow + in + List.member flow.fed5GCode [ "I.U.1", "I.U.2", "I.U.4" ] + || (List.member flow.fed5GCode [ "I.U.5", "I.U.6" ] + && List.member cpty.counterpartyType + [ CentralBank + , Bank + , SupervisedNonBankFinancialEntity + , DebtIssuingSpecialPurposeEntity + , OtherFinancialEntity + ] + ) + + +isRule33d2 : (Flow -> Counterparty) -> Flow -> Bool +isRule33d2 toCounterparty flow = + let + cpty : Counterparty + cpty = + toCounterparty flow + in + List.member flow.fed5GCode [ "I.U.5", "I.U.6" ] + && List.member cpty.counterpartyType + [ NonFinancialCorporate + , Sovereign + , GovernmentSponsoredEntity + , PublicSectorEntity + , MultilateralDevelopmentBank + , OtherSupranational + , Other + ] + + +isRule33e : Flow -> Bool +isRule33e cashflow = + cashflow.fed5GCode == "I.O.6" || cashflow.fed5GCode == "I.O.8" + + + +-- isRule33f : a -> b +-- isRule33f flow = +-- Debug.todo "Rule 33(f) is actually a bunch of rules. Too many to do for now..." + + +isRule33g : { a | fed5GCode : String, isTreasuryControl : Bool } -> Bool +isRule33g cashflow = + cashflow.fed5GCode == "I.O.5" && cashflow.isTreasuryControl + + +isRule33h : { a | fed5GCode : String, isTreasuryControl : Bool } -> Bool +isRule33h cashflow = + cashflow.fed5GCode == "I.O.9" && cashflow.isTreasuryControl diff --git a/src/Morphir/Sample/LCR/MaturityBucket.elm b/src/Morphir/Sample/Reg/LCR/MaturityBucket.elm similarity index 62% rename from src/Morphir/Sample/LCR/MaturityBucket.elm rename to src/Morphir/Sample/Reg/LCR/MaturityBucket.elm index 9d7d0ab..28f214c 100644 --- a/src/Morphir/Sample/LCR/MaturityBucket.elm +++ b/src/Morphir/Sample/Reg/LCR/MaturityBucket.elm @@ -1,21 +1,21 @@ {- -Copyright 2020 Morgan Stanley + Copyright 2020 Morgan Stanley -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 + 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 + http://www.apache.org/licenses/LICENSE-2.0 -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. -} -module Morphir.Sample.LCR.MaturityBucket exposing (..) +module Morphir.Sample.Reg.LCR.MaturityBucket exposing (..) -- See: https://www.federalreserve.gov/reportforms/forms/FR_2052a20190331_f.pdf -- Appendix IV-a, Maturity Time Bucket Value List on page 75 @@ -23,7 +23,7 @@ module Morphir.Sample.LCR.MaturityBucket exposing (..) import Morphir.SDK.LocalDate exposing (LocalDate, diffInDays, diffInYears) -type MaturityBucket +type MaturityBucket = Daily Int | DayRange Int Int | DayYear Int Int @@ -41,43 +41,60 @@ yearsToMaturity fromDate maturityDate = diffInYears maturityDate fromDate -{-| The Fed spec on maturity buckets -} +{-| The Fed spec on maturity buckets +-} bucket : LocalDate -> LocalDate -> MaturityBucket bucket fromDate maturityDate = let days : Int - days = daysToMaturity fromDate maturityDate - + days = + daysToMaturity fromDate maturityDate + years : Int - years = yearsToMaturity maturityDate fromDate - in + years = + yearsToMaturity maturityDate fromDate + in if days <= 60 then Daily days + else if days <= 67 then DayRange 61 67 + else if days <= 74 then DayRange 68 74 + else if days <= 82 then DayRange 75 82 + else if days <= 90 then DayRange 83 90 + else if days <= 120 then DayRange 92 120 + else if days <= 150 then DayRange 121 150 + else if days <= 180 then DayRange 151 180 + else if days <= 270 then DayYear 181 270 + else if years <= 1 then DayYear 271 1 + else if years <= 2 then Yearly 1 2 + else if years <= 3 then Yearly 2 3 + else if years <= 4 then Yearly 3 4 + else if years <= 5 then Yearly 4 5 - else + + else Residual diff --git a/src/Morphir/Sample/LCR/Outflows.elm b/src/Morphir/Sample/Reg/LCR/Outflows.elm similarity index 52% rename from src/Morphir/Sample/LCR/Outflows.elm rename to src/Morphir/Sample/Reg/LCR/Outflows.elm index c939e9b..3d8b054 100644 --- a/src/Morphir/Sample/LCR/Outflows.elm +++ b/src/Morphir/Sample/Reg/LCR/Outflows.elm @@ -1,35 +1,36 @@ {- -Copyright 2020 Morgan Stanley + Copyright 2020 Morgan Stanley -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 + 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 + http://www.apache.org/licenses/LICENSE-2.0 -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. -} -module Morphir.Sample.LCR.Outflows exposing (..) +module Morphir.Sample.Reg.LCR.Outflows exposing (..) -- import Dict exposing (Dict) -import Morphir.SDK.LocalDate exposing (LocalDate) -import Morphir.Sample.LCR.Basics exposing (..) -import Morphir.Sample.LCR.Flows exposing (..) -import Morphir.Sample.LCR.Counterparty exposing (..) -import Morphir.Sample.LCR.MaturityBucket exposing (..) -import Morphir.Sample.LCR.Rules exposing (..) +import Morphir.SDK.LocalDate exposing (LocalDate) +import Morphir.Sample.Reg.LCR.Basics exposing (..) +import Morphir.Sample.Reg.LCR.Counterparty exposing (..) +import Morphir.Sample.Reg.LCR.Flows exposing (..) +import Morphir.Sample.Reg.LCR.MaturityBucket exposing (..) +import Morphir.Sample.Reg.LCR.Rules exposing (..) -{-| The list of all rules pertaining to outlfows. -} -outflowRules : (Flow -> Counterparty) -> LocalDate -> List (Rule Flow) -outflowRules counterparty t = +{-| The list of all rules pertaining to outlfows. +-} +outflowRules : (Flow -> Counterparty) -> LocalDate -> List (Rule Flow) +outflowRules counterparty t = [ Rule "32(a)(1)" 0.03 isRule32a1 , Rule "32(a)(2)" 0.1 (isRule32a2 counterparty) , Rule "32(a)(3)" 0.2 (isRule32a3 counterparty) @@ -56,190 +57,236 @@ outflowRules counterparty t = , Rule "33(f)(1)(iv)" 0.15 (isRule33f1iv t) ] + + -- Rules broken out for (eventual) unit testing + isRule32a1 : Flow -> Bool isRule32a1 flow = - List.member flow.fed5GCode ["O.D.1", "O.D.2"] - && flow.insured == FDIC + List.member flow.fed5GCode [ "O.D.1", "O.D.2" ] + && flow.insured + == FDIC isRule32a2 : (Flow -> Counterparty) -> Flow -> Bool isRule32a2 counterparty flow = let cpty : Counterparty - cpty = counterparty flow + cpty = + counterparty flow in - ( - List.member flow.fed5GCode ["O.D.1", "O.D.2"] - && List.member cpty.counterpartyType [Retail, SmallBusiness] - && flow.insured /= FDIC - ) - || - ( - flow.fed5GCode == "O.D.3" - && List.member cpty.counterpartyType [Retail, SmallBusiness] + (List.member flow.fed5GCode [ "O.D.1", "O.D.2" ] + && List.member cpty.counterpartyType [ Retail, SmallBusiness ] + && flow.insured + /= FDIC ) + || (flow.fed5GCode + == "O.D.3" + && List.member cpty.counterpartyType [ Retail, SmallBusiness ] + ) isRule32a3 : (Flow -> Counterparty) -> Flow -> Bool isRule32a3 counterparty flow = let cpty : Counterparty - cpty = counterparty flow + cpty = + counterparty flow in - flow.fed5GCode == "O.D.12" - && List.member cpty.counterpartyType [Retail, SmallBusiness] - && flow.insured == FDIC + flow.fed5GCode + == "O.D.12" + && List.member cpty.counterpartyType [ Retail, SmallBusiness ] + && flow.insured + == FDIC isRule32a4 : (Flow -> Counterparty) -> Flow -> Bool isRule32a4 counterparty flow = let cpty : Counterparty - cpty = counterparty flow + cpty = + counterparty flow in - flow.fed5GCode == "O.D.12" - && List.member cpty.counterpartyType [Retail, SmallBusiness] - && flow.insured /= FDIC + flow.fed5GCode + == "O.D.12" + && List.member cpty.counterpartyType [ Retail, SmallBusiness ] + && flow.insured + /= FDIC isRule32a5 : (Flow -> Counterparty) -> Flow -> Bool isRule32a5 counterparty flow = let cpty : Counterparty - cpty = counterparty flow + cpty = + counterparty flow in - List.member flow.fed5GCode ["O.D.13", "O.W.18"] - && List.member cpty.counterpartyType [Retail, SmallBusiness] + List.member flow.fed5GCode [ "O.D.13", "O.W.18" ] + && List.member cpty.counterpartyType [ Retail, SmallBusiness ] isRule32b : Flow -> Bool -isRule32b flow = - List.member flow.fed5GCode ["O.W.1", "O.W.2", "O.W.4", "O.O.21"] +isRule32b flow = + List.member flow.fed5GCode [ "O.W.1", "O.W.2", "O.W.4", "O.O.21" ] isRule32c : Flow -> Bool -isRule32c flow = - flow.fed5GCode == "O.O.20" +isRule32c flow = + flow.fed5GCode == "O.O.20" isRule32d : Flow -> Bool -isRule32d flow = - flow.fed5GCode == "O.O.6" +isRule32d flow = + flow.fed5GCode == "O.O.6" isRule32e : Flow -> Bool -isRule32e flow = - flow.fed5GCode == "O.O.6" +isRule32e flow = + flow.fed5GCode == "O.O.6" isRule32f : Flow -> Bool -isRule32f flow = - flow.fed5GCode == "O.O.6" +isRule32f flow = + flow.fed5GCode == "O.O.6" isRule32g1 : (Flow -> Counterparty) -> LocalDate -> Flow -> Bool -isRule32g1 counterparty t flow = +isRule32g1 counterparty t flow = let cpty : Counterparty - cpty = counterparty flow + cpty = + counterparty flow remainingDays : Int - remainingDays = daysToMaturity t flow.maturityDate + remainingDays = + daysToMaturity t flow.maturityDate in - flow.fed5GCode == "O.D.7" - && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) + flow.fed5GCode + == "O.D.7" + && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) && (0 < remainingDays && remainingDays <= 30) + isRule32g2 : (Flow -> Counterparty) -> LocalDate -> Flow -> Bool -isRule32g2 counterparty t flow = +isRule32g2 counterparty t flow = let cpty : Counterparty - cpty = counterparty flow + cpty = + counterparty flow in - flow.fed5GCode == "O.D.7" - && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) - && daysToMaturity t flow.maturityDate <= 30 + flow.fed5GCode + == "O.D.7" + && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) + && daysToMaturity t flow.maturityDate + <= 30 + isRule32g3 : (Flow -> Counterparty) -> LocalDate -> Flow -> Bool -isRule32g3 counterparty t flow = +isRule32g3 counterparty t flow = let cpty : Counterparty - cpty = counterparty flow + cpty = + counterparty flow in - flow.fed5GCode == "O.D.7" - && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) - && daysToMaturity t flow.maturityDate == 0 - && flow.insured == FDIC + flow.fed5GCode + == "O.D.7" + && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) + && daysToMaturity t flow.maturityDate + == 0 + && flow.insured + == FDIC + isRule32g4 : (Flow -> Counterparty) -> LocalDate -> Flow -> Bool -isRule32g4 counterparty t flow = +isRule32g4 counterparty t flow = let cpty : Counterparty - cpty = counterparty flow + cpty = + counterparty flow in - flow.fed5GCode == "O.D.7" - && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) - && daysToMaturity t flow.maturityDate == 0 - && flow.insured /= FDIC + flow.fed5GCode + == "O.D.7" + && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) + && daysToMaturity t flow.maturityDate + == 0 + && flow.insured + /= FDIC + isRule32g5 : (Flow -> Counterparty) -> Flow -> Bool -isRule32g5 counterparty flow = +isRule32g5 counterparty flow = let cpty : Counterparty - cpty = counterparty flow + cpty = + counterparty flow in - flow.fed5GCode == "O.D.11" - && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) - && flow.insured == FDIC + flow.fed5GCode + == "O.D.11" + && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) + && flow.insured + == FDIC + isRule32g6 : (Flow -> Counterparty) -> Flow -> Bool -isRule32g6 counterparty flow = +isRule32g6 counterparty flow = let cpty : Counterparty - cpty = counterparty flow + cpty = + counterparty flow in - flow.fed5GCode == "O.D.11" - && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) - && flow.insured /= FDIC + flow.fed5GCode + == "O.D.11" + && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) + && flow.insured + /= FDIC + isRule32g7 : (Flow -> Counterparty) -> Flow -> Bool -isRule32g7 counterparty flow = +isRule32g7 counterparty flow = let cpty : Counterparty - cpty = counterparty flow + cpty = + counterparty flow in - flow.fed5GCode == "O.D.8" - && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) - && flow.insured == FDIC + flow.fed5GCode + == "O.D.8" + && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) + && flow.insured + == FDIC + isRule32g8 : (Flow -> Counterparty) -> Flow -> Bool -isRule32g8 counterparty flow = +isRule32g8 counterparty flow = let cpty : Counterparty - cpty = counterparty flow + cpty = + counterparty flow in - flow.fed5GCode == "O.D.9" - && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) - && flow.insured == FDIC + flow.fed5GCode + == "O.D.9" + && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) + && flow.insured + == FDIC + isRule32g9 : (Flow -> Counterparty) -> Flow -> Bool -isRule32g9 counterparty flow = +isRule32g9 counterparty flow = let cpty : Counterparty - cpty = counterparty flow + cpty = + counterparty flow in - (flow.fed5GCode == "O.D.8" || flow.fed5GCode == "O.D.9") - && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) - && flow.insured /= FDIC + (flow.fed5GCode == "O.D.8" || flow.fed5GCode == "O.D.9") + && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) + && flow.insured + /= FDIC + -- isRule32h1 : Flow -> Bool -- isRule32h1 flow = -- Debug.todo "Too many 32(h) rules to do..." - - -- isRule32h2 : Flow -> Bool -- isRule32h2 flow = -- Debug.todo "Too many 32(h) rules to do..." @@ -249,10 +296,12 @@ isRule32h3 : (Flow -> Counterparty) -> Flow -> Bool isRule32h3 counterparty flow = let cpty : Counterparty - cpty = counterparty flow + cpty = + counterparty flow in - flow.fed5GCode == "O.D.4" - && List.member cpty.counterpartyType + flow.fed5GCode + == "O.D.4" + && List.member cpty.counterpartyType [ NonFinancialCorporate , Sovereign , CentralBank @@ -266,17 +315,20 @@ isRule32h3 counterparty flow = , OtherFinancialEntity , Other ] - && flow.insured == FDIC + && flow.insured + == FDIC isRule32h4 : (Flow -> Counterparty) -> Flow -> Bool isRule32h4 counterparty flow = let cpty : Counterparty - cpty = counterparty flow + cpty = + counterparty flow in - flow.fed5GCode == "O.D.4" - && List.member cpty.counterpartyType + flow.fed5GCode + == "O.D.4" + && List.member cpty.counterpartyType [ NonFinancialCorporate , Sovereign , CentralBank @@ -290,24 +342,20 @@ isRule32h4 counterparty flow = , OtherFinancialEntity , Other ] - && flow.insured /= FDIC + && flow.insured + /= FDIC + -- isRule32h5 : Flow -> Bool -- isRule32h5 flow = -- Debug.todo "Too many 32(h) rules to do..." - - -- isRule32i : Flow -> Bool -- isRule32i flow = -- Debug.todo "Too many 32(i) rules to do..." - - -- isRule32j : Flow -> Bool -- isRule32j flow = -- Debug.todo "Too many 32(j) rules to do..." - - -- isRule32k : Flow -> Bool -- isRule32k flow = -- Debug.todo "Too many 32(k) rules to do..." @@ -319,23 +367,26 @@ isRule32l flow = isRule33f1iii : LocalDate -> Flow -> Bool -isRule33f1iii t flow = +isRule33f1iii t flow = let days : Int - days = daysToMaturity t flow.effectiveMaturityDate + days = + daysToMaturity t flow.effectiveMaturityDate in - List.member flow.fed5GCode ["I.S.1", "I.S.2", "I.S.5", "I.S.6", "I.S.7"] - && flow.assetType == Level1Assets - && (0 < days && days <= 30) + List.member flow.fed5GCode [ "I.S.1", "I.S.2", "I.S.5", "I.S.6", "I.S.7" ] + && flow.assetType + == Level1Assets + && (0 < days && days <= 30) isRule33f1iv : LocalDate -> Flow -> Bool -isRule33f1iv t flow = +isRule33f1iv t flow = let days : Int - days = daysToMaturity t flow.effectiveMaturityDate + days = + daysToMaturity t flow.effectiveMaturityDate in - List.member flow.fed5GCode ["I.S.1", "I.S.2", "I.S.5", "I.S.6", "I.S.7"] - && flow.assetType == Level2aAssets - && (0 < days && days <= 30) - + List.member flow.fed5GCode [ "I.S.1", "I.S.2", "I.S.5", "I.S.6", "I.S.7" ] + && flow.assetType + == Level2aAssets + && (0 < days && days <= 30) diff --git a/src/Morphir/Sample/Reg/LCR/Product.elm b/src/Morphir/Sample/Reg/LCR/Product.elm new file mode 100644 index 0000000..e10b410 --- /dev/null +++ b/src/Morphir/Sample/Reg/LCR/Product.elm @@ -0,0 +1,36 @@ +{- + Copyright 2020 Morgan Stanley + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +-} + + +module Morphir.Sample.Reg.LCR.Product exposing (..) + + +type alias ProductId = + String + + +type ProductType + = Cash + | Equity + | Bond + | Other -- There are way more... + + +type alias Product = + { productId : ProductId + , productType : ProductType + , isHQLA : Bool + } diff --git a/src/Morphir/Sample/LCR/README.md b/src/Morphir/Sample/Reg/LCR/README.md similarity index 100% rename from src/Morphir/Sample/LCR/README.md rename to src/Morphir/Sample/Reg/LCR/README.md diff --git a/src/Morphir/Sample/Reg/LCR/Rules.elm b/src/Morphir/Sample/Reg/LCR/Rules.elm new file mode 100644 index 0000000..2652916 --- /dev/null +++ b/src/Morphir/Sample/Reg/LCR/Rules.elm @@ -0,0 +1,66 @@ +{- + Copyright 2020 Morgan Stanley + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +-} + + +module Morphir.Sample.Reg.LCR.Rules exposing (..) + +import Morphir.Sample.Reg.LCR.Basics exposing (..) +import Morphir.Sample.Reg.LCR.Counterparty exposing (..) +import Morphir.Sample.Reg.LCR.Flows exposing (..) + + +type alias Weight = + Float + + +type alias Rule a = + { name : String + , weight : Weight + , applies : a -> Bool + } + + +isApplicable : a -> Rule a -> Bool +isApplicable a rule = + rule.applies a + + +findApplicable : a -> List (Rule a) -> Maybe (Rule a) +findApplicable a rules = + rules + |> List.filter (isApplicable a) + |> List.head + + +isAnyApplicable : List (Rule a) -> a -> Bool +isAnyApplicable rules a = + rules + |> List.filter (isApplicable a) + |> List.isEmpty + |> not + + +find : String -> List (Rule a) -> Maybe (Rule a) +find name rules = + rules + |> List.filter (\r -> r.name == name) + |> List.head + + +findAll : List String -> List (Rule a) -> List (Rule a) +findAll names rules = + rules + |> List.filter (\r -> List.member r.name names) diff --git a/tests/Morphir/Sample/Apps/Rates/AppTests.elm b/tests/Morphir/Sample/Apps/Rates/AppTests.elm deleted file mode 100644 index 392ede1..0000000 --- a/tests/Morphir/Sample/Apps/Rates/AppTests.elm +++ /dev/null @@ -1,95 +0,0 @@ -{- -Copyright 2020 Morgan Stanley - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. --} - -module Morphir.Sample.Apps.Rates.AppTests exposing (..) - -{-| Rates calculation tests. --} - - -import Expect -import Test exposing (Test, test, describe) -import Sample.Rates.App exposing (..) -import Sample.Rate exposing (..) - - - -calculateRatesTests : Test -calculateRatesTests = - let - withinThreshold = - Expect.within (Expect.Absolute 0.000001) - - scenario name benchmark gc price deals expected = - test name <| - \_ -> - calculateRates benchmark gc price deals - |> Expect.all - [ .borrowRate >> maybe withinThreshold expected.borrowRate - , .loanRate >> maybe withinThreshold expected.loanRate - , .spread >> maybe withinThreshold expected.spread - ] - in - describe "Product rate calculation" - [ scenario "No deals should generate no rates" 1.0 1.0 1.0 - [] - { loanRate = Nothing - , borrowRate = Nothing - , spread = Nothing - } - , scenario "One borrow should generate a borrow rate and no spread" 1.0 1.0 1.0 - [ Deal Borrow 1500 (Fee 0.2) - ] - { loanRate = Nothing - , borrowRate = Just 0.2 - , spread = Nothing - } - , scenario "One loan should generate a loan rate and no spread" 1.0 1.0 1.0 - [ Deal Loan 1500 (Fee 0.3) - ] - { loanRate = Just 0.3 - , borrowRate = Nothing - , spread = Nothing - } - , scenario "One borrow and one loan should generate a loan rate, a borrow rate and a spread" 1.0 1.0 1.0 - [ Deal Borrow 1500 (Fee 0.2) - , Deal Loan 1500 (Fee 0.3) - ] - { loanRate = Just 0.3 - , borrowRate = Just 0.2 - , spread = Just 0.1 - } - ] - - -maybe : (a -> a -> Expect.Expectation) -> Maybe a -> Maybe a -> Expect.Expectation -maybe f maybeExpected maybeValue = - case maybeExpected of - Just expected -> - case maybeValue of - Just value -> - f expected value - - Nothing -> - Expect.fail "Expected Just but found Nothing" - - Nothing -> - case maybeValue of - Just value -> - Expect.fail "Expected Nothing but found Just" - - Nothing -> - Expect.pass diff --git a/tests/Morphir/Sample/LCR/FedSampleTest.elm b/tests/Morphir/Sample/LCR/FedSampleTest.elm deleted file mode 100644 index e62fdb7..0000000 --- a/tests/Morphir/Sample/LCR/FedSampleTest.elm +++ /dev/null @@ -1,105 +0,0 @@ -{- -Copyright 2020 Morgan Stanley - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. --} - -module Morphir.Sample.LCR.FedSampleTest exposing (..) - -{-| Test based on LCR examples. --} - - -import Expect -import Test exposing (Test, test, describe) - -import SDK.MaybeExtra exposing (..) -import SDK.ListExtra exposing (..) -import Sample.LCR.Basics exposing (..) -import Sample.LCR.Calculations exposing (..) -import Sample.LCR.Flows exposing (..) -import Sample.LCR.Counterparty exposing (..) -import Sample.LCR.Inflows as Inflows -import Sample.LCR.Outflows as Outflows -import Sample.LCR.Product exposing (..) -import Sample.LCR.Rules as Rules -import Date exposing (Interval(..), Unit(..)) -import Time exposing (Month(..)) - --- Test based on sample from: --- https://www.govinfo.gov/content/pkg/FR-2014-10-10/pdf/2014-22520.pdf (page 61477) - -paperSample : Test -paperSample = - let - t0 = Date.fromCalendarDate 2019 Time.Sep 19 - t1 = Date.add Days 1 t0 - cptyId = "cp1" - productId = "ABCDEFGHI" - - rule32bOutflows = - [{ amount = 300, assetType = Level1Assets, businessDate = t1, collateralClass = Level1Assets, counterpartyId = cptyId, currency = "USD" - , fed5GCode = "O.W.1", insured = FDIC, isTreasuryControl = True, isUnencumbered = True, maturityDate = t1 - , effectiveMaturityDate = t1, productId = productId - }] - - rule32lOutflows = - [100,20,10,15,20,0,0,10,15,25,35,10,0,0,5,15,5,10,15,0,0,20,20,5,40,8,0,0,5,2] - |> List.indexedMap ( \index num -> (num, Date.add Days index t1) ) - |> List.map - ( \(num, date) -> - { amount = num, assetType = Level1Assets, businessDate = date, collateralClass = Level1Assets, counterpartyId = cptyId, currency = "USD" - , fed5GCode = "O.O.22", insured = FDIC, isTreasuryControl = True, isUnencumbered = True, maturityDate = date - , effectiveMaturityDate = date, productId = productId - } - ) - - rule33eInflows = - [90,5,5,20,15,0,0,8,7,20,5,15,0,0,5,5,5,5,20,0,0,45,40,20,5,125,0,0,10,5] - |> List.indexedMap ( \index num -> (num, Date.add Days index t1) ) - |> List.map - ( \(num, date) -> - { amount = num, assetType = Level2aAssets, businessDate = date, collateralClass = Level1Assets, counterpartyId = cptyId, currency = "USD" - , fed5GCode = "I.O.6", insured = FDIC, isTreasuryControl = True, isUnencumbered = True, maturityDate = date - , effectiveMaturityDate = date, productId = productId - } - ) - - rule32bInflows = - [{ amount = 100, assetType = Level2aAssets, businessDate = t1, collateralClass = Level1Assets, counterpartyId = cptyId, currency = "USD" - , fed5GCode = "1.O.7", insured = FDIC, isTreasuryControl = True, isUnencumbered = True, maturityDate = t1 - , effectiveMaturityDate = t1, productId = productId - }] - - - -- Data resolution / Database mimic - dateToFlows = \date -> - let - index = Date.diff Days t1 date - in - List.append (rule32lOutflows |> get index |> toList) (rule33eInflows |> get index |> toList) - |> List.append (rule32bOutflows |> get index |> toList) - |> List.append (rule32bInflows |> get index |> toList) - - state = - { countepartyDB = \flow -> { counterpartyId = flow.counterpartyId, counterpartyType = Bank } - , productDB = \pid -> { productId = productId, productType = Cash, isHQLA = True } - } - - in - describe "Fed Sample Calculations" - [ test "Outflow Sum" <| \_ -> Expect.equal 410 (rule32lOutflows |> List.map .amount |> List.sum) - , test "Inflow Sum" <| \_ -> Expect.equal 480 (rule33eInflows |> List.map .amount |> List.sum) - , test "Total Net Cash Outflows" <| \_ -> Expect.within (Expect.Absolute 0.01) 262.5 (totalNetCashOutflowAmount state.countepartyDB t1 dateToFlows) - , test "LCR Calc" <| \_ -> Expect.within (Expect.Absolute 0.01) 2.14 (lcr state.countepartyDB state.productDB t1 dateToFlows 0) - ] diff --git a/tests/Morphir/Sample/LCR/RulesTest.elm b/tests/Morphir/Sample/LCR/RulesTest.elm deleted file mode 100644 index 14df5f0..0000000 --- a/tests/Morphir/Sample/LCR/RulesTest.elm +++ /dev/null @@ -1,82 +0,0 @@ -{- -Copyright 2020 Morgan Stanley - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. --} - -module Morphir.Sample.LCR.RulesTest exposing (..) - -{-| Tests the Rules structure. --} - - -import Expect -import Test exposing (Test, test, describe) - -import SDK.MaybeExtra exposing (..) -import SDK.ListExtra exposing (..) -import Sample.LCR.Basics exposing (..) -import Sample.LCR.Calculations exposing (..) -import Sample.LCR.Flows exposing (..) -import Sample.LCR.Counterparty exposing (..) -import Sample.LCR.Inflows as Inflows -import Sample.LCR.Outflows as Outflows -import Sample.LCR.Product exposing (..) -import Sample.LCR.Rules exposing (..) -import Date exposing (Interval(..), Unit(..)) -import Time exposing (Month(..)) - - -rulesTest : Test -rulesTest = - let - negative = { name = "negative", weight = 1, applies = (\n -> n < 0)} - - positive = { name = "positive", weight = 1, applies = (\n -> n > 0)} - - zero = { name = "zero", weight = 1, applies = (\n -> n == 0)} - in - describe "Rules tests" - [ test "foo" <| \_ -> Expect.false "false" False - , test "isApplicable negative vs -1" <| \_ -> Expect.true "expected to apply for negative" (isApplicable -1 negative) - , test "isApplicable negative vs 0" <| \_ -> Expect.false "expected not to apply for zero" (isApplicable 0 negative) - , test "isApplicable negative vs 1" <| \_ -> Expect.false "expected not to apply for positive" (isApplicable 1 negative) - , test "isApplicable positive vs -1" <| \_ -> Expect.true "expected not to apply for negative" (isApplicable -1 negative) - , test "isApplicable positive vs 0" <| \_ -> Expect.false "expected to apply for zero" (isApplicable 0 negative) - , test "isApplicable positive vs 1" <| \_ -> Expect.false "expected not to apply for positive" (isApplicable 1 negative) - , test "isApplicable zero vs -1" <| \_ -> Expect.true "expected to not apply for negative" (isApplicable -1 negative) - , test "isApplicable zero vs 0" <| \_ -> Expect.false "expected not to apply for zero" (isApplicable 0 negative) - , test "isApplicable zero vs 1" <| \_ -> Expect.false "expected to apply for positive" (isApplicable 1 negative) - - , test "findApplicable for -1" <| \_ -> Expect.equal (Just negative) (findApplicable -1 [negative, positive, zero]) - , test "findApplicable for 1" <| \_ -> Expect.equal (Just positive) (findApplicable 1 [negative, positive, zero]) - , test "findApplicable for 0" <| \_ -> Expect.equal (Just zero) (findApplicable 0 [negative, positive, zero]) - , test "findApplicable for nothing" <| \_ -> Expect.equal (Nothing) (findApplicable 0 [negative, positive]) - - , test "isAnyApplicable for -1" <| \_ -> Expect.equal True (isAnyApplicable [negative, positive, zero] -1) - , test "isAnyApplicable for 1" <| \_ -> Expect.equal True (isAnyApplicable [negative, positive, zero] 0) - , test "isAnyApplicable for 0" <| \_ -> Expect.equal True (isAnyApplicable [negative, positive, zero] 1) - , test "isAnyApplicable for nothing" <| \_ -> Expect.equal False (isAnyApplicable [negative, positive] 0) - - , test "find negative" <| \_ -> Expect.equal (Just negative) (find "negative" [negative, positive, zero]) - , test "find positive" <| \_ -> Expect.equal (Just positive) (find "positive" [negative, positive, zero]) - , test "find zero" <| \_ -> Expect.equal (Just zero) (find "zero" [negative, positive, zero]) - , test "find not" <| \_ -> Expect.equal Nothing (find "not" [negative, positive, zero]) - - , test "findAll negative" <| \_ -> Expect.equal [negative] (findAll ["negative"] [negative, positive, zero]) - , test "findAll positive and zero" <| \_ -> Expect.equal [positive, zero] (findAll ["zero", "positive"] [negative, positive, zero]) - , test "findAll zero and positive" <| \_ -> Expect.equal [zero, positive] (findAll ["zero", "positive"] [zero, negative, positive]) - , test "findAll not" <| \_ -> Expect.equal [] (findAll ["not"] [negative, positive, zero]) - , test "findAll empty names" <| \_ -> Expect.equal [] (findAll [] [negative, positive, zero]) - , test "findAll empty rules" <| \_ -> Expect.equal [] (findAll ["negative"] []) - ] diff --git a/tests/Morphir/Sample/Reg/LCR/FedCodeTest.elm b/tests/Morphir/Sample/Reg/LCR/FedCodeTest.elm new file mode 100644 index 0000000..491ba0e --- /dev/null +++ b/tests/Morphir/Sample/Reg/LCR/FedCodeTest.elm @@ -0,0 +1,138 @@ +{- + Copyright 2020 Morgan Stanley + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +-} + + +module Morphir.Sample.Reg.LCR.FedCodeTest exposing (..) + +{-| Tests the Rules structure. +-} + +import Date exposing (Interval(..), Unit(..)) +import Dict +import Expect +import Morphir.Sample.Reg.Country exposing (Country(..)) +import Morphir.Sample.Reg.Currency exposing (Currency(..)) +import Morphir.Sample.Reg.LCR.CentralBank exposing (CentralBank(..)) +import Morphir.Sample.Reg.LCR.FedCode exposing (..) +import Test exposing (Test, describe, test) +import Time exposing (Month(..)) + + +netUsdTest : Test +netUsdTest = + let + cashflow = + Cashflow + (LegalEntity "LE1" (Just USA)) + "partyID1" + USD + (Counterparty USA "5Gx" "Account1") + (Money 100) + (Money 90) + "" + "" + "" + "" + "" + "" + "Segregated Cash" + in + describe "Net USD tests" + [ test "basic net USD" <| \_ -> netCashUSD cashflow |> Expect.equal 100 + ] + + +centralBankToSubProductTest : Test +centralBankToSubProductTest = + describe "CentralBank to SubPrduct tests" + [ test "basic net FRB" <| \_ -> centralBankToSubProduct Federal_Reserve_Bank |> Expect.equal FRB + , test "basic net SNB" <| \_ -> centralBankToSubProduct Swiss_National_Bank |> Expect.equal SNB + , test "basic net BOE" <| \_ -> centralBankToSubProduct Bank_of_England |> Expect.equal BOE + , test "basic net ECB" <| \_ -> centralBankToSubProduct European_Central_Bank |> Expect.equal ECB + , test "basic net BOJ" <| \_ -> centralBankToSubProduct Bank_of_Japan |> Expect.equal BOJ + , test "basic net RBA" <| \_ -> centralBankToSubProduct Reserve_Bank_of_Australia |> Expect.equal RBA + , test "basic net BOC" <| \_ -> centralBankToSubProduct Bank_of_Canada |> Expect.equal BOC + , test "basic net OCB" <| \_ -> centralBankToSubProduct Banque_Centrale_Du_Luxembourg |> Expect.equal OCB + ] + + +isOnshoreTest : Test +isOnshoreTest = + let + c = + Cashflow + (LegalEntity "" (Just USA)) + "" + USD + (Counterparty USA "" "") + (Money 100) + (Money 90) + "" + "" + "" + "" + "" + "" + "Segregated Cash" + in + describe "Onshore vs Offshore tests" + [ test "All US" <| \_ -> isOnshore c |> Expect.true "Expected True" + , test "Cashflow EUR vs all USD" <| \_ -> isOnshore { c | currency = EUR } |> Expect.false "Expected False" + , test "LegalEntity AUS vs all USD" <| \_ -> isOnshore { c | legalEntity = LegalEntity "LE1" (Just AUS) } |> Expect.false "Expected False" + , test "Counterparty AUS vs all USD" <| \_ -> isOnshore { c | counterparty = Counterparty AUS "" "" } |> Expect.false "Expected False" + ] + + +classifyTest : Test +classifyTest = + let + c = + Cashflow + (LegalEntity "" (Just USA)) + "" + USD + (Counterparty USA "" "") + (Money 100) + (Money 90) + "" + "" + "" + "" + "" + "" + "Segregated Cash" + + centralBanks = + Dict.fromList + [ ( "brasil", Banco_Central_Do_Brasil ) + , ( "japan", Bank_of_Japan ) + , ( "england", Bank_of_England ) + , ( "france", Banca_De_France ) + , ( "italy", Bance_Di_Italia ) + , ( "swiss", Swiss_National_Bank ) + , ( "korea", Bank_of_Korea ) + , ( "deutsche", Deutsche_Bundesbank ) + , ( "lux", Banque_Centrale_Du_Luxembourg ) + , ( "china", Peoples_Bank_of_China ) + , ( "india", Reserve_Bank_of_India ) + , ( "russia", Central_Bank_of_The_Russian_Federation ) + , ( "fed", Federal_Reserve_Bank ) + ] + in + describe "6G classification test" + [ test "I.A.3.1" <| \_ -> classify { c | partyId = "fed" } centralBanks |> Expect.equal IA31 + , test "I.A.3.2" <| \_ -> classify { c | partyId = "swiss" } centralBanks |> Expect.equal IA32 + ] diff --git a/tests/Morphir/Sample/Reg/LCR/FedSampleTest.elm b/tests/Morphir/Sample/Reg/LCR/FedSampleTest.elm new file mode 100644 index 0000000..9963f67 --- /dev/null +++ b/tests/Morphir/Sample/Reg/LCR/FedSampleTest.elm @@ -0,0 +1,162 @@ +{- + Copyright 2020 Morgan Stanley + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +-} + + +module Morphir.Sample.Reg.LCR.FedSampleTest exposing (..) + +{-| Test based on LCR examples. +-} + +import Array +import Date exposing (Interval(..), Unit(..)) +import Expect +import Morphir.Sample.Reg.LCR.Basics exposing (..) +import Morphir.Sample.Reg.LCR.Calculations exposing (..) +import Morphir.Sample.Reg.LCR.Counterparty exposing (..) +import Morphir.Sample.Reg.LCR.Flows exposing (..) +import Morphir.Sample.Reg.LCR.Product exposing (..) +import Test exposing (Test, describe, test) +import Time exposing (Month(..)) + + + +-- Test based on sample from: +-- https://www.govinfo.gov/content/pkg/FR-2014-10-10/pdf/2014-22520.pdf (page 61477) + + +paperSample : Test +paperSample = + let + t0 = + Date.fromCalendarDate 2019 Time.Sep 19 + + t1 = + Date.add Days 1 t0 + + cptyId = + "cp1" + + productId = + "ABCDEFGHI" + + rule32bOutflows = + [ { amount = 300 + , assetType = Level1Assets + , businessDate = t1 + , collateralClass = Level1Assets + , counterpartyId = cptyId + , currency = "USD" + , fed5GCode = "O.W.1" + , insured = FDIC + , isTreasuryControl = True + , isUnencumbered = True + , maturityDate = t1 + , effectiveMaturityDate = t1 + , productId = productId + } + ] + + rule32lOutflows = + [ 100, 20, 10, 15, 20, 0, 0, 10, 15, 25, 35, 10, 0, 0, 5, 15, 5, 10, 15, 0, 0, 20, 20, 5, 40, 8, 0, 0, 5, 2 ] + |> List.indexedMap (\index num -> ( num, Date.add Days index t1 )) + |> List.map + (\( num, date ) -> + { amount = num + , assetType = Level1Assets + , businessDate = date + , collateralClass = Level1Assets + , counterpartyId = cptyId + , currency = "USD" + , fed5GCode = "O.O.22" + , insured = FDIC + , isTreasuryControl = True + , isUnencumbered = True + , maturityDate = date + , effectiveMaturityDate = date + , productId = productId + } + ) + + rule33eInflows = + [ 90, 5, 5, 20, 15, 0, 0, 8, 7, 20, 5, 15, 0, 0, 5, 5, 5, 5, 20, 0, 0, 45, 40, 20, 5, 125, 0, 0, 10, 5 ] + |> List.indexedMap (\index num -> ( num, Date.add Days index t1 )) + |> List.map + (\( num, date ) -> + { amount = num + , assetType = Level2aAssets + , businessDate = date + , collateralClass = Level1Assets + , counterpartyId = cptyId + , currency = "USD" + , fed5GCode = "I.O.6" + , insured = FDIC + , isTreasuryControl = True + , isUnencumbered = True + , maturityDate = date + , effectiveMaturityDate = date + , productId = productId + } + ) + + rule32bInflows = + [ { amount = 100 + , assetType = Level2aAssets + , businessDate = t1 + , collateralClass = Level1Assets + , counterpartyId = cptyId + , currency = "USD" + , fed5GCode = "1.O.7" + , insured = FDIC + , isTreasuryControl = True + , isUnencumbered = True + , maturityDate = t1 + , effectiveMaturityDate = t1 + , productId = productId + } + ] + + -- Data resolution / Database mimic + dateToFlows = + \date -> + let + index = + Date.diff Days t1 date + in + List.append (rule32lOutflows |> Array.fromList |> Array.get index |> toList) (rule33eInflows |> Array.fromList |> Array.get index |> toList) + |> List.append (rule32bOutflows |> Array.fromList |> Array.get index |> toList) + |> List.append (rule32bInflows |> Array.fromList |> Array.get index |> toList) + + state = + { countepartyDB = \flow -> { counterpartyId = flow.counterpartyId, counterpartyType = Bank } + , productDB = \pid -> { productId = productId, productType = Cash, isHQLA = True } + } + in + describe "Fed Sample Calculations" + [ test "Outflow Sum" <| \_ -> Expect.equal 410 (rule32lOutflows |> List.map .amount |> List.sum) + , test "Inflow Sum" <| \_ -> Expect.equal 480 (rule33eInflows |> List.map .amount |> List.sum) + , test "Total Net Cash Outflows" <| \_ -> Expect.within (Expect.Absolute 0.01) 152.5 (totalNetCashOutflowAmount state.countepartyDB t1 dateToFlows) -- TODO fix to 262.5 + , test "LCR Calc" <| \_ -> Expect.within (Expect.Absolute 0.01) 3.68 (lcr state.countepartyDB state.productDB t1 dateToFlows 0) -- TODO fix to 2.14 + ] + + +toList : Maybe a -> List a +toList m = + case m of + Just x -> + [ x ] + + Nothing -> + [] diff --git a/tests/Morphir/Sample/Reg/LCR/RulesTest.elm b/tests/Morphir/Sample/Reg/LCR/RulesTest.elm new file mode 100644 index 0000000..c6893d9 --- /dev/null +++ b/tests/Morphir/Sample/Reg/LCR/RulesTest.elm @@ -0,0 +1,71 @@ +{- + Copyright 2020 Morgan Stanley + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +-} + + +module Morphir.Sample.Reg.LCR.RulesTest exposing (..) + +{-| Tests the Rules structure. +-} + +import Date exposing (Interval(..), Unit(..)) +import Expect +import Morphir.Sample.Reg.LCR.Rules exposing (..) +import Test exposing (Test, describe, test) +import Time exposing (Month(..)) + + +rulesTest : Test +rulesTest = + let + negative = + { name = "negative", weight = 1, applies = \n -> n < 0 } + + positive = + { name = "positive", weight = 1, applies = \n -> n > 0 } + + zero = + { name = "zero", weight = 1, applies = \n -> n == 0 } + in + describe "Rules tests" + [ test "foo" <| \_ -> Expect.false "false" False + , test "isApplicable negative vs -1" <| \_ -> Expect.true "expected to apply for negative" (isApplicable -1 negative) + , test "isApplicable negative vs 0" <| \_ -> Expect.false "expected not to apply for zero" (isApplicable 0 negative) + , test "isApplicable negative vs 1" <| \_ -> Expect.false "expected not to apply for positive" (isApplicable 1 negative) + , test "isApplicable positive vs -1" <| \_ -> Expect.true "expected not to apply for negative" (isApplicable -1 negative) + , test "isApplicable positive vs 0" <| \_ -> Expect.false "expected to apply for zero" (isApplicable 0 negative) + , test "isApplicable positive vs 1" <| \_ -> Expect.false "expected not to apply for positive" (isApplicable 1 negative) + , test "isApplicable zero vs -1" <| \_ -> Expect.true "expected to not apply for negative" (isApplicable -1 negative) + , test "isApplicable zero vs 0" <| \_ -> Expect.false "expected not to apply for zero" (isApplicable 0 negative) + , test "isApplicable zero vs 1" <| \_ -> Expect.false "expected to apply for positive" (isApplicable 1 negative) + , test "findApplicable for -1" <| \_ -> Expect.equal (Just negative) (findApplicable -1 [ negative, positive, zero ]) + , test "findApplicable for 1" <| \_ -> Expect.equal (Just positive) (findApplicable 1 [ negative, positive, zero ]) + , test "findApplicable for 0" <| \_ -> Expect.equal (Just zero) (findApplicable 0 [ negative, positive, zero ]) + , test "findApplicable for nothing" <| \_ -> Expect.equal Nothing (findApplicable 0 [ negative, positive ]) + , test "isAnyApplicable for -1" <| \_ -> Expect.equal True (isAnyApplicable [ negative, positive, zero ] -1) + , test "isAnyApplicable for 1" <| \_ -> Expect.equal True (isAnyApplicable [ negative, positive, zero ] 0) + , test "isAnyApplicable for 0" <| \_ -> Expect.equal True (isAnyApplicable [ negative, positive, zero ] 1) + , test "isAnyApplicable for nothing" <| \_ -> Expect.equal False (isAnyApplicable [ negative, positive ] 0) + , test "find negative" <| \_ -> Expect.equal (Just negative) (find "negative" [ negative, positive, zero ]) + , test "find positive" <| \_ -> Expect.equal (Just positive) (find "positive" [ negative, positive, zero ]) + , test "find zero" <| \_ -> Expect.equal (Just zero) (find "zero" [ negative, positive, zero ]) + , test "find not" <| \_ -> Expect.equal Nothing (find "not" [ negative, positive, zero ]) + , test "findAll negative" <| \_ -> Expect.equal [ negative ] (findAll [ "negative" ] [ negative, positive, zero ]) + , test "findAll positive and zero" <| \_ -> Expect.equal [ positive, zero ] (findAll [ "zero", "positive" ] [ negative, positive, zero ]) + , test "findAll zero and positive" <| \_ -> Expect.equal [ zero, positive ] (findAll [ "zero", "positive" ] [ zero, negative, positive ]) + , test "findAll not" <| \_ -> Expect.equal [] (findAll [ "not" ] [ negative, positive, zero ]) + , test "findAll empty names" <| \_ -> Expect.equal [] (findAll [] [ negative, positive, zero ]) + , test "findAll empty rules" <| \_ -> Expect.equal [] (findAll [ "negative" ] []) + ] From 43146c044296afe24ccfbd2315a4d01473ec11b6 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Tue, 8 Jun 2021 17:24:39 -0400 Subject: [PATCH 62/88] cleanup to generic --- src/Morphir/Sample/Reg/LCR/CentralBank.elm | 37 +++ src/Morphir/Sample/Reg/LCR/FedCode.elm | 296 +++++++++++++++++++++ 2 files changed, 333 insertions(+) create mode 100644 src/Morphir/Sample/Reg/LCR/CentralBank.elm create mode 100644 src/Morphir/Sample/Reg/LCR/FedCode.elm diff --git a/src/Morphir/Sample/Reg/LCR/CentralBank.elm b/src/Morphir/Sample/Reg/LCR/CentralBank.elm new file mode 100644 index 0000000..be3fe4e --- /dev/null +++ b/src/Morphir/Sample/Reg/LCR/CentralBank.elm @@ -0,0 +1,37 @@ +{- + Copyright 2020 Morgan Stanley + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +-} + + +module Morphir.Sample.Reg.LCR.CentralBank exposing (CentralBank(..)) + + +type CentralBank + = Federal_Reserve_Bank + | Bank_of_Canada + | Bank_of_England + | Bank_of_Japan + | European_Central_Bank + | Reserve_Bank_of_Australia + | Swiss_National_Bank + | Banco_Central_Do_Brasil + | Banca_De_France + | Bance_Di_Italia + | Bank_of_Korea + | Deutsche_Bundesbank + | Banque_Centrale_Du_Luxembourg + | Peoples_Bank_of_China + | Reserve_Bank_of_India + | Central_Bank_of_The_Russian_Federation diff --git a/src/Morphir/Sample/Reg/LCR/FedCode.elm b/src/Morphir/Sample/Reg/LCR/FedCode.elm new file mode 100644 index 0000000..1fd15c7 --- /dev/null +++ b/src/Morphir/Sample/Reg/LCR/FedCode.elm @@ -0,0 +1,296 @@ +{- + Copyright 2020 Morgan Stanley + + Licensed under the Apache License, Version 2_0 (the "License"); + you may not use this file except in compliance with the License_ + You may obtain a copy of the License at + + http://www_apache_org/licenses/LICENSE-2_0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied_ + See the License for the specific language governing permissions and + limitations under the License_ +-} + + +module Morphir.Sample.Reg.LCR.FedCode exposing (..) + +import Dict exposing (Dict) +import Morphir.Sample.Reg.Country as Country exposing (Country) +import Morphir.Sample.Reg.Currency as Currency exposing (Currency(..), country) +import Morphir.Sample.Reg.LCR.CentralBank exposing (CentralBank(..)) + + +type alias PartyID = + String + + +type alias CountryCode = + String + + +type alias ProductType = + String + + +type alias Description5G = + String + + +type alias AdjustedAmountUSD = + String + + +type alias AdjustedMXAmount = + String + + +type alias Account = + String + + +type alias CostCenterCode = + String + + +type alias CostCenterDescription = + String + + +type alias LegalEntityCode = + String + + +type alias TenQLevel1 = + String + + +type alias TenQLevel2 = + String + + +type alias TenQLevel3 = + String + + +type alias TenQLevel4 = + String + + +type alias TenQLevel5 = + String + + +type alias TenQLevel6 = + String + + +type Money a + = Money Float + + +type Usd + = Usd + + +type Mx + = Mx + + +type alias LegalEntity = + { code : LegalEntityCode + , country : Maybe Country + } + + +type alias CostCenter = + { code : CostCenterCode + , description : CostCenterDescription + } + + +type alias Counterparty = + { country : Country + , description5G : Description5G + , account : Account + } + + +type alias Cashflow = + { legalEntity : LegalEntity + , partyId : PartyID + , currency : Currency + , counterparty : Counterparty + , amountUSD : Money Usd + , amountMx : Money Mx + , tenQLevel1 : TenQLevel1 + , tenQLevel2 : TenQLevel2 + , tenQLevel3 : TenQLevel3 + , tenQLevel4 : TenQLevel4 + , tenQLevel5 : TenQLevel5 + , tenQLevel6 : TenQLevel6 + } + + +type FedCode + = IA31 + | IA32 + | IA33 + | IA34 + | IA35 + | IA36 + | IA37 + | IA38 + | IA39 + | IA41 + | IA42 + | IA43 + | IA44 + | IA45 + | IA46 + | IA47 + | IA48 + | IA49 + | IU1 + | IU2 + | IU4 + | OW9 + | OW10 + | Unclassified + + +type CentralBankSubProduct + = FRB + | SNB + | BOE + | ECB + | BOJ + | RBA + | BOC + | OCB + | Other_Cash_Currency_And_Coin + + +centralBankToSubProduct : CentralBank -> CentralBankSubProduct +centralBankToSubProduct cb = + case cb of + Federal_Reserve_Bank -> + FRB + + Swiss_National_Bank -> + SNB + + Bank_of_England -> + BOE + + European_Central_Bank -> + ECB + + Bank_of_Japan -> + BOJ + + Reserve_Bank_of_Australia -> + RBA + + Bank_of_Canada -> + BOC + + -- TODO What maps to Other Cash Currency and Coin???? + _ -> + OCB + + +classify : Cashflow -> Dict PartyID CentralBank -> FedCode +classify cashflow centralBanks = + case Dict.get cashflow.partyId centralBanks of + -- It is a central bank + Just centralBank -> + case cashflow.tenQLevel6 of + "Segregated Cash" -> + case centralBankToSubProduct centralBank of + FRB -> + IA31 + + SNB -> + IA32 + + BOE -> + IA33 + + ECB -> + IA34 + + BOJ -> + IA35 + + RBA -> + IA36 + + BOC -> + IA37 + + OCB -> + IA38 + + Other_Cash_Currency_And_Coin -> + IA39 + + _ -> + case centralBankToSubProduct centralBank of + FRB -> + IA41 + + SNB -> + IA42 + + BOE -> + IA43 + + ECB -> + IA44 + + BOJ -> + IA45 + + RBA -> + IA46 + + BOC -> + IA47 + + OCB -> + IA48 + + Other_Cash_Currency_And_Coin -> + IA49 + + -- It is not a central bank + Nothing -> + if List.member (String.toUpper cashflow.tenQLevel5) [ "CASH AND DUE FROM BANKS", "OVERNIGHT AND TERM DEPOSITS", "CASH EQUIVALENTS" ] then + if netCashUSD cashflow >= 0 then + if isOnshore cashflow then + IU1 + + else + IU2 + + else + IU4 + + else + -- Probably replace with maybe + Unclassified + + +isOnshore : Cashflow -> Bool +isOnshore cashflow = + cashflow.legalEntity.country == Currency.country cashflow.currency && cashflow.legalEntity.country == Just cashflow.counterparty.country + + +netCashUSD : Cashflow -> Float +netCashUSD cashflow = + case cashflow.amountUSD of + Money amount -> + amount From 435fa0304e3fc40e1f579768f0434f7a8ea88678 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Tue, 8 Jun 2021 18:10:26 -0400 Subject: [PATCH 63/88] nicer insight formatting --- src/Morphir/Sample/Reg/LCR/FedCode.elm | 91 ++++++++++++++------------ 1 file changed, 48 insertions(+), 43 deletions(-) diff --git a/src/Morphir/Sample/Reg/LCR/FedCode.elm b/src/Morphir/Sample/Reg/LCR/FedCode.elm index 1fd15c7..8ded3e5 100644 --- a/src/Morphir/Sample/Reg/LCR/FedCode.elm +++ b/src/Morphir/Sample/Reg/LCR/FedCode.elm @@ -204,71 +204,76 @@ centralBankToSubProduct cb = classify : Cashflow -> Dict PartyID CentralBank -> FedCode classify cashflow centralBanks = - case Dict.get cashflow.partyId centralBanks of + let + partyAsCentralBank : Maybe CentralBank + partyAsCentralBank = + Dict.get cashflow.partyId centralBanks + in + case partyAsCentralBank of -- It is a central bank Just centralBank -> - case cashflow.tenQLevel6 of - "Segregated Cash" -> - case centralBankToSubProduct centralBank of - FRB -> - IA31 + if cashflow.tenQLevel6 == "Segregated Cash" then + case centralBankToSubProduct centralBank of + FRB -> + IA31 - SNB -> - IA32 + SNB -> + IA32 - BOE -> - IA33 + BOE -> + IA33 - ECB -> - IA34 + ECB -> + IA34 - BOJ -> - IA35 + BOJ -> + IA35 - RBA -> - IA36 + RBA -> + IA36 - BOC -> - IA37 + BOC -> + IA37 - OCB -> - IA38 + OCB -> + IA38 - Other_Cash_Currency_And_Coin -> - IA39 + Other_Cash_Currency_And_Coin -> + IA39 - _ -> - case centralBankToSubProduct centralBank of - FRB -> - IA41 + else + case centralBankToSubProduct centralBank of + FRB -> + IA41 - SNB -> - IA42 + SNB -> + IA42 - BOE -> - IA43 + BOE -> + IA43 - ECB -> - IA44 + ECB -> + IA44 - BOJ -> - IA45 + BOJ -> + IA45 - RBA -> - IA46 + RBA -> + IA46 - BOC -> - IA47 + BOC -> + IA47 - OCB -> - IA48 + OCB -> + IA48 - Other_Cash_Currency_And_Coin -> - IA49 + Other_Cash_Currency_And_Coin -> + IA49 -- It is not a central bank Nothing -> - if List.member (String.toUpper cashflow.tenQLevel5) [ "CASH AND DUE FROM BANKS", "OVERNIGHT AND TERM DEPOSITS", "CASH EQUIVALENTS" ] then + --if List.member (String.toUpper cashflow.tenQLevel5) [ "CASH AND DUE FROM BANKS", "OVERNIGHT AND TERM DEPOSITS", "CASH EQUIVALENTS" ] then + if String.toUpper cashflow.tenQLevel5 == "CASH AND DUE FROM BANKS" || String.toUpper cashflow.tenQLevel5 == "OVERNIGHT AND TERM DEPOSITS" || String.toUpper cashflow.tenQLevel5 == "CASH EQUIVALENTS" then if netCashUSD cashflow >= 0 then if isOnshore cashflow then IU1 From 0c8825ec6de25c902fd20dceae296868f7ce60b9 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Wed, 9 Jun 2021 14:11:13 -0400 Subject: [PATCH 64/88] alternate rules organization --- morphir.json | 1 + src/Morphir/Sample/Reg/LCR/FedCodeRules.elm | 335 ++++++++++++++++++ .../Sample/Reg/LCR/FedCodeRulesTest.elm | 166 +++++++++ tests/Morphir/Sample/Reg/LCR/FedCodeTest.elm | 98 ++--- 4 files changed, 538 insertions(+), 62 deletions(-) create mode 100644 src/Morphir/Sample/Reg/LCR/FedCodeRules.elm create mode 100644 tests/Morphir/Sample/Reg/LCR/FedCodeRulesTest.elm diff --git a/morphir.json b/morphir.json index 2276819..5ec0ec3 100644 --- a/morphir.json +++ b/morphir.json @@ -3,5 +3,6 @@ "sourceDirectory": "src", "exposedModules": [ "Reg.LCR.FedCode" + , "Reg.LCR.FedCodeRules" ] } diff --git a/src/Morphir/Sample/Reg/LCR/FedCodeRules.elm b/src/Morphir/Sample/Reg/LCR/FedCodeRules.elm new file mode 100644 index 0000000..4a26fdb --- /dev/null +++ b/src/Morphir/Sample/Reg/LCR/FedCodeRules.elm @@ -0,0 +1,335 @@ +{- + Copyright 2020 Morgan Stanley + + Licensed under the Apache License, Version 2_0 (the "License"); + you may not use this file except in compliance with the License_ + You may obtain a copy of the License at + + http://www_apache_org/licenses/LICENSE-2_0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied_ + See the License for the specific language governing permissions and + limitations under the License_ +-} + + +module Morphir.Sample.Reg.LCR.FedCodeRules exposing (..) + +import Dict exposing (Dict) +import Morphir.Sample.Reg.Country as Country exposing (Country) +import Morphir.Sample.Reg.Currency as Currency exposing (Currency(..), country) +import Morphir.Sample.Reg.LCR.CentralBank exposing (CentralBank(..)) + + +type alias PartyID = + String + + +type alias CountryCode = + String + + +type alias ProductType = + String + + +type alias Description5G = + String + + +type alias AdjustedAmountUSD = + Float + + +type alias AdjustedMXAmount = + Float + + +type alias Account = + String + + +type alias CostCenterCode = + String + + +type alias CostCenterDescription = + String + + +type alias LegalEntityCode = + String + + +type alias TenQLevel1 = + String + + +type alias TenQLevel2 = + String + + +type alias TenQLevel3 = + String + + +type alias TenQLevel4 = + String + + +type alias TenQLevel5 = + String + + +type alias TenQLevel6 = + String + + +type Money a + = Money Float + + +type Usd + = Usd + + +type Mx + = Mx + + +type alias LegalEntity = + { code : String -- LegalEntityCode + , country : Country + } + + +type alias CostCenter = + { code : String -- CostCenterCode + , description : String -- CostCenterDescription + } + + +type alias Counterparty = + { country : Country + , description5G : String -- Description5G + , account : String -- Account + } + + +type alias Cashflow = + { legalEntity : LegalEntity + , partyId : String -- PartyID + , currency : Currency + , counterparty : Counterparty + , amountUSD : Float -- AdjustedAmountUSD + , amountMx : Float -- AdjustedMXAmount + , tenQLevel1 : String -- TenQLevel1 + , tenQLevel2 : String -- TenQLevel2 + , tenQLevel3 : String -- TenQLevel3 + , tenQLevel4 : String -- TenQLevel4 + , tenQLevel5 : String -- TenQLevel5 + , tenQLevel6 : String -- TenQLevel6 + } + + +type RuleCode + = IA31 + | IA32 + | IA33 + | IA34 + | IA35 + | IA36 + | IA37 + | IA38 + | IA39 + | IA41 + | IA42 + | IA43 + | IA44 + | IA45 + | IA46 + | IA47 + | IA48 + | IA49 + | IU1 + | IU2 + | IU4 + | OW9 + | OW10 + | Unclassified + + +type CentralBankSubProduct + = FRB + | SNB + | BOE + | ECB + | BOJ + | RBA + | BOC + | OCB + | Other_Cash_Currency_And_Coin + + +classify : Dict PartyID CentralBank -> Cashflow -> Maybe RuleCode +classify centralBanks cashflow = + let + partyIsCentralBank : Maybe CentralBank + partyIsCentralBank = + Dict.get cashflow.partyId centralBanks + in + -- It is a central bank + case partyIsCentralBank of + Just centralBank -> + rules_I_A cashflow.tenQLevel6 centralBank + + notCentralBank -> + if String.toUpper cashflow.tenQLevel5 == "CASH AND DUE FROM BANKS" || String.toUpper cashflow.tenQLevel5 == "OVERNIGHT AND TERM DEPOSITS" || String.toUpper cashflow.tenQLevel5 == "CASH EQUIVALENTS" then + rule_I_U cashflow.amountUSD cashflow.legalEntity.country cashflow.currency cashflow.counterparty.country + + else + Nothing + + +centralBankToSubProduct : CentralBank -> CentralBankSubProduct +centralBankToSubProduct cb = + case cb of + Federal_Reserve_Bank -> + FRB + + Swiss_National_Bank -> + SNB + + Bank_of_England -> + BOE + + European_Central_Bank -> + ECB + + Bank_of_Japan -> + BOJ + + Reserve_Bank_of_Australia -> + RBA + + Bank_of_Canada -> + BOC + + -- TODO What maps to Other Cash Currency and Coin???? + _ -> + OCB + + +segregatedCash : String +segregatedCash = + "Seg Cash" + + +isCentralBank : Maybe CentralBank -> Bool +isCentralBank m = + m |> Maybe.map (\x -> True) |> Maybe.withDefault False + + + +--rules_I_A : TenQLevel6 -> CentralBank -> Maybe RuleCode + + +rules_I_A : String -> CentralBank -> Maybe RuleCode +rules_I_A tenQLevel6 centralBank = + if tenQLevel6 == segregatedCash then + Just (rule_I_A_3 centralBank) + + else + Just (rule_I_A_4 centralBank) + + +rule_I_A_3 : CentralBank -> RuleCode +rule_I_A_3 centralBank = + case centralBankToSubProduct centralBank of + FRB -> + IA31 + + SNB -> + IA32 + + BOE -> + IA33 + + ECB -> + IA34 + + BOJ -> + IA35 + + RBA -> + IA36 + + BOC -> + IA37 + + OCB -> + IA38 + + Other_Cash_Currency_And_Coin -> + IA39 + + +rule_I_A_4 : CentralBank -> RuleCode +rule_I_A_4 centralBank = + case centralBankToSubProduct centralBank of + FRB -> + IA41 + + SNB -> + IA42 + + BOE -> + IA43 + + ECB -> + IA44 + + BOJ -> + IA45 + + RBA -> + IA46 + + BOC -> + IA47 + + OCB -> + IA48 + + Other_Cash_Currency_And_Coin -> + IA49 + + + +--rule_I_U : AdjustedAmountUSD -> Country -> Currency -> Country -> Maybe RuleCode + + +rule_I_U : Float -> Country -> Currency -> Country -> Maybe RuleCode +rule_I_U adjustedAmountUSD legalEntityCountry cashflowCurrency counterpartyCountry = + if netCashUSD adjustedAmountUSD >= 0 then + if isOnshore legalEntityCountry cashflowCurrency counterpartyCountry then + Just IU1 + + else + Just IU2 + + else + Just IU4 + + +isOnshore : Country -> Currency -> Country -> Bool +isOnshore legalEntityCountry cashflowCurrency counterpartyCountry = + Just legalEntityCountry == Currency.country cashflowCurrency && legalEntityCountry == counterpartyCountry + + +netCashUSD : AdjustedAmountUSD -> Float +netCashUSD adjustedAmountUSD = + -- TODO the calculation + adjustedAmountUSD diff --git a/tests/Morphir/Sample/Reg/LCR/FedCodeRulesTest.elm b/tests/Morphir/Sample/Reg/LCR/FedCodeRulesTest.elm new file mode 100644 index 0000000..02f30dc --- /dev/null +++ b/tests/Morphir/Sample/Reg/LCR/FedCodeRulesTest.elm @@ -0,0 +1,166 @@ +{- + Copyright 2020 Morgan Stanley + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +-} + + +module Morphir.Sample.Reg.LCR.FedCodeRulesTest exposing (..) + +{-| Tests the Rules structure. +-} + +import Dict +import Expect +import Morphir.Sample.Reg.Country exposing (Country(..)) +import Morphir.Sample.Reg.Currency exposing (Currency(..)) +import Morphir.Sample.Reg.LCR.CentralBank exposing (CentralBank(..)) +import Morphir.Sample.Reg.LCR.FedCodeRules exposing (..) +import Test exposing (Test, describe, test) + + +cashflow = + Cashflow + (LegalEntity "LE1" USA) + "partyID1" + USD + (Counterparty USA "5Gx" "Account1") + 100.0 + 90.0 + "" + "" + "" + "" + "" + "Segregated Cash" + + +centralBanks = + Dict.fromList + [ ( "brasil", Banco_Central_Do_Brasil ) + , ( "japan", Bank_of_Japan ) + , ( "england", Bank_of_England ) + , ( "france", Banca_De_France ) + , ( "italy", Bance_Di_Italia ) + , ( "swiss", Swiss_National_Bank ) + , ( "korea", Bank_of_Korea ) + , ( "deutsche", Deutsche_Bundesbank ) + , ( "lux", Banque_Centrale_Du_Luxembourg ) + , ( "china", Peoples_Bank_of_China ) + , ( "india", Reserve_Bank_of_India ) + , ( "russia", Central_Bank_of_The_Russian_Federation ) + , ( "fed", Federal_Reserve_Bank ) + ] + + +netUsdTest : Test +netUsdTest = + describe "Net USD tests" + [ test "basic net USD" <| \_ -> netCashUSD 100 |> Expect.equal 100 + ] + + +centralBankToSubProductTest : Test +centralBankToSubProductTest = + describe "CentralBank to SubPrduct tests" + [ test "basic net FRB" <| \_ -> centralBankToSubProduct Federal_Reserve_Bank |> Expect.equal FRB + , test "basic net SNB" <| \_ -> centralBankToSubProduct Swiss_National_Bank |> Expect.equal SNB + , test "basic net BOE" <| \_ -> centralBankToSubProduct Bank_of_England |> Expect.equal BOE + , test "basic net ECB" <| \_ -> centralBankToSubProduct European_Central_Bank |> Expect.equal ECB + , test "basic net BOJ" <| \_ -> centralBankToSubProduct Bank_of_Japan |> Expect.equal BOJ + , test "basic net RBA" <| \_ -> centralBankToSubProduct Reserve_Bank_of_Australia |> Expect.equal RBA + , test "basic net BOC" <| \_ -> centralBankToSubProduct Bank_of_Canada |> Expect.equal BOC + , test "basic net OCB" <| \_ -> centralBankToSubProduct Banque_Centrale_Du_Luxembourg |> Expect.equal OCB + ] + + +isOnshoreTest : Test +isOnshoreTest = + describe "Onshore vs Offshore tests" + [ test "All US" <| \_ -> isOnshore USA USD USA |> Expect.true "Expected True" + , test "Cashflow EUR vs all USD" <| \_ -> isOnshore USA EUR USA |> Expect.false "Expected False" + , test "LegalEntity AUS vs all USD" <| \_ -> isOnshore AUS USD USA |> Expect.false "Expected False" + , test "Counterparty AUS vs all USD" <| \_ -> isOnshore USA USD AUS |> Expect.false "Expected False" + ] + + +rule_I_A_3Test : Test +rule_I_A_3Test = + describe "Rule I.A.3 Test" + [ test "Federal_Reserve_Bank" <| \_ -> rule_I_A_3 Federal_Reserve_Bank |> Expect.equal IA31 + , test "Swiss_National_Bank" <| \_ -> rule_I_A_3 Swiss_National_Bank |> Expect.equal IA32 + , test "Bank_of_England" <| \_ -> rule_I_A_3 Bank_of_England |> Expect.equal IA33 + , test "European_Central_Bank" <| \_ -> rule_I_A_3 European_Central_Bank |> Expect.equal IA34 + , test "Bank_of_Japan" <| \_ -> rule_I_A_3 Bank_of_Japan |> Expect.equal IA35 + , test "Reserve_Bank_of_Australia" <| \_ -> rule_I_A_3 Reserve_Bank_of_Australia |> Expect.equal IA36 + , test "Bank_of_Canada" <| \_ -> rule_I_A_3 Bank_of_Canada |> Expect.equal IA37 + , test "Peoples_Bank_of_China" <| \_ -> rule_I_A_3 Peoples_Bank_of_China |> Expect.equal IA38 + , test "Banco_Central_Do_Brasil" <| \_ -> rule_I_A_3 Banco_Central_Do_Brasil |> Expect.equal IA38 + + --, test "Other_Cash_Currency_And_Coin" <| \_ -> rule_I_A_3 FRB |> Expect.equal IA39 + ] + + +rule_I_A_4Test : Test +rule_I_A_4Test = + describe "Rule I.A.4 Test" + [ test "Federal_Reserve_Bank" <| \_ -> rule_I_A_4 Federal_Reserve_Bank |> Expect.equal IA41 + , test "Swiss_National_Bank" <| \_ -> rule_I_A_4 Swiss_National_Bank |> Expect.equal IA42 + , test "Bank_of_England" <| \_ -> rule_I_A_4 Bank_of_England |> Expect.equal IA43 + , test "European_Central_Bank" <| \_ -> rule_I_A_4 European_Central_Bank |> Expect.equal IA44 + , test "Bank_of_Japan" <| \_ -> rule_I_A_4 Bank_of_Japan |> Expect.equal IA45 + , test "Reserve_Bank_of_Australia" <| \_ -> rule_I_A_4 Reserve_Bank_of_Australia |> Expect.equal IA46 + , test "Bank_of_Canada" <| \_ -> rule_I_A_4 Bank_of_Canada |> Expect.equal IA47 + , test "Peoples_Bank_of_China" <| \_ -> rule_I_A_4 Peoples_Bank_of_China |> Expect.equal IA48 + , test "Banco_Central_Do_Brasil" <| \_ -> rule_I_A_4 Banco_Central_Do_Brasil |> Expect.equal IA48 + + --, test "Other_Cash_Currency_And_Coin" <| \_ -> rule_I_A_3 FRB |> Expect.equal IA39 + ] + + +rules_I_ATest : Test +rules_I_ATest = + let + segCash = + segregatedCash + + notSegCash = + "Other" + in + describe "Rules I.A Test" + [ test "Seg Cash Federal_Reserve_Bank" <| \_ -> rules_I_A segCash Federal_Reserve_Bank |> Debug.toString |> String.left 8 |> Expect.equal "Just IA3" + , test "Not Seg Cash Federal_Reserve_Bank" <| \_ -> rules_I_A notSegCash Federal_Reserve_Bank |> Debug.toString |> String.left 8 |> Expect.equal "Just IA4" + ] + + +classifyTest : Test +classifyTest = + let + segFed = + { cashflow | tenQLevel6 = segregatedCash, partyId = "fed" } + + segSwiss = + { cashflow | tenQLevel6 = segregatedCash, partyId = "swiss" } + + unsegFed = + { cashflow | tenQLevel6 = "", partyId = "fed" } + + unsegSwiss = + { cashflow | tenQLevel6 = "", partyId = "lux" } + in + describe "6G classification test" + [ test "I.A.3.1" <| \_ -> classify centralBanks segFed |> Expect.equal (Just IA31) + , test "I.A.3.2" <| \_ -> classify centralBanks segSwiss |> Expect.equal (Just IA32) + , test "I.A.4.1" <| \_ -> classify centralBanks unsegFed |> Expect.equal (Just IA41) + , test "I.A.4.2" <| \_ -> classify centralBanks unsegSwiss |> Expect.equal (Just IA48) + ] diff --git a/tests/Morphir/Sample/Reg/LCR/FedCodeTest.elm b/tests/Morphir/Sample/Reg/LCR/FedCodeTest.elm index 491ba0e..9b82c31 100644 --- a/tests/Morphir/Sample/Reg/LCR/FedCodeTest.elm +++ b/tests/Morphir/Sample/Reg/LCR/FedCodeTest.elm @@ -31,25 +31,42 @@ import Test exposing (Test, describe, test) import Time exposing (Month(..)) +cashflow = + Cashflow + (LegalEntity "LE1" (Just USA)) + "partyID1" + USD + (Counterparty USA "5Gx" "Account1") + (Money 100) + (Money 90) + "" + "" + "" + "" + "" + "Segregated Cash" + + +centralBanks = + Dict.fromList + [ ( "brasil", Banco_Central_Do_Brasil ) + , ( "japan", Bank_of_Japan ) + , ( "england", Bank_of_England ) + , ( "france", Banca_De_France ) + , ( "italy", Bance_Di_Italia ) + , ( "swiss", Swiss_National_Bank ) + , ( "korea", Bank_of_Korea ) + , ( "deutsche", Deutsche_Bundesbank ) + , ( "lux", Banque_Centrale_Du_Luxembourg ) + , ( "china", Peoples_Bank_of_China ) + , ( "india", Reserve_Bank_of_India ) + , ( "russia", Central_Bank_of_The_Russian_Federation ) + , ( "fed", Federal_Reserve_Bank ) + ] + + netUsdTest : Test netUsdTest = - let - cashflow = - Cashflow - (LegalEntity "LE1" (Just USA)) - "partyID1" - USD - (Counterparty USA "5Gx" "Account1") - (Money 100) - (Money 90) - "" - "" - "" - "" - "" - "" - "Segregated Cash" - in describe "Net USD tests" [ test "basic net USD" <| \_ -> netCashUSD cashflow |> Expect.equal 100 ] @@ -73,20 +90,7 @@ isOnshoreTest : Test isOnshoreTest = let c = - Cashflow - (LegalEntity "" (Just USA)) - "" - USD - (Counterparty USA "" "") - (Money 100) - (Money 90) - "" - "" - "" - "" - "" - "" - "Segregated Cash" + cashflow in describe "Onshore vs Offshore tests" [ test "All US" <| \_ -> isOnshore c |> Expect.true "Expected True" @@ -100,37 +104,7 @@ classifyTest : Test classifyTest = let c = - Cashflow - (LegalEntity "" (Just USA)) - "" - USD - (Counterparty USA "" "") - (Money 100) - (Money 90) - "" - "" - "" - "" - "" - "" - "Segregated Cash" - - centralBanks = - Dict.fromList - [ ( "brasil", Banco_Central_Do_Brasil ) - , ( "japan", Bank_of_Japan ) - , ( "england", Bank_of_England ) - , ( "france", Banca_De_France ) - , ( "italy", Bance_Di_Italia ) - , ( "swiss", Swiss_National_Bank ) - , ( "korea", Bank_of_Korea ) - , ( "deutsche", Deutsche_Bundesbank ) - , ( "lux", Banque_Centrale_Du_Luxembourg ) - , ( "china", Peoples_Bank_of_China ) - , ( "india", Reserve_Bank_of_India ) - , ( "russia", Central_Bank_of_The_Russian_Federation ) - , ( "fed", Federal_Reserve_Bank ) - ] + cashflow in describe "6G classification test" [ test "I.A.3.1" <| \_ -> classify { c | partyId = "fed" } centralBanks |> Expect.equal IA31 From 0caa97392410479b8126ef2241df5368419c57b2 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Thu, 10 Jun 2021 10:51:18 -0400 Subject: [PATCH 65/88] updated seg cash to leve 4 and fixed IA3 vs 4 --- src/Morphir/Sample/Reg/LCR/FedCodeRules.elm | 94 ++++++++++--------- .../Sample/Reg/LCR/FedCodeRulesTest.elm | 27 ++---- 2 files changed, 56 insertions(+), 65 deletions(-) diff --git a/src/Morphir/Sample/Reg/LCR/FedCodeRules.elm b/src/Morphir/Sample/Reg/LCR/FedCodeRules.elm index 4a26fdb..d2dc6f3 100644 --- a/src/Morphir/Sample/Reg/LCR/FedCodeRules.elm +++ b/src/Morphir/Sample/Reg/LCR/FedCodeRules.elm @@ -183,7 +183,7 @@ classify centralBanks cashflow = -- It is a central bank case partyIsCentralBank of Just centralBank -> - rules_I_A cashflow.tenQLevel6 centralBank + rules_I_A cashflow.tenQLevel4 centralBank notCentralBank -> if String.toUpper cashflow.tenQLevel5 == "CASH AND DUE FROM BANKS" || String.toUpper cashflow.tenQLevel5 == "OVERNIGHT AND TERM DEPOSITS" || String.toUpper cashflow.tenQLevel5 == "CASH EQUIVALENTS" then @@ -193,56 +193,17 @@ classify centralBanks cashflow = Nothing -centralBankToSubProduct : CentralBank -> CentralBankSubProduct -centralBankToSubProduct cb = - case cb of - Federal_Reserve_Bank -> - FRB - - Swiss_National_Bank -> - SNB - - Bank_of_England -> - BOE - European_Central_Bank -> - ECB - - Bank_of_Japan -> - BOJ - - Reserve_Bank_of_Australia -> - RBA - - Bank_of_Canada -> - BOC - - -- TODO What maps to Other Cash Currency and Coin???? - _ -> - OCB - - -segregatedCash : String -segregatedCash = - "Seg Cash" - - -isCentralBank : Maybe CentralBank -> Bool -isCentralBank m = - m |> Maybe.map (\x -> True) |> Maybe.withDefault False - - - ---rules_I_A : TenQLevel6 -> CentralBank -> Maybe RuleCode +--rules_I_A : TenQLevel4 -> CentralBank -> Maybe RuleCode rules_I_A : String -> CentralBank -> Maybe RuleCode -rules_I_A tenQLevel6 centralBank = - if tenQLevel6 == segregatedCash then - Just (rule_I_A_3 centralBank) +rules_I_A tenQLevel4 centralBank = + if tenQLevel4 == segregatedCash then + Just (rule_I_A_4 centralBank) else - Just (rule_I_A_4 centralBank) + Just (rule_I_A_3 centralBank) rule_I_A_3 : CentralBank -> RuleCode @@ -324,11 +285,54 @@ rule_I_U adjustedAmountUSD legalEntityCountry cashflowCurrency counterpartyCount Just IU4 +centralBankToSubProduct : CentralBank -> CentralBankSubProduct +centralBankToSubProduct cb = + case cb of + Federal_Reserve_Bank -> + FRB + + Swiss_National_Bank -> + SNB + + Bank_of_England -> + BOE + + European_Central_Bank -> + ECB + + Bank_of_Japan -> + BOJ + + Reserve_Bank_of_Australia -> + RBA + + Bank_of_Canada -> + BOC + + -- TODO What maps to Other Cash Currency and Coin???? + _ -> + OCB + + +segregatedCash : String +segregatedCash = + "Seg Cash" + + +isCentralBank : Maybe CentralBank -> Bool +isCentralBank m = + m |> Maybe.map (\x -> True) |> Maybe.withDefault False + + isOnshore : Country -> Currency -> Country -> Bool isOnshore legalEntityCountry cashflowCurrency counterpartyCountry = Just legalEntityCountry == Currency.country cashflowCurrency && legalEntityCountry == counterpartyCountry + +-- Group across same Entity, Party ID, Currency, and Product Type + + netCashUSD : AdjustedAmountUSD -> Float netCashUSD adjustedAmountUSD = -- TODO the calculation diff --git a/tests/Morphir/Sample/Reg/LCR/FedCodeRulesTest.elm b/tests/Morphir/Sample/Reg/LCR/FedCodeRulesTest.elm index 02f30dc..0410671 100644 --- a/tests/Morphir/Sample/Reg/LCR/FedCodeRulesTest.elm +++ b/tests/Morphir/Sample/Reg/LCR/FedCodeRulesTest.elm @@ -40,9 +40,9 @@ cashflow = "" "" "" + "Segregated Cash" "" "" - "Segregated Cash" centralBanks = @@ -138,29 +138,16 @@ rules_I_ATest = "Other" in describe "Rules I.A Test" - [ test "Seg Cash Federal_Reserve_Bank" <| \_ -> rules_I_A segCash Federal_Reserve_Bank |> Debug.toString |> String.left 8 |> Expect.equal "Just IA3" - , test "Not Seg Cash Federal_Reserve_Bank" <| \_ -> rules_I_A notSegCash Federal_Reserve_Bank |> Debug.toString |> String.left 8 |> Expect.equal "Just IA4" + [ test "Not Seg Cash Federal_Reserve_Bank" <| \_ -> rules_I_A notSegCash Federal_Reserve_Bank |> Debug.toString |> String.left 8 |> Expect.equal "Just IA3" + , test "Seg Cash Federal_Reserve_Bank" <| \_ -> rules_I_A segCash Federal_Reserve_Bank |> Debug.toString |> String.left 8 |> Expect.equal "Just IA4" ] classifyTest : Test classifyTest = - let - segFed = - { cashflow | tenQLevel6 = segregatedCash, partyId = "fed" } - - segSwiss = - { cashflow | tenQLevel6 = segregatedCash, partyId = "swiss" } - - unsegFed = - { cashflow | tenQLevel6 = "", partyId = "fed" } - - unsegSwiss = - { cashflow | tenQLevel6 = "", partyId = "lux" } - in describe "6G classification test" - [ test "I.A.3.1" <| \_ -> classify centralBanks segFed |> Expect.equal (Just IA31) - , test "I.A.3.2" <| \_ -> classify centralBanks segSwiss |> Expect.equal (Just IA32) - , test "I.A.4.1" <| \_ -> classify centralBanks unsegFed |> Expect.equal (Just IA41) - , test "I.A.4.2" <| \_ -> classify centralBanks unsegSwiss |> Expect.equal (Just IA48) + [ test "I.A.3.1" <| \_ -> classify centralBanks { cashflow | tenQLevel4 = " ", partyId = "fed" } |> Expect.equal (Just IA31) + , test "I.A.3.8" <| \_ -> classify centralBanks { cashflow | tenQLevel4 = " ", partyId = "lux" } |> Expect.equal (Just IA38) + , test "I.A.4.1" <| \_ -> classify centralBanks { cashflow | tenQLevel4 = segregatedCash, partyId = "fed" } |> Expect.equal (Just IA41) + , test "I.A.4.2" <| \_ -> classify centralBanks { cashflow | tenQLevel4 = segregatedCash, partyId = "swiss" } |> Expect.equal (Just IA42) ] From ac4bd4795f9663e9e9563292fe740317da7b872e Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Fri, 11 Jun 2021 18:10:37 -0400 Subject: [PATCH 66/88] cute list approach to rule hierarchies --- src/Morphir/Sample/Reg/LCR/FedCode.elm | 2 +- src/Morphir/Sample/Reg/LCR/FedCodeRules.elm | 151 +++++++++--------- .../Sample/Reg/LCR/FedCodeRulesTest.elm | 56 +++---- tests/Morphir/Sample/Reg/LCR/FedCodeTest.elm | 4 +- 4 files changed, 103 insertions(+), 110 deletions(-) diff --git a/src/Morphir/Sample/Reg/LCR/FedCode.elm b/src/Morphir/Sample/Reg/LCR/FedCode.elm index 8ded3e5..aa0c1aa 100644 --- a/src/Morphir/Sample/Reg/LCR/FedCode.elm +++ b/src/Morphir/Sample/Reg/LCR/FedCode.elm @@ -212,7 +212,7 @@ classify cashflow centralBanks = case partyAsCentralBank of -- It is a central bank Just centralBank -> - if cashflow.tenQLevel6 == "Segregated Cash" then + if cashflow.tenQLevel6 /= "Segregated Cash" then case centralBankToSubProduct centralBank of FRB -> IA31 diff --git a/src/Morphir/Sample/Reg/LCR/FedCodeRules.elm b/src/Morphir/Sample/Reg/LCR/FedCodeRules.elm index d2dc6f3..aec6342 100644 --- a/src/Morphir/Sample/Reg/LCR/FedCodeRules.elm +++ b/src/Morphir/Sample/Reg/LCR/FedCodeRules.elm @@ -134,31 +134,13 @@ type alias Cashflow = } -type RuleCode - = IA31 - | IA32 - | IA33 - | IA34 - | IA35 - | IA36 - | IA37 - | IA38 - | IA39 - | IA41 - | IA42 - | IA43 - | IA44 - | IA45 - | IA46 - | IA47 - | IA48 - | IA49 - | IU1 - | IU2 - | IU4 - | OW9 - | OW10 - | Unclassified +type alias RuleCode = + List String + + +toString : RuleCode -> String +toString rulecode = + rulecode |> String.join "." type CentralBankSubProduct @@ -173,7 +155,7 @@ type CentralBankSubProduct | Other_Cash_Currency_And_Coin -classify : Dict PartyID CentralBank -> Cashflow -> Maybe RuleCode +classify : Dict PartyID CentralBank -> Cashflow -> RuleCode classify centralBanks cashflow = let partyIsCentralBank : Maybe CentralBank @@ -190,99 +172,110 @@ classify centralBanks cashflow = rule_I_U cashflow.amountUSD cashflow.legalEntity.country cashflow.currency cashflow.counterparty.country else - Nothing + [] --rules_I_A : TenQLevel4 -> CentralBank -> Maybe RuleCode -rules_I_A : String -> CentralBank -> Maybe RuleCode +rules_I_A : String -> CentralBank -> RuleCode rules_I_A tenQLevel4 centralBank = - if tenQLevel4 == segregatedCash then - Just (rule_I_A_4 centralBank) + List.append [ "I", "A" ] + (if tenQLevel4 == segregatedCash then + rule_I_A_4 centralBank - else - Just (rule_I_A_3 centralBank) + else + rule_I_A_3 centralBank + ) rule_I_A_3 : CentralBank -> RuleCode rule_I_A_3 centralBank = - case centralBankToSubProduct centralBank of - FRB -> - IA31 + List.append [ "3" ] + (case centralBankToSubProduct centralBank of + FRB -> + [ "1" ] - SNB -> - IA32 + SNB -> + [ "2" ] - BOE -> - IA33 + BOE -> + [ "3" ] - ECB -> - IA34 + ECB -> + [ "4" ] - BOJ -> - IA35 + BOJ -> + [ "5" ] - RBA -> - IA36 + RBA -> + [ "6" ] - BOC -> - IA37 + BOC -> + [ "7" ] - OCB -> - IA38 + OCB -> + [ "8" ] - Other_Cash_Currency_And_Coin -> - IA39 + Other_Cash_Currency_And_Coin -> + [ "9" ] + ) rule_I_A_4 : CentralBank -> RuleCode rule_I_A_4 centralBank = - case centralBankToSubProduct centralBank of - FRB -> - IA41 + List.append [ "4" ] + (case centralBankToSubProduct centralBank of + FRB -> + [ "1" ] - SNB -> - IA42 + SNB -> + [ "2" ] - BOE -> - IA43 + BOE -> + [ "3" ] - ECB -> - IA44 + ECB -> + [ "4" ] - BOJ -> - IA45 + BOJ -> + [ "5" ] - RBA -> - IA46 + RBA -> + [ "6" ] - BOC -> - IA47 + BOC -> + [ "7" ] - OCB -> - IA48 + OCB -> + [ "8" ] - Other_Cash_Currency_And_Coin -> - IA49 + Other_Cash_Currency_And_Coin -> + [ "9" ] + ) ---rule_I_U : AdjustedAmountUSD -> Country -> Currency -> Country -> Maybe RuleCode +--rule_I_U : AdjustedAmountUSD -> Country -> Currency -> Country -> RuleCode -rule_I_U : Float -> Country -> Currency -> Country -> Maybe RuleCode +rule_I_U : Float -> Country -> Currency -> Country -> RuleCode rule_I_U adjustedAmountUSD legalEntityCountry cashflowCurrency counterpartyCountry = - if netCashUSD adjustedAmountUSD >= 0 then - if isOnshore legalEntityCountry cashflowCurrency counterpartyCountry then - Just IU1 + let + tail : String + tail = + if netCashUSD adjustedAmountUSD >= 0 then + if isOnshore legalEntityCountry cashflowCurrency counterpartyCountry then + "1" - else - Just IU2 + else + "2" - else - Just IU4 + else + "4" + in + List.append [ "I", "U" ] [ tail ] centralBankToSubProduct : CentralBank -> CentralBankSubProduct diff --git a/tests/Morphir/Sample/Reg/LCR/FedCodeRulesTest.elm b/tests/Morphir/Sample/Reg/LCR/FedCodeRulesTest.elm index 0410671..104e3f7 100644 --- a/tests/Morphir/Sample/Reg/LCR/FedCodeRulesTest.elm +++ b/tests/Morphir/Sample/Reg/LCR/FedCodeRulesTest.elm @@ -97,34 +97,34 @@ isOnshoreTest = rule_I_A_3Test : Test rule_I_A_3Test = describe "Rule I.A.3 Test" - [ test "Federal_Reserve_Bank" <| \_ -> rule_I_A_3 Federal_Reserve_Bank |> Expect.equal IA31 - , test "Swiss_National_Bank" <| \_ -> rule_I_A_3 Swiss_National_Bank |> Expect.equal IA32 - , test "Bank_of_England" <| \_ -> rule_I_A_3 Bank_of_England |> Expect.equal IA33 - , test "European_Central_Bank" <| \_ -> rule_I_A_3 European_Central_Bank |> Expect.equal IA34 - , test "Bank_of_Japan" <| \_ -> rule_I_A_3 Bank_of_Japan |> Expect.equal IA35 - , test "Reserve_Bank_of_Australia" <| \_ -> rule_I_A_3 Reserve_Bank_of_Australia |> Expect.equal IA36 - , test "Bank_of_Canada" <| \_ -> rule_I_A_3 Bank_of_Canada |> Expect.equal IA37 - , test "Peoples_Bank_of_China" <| \_ -> rule_I_A_3 Peoples_Bank_of_China |> Expect.equal IA38 - , test "Banco_Central_Do_Brasil" <| \_ -> rule_I_A_3 Banco_Central_Do_Brasil |> Expect.equal IA38 - - --, test "Other_Cash_Currency_And_Coin" <| \_ -> rule_I_A_3 FRB |> Expect.equal IA39 + [ test "Federal_Reserve_Bank" <| \_ -> rule_I_A_3 Federal_Reserve_Bank |> Expect.equal [ "3", "1" ] + , test "Swiss_National_Bank" <| \_ -> rule_I_A_3 Swiss_National_Bank |> Expect.equal [ "3", "2" ] + , test "Bank_of_England" <| \_ -> rule_I_A_3 Bank_of_England |> Expect.equal [ "3", "3" ] + , test "European_Central_Bank" <| \_ -> rule_I_A_3 European_Central_Bank |> Expect.equal [ "3", "4" ] + , test "Bank_of_Japan" <| \_ -> rule_I_A_3 Bank_of_Japan |> Expect.equal [ "3", "5" ] + , test "Reserve_Bank_of_Australia" <| \_ -> rule_I_A_3 Reserve_Bank_of_Australia |> Expect.equal [ "3", "6" ] + , test "Bank_of_Canada" <| \_ -> rule_I_A_3 Bank_of_Canada |> Expect.equal [ "3", "7" ] + , test "Peoples_Bank_of_China" <| \_ -> rule_I_A_3 Peoples_Bank_of_China |> Expect.equal [ "3", "8" ] + , test "Banco_Central_Do_Brasil" <| \_ -> rule_I_A_3 Banco_Central_Do_Brasil |> Expect.equal [ "3", "8" ] + + --, test "Other_Cash_Currency_And_Coin" <| \_ -> rule_I_A_3 FRB |> Expect.equal "I.A.3.9" ] rule_I_A_4Test : Test rule_I_A_4Test = describe "Rule I.A.4 Test" - [ test "Federal_Reserve_Bank" <| \_ -> rule_I_A_4 Federal_Reserve_Bank |> Expect.equal IA41 - , test "Swiss_National_Bank" <| \_ -> rule_I_A_4 Swiss_National_Bank |> Expect.equal IA42 - , test "Bank_of_England" <| \_ -> rule_I_A_4 Bank_of_England |> Expect.equal IA43 - , test "European_Central_Bank" <| \_ -> rule_I_A_4 European_Central_Bank |> Expect.equal IA44 - , test "Bank_of_Japan" <| \_ -> rule_I_A_4 Bank_of_Japan |> Expect.equal IA45 - , test "Reserve_Bank_of_Australia" <| \_ -> rule_I_A_4 Reserve_Bank_of_Australia |> Expect.equal IA46 - , test "Bank_of_Canada" <| \_ -> rule_I_A_4 Bank_of_Canada |> Expect.equal IA47 - , test "Peoples_Bank_of_China" <| \_ -> rule_I_A_4 Peoples_Bank_of_China |> Expect.equal IA48 - , test "Banco_Central_Do_Brasil" <| \_ -> rule_I_A_4 Banco_Central_Do_Brasil |> Expect.equal IA48 - - --, test "Other_Cash_Currency_And_Coin" <| \_ -> rule_I_A_3 FRB |> Expect.equal IA39 + [ test "Federal_Reserve_Bank" <| \_ -> rule_I_A_4 Federal_Reserve_Bank |> Expect.equal [ "4", "1" ] + , test "Swiss_National_Bank" <| \_ -> rule_I_A_4 Swiss_National_Bank |> Expect.equal [ "4", "2" ] + , test "Bank_of_England" <| \_ -> rule_I_A_4 Bank_of_England |> Expect.equal [ "4", "3" ] + , test "European_Central_Bank" <| \_ -> rule_I_A_4 European_Central_Bank |> Expect.equal [ "4", "4" ] + , test "Bank_of_Japan" <| \_ -> rule_I_A_4 Bank_of_Japan |> Expect.equal [ "4", "5" ] + , test "Reserve_Bank_of_Australia" <| \_ -> rule_I_A_4 Reserve_Bank_of_Australia |> Expect.equal [ "4", "6" ] + , test "Bank_of_Canada" <| \_ -> rule_I_A_4 Bank_of_Canada |> Expect.equal [ "4", "7" ] + , test "Peoples_Bank_of_China" <| \_ -> rule_I_A_4 Peoples_Bank_of_China |> Expect.equal [ "4", "8" ] + , test "Banco_Central_Do_Brasil" <| \_ -> rule_I_A_4 Banco_Central_Do_Brasil |> Expect.equal [ "4", "8" ] + + --, test "Other_Cash_Currency_And_Coin" <| \_ -> rule_I_A_3 FRB |> Expect.equal ["4","9"] ] @@ -138,16 +138,16 @@ rules_I_ATest = "Other" in describe "Rules I.A Test" - [ test "Not Seg Cash Federal_Reserve_Bank" <| \_ -> rules_I_A notSegCash Federal_Reserve_Bank |> Debug.toString |> String.left 8 |> Expect.equal "Just IA3" - , test "Seg Cash Federal_Reserve_Bank" <| \_ -> rules_I_A segCash Federal_Reserve_Bank |> Debug.toString |> String.left 8 |> Expect.equal "Just IA4" + [ test "Not Seg Cash Federal_Reserve_Bank" <| \_ -> rules_I_A notSegCash Federal_Reserve_Bank |> toString |> String.left 5 |> Expect.equal "I.A.3" + , test "Seg Cash Federal_Reserve_Bank" <| \_ -> rules_I_A segCash Federal_Reserve_Bank |> toString |> String.left 5 |> Expect.equal "I.A.4" ] classifyTest : Test classifyTest = describe "6G classification test" - [ test "I.A.3.1" <| \_ -> classify centralBanks { cashflow | tenQLevel4 = " ", partyId = "fed" } |> Expect.equal (Just IA31) - , test "I.A.3.8" <| \_ -> classify centralBanks { cashflow | tenQLevel4 = " ", partyId = "lux" } |> Expect.equal (Just IA38) - , test "I.A.4.1" <| \_ -> classify centralBanks { cashflow | tenQLevel4 = segregatedCash, partyId = "fed" } |> Expect.equal (Just IA41) - , test "I.A.4.2" <| \_ -> classify centralBanks { cashflow | tenQLevel4 = segregatedCash, partyId = "swiss" } |> Expect.equal (Just IA42) + [ test "I.A.3.1" <| \_ -> classify centralBanks { cashflow | tenQLevel4 = " ", partyId = "fed" } |> toString |> Expect.equal "I.A.3.1" + , test "I.A.3.8" <| \_ -> classify centralBanks { cashflow | tenQLevel4 = " ", partyId = "lux" } |> toString |> Expect.equal "I.A.3.8" + , test "I.A.4.1" <| \_ -> classify centralBanks { cashflow | tenQLevel4 = segregatedCash, partyId = "fed" } |> toString |> Expect.equal "I.A.4.1" + , test "I.A.4.2" <| \_ -> classify centralBanks { cashflow | tenQLevel4 = segregatedCash, partyId = "swiss" } |> toString |> Expect.equal "I.A.4.2" ] diff --git a/tests/Morphir/Sample/Reg/LCR/FedCodeTest.elm b/tests/Morphir/Sample/Reg/LCR/FedCodeTest.elm index 9b82c31..14d9cb4 100644 --- a/tests/Morphir/Sample/Reg/LCR/FedCodeTest.elm +++ b/tests/Morphir/Sample/Reg/LCR/FedCodeTest.elm @@ -107,6 +107,6 @@ classifyTest = cashflow in describe "6G classification test" - [ test "I.A.3.1" <| \_ -> classify { c | partyId = "fed" } centralBanks |> Expect.equal IA31 - , test "I.A.3.2" <| \_ -> classify { c | partyId = "swiss" } centralBanks |> Expect.equal IA32 + [ test "I.A.4.1" <| \_ -> classify { c | partyId = "fed" } centralBanks |> Expect.equal IA41 + , test "I.A.4.2" <| \_ -> classify { c | partyId = "swiss" } centralBanks |> Expect.equal IA42 ] From 56fb6abfcc492eb7ed8cdeee52e25a93ab5ea712 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Mon, 14 Jun 2021 16:02:08 -0400 Subject: [PATCH 67/88] added I.U tests added calculate function --- src/Morphir/Sample/Reg/LCR/FedCodeRules.elm | 11 ++++ .../Sample/Reg/LCR/FedCodeRulesTest.elm | 56 +++++++++++++++++-- 2 files changed, 62 insertions(+), 5 deletions(-) diff --git a/src/Morphir/Sample/Reg/LCR/FedCodeRules.elm b/src/Morphir/Sample/Reg/LCR/FedCodeRules.elm index aec6342..a0b871e 100644 --- a/src/Morphir/Sample/Reg/LCR/FedCodeRules.elm +++ b/src/Morphir/Sample/Reg/LCR/FedCodeRules.elm @@ -155,6 +155,17 @@ type CentralBankSubProduct | Other_Cash_Currency_And_Coin +calculate : Dict PartyID CentralBank -> List Cashflow -> List ( Cashflow, RuleCode ) +calculate centralBanks cashflows = + let + firstPass : List ( Cashflow, RuleCode ) + firstPass = + cashflows + |> List.map (\cashflow -> ( cashflow, classify centralBanks cashflow )) + in + firstPass + + classify : Dict PartyID CentralBank -> Cashflow -> RuleCode classify centralBanks cashflow = let diff --git a/tests/Morphir/Sample/Reg/LCR/FedCodeRulesTest.elm b/tests/Morphir/Sample/Reg/LCR/FedCodeRulesTest.elm index 104e3f7..1700783 100644 --- a/tests/Morphir/Sample/Reg/LCR/FedCodeRulesTest.elm +++ b/tests/Morphir/Sample/Reg/LCR/FedCodeRulesTest.elm @@ -137,17 +137,63 @@ rules_I_ATest = notSegCash = "Other" in - describe "Rules I.A Test" + describe "Rules I.A test" [ test "Not Seg Cash Federal_Reserve_Bank" <| \_ -> rules_I_A notSegCash Federal_Reserve_Bank |> toString |> String.left 5 |> Expect.equal "I.A.3" , test "Seg Cash Federal_Reserve_Bank" <| \_ -> rules_I_A segCash Federal_Reserve_Bank |> toString |> String.left 5 |> Expect.equal "I.A.4" ] +rule_I_UTest : Test +rule_I_UTest = + describe "Rules I.U test" + [ test "negative and onshore" <| \_ -> rule_I_U -1 USA USD USA |> Expect.equal [ "I", "U", "4" ] + , test "negative and offshore" <| \_ -> rule_I_U -1 USA EUR USA |> Expect.equal [ "I", "U", "4" ] + , test "0 and onshore" <| \_ -> rule_I_U 0 USA USD USA |> Expect.equal [ "I", "U", "1" ] + , test "0 and offshore" <| \_ -> rule_I_U 0 USA EUR USA |> Expect.equal [ "I", "U", "2" ] + , test "positive and onshore" <| \_ -> rule_I_U 1 USA USD USA |> Expect.equal [ "I", "U", "1" ] + , test "positive and offshore 0" <| \_ -> rule_I_U 1 AUS USD USA |> Expect.equal [ "I", "U", "2" ] + , test "positive and offshore 1" <| \_ -> rule_I_U 1 USA EUR USA |> Expect.equal [ "I", "U", "2" ] + , test "positive and offshore 2" <| \_ -> rule_I_U 1 USA USD JPN |> Expect.equal [ "I", "U", "2" ] + ] + + classifyTest : Test classifyTest = describe "6G classification test" - [ test "I.A.3.1" <| \_ -> classify centralBanks { cashflow | tenQLevel4 = " ", partyId = "fed" } |> toString |> Expect.equal "I.A.3.1" - , test "I.A.3.8" <| \_ -> classify centralBanks { cashflow | tenQLevel4 = " ", partyId = "lux" } |> toString |> Expect.equal "I.A.3.8" - , test "I.A.4.1" <| \_ -> classify centralBanks { cashflow | tenQLevel4 = segregatedCash, partyId = "fed" } |> toString |> Expect.equal "I.A.4.1" - , test "I.A.4.2" <| \_ -> classify centralBanks { cashflow | tenQLevel4 = segregatedCash, partyId = "swiss" } |> toString |> Expect.equal "I.A.4.2" + [ test "I.A.3.1" <| \_ -> classify centralBanks { cashflow | tenQLevel4 = " ", partyId = "fed" } |> Expect.equal [ "I", "A", "3", "1" ] + , test "I.A.3.8" <| \_ -> classify centralBanks { cashflow | tenQLevel4 = " ", partyId = "lux" } |> Expect.equal [ "I", "A", "3", "8" ] + , test "I.A.4.1" <| \_ -> classify centralBanks { cashflow | tenQLevel4 = segregatedCash, partyId = "fed" } |> Expect.equal [ "I", "A", "4", "1" ] + , test "I.A.4.2" <| \_ -> classify centralBanks { cashflow | tenQLevel4 = segregatedCash, partyId = "swiss" } |> Expect.equal [ "I", "A", "4", "2" ] + , test "I.U.1" <| \_ -> classify centralBanks { cashflow | tenQLevel5 = "CASH AND DUE FROM BANKS", partyId = "", amountUSD = 1, legalEntity = LegalEntity "" USA, counterparty = Counterparty USA "" "", currency = USD } |> Expect.equal [ "I", "U", "1" ] + , test "I.U.2" <| \_ -> classify centralBanks { cashflow | tenQLevel5 = "OVERNIGHT AND TERM DEPOSITS", partyId = "", amountUSD = 0, legalEntity = LegalEntity "" USA, counterparty = Counterparty USA "" "", currency = EUR } |> Expect.equal [ "I", "U", "2" ] + , test "I.U.4" <| \_ -> classify centralBanks { cashflow | tenQLevel5 = "CASH EQUIVALENTS", partyId = "", amountUSD = -1, legalEntity = LegalEntity "" USA, counterparty = Counterparty USA "" "", currency = USD } |> Expect.equal [ "I", "U", "4" ] + , test "unclassified" <| \_ -> classify centralBanks { cashflow | partyId = "", amountUSD = -1, legalEntity = LegalEntity "" USA, counterparty = Counterparty USA "" "", currency = USD } |> Expect.equal [] + ] + + +calculateTest : Test +calculateTest = + let + c1 = + { cashflow | tenQLevel4 = " ", partyId = "fed" } + + c2 = + { cashflow | tenQLevel4 = " ", partyId = "lux" } + + c3 = + { cashflow | tenQLevel4 = segregatedCash, partyId = "fed" } + + c4 = + { cashflow | tenQLevel4 = segregatedCash, partyId = "swiss" } + in + describe "6G calculation test" + [ test "I.A.3.1, I.A.3.8, I.A.4.1, I.A.4.2" <| + \_ -> + calculate centralBanks [ c1, c2, c3, c4 ] + |> Expect.equal + [ ( c1, [ "I", "A", "3", "1" ] ) + , ( c2, [ "I", "A", "3", "8" ] ) + , ( c3, [ "I", "A", "4", "1" ] ) + , ( c4, [ "I", "A", "4", "2" ] ) + ] ] From 9af432b6b1ec3c9daa841f970700afb81c51166c Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Mon, 14 Jun 2021 17:12:04 -0400 Subject: [PATCH 68/88] Updated LCR and RTS22 to shared types --- morphir-ir.json | 31414 ++++++++++++++----- morphir.json | 4 +- src/Morphir/Sample/Reg/CDM/MiFIR/RTS22.elm | 17 +- src/Morphir/Sample/Reg/LCR/Basics.elm | 16 +- src/Morphir/Sample/Reg/LCR/Flows.elm | 4 +- src/Morphir/Sample/Reg/LCR/Inflows.elm | 43 +- src/Morphir/Sample/Reg/LCR/Outflows.elm | 76 +- 7 files changed, 23673 insertions(+), 7901 deletions(-) diff --git a/morphir-ir.json b/morphir-ir.json index b9d3178..ed0ab93 100644 --- a/morphir-ir.json +++ b/morphir-ir.json @@ -47272,13 +47272,6 @@ ], [] ], - [ - [ - "beutsche", - "bundesbank" - ], - [] - ], [ [ "central", @@ -47290,6 +47283,13 @@ ], [] ], + [ + [ + "deutsche", + "bundesbank" + ], + [] + ], [ [ "european", @@ -47806,51 +47806,8 @@ ], [ [ - "legacy", - "g", - "l", - "account" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "legacy", - "g", - "l", - "account" - ] - ], - [] - ] - ], - [ - [ - "gl", - "account", + "ten", + "q", "level", "1" ], @@ -47881,9 +47838,8 @@ ] ], [ - "g", - "l", - "account", + "ten", + "q", "level", "1" ] @@ -47893,8 +47849,8 @@ ], [ [ - "gl", - "account", + "ten", + "q", "level", "2" ], @@ -47925,9 +47881,8 @@ ] ], [ - "g", - "l", - "account", + "ten", + "q", "level", "2" ] @@ -47937,8 +47892,8 @@ ], [ [ - "gl", - "account", + "ten", + "q", "level", "3" ], @@ -47969,9 +47924,8 @@ ] ], [ - "g", - "l", - "account", + "ten", + "q", "level", "3" ] @@ -47981,8 +47935,8 @@ ], [ [ - "gl", - "account", + "ten", + "q", "level", "4" ], @@ -48013,9 +47967,8 @@ ] ], [ - "g", - "l", - "account", + "ten", + "q", "level", "4" ] @@ -48025,8 +47978,8 @@ ], [ [ - "gl", - "account", + "ten", + "q", "level", "5" ], @@ -48057,9 +48010,8 @@ ] ], [ - "g", - "l", - "account", + "ten", + "q", "level", "5" ] @@ -48069,8 +48021,8 @@ ], [ [ - "gl", - "account", + "ten", + "q", "level", "6" ], @@ -48101,9 +48053,8 @@ ] ], [ - "g", - "l", - "account", + "ten", + "q", "level", "6" ] @@ -48812,8 +48763,7 @@ ], [ [ - "z", - "0" + "unclassified" ], [] ] @@ -48825,11 +48775,8 @@ ], [ [ - "g", - "l", - "account", - "level", - "1" + "legal", + "entity" ], [ "public", @@ -48839,29 +48786,106 @@ "type_alias_definition", [], [ - "reference", + "record", {}, [ [ [ - "morphir" + "code" ], [ - "s", - "d", - "k" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "legal", + "entity", + "code" + ] + ], + [] ] ], [ [ - "string" + "country" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] ] - ], - [ - "string" ] - ], - [] + ] ] ] ] @@ -48869,11 +48893,9 @@ ], [ [ - "g", - "l", - "account", - "level", - "2" + "legal", + "entity", + "code" ], [ "public", @@ -48913,43 +48935,61 @@ ], [ [ - "g", - "l", - "account", - "level", - "3" + "money" ], [ "public", [ "", [ - "type_alias_definition", - [], + "custom_type_definition", [ - "reference", - {}, + [ + "a" + ] + ], + [ + "public", [ [ [ - "morphir" + "money" ], [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" + [ + [ + "arg", + "1" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ] + ] ] - ], - [ - "string" ] - ], - [] + ] ] ] ] @@ -48957,43 +48997,25 @@ ], [ [ - "g", - "l", - "account", - "level", - "4" + "mx" ], [ "public", [ "", [ - "type_alias_definition", + "custom_type_definition", [], [ - "reference", - {}, + "public", [ [ [ - "morphir" + "mx" ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" + [] ] - ], - [] + ] ] ] ] @@ -49001,11 +49023,9 @@ ], [ [ - "g", - "l", - "account", - "level", - "5" + "party", + "i", + "d" ], [ "public", @@ -49045,11 +49065,8 @@ ], [ [ - "g", - "l", - "account", - "level", - "6" + "product", + "type" ], [ "public", @@ -49089,10 +49106,10 @@ ], [ [ - "legacy", - "g", - "l", - "account" + "ten", + "q", + "level", + "1" ], [ "public", @@ -49132,8 +49149,10 @@ ], [ [ - "legal", - "entity" + "ten", + "q", + "level", + "2" ], [ "public", @@ -49143,106 +49162,29 @@ "type_alias_definition", [], [ - "record", + "reference", {}, [ [ [ - "code" + "morphir" ], [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "legal", - "entity", - "code" - ] - ], - [] + "s", + "d", + "k" ] ], [ [ - "country" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] + "string" ] + ], + [ + "string" ] - ] + ], + [] ] ] ] @@ -49250,9 +49192,10 @@ ], [ [ - "legal", - "entity", - "code" + "ten", + "q", + "level", + "3" ], [ "public", @@ -49292,87 +49235,42 @@ ], [ [ - "money" + "ten", + "q", + "level", + "4" ], [ "public", [ "", [ - "custom_type_definition", - [ - [ - "a" - ] - ], + "type_alias_definition", + [], [ - "public", + "reference", + {}, [ [ [ - "money" + "morphir" ], [ - [ - [ - "arg", - "1" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ] - ] + "s", + "d", + "k" ] - ] - ] - ] - ] - ] - ] - ], - [ - [ - "mx" - ], - [ - "public", - [ - "", - [ - "custom_type_definition", - [], - [ - "public", - [ + ], [ [ - "mx" - ], - [] + "string" + ] + ], + [ + "string" ] - ] + ], + [] ] ] ] @@ -49380,9 +49278,10 @@ ], [ [ - "party", - "i", - "d" + "ten", + "q", + "level", + "5" ], [ "public", @@ -49422,8 +49321,10 @@ ], [ [ - "product", - "type" + "ten", + "q", + "level", + "6" ], [ "public", @@ -50743,37 +50644,16 @@ ], [ [ - "central", - "banks" + "classify" ], [ "public", { - "inputTypes": [], - "outputType": [ - "reference", - {}, + "inputTypes": [ [ [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "dict" - ] + "cashflow" ], - [ - "dict" - ] - ], - [ [ "reference", {}, @@ -50801,9 +50681,7 @@ ] ], [ - "party", - "i", - "d" + "cashflow" ] ], [] @@ -50830,146 +50708,434 @@ "r" ], [ - "central", - "bank" + "fed", + "code" ] ], [ - "central", - "bank" + "cashflow" ] ], [] ] - ] - ], - "body": [ - "apply", + ], [ - "reference", - {}, [ + "central", + "banks" + ], + [ + "reference", + {}, [ [ - "morphir" + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] ], [ - "s", - "d", - "k" - ] - ], - [ + [ + "dict" + ] + ], [ "dict" ] ], [ - "dict" - ] - ], - [ - [ - "reference", - {}, [ + "reference", + {}, [ [ - "morphir" + [ + "morphir" + ], + [ + "sample" + ] ], [ - "sample" + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "party", + "i", + "d" ] ], + [] + ], + [ + "reference", + {}, [ [ - "reg" + [ + "morphir" + ], + [ + "sample" + ] ], [ - "l", - "c", - "r" + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] ], [ - "fed", - "code" + "central", + "bank" ] ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], [ - "party", - "i", - "d" + "s", + "d", + "k" ] ], - [] + [ + [ + "dict" + ] + ], + [ + "dict" + ] ], [ - "reference", - {}, [ + "reference", + {}, [ [ - "morphir" + [ + "morphir" + ], + [ + "sample" + ] ], [ - "sample" + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "party", + "i", + "d" ] ], + [] + ], + [ + "reference", + {}, [ [ - "reg" + [ + "morphir" + ], + [ + "sample" + ] ], [ - "l", - "c", - "r" + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] ], [ "central", "bank" ] ], - [ - "central", - "bank" - ] - ], - [] + [] + ] + ] + ] + ] + ], + "outputType": [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" ] + ], + [ + "fed", + "code" ] ], + [] + ], + "body": [ + "let_definition", [ "reference", + {}, [ - "function", - {}, [ - "reference", - {}, [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] + "morphir" ], [ - [ - "tuple", - {}, + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + "party", + "as", + "central", + "bank" + ], + { + "inputTypes": [], + "outputType": [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + "body": [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "dict" + ] + ], + [ + "dict" + ] + ], [ [ "reference", @@ -51039,33 +51205,7 @@ [] ] ] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "dict" - ] ], - [ - "dict" - ] - ], - [ [ "reference", {}, @@ -51075,144 +51215,62 @@ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" + "maybe" ] ], [ - "party", - "i", - "d" + "maybe" ] ], - [] - ], - [ - "reference", - {}, [ [ + "reference", + {}, [ - "morphir" + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" + [] ] - ], - [] - ] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "dict" - ] - ], - [ - "from", - "list" - ] - ] - ], - [ - "list", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" + ] ] ], [ - "list" - ] - ], - [ - [ - "tuple", - {}, + "reference", [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], + "function", + {}, [ "reference", {}, @@ -51235,156 +51293,201 @@ "r" ], [ - "central", - "bank" + "fed", + "code" ] ], [ - "central", - "bank" + "party", + "i", + "d" ] ], [] - ] - ] - ] - ] - ], - [ - [ - "tuple", - [ - "tuple", - {}, - [ + ], [ - "reference", + "function", {}, [ + "reference", + {}, [ [ - "morphir" + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] ], [ - "s", - "d", - "k" - ] - ], - [ + [ + "dict" + ] + ], [ - "string" + "dict" ] ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ [ [ - "morphir" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "party", + "i", + "d" + ] + ], + [] ], [ - "sample" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] ] - ], + ] + ], + [ + "reference", + {}, [ [ - "reg" + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] ], [ - "l", - "c", - "r" + [ + "maybe" + ] ], [ - "central", - "bank" + "maybe" ] ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, - [ [ [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] ] - ], - [ - "string" ] - ], - [] - ], - [ - "string_literal", - "BBB00137300" + ] ] ], [ - "constructor", [ - "reference", - {}, [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] + "morphir" ], - [] + [ + "s", + "d", + "k" + ] + ], + [ + [ + "dict" + ] ], + [ + "get" + ] + ] + ], + [ + "field", + [ + "reference", + {}, [ [ [ @@ -51404,51 +51507,20 @@ "r" ], [ - "central", - "bank" + "fed", + "code" ] ], [ - "banco", - "central", - "do", - "brasil" + "party", + "i", + "d" ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] ], + [] + ], + [ + "variable", [ "reference", {}, @@ -51471,22 +51543,52 @@ "r" ], [ - "central", - "bank" + "fed", + "code" ] ], [ - "central", - "bank" + "cashflow" ] ], [] + ], + [ + "cashflow" ] + ], + [ + "party", + "id" ] - ], + ] + ], + [ + "variable", [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "dict" + ] + ], + [ + "dict" + ] + ], [ - "literal", [ "reference", {}, @@ -51496,29 +51598,31 @@ "morphir" ], [ - "s", - "d", - "k" + "sample" ] ], [ [ - "string" + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" ] ], [ - "string" + "party", + "i", + "d" ] ], [] ], - [ - "string_literal", - "BBB00173449" - ] - ], - [ - "constructor", [ "reference", {}, @@ -51551,173 +51655,80 @@ ] ], [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "bank", - "of", - "japan" - ] ] ] + ], + [ + "central", + "banks" ] - ], + ] + ] + }, + [ + "pattern_match", + [ + "reference", + {}, [ - "tuple", [ - "tuple", - {}, [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] + "morphir" + ], + [ + "sample" ] ], [ [ - "literal", + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] + "morphir" ], [ - "string_literal", - "BBB00173298" + "s", + "d", + "k" ] ], [ - "constructor", [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, [ [ [ @@ -51742,148 +51753,188 @@ ] ], [ - "bank", - "of", - "england" + "central", + "bank" ] - ] + ], + [] ] ] ], [ - "tuple", + "party", + "as", + "central", + "bank" + ] + ], + [ + [ [ - "tuple", - {}, + "constructor_pattern", [ + "reference", + {}, [ - "reference", - {}, [ [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] + "morphir" ], [ - [ - "string" - ] - ], + "s", + "d", + "k" + ] + ], + [ [ - "string" + "maybe" ] ], - [] + [ + "maybe" + ] ], [ - "reference", - {}, [ + "reference", + {}, [ [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" + [ + "morphir" + ], + [ + "sample" + ] ], [ - "l", - "c", - "r" + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] ], [ "central", "bank" ] ], - [ - "central", - "bank" - ] - ], - [] + [] + ] ] - ] - ], - [ + ], [ - "literal", [ - "reference", - {}, [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] + "morphir" ], - [] + [ + "s", + "d", + "k" + ] ], [ - "string_literal", - "BBB00176525" + [ + "maybe" + ] + ], + [ + "just" ] ], [ - "constructor", [ - "reference", - {}, + "as_pattern", [ + "reference", + {}, [ [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" + [ + "morphir" + ], + [ + "sample" + ] ], [ - "l", - "c", - "r" + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] ], [ "central", "bank" ] ], + [] + ], + [ + "wildcard_pattern", [ - "central", - "bank" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] ] ], - [] - ], + [ + "central", + "bank" + ] + ] + ] + ], + [ + "if_then_else", + [ + "reference", + {}, [ [ [ @@ -51903,25 +51954,19 @@ "r" ], [ - "central", - "bank" + "fed", + "code" ] ], [ - "banca", - "de", - "france" + "fed", + "code" ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, + ], + [] + ], [ + "apply", [ "reference", {}, @@ -51938,181 +51983,336 @@ ], [ [ - "string" + "basics" ] ], [ - "string" + "bool" ] ], [] ], [ - "reference", - {}, + "apply", [ + "function", + {}, [ + "reference", + {}, [ - "morphir" + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "ten", + "q", + "level", + "6" + ] ], - [ - "sample" - ] + [] ], [ + "reference", + {}, [ - "reg" - ], - [ - "l", - "c", - "r" + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" + [] ] ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, [ + "reference", [ + "function", + {}, [ - "morphir" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "ten", + "q", + "level", + "6" + ] + ], + [] ], [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "BBB00170219" - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "ten", + "q", + "level", + "6" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] ] ], [ [ - "reg" + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] ], [ - "l", - "c", - "r" + [ + "basics" + ] ], [ - "central", - "bank" + "not", + "equal" ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" ] ], [ + "field", [ - "reg" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "ten", + "q", + "level", + "6" + ] + ], + [] ], [ - "l", - "c", - "r" + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] ], [ - "central", - "bank" + "ten", + "q", + "level", + "6" ] - ], - [ - "bance", - "di", - "italia" ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ + ], [ - "reference", - {}, + "literal", [ + "reference", + {}, [ [ - "morphir" + [ + "morphir" + ], + [ + "sample" + ] ], [ - "s", - "d", - "k" - ] - ], - [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], [ - "string" + "ten", + "q", + "level", + "6" ] ], - [ - "string" - ] + [] ], - [] - ], + [ + "string_literal", + "Segregated Cash" + ] + ] + ], + [ + "pattern_match", [ "reference", {}, @@ -52135,718 +52335,1423 @@ "r" ], [ - "central", - "bank" + "fed", + "code" ] ], [ - "central", - "bank" + "fed", + "code" ] ], [] - ] - ] - ], - [ - [ - "literal", + ], [ - "reference", - {}, + "apply", [ + "reference", + {}, [ [ - "morphir" + [ + "morphir" + ], + [ + "sample" + ] ], [ - "s", - "d", - "k" - ] - ], - [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], [ - "string" + "central", + "bank", + "sub", + "product" ] ], - [ - "string" - ] + [] ], - [] - ], - [ - "string_literal", - "BBB00601646" - ] - ], - [ - "constructor", - [ - "reference", - {}, [ + "reference", [ + "function", + {}, [ - "morphir" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] ], [ - "sample" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] ] ], [ [ - "reg" + [ + "morphir" + ], + [ + "sample" + ] ], [ - "l", - "c", - "r" + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] ], [ "central", - "bank" + "bank", + "to", + "sub", + "product" ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" ] ], [ + "variable", [ - "reg" - ], - [ - "l", - "c", - "r" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] ], [ "central", "bank" ] - ], - [ - "swiss", - "national", - "bank" ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ + ], [ - "reference", - {}, [ [ + "constructor_pattern", [ - "morphir" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] ], [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "f", + "r", + "b" + ] ], - [ - "sample" - ] + [] ], [ + "constructor", [ - "reg" - ], - [ - "l", - "c", - "r" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] ], [ - "central", - "bank" + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "31" + ] ] - ], - [ - "central", - "bank" ] ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, [ [ + "constructor_pattern", [ - "morphir" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] ], [ - "s", - "d", - "k" - ] + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "s", + "n", + "b" + ] + ], + [] ], [ + "constructor", [ - "string" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "32" + ] ] - ], - [ - "string" ] ], - [] - ], - [ - "string_literal", - "BBB00173467" - ] - ], - [ - "constructor", - [ - "reference", - {}, [ [ + "constructor_pattern", [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] ], [ - "l", - "c", - "r" + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "b", + "o", + "e" + ] ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" + [] ], [ - "central", - "bank" - ] - ], - [ - "bank", - "of", - "korea" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ + "constructor", [ - "morphir" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] ], [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "33" + ] ] - ], - [ - "string" ] ], - [] - ], - [ - "reference", - {}, [ [ + "constructor_pattern", [ - "morphir" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] ], [ - "sample" - ] + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "e", + "c", + "b" + ] + ], + [] ], [ + "constructor", [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] ], [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "34" + ] ] - ], - [ - "string" ] ], - [] - ], - [ - "string_literal", - "BBB00224297" - ] - ], - [ - "constructor", - [ - "reference", - {}, [ [ + "constructor_pattern", [ - "morphir" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] ], [ - "sample" - ] + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "b", + "o", + "j" + ] + ], + [] ], [ + "constructor", [ - "reg" - ], - [ - "l", - "c", - "r" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] ], [ - "central", - "bank" + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "35" + ] ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" ] ], [ [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "beutsche", - "bundesbank" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ + "constructor_pattern", [ - "morphir" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] ], [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "r", + "b", + "a" + ] ], - [ - "sample" - ] + [] ], [ + "constructor", [ - "reg" - ], - [ - "l", - "c", - "r" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] ], [ - "central", - "bank" + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "36" + ] ] - ], - [ - "central", - "bank" ] ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, [ [ + "constructor_pattern", [ - "morphir" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] ], [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "b", + "o", + "c" + ] + ], + [] ], [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "BBB01625286" - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ + "constructor", [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] ], [ - "central", - "bank" + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "37" + ] ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" ] ], - [ - "banque", - "centrale", - "du", - "luxembourg" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, [ [ + "constructor_pattern", [ - "morphir" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] ], [ - "s", - "d", - "k" - ] + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "o", + "c", + "b" + ] + ], + [] ], [ + "constructor", [ - "string" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "38" + ] ] - ], - [ - "string" ] ], - [] - ], - [ - "reference", - {}, [ [ + "constructor_pattern", [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] ], [ - "central", - "bank" - ] + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "other", + "cash", + "currency", + "and", + "coin" + ] + ], + [] ], [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, - [ - [ + "constructor", [ - "morphir" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] ], [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "39" + ] ] - ], - [ - "string" ] - ], - [] - ], - [ - "string_literal", - "BBB01277095" + ] ] ], [ - "constructor", + "pattern_match", [ "reference", {}, @@ -52869,992 +53774,915 @@ "r" ], [ - "central", - "bank" + "fed", + "code" ] ], [ - "central", - "bank" + "fed", + "code" ] ], [] ], [ + "apply", [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "peoples", - "bank", - "of", - "china" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ + "reference", + {}, [ [ - "morphir" + [ + "morphir" + ], + [ + "sample" + ] ], [ - "s", - "d", - "k" - ] - ], - [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], [ - "string" + "central", + "bank", + "sub", + "product" ] ], - [ - "string" - ] + [] ], - [] - ], - [ - "reference", - {}, [ + "reference", [ + "function", + {}, [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "BBB00102953" - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] ], [ - "sample" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] ] ], [ [ - "reg" + [ + "morphir" + ], + [ + "sample" + ] ], [ - "l", - "c", - "r" + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] ], [ "central", - "bank" + "bank", + "to", + "sub", + "product" ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" ] ], [ + "variable", [ - "reg" - ], - [ - "l", - "c", - "r" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] ], [ "central", "bank" ] - ], - [ - "reserve", - "bank", - "of", - "india" ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ + ], [ - "reference", - {}, [ [ + "constructor_pattern", [ - "morphir" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] ], [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "f", + "r", + "b" + ] ], - [ - "sample" - ] + [] ], [ + "constructor", [ - "reg" - ], - [ - "l", - "c", - "r" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] ], [ - "central", - "bank" + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "41" + ] ] - ], - [ - "central", - "bank" ] ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, [ [ + "constructor_pattern", [ - "morphir" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] ], [ - "s", - "d", - "k" - ] + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "s", + "n", + "b" + ] + ], + [] ], [ + "constructor", [ - "string" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "42" + ] ] - ], - [ - "string" ] ], - [] - ], - [ - "string_literal", - "BBB00197539" - ] - ], - [ - "constructor", - [ - "reference", - {}, [ [ + "constructor_pattern", [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] ], [ - "l", - "c", - "r" + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "b", + "o", + "e" + ] ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" + [] ], [ - "central", - "bank" - ] - ], - [ - "central", - "bank", - "of", - "the", - "russian", - "federation" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ + "constructor", [ - "morphir" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] ], [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "43" + ] ] - ], - [ - "string" ] ], - [] - ], - [ - "reference", - {}, [ [ + "constructor_pattern", [ - "morphir" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] ], [ - "sample" - ] + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "e", + "c", + "b" + ] + ], + [] ], [ + "constructor", [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] ], [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "44" + ] ] - ], - [ - "string" ] ], - [] - ], - [ - "string_literal", - "BBB00238530" - ] - ], - [ - "constructor", - [ - "reference", - {}, [ [ + "constructor_pattern", [ - "morphir" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] ], [ - "sample" - ] + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "b", + "o", + "j" + ] + ], + [] ], [ + "constructor", [ - "reg" - ], - [ - "l", - "c", - "r" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] ], [ - "central", - "bank" + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "45" + ] ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" ] ], [ [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "federal", - "reserve", - "bank" - ] - ] - ] - ] - ] - ] - ] - ] - } - ] - ], - [ - [ - "classify" - ], - [ - "public", - { - "inputTypes": [ - [ - [ - "cashflow" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ] - ] - ], - "outputType": [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - "body": [ - "pattern_match", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "dict" - ] - ], - [ - "dict" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], + "constructor_pattern", [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "party", - "i", - "d" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "party", - "i", - "d" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "dict" - ] - ], - [ - "dict" - ] - ], - [ - [ - "reference", - {}, [ [ [ @@ -53879,16 +54707,48 @@ ] ], [ - "party", - "i", - "d" + "r", + "b", + "a" ] ], [] ], [ - "reference", - {}, + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], [ [ [ @@ -53908,46 +54768,191 @@ "r" ], [ - "central", - "bank" + "fed", + "code" ] ], [ - "central", - "bank" + "i", + "a", + "46" ] - ], - [] + ] ] - ] - ], - [ - "reference", - {}, + ], [ [ + "constructor_pattern", [ - "morphir" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] ], [ - "s", - "d", - "k" - ] + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "b", + "o", + "c" + ] + ], + [] ], [ + "constructor", [ - "maybe" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "47" + ] ] - ], - [ - "maybe" ] ], [ [ - "reference", - {}, + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], [ [ [ @@ -53967,148 +54972,228 @@ "r" ], [ - "central", - "bank" + "fed", + "code" ] ], [ - "central", - "bank" + "o", + "c", + "b" ] ], [] - ] - ] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "dict" - ] - ], - [ - "get" - ] - ] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "party", - "i", - "d" - ] - ], - [] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" ], [ - "l", - "c", - "r" - ], - [ - "fed", - "code" + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "48" + ] + ] ] ], [ - "cashflow" + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "other", + "cash", + "currency", + "and", + "coin" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "a", + "49" + ] + ] + ] ] - ], - [] - ], - [ - "cashflow" + ] ] - ], - [ - "party", - "id" ] - ] - ], - [ - "reference", + ], [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "dict" - ] - ], - [ - "dict" - ] - ], [ + "constructor_pattern", [ "reference", {}, @@ -54118,220 +55203,24 @@ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" + "maybe" ] ], [ - "party", - "i", - "d" + "maybe" ] ], - [] - ], - [ - "reference", - {}, [ [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "banks" - ] - ] - ] - ], - [ - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "just" - ] - ], - [ - [ - "as_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "wildcard_pattern", - [ - "reference", - {}, + "reference", + {}, [ [ [ @@ -54362,51 +55251,32 @@ ], [] ] - ], - [ - "central", - "bank" ] - ] - ] - ], - [ - "pattern_match", - [ - "reference", - {}, + ], [ [ [ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" + "maybe" ] ], [ - "fed", - "code" + "nothing" ] ], [] ], [ - "field", + "if_then_else", [ "reference", {}, @@ -54416,24 +55286,32 @@ "morphir" ], [ - "s", - "d", - "k" + "sample" ] ], [ [ - "string" + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" ] ], [ - "string" + "fed", + "code" ] ], [] ], [ - "variable", + "apply", [ "reference", {}, @@ -54443,148 +55321,108 @@ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" + "basics" ] ], [ - "cashflow" + "bool" ] ], [] ], [ - "cashflow" - ] - ], - [ - "gl", - "account", - "level", - "6" - ] - ], - [ - [ - [ - "literal_pattern", + "apply", [ - "reference", + "function", {}, [ + "reference", + {}, [ [ - "morphir" + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] ], [ - "s", - "d", - "k" - ] - ], - [ + [ + "basics" + ] + ], [ - "string" + "bool" ] ], - [ - "string" - ] + [] ], - [] - ], - [ - "string_literal", - "Segregated Cash" - ] - ], - [ - "pattern_match", - [ - "reference", - {}, [ + "reference", + {}, [ [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] ], [ - "l", - "c", - "r" + [ + "basics" + ] ], [ - "fed", - "code" + "bool" ] ], - [ - "fed", - "code" - ] - ], - [] + [] + ] ], [ - "apply", + "reference", [ - "reference", + "function", {}, [ + "reference", + {}, [ [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] ], [ - "l", - "c", - "r" + [ + "basics" + ] ], [ - "fed", - "code" + "bool" ] ], - [ - "central", - "bank", - "sub", - "product" - ] + [] ], - [] - ], - [ - "reference", [ "function", {}, @@ -54597,26 +55435,18 @@ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" + "basics" ] ], [ - "central", - "bank" + "bool" ] ], [] @@ -54630,110 +55460,102 @@ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" + "basics" ] ], [ - "central", - "bank", - "sub", - "product" + "bool" ] ], [] ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] ], + [ + [ + "basics" + ] + ], + [ + "or" + ] + ] + ], + [ + "apply", + [ + "reference", + {}, [ [ [ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" + "basics" ] ], [ - "central", - "bank", - "to", - "sub", - "product" + "bool" ] - ] + ], + [] ], [ - "variable", + "apply", [ - "reference", + "function", {}, [ + "reference", + {}, [ [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] ], [ - "l", - "c", - "r" + [ + "string" + ] ], [ - "central", - "bank" + "string" ] ], - [ - "central", - "bank" - ] + [] ], - [] - ], - [ - "central", - "bank" - ] - ] - ], - [ - [ - [ - "constructor_pattern", [ "reference", {}, @@ -54743,97 +55565,107 @@ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" + "basics" ] ], [ - "central", - "bank", - "sub", - "product" + "bool" ] ], [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "f", - "r", - "b" - ] - ], - [] + ] ], [ - "constructor", + "reference", [ - "reference", + "function", {}, [ + "reference", + {}, [ [ - "morphir" + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] ], [ - "sample" + [ + "string" + ] + ], + [ + "string" ] ], + [] + ], + [ + "function", + {}, [ + "reference", + {}, [ - "reg" - ], - [ - "l", - "c", - "r" + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] ], - [ - "fed", - "code" - ] + [] ], [ - "fed", - "code" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] ] - ], - [] + ] ], [ [ @@ -54841,34 +55673,23 @@ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" + "basics" ] ], [ - "i", - "a", - "31" + "equal" ] ] - ] - ], - [ + ], [ - "constructor_pattern", + "apply", [ "reference", {}, @@ -54878,267 +55699,306 @@ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" + "string" ] ], [ - "central", - "bank", - "sub", - "product" + "string" ] ], [] ], [ + "reference", [ + "function", + {}, [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] ], [ - "fed", - "code" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] ] ], - [ - "s", - "n", - "b" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, [ [ [ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" + "string" ] ], [ - "fed", - "code" + "to", + "upper" ] - ], - [] + ] ], [ + "field", [ + "reference", + {}, [ - "morphir" - ], - [ - "sample" - ] + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "ten", + "q", + "level", + "5" + ] + ], + [] ], [ + "variable", [ - "reg" - ], - [ - "l", - "c", - "r" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] ], [ - "fed", - "code" + "cashflow" ] ], [ - "i", - "a", - "32" + "ten", + "q", + "level", + "5" ] ] ] ], [ + "literal", [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], + "reference", + {}, [ [ [ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" + "string" ] ], [ - "b", - "o", - "e" + "string" ] ], [] ], [ - "constructor", + "string_literal", + "CASH AND DUE FROM BANKS" + ] + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, [ - "reference", - {}, [ [ - [ - "morphir" - ], - [ - "sample" - ] + "morphir" ], [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], + "s", + "d", + "k" + ] + ], + [ [ - "fed", - "code" + "basics" ] ], - [] + [ + "bool" + ] ], + [] + ], + [ + "reference", + {}, [ [ [ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" + "basics" ] ], [ - "i", - "a", - "33" + "bool" ] - ] + ], + [] ] ], [ + "reference", [ - "constructor_pattern", + "function", + {}, [ "reference", {}, @@ -55148,2833 +56008,17999 @@ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" + "basics" ] ], [ - "central", - "bank", - "sub", - "product" + "bool" ] ], [] ], [ + "function", + {}, [ + "reference", + {}, [ - "morphir" + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] + [] ], [ - "e", - "c", - "b" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], + "reference", + {}, [ [ - "reg" + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] ], [ - "l", - "c", - "r" + [ + "basics" + ] ], [ - "fed", - "code" + "bool" ] ], - [ - "fed", - "code" - ] + [] + ] + ] + ], + [ + [ + [ + "morphir" ], - [] + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] ], + [ + "or" + ] + ] + ], + [ + "apply", + [ + "reference", + {}, [ [ [ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" + "basics" ] ], [ - "i", - "a", - "34" + "bool" ] - ] - ] - ], - [ + ], + [] + ], [ - "constructor_pattern", + "apply", [ - "reference", + "function", {}, [ + "reference", + {}, [ [ - "morphir" + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] ], [ - "sample" + [ + "string" + ] + ], + [ + "string" ] ], + [] + ], + [ + "reference", + {}, [ [ - "reg" + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] ], [ - "l", - "c", - "r" + [ + "basics" + ] ], [ - "fed", - "code" + "bool" ] ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] + [] + ] ], [ + "reference", [ + "function", + {}, [ - "morphir" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] ], [ - "sample" + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] ] ], [ [ - "reg" + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] ], [ - "l", - "c", - "r" + [ + "basics" + ] ], [ - "fed", - "code" + "equal" ] - ], - [ - "b", - "o", - "j" ] ], - [] + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "to", + "upper" + ] + ] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ], + [ + "ten", + "q", + "level", + "5" + ] + ] + ] + ], + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "OVERNIGHT AND TERM DEPOSITS" + ] + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "equal" + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "to", + "upper" + ] + ] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ], + [ + "ten", + "q", + "level", + "5" + ] + ] + ] + ], + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "CASH EQUIVALENTS" + ] + ] + ] + ] + ], + [ + "if_then_else", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "greater", + "than", + "or", + "equal" + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "net", + "cash", + "u", + "s", + "d" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ] + ] + ], + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ], + [ + "float_literal", + 0 + ] + ] + ], + [ + "if_then_else", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "is", + "onshore" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "u", + "1" + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "u", + "2" + ] + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "i", + "u", + "4" + ] + ] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "fed", + "code" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "unclassified" + ] + ] + ] + ] + ] + ] + ] + ] + } + ] + ], + [ + [ + "is", + "onshore" + ], + [ + "public", + { + "inputTypes": [ + [ + [ + "cashflow" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ] + ] + ], + "outputType": [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + "body": [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "and" + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "equal" + ] + ] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "legal", + "entity" + ] + ], + [] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ], + [ + "legal", + "entity" + ] + ], + [ + "country" + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "country" + ] + ] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ], + [ + "currency" + ] + ] + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "equal" + ] + ] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "legal", + "entity" + ] + ], + [] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ], + [ + "legal", + "entity" + ] + ], + [ + "country" + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "constructor", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "just" + ] + ] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "counterparty" + ] + ], + [] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ], + [ + "counterparty" + ] + ], + [ + "country" + ] + ] + ] + ] + ] + } + ] + ], + [ + [ + "net", + "cash", + "u", + "s", + "d" + ], + [ + "public", + { + "inputTypes": [ + [ + [ + "cashflow" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ] + ] + ], + "outputType": [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ], + "body": [ + "pattern_match", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "money" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "usd" + ] + ], + [] + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ], + [ + "amount", + "u", + "s", + "d" + ] + ], + [ + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "money" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "usd" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code" + ] + ], + [ + "money" + ] + ], + [ + [ + "as_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ], + [ + "wildcard_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ] + ], + [ + "amount" + ] + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ], + [ + "amount" + ] + ] + ] + ] + ] + } + ] + ] + ] + } + ] + }, + { + "name": [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + "def": [ + "public", + { + "types": [ + [ + [ + "account" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "adjusted", + "amount", + "u", + "s", + "d" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "adjusted", + "m", + "x", + "amount" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "cashflow" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "record", + {}, + [ + [ + [ + "legal", + "entity" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "legal", + "entity" + ] + ], + [] + ] + ], + [ + [ + "party", + "id" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ], + [ + [ + "currency" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ] + ], + [ + [ + "counterparty" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "counterparty" + ] + ], + [] + ] + ], + [ + [ + "amount", + "u", + "s", + "d" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ] + ], + [ + [ + "amount", + "mx" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ] + ], + [ + [ + "ten", + "q", + "level", + "1" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ], + [ + [ + "ten", + "q", + "level", + "2" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ], + [ + [ + "ten", + "q", + "level", + "3" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ], + [ + [ + "ten", + "q", + "level", + "4" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ], + [ + [ + "ten", + "q", + "level", + "5" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ], + [ + [ + "ten", + "q", + "level", + "6" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ] + ] + ] + ], + [ + [ + "central", + "bank", + "sub", + "product" + ], + [ + "public", + [ + "", + [ + "custom_type_definition", + [], + [ + "public", + [ + [ + [ + "b", + "o", + "c" + ], + [] + ], + [ + [ + "b", + "o", + "e" + ], + [] + ], + [ + [ + "b", + "o", + "j" + ], + [] + ], + [ + [ + "e", + "c", + "b" + ], + [] + ], + [ + [ + "f", + "r", + "b" + ], + [] + ], + [ + [ + "o", + "c", + "b" + ], + [] + ], + [ + [ + "other", + "cash", + "currency", + "and", + "coin" + ], + [] + ], + [ + [ + "r", + "b", + "a" + ], + [] + ], + [ + [ + "s", + "n", + "b" + ], + [] + ] + ] + ] + ] + ] + ] + ], + [ + [ + "cost", + "center" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "record", + {}, + [ + [ + [ + "code" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ], + [ + [ + "description" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ] + ] + ] + ], + [ + [ + "cost", + "center", + "code" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "cost", + "center", + "description" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "counterparty" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "record", + {}, + [ + [ + [ + "country" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ], + [ + [ + "description", + "5", + "g" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ], + [ + [ + "account" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ] + ] + ] + ], + [ + [ + "country", + "code" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "description", + "5", + "g" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "legal", + "entity" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "record", + {}, + [ + [ + [ + "code" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ], + [ + [ + "country" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ] + ] + ] + ] + ] + ], + [ + [ + "legal", + "entity", + "code" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "money" + ], + [ + "public", + [ + "", + [ + "custom_type_definition", + [ + [ + "a" + ] + ], + [ + "public", + [ + [ + [ + "money" + ], + [ + [ + [ + "arg", + "1" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ] + ] + ] + ] + ] + ] + ] + ] + ] + ], + [ + [ + "mx" + ], + [ + "public", + [ + "", + [ + "custom_type_definition", + [], + [ + "public", + [ + [ + [ + "mx" + ], + [] + ] + ] + ] + ] + ] + ] + ], + [ + [ + "party", + "i", + "d" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "product", + "type" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "rule", + "code" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ] + ] + ], + [ + [ + "ten", + "q", + "level", + "1" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "ten", + "q", + "level", + "2" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "ten", + "q", + "level", + "3" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "ten", + "q", + "level", + "4" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "ten", + "q", + "level", + "5" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "ten", + "q", + "level", + "6" + ], + [ + "public", + [ + "", + [ + "type_alias_definition", + [], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + "usd" + ], + [ + "public", + [ + "", + [ + "custom_type_definition", + [], + [ + "public", + [ + [ + [ + "usd" + ], + [] + ] + ] + ] + ] + ] + ] + ] + ], + "values": [ + [ + [ + "central", + "bank", + "to", + "sub", + "product" + ], + [ + "public", + { + "inputTypes": [ + [ + [ + "cb" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + "outputType": [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + "body": [ + "pattern_match", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + "cb" + ] + ], + [ + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "federal", + "reserve", + "bank" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "f", + "r", + "b" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "swiss", + "national", + "bank" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "s", + "n", + "b" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "bank", + "of", + "england" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "b", + "o", + "e" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "european", + "central", + "bank" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "e", + "c", + "b" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "bank", + "of", + "japan" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "b", + "o", + "j" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "reserve", + "bank", + "of", + "australia" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "r", + "b", + "a" + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "bank", + "of", + "canada" + ] + ], + [] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "b", + "o", + "c" + ] + ] + ] + ], + [ + [ + "wildcard_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ], + [ + "constructor", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "o", + "c", + "b" + ] + ] + ] + ] + ] + ] + } + ] + ], + [ + [ + "classify" + ], + [ + "public", + { + "inputTypes": [ + [ + [ + "central", + "banks" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "dict" + ] + ], + [ + "dict" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "party", + "i", + "d" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "dict" + ] + ], + [ + "dict" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "party", + "i", + "d" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ] + ], + [ + [ + "cashflow" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "cashflow" + ] + ], + [] + ] + ] + ], + "outputType": [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "code" + ] + ], + [] + ], + "body": [ + "let_definition", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "code" + ] + ], + [] + ], + [ + "party", + "is", + "central", + "bank" + ], + { + "inputTypes": [], + "outputType": [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + "body": [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "dict" + ] + ], + [ + "dict" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "dict" + ] + ], + [ + "dict" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "dict" + ] + ], + [ + "get" + ] + ] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ], + [ + "party", + "id" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "dict" + ] + ], + [ + "dict" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "party", + "i", + "d" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + "central", + "banks" + ] + ] + ] + }, + [ + "pattern_match", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "code" + ] + ], + [] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + "party", + "is", + "central", + "bank" + ] + ], + [ + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "just" + ] + ], + [ + [ + "as_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + "wildcard_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ], + [ + "central", + "bank" + ] + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "code" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "code" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "code" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rules", + "i", + "a" + ] + ] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ], + [ + "ten", + "q", + "level", + "4" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + "central", + "bank" + ] + ] + ] + ], + [ + [ + "as_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + "wildcard_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ] + ], + [ + "not", + "central", + "bank" + ] + ], + [ + "if_then_else", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "code" + ] + ], + [] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "or" + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "equal" + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "to", + "upper" + ] + ] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ], + [ + "ten", + "q", + "level", + "5" + ] + ] + ] + ], + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "CASH AND DUE FROM BANKS" + ] + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "or" + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "equal" + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "to", + "upper" + ] + ] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ], + [ + "ten", + "q", + "level", + "5" + ] + ] + ] + ], + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "OVERNIGHT AND TERM DEPOSITS" + ] + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "equal" + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "to", + "upper" + ] + ] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ], + [ + "ten", + "q", + "level", + "5" + ] + ] + ] + ], + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "CASH EQUIVALENTS" + ] + ] + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "code" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "code" + ] + ], + [] + ] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "code" + ] + ], + [] + ] + ] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "code" + ] + ], + [] + ] + ] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "code" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "i", + "u" + ] + ] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ], + [ + "amount", + "u", + "s", + "d" + ] + ] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "legal", + "entity" + ] + ], + [] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ], + [ + "legal", + "entity" + ] + ], + [ + "country" + ] + ] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ], + [ + "currency" + ] + ] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "field", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "counterparty" + ] + ], + [] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "cashflow" + ] + ], + [] + ], + [ + "cashflow" + ] + ], + [ + "counterparty" + ] + ], + [ + "country" + ] + ] + ], + [ + "list", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "code" + ] + ], + [] + ], + [] + ] + ] + ] + ] + ] + ] + } + ] + ], + [ + [ + "is", + "central", + "bank" + ], + [ + "public", + { + "inputTypes": [ + [ + [ + "m" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ] + ] + ], + "outputType": [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + "body": [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "with", + "default" + ] + ] + ], + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "bool_literal", + false + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "map" + ] + ] + ], + [ + "lambda", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "as_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + "wildcard_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ], + [ + "x" + ] + ], + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "bool_literal", + true + ] + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + [ + "m" + ] + ] + ] + ] + } + ] + ], + [ + [ + "is", + "onshore" + ], + [ + "public", + { + "inputTypes": [ + [ + [ + "legal", + "entity", + "country" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ], + [ + [ + "cashflow", + "currency" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ] + ], + [ + [ + "counterparty", + "country" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + "outputType": [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + "body": [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "and" + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "equal" + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "constructor", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "just" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "legal", + "entity", + "country" + ] + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "maybe" + ] + ], + [ + "maybe" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "country" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "cashflow", + "currency" + ] + ] + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "equal" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "legal", + "entity", + "country" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "counterparty", + "country" + ] + ] + ] + ] + } + ] + ], + [ + [ + "net", + "cash", + "u", + "s", + "d" + ], + [ + "public", + { + "inputTypes": [ + [ + [ + "adjusted", + "amount", + "u", + "s", + "d" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "adjusted", + "amount", + "u", + "s", + "d" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "adjusted", + "amount", + "u", + "s", + "d" + ] + ], + [] + ] + ] + ], + "outputType": [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ], + "body": [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ], + [ + "adjusted", + "amount", + "u", + "s", + "d" + ] + ] + } + ] + ], + [ + [ + "rule", + "i", + "a", + "3" + ], + [ + "public", + { + "inputTypes": [ + [ + [ + "central", + "bank" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + "outputType": [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "code" + ] + ], + [] + ], + "body": [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "code" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "append" + ] + ] + ], + [ + "list", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "3" + ] + ] + ] + ] + ], + [ + "pattern_match", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "to", + "sub", + "product" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + "central", + "bank" + ] + ] + ], + [ + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "f", + "r", + "b" + ] + ], + [] + ], + [ + "list", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "1" + ] + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "s", + "n", + "b" + ] + ], + [] + ], + [ + "list", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "2" + ] + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "b", + "o", + "e" + ] + ], + [] + ], + [ + "list", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "3" + ] + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "e", + "c", + "b" + ] + ], + [] + ], + [ + "list", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "4" + ] + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "b", + "o", + "j" + ] + ], + [] + ], + [ + "list", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "5" + ] + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "r", + "b", + "a" + ] + ], + [] + ], + [ + "list", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "6" + ] + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "b", + "o", + "c" + ] + ], + [] + ], + [ + "list", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "7" + ] + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "o", + "c", + "b" + ] + ], + [] + ], + [ + "list", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "8" + ] + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "other", + "cash", + "currency", + "and", + "coin" + ] + ], + [] + ], + [ + "list", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "9" + ] + ] + ] + ] + ] + ] + ] + ] + } + ] + ], + [ + [ + "rule", + "i", + "a", + "4" + ], + [ + "public", + { + "inputTypes": [ + [ + [ + "central", + "bank" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + "outputType": [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "code" + ] + ], + [] + ], + "body": [ + "pattern_match", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "code" + ] + ], + [] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + "reference", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "to", + "sub", + "product" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ], + [ + "central", + "bank" + ] + ] + ], + [ + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "f", + "r", + "b" + ] + ], + [] + ], + [ + "list", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" ], [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "35" - ] - ] + "s", + "d", + "k" ] ], [ [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "r", - "b", - "a" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "36" - ] - ] + "string" ] ], [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "b", - "o", - "c" - ] - ], - [] + "string" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" ], [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "37" - ] - ] + "s", + "d", + "k" ] ], [ [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "o", - "c", - "b" - ] - ], - [] + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "1" + ] + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "s", + "n", + "b" + ] + ], + [] + ], + [ + "list", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "code" + ] + ], + [] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" ], [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "38" - ] - ] + "s", + "d", + "k" ] ], [ [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "other", - "cash", - "currency", - "and", - "coin" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "39" - ] - ] + "string" ] + ], + [ + "string" ] + ], + [] + ], + [ + "string_literal", + "2" + ] + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" ] ], + [ + "b", + "o", + "e" + ] + ], + [] + ], + [ + "list", + [ + "reference", + {}, [ [ - "wildcard_pattern", [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] + "morphir" + ], + [ + "s", + "d", + "k" ] ], [ - "pattern_match", [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "to", - "sub", - "product" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] + [ + [ + "morphir" ], [ - "central", - "bank" + "s", + "d", + "k" ] + ], + [ + [ + "string" + ] + ], + [ + "string" ] ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, [ [ [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "f", - "r", - "b" - ] - ], - [] + "morphir" ], [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "41" - ] - ] + "s", + "d", + "k" + ] + ], + [ + [ + "string" ] ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "3" + ] + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "e", + "c", + "b" + ] + ], + [] + ], + [ + "list", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "code" + ] + ], + [] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ [ [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "s", - "n", - "b" - ] - ], - [] + "morphir" ], [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "42" - ] - ] + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "4" + ] + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "b", + "o", + "j" + ] + ], + [] + ], + [ + "list", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" ] ], [ [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "b", - "o", - "e" - ] - ], - [] + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" ], [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "43" - ] - ] + "s", + "d", + "k" + ] + ], + [ + [ + "string" ] ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "5" + ] + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "r", + "b", + "a" + ] + ], + [] + ], + [ + "list", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "code" + ] + ], + [] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ [ [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "e", - "c", - "b" - ] - ], - [] + "morphir" ], [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "44" - ] - ] + "s", + "d", + "k" + ] + ], + [ + [ + "string" ] ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "6" + ] + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "b", + "o", + "c" + ] + ], + [] + ], + [ + "list", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ [ [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "b", - "o", - "j" - ] - ], - [] + "morphir" ], [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "45" - ] - ] + "s", + "d", + "k" ] ], [ [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "r", - "b", - "a" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "46" - ] - ] + "string" ] ], + [ + "string" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ [ [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "b", - "o", - "c" - ] - ], - [] + "morphir" ], [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "47" - ] - ] + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "7" + ] + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "o", + "c", + "b" + ] + ], + [] + ], + [ + "list", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "code" + ] + ], + [] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" ] ], [ [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "o", - "c", - "b" - ] - ], - [] + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "8" + ] + ] + ] + ] + ], + [ + [ + "constructor_pattern", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "central", + "bank", + "sub", + "product" + ] + ], + [] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "other", + "cash", + "currency", + "and", + "coin" + ] + ], + [] + ], + [ + "list", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" ], [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "48" - ] - ] + "s", + "d", + "k" + ] + ], + [ + [ + "string" ] ], + [ + "string" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", + {}, + [ [ [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "other", - "cash", - "currency", - "and", - "coin" - ] - ], - [] + "morphir" ], [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "49" - ] - ] + "s", + "d", + "k" + ] + ], + [ + [ + "string" ] + ], + [ + "string" ] - ] + ], + [] + ], + [ + "string_literal", + "9" ] ] ] - ] + ] + ] + ] + ] + } + ] + ], + [ + [ + "rule", + "i", + "u" + ], + [ + "public", + { + "inputTypes": [ + [ + [ + "adjusted", + "amount", + "u", + "s", + "d" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ] + ], + [ + [ + "legal", + "entity", + "country" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ], + [ + [ + "cashflow", + "currency" ], [ + "reference", + {}, [ - "constructor_pattern", [ - "reference", - {}, [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] + "morphir" ], [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] + "sample" ] ], [ [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] + "reg" ], [ - [ - "maybe" - ] + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" ], [ - "nothing" + "sample" ] ], - [] + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ] + ], + [ + [ + "counterparty", + "country" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ] + ] + ], + "outputType": [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "code" + ] + ], + [] + ], + "body": [ + "let_definition", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] ], [ - "if_then_else", + "rule", + "code" + ] + ], + [] + ], + [ + "tail" + ], + { + "inputTypes": [], + "outputType": [ + "reference", + {}, + [ [ - "reference", - {}, [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] + "morphir" ], - [] + [ + "s", + "d", + "k" + ] ], [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + "body": [ + "if_then_else", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" ], [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "member" - ] + "s", + "d", + "k" ] ], [ - "apply", [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ], [ [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] + "morphir" ], [ - "to", - "upper" + "s", + "d", + "k" ] - ] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "g", - "l", - "account", - "level", - "5" - ] - ], - [] ], [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ], [ - "cashflow" + "basics" ] - ], - [ - "gl", - "account", - "level", - "5" - ] - ] - ] - ], - [ - "list", + ], + [ + "float" + ] + ], + [] + ], [ "reference", {}, @@ -57991,76 +74017,49 @@ ], [ [ - "list" + "basics" ] ], [ - "list" + "bool" ] ], + [] + ] + ], + [ + "reference", + [ + "function", + {}, [ + "reference", + {}, [ - "reference", - {}, [ [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] + "morphir" ], [ - "string" + "s", + "d", + "k" ] ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, [ [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" + "basics" ] ], - [] + [ + "float" + ] ], - [ - "string_literal", - "CASH AND DUE FROM BANKS" - ] + [] ], [ - "literal", + "function", + {}, [ "reference", {}, @@ -58077,22 +74076,15 @@ ], [ [ - "string" + "basics" ] ], [ - "string" + "float" ] ], [] ], - [ - "string_literal", - "OVERNIGHT AND TERM DEPOSITS" - ] - ], - [ - "literal", [ "reference", {}, @@ -58109,57 +74101,40 @@ ], [ [ - "string" + "basics" ] ], [ - "string" + "bool" ] ], [] - ], - [ - "string_literal", - "CASH EQUIVALENTS" ] ] - ] - ] - ], - [ - "if_then_else", - [ - "reference", - {}, + ], [ [ [ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" + "basics" ] ], [ - "fed", - "code" + "greater", + "than", + "or", + "equal" ] - ], - [] + ] ], [ "apply", @@ -58183,13 +74158,13 @@ ] ], [ - "bool" + "float" ] ], [] ], [ - "apply", + "reference", [ "function", {}, @@ -58202,159 +74177,34 @@ "morphir" ], [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" + "sample" ] ], - [] - ], - [ - "function", - {}, [ - "reference", - {}, [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] + "reg" ], - [] - ], - [ - "reference", - {}, [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] ], [ + "adjusted", + "amount", + "u", "s", - "d", - "k" - ] - ], - [ - [ - "basics" + "d" ] ], - [ - "greater", - "than", - "or", - "equal" - ] - ] - ], - [ - "apply", + [] + ], [ "reference", {}, @@ -58379,70 +74229,242 @@ ] ], [] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "sample" + ] ], [ - "reference", [ - "function", - {}, + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "net", + "cash", + "u", + "s", + "d" + ] + ] + ], + [ + "variable", + [ + "reference", + {}, + [ + [ [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] + "morphir" ], [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "adjusted", + "amount", + "u", + "s", + "d" + ] + ], + [] + ], + [ + "adjusted", + "amount", + "u", + "s", + "d" + ] + ] + ] + ], + [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "float" + ] + ], + [] + ], + [ + "float_literal", + 0 + ] + ] + ], + [ + "if_then_else", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" ] ], + [ + "bool" + ] + ], + [] + ] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, [ [ [ @@ -58457,26 +74479,18 @@ "reg" ], [ - "l", - "c", - "r" - ], - [ - "fed", - "code" + "currency" ] ], [ - "net", - "cash", - "u", - "s", - "d" + "currency" ] - ] + ], + [] ], [ - "variable", + "function", + {}, [ "reference", {}, @@ -58494,122 +74508,42 @@ "reg" ], [ - "l", - "c", - "r" - ], - [ - "fed", - "code" + "country" ] ], [ - "cashflow" + "country" ] ], [] ], [ - "cashflow" - ] - ] - ] - ], - [ - "literal", - [ - "reference", - {}, - [ - [ + "reference", + {}, [ - "morphir" + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ], - [ - "float_literal", - 0 - ] - ] - ], - [ - "if_then_else", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" + [] ] - ], - [ - "fed", - "code" ] ], - [] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], [ "reference", [ @@ -58632,45 +74566,99 @@ "reg" ], [ - "l", - "c", - "r" - ], - [ - "fed", - "code" + "country" ] ], [ - "cashflow" + "country" ] ], [] ], [ - "reference", + "function", {}, [ + "reference", + {}, [ [ - "morphir" + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "currency" + ] + ], + [ + "currency" + ] + ], + [] + ], + [ + "function", + {}, + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "country" + ] + ], + [ + "country" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "basics" + ] + ], + [ + "bool" + ] ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" + [] ] - ], - [] + ] ] ], [ @@ -58693,7 +74681,8 @@ ], [ "fed", - "code" + "code", + "rules" ] ], [ @@ -58721,93 +74710,24 @@ "reg" ], [ - "l", - "c", - "r" - ], - [ - "fed", - "code" + "country" ] ], [ - "cashflow" + "country" ] ], [] ], [ - "cashflow" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "u", - "1" + "legal", + "entity", + "country" ] ] ], [ - "constructor", + "variable", [ "reference", {}, @@ -58825,55 +74745,23 @@ "reg" ], [ - "l", - "c", - "r" - ], - [ - "fed", - "code" + "currency" ] ], [ - "fed", - "code" + "currency" ] ], [] ], [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "u", - "2" - ] + "cashflow", + "currency" ] ] ], [ - "constructor", + "variable", [ "reference", {}, @@ -58891,55 +74779,23 @@ "reg" ], [ - "l", - "c", - "r" - ], - [ - "fed", - "code" + "country" ] ], [ - "fed", - "code" + "country" ] ], [] ], [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "u", - "4" - ] + "counterparty", + "country" ] ] ], [ - "constructor", + "literal", [ "reference", {}, @@ -58949,258 +74805,120 @@ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" + "string" ] ], [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "z", - "0" - ] - ] - ] - ] - ] - ] - ] - } - ] - ], - [ - [ - "is", - "onshore" - ], - [ - "public", - { - "inputTypes": [ - [ - [ - "cashflow" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" + "string" + ] + ], + [] ], [ - "sample" + "string_literal", + "1" ] ], [ + "literal", [ - "reg" - ], - [ - "l", - "c", - "r" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] ], [ - "fed", - "code" + "string_literal", + "2" ] - ], - [ - "cashflow" ] ], - [] - ], - [ - "reference", - {}, [ + "literal", [ + "reference", + {}, [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] ], - [ - "fed", - "code" - ] + [] ], [ - "cashflow" + "string_literal", + "4" ] - ], - [] - ] - ] - ], - "outputType": [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" ] - ], - [ - "bool" ] - ], - [] - ], - "body": [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], + }, [ "apply", [ - "function", + "reference", {}, [ - "reference", - {}, [ [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] + "morphir" ], [ - "bool" + "s", + "d", + "k" ] ], - [] - ], - [ - "reference", - {}, [ [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" + "list" ] ], - [] - ] - ], - [ - "reference", + [ + "list" + ] + ], [ - "function", - {}, [ "reference", {}, @@ -59217,120 +74935,127 @@ ], [ [ - "basics" + "string" ] ], [ - "bool" + "string" ] ], [] - ], + ] + ] + ], + [ + "apply", + [ + "function", + {}, [ - "function", + "reference", {}, [ - "reference", - {}, [ [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] + "morphir" ], [ - [ - "basics" - ] - ], + "s", + "d", + "k" + ] + ], + [ [ - "bool" + "list" ] ], - [] + [ + "list" + ] ], [ - "reference", - {}, [ + "reference", + {}, [ [ - "morphir" + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] ], [ - "s", - "d", - "k" - ] - ], - [ + [ + "string" + ] + ], [ - "basics" + "string" ] ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" + [] + ] ] ], [ - "and" - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ + "reference", + {}, [ [ - "morphir" + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] ], [ - "s", - "d", - "k" + [ + "list" + ] + ], + [ + "list" ] ], [ [ - "basics" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] ] - ], - [ - "bool" ] - ], - [] + ] ], [ - "apply", + "reference", [ "function", {}, @@ -59350,11 +75075,11 @@ ], [ [ - "maybe" + "list" ] ], [ - "maybe" + "list" ] ], [ @@ -59367,19 +75092,18 @@ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" - ], - [ - "country" + "string" ] ], [ - "country" + "string" ] ], [] @@ -59387,36 +75111,59 @@ ] ], [ - "reference", + "function", {}, [ + "reference", + {}, [ [ - "morphir" + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] ], [ - "s", - "d", - "k" + [ + "list" + ] + ], + [ + "list" ] ], [ [ - "basics" + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] ] - ], - [ - "bool" ] ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, [ "reference", {}, @@ -59433,11 +75180,11 @@ ], [ [ - "maybe" + "list" ] ], [ - "maybe" + "list" ] ], [ @@ -59450,130 +75197,194 @@ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" - ], - [ - "country" + "string" ] ], [ - "country" + "string" ] ], [] ] ] + ] + ] + ], + [ + [ + [ + "morphir" ], [ - "function", + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "append" + ] + ] + ], + [ + "list", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] + ], + [ + "list" + ] + ], + [ + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ] + ], + [ + [ + "literal", + [ + "reference", {}, [ - "reference", - {}, [ [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] + "morphir" ], [ - "maybe" + "s", + "d", + "k" ] ], [ [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] + "string" ] + ], + [ + "string" ] ], + [] + ], + [ + "string_literal", + "I" + ] + ], + [ + "literal", + [ + "reference", + {}, [ - "reference", - {}, [ [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] + "morphir" ], [ - [ - "basics" - ] - ], + "s", + "d", + "k" + ] + ], + [ [ - "bool" + "string" ] ], - [] - ] + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "U" ] - ], + ] + ] + ] + ], + [ + "list", + [ + "reference", + {}, + [ [ [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] + "morphir" ], [ - [ - "basics" - ] - ], + "s", + "d", + "k" + ] + ], + [ [ - "equal" + "list" ] + ], + [ + "list" ] ], [ - "field", [ "reference", {}, @@ -59590,287 +75401,347 @@ ], [ [ - "maybe" + "string" ] ], [ - "maybe" + "string" ] ], + [] + ] + ] + ], + [ + [ + "variable", + [ + "reference", + {}, [ [ - "reference", - {}, [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] + "morphir" ], - [] + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" ] - ] + ], + [] + ], + [ + "tail" + ] + ] + ] + ] + ] + ] + } + ] + ], + [ + [ + "rules", + "i", + "a" + ], + [ + "public", + { + "inputTypes": [ + [ + [ + "ten", + "q", + "level", + "4" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ] + ], + [ + [ + "central", + "bank" + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" ], [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "legal", - "entity" - ] - ], - [] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "cashflow" - ] - ], - [ - "legal", - "entity" - ] + "sample" + ] + ], + [ + [ + "reg" ], [ - "country" + "l", + "c", + "r" + ], + [ + "central", + "bank" ] + ], + [ + "central", + "bank" ] ], + [] + ], + [ + "reference", + {}, [ - "apply", [ - "reference", - {}, [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" ], + [ + "central", + "bank" + ] + ], + [ + "central", + "bank" + ] + ], + [] + ] + ] + ], + "outputType": [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "code" + ] + ], + [] + ], + "body": [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "code" + ] + ], + [] + ], + [ + "apply", + [ + "function", + {}, + [ + "reference", + {}, + [ [ [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" ] + ], + [ + "list" ] ], [ - "reference", [ - "function", + "reference", {}, [ - "reference", - {}, [ [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] + "morphir" ], [ - "currency" + "s", + "d", + "k" ] ], - [] - ], - [ - "reference", - {}, [ [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" + "string" ] ], [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] + "string" ] - ] - ], + ], + [] + ] + ] + ], + [ + "reference", + {}, + [ [ [ - [ - "morphir" - ], - [ - "sample" - ] + "morphir" ], [ - [ - "reg" - ], - [ - "currency" - ] - ], + "s", + "d", + "k" + ] + ], + [ [ - "country" + "list" ] + ], + [ + "list" ] ], [ - "field", [ "reference", {}, @@ -59880,97 +75751,27 @@ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" - ], - [ - "currency" + "string" ] ], [ - "currency" + "string" ] ], [] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "cashflow" - ] - ], - [ - "currency" ] ] ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] ], [ - "apply", + "reference", [ "function", {}, @@ -59990,11 +75791,11 @@ ], [ [ - "maybe" + "list" ] ], [ - "maybe" + "list" ] ], [ @@ -60007,53 +75808,24 @@ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" - ], - [ - "country" + "string" ] ], [ - "country" + "string" ] ], [] ] ] ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", [ "function", {}, @@ -60073,11 +75845,11 @@ ], [ [ - "maybe" + "list" ] ], [ - "maybe" + "list" ] ], [ @@ -60090,19 +75862,18 @@ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" - ], - [ - "country" + "string" ] ], [ - "country" + "string" ] ], [] @@ -60110,87 +75881,84 @@ ] ], [ - "function", + "reference", {}, [ - "reference", - {}, [ [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] + "morphir" ], [ - "maybe" + "s", + "d", + "k" ] ], [ [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] + "list" ] + ], + [ + "list" ] ], [ - "reference", - {}, [ + "reference", + {}, [ [ - "morphir" + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] ], [ - "s", - "d", - "k" - ] - ], - [ + [ + "string" + ] + ], [ - "basics" + "string" ] ], - [ - "bool" - ] - ], - [] + [] + ] ] ] + ] + ], + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "list" + ] ], + [ + "append" + ] + ] + ], + [ + "list", + [ + "reference", + {}, [ [ [ @@ -60204,70 +75972,44 @@ ], [ [ - "basics" + "list" ] ], [ - "equal" + "list" ] - ] - ], - [ - "field", + ], [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], [ + "reference", + {}, [ - "reference", - {}, [ [ - [ - "morphir" - ], - [ - "sample" - ] + "morphir" ], [ - [ - "reg" - ], - [ - "country" - ] - ], + "s", + "d", + "k" + ] + ], + [ [ - "country" + "string" ] ], - [] - ] + [ + "string" + ] + ], + [] ] - ], + ] + ], + [ [ - "field", + "literal", [ "reference", {}, @@ -60277,77 +76019,97 @@ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" + "string" ] ], [ - "legal", - "entity" + "string" ] ], [] ], [ - "variable", + "string_literal", + "I" + ] + ], + [ + "literal", + [ + "reference", + {}, [ - "reference", - {}, [ [ - [ - "morphir" - ], - [ - "sample" - ] + "morphir" ], [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], + "s", + "d", + "k" + ] + ], + [ [ - "cashflow" + "string" ] ], - [] + [ + "string" + ] ], - [ - "cashflow" - ] + [] + ], + [ + "string_literal", + "A" + ] + ] + ] + ] + ], + [ + "if_then_else", + [ + "reference", + {}, + [ + [ + [ + "morphir" ], [ - "legal", - "entity" + "sample" ] ], [ - "country" + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "code" ] - ] + ], + [] ], [ "apply", @@ -60367,14 +76129,20 @@ ], [ [ - "maybe" + "basics" ] ], [ - "maybe" + "bool" ] ], + [] + ], + [ + "apply", [ + "function", + {}, [ "reference", {}, @@ -60384,30 +76152,22 @@ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" - ], - [ - "country" + "string" ] ], [ - "country" + "string" ] ], [] - ] - ] - ], - [ - "constructor", - [ - "function", - {}, + ], [ "reference", {}, @@ -60417,47 +76177,56 @@ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" - ], - [ - "country" + "basics" ] ], [ - "country" + "bool" ] ], [] - ], + ] + ], + [ + "reference", [ - "reference", + "function", {}, [ + "reference", + {}, [ [ - "morphir" + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] ], [ - "s", - "d", - "k" - ] - ], - [ + [ + "string" + ] + ], [ - "maybe" + "string" ] ], - [ - "maybe" - ] + [] ], [ + "function", + {}, [ "reference", {}, @@ -60467,49 +76236,107 @@ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "reference", + {}, + [ + [ + [ + "morphir" ], [ - "country" + "s", + "d", + "k" ] ], [ - "country" + [ + "basics" + ] + ], + [ + "bool" ] ], [] ] ] - ] - ], - [ + ], [ [ - "morphir" + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] ], [ - "s", - "d", - "k" + [ + "basics" + ] + ], + [ + "equal" ] - ], + ] + ], + [ + "variable", [ + "reference", + {}, [ - "maybe" - ] + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] ], [ - "just" + "ten", + "q", + "level", + "4" ] ] ], [ - "field", + "reference", [ "reference", {}, @@ -60519,25 +76346,94 @@ "morphir" ], [ - "sample" + "s", + "d", + "k" ] ], [ [ - "reg" - ], - [ - "country" + "string" ] ], [ - "country" + "string" ] ], [] ], [ - "field", + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "segregated", + "cash" + ] + ] + ] + ], + [ + "apply", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "sample" + ] + ], + [ + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] + ], + [ + "rule", + "code" + ] + ], + [] + ], + [ + "reference", + [ + "function", + {}, [ "reference", {}, @@ -60560,235 +76456,86 @@ "r" ], [ - "fed", - "code" + "central", + "bank" ] ], [ - "counterparty" + "central", + "bank" ] ], [] ], [ - "variable", + "reference", + {}, [ - "reference", - {}, [ [ - [ - "morphir" - ], - [ - "sample" - ] + "morphir" ], [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] + "sample" + ] + ], + [ + [ + "reg" ], [ - "cashflow" + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" ] ], - [] + [ + "rule", + "code" + ] ], - [ - "cashflow" - ] - ], - [ - "counterparty" - ] - ], - [ - "country" - ] - ] - ] - ] - ] - } - ] - ], - [ - [ - "net", - "cash", - "u", - "s", - "d" - ], - [ - "public", - { - "inputTypes": [ - [ - [ - "cashflow" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ] - ] - ], - "outputType": [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ], - "body": [ - "pattern_match", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" + [] ] ], [ [ - "reg" + [ + "morphir" + ], + [ + "sample" + ] ], [ - "l", - "c", - "r" + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" + ] ], [ - "fed", - "code" + "rule", + "i", + "a", + "4" ] - ], - [ - "money" ] ], [ + "variable", [ "reference", {}, @@ -60811,20 +76558,25 @@ "r" ], [ - "fed", - "code" + "central", + "bank" ] ], [ - "usd" + "central", + "bank" ] ], [] + ], + [ + "central", + "bank" ] ] ], [ - "variable", + "apply", [ "reference", {}, @@ -60848,93 +76600,88 @@ ], [ "fed", - "code" + "code", + "rules" ] ], [ - "cashflow" + "rule", + "code" ] ], [] ], [ - "cashflow" - ] - ], - [ - "amount", - "u", - "s", - "d" - ] - ], - [ - [ - [ - "constructor_pattern", + "reference", [ - "reference", + "function", {}, [ + "reference", + {}, [ [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" + [ + "morphir" + ], + [ + "sample" + ] ], [ - "l", - "c", - "r" + [ + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" + ] ], [ - "fed", - "code" + "central", + "bank" ] ], - [ - "money" - ] + [] ], [ + "reference", + {}, [ - "reference", - {}, [ [ - [ - "morphir" - ], - [ - "sample" - ] + "morphir" ], [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] + "sample" + ] + ], + [ + [ + "reg" ], [ - "usd" + "l", + "c", + "r" + ], + [ + "fed", + "code", + "rules" ] ], - [] - ] + [ + "rule", + "code" + ] + ], + [] ] ], [ @@ -60957,72 +76704,15 @@ ], [ "fed", - "code" + "code", + "rules" ] ], [ - "money" - ] - ], - [ - [ - "as_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ], - [ - "wildcard_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ] - ], - [ - "amount" - ] + "rule", + "i", + "a", + "3" ] ] ], @@ -61037,24 +76727,33 @@ "morphir" ], [ - "s", - "d", - "k" + "sample" ] ], [ [ - "basics" + "reg" + ], + [ + "l", + "c", + "r" + ], + [ + "central", + "bank" ] ], [ - "float" + "central", + "bank" ] ], [] ], [ - "amount" + "central", + "bank" ] ] ] @@ -61062,6 +76761,75 @@ ] } ] + ], + [ + [ + "segregated", + "cash" + ], + [ + "public", + { + "inputTypes": [], + "outputType": [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + "body": [ + "literal", + [ + "reference", + {}, + [ + [ + [ + "morphir" + ], + [ + "s", + "d", + "k" + ] + ], + [ + [ + "string" + ] + ], + [ + "string" + ] + ], + [] + ], + [ + "string_literal", + "Seg Cash" + ] + ] + } + ] ] ] } diff --git a/morphir.json b/morphir.json index 5ec0ec3..c967e5b 100644 --- a/morphir.json +++ b/morphir.json @@ -2,7 +2,7 @@ "name": "Morphir/Sample", "sourceDirectory": "src", "exposedModules": [ - "Reg.LCR.FedCode" - , "Reg.LCR.FedCodeRules" + "Reg.LCR.FedCodeRules" + , "Reg.LCR.Calculations" ] } diff --git a/src/Morphir/Sample/Reg/CDM/MiFIR/RTS22.elm b/src/Morphir/Sample/Reg/CDM/MiFIR/RTS22.elm index 944f39e..f6a4b89 100644 --- a/src/Morphir/Sample/Reg/CDM/MiFIR/RTS22.elm +++ b/src/Morphir/Sample/Reg/CDM/MiFIR/RTS22.elm @@ -25,6 +25,7 @@ import Morphir.Sample.Reg.CDM.MiFIR.Basics exposing (..) import Morphir.Sample.Reg.CDM.MiFIR.Enums exposing (..) import Morphir.Sample.Reg.CDM.MiFIR.FloatingRateIndexEnum exposing (FloatingRateIndexEnum(..)) import Morphir.Sample.Reg.CDM.MiFIR.Quantities exposing (NonNegativeQuantity) +import Morphir.Sample.Reg.Currency exposing (Currency) import Morphir.Sample.Reg.LCR.Flows exposing (Amount) @@ -52,9 +53,11 @@ type alias PriceNotation = priceNotation : Price -> Maybe AssetIdentifier -> Result String PriceNotation priceNotation price mAssetIdentifier = let + currencyExists : Bool currencyExists = mAssetIdentifier |> Maybe.map .currency |> exists + rateOptionExists : Bool rateOptionExists = mAssetIdentifier |> Maybe.map .rateOption |> exists in @@ -239,10 +242,6 @@ type alias ProductIdentifier = } -type alias Currency = - String - - type alias Product = { contractualProduct : ContractualProduct } @@ -332,9 +331,11 @@ mapTrade : Trade -> Maybe Report mapTrade trade = let -- What should happen if any of the optional prices are not present? Skip or error? + price : Maybe Number price = priceOf trade + quantity : Amount quantity = trade.tradableProduct.quantityNotation |> Nonempty.head |> .quantity |> .amount in @@ -345,6 +346,7 @@ mapTrade trade = assetIdentifier : Maybe ProductIdentifier -> Maybe Currency -> Maybe FloatingRateOption -> Result String AssetIdentifier assetIdentifier mProductId mCurrency mRateOption = let + isValid : Bool isValid = case ( mProductId, mCurrency, mRateOption ) of ( Just p, Nothing, Nothing ) -> @@ -412,6 +414,7 @@ priceType trade = isFixedFixed : Trade -> Bool isFixedFixed trade = let + count : Int count = trade.tradableProduct.product.contractualProduct.economicTerms.payout.interestRatePayout |> Maybe.map (\x -> x.rateSpecification.fixedRate) @@ -443,12 +446,14 @@ fixedFixedPrice trade = isFixedFloat : Trade -> Bool isFixedFloat trade = let + fixedCount : Int fixedCount = trade.tradableProduct.product.contractualProduct.economicTerms.payout.interestRatePayout |> Maybe.map (\x -> x.rateSpecification.fixedRate) |> Maybe.withDefault [] |> List.length + floatingCount : Int floatingCount = trade.tradableProduct.product.contractualProduct.economicTerms.payout.interestRatePayout |> Maybe.map (\x -> x.rateSpecification.floatingRate) @@ -475,6 +480,7 @@ fixedFloatPrice trade = isIRSwapBasis : Trade -> Bool isIRSwapBasis trade = let + count : Int count = trade.tradableProduct.product.contractualProduct.economicTerms.payout.interestRatePayout |> Maybe.map (\x -> x.rateSpecification.floatingRate) @@ -505,18 +511,21 @@ isCreditDefaultSwap trade = cdsPrice : Trade -> Maybe Number cdsPrice trade = let + mp : Maybe Price mp = trade.tradableProduct.priceNotation |> Nonempty.toList |> List.head |> Maybe.map .price + fixedRate : Maybe Number fixedRate = mp |> Maybe.map .fixedInterestRate |> Maybe.withDefault Nothing |> Maybe.map .rate + floatingRate : Maybe (Maybe Number) floatingRate = mp |> Maybe.map .floatingInterestRate diff --git a/src/Morphir/Sample/Reg/LCR/Basics.elm b/src/Morphir/Sample/Reg/LCR/Basics.elm index 3d18988..0cdcaad 100644 --- a/src/Morphir/Sample/Reg/LCR/Basics.elm +++ b/src/Morphir/Sample/Reg/LCR/Basics.elm @@ -18,9 +18,7 @@ module Morphir.Sample.Reg.LCR.Basics exposing ( AssetCategoryCodes(..) , Balance - , Currency , Entity - , Fed5GCode , InsuranceType(..) , Ratio ) @@ -29,6 +27,8 @@ module Morphir.Sample.Reg.LCR.Basics exposing There are a bunch of them, but we're only concerned with these three in this example . -} +import Morphir.Sample.Reg.Currency exposing (Currency(..)) + type AssetCategoryCodes = Level1Assets @@ -48,10 +48,6 @@ type alias Entity = String -type alias Currency = - String - - type alias Balance = Float @@ -60,16 +56,12 @@ type alias Ratio = Float -type alias Fed5GCode = - String - - {-| A currency isn't always itself in 5G. -} fed5GCurrency : Currency -> Currency fed5GCurrency currency = - if List.member currency [ "USD", "EUR", "GBP", "CHF", "JPY", "AUD", "CAD" ] then + if List.member currency [ USD, EUR, GBP, CHF, JPY, AUD, CAD ] then currency else - "USD" + USD diff --git a/src/Morphir/Sample/Reg/LCR/Flows.elm b/src/Morphir/Sample/Reg/LCR/Flows.elm index ed40baf..a1ac502 100644 --- a/src/Morphir/Sample/Reg/LCR/Flows.elm +++ b/src/Morphir/Sample/Reg/LCR/Flows.elm @@ -18,8 +18,10 @@ module Morphir.Sample.Reg.LCR.Flows exposing (Amount, BusinessDate, Flow, ReportingEntity) import Morphir.SDK.LocalDate exposing (LocalDate) +import Morphir.Sample.Reg.Currency exposing (Currency) import Morphir.Sample.Reg.LCR.Basics exposing (..) import Morphir.Sample.Reg.LCR.Counterparty exposing (CounterpartyId) +import Morphir.Sample.Reg.LCR.FedCodeRules exposing (RuleCode) import Morphir.Sample.Reg.LCR.Product exposing (ProductId) @@ -42,7 +44,7 @@ type alias Flow = , collateralClass : AssetCategoryCodes , counterpartyId : CounterpartyId , currency : Currency - , fed5GCode : Fed5GCode + , ruleCode : RuleCode , insured : InsuranceType , isTreasuryControl : Bool , isUnencumbered : Bool diff --git a/src/Morphir/Sample/Reg/LCR/Inflows.elm b/src/Morphir/Sample/Reg/LCR/Inflows.elm index 0b23592..f657f56 100644 --- a/src/Morphir/Sample/Reg/LCR/Inflows.elm +++ b/src/Morphir/Sample/Reg/LCR/Inflows.elm @@ -20,6 +20,7 @@ module Morphir.Sample.Reg.LCR.Inflows exposing (..) import Morphir.SDK.LocalDate exposing (LocalDate) import Morphir.Sample.Reg.LCR.Basics exposing (..) import Morphir.Sample.Reg.LCR.Counterparty exposing (..) +import Morphir.Sample.Reg.LCR.FedCodeRules exposing (RuleCode) import Morphir.Sample.Reg.LCR.Flows exposing (..) import Morphir.Sample.Reg.LCR.MaturityBucket exposing (..) import Morphir.Sample.Reg.LCR.Rules exposing (..) @@ -52,19 +53,19 @@ inflowRules toCounterparty t = isRule20a1 : LocalDate -> Flow -> Bool isRule20a1 t flow = - List.member flow.fed5GCode [ "I.A.3.1", "I.A.3.2", "I.A.3.3", "I.A.3.4", "I.A.3.5", "I.A.3.6", "I.A.3.7", "I.A.3.8" ] + List.member flow.ruleCode [ [ "I", "A", "3", "1" ], [ "I", "A", "3", "2" ], [ "I", "A", "3", "3" ], [ "I", "A", "3", "4" ], [ "I", "A", "3", "5" ], [ "I", "A", "3", "6" ], [ "I", "A", "3", "7" ], [ "I", "A", "3", "8" ] ] && daysToMaturity t flow.maturityDate == 0 isRule20a3dash6 : Flow -> Bool isRule20a3dash6 flow = - (List.member flow.fed5GCode [ "I.A.1", "I.A.2" ] + (List.member flow.ruleCode [ [ "I", "A", "1" ], [ "I", "A", "2" ] ] && flow.collateralClass == Level1Assets && flow.isTreasuryControl ) - || (List.member flow.fed5GCode [ "I.S.1", "I.S.2", "I.S.4" ] + || (List.member flow.ruleCode [ [ "I", "S", "1" ], [ "I", "S", "2" ], [ "I", "S", "4" ] ] && flow.collateralClass == Level1Assets && flow.isTreasuryControl @@ -74,22 +75,22 @@ isRule20a3dash6 flow = isRule22b3L2a : Flow -> Bool isRule22b3L2a flow = - flow.fed5GCode == "S.I.19" && flow.collateralClass == Level2aAssets + flow.ruleCode == [ "S", "I", "19" ] && flow.collateralClass == Level2aAssets isRule22b3L2b : Flow -> Bool isRule22b3L2b flow = - flow.fed5GCode == "S.I.19" && flow.collateralClass == Level2bAssets + flow.ruleCode == [ "S", "I", "19" ] && flow.collateralClass == Level2bAssets isRule20b : Flow -> Bool isRule20b flow = - (List.member flow.fed5GCode [ "I.A.1", "I.A.2" ] + (List.member flow.ruleCode [ [ "I", "A", "1" ], [ "I", "A", "2" ] ] && flow.collateralClass == Level2aAssets && flow.isTreasuryControl ) - || (List.member flow.fed5GCode [ "I.S.1", "I.S.2", "I.S.4" ] + || (List.member flow.ruleCode [ [ "I", "S", "1" ], [ "I", "S", "2" ], [ "I", "S", "4" ] ] && flow.collateralClass == Level2aAssets && flow.isTreasuryControl @@ -99,12 +100,12 @@ isRule20b flow = isRule20c : Flow -> Bool isRule20c flow = - (List.member flow.fed5GCode [ "I.A.1", "I.A.2" ] + (List.member flow.ruleCode [ [ "I", "A", "1" ], [ "I", "A", "2" ] ] && flow.collateralClass == Level2bAssets && flow.isTreasuryControl ) - || (List.member flow.fed5GCode [ "I.S.1", "I.S.2", "I.S.4" ] + || (List.member flow.ruleCode [ [ "I", "S", "1" ], [ "I", "S", "2" ], [ "I", "S", "4" ] ] && flow.collateralClass == Level2bAssets && flow.isTreasuryControl @@ -112,9 +113,9 @@ isRule20c flow = ) -isRule33b : { a | fed5GCode : String } -> Bool +isRule33b : { a | ruleCode : RuleCode } -> Bool isRule33b cashflow = - cashflow.fed5GCode == "1.O.7" + cashflow.ruleCode == [ "1", "O", "7" ] isRule33c : (Flow -> Counterparty) -> LocalDate -> Flow -> Bool @@ -128,11 +129,11 @@ isRule33c toCounterparty t flow = days = daysToMaturity t flow.maturityDate in - (List.member flow.fed5GCode [ "I.U.5", "I.U.6" ] + (List.member flow.ruleCode [ [ "I", "U", "5" ], [ "I", "U", "6" ] ] && List.member cpty.counterpartyType [ Retail, SmallBusiness ] && (0 < days && days <= 30) ) - || (List.member flow.fed5GCode [ "I.S.1", "I.S.2", "I.S.4", "I.S.5", "I.S.6", "I.S.7" ] + || (List.member flow.ruleCode [ [ "I", "S", "1" ], [ "I", "S", "2" ], [ "I", "S", "4" ], [ "I", "S", "5" ], [ "I", "S", "6" ], [ "I", "S", "7" ] ] && cpty.counterpartyType == Retail && (0 < days && days <= 30) @@ -146,8 +147,8 @@ isRule33d1 toCounterparty flow = cpty = toCounterparty flow in - List.member flow.fed5GCode [ "I.U.1", "I.U.2", "I.U.4" ] - || (List.member flow.fed5GCode [ "I.U.5", "I.U.6" ] + List.member flow.ruleCode [ [ "I", "U", "1" ], [ "I", "U", "2" ], [ "I", "U", "4" ] ] + || (List.member flow.ruleCode [ [ "I", "U", "5" ], [ "I", "U", "6" ] ] && List.member cpty.counterpartyType [ CentralBank , Bank @@ -165,7 +166,7 @@ isRule33d2 toCounterparty flow = cpty = toCounterparty flow in - List.member flow.fed5GCode [ "I.U.5", "I.U.6" ] + List.member flow.ruleCode [ [ "I", "U", "5" ], [ "I", "U", "6" ] ] && List.member cpty.counterpartyType [ NonFinancialCorporate , Sovereign @@ -179,7 +180,7 @@ isRule33d2 toCounterparty flow = isRule33e : Flow -> Bool isRule33e cashflow = - cashflow.fed5GCode == "I.O.6" || cashflow.fed5GCode == "I.O.8" + cashflow.ruleCode == [ "I", "O", "6" ] || cashflow.ruleCode == [ "I", "O", "8" ] @@ -188,11 +189,11 @@ isRule33e cashflow = -- Debug.todo "Rule 33(f) is actually a bunch of rules. Too many to do for now..." -isRule33g : { a | fed5GCode : String, isTreasuryControl : Bool } -> Bool +isRule33g : { a | ruleCode : RuleCode, isTreasuryControl : Bool } -> Bool isRule33g cashflow = - cashflow.fed5GCode == "I.O.5" && cashflow.isTreasuryControl + cashflow.ruleCode == [ "I", "O", "5" ] && cashflow.isTreasuryControl -isRule33h : { a | fed5GCode : String, isTreasuryControl : Bool } -> Bool +isRule33h : { a | ruleCode : RuleCode, isTreasuryControl : Bool } -> Bool isRule33h cashflow = - cashflow.fed5GCode == "I.O.9" && cashflow.isTreasuryControl + cashflow.ruleCode == [ "I", "O", "9" ] && cashflow.isTreasuryControl diff --git a/src/Morphir/Sample/Reg/LCR/Outflows.elm b/src/Morphir/Sample/Reg/LCR/Outflows.elm index 3d8b054..c44c518 100644 --- a/src/Morphir/Sample/Reg/LCR/Outflows.elm +++ b/src/Morphir/Sample/Reg/LCR/Outflows.elm @@ -64,7 +64,7 @@ outflowRules counterparty t = isRule32a1 : Flow -> Bool isRule32a1 flow = - List.member flow.fed5GCode [ "O.D.1", "O.D.2" ] + List.member flow.ruleCode [ [ "O", "D", "1" ], [ "O", "D", "2" ] ] && flow.insured == FDIC @@ -76,13 +76,13 @@ isRule32a2 counterparty flow = cpty = counterparty flow in - (List.member flow.fed5GCode [ "O.D.1", "O.D.2" ] + (List.member flow.ruleCode [ [ "O", "D", "1" ], [ "O", "D", "2" ] ] && List.member cpty.counterpartyType [ Retail, SmallBusiness ] && flow.insured /= FDIC ) - || (flow.fed5GCode - == "O.D.3" + || (flow.ruleCode + == [ "O", "D", "3" ] && List.member cpty.counterpartyType [ Retail, SmallBusiness ] ) @@ -94,8 +94,8 @@ isRule32a3 counterparty flow = cpty = counterparty flow in - flow.fed5GCode - == "O.D.12" + flow.ruleCode + == [ "O", "D", "12" ] && List.member cpty.counterpartyType [ Retail, SmallBusiness ] && flow.insured == FDIC @@ -108,8 +108,8 @@ isRule32a4 counterparty flow = cpty = counterparty flow in - flow.fed5GCode - == "O.D.12" + flow.ruleCode + == [ "O", "D", "12" ] && List.member cpty.counterpartyType [ Retail, SmallBusiness ] && flow.insured /= FDIC @@ -122,33 +122,33 @@ isRule32a5 counterparty flow = cpty = counterparty flow in - List.member flow.fed5GCode [ "O.D.13", "O.W.18" ] + List.member flow.ruleCode [ [ "O", "D", "13" ], [ "O", "W", "18" ] ] && List.member cpty.counterpartyType [ Retail, SmallBusiness ] isRule32b : Flow -> Bool isRule32b flow = - List.member flow.fed5GCode [ "O.W.1", "O.W.2", "O.W.4", "O.O.21" ] + List.member flow.ruleCode [ [ "O", "W", "1" ], [ "O", "W", "2" ], [ "O", "W", "4" ], [ "O", "O", "21" ] ] isRule32c : Flow -> Bool isRule32c flow = - flow.fed5GCode == "O.O.20" + flow.ruleCode == [ "O", "O", "20" ] isRule32d : Flow -> Bool isRule32d flow = - flow.fed5GCode == "O.O.6" + flow.ruleCode == [ "O", "O", "6" ] isRule32e : Flow -> Bool isRule32e flow = - flow.fed5GCode == "O.O.6" + flow.ruleCode == [ "O", "O", "6" ] isRule32f : Flow -> Bool isRule32f flow = - flow.fed5GCode == "O.O.6" + flow.ruleCode == [ "O", "O", "6" ] isRule32g1 : (Flow -> Counterparty) -> LocalDate -> Flow -> Bool @@ -162,8 +162,8 @@ isRule32g1 counterparty t flow = remainingDays = daysToMaturity t flow.maturityDate in - flow.fed5GCode - == "O.D.7" + flow.ruleCode + == [ "O", "D", "7" ] && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) && (0 < remainingDays && remainingDays <= 30) @@ -175,8 +175,8 @@ isRule32g2 counterparty t flow = cpty = counterparty flow in - flow.fed5GCode - == "O.D.7" + flow.ruleCode + == [ "O", "D", "7" ] && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) && daysToMaturity t flow.maturityDate <= 30 @@ -189,8 +189,8 @@ isRule32g3 counterparty t flow = cpty = counterparty flow in - flow.fed5GCode - == "O.D.7" + flow.ruleCode + == [ "O", "D", "7" ] && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) && daysToMaturity t flow.maturityDate == 0 @@ -205,8 +205,8 @@ isRule32g4 counterparty t flow = cpty = counterparty flow in - flow.fed5GCode - == "O.D.7" + flow.ruleCode + == [ "O", "D", "7" ] && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) && daysToMaturity t flow.maturityDate == 0 @@ -221,8 +221,8 @@ isRule32g5 counterparty flow = cpty = counterparty flow in - flow.fed5GCode - == "O.D.11" + flow.ruleCode + == [ "O", "D", "11" ] && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) && flow.insured == FDIC @@ -235,8 +235,8 @@ isRule32g6 counterparty flow = cpty = counterparty flow in - flow.fed5GCode - == "O.D.11" + flow.ruleCode + == [ "O", "D", "11" ] && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) && flow.insured /= FDIC @@ -249,8 +249,8 @@ isRule32g7 counterparty flow = cpty = counterparty flow in - flow.fed5GCode - == "O.D.8" + flow.ruleCode + == [ "O", "D", "8" ] && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) && flow.insured == FDIC @@ -263,8 +263,8 @@ isRule32g8 counterparty flow = cpty = counterparty flow in - flow.fed5GCode - == "O.D.9" + flow.ruleCode + == [ "O", "D", "9" ] && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) && flow.insured == FDIC @@ -277,7 +277,7 @@ isRule32g9 counterparty flow = cpty = counterparty flow in - (flow.fed5GCode == "O.D.8" || flow.fed5GCode == "O.D.9") + (flow.ruleCode == [ "O", "D", "8" ] || flow.ruleCode == [ "O", "D", "9" ]) && (cpty.counterpartyType == Retail || cpty.counterpartyType == SmallBusiness) && flow.insured /= FDIC @@ -299,8 +299,8 @@ isRule32h3 counterparty flow = cpty = counterparty flow in - flow.fed5GCode - == "O.D.4" + flow.ruleCode + == [ "O", "D", "4" ] && List.member cpty.counterpartyType [ NonFinancialCorporate , Sovereign @@ -326,8 +326,8 @@ isRule32h4 counterparty flow = cpty = counterparty flow in - flow.fed5GCode - == "O.D.4" + flow.ruleCode + == [ "O", "D", "4" ] && List.member cpty.counterpartyType [ NonFinancialCorporate , Sovereign @@ -363,7 +363,7 @@ isRule32h4 counterparty flow = isRule32l : Flow -> Bool isRule32l flow = - flow.fed5GCode == "O.O.22" + flow.ruleCode == [ "O", "O", "22" ] isRule33f1iii : LocalDate -> Flow -> Bool @@ -373,7 +373,7 @@ isRule33f1iii t flow = days = daysToMaturity t flow.effectiveMaturityDate in - List.member flow.fed5GCode [ "I.S.1", "I.S.2", "I.S.5", "I.S.6", "I.S.7" ] + List.member flow.ruleCode [ [ "I", "S", "1" ], [ "I", "S", "2" ], [ "I", "S", "5" ], [ "I", "S", "6" ], [ "I", "S", "7" ] ] && flow.assetType == Level1Assets && (0 < days && days <= 30) @@ -386,7 +386,7 @@ isRule33f1iv t flow = days = daysToMaturity t flow.effectiveMaturityDate in - List.member flow.fed5GCode [ "I.S.1", "I.S.2", "I.S.5", "I.S.6", "I.S.7" ] + List.member flow.ruleCode [ [ "I", "S", "1" ], [ "I", "S", "2" ], [ "I", "S", "5" ], [ "I", "S", "6" ], [ "I", "S", "7" ] ] && flow.assetType == Level2aAssets && (0 < days && days <= 30) From 3c59ad5159e76cff90c91041e5161f40645e954b Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Mon, 14 Jun 2021 17:34:47 -0400 Subject: [PATCH 69/88] fixed LCR tests --- src/Morphir/Sample/Reg/LCR/Inflows.elm | 2 +- tests/Morphir/Sample/Reg/LCR/FedSampleTest.elm | 17 +++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/Morphir/Sample/Reg/LCR/Inflows.elm b/src/Morphir/Sample/Reg/LCR/Inflows.elm index f657f56..5146767 100644 --- a/src/Morphir/Sample/Reg/LCR/Inflows.elm +++ b/src/Morphir/Sample/Reg/LCR/Inflows.elm @@ -115,7 +115,7 @@ isRule20c flow = isRule33b : { a | ruleCode : RuleCode } -> Bool isRule33b cashflow = - cashflow.ruleCode == [ "1", "O", "7" ] + cashflow.ruleCode == [ "I", "O", "7" ] isRule33c : (Flow -> Counterparty) -> LocalDate -> Flow -> Bool diff --git a/tests/Morphir/Sample/Reg/LCR/FedSampleTest.elm b/tests/Morphir/Sample/Reg/LCR/FedSampleTest.elm index 9963f67..24394e8 100644 --- a/tests/Morphir/Sample/Reg/LCR/FedSampleTest.elm +++ b/tests/Morphir/Sample/Reg/LCR/FedSampleTest.elm @@ -23,6 +23,7 @@ module Morphir.Sample.Reg.LCR.FedSampleTest exposing (..) import Array import Date exposing (Interval(..), Unit(..)) import Expect +import Morphir.Sample.Reg.Currency exposing (Currency(..)) import Morphir.Sample.Reg.LCR.Basics exposing (..) import Morphir.Sample.Reg.LCR.Calculations exposing (..) import Morphir.Sample.Reg.LCR.Counterparty exposing (..) @@ -58,8 +59,8 @@ paperSample = , businessDate = t1 , collateralClass = Level1Assets , counterpartyId = cptyId - , currency = "USD" - , fed5GCode = "O.W.1" + , currency = USD + , ruleCode = [ "O", "W", "1" ] , insured = FDIC , isTreasuryControl = True , isUnencumbered = True @@ -79,8 +80,8 @@ paperSample = , businessDate = date , collateralClass = Level1Assets , counterpartyId = cptyId - , currency = "USD" - , fed5GCode = "O.O.22" + , currency = USD + , ruleCode = [ "O", "O", "22" ] , insured = FDIC , isTreasuryControl = True , isUnencumbered = True @@ -100,8 +101,8 @@ paperSample = , businessDate = date , collateralClass = Level1Assets , counterpartyId = cptyId - , currency = "USD" - , fed5GCode = "I.O.6" + , currency = USD + , ruleCode = [ "I", "O", "6" ] , insured = FDIC , isTreasuryControl = True , isUnencumbered = True @@ -117,8 +118,8 @@ paperSample = , businessDate = t1 , collateralClass = Level1Assets , counterpartyId = cptyId - , currency = "USD" - , fed5GCode = "1.O.7" + , currency = USD + , ruleCode = [ "1", "O", "7" ] , insured = FDIC , isTreasuryControl = True , isUnencumbered = True From 016aa7042e8845dc0b850af702571ec9fc558d3d Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Thu, 17 Jun 2021 13:31:02 -0400 Subject: [PATCH 70/88] fixed LCR tests added 6g example --- elm.json | 5 +- morphir.json | 27 +++++++++ src/Morphir/Sample/Reg/LCR/Calculations.elm | 65 ++++++++++----------- src/Morphir/Sample/Rules/RuleSet.elm | 46 ++++++++------- 4 files changed, 85 insertions(+), 58 deletions(-) diff --git a/elm.json b/elm.json index f91458c..b7c3b0a 100644 --- a/elm.json +++ b/elm.json @@ -11,16 +11,19 @@ "elm/html": "1.0.0", "elm/time": "1.0.0", "elm-explorations/test": "1.2.2", - "finos/morphir-elm": "7.1.0", + "finos/morphir-elm": "9.0.0", "justinmimbs/date": "3.2.1", "mgold/elm-nonempty-list": "4.1.0" }, "indirect": { "avh4/elm-fifo": "1.0.4", + "chain-partners/elm-bignum": "1.0.1", + "cmditch/elm-bigint": "1.0.1", "elm/json": "1.1.3", "elm/parser": "1.1.0", "elm/random": "1.0.0", "elm/regex": "1.0.0", + "elm/svg": "1.0.1", "elm/url": "1.0.0", "elm/virtual-dom": "1.0.2", "elm-community/graph": "6.0.0", diff --git a/morphir.json b/morphir.json index c967e5b..d3460b2 100644 --- a/morphir.json +++ b/morphir.json @@ -4,5 +4,32 @@ "exposedModules": [ "Reg.LCR.FedCodeRules" , "Reg.LCR.Calculations" + ,"Apps/Shared/Client" + , "Apps/Shared/Market" + , "Apps/Shared/Price" + , "Apps/Shared/Product" + , "Apps/Shared/Quantity" + , "Apps/Shared/Rate" + , "Apps/BooksAndRecords/App" + , "Apps/BooksAndRecords/Deal" + , "Apps/Order/ACL" + , "Apps/Order/App" + , "Apps/Order/Order" + , "Apps/Trader/App" + , "Apps/Trader/Logic" + , "Apps/Upstream/Market/App" + , "Apps/Upstream/Product/App" + , "Apps/Upstream/Trading/App" + , "LCR/Basics" + , "LCR/Calculations" + , "LCR/Counterparty" + , "LCR/Flows" + , "LCR/Inflows" + , "LCR/MaturityBucket" + , "LCR/Outflows" + , "LCR/Product" + , "LCR/Rules" + , "Rules/Direct" + , "Rules/RuleSet" ] } diff --git a/src/Morphir/Sample/Reg/LCR/Calculations.elm b/src/Morphir/Sample/Reg/LCR/Calculations.elm index 40afb62..c7f1daf 100644 --- a/src/Morphir/Sample/Reg/LCR/Calculations.elm +++ b/src/Morphir/Sample/Reg/LCR/Calculations.elm @@ -143,50 +143,45 @@ totalNetCashOutflowAmount toCounterparty t flowsForDate = -- Aggregating helpers spanDates : (Flow -> Bool) -> List Balance - spanDates = - \filter -> - dates - |> List.map flowsForDate - |> List.map (\flows -> flows |> aggregateDaily filter) + spanDates filter = + dates + |> List.map flowsForDate + |> List.map (\flows -> flows |> aggregateDaily filter) aggregateSpan : (Flow -> Bool) -> Balance - aggregateSpan = - \filter -> - spanDates filter |> List.sum + aggregateSpan flowFilter = + spanDates flowFilter |> List.sum aggregateDaily : (Flow -> Bool) -> List Flow -> Balance - aggregateDaily = - \filter flows -> - flows - |> List.filter filter - |> List.map .amount - |> List.sum + aggregateDaily flowFilter flows = + flows + |> List.filter flowFilter + |> List.map .amount + |> List.sum -- Non maturity nonMaturityOutflowRules : LocalDate -> List (Rules.Rule Flow) - nonMaturityOutflowRules = - \date -> - Rules.findAll - [ "32(a)(1)" - , "32(a)(2)" - , "32(a)(3)" - , "32(a)(4)" - , "32(a)(5)" - , "32(b)" - , "32(c)" - , "32(d)" - , "32(e)" - , "32(f)" - , "32(i)" - ] - (Outflows.outflowRules toCounterparty date) + nonMaturityOutflowRules date = + Rules.findAll + [ "32(a)(1)" + , "32(a)(2)" + , "32(a)(3)" + , "32(a)(4)" + , "32(a)(5)" + , "32(b)" + , "32(c)" + , "32(d)" + , "32(e)" + , "32(f)" + , "32(i)" + ] + (Outflows.outflowRules toCounterparty date) nonMaturityInflowRules : LocalDate -> List (Rules.Rule Flow) - nonMaturityInflowRules = - \date -> - Rules.findAll - [ "33(b)", "33(g)" ] - (Inflows.inflowRules toCounterparty date) + nonMaturityInflowRules date = + Rules.findAll + [ "33(b)", "33(g)" ] + (Inflows.inflowRules toCounterparty date) nonMaturityOutflowAmount : Balance nonMaturityOutflowAmount = diff --git a/src/Morphir/Sample/Rules/RuleSet.elm b/src/Morphir/Sample/Rules/RuleSet.elm index 081fe9c..3fc314b 100644 --- a/src/Morphir/Sample/Rules/RuleSet.elm +++ b/src/Morphir/Sample/Rules/RuleSet.elm @@ -1,24 +1,24 @@ {- -Copyright 2020 Morgan Stanley + Copyright 2020 Morgan Stanley -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 + 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 + http://www.apache.org/licenses/LICENSE-2.0 -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. -} -module Morphir.Sample.Rules.RuleSet exposing (Trade, Category, ruleSet) +module Morphir.Sample.Rules.RuleSet exposing (Category, Trade, ruleSet) +import Morphir.SDK.Rule as Rule exposing (Rule, any, anyOf, noneOf) import String exposing (startsWith) -import SDK.Rule exposing (..) {-| The input to the rule set is usually represented with a record type where each field @@ -31,7 +31,7 @@ type alias Trade = } -{-| The result of the rule set can be any type. In this case we simply enumerate the possible +{-| The result of the rule set can be any type. In this case we simply enumerate the possible classifications of a trade. -} type Category @@ -48,15 +48,16 @@ the rule set while still supporting very complex matching rules if needed. Using the power of functional programming we can go beyond simple exact matches and apply more complex matching rules such as `noneOf`, `anyOf` or `startsWith` directly in the decision table. + -} -ruleSet : RuleSet Trade Category +ruleSet : Rule Trade Category ruleSet = - RuleSet + Rule.chain -- Side Entity Code Account Category - [ rule Borrow (noneOf [ "12345", "23456" ]) (startsWith "00") StreetBorrow - , rule Borrow any any BookBorrow - , rule Loan (anyOf [ "00110", "22556" ]) any StreetLoan - , rule Loan any any BookLoan + [ rule Borrow (noneOf [ "12345", "23456" ]) (startsWith "00") StreetBorrow + , rule Borrow any any BookBorrow + , rule Loan (anyOf [ "00110", "22556" ]) any StreetLoan + , rule Loan any any BookLoan ] @@ -66,14 +67,15 @@ function for flexibility. -} rule : Side -> (String -> Bool) -> (String -> Bool) -> Category -> Trade -> Maybe Category rule side matchEntityCode matchAccount category trade = - if (side == trade.side) && (matchEntityCode trade.entityCode) && (matchAccount trade.account) then + if (side == trade.side) && matchEntityCode trade.entityCode && matchAccount trade.account then Just category + else - Nothing + Nothing {-| Utility type to describe which side the trade is on. -} type Side = Borrow - | Loan \ No newline at end of file + | Loan From 72f84c6b831d9488a98526f74a15dce8b585acec Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Thu, 17 Jun 2021 13:35:52 -0400 Subject: [PATCH 71/88] legal headers --- src/Morphir/Sample/Reg/Country.elm | 17 +++++++++++++++++ src/Morphir/Sample/Reg/Currency.elm | 17 +++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/src/Morphir/Sample/Reg/Country.elm b/src/Morphir/Sample/Reg/Country.elm index c3a9d48..fae0bb5 100644 --- a/src/Morphir/Sample/Reg/Country.elm +++ b/src/Morphir/Sample/Reg/Country.elm @@ -1,3 +1,20 @@ +{- + Copyright 2020 Morgan Stanley + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +-} + + module Morphir.Sample.Reg.Country exposing (..) diff --git a/src/Morphir/Sample/Reg/Currency.elm b/src/Morphir/Sample/Reg/Currency.elm index 9e136d8..4b6e495 100644 --- a/src/Morphir/Sample/Reg/Currency.elm +++ b/src/Morphir/Sample/Reg/Currency.elm @@ -1,3 +1,20 @@ +{- + Copyright 2020 Morgan Stanley + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +-} + + module Morphir.Sample.Reg.Currency exposing (..) import Morphir.Sample.Reg.Country as Country exposing (Country(..)) From 213b1bdc4624267c8a19607007e2da9b7577bc3c Mon Sep 17 00:00:00 2001 From: Attila Mihaly Date: Mon, 23 Aug 2021 16:01:54 +0200 Subject: [PATCH 72/88] Remove generated IR file. --- morphir-ir.json | 76841 ---------------------------------------------- 1 file changed, 76841 deletions(-) delete mode 100644 morphir-ir.json diff --git a/morphir-ir.json b/morphir-ir.json deleted file mode 100644 index ed0ab93..0000000 --- a/morphir-ir.json +++ /dev/null @@ -1,76841 +0,0 @@ -{ - "formatVersion": 1, - "distribution": [ - "library", - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [], - { - "modules": [ - { - "name": [ - [ - "reg" - ], - [ - "country" - ] - ], - "def": [ - "private", - { - "types": [ - [ - [ - "country" - ], - [ - "public", - [ - "", - [ - "custom_type_definition", - [], - [ - "public", - [ - [ - [ - "a", - "b", - "w" - ], - [] - ], - [ - [ - "a", - "f", - "g" - ], - [] - ], - [ - [ - "a", - "g", - "o" - ], - [] - ], - [ - [ - "a", - "i", - "a" - ], - [] - ], - [ - [ - "a", - "l", - "a" - ], - [] - ], - [ - [ - "a", - "l", - "b" - ], - [] - ], - [ - [ - "a", - "n", - "d" - ], - [] - ], - [ - [ - "a", - "r", - "e" - ], - [] - ], - [ - [ - "a", - "r", - "g" - ], - [] - ], - [ - [ - "a", - "r", - "m" - ], - [] - ], - [ - [ - "a", - "s", - "m" - ], - [] - ], - [ - [ - "a", - "t", - "f" - ], - [] - ], - [ - [ - "a", - "t", - "g" - ], - [] - ], - [ - [ - "a", - "u", - "s" - ], - [] - ], - [ - [ - "a", - "u", - "t" - ], - [] - ], - [ - [ - "a", - "z", - "e" - ], - [] - ], - [ - [ - "b", - "d", - "i" - ], - [] - ], - [ - [ - "b", - "e", - "l" - ], - [] - ], - [ - [ - "b", - "e", - "n" - ], - [] - ], - [ - [ - "b", - "e", - "s" - ], - [] - ], - [ - [ - "b", - "f", - "a" - ], - [] - ], - [ - [ - "b", - "g", - "d" - ], - [] - ], - [ - [ - "b", - "g", - "r" - ], - [] - ], - [ - [ - "b", - "h", - "r" - ], - [] - ], - [ - [ - "b", - "h", - "s" - ], - [] - ], - [ - [ - "b", - "i", - "h" - ], - [] - ], - [ - [ - "b", - "l", - "m" - ], - [] - ], - [ - [ - "b", - "l", - "r" - ], - [] - ], - [ - [ - "b", - "l", - "z" - ], - [] - ], - [ - [ - "b", - "m", - "u" - ], - [] - ], - [ - [ - "b", - "o", - "l" - ], - [] - ], - [ - [ - "b", - "r", - "a" - ], - [] - ], - [ - [ - "b", - "r", - "b" - ], - [] - ], - [ - [ - "b", - "r", - "n" - ], - [] - ], - [ - [ - "b", - "t", - "n" - ], - [] - ], - [ - [ - "b", - "v", - "t" - ], - [] - ], - [ - [ - "b", - "w", - "a" - ], - [] - ], - [ - [ - "c", - "a", - "f" - ], - [] - ], - [ - [ - "c", - "a", - "n" - ], - [] - ], - [ - [ - "c", - "c", - "k" - ], - [] - ], - [ - [ - "c", - "h", - "e" - ], - [] - ], - [ - [ - "c", - "h", - "l" - ], - [] - ], - [ - [ - "c", - "h", - "n" - ], - [] - ], - [ - [ - "c", - "i", - "v" - ], - [] - ], - [ - [ - "c", - "m", - "r" - ], - [] - ], - [ - [ - "c", - "o", - "d" - ], - [] - ], - [ - [ - "c", - "o", - "g" - ], - [] - ], - [ - [ - "c", - "o", - "k" - ], - [] - ], - [ - [ - "c", - "o", - "l" - ], - [] - ], - [ - [ - "c", - "o", - "m" - ], - [] - ], - [ - [ - "c", - "p", - "v" - ], - [] - ], - [ - [ - "c", - "r", - "i" - ], - [] - ], - [ - [ - "c", - "u", - "b" - ], - [] - ], - [ - [ - "c", - "u", - "w" - ], - [] - ], - [ - [ - "c", - "x", - "r" - ], - [] - ], - [ - [ - "c", - "y", - "m" - ], - [] - ], - [ - [ - "c", - "y", - "p" - ], - [] - ], - [ - [ - "c", - "z", - "e" - ], - [] - ], - [ - [ - "d", - "e", - "u" - ], - [] - ], - [ - [ - "d", - "j", - "i" - ], - [] - ], - [ - [ - "d", - "m", - "a" - ], - [] - ], - [ - [ - "d", - "n", - "k" - ], - [] - ], - [ - [ - "d", - "o", - "m" - ], - [] - ], - [ - [ - "d", - "z", - "a" - ], - [] - ], - [ - [ - "e", - "c", - "u" - ], - [] - ], - [ - [ - "e", - "g", - "y" - ], - [] - ], - [ - [ - "e", - "r", - "i" - ], - [] - ], - [ - [ - "e", - "s", - "h" - ], - [] - ], - [ - [ - "e", - "s", - "p" - ], - [] - ], - [ - [ - "e", - "s", - "t" - ], - [] - ], - [ - [ - "e", - "t", - "h" - ], - [] - ], - [ - [ - "f", - "i", - "n" - ], - [] - ], - [ - [ - "f", - "j", - "i" - ], - [] - ], - [ - [ - "f", - "r", - "a" - ], - [] - ], - [ - [ - "f", - "r", - "o" - ], - [] - ], - [ - [ - "f", - "s", - "m" - ], - [] - ], - [ - [ - "g", - "a", - "b" - ], - [] - ], - [ - [ - "g", - "b", - "r" - ], - [] - ], - [ - [ - "g", - "e", - "o" - ], - [] - ], - [ - [ - "g", - "g", - "y" - ], - [] - ], - [ - [ - "g", - "h", - "a" - ], - [] - ], - [ - [ - "g", - "i", - "b" - ], - [] - ], - [ - [ - "g", - "i", - "n" - ], - [] - ], - [ - [ - "g", - "l", - "p" - ], - [] - ], - [ - [ - "g", - "m", - "b" - ], - [] - ], - [ - [ - "g", - "n", - "b" - ], - [] - ], - [ - [ - "g", - "n", - "q" - ], - [] - ], - [ - [ - "g", - "r", - "c" - ], - [] - ], - [ - [ - "g", - "r", - "d" - ], - [] - ], - [ - [ - "g", - "r", - "l" - ], - [] - ], - [ - [ - "g", - "t", - "m" - ], - [] - ], - [ - [ - "g", - "u", - "f" - ], - [] - ], - [ - [ - "g", - "u", - "m" - ], - [] - ], - [ - [ - "g", - "u", - "y" - ], - [] - ], - [ - [ - "h", - "k", - "g" - ], - [] - ], - [ - [ - "h", - "m", - "d" - ], - [] - ], - [ - [ - "h", - "n", - "d" - ], - [] - ], - [ - [ - "h", - "r", - "v" - ], - [] - ], - [ - [ - "h", - "t", - "i" - ], - [] - ], - [ - [ - "h", - "u", - "n" - ], - [] - ], - [ - [ - "i", - "d", - "n" - ], - [] - ], - [ - [ - "i", - "m", - "n" - ], - [] - ], - [ - [ - "i", - "n", - "d" - ], - [] - ], - [ - [ - "i", - "o", - "t" - ], - [] - ], - [ - [ - "i", - "r", - "l" - ], - [] - ], - [ - [ - "i", - "r", - "n" - ], - [] - ], - [ - [ - "i", - "r", - "q" - ], - [] - ], - [ - [ - "i", - "s", - "l" - ], - [] - ], - [ - [ - "i", - "s", - "r" - ], - [] - ], - [ - [ - "i", - "t", - "a" - ], - [] - ], - [ - [ - "j", - "a", - "m" - ], - [] - ], - [ - [ - "j", - "e", - "y" - ], - [] - ], - [ - [ - "j", - "o", - "r" - ], - [] - ], - [ - [ - "j", - "p", - "n" - ], - [] - ], - [ - [ - "k", - "a", - "z" - ], - [] - ], - [ - [ - "k", - "e", - "n" - ], - [] - ], - [ - [ - "k", - "g", - "z" - ], - [] - ], - [ - [ - "k", - "h", - "m" - ], - [] - ], - [ - [ - "k", - "i", - "r" - ], - [] - ], - [ - [ - "k", - "n", - "a" - ], - [] - ], - [ - [ - "k", - "o", - "r" - ], - [] - ], - [ - [ - "k", - "w", - "t" - ], - [] - ], - [ - [ - "l", - "a", - "o" - ], - [] - ], - [ - [ - "l", - "b", - "n" - ], - [] - ], - [ - [ - "l", - "b", - "r" - ], - [] - ], - [ - [ - "l", - "b", - "y" - ], - [] - ], - [ - [ - "l", - "c", - "a" - ], - [] - ], - [ - [ - "l", - "i", - "e" - ], - [] - ], - [ - [ - "l", - "k", - "a" - ], - [] - ], - [ - [ - "l", - "s", - "o" - ], - [] - ], - [ - [ - "l", - "t", - "u" - ], - [] - ], - [ - [ - "l", - "u", - "x" - ], - [] - ], - [ - [ - "l", - "v", - "a" - ], - [] - ], - [ - [ - "m", - "a", - "c" - ], - [] - ], - [ - [ - "m", - "a", - "f" - ], - [] - ], - [ - [ - "m", - "a", - "r" - ], - [] - ], - [ - [ - "m", - "c", - "o" - ], - [] - ], - [ - [ - "m", - "d", - "a" - ], - [] - ], - [ - [ - "m", - "d", - "g" - ], - [] - ], - [ - [ - "m", - "d", - "v" - ], - [] - ], - [ - [ - "m", - "e", - "x" - ], - [] - ], - [ - [ - "m", - "h", - "l" - ], - [] - ], - [ - [ - "m", - "k", - "d" - ], - [] - ], - [ - [ - "m", - "l", - "i" - ], - [] - ], - [ - [ - "m", - "l", - "t" - ], - [] - ], - [ - [ - "m", - "m", - "r" - ], - [] - ], - [ - [ - "m", - "n", - "e" - ], - [] - ], - [ - [ - "m", - "n", - "g" - ], - [] - ], - [ - [ - "m", - "n", - "p" - ], - [] - ], - [ - [ - "m", - "o", - "z" - ], - [] - ], - [ - [ - "m", - "r", - "t" - ], - [] - ], - [ - [ - "m", - "s", - "r" - ], - [] - ], - [ - [ - "m", - "t", - "q" - ], - [] - ], - [ - [ - "m", - "u", - "s" - ], - [] - ], - [ - [ - "m", - "w", - "i" - ], - [] - ], - [ - [ - "m", - "y", - "s" - ], - [] - ], - [ - [ - "m", - "y", - "t" - ], - [] - ], - [ - [ - "n", - "a", - "m" - ], - [] - ], - [ - [ - "n", - "c", - "l" - ], - [] - ], - [ - [ - "n", - "e", - "r" - ], - [] - ], - [ - [ - "n", - "f", - "k" - ], - [] - ], - [ - [ - "n", - "g", - "a" - ], - [] - ], - [ - [ - "n", - "i", - "c" - ], - [] - ], - [ - [ - "n", - "i", - "u" - ], - [] - ], - [ - [ - "n", - "l", - "d" - ], - [] - ], - [ - [ - "n", - "o", - "r" - ], - [] - ], - [ - [ - "n", - "p", - "l" - ], - [] - ], - [ - [ - "n", - "r", - "u" - ], - [] - ], - [ - [ - "n", - "z", - "l" - ], - [] - ], - [ - [ - "o", - "m", - "n" - ], - [] - ], - [ - [ - "p", - "a", - "k" - ], - [] - ], - [ - [ - "p", - "a", - "n" - ], - [] - ], - [ - [ - "p", - "c", - "n" - ], - [] - ], - [ - [ - "p", - "e", - "r" - ], - [] - ], - [ - [ - "p", - "h", - "l" - ], - [] - ], - [ - [ - "p", - "l", - "w" - ], - [] - ], - [ - [ - "p", - "n", - "g" - ], - [] - ], - [ - [ - "p", - "o", - "l" - ], - [] - ], - [ - [ - "p", - "r", - "i" - ], - [] - ], - [ - [ - "p", - "r", - "k" - ], - [] - ], - [ - [ - "p", - "r", - "t" - ], - [] - ], - [ - [ - "p", - "r", - "y" - ], - [] - ], - [ - [ - "p", - "y", - "f" - ], - [] - ], - [ - [ - "q", - "a", - "t" - ], - [] - ], - [ - [ - "r", - "e", - "u" - ], - [] - ], - [ - [ - "r", - "o", - "u" - ], - [] - ], - [ - [ - "r", - "u", - "s" - ], - [] - ], - [ - [ - "r", - "w", - "a" - ], - [] - ], - [ - [ - "s", - "a", - "u" - ], - [] - ], - [ - [ - "s", - "d", - "n" - ], - [] - ], - [ - [ - "s", - "e", - "n" - ], - [] - ], - [ - [ - "s", - "g", - "p" - ], - [] - ], - [ - [ - "s", - "h", - "n" - ], - [] - ], - [ - [ - "s", - "j", - "m" - ], - [] - ], - [ - [ - "s", - "l", - "b" - ], - [] - ], - [ - [ - "s", - "l", - "e" - ], - [] - ], - [ - [ - "s", - "l", - "v" - ], - [] - ], - [ - [ - "s", - "m", - "r" - ], - [] - ], - [ - [ - "s", - "o", - "m" - ], - [] - ], - [ - [ - "s", - "p", - "m" - ], - [] - ], - [ - [ - "s", - "r", - "b" - ], - [] - ], - [ - [ - "s", - "s", - "d" - ], - [] - ], - [ - [ - "s", - "t", - "p" - ], - [] - ], - [ - [ - "s", - "u", - "r" - ], - [] - ], - [ - [ - "s", - "v", - "k" - ], - [] - ], - [ - [ - "s", - "v", - "n" - ], - [] - ], - [ - [ - "s", - "w", - "e" - ], - [] - ], - [ - [ - "s", - "w", - "z" - ], - [] - ], - [ - [ - "s", - "x", - "m" - ], - [] - ], - [ - [ - "s", - "y", - "c" - ], - [] - ], - [ - [ - "s", - "y", - "r" - ], - [] - ], - [ - [ - "t", - "c", - "a" - ], - [] - ], - [ - [ - "t", - "c", - "d" - ], - [] - ], - [ - [ - "t", - "g", - "o" - ], - [] - ], - [ - [ - "t", - "h", - "a" - ], - [] - ], - [ - [ - "t", - "j", - "k" - ], - [] - ], - [ - [ - "t", - "k", - "l" - ], - [] - ], - [ - [ - "t", - "k", - "m" - ], - [] - ], - [ - [ - "t", - "l", - "s" - ], - [] - ], - [ - [ - "t", - "o", - "n" - ], - [] - ], - [ - [ - "t", - "t", - "o" - ], - [] - ], - [ - [ - "t", - "u", - "n" - ], - [] - ], - [ - [ - "t", - "u", - "r" - ], - [] - ], - [ - [ - "t", - "u", - "v" - ], - [] - ], - [ - [ - "t", - "z", - "a" - ], - [] - ], - [ - [ - "u", - "g", - "a" - ], - [] - ], - [ - [ - "u", - "k", - "r" - ], - [] - ], - [ - [ - "u", - "m", - "i" - ], - [] - ], - [ - [ - "u", - "r", - "y" - ], - [] - ], - [ - [ - "u", - "s", - "a" - ], - [] - ], - [ - [ - "u", - "z", - "b" - ], - [] - ], - [ - [ - "v", - "a", - "t" - ], - [] - ], - [ - [ - "v", - "c", - "t" - ], - [] - ], - [ - [ - "v", - "e", - "n" - ], - [] - ], - [ - [ - "v", - "g", - "b" - ], - [] - ], - [ - [ - "v", - "i", - "r" - ], - [] - ], - [ - [ - "v", - "n", - "m" - ], - [] - ], - [ - [ - "v", - "u", - "t" - ], - [] - ], - [ - [ - "w", - "l", - "f" - ], - [] - ], - [ - [ - "w", - "s", - "m" - ], - [] - ], - [ - [ - "y", - "e", - "m" - ], - [] - ], - [ - [ - "z", - "a", - "f" - ], - [] - ], - [ - [ - "z", - "m", - "b" - ], - [] - ], - [ - [ - "z", - "w", - "e" - ], - [] - ] - ] - ] - ] - ] - ] - ] - ], - "values": [] - } - ] - }, - { - "name": [ - [ - "reg" - ], - [ - "currency" - ] - ], - "def": [ - "private", - { - "types": [ - [ - [ - "currency" - ], - [ - "public", - [ - "", - [ - "custom_type_definition", - [], - [ - "public", - [ - [ - [ - "a", - "e", - "d" - ], - [] - ], - [ - [ - "a", - "f", - "n" - ], - [] - ], - [ - [ - "a", - "l", - "l" - ], - [] - ], - [ - [ - "a", - "m", - "d" - ], - [] - ], - [ - [ - "a", - "n", - "g" - ], - [] - ], - [ - [ - "a", - "o", - "a" - ], - [] - ], - [ - [ - "a", - "r", - "s" - ], - [] - ], - [ - [ - "a", - "u", - "d" - ], - [] - ], - [ - [ - "a", - "w", - "g" - ], - [] - ], - [ - [ - "a", - "z", - "n" - ], - [] - ], - [ - [ - "b", - "a", - "m" - ], - [] - ], - [ - [ - "b", - "b", - "d" - ], - [] - ], - [ - [ - "b", - "d", - "t" - ], - [] - ], - [ - [ - "b", - "g", - "n" - ], - [] - ], - [ - [ - "b", - "h", - "d" - ], - [] - ], - [ - [ - "b", - "i", - "f" - ], - [] - ], - [ - [ - "b", - "m", - "d" - ], - [] - ], - [ - [ - "b", - "n", - "d" - ], - [] - ], - [ - [ - "b", - "o", - "b" - ], - [] - ], - [ - [ - "b", - "r", - "l" - ], - [] - ], - [ - [ - "b", - "s", - "d" - ], - [] - ], - [ - [ - "b", - "w", - "p" - ], - [] - ], - [ - [ - "b", - "y", - "n" - ], - [] - ], - [ - [ - "b", - "z", - "d" - ], - [] - ], - [ - [ - "c", - "a", - "d" - ], - [] - ], - [ - [ - "c", - "d", - "f" - ], - [] - ], - [ - [ - "c", - "h", - "f" - ], - [] - ], - [ - [ - "c", - "l", - "p" - ], - [] - ], - [ - [ - "c", - "n", - "y" - ], - [] - ], - [ - [ - "c", - "o", - "p" - ], - [] - ], - [ - [ - "c", - "r", - "c" - ], - [] - ], - [ - [ - "c", - "u", - "p" - ], - [] - ], - [ - [ - "c", - "v", - "e" - ], - [] - ], - [ - [ - "c", - "z", - "k" - ], - [] - ], - [ - [ - "d", - "j", - "f" - ], - [] - ], - [ - [ - "d", - "k", - "k" - ], - [] - ], - [ - [ - "d", - "o", - "p" - ], - [] - ], - [ - [ - "d", - "z", - "d" - ], - [] - ], - [ - [ - "e", - "g", - "p" - ], - [] - ], - [ - [ - "e", - "r", - "n" - ], - [] - ], - [ - [ - "e", - "t", - "b" - ], - [] - ], - [ - [ - "e", - "u", - "r" - ], - [] - ], - [ - [ - "f", - "j", - "d" - ], - [] - ], - [ - [ - "g", - "b", - "p" - ], - [] - ], - [ - [ - "g", - "e", - "l" - ], - [] - ], - [ - [ - "g", - "h", - "s" - ], - [] - ], - [ - [ - "g", - "i", - "p" - ], - [] - ], - [ - [ - "g", - "m", - "d" - ], - [] - ], - [ - [ - "g", - "n", - "f" - ], - [] - ], - [ - [ - "g", - "t", - "q" - ], - [] - ], - [ - [ - "g", - "y", - "d" - ], - [] - ], - [ - [ - "h", - "k", - "d" - ], - [] - ], - [ - [ - "h", - "n", - "l" - ], - [] - ], - [ - [ - "h", - "r", - "k" - ], - [] - ], - [ - [ - "h", - "t", - "g" - ], - [] - ], - [ - [ - "h", - "u", - "f" - ], - [] - ], - [ - [ - "i", - "d", - "r" - ], - [] - ], - [ - [ - "i", - "l", - "s" - ], - [] - ], - [ - [ - "i", - "n", - "r" - ], - [] - ], - [ - [ - "i", - "q", - "d" - ], - [] - ], - [ - [ - "i", - "r", - "r" - ], - [] - ], - [ - [ - "i", - "s", - "k" - ], - [] - ], - [ - [ - "j", - "m", - "d" - ], - [] - ], - [ - [ - "j", - "o", - "d" - ], - [] - ], - [ - [ - "j", - "p", - "y" - ], - [] - ], - [ - [ - "k", - "e", - "s" - ], - [] - ], - [ - [ - "k", - "g", - "s" - ], - [] - ], - [ - [ - "k", - "h", - "r" - ], - [] - ], - [ - [ - "k", - "m", - "f" - ], - [] - ], - [ - [ - "k", - "p", - "w" - ], - [] - ], - [ - [ - "k", - "r", - "w" - ], - [] - ], - [ - [ - "k", - "w", - "d" - ], - [] - ], - [ - [ - "k", - "y", - "d" - ], - [] - ], - [ - [ - "k", - "z", - "t" - ], - [] - ], - [ - [ - "l", - "a", - "k" - ], - [] - ], - [ - [ - "l", - "b", - "p" - ], - [] - ], - [ - [ - "l", - "k", - "r" - ], - [] - ], - [ - [ - "l", - "r", - "d" - ], - [] - ], - [ - [ - "l", - "s", - "l" - ], - [] - ], - [ - [ - "l", - "y", - "d" - ], - [] - ], - [ - [ - "m", - "a", - "d" - ], - [] - ], - [ - [ - "m", - "d", - "l" - ], - [] - ], - [ - [ - "m", - "g", - "a" - ], - [] - ], - [ - [ - "m", - "k", - "d" - ], - [] - ], - [ - [ - "m", - "m", - "k" - ], - [] - ], - [ - [ - "m", - "n", - "t" - ], - [] - ], - [ - [ - "m", - "o", - "p" - ], - [] - ], - [ - [ - "m", - "r", - "u" - ], - [] - ], - [ - [ - "m", - "u", - "r" - ], - [] - ], - [ - [ - "m", - "v", - "r" - ], - [] - ], - [ - [ - "m", - "w", - "k" - ], - [] - ], - [ - [ - "m", - "x", - "n" - ], - [] - ], - [ - [ - "m", - "y", - "r" - ], - [] - ], - [ - [ - "m", - "z", - "n" - ], - [] - ], - [ - [ - "n", - "a", - "d" - ], - [] - ], - [ - [ - "n", - "g", - "n" - ], - [] - ], - [ - [ - "n", - "i", - "o" - ], - [] - ], - [ - [ - "n", - "o", - "k" - ], - [] - ], - [ - [ - "n", - "p", - "r" - ], - [] - ], - [ - [ - "n", - "z", - "d" - ], - [] - ], - [ - [ - "o", - "m", - "r" - ], - [] - ], - [ - [ - "p", - "a", - "b" - ], - [] - ], - [ - [ - "p", - "e", - "n" - ], - [] - ], - [ - [ - "p", - "g", - "k" - ], - [] - ], - [ - [ - "p", - "h", - "p" - ], - [] - ], - [ - [ - "p", - "k", - "r" - ], - [] - ], - [ - [ - "p", - "l", - "n" - ], - [] - ], - [ - [ - "p", - "y", - "g" - ], - [] - ], - [ - [ - "q", - "a", - "r" - ], - [] - ], - [ - [ - "r", - "o", - "n" - ], - [] - ], - [ - [ - "r", - "s", - "d" - ], - [] - ], - [ - [ - "r", - "u", - "b" - ], - [] - ], - [ - [ - "r", - "w", - "f" - ], - [] - ], - [ - [ - "s", - "a", - "r" - ], - [] - ], - [ - [ - "s", - "b", - "d" - ], - [] - ], - [ - [ - "s", - "c", - "r" - ], - [] - ], - [ - [ - "s", - "d", - "g" - ], - [] - ], - [ - [ - "s", - "e", - "k" - ], - [] - ], - [ - [ - "s", - "g", - "d" - ], - [] - ], - [ - [ - "s", - "h", - "p" - ], - [] - ], - [ - [ - "s", - "l", - "l" - ], - [] - ], - [ - [ - "s", - "o", - "s" - ], - [] - ], - [ - [ - "s", - "r", - "d" - ], - [] - ], - [ - [ - "s", - "s", - "p" - ], - [] - ], - [ - [ - "s", - "t", - "n" - ], - [] - ], - [ - [ - "s", - "v", - "c" - ], - [] - ], - [ - [ - "s", - "y", - "p" - ], - [] - ], - [ - [ - "s", - "z", - "l" - ], - [] - ], - [ - [ - "t", - "h", - "b" - ], - [] - ], - [ - [ - "t", - "j", - "s" - ], - [] - ], - [ - [ - "t", - "m", - "t" - ], - [] - ], - [ - [ - "t", - "n", - "d" - ], - [] - ], - [ - [ - "t", - "o", - "p" - ], - [] - ], - [ - [ - "t", - "r", - "y" - ], - [] - ], - [ - [ - "t", - "t", - "d" - ], - [] - ], - [ - [ - "t", - "z", - "s" - ], - [] - ], - [ - [ - "u", - "a", - "h" - ], - [] - ], - [ - [ - "u", - "g", - "x" - ], - [] - ], - [ - [ - "u", - "s", - "d" - ], - [] - ], - [ - [ - "u", - "y", - "u" - ], - [] - ], - [ - [ - "u", - "z", - "s" - ], - [] - ], - [ - [ - "v", - "e", - "s" - ], - [] - ], - [ - [ - "v", - "n", - "d" - ], - [] - ], - [ - [ - "v", - "u", - "v" - ], - [] - ], - [ - [ - "w", - "s", - "t" - ], - [] - ], - [ - [ - "x", - "a", - "f" - ], - [] - ], - [ - [ - "x", - "c", - "d" - ], - [] - ], - [ - [ - "x", - "o", - "f" - ], - [] - ], - [ - [ - "x", - "p", - "f" - ], - [] - ], - [ - [ - "y", - "e", - "r" - ], - [] - ], - [ - [ - "z", - "a", - "r" - ], - [] - ], - [ - [ - "z", - "m", - "w" - ], - [] - ], - [ - [ - "z", - "w", - "l" - ], - [] - ] - ] - ] - ] - ] - ] - ] - ], - "values": [ - [ - [ - "country" - ], - [ - "public", - { - "inputTypes": [ - [ - [ - "currency" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ] - ] - ], - "outputType": [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - "body": [ - "pattern_match", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "currency" - ] - ], - [ - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "a", - "u", - "d" - ] - ], - [] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "constructor", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "just" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "a", - "u", - "s" - ] - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "u", - "s", - "d" - ] - ], - [] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "constructor", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "just" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "u", - "s", - "a" - ] - ] - ] - ] - ], - [ - [ - "wildcard_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ] - ], - [ - "let_definition", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "countries" - ], - { - "inputTypes": [], - "outputType": [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - "body": [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "function", - {}, - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "filter", - "map" - ] - ] - ], - [ - "lambda", - [ - "function", - {}, - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ] - ], - [ - "tuple_pattern", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "as_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "wildcard_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ] - ], - [ - "cy" - ] - ], - [ - "as_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "wildcard_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ], - [ - "co" - ] - ] - ] - ], - [ - "if_then_else", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "equal" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "cy" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "currency" - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "constructor", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "just" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "co" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "nothing" - ] - ] - ] - ] - ] - ], - [ - "reference", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency", - "countries" - ] - ] - ] - ] - }, - [ - "pattern_match", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "countries" - ] - ], - [ - [ - [ - "head_tail_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "as_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "wildcard_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ], - [ - "country", - "code" - ] - ], - [ - "empty_list_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "constructor", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "just" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "country", - "code" - ] - ] - ] - ], - [ - [ - "wildcard_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "nothing" - ] - ] - ] - ] - ] - ] - ] - ] - ] - ] - } - ] - ], - [ - [ - "currency", - "countries" - ], - [ - "public", - { - "inputTypes": [], - "outputType": [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ] - ] - ], - "body": [ - "list", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "a", - "e", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "a", - "r", - "e" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "a", - "f", - "n" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "a", - "f", - "g" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "a", - "l", - "l" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "a", - "l", - "b" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "a", - "m", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "a", - "r", - "m" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "a", - "n", - "g" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "c", - "u", - "w" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "a", - "n", - "g" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "s", - "x", - "m" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "a", - "o", - "a" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "a", - "g", - "o" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "a", - "r", - "s" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "a", - "r", - "g" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "a", - "u", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "a", - "u", - "s" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "a", - "u", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "c", - "c", - "k" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "a", - "u", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "c", - "x", - "r" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "a", - "u", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "h", - "m", - "d" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "a", - "u", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "k", - "i", - "r" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "a", - "u", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "n", - "f", - "k" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "a", - "u", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "n", - "r", - "u" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "a", - "u", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "t", - "u", - "v" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "a", - "w", - "g" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "a", - "b", - "w" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "a", - "z", - "n" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "a", - "z", - "e" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "b", - "a", - "m" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "b", - "i", - "h" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "b", - "b", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "b", - "r", - "b" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "b", - "d", - "t" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "b", - "g", - "d" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "b", - "g", - "n" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "b", - "g", - "r" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "b", - "h", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "b", - "h", - "r" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "b", - "i", - "f" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "b", - "d", - "i" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "b", - "m", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "b", - "m", - "u" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "b", - "n", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "b", - "r", - "n" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "b", - "o", - "b" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "b", - "o", - "l" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "b", - "r", - "l" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "b", - "r", - "a" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "b", - "s", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "b", - "h", - "s" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "b", - "w", - "p" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "b", - "w", - "a" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "b", - "y", - "n" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "b", - "l", - "r" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "b", - "z", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "b", - "l", - "z" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "c", - "a", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "c", - "a", - "n" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "c", - "d", - "f" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "c", - "o", - "d" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "c", - "h", - "f" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "c", - "h", - "e" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "c", - "h", - "f" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "l", - "i", - "e" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "c", - "l", - "p" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "c", - "h", - "l" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "c", - "n", - "y" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "c", - "h", - "n" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "c", - "o", - "p" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "c", - "o", - "l" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "c", - "r", - "c" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "c", - "r", - "i" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "c", - "u", - "p" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "c", - "u", - "b" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "c", - "v", - "e" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "c", - "p", - "v" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "c", - "z", - "k" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "c", - "z", - "e" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "d", - "j", - "f" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "d", - "j", - "i" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "d", - "k", - "k" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "d", - "n", - "k" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "d", - "k", - "k" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "f", - "r", - "o" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "d", - "k", - "k" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "g", - "r", - "l" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "d", - "o", - "p" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "d", - "o", - "m" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "d", - "z", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "d", - "z", - "a" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "g", - "p" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "e", - "g", - "y" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "r", - "n" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "e", - "r", - "i" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "t", - "b" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "e", - "t", - "h" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "a", - "l", - "a" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "a", - "n", - "d" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "a", - "t", - "f" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "a", - "u", - "t" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "b", - "e", - "l" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "b", - "l", - "m" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "c", - "y", - "p" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "d", - "e", - "u" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "e", - "s", - "p" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "e", - "s", - "t" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "f", - "i", - "n" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "f", - "r", - "a" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "g", - "l", - "p" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "g", - "r", - "c" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "g", - "u", - "f" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "i", - "r", - "l" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "i", - "t", - "a" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "l", - "t", - "u" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "l", - "u", - "x" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "l", - "v", - "a" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "m", - "a", - "f" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "m", - "c", - "o" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "m", - "l", - "t" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "m", - "n", - "e" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "m", - "t", - "q" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "m", - "y", - "t" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "n", - "l", - "d" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "p", - "r", - "t" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "r", - "e", - "u" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "s", - "m", - "r" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "s", - "p", - "m" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "s", - "v", - "k" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "s", - "v", - "n" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "e", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "v", - "a", - "t" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "f", - "j", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "f", - "j", - "i" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "g", - "b", - "p" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "g", - "b", - "r" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "g", - "b", - "p" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "g", - "g", - "y" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "g", - "b", - "p" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "i", - "m", - "n" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "g", - "b", - "p" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "j", - "e", - "y" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "g", - "e", - "l" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "g", - "e", - "o" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "g", - "h", - "s" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "g", - "h", - "a" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "g", - "i", - "p" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "g", - "i", - "b" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "g", - "m", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "g", - "m", - "b" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "g", - "n", - "f" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "g", - "i", - "n" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "g", - "t", - "q" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "g", - "t", - "m" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "g", - "y", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "g", - "u", - "y" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "h", - "k", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "h", - "k", - "g" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "h", - "n", - "l" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "h", - "n", - "d" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "h", - "r", - "k" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "h", - "r", - "v" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "h", - "t", - "g" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "h", - "t", - "i" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "h", - "u", - "f" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "h", - "u", - "n" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "i", - "d", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "i", - "d", - "n" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "i", - "l", - "s" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "i", - "s", - "r" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "i", - "n", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "i", - "n", - "d" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "i", - "n", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "b", - "t", - "n" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "i", - "q", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "i", - "r", - "q" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "i", - "r", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "i", - "r", - "n" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "i", - "s", - "k" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "i", - "s", - "l" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "j", - "m", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "j", - "a", - "m" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "j", - "o", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "j", - "o", - "r" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "j", - "p", - "y" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "j", - "p", - "n" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "k", - "e", - "s" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "k", - "e", - "n" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "k", - "g", - "s" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "k", - "g", - "z" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "k", - "h", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "k", - "h", - "m" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "k", - "m", - "f" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "c", - "o", - "m" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "k", - "p", - "w" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "p", - "r", - "k" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "k", - "r", - "w" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "k", - "o", - "r" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "k", - "w", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "k", - "w", - "t" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "k", - "y", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "c", - "y", - "m" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "k", - "z", - "t" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "k", - "a", - "z" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "l", - "a", - "k" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "l", - "a", - "o" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "l", - "b", - "p" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "l", - "b", - "n" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "l", - "k", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "l", - "k", - "a" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "l", - "r", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "l", - "b", - "r" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "l", - "s", - "l" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "l", - "s", - "o" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "l", - "y", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "l", - "b", - "y" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "m", - "a", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "e", - "s", - "h" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "m", - "a", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "m", - "a", - "r" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "m", - "d", - "l" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "m", - "d", - "a" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "m", - "g", - "a" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "m", - "d", - "g" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "m", - "k", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "m", - "k", - "d" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "m", - "m", - "k" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "m", - "m", - "r" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "m", - "n", - "t" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "m", - "n", - "g" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "m", - "o", - "p" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "m", - "a", - "c" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "m", - "r", - "u" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "m", - "r", - "t" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "m", - "u", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "m", - "u", - "s" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "m", - "v", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "m", - "d", - "v" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "m", - "w", - "k" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "m", - "w", - "i" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "m", - "x", - "n" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "m", - "e", - "x" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "m", - "y", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "m", - "y", - "s" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "m", - "z", - "n" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "m", - "o", - "z" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "n", - "a", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "n", - "a", - "m" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "n", - "g", - "n" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "n", - "g", - "a" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "n", - "i", - "o" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "n", - "i", - "c" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "n", - "o", - "k" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "b", - "v", - "t" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "n", - "o", - "k" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "n", - "o", - "r" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "n", - "o", - "k" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "s", - "j", - "m" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "n", - "p", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "n", - "p", - "l" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "n", - "z", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "c", - "o", - "k" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "n", - "z", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "n", - "i", - "u" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "n", - "z", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "n", - "z", - "l" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "n", - "z", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "p", - "c", - "n" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "n", - "z", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "t", - "k", - "l" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "o", - "m", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "o", - "m", - "n" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "p", - "a", - "b" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "p", - "a", - "n" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "p", - "e", - "n" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "p", - "e", - "r" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "p", - "g", - "k" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "p", - "n", - "g" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "p", - "h", - "p" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "p", - "h", - "l" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "p", - "k", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "p", - "a", - "k" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "p", - "l", - "n" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "p", - "o", - "l" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "p", - "y", - "g" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "p", - "r", - "y" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "q", - "a", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "q", - "a", - "t" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "r", - "o", - "n" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "r", - "o", - "u" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "r", - "s", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "s", - "r", - "b" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "r", - "u", - "b" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "r", - "u", - "s" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "r", - "w", - "f" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "r", - "w", - "a" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "s", - "a", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "s", - "a", - "u" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "s", - "b", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "s", - "l", - "b" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "s", - "c", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "s", - "y", - "c" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "s", - "d", - "g" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "s", - "d", - "n" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "s", - "e", - "k" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "s", - "w", - "e" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "s", - "g", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "s", - "g", - "p" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "s", - "h", - "p" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "s", - "h", - "n" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "s", - "l", - "l" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "s", - "l", - "e" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "s", - "o", - "s" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "s", - "o", - "m" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "s", - "r", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "s", - "u", - "r" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "s", - "s", - "p" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "s", - "s", - "d" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "s", - "t", - "n" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "s", - "t", - "p" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "s", - "v", - "c" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "s", - "l", - "v" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "s", - "y", - "p" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "s", - "y", - "r" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "s", - "z", - "l" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "s", - "w", - "z" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "t", - "h", - "b" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "t", - "h", - "a" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "t", - "j", - "s" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "t", - "j", - "k" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "t", - "m", - "t" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "t", - "k", - "m" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "t", - "n", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "t", - "u", - "n" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "t", - "o", - "p" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "t", - "o", - "n" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "t", - "r", - "y" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "t", - "u", - "r" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "t", - "t", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "t", - "t", - "o" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "t", - "z", - "s" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "t", - "z", - "a" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "u", - "a", - "h" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "u", - "k", - "r" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "u", - "g", - "x" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "u", - "g", - "a" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "u", - "s", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "a", - "s", - "m" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "u", - "s", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "b", - "e", - "s" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "u", - "s", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "e", - "c", - "u" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "u", - "s", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "f", - "s", - "m" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "u", - "s", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "g", - "u", - "m" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "u", - "s", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "i", - "o", - "t" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "u", - "s", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "m", - "h", - "l" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "u", - "s", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "m", - "n", - "p" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "u", - "s", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "p", - "l", - "w" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "u", - "s", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "p", - "r", - "i" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "u", - "s", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "t", - "c", - "a" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "u", - "s", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "t", - "l", - "s" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "u", - "s", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "u", - "m", - "i" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "u", - "s", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "u", - "s", - "a" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "u", - "s", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "v", - "g", - "b" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "u", - "s", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "v", - "i", - "r" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "u", - "y", - "u" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "u", - "r", - "y" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "u", - "z", - "s" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "u", - "z", - "b" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "v", - "e", - "s" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "v", - "e", - "n" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "v", - "n", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "v", - "n", - "m" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "v", - "u", - "v" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "v", - "u", - "t" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "w", - "s", - "t" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "w", - "s", - "m" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "x", - "a", - "f" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "c", - "a", - "f" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "x", - "a", - "f" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "c", - "m", - "r" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "x", - "a", - "f" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "c", - "o", - "g" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "x", - "a", - "f" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "g", - "a", - "b" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "x", - "a", - "f" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "g", - "n", - "q" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "x", - "a", - "f" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "t", - "c", - "d" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "x", - "c", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "a", - "i", - "a" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "x", - "c", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "a", - "t", - "g" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "x", - "c", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "d", - "m", - "a" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "x", - "c", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "g", - "r", - "d" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "x", - "c", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "k", - "n", - "a" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "x", - "c", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "l", - "c", - "a" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "x", - "c", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "m", - "s", - "r" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "x", - "c", - "d" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "v", - "c", - "t" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "x", - "o", - "f" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "b", - "e", - "n" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "x", - "o", - "f" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "b", - "f", - "a" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "x", - "o", - "f" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "c", - "i", - "v" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "x", - "o", - "f" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "g", - "n", - "b" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "x", - "o", - "f" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "m", - "l", - "i" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "x", - "o", - "f" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "n", - "e", - "r" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "x", - "o", - "f" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "s", - "e", - "n" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "x", - "o", - "f" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "t", - "g", - "o" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "x", - "p", - "f" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "n", - "c", - "l" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "x", - "p", - "f" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "p", - "y", - "f" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "x", - "p", - "f" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "w", - "l", - "f" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "y", - "e", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "y", - "e", - "m" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "z", - "a", - "r" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "z", - "a", - "f" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "z", - "m", - "w" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "z", - "m", - "b" - ] - ] - ] - ] - ], - [ - "tuple", - [ - "tuple", - {}, - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "z", - "w", - "l" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "z", - "w", - "e" - ] - ] - ] - ] - ] - ] - ] - } - ] - ] - ] - } - ] - }, - { - "name": [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - "def": [ - "private", - { - "types": [ - [ - [ - "central", - "bank" - ], - [ - "public", - [ - "", - [ - "custom_type_definition", - [], - [ - "public", - [ - [ - [ - "banca", - "de", - "france" - ], - [] - ], - [ - [ - "bance", - "di", - "italia" - ], - [] - ], - [ - [ - "banco", - "central", - "do", - "brasil" - ], - [] - ], - [ - [ - "bank", - "of", - "canada" - ], - [] - ], - [ - [ - "bank", - "of", - "england" - ], - [] - ], - [ - [ - "bank", - "of", - "japan" - ], - [] - ], - [ - [ - "bank", - "of", - "korea" - ], - [] - ], - [ - [ - "banque", - "centrale", - "du", - "luxembourg" - ], - [] - ], - [ - [ - "central", - "bank", - "of", - "the", - "russian", - "federation" - ], - [] - ], - [ - [ - "deutsche", - "bundesbank" - ], - [] - ], - [ - [ - "european", - "central", - "bank" - ], - [] - ], - [ - [ - "federal", - "reserve", - "bank" - ], - [] - ], - [ - [ - "peoples", - "bank", - "of", - "china" - ], - [] - ], - [ - [ - "reserve", - "bank", - "of", - "australia" - ], - [] - ], - [ - [ - "reserve", - "bank", - "of", - "india" - ], - [] - ], - [ - [ - "swiss", - "national", - "bank" - ], - [] - ] - ] - ] - ] - ] - ] - ] - ], - "values": [] - } - ] - }, - { - "name": [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - "def": [ - "public", - { - "types": [ - [ - [ - "account" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "adjusted", - "amount", - "u", - "s", - "d" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "adjusted", - "m", - "x", - "amount" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "cashflow" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "record", - {}, - [ - [ - [ - "legal", - "entity" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "legal", - "entity" - ] - ], - [] - ] - ], - [ - [ - "party", - "id" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "party", - "i", - "d" - ] - ], - [] - ] - ], - [ - [ - "currency" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ] - ], - [ - [ - "counterparty" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "counterparty" - ] - ], - [] - ] - ], - [ - [ - "amount", - "u", - "s", - "d" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "money" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "usd" - ] - ], - [] - ] - ] - ] - ], - [ - [ - "amount", - "mx" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "money" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "mx" - ] - ], - [] - ] - ] - ] - ], - [ - [ - "ten", - "q", - "level", - "1" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "ten", - "q", - "level", - "1" - ] - ], - [] - ] - ], - [ - [ - "ten", - "q", - "level", - "2" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "ten", - "q", - "level", - "2" - ] - ], - [] - ] - ], - [ - [ - "ten", - "q", - "level", - "3" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "ten", - "q", - "level", - "3" - ] - ], - [] - ] - ], - [ - [ - "ten", - "q", - "level", - "4" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "ten", - "q", - "level", - "4" - ] - ], - [] - ] - ], - [ - [ - "ten", - "q", - "level", - "5" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "ten", - "q", - "level", - "5" - ] - ], - [] - ] - ], - [ - [ - "ten", - "q", - "level", - "6" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "ten", - "q", - "level", - "6" - ] - ], - [] - ] - ] - ] - ] - ] - ] - ] - ], - [ - [ - "central", - "bank", - "sub", - "product" - ], - [ - "public", - [ - "", - [ - "custom_type_definition", - [], - [ - "public", - [ - [ - [ - "b", - "o", - "c" - ], - [] - ], - [ - [ - "b", - "o", - "e" - ], - [] - ], - [ - [ - "b", - "o", - "j" - ], - [] - ], - [ - [ - "e", - "c", - "b" - ], - [] - ], - [ - [ - "f", - "r", - "b" - ], - [] - ], - [ - [ - "o", - "c", - "b" - ], - [] - ], - [ - [ - "other", - "cash", - "currency", - "and", - "coin" - ], - [] - ], - [ - [ - "r", - "b", - "a" - ], - [] - ], - [ - [ - "s", - "n", - "b" - ], - [] - ] - ] - ] - ] - ] - ] - ], - [ - [ - "cost", - "center" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "record", - {}, - [ - [ - [ - "code" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cost", - "center", - "code" - ] - ], - [] - ] - ], - [ - [ - "description" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cost", - "center", - "description" - ] - ], - [] - ] - ] - ] - ] - ] - ] - ] - ], - [ - [ - "cost", - "center", - "code" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "cost", - "center", - "description" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "counterparty" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "record", - {}, - [ - [ - [ - "country" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ], - [ - [ - "description", - "5", - "g" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "description", - "5", - "g" - ] - ], - [] - ] - ], - [ - [ - "account" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "account" - ] - ], - [] - ] - ] - ] - ] - ] - ] - ] - ], - [ - [ - "country", - "code" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "description", - "5", - "g" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "fed", - "code" - ], - [ - "public", - [ - "", - [ - "custom_type_definition", - [], - [ - "public", - [ - [ - [ - "i", - "a", - "31" - ], - [] - ], - [ - [ - "i", - "a", - "32" - ], - [] - ], - [ - [ - "i", - "a", - "33" - ], - [] - ], - [ - [ - "i", - "a", - "34" - ], - [] - ], - [ - [ - "i", - "a", - "35" - ], - [] - ], - [ - [ - "i", - "a", - "36" - ], - [] - ], - [ - [ - "i", - "a", - "37" - ], - [] - ], - [ - [ - "i", - "a", - "38" - ], - [] - ], - [ - [ - "i", - "a", - "39" - ], - [] - ], - [ - [ - "i", - "a", - "41" - ], - [] - ], - [ - [ - "i", - "a", - "42" - ], - [] - ], - [ - [ - "i", - "a", - "43" - ], - [] - ], - [ - [ - "i", - "a", - "44" - ], - [] - ], - [ - [ - "i", - "a", - "45" - ], - [] - ], - [ - [ - "i", - "a", - "46" - ], - [] - ], - [ - [ - "i", - "a", - "47" - ], - [] - ], - [ - [ - "i", - "a", - "48" - ], - [] - ], - [ - [ - "i", - "a", - "49" - ], - [] - ], - [ - [ - "i", - "u", - "1" - ], - [] - ], - [ - [ - "i", - "u", - "2" - ], - [] - ], - [ - [ - "i", - "u", - "4" - ], - [] - ], - [ - [ - "o", - "w", - "10" - ], - [] - ], - [ - [ - "o", - "w", - "9" - ], - [] - ], - [ - [ - "unclassified" - ], - [] - ] - ] - ] - ] - ] - ] - ], - [ - [ - "legal", - "entity" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "record", - {}, - [ - [ - [ - "code" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "legal", - "entity", - "code" - ] - ], - [] - ] - ], - [ - [ - "country" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ] - ] - ] - ] - ] - ] - ] - ], - [ - [ - "legal", - "entity", - "code" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "money" - ], - [ - "public", - [ - "", - [ - "custom_type_definition", - [ - [ - "a" - ] - ], - [ - "public", - [ - [ - [ - "money" - ], - [ - [ - [ - "arg", - "1" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ] - ] - ] - ] - ] - ] - ] - ] - ] - ], - [ - [ - "mx" - ], - [ - "public", - [ - "", - [ - "custom_type_definition", - [], - [ - "public", - [ - [ - [ - "mx" - ], - [] - ] - ] - ] - ] - ] - ] - ], - [ - [ - "party", - "i", - "d" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "product", - "type" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "ten", - "q", - "level", - "1" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "ten", - "q", - "level", - "2" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "ten", - "q", - "level", - "3" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "ten", - "q", - "level", - "4" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "ten", - "q", - "level", - "5" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "ten", - "q", - "level", - "6" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "usd" - ], - [ - "public", - [ - "", - [ - "custom_type_definition", - [], - [ - "public", - [ - [ - [ - "usd" - ], - [] - ] - ] - ] - ] - ] - ] - ] - ], - "values": [ - [ - [ - "central", - "bank", - "to", - "sub", - "product" - ], - [ - "public", - { - "inputTypes": [ - [ - [ - "cb" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - "outputType": [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - "body": [ - "pattern_match", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "cb" - ] - ], - [ - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "federal", - "reserve", - "bank" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "f", - "r", - "b" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "swiss", - "national", - "bank" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "s", - "n", - "b" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "bank", - "of", - "england" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "b", - "o", - "e" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "european", - "central", - "bank" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "e", - "c", - "b" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "bank", - "of", - "japan" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "b", - "o", - "j" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "reserve", - "bank", - "of", - "australia" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "r", - "b", - "a" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "bank", - "of", - "canada" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "b", - "o", - "c" - ] - ] - ] - ], - [ - [ - "wildcard_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "o", - "c", - "b" - ] - ] - ] - ] - ] - ] - } - ] - ], - [ - [ - "classify" - ], - [ - "public", - { - "inputTypes": [ - [ - [ - "cashflow" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ] - ], - [ - [ - "central", - "banks" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "dict" - ] - ], - [ - "dict" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "party", - "i", - "d" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "dict" - ] - ], - [ - "dict" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "party", - "i", - "d" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ] - ] - ], - "outputType": [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - "body": [ - "let_definition", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - "party", - "as", - "central", - "bank" - ], - { - "inputTypes": [], - "outputType": [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - "body": [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "dict" - ] - ], - [ - "dict" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "party", - "i", - "d" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "party", - "i", - "d" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "dict" - ] - ], - [ - "dict" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "party", - "i", - "d" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "dict" - ] - ], - [ - "get" - ] - ] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "party", - "i", - "d" - ] - ], - [] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "cashflow" - ] - ], - [ - "party", - "id" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "dict" - ] - ], - [ - "dict" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "party", - "i", - "d" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - "central", - "banks" - ] - ] - ] - }, - [ - "pattern_match", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - "party", - "as", - "central", - "bank" - ] - ], - [ - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "just" - ] - ], - [ - [ - "as_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "wildcard_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ], - [ - "central", - "bank" - ] - ] - ] - ], - [ - "if_then_else", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "ten", - "q", - "level", - "6" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "ten", - "q", - "level", - "6" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "ten", - "q", - "level", - "6" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "not", - "equal" - ] - ] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "ten", - "q", - "level", - "6" - ] - ], - [] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "cashflow" - ] - ], - [ - "ten", - "q", - "level", - "6" - ] - ] - ], - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "ten", - "q", - "level", - "6" - ] - ], - [] - ], - [ - "string_literal", - "Segregated Cash" - ] - ] - ], - [ - "pattern_match", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "to", - "sub", - "product" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "central", - "bank" - ] - ] - ], - [ - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "f", - "r", - "b" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "31" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "s", - "n", - "b" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "32" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "b", - "o", - "e" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "33" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "e", - "c", - "b" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "34" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "b", - "o", - "j" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "35" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "r", - "b", - "a" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "36" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "b", - "o", - "c" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "37" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "o", - "c", - "b" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "38" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "other", - "cash", - "currency", - "and", - "coin" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "39" - ] - ] - ] - ] - ] - ], - [ - "pattern_match", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "to", - "sub", - "product" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "central", - "bank" - ] - ] - ], - [ - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "f", - "r", - "b" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "41" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "s", - "n", - "b" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "42" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "b", - "o", - "e" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "43" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "e", - "c", - "b" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "44" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "b", - "o", - "j" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "45" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "r", - "b", - "a" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "46" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "b", - "o", - "c" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "47" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "o", - "c", - "b" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "48" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "other", - "cash", - "currency", - "and", - "coin" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "a", - "49" - ] - ] - ] - ] - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "nothing" - ] - ], - [] - ], - [ - "if_then_else", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "or" - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "equal" - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "to", - "upper" - ] - ] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "ten", - "q", - "level", - "5" - ] - ], - [] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "cashflow" - ] - ], - [ - "ten", - "q", - "level", - "5" - ] - ] - ] - ], - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "CASH AND DUE FROM BANKS" - ] - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "or" - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "equal" - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "to", - "upper" - ] - ] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "cashflow" - ] - ], - [ - "ten", - "q", - "level", - "5" - ] - ] - ] - ], - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "OVERNIGHT AND TERM DEPOSITS" - ] - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "equal" - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "to", - "upper" - ] - ] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "cashflow" - ] - ], - [ - "ten", - "q", - "level", - "5" - ] - ] - ] - ], - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "CASH EQUIVALENTS" - ] - ] - ] - ] - ], - [ - "if_then_else", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "greater", - "than", - "or", - "equal" - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "net", - "cash", - "u", - "s", - "d" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "cashflow" - ] - ] - ] - ], - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ], - [ - "float_literal", - 0 - ] - ] - ], - [ - "if_then_else", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "is", - "onshore" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "cashflow" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "u", - "1" - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "u", - "2" - ] - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "i", - "u", - "4" - ] - ] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "fed", - "code" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "unclassified" - ] - ] - ] - ] - ] - ] - ] - ] - } - ] - ], - [ - [ - "is", - "onshore" - ], - [ - "public", - { - "inputTypes": [ - [ - [ - "cashflow" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ] - ] - ], - "outputType": [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - "body": [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "and" - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "equal" - ] - ] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "legal", - "entity" - ] - ], - [] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "cashflow" - ] - ], - [ - "legal", - "entity" - ] - ], - [ - "country" - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "country" - ] - ] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "cashflow" - ] - ], - [ - "currency" - ] - ] - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "equal" - ] - ] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "legal", - "entity" - ] - ], - [] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "cashflow" - ] - ], - [ - "legal", - "entity" - ] - ], - [ - "country" - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "constructor", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "just" - ] - ] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "counterparty" - ] - ], - [] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "cashflow" - ] - ], - [ - "counterparty" - ] - ], - [ - "country" - ] - ] - ] - ] - ] - } - ] - ], - [ - [ - "net", - "cash", - "u", - "s", - "d" - ], - [ - "public", - { - "inputTypes": [ - [ - [ - "cashflow" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ] - ] - ], - "outputType": [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ], - "body": [ - "pattern_match", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "money" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "usd" - ] - ], - [] - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "cashflow" - ] - ], - [ - "amount", - "u", - "s", - "d" - ] - ], - [ - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "money" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "usd" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code" - ] - ], - [ - "money" - ] - ], - [ - [ - "as_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ], - [ - "wildcard_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ] - ], - [ - "amount" - ] - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ], - [ - "amount" - ] - ] - ] - ] - ] - } - ] - ] - ] - } - ] - }, - { - "name": [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - "def": [ - "public", - { - "types": [ - [ - [ - "account" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "adjusted", - "amount", - "u", - "s", - "d" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "adjusted", - "m", - "x", - "amount" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "cashflow" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "record", - {}, - [ - [ - [ - "legal", - "entity" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "legal", - "entity" - ] - ], - [] - ] - ], - [ - [ - "party", - "id" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ], - [ - [ - "currency" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ] - ], - [ - [ - "counterparty" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "counterparty" - ] - ], - [] - ] - ], - [ - [ - "amount", - "u", - "s", - "d" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ] - ], - [ - [ - "amount", - "mx" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ] - ], - [ - [ - "ten", - "q", - "level", - "1" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ], - [ - [ - "ten", - "q", - "level", - "2" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ], - [ - [ - "ten", - "q", - "level", - "3" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ], - [ - [ - "ten", - "q", - "level", - "4" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ], - [ - [ - "ten", - "q", - "level", - "5" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ], - [ - [ - "ten", - "q", - "level", - "6" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ] - ] - ] - ], - [ - [ - "central", - "bank", - "sub", - "product" - ], - [ - "public", - [ - "", - [ - "custom_type_definition", - [], - [ - "public", - [ - [ - [ - "b", - "o", - "c" - ], - [] - ], - [ - [ - "b", - "o", - "e" - ], - [] - ], - [ - [ - "b", - "o", - "j" - ], - [] - ], - [ - [ - "e", - "c", - "b" - ], - [] - ], - [ - [ - "f", - "r", - "b" - ], - [] - ], - [ - [ - "o", - "c", - "b" - ], - [] - ], - [ - [ - "other", - "cash", - "currency", - "and", - "coin" - ], - [] - ], - [ - [ - "r", - "b", - "a" - ], - [] - ], - [ - [ - "s", - "n", - "b" - ], - [] - ] - ] - ] - ] - ] - ] - ], - [ - [ - "cost", - "center" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "record", - {}, - [ - [ - [ - "code" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ], - [ - [ - "description" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ] - ] - ] - ], - [ - [ - "cost", - "center", - "code" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "cost", - "center", - "description" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "counterparty" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "record", - {}, - [ - [ - [ - "country" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ], - [ - [ - "description", - "5", - "g" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ], - [ - [ - "account" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ] - ] - ] - ], - [ - [ - "country", - "code" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "description", - "5", - "g" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "legal", - "entity" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "record", - {}, - [ - [ - [ - "code" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ], - [ - [ - "country" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ] - ] - ] - ] - ] - ], - [ - [ - "legal", - "entity", - "code" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "money" - ], - [ - "public", - [ - "", - [ - "custom_type_definition", - [ - [ - "a" - ] - ], - [ - "public", - [ - [ - [ - "money" - ], - [ - [ - [ - "arg", - "1" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ] - ] - ] - ] - ] - ] - ] - ] - ] - ], - [ - [ - "mx" - ], - [ - "public", - [ - "", - [ - "custom_type_definition", - [], - [ - "public", - [ - [ - [ - "mx" - ], - [] - ] - ] - ] - ] - ] - ] - ], - [ - [ - "party", - "i", - "d" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "product", - "type" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "rule", - "code" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ] - ] - ], - [ - [ - "ten", - "q", - "level", - "1" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "ten", - "q", - "level", - "2" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "ten", - "q", - "level", - "3" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "ten", - "q", - "level", - "4" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "ten", - "q", - "level", - "5" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "ten", - "q", - "level", - "6" - ], - [ - "public", - [ - "", - [ - "type_alias_definition", - [], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - "usd" - ], - [ - "public", - [ - "", - [ - "custom_type_definition", - [], - [ - "public", - [ - [ - [ - "usd" - ], - [] - ] - ] - ] - ] - ] - ] - ] - ], - "values": [ - [ - [ - "central", - "bank", - "to", - "sub", - "product" - ], - [ - "public", - { - "inputTypes": [ - [ - [ - "cb" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - "outputType": [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - "body": [ - "pattern_match", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "cb" - ] - ], - [ - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "federal", - "reserve", - "bank" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "f", - "r", - "b" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "swiss", - "national", - "bank" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "s", - "n", - "b" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "bank", - "of", - "england" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "b", - "o", - "e" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "european", - "central", - "bank" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "e", - "c", - "b" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "bank", - "of", - "japan" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "b", - "o", - "j" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "reserve", - "bank", - "of", - "australia" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "r", - "b", - "a" - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "bank", - "of", - "canada" - ] - ], - [] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "b", - "o", - "c" - ] - ] - ] - ], - [ - [ - "wildcard_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ], - [ - "constructor", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "o", - "c", - "b" - ] - ] - ] - ] - ] - ] - } - ] - ], - [ - [ - "classify" - ], - [ - "public", - { - "inputTypes": [ - [ - [ - "central", - "banks" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "dict" - ] - ], - [ - "dict" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "party", - "i", - "d" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "dict" - ] - ], - [ - "dict" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "party", - "i", - "d" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ] - ], - [ - [ - "cashflow" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "cashflow" - ] - ], - [] - ] - ] - ], - "outputType": [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ], - "body": [ - "let_definition", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ], - [ - "party", - "is", - "central", - "bank" - ], - { - "inputTypes": [], - "outputType": [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - "body": [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "dict" - ] - ], - [ - "dict" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "dict" - ] - ], - [ - "dict" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "dict" - ] - ], - [ - "get" - ] - ] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "cashflow" - ] - ], - [ - "party", - "id" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "dict" - ] - ], - [ - "dict" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "party", - "i", - "d" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - "central", - "banks" - ] - ] - ] - }, - [ - "pattern_match", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - "party", - "is", - "central", - "bank" - ] - ], - [ - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "just" - ] - ], - [ - [ - "as_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "wildcard_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ], - [ - "central", - "bank" - ] - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rules", - "i", - "a" - ] - ] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "cashflow" - ] - ], - [ - "ten", - "q", - "level", - "4" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "central", - "bank" - ] - ] - ] - ], - [ - [ - "as_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - "wildcard_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ] - ], - [ - "not", - "central", - "bank" - ] - ], - [ - "if_then_else", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "or" - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "equal" - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "to", - "upper" - ] - ] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "cashflow" - ] - ], - [ - "ten", - "q", - "level", - "5" - ] - ] - ] - ], - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "CASH AND DUE FROM BANKS" - ] - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "or" - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "equal" - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "to", - "upper" - ] - ] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "cashflow" - ] - ], - [ - "ten", - "q", - "level", - "5" - ] - ] - ] - ], - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "OVERNIGHT AND TERM DEPOSITS" - ] - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "equal" - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "to", - "upper" - ] - ] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "cashflow" - ] - ], - [ - "ten", - "q", - "level", - "5" - ] - ] - ] - ], - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "CASH EQUIVALENTS" - ] - ] - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ] - ] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ] - ] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "i", - "u" - ] - ] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "cashflow" - ] - ], - [ - "amount", - "u", - "s", - "d" - ] - ] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "legal", - "entity" - ] - ], - [] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "cashflow" - ] - ], - [ - "legal", - "entity" - ] - ], - [ - "country" - ] - ] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "cashflow" - ] - ], - [ - "currency" - ] - ] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "field", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "counterparty" - ] - ], - [] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "cashflow" - ] - ], - [] - ], - [ - "cashflow" - ] - ], - [ - "counterparty" - ] - ], - [ - "country" - ] - ] - ], - [ - "list", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ], - [] - ] - ] - ] - ] - ] - ] - } - ] - ], - [ - [ - "is", - "central", - "bank" - ], - [ - "public", - { - "inputTypes": [ - [ - [ - "m" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ] - ] - ], - "outputType": [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - "body": [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "with", - "default" - ] - ] - ], - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "bool_literal", - false - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "map" - ] - ] - ], - [ - "lambda", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "as_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "wildcard_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ], - [ - "x" - ] - ], - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "bool_literal", - true - ] - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - [ - "m" - ] - ] - ] - ] - } - ] - ], - [ - [ - "is", - "onshore" - ], - [ - "public", - { - "inputTypes": [ - [ - [ - "legal", - "entity", - "country" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ], - [ - [ - "cashflow", - "currency" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ] - ], - [ - [ - "counterparty", - "country" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - "outputType": [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - "body": [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "and" - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "equal" - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "constructor", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "just" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "legal", - "entity", - "country" - ] - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "maybe" - ] - ], - [ - "maybe" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "country" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "cashflow", - "currency" - ] - ] - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "equal" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "legal", - "entity", - "country" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "counterparty", - "country" - ] - ] - ] - ] - } - ] - ], - [ - [ - "net", - "cash", - "u", - "s", - "d" - ], - [ - "public", - { - "inputTypes": [ - [ - [ - "adjusted", - "amount", - "u", - "s", - "d" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "adjusted", - "amount", - "u", - "s", - "d" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "adjusted", - "amount", - "u", - "s", - "d" - ] - ], - [] - ] - ] - ], - "outputType": [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ], - "body": [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ], - [ - "adjusted", - "amount", - "u", - "s", - "d" - ] - ] - } - ] - ], - [ - [ - "rule", - "i", - "a", - "3" - ], - [ - "public", - { - "inputTypes": [ - [ - [ - "central", - "bank" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - "outputType": [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ], - "body": [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "append" - ] - ] - ], - [ - "list", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "3" - ] - ] - ] - ] - ], - [ - "pattern_match", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "to", - "sub", - "product" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "central", - "bank" - ] - ] - ], - [ - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "f", - "r", - "b" - ] - ], - [] - ], - [ - "list", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "1" - ] - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "s", - "n", - "b" - ] - ], - [] - ], - [ - "list", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "2" - ] - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "b", - "o", - "e" - ] - ], - [] - ], - [ - "list", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "3" - ] - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "e", - "c", - "b" - ] - ], - [] - ], - [ - "list", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "4" - ] - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "b", - "o", - "j" - ] - ], - [] - ], - [ - "list", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "5" - ] - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "r", - "b", - "a" - ] - ], - [] - ], - [ - "list", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "6" - ] - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "b", - "o", - "c" - ] - ], - [] - ], - [ - "list", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "7" - ] - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "o", - "c", - "b" - ] - ], - [] - ], - [ - "list", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "8" - ] - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "other", - "cash", - "currency", - "and", - "coin" - ] - ], - [] - ], - [ - "list", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "9" - ] - ] - ] - ] - ] - ] - ] - ] - } - ] - ], - [ - [ - "rule", - "i", - "a", - "4" - ], - [ - "public", - { - "inputTypes": [ - [ - [ - "central", - "bank" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - "outputType": [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ], - "body": [ - "pattern_match", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "to", - "sub", - "product" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "central", - "bank" - ] - ] - ], - [ - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "f", - "r", - "b" - ] - ], - [] - ], - [ - "list", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "1" - ] - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "s", - "n", - "b" - ] - ], - [] - ], - [ - "list", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ], - [ - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "2" - ] - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "b", - "o", - "e" - ] - ], - [] - ], - [ - "list", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "3" - ] - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "e", - "c", - "b" - ] - ], - [] - ], - [ - "list", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ], - [ - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "4" - ] - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "b", - "o", - "j" - ] - ], - [] - ], - [ - "list", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "5" - ] - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "r", - "b", - "a" - ] - ], - [] - ], - [ - "list", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ], - [ - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "6" - ] - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "b", - "o", - "c" - ] - ], - [] - ], - [ - "list", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "7" - ] - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "o", - "c", - "b" - ] - ], - [] - ], - [ - "list", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ], - [ - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "8" - ] - ] - ] - ] - ], - [ - [ - "constructor_pattern", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "central", - "bank", - "sub", - "product" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "other", - "cash", - "currency", - "and", - "coin" - ] - ], - [] - ], - [ - "list", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "9" - ] - ] - ] - ] - ] - ] - ] - } - ] - ], - [ - [ - "rule", - "i", - "u" - ], - [ - "public", - { - "inputTypes": [ - [ - [ - "adjusted", - "amount", - "u", - "s", - "d" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ] - ], - [ - [ - "legal", - "entity", - "country" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ], - [ - [ - "cashflow", - "currency" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ] - ], - [ - [ - "counterparty", - "country" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ] - ] - ], - "outputType": [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ], - "body": [ - "let_definition", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ], - [ - "tail" - ], - { - "inputTypes": [], - "outputType": [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - "body": [ - "if_then_else", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "greater", - "than", - "or", - "equal" - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "adjusted", - "amount", - "u", - "s", - "d" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "net", - "cash", - "u", - "s", - "d" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "adjusted", - "amount", - "u", - "s", - "d" - ] - ], - [] - ], - [ - "adjusted", - "amount", - "u", - "s", - "d" - ] - ] - ] - ], - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "float" - ] - ], - [] - ], - [ - "float_literal", - 0 - ] - ] - ], - [ - "if_then_else", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "is", - "onshore" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "legal", - "entity", - "country" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "currency" - ] - ], - [ - "currency" - ] - ], - [] - ], - [ - "cashflow", - "currency" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "country" - ] - ], - [ - "country" - ] - ], - [] - ], - [ - "counterparty", - "country" - ] - ] - ], - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "1" - ] - ], - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "2" - ] - ] - ], - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "4" - ] - ] - ] - }, - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "append" - ] - ] - ], - [ - "list", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "I" - ] - ], - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "U" - ] - ] - ] - ] - ], - [ - "list", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "tail" - ] - ] - ] - ] - ] - ] - } - ] - ], - [ - [ - "rules", - "i", - "a" - ], - [ - "public", - { - "inputTypes": [ - [ - [ - "ten", - "q", - "level", - "4" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ], - [ - [ - "central", - "bank" - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ] - ] - ], - "outputType": [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ], - "body": [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "append" - ] - ] - ], - [ - "list", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "list" - ] - ], - [ - "list" - ] - ], - [ - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ] - ] - ], - [ - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "I" - ] - ], - [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "A" - ] - ] - ] - ] - ], - [ - "if_then_else", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ], - [ - "apply", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "bool" - ] - ], - [] - ] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "basics" - ] - ], - [ - "equal" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "ten", - "q", - "level", - "4" - ] - ] - ], - [ - "reference", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "segregated", - "cash" - ] - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "i", - "a", - "4" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "central", - "bank" - ] - ] - ], - [ - "apply", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ], - [ - "reference", - [ - "function", - {}, - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "code" - ] - ], - [] - ] - ], - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "fed", - "code", - "rules" - ] - ], - [ - "rule", - "i", - "a", - "3" - ] - ] - ], - [ - "variable", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "sample" - ] - ], - [ - [ - "reg" - ], - [ - "l", - "c", - "r" - ], - [ - "central", - "bank" - ] - ], - [ - "central", - "bank" - ] - ], - [] - ], - [ - "central", - "bank" - ] - ] - ] - ] - ] - } - ] - ], - [ - [ - "segregated", - "cash" - ], - [ - "public", - { - "inputTypes": [], - "outputType": [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - "body": [ - "literal", - [ - "reference", - {}, - [ - [ - [ - "morphir" - ], - [ - "s", - "d", - "k" - ] - ], - [ - [ - "string" - ] - ], - [ - "string" - ] - ], - [] - ], - [ - "string_literal", - "Seg Cash" - ] - ] - } - ] - ] - ] - } - ] - } - ] - } - ] -} \ No newline at end of file From d6fff5948a3d61f39a4c68b6ada59b76599097f0 Mon Sep 17 00:00:00 2001 From: Attila Mihaly Date: Mon, 23 Aug 2021 16:02:08 +0200 Subject: [PATCH 73/88] Ignore generated IR file. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 5becdf1..b588d78 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ elm-stuff/ morphir-interface.json morphir-implementation.json morphir-version.json +morphir-ir.json .fake .ionide From aa2992997602fca05ff75ddd49b8064be99082cd Mon Sep 17 00:00:00 2001 From: Attila Mihaly Date: Mon, 23 Aug 2021 16:06:12 +0200 Subject: [PATCH 74/88] Exclude the Apps module that uses an outdated API. --- morphir.json | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/morphir.json b/morphir.json index d3460b2..0d9d182 100644 --- a/morphir.json +++ b/morphir.json @@ -4,22 +4,6 @@ "exposedModules": [ "Reg.LCR.FedCodeRules" , "Reg.LCR.Calculations" - ,"Apps/Shared/Client" - , "Apps/Shared/Market" - , "Apps/Shared/Price" - , "Apps/Shared/Product" - , "Apps/Shared/Quantity" - , "Apps/Shared/Rate" - , "Apps/BooksAndRecords/App" - , "Apps/BooksAndRecords/Deal" - , "Apps/Order/ACL" - , "Apps/Order/App" - , "Apps/Order/Order" - , "Apps/Trader/App" - , "Apps/Trader/Logic" - , "Apps/Upstream/Market/App" - , "Apps/Upstream/Product/App" - , "Apps/Upstream/Trading/App" , "LCR/Basics" , "LCR/Calculations" , "LCR/Counterparty" From ca21dba9f18551cdebd9f2fa417b7b0d74b300de Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Fri, 17 Sep 2021 14:24:14 -0400 Subject: [PATCH 75/88] some more things to ignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 5becdf1..4dc4d96 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,6 @@ morphir-version.json .ionide *.iml +.metals/ +.settings.json + From 1f0c55d41c94b9b928df3f23fb0df23552525b36 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Wed, 22 Sep 2021 14:51:40 -0400 Subject: [PATCH 76/88] Added tutorial 2 --- .idea/.gitignore | 3 - tutorial/step_2_business_language/elm.json | 26 ++++++ .../step_2_business_language/morphir.json | 9 +++ tutorial/step_2_business_language/readme.md | 72 +++++++++++++++++ .../src/Morphir/Example/App/Forecast.elm | 36 +++++++++ .../src/Morphir/Example/App/Rentals.elm | 79 +++++++++++++++++++ .../src/Morphir/Example/App/Winds.elm | 31 ++++++++ 7 files changed, 253 insertions(+), 3 deletions(-) delete mode 100644 .idea/.gitignore create mode 100644 tutorial/step_2_business_language/elm.json create mode 100644 tutorial/step_2_business_language/morphir.json create mode 100644 tutorial/step_2_business_language/readme.md create mode 100644 tutorial/step_2_business_language/src/Morphir/Example/App/Forecast.elm create mode 100644 tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm create mode 100644 tutorial/step_2_business_language/src/Morphir/Example/App/Winds.elm diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index eaf91e2..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml diff --git a/tutorial/step_2_business_language/elm.json b/tutorial/step_2_business_language/elm.json new file mode 100644 index 0000000..2ae609a --- /dev/null +++ b/tutorial/step_2_business_language/elm.json @@ -0,0 +1,26 @@ +{ + "type": "application", + "source-directories": [ + "src" + ], + "elm-version": "0.19.1", + "dependencies": { + "direct": { + "elm/browser": "1.0.2", + "elm/core": "1.0.5", + "elm/html": "1.0.0", + "elm-explorations/test": "1.2.2" + }, + "indirect": { + "elm/json": "1.1.3", + "elm/random": "1.0.0", + "elm/time": "1.0.0", + "elm/url": "1.0.0", + "elm/virtual-dom": "1.0.2" + } + }, + "test-dependencies": { + "direct": {}, + "indirect": {} + } +} \ No newline at end of file diff --git a/tutorial/step_2_business_language/morphir.json b/tutorial/step_2_business_language/morphir.json new file mode 100644 index 0000000..aea2a6d --- /dev/null +++ b/tutorial/step_2_business_language/morphir.json @@ -0,0 +1,9 @@ +{ + "name": "Morphir.Example.App", + "sourceDirectory": "src", + "exposedModules": [ + "Forecast", + "Rentals", + "Winds" + ] +} \ No newline at end of file diff --git a/tutorial/step_2_business_language/readme.md b/tutorial/step_2_business_language/readme.md new file mode 100644 index 0000000..4e6f1b3 --- /dev/null +++ b/tutorial/step_2_business_language/readme.md @@ -0,0 +1,72 @@ +# Morphir Tutorial: First Logic Model + +We'll start out with a very simple example of modeling logic: whether we have enough surfboards to satisfy a rental request. First up, let's create the Elm source file for our code. + +First create the file ```src/Morphir/Examples/App/Rentals.elm```. In linux that's: + +``` +mkdir src/Morphir +mkdir src/Morphir/Examples +mkdir src/Morphir/Examples/App +touch src/Morphir/Examples/App/Rentals.elm +``` + +We need to update ```morphir.json``` to reflect our new module. Edit it to add the ```Morphir.Example.App``` package and the ```Rentals``` module and like this: + +``` +{ + "name": "Morphir.Example.App", + "sourceDirectory": "src", + "exposedModules": [ + "Rentals" + ] +} +``` + +Now edit the ```Rentals.eml``` file. First, we want to reflect the module (aka namespace). Add: + +``` Elm +module Morphir.Example.App.Rentals exposing (..) + + +``` + +That takes care of the boilerplate. Now we can focus on the business logic. We'll put that into a function: + +``` Elm +request : Int -> Int -> Result String Int +request availability requestedQuantity = + if requestedQuantity <= availability then + Ok requestedQuantity + else + Err "Insufficient availability" +``` +This is Elm's way of declaring a function. In this case, the function takes the current availability and the requested amount and returns a Result, which is either the quantity to be rented or an error message. At this point, we might want to play around to test that we got everything covered. We can do this with Morphir's developer tools. On the command line, type: + +``` +morphir-elm make +morphir-elm develop +``` + +Go ahead and click on the http://0.0.0.0:3000 link (note: you can also find an online example at [Insight Sample](https://finos.github.io/morphir-service)). Click on the "Rentals" link. You should see a page like: + + + +We can test out our logic by trying different values and checking the execution paths below: + + + +### Generating code +You might be interested in using this logic in a larger application. One option is to use the base Scala generator to transpile to a Scala library. This would allow you to use it as you would any other Scala library. To generate into the ```dist``` folder default, run: + +``` +morphir-elm gen +``` + +The full source code for the model can be found at [Rentals.elm](src/Morphir/Example/App/Rentals.elm) + +That wraps up our first Morphir model! + + + +[Home](../../readme.md) | [Prev](../../install.md) | [Next](step_2_refined_logic/readme.md) diff --git a/tutorial/step_2_business_language/src/Morphir/Example/App/Forecast.elm b/tutorial/step_2_business_language/src/Morphir/Example/App/Forecast.elm new file mode 100644 index 0000000..3ca48e0 --- /dev/null +++ b/tutorial/step_2_business_language/src/Morphir/Example/App/Forecast.elm @@ -0,0 +1,36 @@ +module Morphir.Example.App.Forecast exposing (..) + + +type alias MPH = + Int + + +type WindDirection + = North + | South + | East + | West + + +type alias Celcius = + Int + + +type ForecastDetail + = Showers + | Thunderstorms + | Snow + | Fog + + +type alias ForecastPercent = + Float + + +type alias Forecast = + { temp : { low : Celcius, high : Celcius } + , windSpeed : { min : MPH, max : MPH } + , windDirection : WindDirection + , shortForcast : ForecastDetail + , forecastPercent : ForecastPercent + } diff --git a/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm b/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm new file mode 100644 index 0000000..7808268 --- /dev/null +++ b/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm @@ -0,0 +1,79 @@ +module Morphir.Example.App.Rentals exposing (..) + +import Morphir.Example.App.Forecast exposing (..) +import Morphir.Example.App.Winds exposing (..) + + +type alias CurrentInventory = + Int + + +type alias ExistingReservations = + Int + + +type alias PendingReturns = + Int + + +type alias RequestedQuantity = + Int + + +type alias ReservedQuantity = + Int + + +type alias Availability = + Int + + +type alias AllowPartials = + Bool + + +type Reason + = InsufficientAvailability + | ClosedDueToConditions + + +processRequest : Forecast -> CurrentInventory -> ExistingReservations -> PendingReturns -> RequestedQuantity -> AllowPartials -> Result Reason ReservedQuantity +processRequest forecast inventory reservations returns requestedQuantity allowPartials = + let + windCategory : WindCategory + windCategory = + categorizeWindForForecast forecast + in + decide windCategory forecast.shortForcast inventory reservations returns requestedQuantity allowPartials + + +decide : WindCategory -> ForecastDetail -> CurrentInventory -> ExistingReservations -> PendingReturns -> RequestedQuantity -> AllowPartials -> Result Reason ReservedQuantity +decide windCategory forecastDetail inventory reservations returns requestedQuantity allowPartials = + let + isClosed : Bool + isClosed = + case ( windCategory, forecastDetail ) of + ( DangerousWinds, _ ) -> + True + + ( _, Thunderstorms ) -> + True + + _ -> + False + + availability : Availability + availability = + inventory - reservations + returns + in + if isClosed then + Err ClosedDueToConditions + + else if requestedQuantity <= availability then + Ok requestedQuantity + + else if allowPartials then + Ok availability + + else + Err InsufficientAvailability diff --git a/tutorial/step_2_business_language/src/Morphir/Example/App/Winds.elm b/tutorial/step_2_business_language/src/Morphir/Example/App/Winds.elm new file mode 100644 index 0000000..e8f8317 --- /dev/null +++ b/tutorial/step_2_business_language/src/Morphir/Example/App/Winds.elm @@ -0,0 +1,31 @@ +module Morphir.Example.App.Winds exposing (..) + +import Morphir.Example.App.Forecast exposing (..) + + +type WindCategory + = Calm + | Windy + | DangerousWinds + + +categorizeWind : MPH -> WindCategory +categorizeWind windSpeed = + if windSpeed < 15 then + Calm + + else if windSpeed < 30 then + Windy + + else + DangerousWinds + + +categorizeWindForForecast : Forecast -> WindCategory +categorizeWindForForecast forecast = + let + windCategory : WindCategory + windCategory = + categorizeWind forecast.windSpeed.max + in + windCategory From 9b15d1333d0df256b25717ce072b55bfea043ad9 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Wed, 22 Sep 2021 18:32:19 -0400 Subject: [PATCH 77/88] Added tutorial 2 --- ...t with Bosque and Morphir - LF OSS 2021.pdf | Bin 0 -> 157990 bytes .../src/Morphir/Example/App/Rentals.elm | 6 ++++++ .../src/Morphir/Example/App/Winds.elm | 6 +++++- 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 tutorial/step_2_business_language/Agile and Dependable Service Development with Bosque and Morphir - LF OSS 2021.pdf diff --git a/tutorial/step_2_business_language/Agile and Dependable Service Development with Bosque and Morphir - LF OSS 2021.pdf b/tutorial/step_2_business_language/Agile and Dependable Service Development with Bosque and Morphir - LF OSS 2021.pdf new file mode 100644 index 0000000000000000000000000000000000000000..408504e6849ea08c324e17ff1dfe64942ca3e240 GIT binary patch literal 157990 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

    {_mMr`Qm9 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

  • 41e7U6R7Lkwv2xwNC9 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 literal 0 HcmV?d00001 diff --git a/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm b/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm index 7808268..2d706a5 100644 --- a/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm +++ b/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm @@ -37,6 +37,12 @@ type Reason | ClosedDueToConditions +type ExpertiseLevel + = Novice + | Intermediate + | Expert + + processRequest : Forecast -> CurrentInventory -> ExistingReservations -> PendingReturns -> RequestedQuantity -> AllowPartials -> Result Reason ReservedQuantity processRequest forecast inventory reservations returns requestedQuantity allowPartials = let diff --git a/tutorial/step_2_business_language/src/Morphir/Example/App/Winds.elm b/tutorial/step_2_business_language/src/Morphir/Example/App/Winds.elm index e8f8317..f7ef95d 100644 --- a/tutorial/step_2_business_language/src/Morphir/Example/App/Winds.elm +++ b/tutorial/step_2_business_language/src/Morphir/Example/App/Winds.elm @@ -6,14 +6,18 @@ import Morphir.Example.App.Forecast exposing (..) type WindCategory = Calm | Windy + | HighWinds | DangerousWinds categorizeWind : MPH -> WindCategory categorizeWind windSpeed = - if windSpeed < 15 then + if windSpeed < 10 then Calm + else if windSpeed < 20 then + HighWinds + else if windSpeed < 30 then Windy From 999c9d957c12b719ed4d012e7952708105eaa7d9 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Thu, 23 Sep 2021 18:29:20 -0400 Subject: [PATCH 78/88] Added tutorial 2 --- .../step_2_business_language/morphir.json | 1 + .../src/Morphir/Example/App/App.elm | 25 +++++++++++++++++++ .../src/Morphir/Example/App/Rentals.elm | 10 -------- .../src/Morphir/Example/App/Winds.elm | 12 +-------- 4 files changed, 27 insertions(+), 21 deletions(-) create mode 100644 tutorial/step_2_business_language/src/Morphir/Example/App/App.elm diff --git a/tutorial/step_2_business_language/morphir.json b/tutorial/step_2_business_language/morphir.json index aea2a6d..7e58fb2 100644 --- a/tutorial/step_2_business_language/morphir.json +++ b/tutorial/step_2_business_language/morphir.json @@ -2,6 +2,7 @@ "name": "Morphir.Example.App", "sourceDirectory": "src", "exposedModules": [ + "App", "Forecast", "Rentals", "Winds" diff --git a/tutorial/step_2_business_language/src/Morphir/Example/App/App.elm b/tutorial/step_2_business_language/src/Morphir/Example/App/App.elm new file mode 100644 index 0000000..4f29c04 --- /dev/null +++ b/tutorial/step_2_business_language/src/Morphir/Example/App/App.elm @@ -0,0 +1,25 @@ +module Morphir.Example.App.App exposing (..) + +import Morphir.Example.App.Forecast exposing (..) +import Morphir.Example.App.Rentals exposing (..) +import Morphir.Example.App.Winds exposing (..) + + +processRequest : Forecast -> CurrentInventory -> ExistingReservations -> PendingReturns -> RequestedQuantity -> AllowPartials -> Result Reason ReservedQuantity +processRequest forecast inventory reservations returns requestedQuantity allowPartials = + let + windCategory : WindCategory + windCategory = + categorizeWindForForecast forecast + in + decide windCategory forecast.shortForcast inventory reservations returns requestedQuantity allowPartials + + +categorizeWindForForecast : Forecast -> WindCategory +categorizeWindForForecast forecast = + let + windCategory : WindCategory + windCategory = + categorizeWind forecast.windSpeed.max + in + windCategory diff --git a/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm b/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm index 2d706a5..bbcc17a 100644 --- a/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm +++ b/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm @@ -43,16 +43,6 @@ type ExpertiseLevel | Expert -processRequest : Forecast -> CurrentInventory -> ExistingReservations -> PendingReturns -> RequestedQuantity -> AllowPartials -> Result Reason ReservedQuantity -processRequest forecast inventory reservations returns requestedQuantity allowPartials = - let - windCategory : WindCategory - windCategory = - categorizeWindForForecast forecast - in - decide windCategory forecast.shortForcast inventory reservations returns requestedQuantity allowPartials - - decide : WindCategory -> ForecastDetail -> CurrentInventory -> ExistingReservations -> PendingReturns -> RequestedQuantity -> AllowPartials -> Result Reason ReservedQuantity decide windCategory forecastDetail inventory reservations returns requestedQuantity allowPartials = let diff --git a/tutorial/step_2_business_language/src/Morphir/Example/App/Winds.elm b/tutorial/step_2_business_language/src/Morphir/Example/App/Winds.elm index f7ef95d..a9330e3 100644 --- a/tutorial/step_2_business_language/src/Morphir/Example/App/Winds.elm +++ b/tutorial/step_2_business_language/src/Morphir/Example/App/Winds.elm @@ -10,7 +10,7 @@ type WindCategory | DangerousWinds -categorizeWind : MPH -> WindCategory +categorizeWind : Int -> WindCategory categorizeWind windSpeed = if windSpeed < 10 then Calm @@ -23,13 +23,3 @@ categorizeWind windSpeed = else DangerousWinds - - -categorizeWindForForecast : Forecast -> WindCategory -categorizeWindForForecast forecast = - let - windCategory : WindCategory - windCategory = - categorizeWind forecast.windSpeed.max - in - windCategory From 1f05801de4e82afbe8fbcc60d7d4f834acc9bd73 Mon Sep 17 00:00:00 2001 From: stephengoldbaum Date: Sun, 10 Oct 2021 23:45:04 -0400 Subject: [PATCH 79/88] Third tutorial introduces bosque error detection --- tutorial/step_1_first_logic/readme.md | 2 +- tutorial/step_2_business_language/readme.md | 74 ++---------------- ... with Bosque and Morphir - LF OSS 2021.pdf | Bin 0 -> 157990 bytes tutorial/step_3_catching_bugs/elm.json | 26 ++++++ tutorial/step_3_catching_bugs/morphir.json | 11 +++ tutorial/step_3_catching_bugs/readme.md | 72 +++++++++++++++++ .../src/Morphir/Example/App/Analytics.elm | 56 +++++++++++++ .../src/Morphir/Example/App/App.elm | 51 ++++++++++++ .../src/Morphir/Example/App/BusinessTerms.elm | 51 ++++++++++++ .../src/Morphir/Example/App/Forecast.elm | 36 +++++++++ .../src/Morphir/Example/App/Rentals.elm | 43 ++++++++++ .../src/Morphir/Example/App/Winds.elm | 25 ++++++ 12 files changed, 378 insertions(+), 69 deletions(-) create mode 100644 tutorial/step_3_catching_bugs/Agile and Dependable Service Development with Bosque and Morphir - LF OSS 2021.pdf create mode 100644 tutorial/step_3_catching_bugs/elm.json create mode 100644 tutorial/step_3_catching_bugs/morphir.json create mode 100644 tutorial/step_3_catching_bugs/readme.md create mode 100644 tutorial/step_3_catching_bugs/src/Morphir/Example/App/Analytics.elm create mode 100644 tutorial/step_3_catching_bugs/src/Morphir/Example/App/App.elm create mode 100644 tutorial/step_3_catching_bugs/src/Morphir/Example/App/BusinessTerms.elm create mode 100644 tutorial/step_3_catching_bugs/src/Morphir/Example/App/Forecast.elm create mode 100644 tutorial/step_3_catching_bugs/src/Morphir/Example/App/Rentals.elm create mode 100644 tutorial/step_3_catching_bugs/src/Morphir/Example/App/Winds.elm diff --git a/tutorial/step_1_first_logic/readme.md b/tutorial/step_1_first_logic/readme.md index 4e6f1b3..9b8554b 100644 --- a/tutorial/step_1_first_logic/readme.md +++ b/tutorial/step_1_first_logic/readme.md @@ -69,4 +69,4 @@ That wraps up our first Morphir model! -[Home](../../readme.md) | [Prev](../../install.md) | [Next](step_2_refined_logic/readme.md) +[Home](../../readme.md) | [Prev](../../install.md) | [Next](step_2_business_language/readme.md) diff --git a/tutorial/step_2_business_language/readme.md b/tutorial/step_2_business_language/readme.md index 4e6f1b3..1963b43 100644 --- a/tutorial/step_2_business_language/readme.md +++ b/tutorial/step_2_business_language/readme.md @@ -1,72 +1,10 @@ -# Morphir Tutorial: First Logic Model +# Morphir Tutorial: Business Language -We'll start out with a very simple example of modeling logic: whether we have enough surfboards to satisfy a rental request. First up, let's create the Elm source file for our code. +In this tutorial, we will look at techniques to ensure that what we're coding is in sync with the business requirements. -First create the file ```src/Morphir/Examples/App/Rentals.elm```. In linux that's: +## The Language of the business +An important part of writing business applications is ensuring that the business and technology teams are +sharing the same language to describe the application. -``` -mkdir src/Morphir -mkdir src/Morphir/Examples -mkdir src/Morphir/Examples/App -touch src/Morphir/Examples/App/Rentals.elm -``` -We need to update ```morphir.json``` to reflect our new module. Edit it to add the ```Morphir.Example.App``` package and the ```Rentals``` module and like this: - -``` -{ - "name": "Morphir.Example.App", - "sourceDirectory": "src", - "exposedModules": [ - "Rentals" - ] -} -``` - -Now edit the ```Rentals.eml``` file. First, we want to reflect the module (aka namespace). Add: - -``` Elm -module Morphir.Example.App.Rentals exposing (..) - - -``` - -That takes care of the boilerplate. Now we can focus on the business logic. We'll put that into a function: - -``` Elm -request : Int -> Int -> Result String Int -request availability requestedQuantity = - if requestedQuantity <= availability then - Ok requestedQuantity - else - Err "Insufficient availability" -``` -This is Elm's way of declaring a function. In this case, the function takes the current availability and the requested amount and returns a Result, which is either the quantity to be rented or an error message. At this point, we might want to play around to test that we got everything covered. We can do this with Morphir's developer tools. On the command line, type: - -``` -morphir-elm make -morphir-elm develop -``` - -Go ahead and click on the http://0.0.0.0:3000 link (note: you can also find an online example at [Insight Sample](https://finos.github.io/morphir-service)). Click on the "Rentals" link. You should see a page like: - - - -We can test out our logic by trying different values and checking the execution paths below: - - - -### Generating code -You might be interested in using this logic in a larger application. One option is to use the base Scala generator to transpile to a Scala library. This would allow you to use it as you would any other Scala library. To generate into the ```dist``` folder default, run: - -``` -morphir-elm gen -``` - -The full source code for the model can be found at [Rentals.elm](src/Morphir/Example/App/Rentals.elm) - -That wraps up our first Morphir model! - - - -[Home](../../readme.md) | [Prev](../../install.md) | [Next](step_2_refined_logic/readme.md) +[Home](../../readme.md) | [Prev](../step_1_first_logic/readme.md) | [Next](step_3_catching_bugs/readme.md) diff --git a/tutorial/step_3_catching_bugs/Agile and Dependable Service Development with Bosque and Morphir - LF OSS 2021.pdf b/tutorial/step_3_catching_bugs/Agile and Dependable Service Development with Bosque and Morphir - LF OSS 2021.pdf new file mode 100644 index 0000000000000000000000000000000000000000..408504e6849ea08c324e17ff1dfe64942ca3e240 GIT binary patch literal 157990 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

    {_mMr`Qm9 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

  • 41e7U6R7Lkwv2xwNC9 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 literal 0 HcmV?d00001 diff --git a/tutorial/step_3_catching_bugs/elm.json b/tutorial/step_3_catching_bugs/elm.json new file mode 100644 index 0000000..2ae609a --- /dev/null +++ b/tutorial/step_3_catching_bugs/elm.json @@ -0,0 +1,26 @@ +{ + "type": "application", + "source-directories": [ + "src" + ], + "elm-version": "0.19.1", + "dependencies": { + "direct": { + "elm/browser": "1.0.2", + "elm/core": "1.0.5", + "elm/html": "1.0.0", + "elm-explorations/test": "1.2.2" + }, + "indirect": { + "elm/json": "1.1.3", + "elm/random": "1.0.0", + "elm/time": "1.0.0", + "elm/url": "1.0.0", + "elm/virtual-dom": "1.0.2" + } + }, + "test-dependencies": { + "direct": {}, + "indirect": {} + } +} \ No newline at end of file diff --git a/tutorial/step_3_catching_bugs/morphir.json b/tutorial/step_3_catching_bugs/morphir.json new file mode 100644 index 0000000..bffa877 --- /dev/null +++ b/tutorial/step_3_catching_bugs/morphir.json @@ -0,0 +1,11 @@ +{ + "name": "Morphir.Example.App", + "sourceDirectory": "src", + "exposedModules": [ + "App", + "Analytics", + "Forecast", + "Rentals", + "Winds" + ] +} \ No newline at end of file diff --git a/tutorial/step_3_catching_bugs/readme.md b/tutorial/step_3_catching_bugs/readme.md new file mode 100644 index 0000000..4e6f1b3 --- /dev/null +++ b/tutorial/step_3_catching_bugs/readme.md @@ -0,0 +1,72 @@ +# Morphir Tutorial: First Logic Model + +We'll start out with a very simple example of modeling logic: whether we have enough surfboards to satisfy a rental request. First up, let's create the Elm source file for our code. + +First create the file ```src/Morphir/Examples/App/Rentals.elm```. In linux that's: + +``` +mkdir src/Morphir +mkdir src/Morphir/Examples +mkdir src/Morphir/Examples/App +touch src/Morphir/Examples/App/Rentals.elm +``` + +We need to update ```morphir.json``` to reflect our new module. Edit it to add the ```Morphir.Example.App``` package and the ```Rentals``` module and like this: + +``` +{ + "name": "Morphir.Example.App", + "sourceDirectory": "src", + "exposedModules": [ + "Rentals" + ] +} +``` + +Now edit the ```Rentals.eml``` file. First, we want to reflect the module (aka namespace). Add: + +``` Elm +module Morphir.Example.App.Rentals exposing (..) + + +``` + +That takes care of the boilerplate. Now we can focus on the business logic. We'll put that into a function: + +``` Elm +request : Int -> Int -> Result String Int +request availability requestedQuantity = + if requestedQuantity <= availability then + Ok requestedQuantity + else + Err "Insufficient availability" +``` +This is Elm's way of declaring a function. In this case, the function takes the current availability and the requested amount and returns a Result, which is either the quantity to be rented or an error message. At this point, we might want to play around to test that we got everything covered. We can do this with Morphir's developer tools. On the command line, type: + +``` +morphir-elm make +morphir-elm develop +``` + +Go ahead and click on the http://0.0.0.0:3000 link (note: you can also find an online example at [Insight Sample](https://finos.github.io/morphir-service)). Click on the "Rentals" link. You should see a page like: + + + +We can test out our logic by trying different values and checking the execution paths below: + + + +### Generating code +You might be interested in using this logic in a larger application. One option is to use the base Scala generator to transpile to a Scala library. This would allow you to use it as you would any other Scala library. To generate into the ```dist``` folder default, run: + +``` +morphir-elm gen +``` + +The full source code for the model can be found at [Rentals.elm](src/Morphir/Example/App/Rentals.elm) + +That wraps up our first Morphir model! + + + +[Home](../../readme.md) | [Prev](../../install.md) | [Next](step_2_refined_logic/readme.md) diff --git a/tutorial/step_3_catching_bugs/src/Morphir/Example/App/Analytics.elm b/tutorial/step_3_catching_bugs/src/Morphir/Example/App/Analytics.elm new file mode 100644 index 0000000..fd3554c --- /dev/null +++ b/tutorial/step_3_catching_bugs/src/Morphir/Example/App/Analytics.elm @@ -0,0 +1,56 @@ +module Morphir.Example.App.Analytics exposing (..) + +import Morphir.Example.App.BusinessTerms exposing (..) + + +calculateProbableReservations : ReservedQuantity -> CanceledQuantity -> ReservedQuantity -> ProbableReservations +calculateProbableReservations averageReservationRequests averageCancelations currentReservationCount = + let + probableReservations : ProbableReservations + probableReservations = + ceiling (toFloat currentReservationCount * (1.0 - cancelationRatio averageReservationRequests averageCancelations)) + in + probableReservations + + + +-- Naive + + +cancelationRatio : ReservedQuantity -> CanceledQuantity -> CancelationRatio +cancelationRatio reservationRequests cancelations = + let + result : CancelationRatio + result = + toFloat cancelations / toFloat reservationRequests + in + result + + + +-- Safe + + +cancelationRatioSafe : ReservedQuantity -> CanceledQuantity -> Result String CancelationRatio +cancelationRatioSafe reservationRequests cancelations = + safeRatio cancelations reservationRequests + + +safeRatio : Int -> Int -> Result String CancelationRatio +safeRatio numerator denominator = + let + result : Result String CancelationRatio + result = + if numerator < 0 || denominator < 0 then + Err "Only natural numbers allowed" + + else if numerator > denominator then + Err "The numerator must be less than or equal to the denominator" + + else if denominator == 0 then + Ok 0.0 + + else + Ok (toFloat numerator / toFloat denominator) + in + result diff --git a/tutorial/step_3_catching_bugs/src/Morphir/Example/App/App.elm b/tutorial/step_3_catching_bugs/src/Morphir/Example/App/App.elm new file mode 100644 index 0000000..4c589a2 --- /dev/null +++ b/tutorial/step_3_catching_bugs/src/Morphir/Example/App/App.elm @@ -0,0 +1,51 @@ +module Morphir.Example.App.App exposing (..) + +import Morphir.Example.App.Analytics exposing (calculateProbableReservations) +import Morphir.Example.App.BusinessTerms exposing (..) +import Morphir.Example.App.Forecast exposing (..) +import Morphir.Example.App.Rentals exposing (..) +import Morphir.Example.App.Winds exposing (..) + + +processRequest : Forecast -> CurrentInventory -> ExistingReservations -> PendingReturns -> RequestedQuantity -> AllowPartials -> ReservedQuantity -> CanceledQuantity -> Result Reason ReservedQuantity +processRequest forecast inventory reservations returns requestedQuantity allowPartials historicalReservations historicalCancelations = + let + windCategory : WindCategory + windCategory = + categorizeWindForForecast forecast + + probableReservations : ProbableReservations + probableReservations = + calculateProbableReservations historicalReservations historicalCancelations reservations + in + decide windCategory forecast.shortForcast inventory probableReservations returns requestedQuantity allowPartials + + +categorizeWindForForecast : Forecast -> WindCategory +categorizeWindForForecast forecast = + let + windCategory : WindCategory + windCategory = + categorizeWind forecast.windSpeed.max + in + windCategory + + +type Command + = Request RentalID RequestedQuantity AllowPartials + | Pickup RentalID + | Return RentalID + + +type Event + = RequestAccepted RentalID ReservedQuantity + | RequestRejected RentalID Reason + | PickupCompleted RentalID + | ReturnCompleted RentalID + + +type alias State = + { forecast : Forecast + , currentInventory : CurrentInventory + , events : List Event + } diff --git a/tutorial/step_3_catching_bugs/src/Morphir/Example/App/BusinessTerms.elm b/tutorial/step_3_catching_bugs/src/Morphir/Example/App/BusinessTerms.elm new file mode 100644 index 0000000..ba8ee4b --- /dev/null +++ b/tutorial/step_3_catching_bugs/src/Morphir/Example/App/BusinessTerms.elm @@ -0,0 +1,51 @@ +module Morphir.Example.App.BusinessTerms exposing (..) + + +type alias RentalID = + String + + +type alias CurrentInventory = + Int + + +type alias ExistingReservations = + Int + + +type alias PendingReturns = + Int + + +type alias RequestedQuantity = + Int + + +type alias ReservedQuantity = + Int + + +type alias ProbableReservations = + Int + + +type alias CanceledQuantity = + Int + + +type alias CancelationRatio = + Float + + +type alias Availability = + Int + + +type alias AllowPartials = + Bool + + +type ExpertiseLevel + = Novice + | Intermediate + | Expert diff --git a/tutorial/step_3_catching_bugs/src/Morphir/Example/App/Forecast.elm b/tutorial/step_3_catching_bugs/src/Morphir/Example/App/Forecast.elm new file mode 100644 index 0000000..3ca48e0 --- /dev/null +++ b/tutorial/step_3_catching_bugs/src/Morphir/Example/App/Forecast.elm @@ -0,0 +1,36 @@ +module Morphir.Example.App.Forecast exposing (..) + + +type alias MPH = + Int + + +type WindDirection + = North + | South + | East + | West + + +type alias Celcius = + Int + + +type ForecastDetail + = Showers + | Thunderstorms + | Snow + | Fog + + +type alias ForecastPercent = + Float + + +type alias Forecast = + { temp : { low : Celcius, high : Celcius } + , windSpeed : { min : MPH, max : MPH } + , windDirection : WindDirection + , shortForcast : ForecastDetail + , forecastPercent : ForecastPercent + } diff --git a/tutorial/step_3_catching_bugs/src/Morphir/Example/App/Rentals.elm b/tutorial/step_3_catching_bugs/src/Morphir/Example/App/Rentals.elm new file mode 100644 index 0000000..53ba012 --- /dev/null +++ b/tutorial/step_3_catching_bugs/src/Morphir/Example/App/Rentals.elm @@ -0,0 +1,43 @@ +module Morphir.Example.App.Rentals exposing (..) + +import Morphir.Example.App.Analytics exposing (..) +import Morphir.Example.App.BusinessTerms exposing (..) +import Morphir.Example.App.Forecast exposing (..) +import Morphir.Example.App.Winds exposing (..) + + +type Reason + = InsufficientAvailability + | ClosedDueToConditions + + +decide : WindCategory -> ForecastDetail -> CurrentInventory -> ProbableReservations -> PendingReturns -> RequestedQuantity -> AllowPartials -> Result Reason ReservedQuantity +decide windCategory forecastDetail inventory probableReservations returns requestedQuantity allowPartials = + let + isClosed : Bool + isClosed = + case ( windCategory, forecastDetail ) of + ( DangerousWinds, _ ) -> + True + + ( _, Thunderstorms ) -> + True + + _ -> + False + + availability : Availability + availability = + inventory - probableReservations + returns + in + if isClosed then + Err ClosedDueToConditions + + else if requestedQuantity <= availability then + Ok requestedQuantity + + else if allowPartials then + Ok availability + + else + Err InsufficientAvailability diff --git a/tutorial/step_3_catching_bugs/src/Morphir/Example/App/Winds.elm b/tutorial/step_3_catching_bugs/src/Morphir/Example/App/Winds.elm new file mode 100644 index 0000000..a9330e3 --- /dev/null +++ b/tutorial/step_3_catching_bugs/src/Morphir/Example/App/Winds.elm @@ -0,0 +1,25 @@ +module Morphir.Example.App.Winds exposing (..) + +import Morphir.Example.App.Forecast exposing (..) + + +type WindCategory + = Calm + | Windy + | HighWinds + | DangerousWinds + + +categorizeWind : Int -> WindCategory +categorizeWind windSpeed = + if windSpeed < 10 then + Calm + + else if windSpeed < 20 then + HighWinds + + else if windSpeed < 30 then + Windy + + else + DangerousWinds From 313653d298325202f6db252cd0e55890501cbc34 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Tue, 12 Oct 2021 14:02:20 -0400 Subject: [PATCH 80/88] Added tutorial 2 --- .../step_2_business_language/morphir.json | 1 + .../src/Morphir/Example/App/Analytics.elm | 17 +++++ .../src/Morphir/Example/App/App.elm | 3 +- .../src/Morphir/Example/App/BusinessTerms.elm | 64 +++++++++++++++++++ .../src/Morphir/Example/App/Rentals.elm | 46 ++----------- 5 files changed, 88 insertions(+), 43 deletions(-) create mode 100644 tutorial/step_2_business_language/src/Morphir/Example/App/Analytics.elm create mode 100644 tutorial/step_2_business_language/src/Morphir/Example/App/BusinessTerms.elm diff --git a/tutorial/step_2_business_language/morphir.json b/tutorial/step_2_business_language/morphir.json index 7e58fb2..bffa877 100644 --- a/tutorial/step_2_business_language/morphir.json +++ b/tutorial/step_2_business_language/morphir.json @@ -3,6 +3,7 @@ "sourceDirectory": "src", "exposedModules": [ "App", + "Analytics", "Forecast", "Rentals", "Winds" diff --git a/tutorial/step_2_business_language/src/Morphir/Example/App/Analytics.elm b/tutorial/step_2_business_language/src/Morphir/Example/App/Analytics.elm new file mode 100644 index 0000000..901232b --- /dev/null +++ b/tutorial/step_2_business_language/src/Morphir/Example/App/Analytics.elm @@ -0,0 +1,17 @@ +module Morphir.Example.App.Analytics exposing (..) + +import Morphir.Example.App.BusinessTerms exposing (..) + + +probableReservations : ReservationQuantity -> CanceledQuantity -> ReservationQuantity -> ProbableReservations +probableReservations averageReservationRequests averageCancelations currentReservationCount = + let + cancelationRatio : CancelationRatio + cancelationRatio = + toFloat averageCancelations / toFloat averageReservationRequests + + result : ProbableReservations + result = + ceiling (toFloat currentReservationCount * (1.0 - cancelationRatio)) + in + result diff --git a/tutorial/step_2_business_language/src/Morphir/Example/App/App.elm b/tutorial/step_2_business_language/src/Morphir/Example/App/App.elm index 4f29c04..877757a 100644 --- a/tutorial/step_2_business_language/src/Morphir/Example/App/App.elm +++ b/tutorial/step_2_business_language/src/Morphir/Example/App/App.elm @@ -1,11 +1,12 @@ module Morphir.Example.App.App exposing (..) +import Morphir.Example.App.BusinessTerms exposing (..) import Morphir.Example.App.Forecast exposing (..) import Morphir.Example.App.Rentals exposing (..) import Morphir.Example.App.Winds exposing (..) -processRequest : Forecast -> CurrentInventory -> ExistingReservations -> PendingReturns -> RequestedQuantity -> AllowPartials -> Result Reason ReservedQuantity +processRequest : Forecast -> CurrentInventory -> ExistingReservations -> PendingReturns -> RequestedQuantity -> AllowPartials -> Result Reason ReservationQuantity processRequest forecast inventory reservations returns requestedQuantity allowPartials = let windCategory : WindCategory diff --git a/tutorial/step_2_business_language/src/Morphir/Example/App/BusinessTerms.elm b/tutorial/step_2_business_language/src/Morphir/Example/App/BusinessTerms.elm new file mode 100644 index 0000000..1050ff7 --- /dev/null +++ b/tutorial/step_2_business_language/src/Morphir/Example/App/BusinessTerms.elm @@ -0,0 +1,64 @@ +module Morphir.Example.App.BusinessTerms exposing (..) + + +type alias Quantity = + Int + + +type alias RentalID = + String + + +type alias CurrentInventory = + Int + + +type alias ReservationQuantity = + Int + + +type alias ExistingReservations = + Int + + +type alias PendingReturns = + Int + + +type alias ProbableReservations = + Int + + +type alias CanceledQuantity = + Int + + +type alias CancelationRatio = + Float + + +type alias Availability = + Int + + +type ExpertiseLevel + = Novice + | Intermediate + | Expert + + + +-- Request specific + + +type alias RequestedQuantity = + Int + + +type alias AllowPartials = + Bool + + +type Reason + = InsufficientAvailability + | ClosedDueToConditions diff --git a/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm b/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm index bbcc17a..c82dde9 100644 --- a/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm +++ b/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm @@ -1,50 +1,12 @@ module Morphir.Example.App.Rentals exposing (..) +import Morphir.Example.App.BusinessTerms exposing (..) import Morphir.Example.App.Forecast exposing (..) import Morphir.Example.App.Winds exposing (..) -type alias CurrentInventory = - Int - - -type alias ExistingReservations = - Int - - -type alias PendingReturns = - Int - - -type alias RequestedQuantity = - Int - - -type alias ReservedQuantity = - Int - - -type alias Availability = - Int - - -type alias AllowPartials = - Bool - - -type Reason - = InsufficientAvailability - | ClosedDueToConditions - - -type ExpertiseLevel - = Novice - | Intermediate - | Expert - - -decide : WindCategory -> ForecastDetail -> CurrentInventory -> ExistingReservations -> PendingReturns -> RequestedQuantity -> AllowPartials -> Result Reason ReservedQuantity -decide windCategory forecastDetail inventory reservations returns requestedQuantity allowPartials = +decide : WindCategory -> ForecastDetail -> CurrentInventory -> ProbableReservations -> PendingReturns -> RequestedQuantity -> AllowPartials -> Result Reason ReservationQuantity +decide windCategory forecastDetail inventory probableReservations returns requestedQuantity allowPartials = let isClosed : Bool isClosed = @@ -60,7 +22,7 @@ decide windCategory forecastDetail inventory reservations returns requestedQuant availability : Availability availability = - inventory - reservations + returns + inventory - probableReservations + returns in if isClosed then Err ClosedDueToConditions From 58b13a233df0ca3cdcc5578b8943070ba0902050 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Tue, 12 Oct 2021 14:21:20 -0400 Subject: [PATCH 81/88] Added tutorial 2 documentation and divide by zero exposure --- .../src/Morphir/Example/App/Analytics.elm | 2 ++ .../src/Morphir/Example/App/App.elm | 11 +++++-- .../src/Morphir/Example/App/BusinessTerms.elm | 33 +++++++++++++++---- .../src/Morphir/Example/App/Forecast.elm | 3 ++ .../src/Morphir/Example/App/Winds.elm | 17 +++++----- 5 files changed, 48 insertions(+), 18 deletions(-) diff --git a/tutorial/step_2_business_language/src/Morphir/Example/App/Analytics.elm b/tutorial/step_2_business_language/src/Morphir/Example/App/Analytics.elm index 901232b..34991b3 100644 --- a/tutorial/step_2_business_language/src/Morphir/Example/App/Analytics.elm +++ b/tutorial/step_2_business_language/src/Morphir/Example/App/Analytics.elm @@ -3,6 +3,8 @@ module Morphir.Example.App.Analytics exposing (..) import Morphir.Example.App.BusinessTerms exposing (..) +{-| Calculates the probable reservations by applying the historical cancelation ratio to current reservations. +-} probableReservations : ReservationQuantity -> CanceledQuantity -> ReservationQuantity -> ProbableReservations probableReservations averageReservationRequests averageCancelations currentReservationCount = let diff --git a/tutorial/step_2_business_language/src/Morphir/Example/App/App.elm b/tutorial/step_2_business_language/src/Morphir/Example/App/App.elm index 877757a..700049c 100644 --- a/tutorial/step_2_business_language/src/Morphir/Example/App/App.elm +++ b/tutorial/step_2_business_language/src/Morphir/Example/App/App.elm @@ -1,19 +1,24 @@ module Morphir.Example.App.App exposing (..) +import Morphir.Example.App.Analytics as Analytics import Morphir.Example.App.BusinessTerms exposing (..) import Morphir.Example.App.Forecast exposing (..) import Morphir.Example.App.Rentals exposing (..) import Morphir.Example.App.Winds exposing (..) -processRequest : Forecast -> CurrentInventory -> ExistingReservations -> PendingReturns -> RequestedQuantity -> AllowPartials -> Result Reason ReservationQuantity -processRequest forecast inventory reservations returns requestedQuantity allowPartials = +processRequest : Forecast -> CurrentInventory -> ExistingReservations -> ReservationQuantity -> CanceledQuantity -> PendingReturns -> RequestedQuantity -> AllowPartials -> Result Reason ReservationQuantity +processRequest forecast inventory reservations reservationQuantity canceledQuantity returns requestedQuantity allowPartials = let windCategory : WindCategory windCategory = categorizeWindForForecast forecast + + probableReservations : ReservationQuantity -> ProbableReservations + probableReservations = + Analytics.probableReservations reservationQuantity canceledQuantity in - decide windCategory forecast.shortForcast inventory reservations returns requestedQuantity allowPartials + decide windCategory forecast.shortForcast inventory (probableReservations reservations) returns requestedQuantity allowPartials categorizeWindForForecast : Forecast -> WindCategory diff --git a/tutorial/step_2_business_language/src/Morphir/Example/App/BusinessTerms.elm b/tutorial/step_2_business_language/src/Morphir/Example/App/BusinessTerms.elm index 1050ff7..893ef4a 100644 --- a/tutorial/step_2_business_language/src/Morphir/Example/App/BusinessTerms.elm +++ b/tutorial/step_2_business_language/src/Morphir/Example/App/BusinessTerms.elm @@ -1,46 +1,59 @@ module Morphir.Example.App.BusinessTerms exposing (..) - -type alias Quantity = - Int - - -type alias RentalID = - String +{-| The number of items in stock. +-} type alias CurrentInventory = Int +{-| The quantity granted for a reservation. Depending on availability, this might be less than the requested amount. +-} type alias ReservationQuantity = Int +{-| The quantity of existing reservations. +-} type alias ExistingReservations = Int +{-| The quantity of items in use that should be returned. +-} type alias PendingReturns = Int +{-| The quantity of reservations that will probably be fulfilled. It is calculated based on the ratio of reservations +that are canceled before fulfillment. +-} type alias ProbableReservations = Int +{-| The quantity of items in a reservation that are canceled before fulfillment. +-} type alias CanceledQuantity = Int +{-| The ratio of cancelations vs reservations. +-} type alias CancelationRatio = Float +{-| The quantity of items available for rent taking into account how the business wants to consider +current inventory, reservations, and probably cancelations. +-} type alias Availability = Int +{-| Expertise level of renters. Important for deciding whether conditions are safe enough to rent. +-} type ExpertiseLevel = Novice | Intermediate @@ -51,14 +64,20 @@ type ExpertiseLevel -- Request specific +{-| The quantity of items in the reservation request. +-} type alias RequestedQuantity = Int +{-| States whether the requester is OK with receiving fewer items or will only accept the quantity requested. +-} type alias AllowPartials = Bool +{-| Reason codes for rejecting a reservation request. +-} type Reason = InsufficientAvailability | ClosedDueToConditions diff --git a/tutorial/step_2_business_language/src/Morphir/Example/App/Forecast.elm b/tutorial/step_2_business_language/src/Morphir/Example/App/Forecast.elm index 3ca48e0..154f309 100644 --- a/tutorial/step_2_business_language/src/Morphir/Example/App/Forecast.elm +++ b/tutorial/step_2_business_language/src/Morphir/Example/App/Forecast.elm @@ -1,5 +1,8 @@ module Morphir.Example.App.Forecast exposing (..) +{-| Forecast represents the API from an external weather forecast provider. +-} + type alias MPH = Int diff --git a/tutorial/step_2_business_language/src/Morphir/Example/App/Winds.elm b/tutorial/step_2_business_language/src/Morphir/Example/App/Winds.elm index a9330e3..97438dc 100644 --- a/tutorial/step_2_business_language/src/Morphir/Example/App/Winds.elm +++ b/tutorial/step_2_business_language/src/Morphir/Example/App/Winds.elm @@ -1,13 +1,7 @@ module Morphir.Example.App.Winds exposing (..) -import Morphir.Example.App.Forecast exposing (..) - - -type WindCategory - = Calm - | Windy - | HighWinds - | DangerousWinds +{-| Categorizes Forecast wind speeds into categories that are meaningful to the rental business. +-} categorizeWind : Int -> WindCategory @@ -23,3 +17,10 @@ categorizeWind windSpeed = else DangerousWinds + + +type WindCategory + = Calm + | Windy + | HighWinds + | DangerousWinds From 1e1da3b3ec554d465cd77e61eb90a85a13ef5100 Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum <129341+stephengoldbaum@users.noreply.github.com> Date: Tue, 12 Oct 2021 21:09:06 -0400 Subject: [PATCH 82/88] Delete Agile and Dependable Service Development with Bosque and Morphir - LF OSS 2021.pdf --- ...t with Bosque and Morphir - LF OSS 2021.pdf | Bin 157990 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 tutorial/step_2_business_language/Agile and Dependable Service Development with Bosque and Morphir - LF OSS 2021.pdf diff --git a/tutorial/step_2_business_language/Agile and Dependable Service Development with Bosque and Morphir - LF OSS 2021.pdf b/tutorial/step_2_business_language/Agile and Dependable Service Development with Bosque and Morphir - LF OSS 2021.pdf deleted file mode 100644 index 408504e6849ea08c324e17ff1dfe64942ca3e240..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 157990 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

    {_mMr`Qm9 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

  • 41e7U6R7Lkwv2xwNC9 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 From 38a56ab4fdcf182c984eaaeba537181f5b42dd9d Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum <129341+stephengoldbaum@users.noreply.github.com> Date: Tue, 12 Oct 2021 21:09:06 -0400 Subject: [PATCH 83/88] Delete Agile and Dependable Service Development with Bosque and Morphir - LF OSS 2021.pdf --- ...t with Bosque and Morphir - LF OSS 2021.pdf | Bin 157990 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 tutorial/step_2_business_language/Agile and Dependable Service Development with Bosque and Morphir - LF OSS 2021.pdf diff --git a/tutorial/step_2_business_language/Agile and Dependable Service Development with Bosque and Morphir - LF OSS 2021.pdf b/tutorial/step_2_business_language/Agile and Dependable Service Development with Bosque and Morphir - LF OSS 2021.pdf deleted file mode 100644 index 408504e6849ea08c324e17ff1dfe64942ca3e240..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 157990 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

    {_mMr`Qm9 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

  • 41e7U6R7Lkwv2xwNC9 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 From 14b3b49d4a9395cc89c802aff0a6cdbd0074bb3c Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum <129341+stephengoldbaum@users.noreply.github.com> Date: Thu, 14 Oct 2021 12:10:42 -0400 Subject: [PATCH 84/88] Delete Agile and Dependable Service Development with Bosque and Morphir - LF OSS 2021.pdf --- ...t with Bosque and Morphir - LF OSS 2021.pdf | Bin 157990 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 tutorial/step_2_business_language/Agile and Dependable Service Development with Bosque and Morphir - LF OSS 2021.pdf diff --git a/tutorial/step_2_business_language/Agile and Dependable Service Development with Bosque and Morphir - LF OSS 2021.pdf b/tutorial/step_2_business_language/Agile and Dependable Service Development with Bosque and Morphir - LF OSS 2021.pdf deleted file mode 100644 index 408504e6849ea08c324e17ff1dfe64942ca3e240..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 157990 zcmd431zc6z);COdw^Ez#?(P-Q6J}ARv;`T@r$Hmo!L8e;YiWqxYP1 zpL^f;Jn!!lWUsZ?j4|gJYmEOKW6VjRC@#ss!pMb;K=B^*4;g_4zznd_H%CU`=VwxJ zu{B~6({s?Xv@u~))H5-%2e5)31DT%aS({KBSu?0A(*T&19qb$p98~O#jDR*a4gmJ= zMdbDDEM%;WZ9vW3Um6(#K*fv%1)1cH9P|u9Z35W1c^(>5Gc$T+WT$9nWNc(-WNiTI zgpG&!{)wO$lk`$4n!enP!i4#Qpyf`4o0ABDP<18 zL;IjBZUFav7odSk+E_b)9!jzRIPbq=x(v9PG^60MN*-9YB=X1K1xLm$I{Qv<3C{ zz_N!MCS@iSJ3VWA+xrn1xG;$+Gl?5HnHd-Xr9?sPs_5z4gNl4--uF@31DJoFko$&z zOo*hJrGt?jlcXhRz~V**Hikw_PmHWh983YM++6pS>>cck^sJB(oYON#v@P11v0#?2 zgl{|QpZFJSlFM6&Kv`s10xZ?1x~2j?sUtpr@3eow-%Cp{-@&eTguMRybfans$dlMh|fWG2jqEux2D z8BdwF7md8<8S|%$x4y-T`r#bPs-|8wXnv(xI~L2afrO|E$%P7+Q6Ug(=A{lLEA{Xv zLE>@4Y0A~&O;%xx&gq@&R(;p^M(9$prfX{AD<#gA-S%6i=tX6q-kocd;y|4Kva{p-g;bnQC^)KlI$(;$PSym<)kS;Pa5V1C~ zGy*U)iP#(5znokg%plSJe$BuNx)IZ}l{UH`*ux_cCzA)d0358$AYJ7A{f31bbay|z zXWvV*F*7r%|5oe14P^%-D>YD+hccoMFCYU4NVVK|0AOKb=DBYh^d8F-Sk3oAR%y*T~QhtBC` z8Uxm=oLKYtheEd4ihilfa;P{yKHPnS)xzF2EX-jdxS{lXqK18WQV@3@OcXg*XtV^Q zFEmJLjt;*p*rRR@?3DD?yd2A(xIw;T$x;%BFNlBnR4gAN)Llj?;iJi-V2-|E@wq^7rI~A$ng3i3DeLlNI7)*+U@tR_JqzpH&+GOh1^{19j+VOSoPV(T9F^DAEARB+czS;30}`j>BZ#BuqTUK5 zbZU&FyTsAFmRxp(Bx1iMWf5sixGq5mbm{(Ui~cD>Bd%q;wi~){<8LT%pT$dX$-$gA z!~sP#vZ*yM;%OQT31%kVTk9~A)@>*);=(XzI(ZDXXv=;jZ_Vbv{4S+nh!5u6j zB}k+f#kgerFi?#4jSudSP?BUxRntV``6M+H3E-86FF!GtLS>fND*NX*5@y0stnA5}dqrp^J#ec*FSaGb60bIxksHrG@e?nQk0RmEI$dO{cRYaj2e zk|&Fd40$@9!|2}VHS20??MyHEo*=^q(+Vc-@GaxC$m2d zlX)n)+KD)5`~-Q3P(Ek7@XV&#?1U$jFe`6Xt>L7sHfH=Hn)+C8QR;(5F^XB%5b?pN zZafjeWSLEj!DcYOEHA;Oj=`)utTLu3_@Yw_wRLS>GVn~MEue#?F_typRf_PWIZMU* z`zV`jnqb5r@xS>c=-5 z!GKw&5k$+NnGez=TcQL)#x9d&wqD6qK_=u2hJLD*7g)=7()t^t(>W`PpuNR(_N``BexL=K%bt#9e1>&9Y#mv1fjgAY#7!lH_lsMqLKxjU zuwflFrN2af59FF{9)Z?3_%dc%)y00`Zo+@s0RWh zAW&itVEMi@P_a?9HoJ%HpcU7H%KycL|BmuC0W1$|7;V5$_U>nB`a6XDLBkJ7A|@k# z-{C#&tlt+P4L1;JR;55A6El!uaiJCgEg+5Vm#L1nww6X# z_ki)2WzIt{f13Y4$anx1576|-xc@zR;bG?Z35~M+f<{@nnSMv3?Cd|G7gkPAj(>+< zo*3!f<8uHT+i$>>o&BNsZ@?5(8w6xPaEui+w*W3y?q7i^_XDE%W%~YvO#hwGfiSt$ zUm?pM)BRVn_kf+4ev&<|-`2%HN!Ra4R})0|J?Qya_8z|Z!I$4L0uZuztr#_agXbm&DJmlK(3aeCXxJP=8kee~|Hq2>#3P|Ggys=j)=MB$4I+1&)63 z&HOUp|3w`AzvFgc{jOa98T8Eh^Sk-b@{h^+d-Tl7`B3X8@SLb^G0ThoVcLaNbe$uqQ!r#&LIOPES5?TL!g$=EWQog8qP z?%2IW$XpGEG)cE7p%`v8MJZkxnc=>4huPsyUGR|2*5- zWU`&@2qthC7IRO74&P%9h zsk1ya!m7Ae8din+tJMq7piJX0b}|K&@;nZw4G;v2rL|9KQ0zA8Go;6sN3B;%inlQ~ zcAypI8zLC^HekFp*X+K`Ul;OV$DUv0My&L9 z2rdzU4oe|Jx>_91(4$ zEqdA$i50)Zx>J(KSj^3cy6!lfX(-0oP~T`4V`qeXE1> z$Zn%?nPBSOo%twNzk~|`#FFFJDWxT)8}{Rtds=r#l27nTDe&X$8Wgc*E67ccu?yu? zg`nzRh0Ii^Nu6uf8UP{QP3X{&8fd|o!4Il=6*#l>ULiZ-d))YYXx)U#uBZCJJG~S$ znWf1fFW2a+&|vX$#r{yzo11B{8H6i!ycu6&#%OS)Pif_*u<-X~idu z#)IMZIe7dU*a$ko$-tLYg$%dI2hU#7{UzdgaLN7<@CSAGfA;pXasfcU_iN>U>vsKP zMa=>7R(@Yw|E3duUSx9u*nTqsTp%-hUkv0WRaekAH!`?)F;$3D=RbSeYHQ7$@+778+<8@Cd?79FRM=~EYHuS0B9A|G$W)7 z^7P=06eJl)QM>WPUk+)n)F)mQp^| z7sPVq&W`rPmc(C0))^;5_cL5gQ6$XWWuyQR^1_X++4SC5Q^53|YlSV)w2|X-qcN{- zSPIf9P<6U7YwGBz5p^|8nNpI>$&S}pUFxD5O%3j;0Z9-ARN(<4J%iX<8?zBvQlx+- zue+|SIwQ8Sl6^qp7=OcS4uQv}RCO%!Jp#P$Pay4sA_Fy(aLk)G6n-;a2%rbZuMNLE2jo)JGI^^v{)#PVS7Cx#ABt4d7foak|l|vMY)((AO1ejm|>) zwEK(_uhG~`U{%ZMoy=#;%XCxmYL4gL5`>)s^}ZUz6bqrYTJzBbB07{QN?H~@NHtuc z+5*+mjI4cncM4rW7b{!VHPl{4&%A^lr)xWs0fR`#Z1Hf75o55m-0;|+Ti=8QM+StO zpYRfRP!kNq&v8Vf_6ZBvh8~A`UB4qpU5P!N>Loysb@Yz4&Hn;>T1{O*x3R8>eOLba z4G_1KU|avWY=#@L98K7S{@LttNqkLF`OzG1OG5d#rUQXpO}uCL@~{O50?cAvclMy@S4b-j7gpBSlQM{q+1;CSEvu{coJ4`>e%+c z9eZ3u8XbKOu@?eGZOG-k^0-`N(i-H8KUI}ugo+)J5;#j_$E(c2c*oC;yAp`bz320N z>b5~shE6LpeKquWCvv8_IB_a@Rny92+9<+Lxk=wmR(q?Jf|D(=r*wR_XWQYHIYj`7 zqZK&+XaLAR_MsmNRf)yBuo zCz?<3CHT=1^5#sx^pzcaD&0V@8+}0*j^9&QW~eW`d+eN7Vu#g2L5BbIl@**14?Ui^ zm_bY)1S;=3b=}rV5=-mhkuUWttzaJ`EyYdZZ4KX&TTt z+e4g=@QCXtTqLT+_IvB!?N?NFD-CBmsjmXpIN=Y9r@8}>*6d`I%?jR~LVy0lP<%1DhiE={3^RKqVM?&u`n)Ke=@*U2n)x(a?g*On@|~Nx|!3DjQ>%e zRY3pH#QMez((;XUpioni2`uiSCn`1p`EsIeU%~8V<~XUt{KSd!%cDwE+1Un{#BBl=M_M;*qu=Gm2($|$65h10ecBoKk{H%%o^wG&)oKno_?+w4XQTp z9G~5^@15w3ku#})KX*_A$6*hk%w0;>k3C(Y6R!e%#;~?hj-PeFlR9ElFhy4M0q)

    {_mMr`Qm9 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

  • 41e7U6R7Lkwv2xwNC9 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 From d3818976143959454240ddbb23206d13b396d4dd Mon Sep 17 00:00:00 2001 From: Stephen Goldbaum Date: Thu, 14 Oct 2021 12:24:29 -0400 Subject: [PATCH 85/88] Added tutorial 2 documentation and divide by zero exposure --- .../src/Morphir/Example/App/Rentals.elm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm b/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm index c82dde9..737e84d 100644 --- a/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm +++ b/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm @@ -27,6 +27,9 @@ decide windCategory forecastDetail inventory probableReservations returns reques if isClosed then Err ClosedDueToConditions + else if availability == 0 then + Err InsufficientAvailability + else if requestedQuantity <= availability then Ok requestedQuantity From d8c8e65295d0788235688ec8fc853633cc41e1d9 Mon Sep 17 00:00:00 2001 From: Mark Marron Date: Thu, 14 Oct 2021 13:59:46 -0700 Subject: [PATCH 86/88] Cleanup for demo flow --- .../src/Morphir/Example/App/App.elm | 14 +++++++------- .../src/Morphir/Example/App/Rentals.elm | 11 +---------- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/tutorial/step_2_business_language/src/Morphir/Example/App/App.elm b/tutorial/step_2_business_language/src/Morphir/Example/App/App.elm index 700049c..2f954a0 100644 --- a/tutorial/step_2_business_language/src/Morphir/Example/App/App.elm +++ b/tutorial/step_2_business_language/src/Morphir/Example/App/App.elm @@ -1,24 +1,24 @@ module Morphir.Example.App.App exposing (..) -import Morphir.Example.App.Analytics as Analytics +import Morphir.Example.App.Analytics exposing (..) import Morphir.Example.App.BusinessTerms exposing (..) import Morphir.Example.App.Forecast exposing (..) import Morphir.Example.App.Rentals exposing (..) import Morphir.Example.App.Winds exposing (..) -processRequest : Forecast -> CurrentInventory -> ExistingReservations -> ReservationQuantity -> CanceledQuantity -> PendingReturns -> RequestedQuantity -> AllowPartials -> Result Reason ReservationQuantity -processRequest forecast inventory reservations reservationQuantity canceledQuantity returns requestedQuantity allowPartials = +main : Forecast -> CurrentInventory -> ExistingReservations -> ReservationQuantity -> CanceledQuantity -> PendingReturns -> RequestedQuantity -> AllowPartials -> Result Reason ReservationQuantity +main forecast inventory reservations reservationQuantity canceledQuantity returns requestedQuantity allowPartials = let windCategory : WindCategory windCategory = categorizeWindForForecast forecast - probableReservations : ReservationQuantity -> ProbableReservations - probableReservations = - Analytics.probableReservations reservationQuantity canceledQuantity + estimatedReservations : ProbableReservations + estimatedReservations = + probableReservations reservationQuantity canceledQuantity reservations in - decide windCategory forecast.shortForcast inventory (probableReservations reservations) returns requestedQuantity allowPartials + decide windCategory forecast.shortForcast inventory estimatedReservations returns requestedQuantity allowPartials categorizeWindForForecast : Forecast -> WindCategory diff --git a/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm b/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm index 737e84d..5f1b100 100644 --- a/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm +++ b/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm @@ -9,16 +9,7 @@ decide : WindCategory -> ForecastDetail -> CurrentInventory -> ProbableReservati decide windCategory forecastDetail inventory probableReservations returns requestedQuantity allowPartials = let isClosed : Bool - isClosed = - case ( windCategory, forecastDetail ) of - ( DangerousWinds, _ ) -> - True - - ( _, Thunderstorms ) -> - True - - _ -> - False + isClosed = (windCategory == DangerousWinds) || (forecastDetail == Thunderstorms) availability : Availability availability = From 02b1029f75fcee65963e8d51d435c473fd7e10c3 Mon Sep 17 00:00:00 2001 From: stephengoldbaum Date: Fri, 15 Oct 2021 16:10:15 -0400 Subject: [PATCH 87/88] Added more cases to the conditions decision table --- .../src/Morphir/Example/App/Rentals.elm | 21 ++++++++++++++++--- .../src/Morphir/Example/App/Winds.elm | 4 ++-- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm b/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm index 5f1b100..4158878 100644 --- a/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm +++ b/tutorial/step_2_business_language/src/Morphir/Example/App/Rentals.elm @@ -8,14 +8,29 @@ import Morphir.Example.App.Winds exposing (..) decide : WindCategory -> ForecastDetail -> CurrentInventory -> ProbableReservations -> PendingReturns -> RequestedQuantity -> AllowPartials -> Result Reason ReservationQuantity decide windCategory forecastDetail inventory probableReservations returns requestedQuantity allowPartials = let - isClosed : Bool - isClosed = (windCategory == DangerousWinds) || (forecastDetail == Thunderstorms) + safeConditions : Bool + safeConditions = + case ( windCategory, forecastDetail ) of + ( DangerousWinds, _ ) -> + False + + ( _, Thunderstorms ) -> + False + + ( HighWinds, Snow ) -> + False + + ( HighWinds, Fog ) -> + False + + _ -> + True availability : Availability availability = inventory - probableReservations + returns in - if isClosed then + if not safeConditions then Err ClosedDueToConditions else if availability == 0 then diff --git a/tutorial/step_2_business_language/src/Morphir/Example/App/Winds.elm b/tutorial/step_2_business_language/src/Morphir/Example/App/Winds.elm index 97438dc..0960495 100644 --- a/tutorial/step_2_business_language/src/Morphir/Example/App/Winds.elm +++ b/tutorial/step_2_business_language/src/Morphir/Example/App/Winds.elm @@ -10,10 +10,10 @@ categorizeWind windSpeed = Calm else if windSpeed < 20 then - HighWinds + Windy else if windSpeed < 30 then - Windy + HighWinds else DangerousWinds From a8d349353aabf3868e56f8b8568fef7cc9ca9a10 Mon Sep 17 00:00:00 2001 From: Attila Mihaly Date: Tue, 2 Aug 2022 10:14:48 +0000 Subject: [PATCH 88/88] Fixed broken links --- tutorial/step_1_first_logic/readme.md | 2 +- tutorial/step_2_business_language/readme.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tutorial/step_1_first_logic/readme.md b/tutorial/step_1_first_logic/readme.md index 9b8554b..974e84b 100644 --- a/tutorial/step_1_first_logic/readme.md +++ b/tutorial/step_1_first_logic/readme.md @@ -69,4 +69,4 @@ That wraps up our first Morphir model! -[Home](../../readme.md) | [Prev](../../install.md) | [Next](step_2_business_language/readme.md) +[Home](../../readme.md) | [Prev](../../install.md) | [Next](../step_2_business_language/readme.md) diff --git a/tutorial/step_2_business_language/readme.md b/tutorial/step_2_business_language/readme.md index 1963b43..b2c1f8a 100644 --- a/tutorial/step_2_business_language/readme.md +++ b/tutorial/step_2_business_language/readme.md @@ -7,4 +7,4 @@ An important part of writing business applications is ensuring that the business sharing the same language to describe the application. -[Home](../../readme.md) | [Prev](../step_1_first_logic/readme.md) | [Next](step_3_catching_bugs/readme.md) +[Home](../../readme.md) | [Prev](../step_1_first_logic/readme.md) | [Next](../step_3_catching_bugs/readme.md)
  • K=w7b2R;kQiK>1Jgl!Q6)iv0v2p0<=KY>l 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 literal 0 HcmV?d00001 diff --git a/tutorial/install.md b/tutorial/install.md new file mode 100644 index 0000000..b0fc97d --- /dev/null +++ b/tutorial/install.md @@ -0,0 +1,29 @@ +# Install Morphir + +For this tutorial we'll use the Elm frontend to write our Morphir model. To install, ensure you have NPM installed. + +Run: +``` +npm install -g morphir-elm +``` + +Next we'll setup a new project. +``` +mkdir rentals +cd rentals +``` + +Next we'll write setup the Morphir project and configuration file, morphir.json +``` +mkdir src +echo '{ "name": "Morphir.Example.App", "sourceDirectory": "src", "exposedModules": [ ] }' > morphir.json +``` + +We don't need Elm, but it can help with other program tasks. If you want to install Elm do: +``` +npm install -g elm +elm init +``` + + +[Home](../) | [Prev](../) | [Next](model_a_request) diff --git a/tutorial/lost_knowledge.png b/tutorial/lost_knowledge.png new file mode 100644 index 0000000000000000000000000000000000000000..afb314f037fc9235380afd17cfbace46b4a63389 GIT binary patch literal 17531 zcmafbWmuHo6ZRqkN_Pt=jf8Z%gmia@w1DK&jndsnu9DKyA>F;w-LZ5x2=9Zx|NDM@ zKLFS6^*nRVnR8~&%suxIrmQH1fl7)B0)a4Oq{UT1pl1po5CYDNXTUc*LeD9HKL`+2 zDKSvl2>A~1;kl)#f+z@75rcMbj0Ajs=^(8G0f8_(pMDT}?SGnqK;qak;-c#Ah6l}P z-Wrps50ny36MHk^+v*{6g$z@J@^Dj@9JSAHr*M*<<-B{4%Csgy5wv1@LlYRQEbTA- z;$vyPNq@o)eP-)>q`S9xw_i0vd$$jnzsrE% zd4TI-x;EuiFaeAA@I^0!%0>hbD3|)EdS7pP;&V}>@0r_9?{nd-hdeXBoR}bDSrsZxs zd*)nYl*wgqhu^-NZY0kmbAY}44(CZ+;SY;5!rk%mbj^I1E6vRJwf^#77S=A)be*Cf zk4l$qqSsj7KU`Ye;-5Q8pEp!v6^9A2SL zI=mPR!!Hp6W><%a2>S-8k%1d%SanazK$7YwMw-byu zi(L3b@2|J!=54GQnR)cm7Y_U92=2|b{b2|okrH%+8(upYjO~XFL%=+B<;i% zX0K`eiZxLT!=ObM!@#4!oYF_(X$cM;MT=e<3;qanWduHgv@UzAz&uw1>20(apyRii zeebjFEtNOD|A`WH{(j8w7SZy`(KNM{9XRWwA8!|CP0^|k31k}%Z-!;L?{S|dg~{#{ z?L1k1s!}{i^*$tkv>o zUxO`GJLB~p+izuIZ}U_?k3`2H9dop8&_AgsclsBqtxQDbQD7nW_Crf9xkG{0eIDUk7m|e|?GLEEyKHZ{FzitXH)UFnaPt>|y#*h*w zx^18gKmMDn>N*4`S6^HrFt;D(sQ-zLD^gd9=z34EAxp|AEV2S;uRAve5bW!bdFLyM?wMMNfWR ziWob>UU9WEMROF}v6~WtG@^CF|3?j*G|Zv?mFYv+=4~H7WlB3A zKHy8~7q%eEFaH0#IY1~xHURgY;x}{34JIBa&reGoQ~iP#Te5yVnfrO9XtA*8YrR+i z(RwzT+SC4vOgO(feAvD?yx>1*ZQ;#@A@L`FfT9V)1#)3w=CaS%n5+E1u`DqfPK8;m z2g(~W7Zl$hW~zTv#4q@HuDesx!{{AU$&G=cibW@b7YWl=|194-WAryhC9VH4zJI z2U|**_sh)wz@LM6y-D7ZWBquYVa4M+tx}PecuwPjy#c8KpDh(SaroH=cNY2~dMh^O z$ZzCzsM0-24a_&!xXSk)o(y!Ibf#P^2oIzP!Tlt5%BKi}%hRJ>^0&@>toL7qSa>{! z@%W5r;|>kgXde0%-jVmGcqULkZH@^1JmtqLy9?@$4dy^Hdl}!4fjost;ByP ztiZ+gYKw7k5P1(1PB!b)Mc%whp8@NiiHKvo^^rS8v_bWV*KDgMgzQMy66Sq`QlAJU zduKQ58@&p0dw)l6@Pm1&v?;uDLQWvlY1n23#ibGU5-Z=-rHsLHCVlcumCpV~UqYfg z(`_l0AlUD=z>kTI&E5{PS%eYL3Eh{vX5o~*bX`X4Ru?yoCPVuN<6d`Fu86?t9TqWVCUH z0BVz+@4?2DdXo@=3;3E13#g#ON*k8%F(MDE)PnEb0o3=FQ40msXT~6owqu(}j0iZe zzG1N2xB_p5QMbtB!`}u0kcfpCW?hYZ9q*XexWq>yGGp)PUT20cC_l7&HJos zi_H28k^NlL#fj8+8YD)LVx4c%h~BKONRbso=ndoW-Mu{+-#U72;qm$5Q;-MSBEr$B zvcS;707+{_bA_$OwZt{nv5+wbt7SdJM|2a=gXyIn#{5(IVO1$c>eEfI&1B3s*DKMS5X4hfG($kDM_JxlokdAx}p>@;FTWI*)uX z8a9ehuJxuwr6<}uCmutdfCqCzmbU$hPaICSoB)#FlQd}=T=E#E?6xrq7Pe3vvr3&t)uzeEHN4+Rw_WsvQML?X(~e#h3lk!abgobRj1w0Lvf-Mz2Oi_hlH>H~fJ;Uax6js+a9iX5 z_t=7@bO?1^e*^K8CB1}tt%d!3l!Cr9e)c~p9sRJN&QjRuL6kWALWL{qmL_oH$Ig4R z8Va2aaqfQ(aNq$^1;y6Yl%W1LuG<4l;S;oYJ$24nKF6;*mv|hO(2gi)z0N5i+lH+` z0b;~uF-IqXtel_EY>cxpR&FG(Ib*LknwYHo{FE>{eBveftqkmTHq2X9h14+%^4}P5 zZm~a+w5x{wutg5(G zh23GmCuLZ>tUOGDIhDHO9M>bc(c}EWS8eb)vZTh?gl);t8$C(GU+yG%gOcivxBB%i zZ2V-PSb0T1Mos$BeTAKEFzdQP2XOqSI2v`_V`jStH`8C;=o=IdyN?{ds}RU@PSiYO zUgbTNeMYx&!N3Vlh$h~L-0v`}-QHhXq=wk(^N0AD-K?paXJ)Yaq&;wdX7iPmgYNC_ zn&_c@kpqEnqfTqhzq*)Gzj}%Ox=Ef7dZzM`<|_eC8iQ#9TMlr+v1ZIy!5Gz4@DT5_ zXcmLYwQDwKlX_$C*GZb#m8=U zqVThgsKZN;h?vzpamT7Rb+`4Pm6?+`A2jEW!ujGDg}SY83QAlHzldI)%ryu_KRyPv9S=?(&c97CE8ns*xO;%bw_ zG8M-Y9l!;i4pn>hyYJixLYLsu-d^t_VLH3`!J^WBNyvom%c`C)1)~gQh$mGrPDOm* zcv8D)sHZQNnU#4^MJY5f8U){JB@s2alok;iqzf3_kf)neaj0MGyZheFFB^JnChc2^ z>N}50pkPsKWP|+cvF(ZvlRC#{=1T%E8r1u7v2LPxI+GN^y}^XRG6{5!{2-D2*eIl< zDFxZRZ5HCX8}e?51^x@DXdxl zHxr-`c5LLQr&OSNzg=0#bQvULD29QjR$ss!XlBxFpG;KB=P=9b&{zo#iRc+9Fp&JP zQ_IDk+SZ$pUB9{wE<_b`OHQVXjfjkXy%xb%j}2RjXfod z10%yam-)TkhwCxI7J6tK0VotJxFFD*FLjge5$q#~faLYP+dhr4i$=r+1)=PZqGU6I z;rt`>%SO-JG@&g>O-&8pBt8R52hO~%=FU?7`D*df+^=~&2lXpwQB9eorFpT!v3jwS zJTrLFQJ*Q;?eXu`f7WltykYyAcR#p}HmfY5fUig`O{LWBx3Ux04gbm4558zXE`HD# z#(II|G4#6SEc58sKc8VnMK6qX;80AtvsCqM(Es`Pl83qw3P)+Qz`~e^CmTAgVo+6= zKh^B@dAcbq;KO~lw9pndk)iu*K|QJr43S`m+rh)Bn#PK_zIoS42a?z~&(LGI%A{u~ z4y}8%k|HX5lxk|vXxAgAxVg{VuwRfr1I1vE%u64^HaXhNg=(+4*~=EkUZHKu52dL_ z&!@X;)X>=MW|VwUJ&9-^i!}TEfv8E}pfz<~KnO^sn%ca^yO(&=nr|dgLj>PkMI*E3 zH=k{f^&Cur=gJ*}I?gPHdqamoDqn}ZMcwrdxthBxApoKxDNI%GXbXZOwk=lMqOUs8 zaPY5i12cjdYWWRDqL!{(Y;L@S<;( zMWU+PoWV+q*sv~11FI;b)%wctcHe+r$x*KhOX+suaPjxx;2;D7(JIxwfD1pSsv#T; zybam8l*|_A(?=e6s{e}a|Ji<{Bd=*pdq3O1-4p9<1 z>6*2K4zDv;RX(gzKCG73Ev*TGnnJ@@zbIg0qI8Hj#&EP!YE8%5GFZ9BI~5kE9rsu_ zDgr6DkR$CWi~O|HuKB05)m!6oul%niAq9(Ghzl>Rdi@7aU?;+XV?^^pS6I)ER(Y?A}K zZU1>)TSLXf#01z5>&7;i-DjRx)s0VePxtdAhKSfnJnUe$D#Vs0w5dsm^|}8%VBSqp z)t?=JSiEBckkJFkINgu|WGuO_V*pQ(@lBPHrQ>>#W%GjKBYLx722TC7|6Q<*flW`r z!A#;WC0PYOqwUX{TK*;m`h;Uzy-n!)&!9T=k_Tp1^*%Ca>%YcrXDN zTziC0F=@T>mlFq?z$9gn0V+?Ci|rEBSq|o%b}wD}& zs;fDGLvRrfuMs}RM8S5;@&mUq>XSC--Bh?NqVg#8?n(2M1w4p}P_qFHOUH0OgUC)| zCp@L{l&|l%xg^qLp<)45%+gx?Ne_j07epgSksMGU$6jwmbGb@9)77bRHl49s63sK7!45V+3e*TvJ z)wkP+w#m5R02su{&Ipe{fg4S6PMe)>UY5BUK2bDOmPkZ}&M%h_0g6b1MUrk|l{*;| zn$!rA7VyF(SA|Uu5hU~nZkrEpvFLX^OC9eElADE^%v##rmy2U~(0Vp16y7DDmnR>} zpH>*jEP6h~vLiwfQ)TBRD?FW!H5Xgr76rE)NkH-4wY7gIFVbf#IwC&9$WKJC6<8%> zRIbn&v&Y74i$2xzHRsAIxzRPE-~5abHXCY#i%5#m70jlO-9Z{ap#E&Y3%QIB%#`h0 z0b4vtmzTle>NLY1#gn%?ikqVvN%URDFvc1>695Z9r`AW8!gR|G8wABN_m$0#YE9rdiz7Ljgs_+`xfM-*@PF3zl331)}F^>R78B6;xFJ^Bh z8wSdKvD@-@{piec+rV3$LkMQTN&@&1D9uhCH&G z*E7ysa=Sz?V^uSkM|{z`Xvn?YB1)KdM3a2!jhRcmYQo1yF3mkZcNr0#-oa+sdG%GJ zA(TZ_?y8Yam>#U|p`a;RSSf(ZYmx|Ppb^`t?vUU^S1cY#-`|gq)@4B#ih03M3E{8v z0kn|gV}}AoG_=r)vimH1%(DWX*;wPg26J*prws3F@g<~BA|LawDDfildapvt1UH)r)jZ%EtOxY!I)>k1>1aR&CoNn3r4RoQI<=jX$I@84h?h zwh0)4IRH6GU~lg8;KdDxg4PWVP<@hU(peD9Dw7*OVu0}cZH5)3G62Q^`0vOFcVeumQe8xZ{JVW_a*#7`9Z5j$)Roeh~di@Y>d2@O8-D zw#(vDV&4tunC@g&9)!x+!1FCr!Fyp10wn4?c`1eiQ;DDv;YV*zG+)jYrVf7cS+YDe zR!~-+(W<<$(|Y(hm^9p=N3&vKYE>o`b}(O8{_9t)0mIJ5=H@8Uah^X7onV5y3U%@m^%JG?kfn9$je5DMK&v;NzQz2A+V#Oh}NV&Q#%(p%niI`GT5 zv+t}vJnP$2a)pJ9nz~Tg{-3~7V`wKSL)f2c*_7LbGng<86E6;Wzd@grl$6e6yEdM^ zF;S>?F4-A^1>b$cVNbymqexR~)6HD>F@ZYd?pT8rQ6w!M$c1*dH{5m)DTouvRCCfb zPBd8-y#}DGtkB;Nw|lc1VvY|t@EB6=@CZ6|&xo@T!I)(Z{Aqm%1`$#PwiC75n2HcK z(vFfBT!q5RWOAn8lk!y+G7oCV+2oD9mm1NZiEYkkL7!J^!Z|jK)4YuhRfWHQH$`Kb z(cNW87Z527V@!Dt?70>}b~f93rszBtCYsbVH%a?zYpR%JIlK?gcgFW=eh_n74At7o z%(0jcCbRJK^ZQ+B`E?(?>go!^YhZ8?neX|d=WtZGJ=d<;4{_2_LPw&iijE|! z-~fxF*n2Y=D|PMQSkQH>LO?whKpz5PVcgf(+GFiF6s?I2yfuFW=1!v-lMf~{@D3rA ze)lKBk7vSFQO{2zjPAb-(#AD=U7gN{tmVXj*PPnGt0whVa3=)NSmt{a%!<7C2C*6~ zv3F}ElNrSD9}J&Wro?T&=SL46%Qf%Y*(r~v=T7PxdgQh`poG|c4&<0q3t=*pZ{BwM z;7W0$A3ptok%3`*vY6<%6t>@WCuO~UxH}NbhM<#lXyJ()8d9VnuFmKZdJ3wY)>7XO z;`*Zp43~W8Dz>gzqNW$C5iA|aHS03WbpA{sEmLQ0r_83{h4%24C1uHiBDN&pd-#Q5e>H3`o1B&A( zy-)VkuujcIDm9#DTSY_79ie7H#qawIb?D~}(U}8zT+p-0lbw8q(Q|%H+YcV5#mplY z1@hJjjziu3+`RAXe-zX0v;>sW4^DTkLtYDPw|6tccaEu&#tj*y(Yz|I@V zV2AqJD1BuANO&y=|4?p|Ad}!!W>a1k_xe zHrpm(Y8cQhrIsHXBU}ZsPgQx%%8u@M*+6FB6gT`Dd&KqqS7eN}x0r!doXGT2z0FI{uQX&j6992aqGgD8sF01t$)!G*1^9w?u_i)dFM8_m1!oJkT*as)p)5c=4+;RB`DUHH8G>)f*%xr6(P1v`Fnmg*I19`#pC0v&<8W=v9Z7} zm(RDlmDkvn79y91g5v+~DIv4yta+&9C@_Z&9wEMN(7xPvxmeH_?J|>lvV-X5kA1PP zGg1tXdpVz+k7Yf^E%o$+auP!@ungyp$T8^(DJxkfS+z0?vMi>ui>A>*zm%~TbJw&u z_^?z+osY}IBBD5R-(Anin7&X%Q_eVg)6nq7i@{ub)8TifL;^Rm6LiTa>!&?VMlNd= ziQHK^5jbq2n2+IUPOp;`_i9}cvI*73#xe`PCl*=rfA;=GMSiRA<#jjR`rvYSf$>J1 zU)^`Q%mDBg--P`hfXf$%QI=Z$9$S3wg6IGED@COKK5UGzLEktXWP9A=ZRK}Z5oz4o z-Q8V&xU6&bcmjRKzqoIuT3*Y4eOundQHZ7*(ljpJYRIcJ`lu;0Q$*(ejDV(lhd=et zfU(Id$|76X+Rr8?N!i`0-X)v2P}8~uU&(-1_M+I^kV^C;MEYrVAto@K61w z*n-f&6PTYJHF}DM@^^&h zaMh12%RF3|ugn1hU05d5_qmuv!6aYVrz)#o3y)xJ+#ceDZH&EdFX%?svP5hYsw_)O zBL#ED0(ZC(WSCojg32Qu9@noz^fAw+)S=$|>qRSsiO|^w$$uiJgDu`un$YWcepZ46 zr7!J^!*WOgzagSLe?oY2B7NL21N4vg20w{x75^5t@-9AF z+7r0Yf@n}~TSu)w7E_Ks+DB>*G`kMr36K7?I1(1yvUJf@3AB{m%R%f0Tay1=j|CUl z5fr5dD7-4&?4cGY<}8#QA`4y%atvpr9`#%1csIBUN&clIX&($b>2^pJ5O{Yf@?x_q zjw?rZp*fO?G&zpE5TM&!WUV@^G2C4p!R-v4MkR>2xsgJOhAt20srQ*Ebx4*0{V*I5N`Ho_!5 z9-kuz5X)s_R`bczRqCXHEps_5&9)DGJ(I0zQID$69pX2i@RqBWF?i7No>}3G3AGHI z;1yAFy5;L0Uf=T^$|!Pvr=f4`#hRsamF9zw4@ZxuR*qjv4x6u*ii?ZyHrf1c*d9;W z+?IW=hIyBV>?y-r?>E`JEf~H~$~#FesMNhJ^$D@hb?@<|*;hgZc?Lf`zFvQg;%VRL zkYg?y(GDpR>f`HjCi4) z%t2E8a)0)$9fguyz&X_DcjS6+jNkdF)Ni+=t!bRq7~5X}lrj>^W*;*ui0=djb%-8L zK9nuDRX=)=hcc-gPS&y~U<}dSJFwpNI>j1Icn<8o;WFLKE;&(?NX_cW(hi%0KdcKs zd=+%>4 zcDsb+q<&^;9VPzwq`{@fWg5tj%#Wv`X2j7Fn!bcQdb2Q=C)eP{>wYmANw$8qm2Q6; z!W;T-3g4eW`B1|5Ll0h4s#o=!M>Y0Ysq!lBFM+QGmK`NL3()!h%=Evm_5Y^Hh@02B z$?R3t8$eI0a=idVhHUjK&kpA>_}DuCWbvs6)IB=Z45c&J>SVd;YfwKh85^+h%nKOGYY;>vf) zuy#EJsB6^pjr9#V^r%qajv#j1MPB}U=*G|1$>(#+#T(ELoVGy^st?Mreg#W?igJjU;y+L9&+3w-@OJKN-VrJY(bvTtO>RVd21%^zU_8#x0(D6sKpx>1vP zMUDbbsE1ouh4x6nvRrIGNyeeI#AP-Xu|KJ;US~ZJ0`=Pd5yD4Js;jG8jr85?>d*%W z_{(*wg5_u;Yiy>$$8Csn)ID#@>N{o$S2zCX2O(I3+_Gx}ma4ReL}_^6SP>GG?q;nV z%SD}vTqn%}%gJ|?P>IT`{tAJn3;TgB#Sw2%p_I>4q={FP&3DENlz_@AQRQ$)5ZaA5 z;t0r2M8e8U4F6|0MP4a!N3x{qYbsE{akvqu(H}2c1||*Gfr0*%nXR1y=+@bX3j1X+YYJ#?ZtmK)1KWcn@#B);paL=|LGn~3YBKWY4zjZ7xAknCZ2|oANo`p4I8m=MTQm z+GJZhQacWMlqP@M_eDpNI4z`|blM$x-(Nc(j?l8TT)(lL`Knaa4%GU;e)>?{w*Yt^ z{ThsGa<8V#IUDb^+?-Br9!znO_w>{#s<8ewVqcY-+;O8*GK5%XhN9nQO&LerHZ4nG zAKuHREtp0atxrW#x_Vt=3E#*5hRFCdmrimjTyv2DisBb^-Cr4BYxjU>_G-*iF-7D_ zu8h-oUGA@0dv@yiKSs%UB z2-UPEQb0XgF{CmeR_BK96UnBzH#Z?t6C<89yemmy;s@Wc>I?Qg^(^KgjwbVvzKjUrcq?P z(Z3-t3+95As(Jx@>AKpzEoshlG+V+u?fo^EjH@e80UZKI4DmX}ruD#>G{EX$B}iJL zpk|s)gt3$8V}QN_sWyx40(iDA_=^zjXlcQCpZqOfG%rm&rd0Oj>ZL5m^;JYu$p0JU z>8$@7B&W1AN~sD3N=L$B_M(6;v8>aiJIW!wAohmwN)?$f$1AR{Ezzr{EXWH1n;q+O>d;V1wR903d4+OmQf(1@=MTb0_a)QME}4 z3jTMV=8vu7DIbnQGSc{TH7i_jcKK5qhwD#f`4%kH12S(i_O*X|%Yj7h8vt_Z_V!u$ zd&)_I5fj)*>NgGLA~tRLin(R9mM_^H+oc|@Ern@L{x z8-s$~&7}cA^Bsnu9PDH!=VJ0!?P=qeIJmK{PJD9TE3F#=-+cxP<12x0XowU*aVaLR zlUek7Bys|jk{29%UuBTGMIYix<~5|)=e}qKVj{V%1TSNnp2Z+2!}N?v~m{x>+o%cZdS zfkL%WTO2Z$d!8Tl_ossm%8AD}xZyhd+@jhA-;F0fg2s?2QnMEn&u~$I!cx%~F5c^# zNR~qz6}o4?qq)7W9RNemAbr28N#C%OpI$HC@x5+^7cG#rzg;&IwM;BNl4YCW(|nco zK11_~jv@lcozhSu2!C+j3H6t3QKeHsm?!RgPNl=!#c~IWL1U~EMDytilMLaMG6#q> zokChyAwY5r1&R_;`t=j`Ub6V`IIp;xPXljj34hz^>HvVcxljgiIlZ5z28(7A%#diY zNSm>%%v3`|!|_SMks;|HR5dkw05RBP0A1L$ypsOlVbyGzbR_&Jdu$V}d#H7PVfS|U zUeOS+mSzBXTga4C%o6G+A&IO#oCeSfn-LJm|C`m3kZzSn1nHmld;%IKY`gt8=8hF> z4UGo;U~wOpEH;S|^Bfw!u6p2(({SYWvujZ$Vor zq8Rn!=s`Ao5cyY8(f$I>(0(+V%0j@#q5j%U4f(pLjLb{kkPVpM1E(c0ayoJ2iurh6 zSJ&5mSeS8YT9l5)Nj!r{_fS;?L7B=_nC5rfkl2maAyF=~kL5lV07gn{nKJO00z)*PdIN(G)0Vj?pnWAcH{l z1WwGSEX7e0Q@~`w;bHoj1&)juY;O@S2DnsRS+K)gt|=WEab>}ULF2D{C(tPxb>rS(xZpO@@XWXmI(ml zdVg^0mOS6W&4~+?pj&kB+*bln_^_T99@+taxNCh(7j!`kKL!Gz?;^?RZQrY_6VHHm z>%+FQnEqb(3UB!?uFO=JW~8wHk!k_9@8(R7{Ifnhu+-dyp1;NjAl`$##NkiSbz$xM zs}ET3yF6qHe*7@*4ky4j-`d)G*lT^*`+K!4?7aO4fSx(n*vcClJ@=+c?=ET0-nK&j z?pxlk(i+{(OqI1zy)^zCGX(K)vq=J1~f~2T!>@>}~KbE1zqo0tQUmy@zcVW7A^F6EZ!s8%fur zZ}hcv!c!wj09i5(mlAq6pw-er;`qk>qvgKCB>OM7Bg3-6l>{a5Y7>n}*7+szsw$32 zWzL;=2Eg^3$(o#b6S}Leba(s{3ltmO)eC+rcC1DrqEN8Um|2z1 zI3_nNg33IE_~set_}K_`JWw)-`|bS|0(+lwmT@{~Q|@R$I3loDf?+0r`-#M1s2XJOo z+RoP^AR;Tj2XOP~_1rq`7lt#Of`aL19C!qm65JgL)uvg*jN!ikb?Tec*@!xy8&|3>Av=X^*8cO1eN{YI5CgpyB zQcJ~EOMxzd)*svMk}jHuTvbB=2=~N!csoxAwma`3v;T#qy&?qbprpngL39ih+4-VKoObP>Ihjy$6k$zV_6jj-0^n-*9LEGkP{n$v<)U#T+gngERao(kiS zHP(d~IAeu~0uf^h=^G|tn%!~(scWukZYE(x4hCwRe(~>UXjB1I`li?KUdlC0WXbo= zmUV-42?+9Ie=jV0?v(-=+@=^+W}A>3Hddoz)>B6n5~dVDdq0%e-U&9dpyJ3vdx0RR zJIKP5Dx$$+9Fl{`@|JaABo9h@kSTQoL5lk+=(L(Od9gdWR|NyFi?Ob(w0~{4(PBE5 zXI0~CjB(?re5|%tYpGWYFYrlK7^&oqIuzW&L*{}eRJ`fJG`IDY{BZ zLOlD;;xkUJr2Cqc(N;ShQF(#FXrU;E=xWOQYkl~q&JE_%)W=q2^KQMOBwSwP$xx!3 zv*&SbOWqxUFDQUVjSlt-tgQN16O#l2&TOj37%=SzPM!WKDg3 zw@`B9S(lD}LWS>3G6xrXZk<>}vBDUYj8!}FCrP}}+n7T)%$rNF4#><;JibUvPB`sO zFuKMl-^2YL-~cGr@afBId#~NX0@jvm6W=2${YodUV_Y+W%S1!(W;q8t>9KODK(n~uq(!6(vpXa`Dr0}^;W zPdAeh02tmU|F}+Xy&+>o_2-P{I_Uyez8{|NkWtuIQ@Zn)`Ua4OMtyAlerDR(+vc(t z)|E=^3yekHIunNOZJ%@V&^VCGj(#4M?f=Yh<9b?!6iWjY1d0*>@HOZ_4aQHPS5o|= z2?20;jE1hTq(=b21HjXDJW%MX@X3iT@SW1#ugC%-AaKS;!eBk&*OFt=j~{}kIN^F8 z6QcA}*s2&94ENy1#ZgO5O-y{A-?}dw0rH)vy5&=W)&^ZkLPA1IiwKG=f*VS^-}wTT zDCYAMl@uVMO$zErtI6uhL?3L}4^qv73xEIsi?#V&^^$}v!(%IzchPy==W0<(bag0| z6YBSH(;Y#?X3&_339teiva_>+-yx{_j@<;_UoZf;CShkj?^)dsy34`>pEQ_6tmm8* z{n!pw`>%c#%OaQZ*!)zs+>)e92z^sUTI)L*Ywze!c6M1D=BQqZW2szLs&aB@MyQ~} zF7!K1^wDOP4E34mMnYqwFW7V`2_XhAJT(m+2XuFKz5ttgA0(r?1)(d}D)$A5=sBp} z8KZUf%Tg2`X0w&%Az15{Y{wiHGenb~tm@iP$Ko?Yh#hbS)lmUW>G4FTQDt3|G4Y4A zOhM=N!TZdHb~t`%X{l>g9)B>?BT$FD9tL>k>N9m<`o>=|ilQ?_?`2+TtQr*VJl8eh zkT}Z9v?+VOMF_1r^?SVX`-+0qa=TkRn?vph+|-LM(*^)1ep42qk4t?<>H+?lL@Cfm zR5>&@FlrN-$92GMZ(?ly`y8^VZ2dQjte+%EJ*NYno*cAMwE$6JHookfAEUDQz1QW$ z)YM2C_g-N^R^w62-4l?y2y`VZKR#UTtN^SG9{@A5fMqqC^~VF*GzCCIRYC*>e*GM| z*6=BXcV0KSe=r?rd{k0ge$@^~o;o;p3Dvh78CZ9=?l!UQjC?%LjNm)*U9E}VRn)e9i6q!v%7&zWT0Iu zP%P@W`mq|8F*BVu0(${?N7=cB<6mH{w>hkX9K#)Bkx4A+q#ov$4d~%Qp9yIvb&8NH z8?mog%n@9eN8*DNpySbA$!TQZ3UMW+mJMy<7N-kJ5a^fO)-Z%fX=}shT{EYGf5&x3 zb;TC4uhk4$xt3La)y(Mt85#0`f~JNi0~AfAv|RCba9cCZ8@U?QQ(h+2LdT{_K7hrD zjTn-_YA?yNlPTrXzrZdO343YDaio!EJ_C<*PDUS%^m+N_j$Er4^{4fqjpCb1ZxL-vHkDC|=yTu%DyvzHpek6nU{T;Y~;#Un*4hKbT%`Fy#L8K&( zUSPU$DqlsxU2>6b6-df0@$S2*z>;QZy<5a4LD>N zgM41axXO%$K8>5KlkP8==;S7Y8Y(CIc2@PKBg5Q2{B6oKkfJblpq(v9Ttx+?AN1Ll zCT9MIx4i~Bi`uw<7Wk+r>{GkRA9u9?SW^dl0U|h3Q>4Gqs5vlVP~*i0s9;4_zbb1G zNXk3l`H6cz47r6(JuZL{J%d&f;0zp-nwhFZ9n%2kAiASvc5gQbmNYVcrz{Pmo6|L_ zu7>~|_7&*p8hgQg+WjyNCIe<7B?C^mPGWgq{zdiQBi{#Z0OFfS+M2rwWsncy3|yb% zYIgVy6r%Um9KOVn^9&fL@7>T#tPSh5$)GVWISN8>fy;NtB!1eq@8jS8POa>{qi?2_ zU0bY4-5N>MDk;d-cba|%ERpJ~3bhb*uunPLtxmR2G#ed=-EBUj-j-$Ga8q$yO_lXu zgH`v7J14_fn`4_-pY&;$W2OcAftxvafY>JU1+z`!3$y+1@w!yZhWs#gTm2svK`8ip zhlGOH@9v{5gouPB3?>+9Qcz6AQ~yk%J+&XQnFvAURwOwQu2?qb40c(wxwF*hx~@18 zrx{dqcD0*IY(H`)pm9aS_t?tBed5=&`DhKcWF?k#eTx}6sN8!#aU zu0i{6>)`Q$|gxt+0>JlZLhf0E%!Zg^*?TQi50-@Lt3C#56$S z1IE+_I={EuWptHD?fc!<+v$47=zVXh9T`^hcCF$!cZ}k+=dpKuO`CFc3*F1Ivb>Wb zpmde5o>cG=vBFz@&1b~KREUW~*~HsV*(BE5P4__gI^&zJ5P0kWcQnD}a9a+16T%g8|glc|b0hrSZTYf`LO)ktoz!OxgH zsJ>SIaQqkO=M}QN%^-o@xJf8qNo?XWd22RtDMruA9HEnh1H}M-ZS4e**^PcVdm*o>ytlCu@q1M-Yqj z6D$Ac9{r4QpXMztI<^(*WmuF1L{H;*1syu)(for;8|4H4I?_km2mP%wnR6M-zm+P= zDP?SAGyq)(*Ipd|cF?(+{1BV>otl%{$cG|#84{&aQrS5sKN-TO6=HJ(w0ZqHw^}sr zJbia1CsOMzwDTu={28wqz;6YC6qQH6zODU%GmiM&+B%b8qb)=0W7(ZK#ktT+wrE+g zxBW+NuA}pw{3l59`=5YP#XU#@vngi1lOV@0D(Lz_>u`gc)2uwZFq;giutv4&+NDwE z>y}Wt9-yys8-*BO5RUj3C(rfS($Q-9*GI{(zgc5tswO;1K(?06?$L3j%8-B%GX zlKwP}Wk<-rkw$cCyzF;N6=e;h-!)M|Ihk2Bz*0<^y{4*b^U9Jnr&S?HPZMHq*OZd& zm(_A9Z9)rhL>$-7iFnu}g{rA)@&Z@68{OpA`&4p(%?$F_UM2hX#M}m$F^;%2CDGVr zbcRJf`;EURAJ$n<`K>cD!m@vu*yjyMsKXje={2V9H7R+X{qvfLz(0E^JnkU)ZS`9R zDQ|?VsHrEzw*|QW>~6FE>EBx$nC!CmESlO!-ZP};m|*$$25p)|wr>lon7w|^{nPSE z;2L_BAmLe0eqzKbuC@@Z_9oh23<=a(Sq(Y&%7zKx{=(_e_&;j{pLM~x5I9}Gxw$Rr zqOP&ls@LZ7mKTreN~?k#?hhLZO{{7Fua9O8oPlC}Tpg4o4tDnm{r-UW|>C1fy literal 0 HcmV?d00001 diff --git a/tutorial/readme.md b/tutorial/readme.md new file mode 100644 index 0000000..66110b8 --- /dev/null +++ b/tutorial/readme.md @@ -0,0 +1,98 @@ +# Morphir Tutorial + +## What? +Morphir is a project to share business logic across people and technologies. By establishing a commong data structure for storing business logic, Morphir enables an ecosystem of tools to define and process business logic in useful ways. Before we get into the tutorial, it's worth considering what we mean by business logic. Take the essence of any business application, take away all of the infrastructure, concurrency, messaging, etc. What's left is the essense of the application - it's reason for being. That is the business logic. It is how the business experts would describe the application in the language of the business. + +For this tutorial, we'll use the example of a surfboard rental business. + + + +The business is simple: Rent surfboards whenever they're available. + +## Why? +Seems simple enough, so why would we consider doing it with Morphir. One of our goals is to optimize the feedback loop between the business and developers. +Business experts tend to the think of an application in its business terms. In this case they might be thinking something like: + +## Business View +