init

[?]
Oct 16, 2023, 11:49 AM
IJD7EFTXP7IELHVVLJ6B3XYGUYAMXXKCPVYKGWC6L7D5ZA47QDYQC

Dependencies

Change contents

  • add root
    [1.0]
    [0.1]
  • file addition: pmltt-lang (d--r------)
    [0.2]
  • file addition: vite.config.js (----------)
    [0.4]
    import { defineConfig } from 'vite'
    import react from '@vitejs/plugin-react'
    // https://vitejs.dev/config/
    export default defineConfig({
    plugins: [
    react({
    include: ['**/*.bs.mjs'],
    }),
    ],
    });
  • file addition: tailwind.config.cjs (----------)
    [0.4]
    /** @type {import('tailwindcss').Config} */
    module.exports = {
    content: ["./index.html", "./src/**/*.bs.mjs"],
    theme: {
    extend: {},
    },
    plugins: [],
    };
  • file addition: src (d--r------)
    [0.4]
  • file addition: lang (d--r------)
    [0.492]
  • file addition: OneTruth.res (----------)
    [0.509]
    open Interp
    let make = () =>
    makeWithRules([
    {
    premises: [{judgment: InSet(Var("a"), Var("A"))}],
    conclusions: [{judgment: IsTrue(Var("A"))}],
    },
    // Bool
    {
    premises: [],
    conclusions: [{judgment: IsSet(Var("Bool"))}],
    },
    {
    premises: [],
    conclusions: [{judgment: InSet(Var("true"), Var("Bool"))}],
    },
    {
    premises: [],
    conclusions: [{judgment: InSet(Var("false"), Var("Bool"))}],
    },
    ])
  • file addition: Interp.res (----------)
    [0.509]
    open Core
    type context = {judgments: array<judgment>}
    type t = {
    context: context,
    knownNames: Map.t<string, expr>,
    knownSets: Set.t<string>,
    }
    // Something that appears in the top or bottom of a derivation
    type hypotheticalJudgment = {
    assumptions?: context,
    judgment: judgment,
    }
    type rule = {
    premises: array<hypotheticalJudgment>,
    conclusions: array<hypotheticalJudgment>,
    }
    let makeWithRules = (initialRules: array<rule>) => {
    let knownSets = ref(Set.make())
    let knownNames = ref(Map.make())
    let context = {judgments: []}
    // Evaluate some shit
    initialRules->Array.forEach(rule => {
    Js.log2("helloge", rule)
    ()
    })
    {
    context,
    knownSets: knownSets.contents,
    knownNames: knownNames.contents,
    }
    }
    // Evaluate an expression without changing the interpreter state
    let eval = (state: t, expr: expr) => {
    let stop = ref(false)
    while !stop.contents {
    stop := true
    state.context.judgments->Array.forEach(rule => ())
    }
    //
    state
    }
  • file addition: Core.res (----------)
    [0.509]
    type rec arity =
    | Zero
    | Combined(array<arity>)
    | Arrow(arity, arity)
    type rec expr =
    | Var(string)
    | Abs(string, expr)
    | App(expr, expr)
    type judgment =
    // Base judgments
    | IsSet(expr)
    | AreEqualSets(expr, expr)
    | InSet(expr, expr)
    | AreEqualElementsInSet(expr, expr, expr)
    // Proposition stuff
    | IsProp(expr)
    | IsTrue(expr)
  • file addition: index.css (----------)
    [0.492]
    @tailwind base;
    @tailwind components;
    @tailwind utilities;
  • file addition: assets (d--r------)
    [0.492]
  • file addition: react.svg (----------)
    [0.2566]
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="35.93" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 228"><path fill="#00D8FF" d="M210.483 73.824a171.49 171.49 0 0 0-8.24-2.597c.465-1.9.893-3.777 1.273-5.621c6.238-30.281 2.16-54.676-11.769-62.708c-13.355-7.7-35.196.329-57.254 19.526a171.23 171.23 0 0 0-6.375 5.848a155.866 155.866 0 0 0-4.241-3.917C100.759 3.829 77.587-4.822 63.673 3.233C50.33 10.957 46.379 33.89 51.995 62.588a170.974 170.974 0 0 0 1.892 8.48c-3.28.932-6.445 1.924-9.474 2.98C17.309 83.498 0 98.307 0 113.668c0 15.865 18.582 31.778 46.812 41.427a145.52 145.52 0 0 0 6.921 2.165a167.467 167.467 0 0 0-2.01 9.138c-5.354 28.2-1.173 50.591 12.134 58.266c13.744 7.926 36.812-.22 59.273-19.855a145.567 145.567 0 0 0 5.342-4.923a168.064 168.064 0 0 0 6.92 6.314c21.758 18.722 43.246 26.282 56.54 18.586c13.731-7.949 18.194-32.003 12.4-61.268a145.016 145.016 0 0 0-1.535-6.842c1.62-.48 3.21-.974 4.76-1.488c29.348-9.723 48.443-25.443 48.443-41.52c0-15.417-17.868-30.326-45.517-39.844Zm-6.365 70.984c-1.4.463-2.836.91-4.3 1.345c-3.24-10.257-7.612-21.163-12.963-32.432c5.106-11 9.31-21.767 12.459-31.957c2.619.758 5.16 1.557 7.61 2.4c23.69 8.156 38.14 20.213 38.14 29.504c0 9.896-15.606 22.743-40.946 31.14Zm-10.514 20.834c2.562 12.94 2.927 24.64 1.23 33.787c-1.524 8.219-4.59 13.698-8.382 15.893c-8.067 4.67-25.32-1.4-43.927-17.412a156.726 156.726 0 0 1-6.437-5.87c7.214-7.889 14.423-17.06 21.459-27.246c12.376-1.098 24.068-2.894 34.671-5.345a134.17 134.17 0 0 1 1.386 6.193ZM87.276 214.515c-7.882 2.783-14.16 2.863-17.955.675c-8.075-4.657-11.432-22.636-6.853-46.752a156.923 156.923 0 0 1 1.869-8.499c10.486 2.32 22.093 3.988 34.498 4.994c7.084 9.967 14.501 19.128 21.976 27.15a134.668 134.668 0 0 1-4.877 4.492c-9.933 8.682-19.886 14.842-28.658 17.94ZM50.35 144.747c-12.483-4.267-22.792-9.812-29.858-15.863c-6.35-5.437-9.555-10.836-9.555-15.216c0-9.322 13.897-21.212 37.076-29.293c2.813-.98 5.757-1.905 8.812-2.773c3.204 10.42 7.406 21.315 12.477 32.332c-5.137 11.18-9.399 22.249-12.634 32.792a134.718 134.718 0 0 1-6.318-1.979Zm12.378-84.26c-4.811-24.587-1.616-43.134 6.425-47.789c8.564-4.958 27.502 2.111 47.463 19.835a144.318 144.318 0 0 1 3.841 3.545c-7.438 7.987-14.787 17.08-21.808 26.988c-12.04 1.116-23.565 2.908-34.161 5.309a160.342 160.342 0 0 1-1.76-7.887Zm110.427 27.268a347.8 347.8 0 0 0-7.785-12.803c8.168 1.033 15.994 2.404 23.343 4.08c-2.206 7.072-4.956 14.465-8.193 22.045a381.151 381.151 0 0 0-7.365-13.322Zm-45.032-43.861c5.044 5.465 10.096 11.566 15.065 18.186a322.04 322.04 0 0 0-30.257-.006c4.974-6.559 10.069-12.652 15.192-18.18ZM82.802 87.83a323.167 323.167 0 0 0-7.227 13.238c-3.184-7.553-5.909-14.98-8.134-22.152c7.304-1.634 15.093-2.97 23.209-3.984a321.524 321.524 0 0 0-7.848 12.897Zm8.081 65.352c-8.385-.936-16.291-2.203-23.593-3.793c2.26-7.3 5.045-14.885 8.298-22.6a321.187 321.187 0 0 0 7.257 13.246c2.594 4.48 5.28 8.868 8.038 13.147Zm37.542 31.03c-5.184-5.592-10.354-11.779-15.403-18.433c4.902.192 9.899.29 14.978.29c5.218 0 10.376-.117 15.453-.343c-4.985 6.774-10.018 12.97-15.028 18.486Zm52.198-57.817c3.422 7.8 6.306 15.345 8.596 22.52c-7.422 1.694-15.436 3.058-23.88 4.071a382.417 382.417 0 0 0 7.859-13.026a347.403 347.403 0 0 0 7.425-13.565Zm-16.898 8.101a358.557 358.557 0 0 1-12.281 19.815a329.4 329.4 0 0 1-23.444.823c-7.967 0-15.716-.248-23.178-.732a310.202 310.202 0 0 1-12.513-19.846h.001a307.41 307.41 0 0 1-10.923-20.627a310.278 310.278 0 0 1 10.89-20.637l-.001.001a307.318 307.318 0 0 1 12.413-19.761c7.613-.576 15.42-.876 23.31-.876H128c7.926 0 15.743.303 23.354.883a329.357 329.357 0 0 1 12.335 19.695a358.489 358.489 0 0 1 11.036 20.54a329.472 329.472 0 0 1-11 20.722Zm22.56-122.124c8.572 4.944 11.906 24.881 6.52 51.026c-.344 1.668-.73 3.367-1.15 5.09c-10.622-2.452-22.155-4.275-34.23-5.408c-7.034-10.017-14.323-19.124-21.64-27.008a160.789 160.789 0 0 1 5.888-5.4c18.9-16.447 36.564-22.941 44.612-18.3ZM128 90.808c12.625 0 22.86 10.235 22.86 22.86s-10.235 22.86-22.86 22.86s-22.86-10.235-22.86-22.86s10.235-22.86 22.86-22.86Z"></path></svg>
  • file addition: Main.res (----------)
    [0.492]
    %%raw("import './index.css'")
    switch ReactDOM.querySelector("#root") {
    | Some(domElement) =>
    ReactDOM.Client.createRoot(domElement)->ReactDOM.Client.Root.render(
    <React.StrictMode>
    <App />
    </React.StrictMode>,
    )
    | None => ()
    }
  • file addition: Button.resi (----------)
    [0.492]
    let make: JsxDOM.domProps => Jsx.element
  • file addition: Button.res (----------)
    [0.492]
    // Styling from https://tailwind-elements.com/docs/standard/components/buttons/
    let make = props =>
    <button
    {...
    props}
    className="inline-block px-6 py-2.5 bg-blue-600 text-white font-medium text-xs leading-tight uppercase rounded shadow-md hover:bg-blue-700 hover:shadow-lg focus:bg-blue-700 focus:shadow-lg focus:outline-none focus:ring-0 active:bg-blue-800 active:shadow-lg transition duration-150 ease-in-out"
    />
  • file addition: App.resi (----------)
    [0.492]
    @react.component
    let make: unit => Jsx.element
  • file addition: App.res (----------)
    [0.492]
    open React
    open ReactEvent.Form
    @react.component
    let make = () => {
    let (inputExpr, setInputExpr) = useState(() => "")
    let (interp, setInterp) = useState(() => OneTruth.make())
    <div className="p-6">
    <h1 className="text-3xl font-semibold"> {"What is this about?"->React.string} </h1>
    <div>
    <input
    className="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500"
    type_="text"
    value={inputExpr}
    onChange={event => setInputExpr(currentTarget(event)["value"])}
    />
    <pre> {interp->JSON.stringifyAnyWithIndent(2)->Option.getWithDefault("")->string} </pre>
    </div>
    </div>
    }
  • file addition: App.css (----------)
    [0.492]
  • file addition: public (d--r------)
    [0.4]
  • file addition: vite.svg (----------)
    [0.8579]
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
  • file addition: postcss.config.cjs (----------)
    [0.4]
    module.exports = {
    plugins: {
    tailwindcss: {},
    autoprefixer: {},
    },
    };
  • file addition: package.json (----------)
    [0.4]
    {
    "name": "pmltt-lang",
    "private": true,
    "version": "0.0.0",
    "type": "module",
    "scripts": {
    "res:build": "rescript",
    "res:clean": "rescript clean",
    "res:dev": "rescript build -w",
    "dev": "vite",
    "build": "vite build",
    "preview": "vite preview"
    },
    "dependencies": {
    "@rescript/core": "^0.5.0",
    "@rescript/react": "^0.11.0",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "rescript": "10.1"
    },
    "devDependencies": {
    "@vitejs/plugin-react": "4.0.0",
    "autoprefixer": "^10.4.15",
    "postcss": "^8.4.28",
    "tailwindcss": "^3.3.3",
    "vite": "^4.4.9"
    }
    }
  • file addition: package-lock.json (----------)
    [0.4]
    {
    "name": "pmltt-lang",
    "version": "0.0.0",
    "lockfileVersion": 3,
    "requires": true,
    "packages": {
    "": {
    "name": "pmltt-lang",
    "version": "0.0.0",
    "dependencies": {
    "@rescript/core": "^0.5.0",
    "@rescript/react": "^0.11.0",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "rescript": "10.1"
    },
    "devDependencies": {
    "@vitejs/plugin-react": "4.0.0",
    "autoprefixer": "^10.4.15",
    "postcss": "^8.4.28",
    "tailwindcss": "^3.3.3",
    "vite": "^4.4.9"
    }
    },
    "node_modules/@alloc/quick-lru": {
    "version": "5.2.0",
    "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
    "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
    "dev": true,
    "engines": {
    "node": ">=10"
    },
    "funding": {
    "url": "https://github.com/sponsors/sindresorhus"
    }
    },
    "node_modules/@ampproject/remapping": {
    "version": "2.2.1",
    "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
    "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
    "dev": true,
    "dependencies": {
    "@jridgewell/gen-mapping": "^0.3.0",
    "@jridgewell/trace-mapping": "^0.3.9"
    },
    "engines": {
    "node": ">=6.0.0"
    }
    },
    "node_modules/@babel/code-frame": {
    "version": "7.22.13",
    "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
    "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
    "dev": true,
    "dependencies": {
    "@babel/highlight": "^7.22.13",
    "chalk": "^2.4.2"
    },
    "engines": {
    "node": ">=6.9.0"
    }
    },
    "node_modules/@babel/compat-data": {
    "version": "7.23.2",
    "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz",
    "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==",
    "dev": true,
    "engines": {
    "node": ">=6.9.0"
    }
    },
    "node_modules/@babel/core": {
    "version": "7.23.2",
    "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz",
    "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==",
    "dev": true,
    "dependencies": {
    "@ampproject/remapping": "^2.2.0",
    "@babel/code-frame": "^7.22.13",
    "@babel/generator": "^7.23.0",
    "@babel/helper-compilation-targets": "^7.22.15",
    "@babel/helper-module-transforms": "^7.23.0",
    "@babel/helpers": "^7.23.2",
    "@babel/parser": "^7.23.0",
    "@babel/template": "^7.22.15",
    "@babel/traverse": "^7.23.2",
    "@babel/types": "^7.23.0",
    "convert-source-map": "^2.0.0",
    "debug": "^4.1.0",
    "gensync": "^1.0.0-beta.2",
    "json5": "^2.2.3",
    "semver": "^6.3.1"
    },
    "engines": {
    "node": ">=6.9.0"
    },
    "funding": {
    "type": "opencollective",
    "url": "https://opencollective.com/babel"
    }
    },
    "node_modules/@babel/generator": {
    "version": "7.23.0",
    "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz",
    "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==",
    "dev": true,
    "dependencies": {
    "@babel/types": "^7.23.0",
    "@jridgewell/gen-mapping": "^0.3.2",
    "@jridgewell/trace-mapping": "^0.3.17",
    "jsesc": "^2.5.1"
    },
    "engines": {
    "node": ">=6.9.0"
    }
    },
    "node_modules/@babel/helper-compilation-targets": {
    "version": "7.22.15",
    "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz",
    "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==",
    "dev": true,
    "dependencies": {
    "@babel/compat-data": "^7.22.9",
    "@babel/helper-validator-option": "^7.22.15",
    "browserslist": "^4.21.9",
    "lru-cache": "^5.1.1",
    "semver": "^6.3.1"
    },
    "engines": {
    "node": ">=6.9.0"
    }
    },
    "node_modules/@babel/helper-environment-visitor": {
    "version": "7.22.20",
    "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
    "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
    "dev": true,
    "engines": {
    "node": ">=6.9.0"
    }
    },
    "node_modules/@babel/helper-function-name": {
    "version": "7.23.0",
    "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
    "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
    "dev": true,
    "dependencies": {
    "@babel/template": "^7.22.15",
    "@babel/types": "^7.23.0"
    },
    "engines": {
    "node": ">=6.9.0"
    }
    },
    "node_modules/@babel/helper-hoist-variables": {
    "version": "7.22.5",
    "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
    "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
    "dev": true,
    "dependencies": {
    "@babel/types": "^7.22.5"
    },
    "engines": {
    "node": ">=6.9.0"
    }
    },
    "node_modules/@babel/helper-module-imports": {
    "version": "7.22.15",
    "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
    "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
    "dev": true,
    "dependencies": {
    "@babel/types": "^7.22.15"
    },
    "engines": {
    "node": ">=6.9.0"
    }
    },
    "node_modules/@babel/helper-module-transforms": {
    "version": "7.23.0",
    "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz",
    "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==",
    "dev": true,
    "dependencies": {
    "@babel/helper-environment-visitor": "^7.22.20",
    "@babel/helper-module-imports": "^7.22.15",
    "@babel/helper-simple-access": "^7.22.5",
    "@babel/helper-split-export-declaration": "^7.22.6",
    "@babel/helper-validator-identifier": "^7.22.20"
    },
    "engines": {
    "node": ">=6.9.0"
    },
    "peerDependencies": {
    "@babel/core": "^7.0.0"
    }
    },
    "node_modules/@babel/helper-plugin-utils": {
    "version": "7.22.5",
    "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
    "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
    "dev": true,
    "engines": {
    "node": ">=6.9.0"
    }
    },
    "node_modules/@babel/helper-simple-access": {
    "version": "7.22.5",
    "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
    "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
    "dev": true,
    "dependencies": {
    "@babel/types": "^7.22.5"
    },
    "engines": {
    "node": ">=6.9.0"
    }
    },
    "node_modules/@babel/helper-split-export-declaration": {
    "version": "7.22.6",
    "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
    "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
    "dev": true,
    "dependencies": {
    "@babel/types": "^7.22.5"
    },
    "engines": {
    "node": ">=6.9.0"
    }
    },
    "node_modules/@babel/helper-string-parser": {
    "version": "7.22.5",
    "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
    "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
    "dev": true,
    "engines": {
    "node": ">=6.9.0"
    }
    },
    "node_modules/@babel/helper-validator-identifier": {
    "version": "7.22.20",
    "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
    "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
    "dev": true,
    "engines": {
    "node": ">=6.9.0"
    }
    },
    "node_modules/@babel/helper-validator-option": {
    "version": "7.22.15",
    "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz",
    "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==",
    "dev": true,
    "engines": {
    "node": ">=6.9.0"
    }
    },
    "node_modules/@babel/helpers": {
    "version": "7.23.2",
    "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz",
    "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==",
    "dev": true,
    "dependencies": {
    "@babel/template": "^7.22.15",
    "@babel/traverse": "^7.23.2",
    "@babel/types": "^7.23.0"
    },
    "engines": {
    "node": ">=6.9.0"
    }
    },
    "node_modules/@babel/highlight": {
    "version": "7.22.20",
    "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
    "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
    "dev": true,
    "dependencies": {
    "@babel/helper-validator-identifier": "^7.22.20",
    "chalk": "^2.4.2",
    "js-tokens": "^4.0.0"
    },
    "engines": {
    "node": ">=6.9.0"
    }
    },
    "node_modules/@babel/parser": {
    "version": "7.23.0",
    "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
    "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
    "dev": true,
    "bin": {
    "parser": "bin/babel-parser.js"
    },
    "engines": {
    "node": ">=6.0.0"
    }
    },
    "node_modules/@babel/plugin-transform-react-jsx-self": {
    "version": "7.22.5",
    "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.22.5.tgz",
    "integrity": "sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==",
    "dev": true,
    "dependencies": {
    "@babel/helper-plugin-utils": "^7.22.5"
    },
    "engines": {
    "node": ">=6.9.0"
    },
    "peerDependencies": {
    "@babel/core": "^7.0.0-0"
    }
    },
    "node_modules/@babel/plugin-transform-react-jsx-source": {
    "version": "7.22.5",
    "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.22.5.tgz",
    "integrity": "sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==",
    "dev": true,
    "dependencies": {
    "@babel/helper-plugin-utils": "^7.22.5"
    },
    "engines": {
    "node": ">=6.9.0"
    },
    "peerDependencies": {
    "@babel/core": "^7.0.0-0"
    }
    },
    "node_modules/@babel/template": {
    "version": "7.22.15",
    "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
    "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
    "dev": true,
    "dependencies": {
    "@babel/code-frame": "^7.22.13",
    "@babel/parser": "^7.22.15",
    "@babel/types": "^7.22.15"
    },
    "engines": {
    "node": ">=6.9.0"
    }
    },
    "node_modules/@babel/traverse": {
    "version": "7.23.2",
    "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz",
    "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==",
    "dev": true,
    "dependencies": {
    "@babel/code-frame": "^7.22.13",
    "@babel/generator": "^7.23.0",
    "@babel/helper-environment-visitor": "^7.22.20",
    "@babel/helper-function-name": "^7.23.0",
    "@babel/helper-hoist-variables": "^7.22.5",
    "@babel/helper-split-export-declaration": "^7.22.6",
    "@babel/parser": "^7.23.0",
    "@babel/types": "^7.23.0",
    "debug": "^4.1.0",
    "globals": "^11.1.0"
    },
    "engines": {
    "node": ">=6.9.0"
    }
    },
    "node_modules/@babel/types": {
    "version": "7.23.0",
    "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz",
    "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==",
    "dev": true,
    "dependencies": {
    "@babel/helper-string-parser": "^7.22.5",
    "@babel/helper-validator-identifier": "^7.22.20",
    "to-fast-properties": "^2.0.0"
    },
    "engines": {
    "node": ">=6.9.0"
    }
    },
    "node_modules/@esbuild/android-arm": {
    "version": "0.18.20",
    "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
    "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==",
    "cpu": [
    "arm"
    ],
    "dev": true,
    "optional": true,
    "os": [
    "android"
    ],
    "engines": {
    "node": ">=12"
    }
    },
    "node_modules/@esbuild/android-arm64": {
    "version": "0.18.20",
    "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz",
    "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==",
    "cpu": [
    "arm64"
    ],
    "dev": true,
    "optional": true,
    "os": [
    "android"
    ],
    "engines": {
    "node": ">=12"
    }
    },
    "node_modules/@esbuild/android-x64": {
    "version": "0.18.20",
    "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz",
    "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==",
    "cpu": [
    "x64"
    ],
    "dev": true,
    "optional": true,
    "os": [
    "android"
    ],
    "engines": {
    "node": ">=12"
    }
    },
    "node_modules/@esbuild/darwin-arm64": {
    "version": "0.18.20",
    "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz",
    "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==",
    "cpu": [
    "arm64"
    ],
    "dev": true,
    "optional": true,
    "os": [
    "darwin"
    ],
    "engines": {
    "node": ">=12"
    }
    },
    "node_modules/@esbuild/darwin-x64": {
    "version": "0.18.20",
    "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz",
    "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==",
    "cpu": [
    "x64"
    ],
    "dev": true,
    "optional": true,
    "os": [
    "darwin"
    ],
    "engines": {
    "node": ">=12"
    }
    },
    "node_modules/@esbuild/freebsd-arm64": {
    "version": "0.18.20",
    "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz",
    "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==",
    "cpu": [
    "arm64"
    ],
    "dev": true,
    "optional": true,
    "os": [
    "freebsd"
    ],
    "engines": {
    "node": ">=12"
    }
    },
    "node_modules/@esbuild/freebsd-x64": {
    "version": "0.18.20",
    "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz",
    "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==",
    "cpu": [
    "x64"
    ],
    "dev": true,
    "optional": true,
    "os": [
    "freebsd"
    ],
    "engines": {
    "node": ">=12"
    }
    },
    "node_modules/@esbuild/linux-arm": {
    "version": "0.18.20",
    "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz",
    "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==",
    "cpu": [
    "arm"
    ],
    "dev": true,
    "optional": true,
    "os": [
    "linux"
    ],
    "engines": {
    "node": ">=12"
    }
    },
    "node_modules/@esbuild/linux-arm64": {
    "version": "0.18.20",
    "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz",
    "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==",
    "cpu": [
    "arm64"
    ],
    "dev": true,
    "optional": true,
    "os": [
    "linux"
    ],
    "engines": {
    "node": ">=12"
    }
    },
    "node_modules/@esbuild/linux-ia32": {
    "version": "0.18.20",
    "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz",
    "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==",
    "cpu": [
    "ia32"
    ],
    "dev": true,
    "optional": true,
    "os": [
    "linux"
    ],
    "engines": {
    "node": ">=12"
    }
    },
    "node_modules/@esbuild/linux-loong64": {
    "version": "0.18.20",
    "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz",
    "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==",
    "cpu": [
    "loong64"
    ],
    "dev": true,
    "optional": true,
    "os": [
    "linux"
    ],
    "engines": {
    "node": ">=12"
    }
    },
    "node_modules/@esbuild/linux-mips64el": {
    "version": "0.18.20",
    "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz",
    "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==",
    "cpu": [
    "mips64el"
    ],
    "dev": true,
    "optional": true,
    "os": [
    "linux"
    ],
    "engines": {
    "node": ">=12"
    }
    },
    "node_modules/@esbuild/linux-ppc64": {
    "version": "0.18.20",
    "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz",
    "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==",
    "cpu": [
    "ppc64"
    ],
    "dev": true,
    "optional": true,
    "os": [
    "linux"
    ],
    "engines": {
    "node": ">=12"
    }
    },
    "node_modules/@esbuild/linux-riscv64": {
    "version": "0.18.20",
    "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz",
    "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==",
    "cpu": [
    "riscv64"
    ],
    "dev": true,
    "optional": true,
    "os": [
    "linux"
    ],
    "engines": {
    "node": ">=12"
    }
    },
    "node_modules/@esbuild/linux-s390x": {
    "version": "0.18.20",
    "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz",
    "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==",
    "cpu": [
    "s390x"
    ],
    "dev": true,
    "optional": true,
    "os": [
    "linux"
    ],
    "engines": {
    "node": ">=12"
    }
    },
    "node_modules/@esbuild/linux-x64": {
    "version": "0.18.20",
    "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz",
    "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==",
    "cpu": [
    "x64"
    ],
    "dev": true,
    "optional": true,
    "os": [
    "linux"
    ],
    "engines": {
    "node": ">=12"
    }
    },
    "node_modules/@esbuild/netbsd-x64": {
    "version": "0.18.20",
    "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz",
    "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==",
    "cpu": [
    "x64"
    ],
    "dev": true,
    "optional": true,
    "os": [
    "netbsd"
    ],
    "engines": {
    "node": ">=12"
    }
    },
    "node_modules/@esbuild/openbsd-x64": {
    "version": "0.18.20",
    "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz",
    "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==",
    "cpu": [
    "x64"
    ],
    "dev": true,
    "optional": true,
    "os": [
    "openbsd"
    ],
    "engines": {
    "node": ">=12"
    }
    },
    "node_modules/@esbuild/sunos-x64": {
    "version": "0.18.20",
    "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz",
    "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==",
    "cpu": [
    "x64"
    ],
    "dev": true,
    "optional": true,
    "os": [
    "sunos"
    ],
    "engines": {
    "node": ">=12"
    }
    },
    "node_modules/@esbuild/win32-arm64": {
    "version": "0.18.20",
    "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz",
    "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==",
    "cpu": [
    "arm64"
    ],
    "dev": true,
    "optional": true,
    "os": [
    "win32"
    ],
    "engines": {
    "node": ">=12"
    }
    },
    "node_modules/@esbuild/win32-ia32": {
    "version": "0.18.20",
    "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz",
    "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==",
    "cpu": [
    "ia32"
    ],
    "dev": true,
    "optional": true,
    "os": [
    "win32"
    ],
    "engines": {
    "node": ">=12"
    }
    },
    "node_modules/@esbuild/win32-x64": {
    "version": "0.18.20",
    "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz",
    "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==",
    "cpu": [
    "x64"
    ],
    "dev": true,
    "optional": true,
    "os": [
    "win32"
    ],
    "engines": {
    "node": ">=12"
    }
    },
    "node_modules/@jridgewell/gen-mapping": {
    "version": "0.3.3",
    "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
    "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
    "dev": true,
    "dependencies": {
    "@jridgewell/set-array": "^1.0.1",
    "@jridgewell/sourcemap-codec": "^1.4.10",
    "@jridgewell/trace-mapping": "^0.3.9"
    },
    "engines": {
    "node": ">=6.0.0"
    }
    },
    "node_modules/@jridgewell/resolve-uri": {
    "version": "3.1.1",
    "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
    "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
    "dev": true,
    "engines": {
    "node": ">=6.0.0"
    }
    },
    "node_modules/@jridgewell/set-array": {
    "version": "1.1.2",
    "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
    "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
    "dev": true,
    "engines": {
    "node": ">=6.0.0"
    }
    },
    "node_modules/@jridgewell/sourcemap-codec": {
    "version": "1.4.15",
    "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
    "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
    "dev": true
    },
    "node_modules/@jridgewell/trace-mapping": {
    "version": "0.3.19",
    "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz",
    "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==",
    "dev": true,
    "dependencies": {
    "@jridgewell/resolve-uri": "^3.1.0",
    "@jridgewell/sourcemap-codec": "^1.4.14"
    }
    },
    "node_modules/@nodelib/fs.scandir": {
    "version": "2.1.5",
    "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
    "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
    "dev": true,
    "dependencies": {
    "@nodelib/fs.stat": "2.0.5",
    "run-parallel": "^1.1.9"
    },
    "engines": {
    "node": ">= 8"
    }
    },
    "node_modules/@nodelib/fs.stat": {
    "version": "2.0.5",
    "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
    "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
    "dev": true,
    "engines": {
    "node": ">= 8"
    }
    },
    "node_modules/@nodelib/fs.walk": {
    "version": "1.2.8",
    "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
    "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
    "dev": true,
    "dependencies": {
    "@nodelib/fs.scandir": "2.1.5",
    "fastq": "^1.6.0"
    },
    "engines": {
    "node": ">= 8"
    }
    },
    "node_modules/@rescript/core": {
    "version": "0.5.0",
    "resolved": "https://registry.npmjs.org/@rescript/core/-/core-0.5.0.tgz",
    "integrity": "sha512-Keqnpi+8VqyhCk/3aMwar8hJbNy2IsINAAfIFeQC65IIegCR0QXFDBpQxfVcmbbtoHq6HnW4B3RLm/9GCUJQhQ==",
    "peerDependencies": {
    "rescript": "^10.1.0 || ^11.0.0-alpha.0 || next"
    }
    },
    "node_modules/@rescript/react": {
    "version": "0.11.0",
    "resolved": "https://registry.npmjs.org/@rescript/react/-/react-0.11.0.tgz",
    "integrity": "sha512-RzoAO+3cJwXE2D7yodMo4tBO2EkeDYCN/I/Sj/yRweI3S1CY1ZBOF/GMcVtjeIurJJt7KMveqQXTaRrqoGZBBg==",
    "peerDependencies": {
    "react": ">=18.0.0",
    "react-dom": ">=18.0.0"
    }
    },
    "node_modules/@vitejs/plugin-react": {
    "version": "4.0.0",
    "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.0.0.tgz",
    "integrity": "sha512-HX0XzMjL3hhOYm+0s95pb0Z7F8O81G7joUHgfDd/9J/ZZf5k4xX6QAMFkKsHFxaHlf6X7GD7+XuaZ66ULiJuhQ==",
    "dev": true,
    "dependencies": {
    "@babel/core": "^7.21.4",
    "@babel/plugin-transform-react-jsx-self": "^7.21.0",
    "@babel/plugin-transform-react-jsx-source": "^7.19.6",
    "react-refresh": "^0.14.0"
    },
    "engines": {
    "node": "^14.18.0 || >=16.0.0"
    },
    "peerDependencies": {
    "vite": "^4.2.0"
    }
    },
    "node_modules/ansi-styles": {
    "version": "3.2.1",
    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
    "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
    "dev": true,
    "dependencies": {
    "color-convert": "^1.9.0"
    },
    "engines": {
    "node": ">=4"
    }
    },
    "node_modules/any-promise": {
    "version": "1.3.0",
    "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
    "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
    "dev": true
    },
    "node_modules/anymatch": {
    "version": "3.1.3",
    "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
    "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
    "dev": true,
    "dependencies": {
    "normalize-path": "^3.0.0",
    "picomatch": "^2.0.4"
    },
    "engines": {
    "node": ">= 8"
    }
    },
    "node_modules/arg": {
    "version": "5.0.2",
    "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
    "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
    "dev": true
    },
    "node_modules/autoprefixer": {
    "version": "10.4.16",
    "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz",
    "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==",
    "dev": true,
    "funding": [
    {
    "type": "opencollective",
    "url": "https://opencollective.com/postcss/"
    },
    {
    "type": "tidelift",
    "url": "https://tidelift.com/funding/github/npm/autoprefixer"
    },
    {
    "type": "github",
    "url": "https://github.com/sponsors/ai"
    }
    ],
    "dependencies": {
    "browserslist": "^4.21.10",
    "caniuse-lite": "^1.0.30001538",
    "fraction.js": "^4.3.6",
    "normalize-range": "^0.1.2",
    "picocolors": "^1.0.0",
    "postcss-value-parser": "^4.2.0"
    },
    "bin": {
    "autoprefixer": "bin/autoprefixer"
    },
    "engines": {
    "node": "^10 || ^12 || >=14"
    },
    "peerDependencies": {
    "postcss": "^8.1.0"
    }
    },
    "node_modules/balanced-match": {
    "version": "1.0.2",
    "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
    "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
    "dev": true
    },
    "node_modules/binary-extensions": {
    "version": "2.2.0",
    "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
    "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
    "dev": true,
    "engines": {
    "node": ">=8"
    }
    },
    "node_modules/brace-expansion": {
    "version": "1.1.11",
    "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
    "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
    "dev": true,
    "dependencies": {
    "balanced-match": "^1.0.0",
    "concat-map": "0.0.1"
    }
    },
    "node_modules/braces": {
    "version": "3.0.2",
    "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
    "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
    "dev": true,
    "dependencies": {
    "fill-range": "^7.0.1"
    },
    "engines": {
    "node": ">=8"
    }
    },
    "node_modules/browserslist": {
    "version": "4.22.1",
    "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz",
    "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==",
    "dev": true,
    "funding": [
    {
    "type": "opencollective",
    "url": "https://opencollective.com/browserslist"
    },
    {
    "type": "tidelift",
    "url": "https://tidelift.com/funding/github/npm/browserslist"
    },
    {
    "type": "github",
    "url": "https://github.com/sponsors/ai"
    }
    ],
    "dependencies": {
    "caniuse-lite": "^1.0.30001541",
    "electron-to-chromium": "^1.4.535",
    "node-releases": "^2.0.13",
    "update-browserslist-db": "^1.0.13"
    },
    "bin": {
    "browserslist": "cli.js"
    },
    "engines": {
    "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
    }
    },
    "node_modules/camelcase-css": {
    "version": "2.0.1",
    "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
    "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
    "dev": true,
    "engines": {
    "node": ">= 6"
    }
    },
    "node_modules/caniuse-lite": {
    "version": "1.0.30001547",
    "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001547.tgz",
    "integrity": "sha512-W7CrtIModMAxobGhz8iXmDfuJiiKg1WADMO/9x7/CLNin5cpSbuBjooyoIUVB5eyCc36QuTVlkVa1iB2S5+/eA==",
    "dev": true,
    "funding": [
    {
    "type": "opencollective",
    "url": "https://opencollective.com/browserslist"
    },
    {
    "type": "tidelift",
    "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
    },
    {
    "type": "github",
    "url": "https://github.com/sponsors/ai"
    }
    ]
    },
    "node_modules/chalk": {
    "version": "2.4.2",
    "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
    "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
    "dev": true,
    "dependencies": {
    "ansi-styles": "^3.2.1",
    "escape-string-regexp": "^1.0.5",
    "supports-color": "^5.3.0"
    },
    "engines": {
    "node": ">=4"
    }
    },
    "node_modules/chokidar": {
    "version": "3.5.3",
    "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
    "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
    "dev": true,
    "funding": [
    {
    "type": "individual",
    "url": "https://paulmillr.com/funding/"
    }
    ],
    "dependencies": {
    "anymatch": "~3.1.2",
    "braces": "~3.0.2",
    "glob-parent": "~5.1.2",
    "is-binary-path": "~2.1.0",
    "is-glob": "~4.0.1",
    "normalize-path": "~3.0.0",
    "readdirp": "~3.6.0"
    },
    "engines": {
    "node": ">= 8.10.0"
    },
    "optionalDependencies": {
    "fsevents": "~2.3.2"
    }
    },
    "node_modules/chokidar/node_modules/glob-parent": {
    "version": "5.1.2",
    "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
    "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
    "dev": true,
    "dependencies": {
    "is-glob": "^4.0.1"
    },
    "engines": {
    "node": ">= 6"
    }
    },
    "node_modules/color-convert": {
    "version": "1.9.3",
    "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
    "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
    "dev": true,
    "dependencies": {
    "color-name": "1.1.3"
    }
    },
    "node_modules/color-name": {
    "version": "1.1.3",
    "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
    "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
    "dev": true
    },
    "node_modules/commander": {
    "version": "4.1.1",
    "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
    "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
    "dev": true,
    "engines": {
    "node": ">= 6"
    }
    },
    "node_modules/concat-map": {
    "version": "0.0.1",
    "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
    "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
    "dev": true
    },
    "node_modules/convert-source-map": {
    "version": "2.0.0",
    "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
    "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
    "dev": true
    },
    "node_modules/cssesc": {
    "version": "3.0.0",
    "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
    "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
    "dev": true,
    "bin": {
    "cssesc": "bin/cssesc"
    },
    "engines": {
    "node": ">=4"
    }
    },
    "node_modules/debug": {
    "version": "4.3.4",
    "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
    "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
    "dev": true,
    "dependencies": {
    "ms": "2.1.2"
    },
    "engines": {
    "node": ">=6.0"
    },
    "peerDependenciesMeta": {
    "supports-color": {
    "optional": true
    }
    }
    },
    "node_modules/didyoumean": {
    "version": "1.2.2",
    "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
    "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
    "dev": true
    },
    "node_modules/dlv": {
    "version": "1.1.3",
    "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
    "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
    "dev": true
    },
    "node_modules/electron-to-chromium": {
    "version": "1.4.554",
    "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.554.tgz",
    "integrity": "sha512-Q0umzPJjfBrrj8unkONTgbKQXzXRrH7sVV7D9ea2yBV3Oaogz991yhbpfvo2LMNkJItmruXTEzVpP9cp7vaIiQ==",
    "dev": true
    },
    "node_modules/esbuild": {
    "version": "0.18.20",
    "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
    "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
    "dev": true,
    "hasInstallScript": true,
    "bin": {
    "esbuild": "bin/esbuild"
    },
    "engines": {
    "node": ">=12"
    },
    "optionalDependencies": {
    "@esbuild/android-arm": "0.18.20",
    "@esbuild/android-arm64": "0.18.20",
    "@esbuild/android-x64": "0.18.20",
    "@esbuild/darwin-arm64": "0.18.20",
    "@esbuild/darwin-x64": "0.18.20",
    "@esbuild/freebsd-arm64": "0.18.20",
    "@esbuild/freebsd-x64": "0.18.20",
    "@esbuild/linux-arm": "0.18.20",
    "@esbuild/linux-arm64": "0.18.20",
    "@esbuild/linux-ia32": "0.18.20",
    "@esbuild/linux-loong64": "0.18.20",
    "@esbuild/linux-mips64el": "0.18.20",
    "@esbuild/linux-ppc64": "0.18.20",
    "@esbuild/linux-riscv64": "0.18.20",
    "@esbuild/linux-s390x": "0.18.20",
    "@esbuild/linux-x64": "0.18.20",
    "@esbuild/netbsd-x64": "0.18.20",
    "@esbuild/openbsd-x64": "0.18.20",
    "@esbuild/sunos-x64": "0.18.20",
    "@esbuild/win32-arm64": "0.18.20",
    "@esbuild/win32-ia32": "0.18.20",
    "@esbuild/win32-x64": "0.18.20"
    }
    },
    "node_modules/escalade": {
    "version": "3.1.1",
    "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
    "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
    "dev": true,
    "engines": {
    "node": ">=6"
    }
    },
    "node_modules/escape-string-regexp": {
    "version": "1.0.5",
    "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
    "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
    "dev": true,
    "engines": {
    "node": ">=0.8.0"
    }
    },
    "node_modules/fast-glob": {
    "version": "3.3.1",
    "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
    "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
    "dev": true,
    "dependencies": {
    "@nodelib/fs.stat": "^2.0.2",
    "@nodelib/fs.walk": "^1.2.3",
    "glob-parent": "^5.1.2",
    "merge2": "^1.3.0",
    "micromatch": "^4.0.4"
    },
    "engines": {
    "node": ">=8.6.0"
    }
    },
    "node_modules/fast-glob/node_modules/glob-parent": {
    "version": "5.1.2",
    "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
    "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
    "dev": true,
    "dependencies": {
    "is-glob": "^4.0.1"
    },
    "engines": {
    "node": ">= 6"
    }
    },
    "node_modules/fastq": {
    "version": "1.15.0",
    "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
    "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
    "dev": true,
    "dependencies": {
    "reusify": "^1.0.4"
    }
    },
    "node_modules/fill-range": {
    "version": "7.0.1",
    "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
    "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
    "dev": true,
    "dependencies": {
    "to-regex-range": "^5.0.1"
    },
    "engines": {
    "node": ">=8"
    }
    },
    "node_modules/fraction.js": {
    "version": "4.3.7",
    "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
    "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
    "dev": true,
    "engines": {
    "node": "*"
    },
    "funding": {
    "type": "patreon",
    "url": "https://github.com/sponsors/rawify"
    }
    },
    "node_modules/fs.realpath": {
    "version": "1.0.0",
    "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
    "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
    "dev": true
    },
    "node_modules/fsevents": {
    "version": "2.3.3",
    "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
    "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
    "dev": true,
    "hasInstallScript": true,
    "optional": true,
    "os": [
    "darwin"
    ],
    "engines": {
    "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
    }
    },
    "node_modules/gensync": {
    "version": "1.0.0-beta.2",
    "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
    "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
    "dev": true,
    "engines": {
    "node": ">=6.9.0"
    }
    },
    "node_modules/glob": {
    "version": "7.1.6",
    "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
    "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
    "dev": true,
    "dependencies": {
    "fs.realpath": "^1.0.0",
    "inflight": "^1.0.4",
    "inherits": "2",
    "minimatch": "^3.0.4",
    "once": "^1.3.0",
    "path-is-absolute": "^1.0.0"
    },
    "engines": {
    "node": "*"
    },
    "funding": {
    "url": "https://github.com/sponsors/isaacs"
    }
    },
    "node_modules/glob-parent": {
    "version": "6.0.2",
    "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
    "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
    "dev": true,
    "dependencies": {
    "is-glob": "^4.0.3"
    },
    "engines": {
    "node": ">=10.13.0"
    }
    },
    "node_modules/globals": {
    "version": "11.12.0",
    "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
    "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
    "dev": true,
    "engines": {
    "node": ">=4"
    }
    },
    "node_modules/has": {
    "version": "1.0.4",
    "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz",
    "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==",
    "dev": true,
    "engines": {
    "node": ">= 0.4.0"
    }
    },
    "node_modules/has-flag": {
    "version": "3.0.0",
    "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
    "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
    "dev": true,
    "engines": {
    "node": ">=4"
    }
    },
    "node_modules/inflight": {
    "version": "1.0.6",
    "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
    "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
    "dev": true,
    "dependencies": {
    "once": "^1.3.0",
    "wrappy": "1"
    }
    },
    "node_modules/inherits": {
    "version": "2.0.4",
    "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
    "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
    "dev": true
    },
    "node_modules/is-binary-path": {
    "version": "2.1.0",
    "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
    "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
    "dev": true,
    "dependencies": {
    "binary-extensions": "^2.0.0"
    },
    "engines": {
    "node": ">=8"
    }
    },
    "node_modules/is-core-module": {
    "version": "2.13.0",
    "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz",
    "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==",
    "dev": true,
    "dependencies": {
    "has": "^1.0.3"
    },
    "funding": {
    "url": "https://github.com/sponsors/ljharb"
    }
    },
    "node_modules/is-extglob": {
    "version": "2.1.1",
    "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
    "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
    "dev": true,
    "engines": {
    "node": ">=0.10.0"
    }
    },
    "node_modules/is-glob": {
    "version": "4.0.3",
    "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
    "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
    "dev": true,
    "dependencies": {
    "is-extglob": "^2.1.1"
    },
    "engines": {
    "node": ">=0.10.0"
    }
    },
    "node_modules/is-number": {
    "version": "7.0.0",
    "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
    "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
    "dev": true,
    "engines": {
    "node": ">=0.12.0"
    }
    },
    "node_modules/jiti": {
    "version": "1.20.0",
    "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.20.0.tgz",
    "integrity": "sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==",
    "dev": true,
    "bin": {
    "jiti": "bin/jiti.js"
    }
    },
    "node_modules/js-tokens": {
    "version": "4.0.0",
    "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
    "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
    },
    "node_modules/jsesc": {
    "version": "2.5.2",
    "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
    "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
    "dev": true,
    "bin": {
    "jsesc": "bin/jsesc"
    },
    "engines": {
    "node": ">=4"
    }
    },
    "node_modules/json5": {
    "version": "2.2.3",
    "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
    "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
    "dev": true,
    "bin": {
    "json5": "lib/cli.js"
    },
    "engines": {
    "node": ">=6"
    }
    },
    "node_modules/lilconfig": {
    "version": "2.1.0",
    "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
    "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
    "dev": true,
    "engines": {
    "node": ">=10"
    }
    },
    "node_modules/lines-and-columns": {
    "version": "1.2.4",
    "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
    "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
    "dev": true
    },
    "node_modules/loose-envify": {
    "version": "1.4.0",
    "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
    "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
    "dependencies": {
    "js-tokens": "^3.0.0 || ^4.0.0"
    },
    "bin": {
    "loose-envify": "cli.js"
    }
    },
    "node_modules/lru-cache": {
    "version": "5.1.1",
    "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
    "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
    "dev": true,
    "dependencies": {
    "yallist": "^3.0.2"
    }
    },
    "node_modules/merge2": {
    "version": "1.4.1",
    "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
    "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
    "dev": true,
    "engines": {
    "node": ">= 8"
    }
    },
    "node_modules/micromatch": {
    "version": "4.0.5",
    "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
    "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
    "dev": true,
    "dependencies": {
    "braces": "^3.0.2",
    "picomatch": "^2.3.1"
    },
    "engines": {
    "node": ">=8.6"
    }
    },
    "node_modules/minimatch": {
    "version": "3.1.2",
    "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
    "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
    "dev": true,
    "dependencies": {
    "brace-expansion": "^1.1.7"
    },
    "engines": {
    "node": "*"
    }
    },
    "node_modules/ms": {
    "version": "2.1.2",
    "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
    "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
    "dev": true
    },
    "node_modules/mz": {
    "version": "2.7.0",
    "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
    "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
    "dev": true,
    "dependencies": {
    "any-promise": "^1.0.0",
    "object-assign": "^4.0.1",
    "thenify-all": "^1.0.0"
    }
    },
    "node_modules/nanoid": {
    "version": "3.3.6",
    "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
    "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
    "dev": true,
    "funding": [
    {
    "type": "github",
    "url": "https://github.com/sponsors/ai"
    }
    ],
    "bin": {
    "nanoid": "bin/nanoid.cjs"
    },
    "engines": {
    "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
    }
    },
    "node_modules/node-releases": {
    "version": "2.0.13",
    "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz",
    "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==",
    "dev": true
    },
    "node_modules/normalize-path": {
    "version": "3.0.0",
    "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
    "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
    "dev": true,
    "engines": {
    "node": ">=0.10.0"
    }
    },
    "node_modules/normalize-range": {
    "version": "0.1.2",
    "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
    "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
    "dev": true,
    "engines": {
    "node": ">=0.10.0"
    }
    },
    "node_modules/object-assign": {
    "version": "4.1.1",
    "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
    "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
    "dev": true,
    "engines": {
    "node": ">=0.10.0"
    }
    },
    "node_modules/object-hash": {
    "version": "3.0.0",
    "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
    "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
    "dev": true,
    "engines": {
    "node": ">= 6"
    }
    },
    "node_modules/once": {
    "version": "1.4.0",
    "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
    "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
    "dev": true,
    "dependencies": {
    "wrappy": "1"
    }
    },
    "node_modules/path-is-absolute": {
    "version": "1.0.1",
    "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
    "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
    "dev": true,
    "engines": {
    "node": ">=0.10.0"
    }
    },
    "node_modules/path-parse": {
    "version": "1.0.7",
    "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
    "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
    "dev": true
    },
    "node_modules/picocolors": {
    "version": "1.0.0",
    "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
    "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
    "dev": true
    },
    "node_modules/picomatch": {
    "version": "2.3.1",
    "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
    "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
    "dev": true,
    "engines": {
    "node": ">=8.6"
    },
    "funding": {
    "url": "https://github.com/sponsors/jonschlinkert"
    }
    },
    "node_modules/pify": {
    "version": "2.3.0",
    "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
    "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
    "dev": true,
    "engines": {
    "node": ">=0.10.0"
    }
    },
    "node_modules/pirates": {
    "version": "4.0.6",
    "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
    "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
    "dev": true,
    "engines": {
    "node": ">= 6"
    }
    },
    "node_modules/postcss": {
    "version": "8.4.31",
    "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
    "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
    "dev": true,
    "funding": [
    {
    "type": "opencollective",
    "url": "https://opencollective.com/postcss/"
    },
    {
    "type": "tidelift",
    "url": "https://tidelift.com/funding/github/npm/postcss"
    },
    {
    "type": "github",
    "url": "https://github.com/sponsors/ai"
    }
    ],
    "dependencies": {
    "nanoid": "^3.3.6",
    "picocolors": "^1.0.0",
    "source-map-js": "^1.0.2"
    },
    "engines": {
    "node": "^10 || ^12 || >=14"
    }
    },
    "node_modules/postcss-import": {
    "version": "15.1.0",
    "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
    "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
    "dev": true,
    "dependencies": {
    "postcss-value-parser": "^4.0.0",
    "read-cache": "^1.0.0",
    "resolve": "^1.1.7"
    },
    "engines": {
    "node": ">=14.0.0"
    },
    "peerDependencies": {
    "postcss": "^8.0.0"
    }
    },
    "node_modules/postcss-js": {
    "version": "4.0.1",
    "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
    "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
    "dev": true,
    "dependencies": {
    "camelcase-css": "^2.0.1"
    },
    "engines": {
    "node": "^12 || ^14 || >= 16"
    },
    "funding": {
    "type": "opencollective",
    "url": "https://opencollective.com/postcss/"
    },
    "peerDependencies": {
    "postcss": "^8.4.21"
    }
    },
    "node_modules/postcss-load-config": {
    "version": "4.0.1",
    "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz",
    "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==",
    "dev": true,
    "dependencies": {
    "lilconfig": "^2.0.5",
    "yaml": "^2.1.1"
    },
    "engines": {
    "node": ">= 14"
    },
    "funding": {
    "type": "opencollective",
    "url": "https://opencollective.com/postcss/"
    },
    "peerDependencies": {
    "postcss": ">=8.0.9",
    "ts-node": ">=9.0.0"
    },
    "peerDependenciesMeta": {
    "postcss": {
    "optional": true
    },
    "ts-node": {
    "optional": true
    }
    }
    },
    "node_modules/postcss-nested": {
    "version": "6.0.1",
    "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz",
    "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==",
    "dev": true,
    "dependencies": {
    "postcss-selector-parser": "^6.0.11"
    },
    "engines": {
    "node": ">=12.0"
    },
    "funding": {
    "type": "opencollective",
    "url": "https://opencollective.com/postcss/"
    },
    "peerDependencies": {
    "postcss": "^8.2.14"
    }
    },
    "node_modules/postcss-selector-parser": {
    "version": "6.0.13",
    "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz",
    "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==",
    "dev": true,
    "dependencies": {
    "cssesc": "^3.0.0",
    "util-deprecate": "^1.0.2"
    },
    "engines": {
    "node": ">=4"
    }
    },
    "node_modules/postcss-value-parser": {
    "version": "4.2.0",
    "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
    "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
    "dev": true
    },
    "node_modules/queue-microtask": {
    "version": "1.2.3",
    "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
    "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
    "dev": true,
    "funding": [
    {
    "type": "github",
    "url": "https://github.com/sponsors/feross"
    },
    {
    "type": "patreon",
    "url": "https://www.patreon.com/feross"
    },
    {
    "type": "consulting",
    "url": "https://feross.org/support"
    }
    ]
    },
    "node_modules/react": {
    "version": "18.2.0",
    "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
    "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
    "dependencies": {
    "loose-envify": "^1.1.0"
    },
    "engines": {
    "node": ">=0.10.0"
    }
    },
    "node_modules/react-dom": {
    "version": "18.2.0",
    "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
    "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
    "dependencies": {
    "loose-envify": "^1.1.0",
    "scheduler": "^0.23.0"
    },
    "peerDependencies": {
    "react": "^18.2.0"
    }
    },
    "node_modules/react-refresh": {
    "version": "0.14.0",
    "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz",
    "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==",
    "dev": true,
    "engines": {
    "node": ">=0.10.0"
    }
    },
    "node_modules/read-cache": {
    "version": "1.0.0",
    "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
    "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
    "dev": true,
    "dependencies": {
    "pify": "^2.3.0"
    }
    },
    "node_modules/readdirp": {
    "version": "3.6.0",
    "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
    "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
    "dev": true,
    "dependencies": {
    "picomatch": "^2.2.1"
    },
    "engines": {
    "node": ">=8.10.0"
    }
    },
    "node_modules/rescript": {
    "version": "10.1.4",
    "resolved": "https://registry.npmjs.org/rescript/-/rescript-10.1.4.tgz",
    "integrity": "sha512-FFKlS9AG/XrLepWsyw7B+A9DtQBPWEPDPDKghV831Y2KGbie+eeFBOS0xtRHp0xbt7S0N2Dm6hhX+kTZQ/3Ybg==",
    "hasInstallScript": true,
    "bin": {
    "bsc": "bsc",
    "bsrefmt": "bsrefmt",
    "bstracing": "lib/bstracing",
    "rescript": "rescript"
    }
    },
    "node_modules/resolve": {
    "version": "1.22.8",
    "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
    "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
    "dev": true,
    "dependencies": {
    "is-core-module": "^2.13.0",
    "path-parse": "^1.0.7",
    "supports-preserve-symlinks-flag": "^1.0.0"
    },
    "bin": {
    "resolve": "bin/resolve"
    },
    "funding": {
    "url": "https://github.com/sponsors/ljharb"
    }
    },
    "node_modules/reusify": {
    "version": "1.0.4",
    "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
    "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
    "dev": true,
    "engines": {
    "iojs": ">=1.0.0",
    "node": ">=0.10.0"
    }
    },
    "node_modules/rollup": {
    "version": "3.29.4",
    "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
    "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
    "dev": true,
    "bin": {
    "rollup": "dist/bin/rollup"
    },
    "engines": {
    "node": ">=14.18.0",
    "npm": ">=8.0.0"
    },
    "optionalDependencies": {
    "fsevents": "~2.3.2"
    }
    },
    "node_modules/run-parallel": {
    "version": "1.2.0",
    "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
    "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
    "dev": true,
    "funding": [
    {
    "type": "github",
    "url": "https://github.com/sponsors/feross"
    },
    {
    "type": "patreon",
    "url": "https://www.patreon.com/feross"
    },
    {
    "type": "consulting",
    "url": "https://feross.org/support"
    }
    ],
    "dependencies": {
    "queue-microtask": "^1.2.2"
    }
    },
    "node_modules/scheduler": {
    "version": "0.23.0",
    "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
    "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
    "dependencies": {
    "loose-envify": "^1.1.0"
    }
    },
    "node_modules/semver": {
    "version": "6.3.1",
    "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
    "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
    "dev": true,
    "bin": {
    "semver": "bin/semver.js"
    }
    },
    "node_modules/source-map-js": {
    "version": "1.0.2",
    "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
    "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
    "dev": true,
    "engines": {
    "node": ">=0.10.0"
    }
    },
    "node_modules/sucrase": {
    "version": "3.34.0",
    "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz",
    "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==",
    "dev": true,
    "dependencies": {
    "@jridgewell/gen-mapping": "^0.3.2",
    "commander": "^4.0.0",
    "glob": "7.1.6",
    "lines-and-columns": "^1.1.6",
    "mz": "^2.7.0",
    "pirates": "^4.0.1",
    "ts-interface-checker": "^0.1.9"
    },
    "bin": {
    "sucrase": "bin/sucrase",
    "sucrase-node": "bin/sucrase-node"
    },
    "engines": {
    "node": ">=8"
    }
    },
    "node_modules/supports-color": {
    "version": "5.5.0",
    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
    "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
    "dev": true,
    "dependencies": {
    "has-flag": "^3.0.0"
    },
    "engines": {
    "node": ">=4"
    }
    },
    "node_modules/supports-preserve-symlinks-flag": {
    "version": "1.0.0",
    "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
    "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
    "dev": true,
    "engines": {
    "node": ">= 0.4"
    },
    "funding": {
    "url": "https://github.com/sponsors/ljharb"
    }
    },
    "node_modules/tailwindcss": {
    "version": "3.3.3",
    "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz",
    "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==",
    "dev": true,
    "dependencies": {
    "@alloc/quick-lru": "^5.2.0",
    "arg": "^5.0.2",
    "chokidar": "^3.5.3",
    "didyoumean": "^1.2.2",
    "dlv": "^1.1.3",
    "fast-glob": "^3.2.12",
    "glob-parent": "^6.0.2",
    "is-glob": "^4.0.3",
    "jiti": "^1.18.2",
    "lilconfig": "^2.1.0",
    "micromatch": "^4.0.5",
    "normalize-path": "^3.0.0",
    "object-hash": "^3.0.0",
    "picocolors": "^1.0.0",
    "postcss": "^8.4.23",
    "postcss-import": "^15.1.0",
    "postcss-js": "^4.0.1",
    "postcss-load-config": "^4.0.1",
    "postcss-nested": "^6.0.1",
    "postcss-selector-parser": "^6.0.11",
    "resolve": "^1.22.2",
    "sucrase": "^3.32.0"
    },
    "bin": {
    "tailwind": "lib/cli.js",
    "tailwindcss": "lib/cli.js"
    },
    "engines": {
    "node": ">=14.0.0"
    }
    },
    "node_modules/thenify": {
    "version": "3.3.1",
    "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
    "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
    "dev": true,
    "dependencies": {
    "any-promise": "^1.0.0"
    }
    },
    "node_modules/thenify-all": {
    "version": "1.6.0",
    "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
    "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
    "dev": true,
    "dependencies": {
    "thenify": ">= 3.1.0 < 4"
    },
    "engines": {
    "node": ">=0.8"
    }
    },
    "node_modules/to-fast-properties": {
    "version": "2.0.0",
    "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
    "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
    "dev": true,
    "engines": {
    "node": ">=4"
    }
    },
    "node_modules/to-regex-range": {
    "version": "5.0.1",
    "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
    "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
    "dev": true,
    "dependencies": {
    "is-number": "^7.0.0"
    },
    "engines": {
    "node": ">=8.0"
    }
    },
    "node_modules/ts-interface-checker": {
    "version": "0.1.13",
    "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
    "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
    "dev": true
    },
    "node_modules/update-browserslist-db": {
    "version": "1.0.13",
    "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
    "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
    "dev": true,
    "funding": [
    {
    "type": "opencollective",
    "url": "https://opencollective.com/browserslist"
    },
    {
    "type": "tidelift",
    "url": "https://tidelift.com/funding/github/npm/browserslist"
    },
    {
    "type": "github",
    "url": "https://github.com/sponsors/ai"
    }
    ],
    "dependencies": {
    "escalade": "^3.1.1",
    "picocolors": "^1.0.0"
    },
    "bin": {
    "update-browserslist-db": "cli.js"
    },
    "peerDependencies": {
    "browserslist": ">= 4.21.0"
    }
    },
    "node_modules/util-deprecate": {
    "version": "1.0.2",
    "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
    "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
    "dev": true
    },
    "node_modules/vite": {
    "version": "4.4.11",
    "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz",
    "integrity": "sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==",
    "dev": true,
    "dependencies": {
    "esbuild": "^0.18.10",
    "postcss": "^8.4.27",
    "rollup": "^3.27.1"
    },
    "bin": {
    "vite": "bin/vite.js"
    },
    "engines": {
    "node": "^14.18.0 || >=16.0.0"
    },
    "funding": {
    "url": "https://github.com/vitejs/vite?sponsor=1"
    },
    "optionalDependencies": {
    "fsevents": "~2.3.2"
    },
    "peerDependencies": {
    "@types/node": ">= 14",
    "less": "*",
    "lightningcss": "^1.21.0",
    "sass": "*",
    "stylus": "*",
    "sugarss": "*",
    "terser": "^5.4.0"
    },
    "peerDependenciesMeta": {
    "@types/node": {
    "optional": true
    },
    "less": {
    "optional": true
    },
    "lightningcss": {
    "optional": true
    },
    "sass": {
    "optional": true
    },
    "stylus": {
    "optional": true
    },
    "sugarss": {
    "optional": true
    },
    "terser": {
    "optional": true
    }
    }
    },
    "node_modules/wrappy": {
    "version": "1.0.2",
    "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
    "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
    "dev": true
    },
    "node_modules/yallist": {
    "version": "3.1.1",
    "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
    "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
    "dev": true
    },
    "node_modules/yaml": {
    "version": "2.3.2",
    "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz",
    "integrity": "sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==",
    "dev": true,
    "engines": {
    "node": ">= 14"
    }
    }
    }
    }
  • file addition: index.html (----------)
    [0.4]
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>ReScript + Vite + React</title>
    </head>
    <body>
    <div id="root"></div>
    <script type="module" src="/src/Main.bs.mjs"></script>
    </body>
    </html>
  • file addition: bsconfig.json (----------)
    [0.4]
    {
    "name": "pmltt-lang",
    "sources": [
    {
    "dir": "src",
    "subdirs": true
    }
    ],
    "package-specs": [
    {
    "module": "es6",
    "in-source": true
    }
    ],
    "suffix": ".bs.mjs",
    "bs-dependencies": [
    "@rescript/react",
    "@rescript/core"
    ],
    "jsx": {
    "version": 4,
    "mode": "automatic"
    },
    "bsc-flags": [
    "-open RescriptCore"
    ]
    }
  • file addition: README.md (----------)
    [0.4]
    # ReScript / Vite Starter Template
    This is a Vite-based template with following setup:
    - [ReScript](https://rescript-lang.org) 10.1 with @rescript/react and JSX 4 automatic mode
    - ES6 modules (ReScript code compiled to `.bs.mjs` files)
    - Vite 4 with React Plugin (Fast Refresh)
    - Tailwind 3
    ## Development
    Run ReScript in dev mode:
    ```sh
    npm run res:dev
    ```
    In another tab, run the Vite dev server:
    ```sh
    npm run dev
    ```
    ## Tips
    ### Fast Refresh & ReScript
    Make sure to create interface files (`.resi`) for each `*.res` file.
    Fast Refresh requires you to **only export React components**, and it's easy to unintenionally export other values that will disable Fast Refresh (you will see a message in the browser console whenever this happens).
    ### Why are the generated `.bs.mjs` files tracked in git?
    In ReScript, it's a good habit to keep track of the actual JS output the compiler emits. It allows quick sanity checking if we made any changes that actually have an impact on the resulting JS code (especially when doing major compiler upgrades, it's a good way to verify if production code will behave the same way as before the upgrade).
    This will also make it easier for your Non-ReScript coworkers to read and understand the changes in Github PRs, and call you out when you are writing inefficient code.
    If you want to opt-out, feel free to remove all compiled `.mjs` files within the `src` directory and add `src/**/*.mjs` in your `.gitignore`.
  • file addition: .gitignore (----------)
    [0.4]
    # Logs
    logs
    *.log
    npm-debug.log*
    yarn-debug.log*
    yarn-error.log*
    pnpm-debug.log*
    lerna-debug.log*
    node_modules
    dist
    dist-ssr
    *.local
    # Editor directories and files
    .vscode/*
    !.vscode/extensions.json
    .idea
    .DS_Store
    *.suo
    *.ntvs*
    *.njsproj
    *.sln
    *.sw?
    # ReScript
    /lib/
    .bsb.lock
    .merlin
    *.bs.mjs
  • file addition: hwk1.typ (----------)
    [0.2]
    #import "@preview/prooftrees:0.1.0": *
    #let natrec = text[natrec]
    #let suc = text[suc]
    = Problem 1
    Define `funsplit` in terms of `apply`.
    $ "funsplit"(f, d) &equiv d("apply"(f, (x) x)) $
    In the case of $f = lambda b$ the following evaluation occurs:
    $ "funsplit"(lambda b, d) &equiv d( "apply"(lambda b, (x) x)) \
    &equiv d(((x)x)(b)) \
    &equiv d(b) $
    = Problem 2
    Assuming that you have Eq sets at your disposal, use only rules (without appealing to the One True Language) to prove:
    $ plus.circle(x, 0) = x ∈ NN [x ∈ NN] $
    Please be pedantic and explicitly use a rule even for "obvious" steps. You do not have to draw a big derivation tree (which is difficult to typeset), but it should be clear which rule you are using at each step. If you are using an implicit rule that the authors did not explicitly write out, make it clear what it is. If you are not sure what a derivation tree is, whether a particular rule is allowed, or which emoji was just introduced in Emoji 15.1, use the Discord forum immediately.
    #{
    tree(
    axi[$C(v) "set" [v in NN]$],
    axi[$x in NN$],
    axi[$d in C(0)$],
    axi[$x in NN$],
    nary(4)[$natrec(x, 0, (u, v) suc(v)) equiv x [Delta tack.r x in NN]$],
    )
    tree(
    axi[],
    uni[$plus.circle(x, 0) equiv natrec(x, 0, (u, v) suc(v)) [Gamma tack.r x in NN]$],
    axi[$natrec(x, 0, (u, v) suc(v)) equiv x [Delta tack.r x in NN]$],
    bin[$plus.circle(x, 0) equiv x in NN [(Gamma, Delta) tack.r x in NN]$],
    )
    }
  • file addition: csci8980-f23.agda-lib (----------)
    [0.2]
    include: bidir
    depend: standard-library
  • file addition: .gitignore (----------)
    [0.2]
    .DS_Store
    *.pdf