@stlite/desktop 0.21.2 → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -2
- package/build/asset-manifest.json +93 -93
- package/build/electron/main.js +60 -10
- package/build/index.html +1 -1
- package/build/static/css/{6.03f87ee7.chunk.css → 6.69790b96.chunk.css} +1 -1
- package/build/static/css/{main.b6e9910c.chunk.css → main.7bc75681.chunk.css} +1 -1
- package/build/static/js/{0.db2b8db1.chunk.js → 0.14aa4233.chunk.js} +1 -1
- package/build/static/js/{1.d8a95919.chunk.js → 1.176aded5.chunk.js} +1 -1
- package/build/static/js/{10.dae52f04.chunk.js → 10.e5ea6d64.chunk.js} +1 -1
- package/build/static/js/{11.9fe45850.chunk.js → 11.5e15526e.chunk.js} +2 -2
- package/build/static/js/{11.9fe45850.chunk.js.LICENSE.txt → 11.5e15526e.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{12.209a1965.chunk.js → 12.8105987b.chunk.js} +2 -2
- package/build/static/js/{12.209a1965.chunk.js.LICENSE.txt → 12.8105987b.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{13.a3dda2ea.chunk.js → 13.6f270c1f.chunk.js} +2 -2
- package/build/static/js/{13.a3dda2ea.chunk.js.LICENSE.txt → 13.6f270c1f.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{14.86cd17bd.chunk.js → 14.3da5e7a9.chunk.js} +1 -1
- package/build/static/js/{15.1bdac30d.chunk.js → 15.91a85aa0.chunk.js} +2 -2
- package/build/static/js/{15.1bdac30d.chunk.js.LICENSE.txt → 15.91a85aa0.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{16.be849095.chunk.js → 16.650490ee.chunk.js} +2 -2
- package/build/static/js/{16.be849095.chunk.js.LICENSE.txt → 16.650490ee.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{17.cc750fa1.chunk.js → 17.4c6481b3.chunk.js} +1 -1
- package/build/static/js/{18.5007c118.chunk.js → 18.e3d4364d.chunk.js} +2 -2
- package/build/static/js/{18.5007c118.chunk.js.LICENSE.txt → 18.e3d4364d.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{19.1d97adb1.chunk.js → 19.9004a138.chunk.js} +3 -3
- package/build/static/js/{19.1d97adb1.chunk.js.LICENSE.txt → 19.9004a138.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{2.42f468c9.chunk.js → 2.26deed5e.chunk.js} +2 -2
- package/build/static/js/{2.42f468c9.chunk.js.LICENSE.txt → 2.26deed5e.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{20.d86738b4.chunk.js → 20.1e287e6d.chunk.js} +1 -1
- package/build/static/js/{21.8fca1019.chunk.js → 21.cc58bd99.chunk.js} +1 -1
- package/build/static/js/{22.d22eb326.chunk.js → 22.fe58abe1.chunk.js} +2 -2
- package/build/static/js/{22.d22eb326.chunk.js.LICENSE.txt → 22.fe58abe1.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{23.703a0005.chunk.js → 23.ee721415.chunk.js} +3 -3
- package/build/static/js/{23.703a0005.chunk.js.LICENSE.txt → 23.ee721415.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{24.bbdd8ad5.chunk.js → 24.36b10d26.chunk.js} +2 -2
- package/build/static/js/{24.bbdd8ad5.chunk.js.LICENSE.txt → 24.36b10d26.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{25.7a13965c.chunk.js → 25.edf85627.chunk.js} +2 -2
- package/build/static/js/{25.7a13965c.chunk.js.LICENSE.txt → 25.edf85627.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{26.5d02767c.chunk.js → 26.99f3cc19.chunk.js} +2 -2
- package/build/static/js/{26.5d02767c.chunk.js.LICENSE.txt → 26.99f3cc19.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{27.a1975825.chunk.js → 27.d7aacc94.chunk.js} +2 -2
- package/build/static/js/{27.a1975825.chunk.js.LICENSE.txt → 27.d7aacc94.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{28.8fe6cf95.chunk.js → 28.d24eb9cf.chunk.js} +3 -3
- package/build/static/js/{28.8fe6cf95.chunk.js.LICENSE.txt → 28.d24eb9cf.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{29.2a3ece9e.chunk.js → 29.fbb528d8.chunk.js} +2 -2
- package/build/static/js/{29.2a3ece9e.chunk.js.LICENSE.txt → 29.fbb528d8.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{3.82223a8f.chunk.js → 3.f4fb8871.chunk.js} +1 -1
- package/build/static/js/{30.99b51097.chunk.js → 30.32ab2cb4.chunk.js} +2 -2
- package/build/static/js/{30.99b51097.chunk.js.LICENSE.txt → 30.32ab2cb4.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{31.ff33aa2d.chunk.js → 31.9c06312e.chunk.js} +2 -2
- package/build/static/js/{31.ff33aa2d.chunk.js.LICENSE.txt → 31.9c06312e.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{32.a0448bd6.chunk.js → 32.a1f2009d.chunk.js} +2 -2
- package/build/static/js/{32.a0448bd6.chunk.js.LICENSE.txt → 32.a1f2009d.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{33.4e785a88.chunk.js → 33.1d5fce1c.chunk.js} +2 -2
- package/build/static/js/{33.4e785a88.chunk.js.LICENSE.txt → 33.1d5fce1c.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{34.a91bbe12.chunk.js → 34.edb9c338.chunk.js} +2 -2
- package/build/static/js/{34.a91bbe12.chunk.js.LICENSE.txt → 34.edb9c338.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{35.d2720d0c.chunk.js → 35.6bd7c1ed.chunk.js} +2 -2
- package/build/static/js/{35.d2720d0c.chunk.js.LICENSE.txt → 35.6bd7c1ed.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{36.19b6ded6.chunk.js → 36.be12d12e.chunk.js} +2 -2
- package/build/static/js/{36.19b6ded6.chunk.js.LICENSE.txt → 36.be12d12e.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{37.c8ade714.chunk.js → 37.b845d4ba.chunk.js} +2 -2
- package/build/static/js/{37.c8ade714.chunk.js.LICENSE.txt → 37.b845d4ba.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{38.a8e76ebd.chunk.js → 38.0e8cfb78.chunk.js} +2 -2
- package/build/static/js/{38.a8e76ebd.chunk.js.LICENSE.txt → 38.0e8cfb78.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{39.815183b5.chunk.js → 39.73c851be.chunk.js} +2 -2
- package/build/static/js/{39.815183b5.chunk.js.LICENSE.txt → 39.73c851be.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{40.5e639584.chunk.js → 40.1fc38a50.chunk.js} +2 -2
- package/build/static/js/{40.5e639584.chunk.js.LICENSE.txt → 40.1fc38a50.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{41.1811bda2.chunk.js → 41.4ddf36bc.chunk.js} +2 -2
- package/build/static/js/{41.1811bda2.chunk.js.LICENSE.txt → 41.4ddf36bc.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{42.ccc87d41.chunk.js → 42.e5620440.chunk.js} +2 -2
- package/build/static/js/{42.ccc87d41.chunk.js.LICENSE.txt → 42.e5620440.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{43.dd888752.chunk.js → 43.44eb58de.chunk.js} +2 -2
- package/build/static/js/{43.dd888752.chunk.js.LICENSE.txt → 43.44eb58de.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{44.14f2e50d.chunk.js → 44.35b43369.chunk.js} +2 -2
- package/build/static/js/{44.14f2e50d.chunk.js.LICENSE.txt → 44.35b43369.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{45.61ea1afe.chunk.js → 45.91664b3c.chunk.js} +2 -2
- package/build/static/js/{45.61ea1afe.chunk.js.LICENSE.txt → 45.91664b3c.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{46.3201e0ba.chunk.js → 46.e9639103.chunk.js} +2 -2
- package/build/static/js/{46.3201e0ba.chunk.js.LICENSE.txt → 46.e9639103.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{47.f6442eb9.chunk.js → 47.77b33a34.chunk.js} +2 -2
- package/build/static/js/{47.f6442eb9.chunk.js.LICENSE.txt → 47.77b33a34.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/6.8496e815.chunk.js +2 -0
- package/build/static/js/{6.cfeb0558.chunk.js.LICENSE.txt → 6.8496e815.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{7.e179a232.chunk.js → 7.54bbd037.chunk.js} +2 -2
- package/build/static/js/{7.e179a232.chunk.js.LICENSE.txt → 7.54bbd037.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{8.89ddb52f.chunk.js → 8.934b1bbd.chunk.js} +2 -2
- package/build/static/js/{8.89ddb52f.chunk.js.LICENSE.txt → 8.934b1bbd.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/{9.ea63c205.chunk.js → 9.8ff376a2.chunk.js} +1 -1
- package/build/static/js/main.118127a6.chunk.js +28 -0
- package/build/static/js/{main.984ac8f5.chunk.js.LICENSE.txt → main.118127a6.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/runtime-main.fe933feb.js +1 -0
- package/package.json +7 -5
- package/build/static/js/6.cfeb0558.chunk.js +0 -2
- package/build/static/js/main.984ac8f5.chunk.js +0 -28
- package/build/static/js/runtime-main.bae92e60.js +0 -1
package/README.md
CHANGED
|
@@ -25,8 +25,8 @@ Convert your [Streamlit](https://streamlit.io/) application into a desktop app w
|
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@stlite/desktop": "^0.21.0",
|
|
28
|
-
"electron": "
|
|
29
|
-
"electron-builder": "^23.
|
|
28
|
+
"electron": "^22.0.0",
|
|
29
|
+
"electron-builder": "^23.6.0"
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
```
|
|
@@ -49,3 +49,12 @@ Convert your [Streamlit](https://streamlit.io/) application into a desktop app w
|
|
|
49
49
|
- This command is just a wrapper of `electron` command as you can see at the `"scripts"` field in the `package.json`. It launches Electron and starts the app with `./build/electron/main.js`, which is specified at the `"main"` field in the `package.json`.
|
|
50
50
|
9. Run `npm run dist` or `yarn dist` for packaging.
|
|
51
51
|
- This command bundles the `./build` directory created in the step above into application files (`.app`, `.exe`, `.dmg` etc.) in the `./dist` directory. To customize the built app, e.g. setting the icon, follow the [`electron-builder`](https://www.electron.build/) instructions.
|
|
52
|
+
|
|
53
|
+
## Use the latest version of Electron
|
|
54
|
+
|
|
55
|
+
To make your app secure, be sure to use the latest version of Electron.
|
|
56
|
+
This is [announced](https://www.electronjs.org/docs/latest/tutorial/security#16-use-a-current-version-of-electron) as one of the security best practices in the Electron document too.
|
|
57
|
+
|
|
58
|
+
## Limitations
|
|
59
|
+
|
|
60
|
+
- Navigation to external resources like `st.markdown("[link](https://streamlit.io/)")` does not work for security. See https://github.com/whitphx/stlite/pull/445 and let us know if you have use cases where you have to use such external links.
|
|
@@ -1,99 +1,99 @@
|
|
|
1
1
|
{
|
|
2
2
|
"files": {
|
|
3
|
-
"static/js/0.
|
|
4
|
-
"static/js/1.
|
|
5
|
-
"static/js/2.
|
|
6
|
-
"static/js/3.
|
|
7
|
-
"main.css": "/static/css/main.
|
|
8
|
-
"main.js": "/static/js/main.
|
|
9
|
-
"runtime-main.js": "/static/js/runtime-main.
|
|
10
|
-
"static/css/6.
|
|
11
|
-
"static/js/6.
|
|
3
|
+
"static/js/0.14aa4233.chunk.js": "/static/js/0.14aa4233.chunk.js",
|
|
4
|
+
"static/js/1.176aded5.chunk.js": "/static/js/1.176aded5.chunk.js",
|
|
5
|
+
"static/js/2.26deed5e.chunk.js": "/static/js/2.26deed5e.chunk.js",
|
|
6
|
+
"static/js/3.f4fb8871.chunk.js": "/static/js/3.f4fb8871.chunk.js",
|
|
7
|
+
"main.css": "/static/css/main.7bc75681.chunk.css",
|
|
8
|
+
"main.js": "/static/js/main.118127a6.chunk.js",
|
|
9
|
+
"runtime-main.js": "/static/js/runtime-main.fe933feb.js",
|
|
10
|
+
"static/css/6.69790b96.chunk.css": "/static/css/6.69790b96.chunk.css",
|
|
11
|
+
"static/js/6.8496e815.chunk.js": "/static/js/6.8496e815.chunk.js",
|
|
12
12
|
"static/css/7.3d0f8b8b.chunk.css": "/static/css/7.3d0f8b8b.chunk.css",
|
|
13
|
-
"static/js/7.
|
|
14
|
-
"static/js/8.
|
|
15
|
-
"static/js/9.
|
|
13
|
+
"static/js/7.54bbd037.chunk.js": "/static/js/7.54bbd037.chunk.js",
|
|
14
|
+
"static/js/8.934b1bbd.chunk.js": "/static/js/8.934b1bbd.chunk.js",
|
|
15
|
+
"static/js/9.8ff376a2.chunk.js": "/static/js/9.8ff376a2.chunk.js",
|
|
16
16
|
"static/css/10.fd9811dd.chunk.css": "/static/css/10.fd9811dd.chunk.css",
|
|
17
|
-
"static/js/10.
|
|
18
|
-
"static/js/11.
|
|
19
|
-
"static/js/12.
|
|
20
|
-
"static/js/13.
|
|
21
|
-
"static/js/14.
|
|
22
|
-
"static/js/15.
|
|
23
|
-
"static/js/16.
|
|
24
|
-
"static/js/17.
|
|
25
|
-
"static/js/18.
|
|
26
|
-
"static/js/19.
|
|
27
|
-
"static/js/20.
|
|
28
|
-
"static/js/21.
|
|
29
|
-
"static/js/22.
|
|
30
|
-
"static/js/23.
|
|
31
|
-
"static/js/24.
|
|
32
|
-
"static/js/25.
|
|
33
|
-
"static/js/26.
|
|
34
|
-
"static/js/27.
|
|
35
|
-
"static/js/28.
|
|
36
|
-
"static/js/29.
|
|
37
|
-
"static/js/30.
|
|
38
|
-
"static/js/31.
|
|
39
|
-
"static/js/32.
|
|
40
|
-
"static/js/33.
|
|
41
|
-
"static/js/34.
|
|
42
|
-
"static/js/35.
|
|
43
|
-
"static/js/36.
|
|
44
|
-
"static/js/37.
|
|
45
|
-
"static/js/38.
|
|
46
|
-
"static/js/39.
|
|
47
|
-
"static/js/40.
|
|
48
|
-
"static/js/41.
|
|
49
|
-
"static/js/42.
|
|
50
|
-
"static/js/43.
|
|
51
|
-
"static/js/44.
|
|
52
|
-
"static/js/45.
|
|
53
|
-
"static/js/46.
|
|
54
|
-
"static/js/47.
|
|
17
|
+
"static/js/10.e5ea6d64.chunk.js": "/static/js/10.e5ea6d64.chunk.js",
|
|
18
|
+
"static/js/11.5e15526e.chunk.js": "/static/js/11.5e15526e.chunk.js",
|
|
19
|
+
"static/js/12.8105987b.chunk.js": "/static/js/12.8105987b.chunk.js",
|
|
20
|
+
"static/js/13.6f270c1f.chunk.js": "/static/js/13.6f270c1f.chunk.js",
|
|
21
|
+
"static/js/14.3da5e7a9.chunk.js": "/static/js/14.3da5e7a9.chunk.js",
|
|
22
|
+
"static/js/15.91a85aa0.chunk.js": "/static/js/15.91a85aa0.chunk.js",
|
|
23
|
+
"static/js/16.650490ee.chunk.js": "/static/js/16.650490ee.chunk.js",
|
|
24
|
+
"static/js/17.4c6481b3.chunk.js": "/static/js/17.4c6481b3.chunk.js",
|
|
25
|
+
"static/js/18.e3d4364d.chunk.js": "/static/js/18.e3d4364d.chunk.js",
|
|
26
|
+
"static/js/19.9004a138.chunk.js": "/static/js/19.9004a138.chunk.js",
|
|
27
|
+
"static/js/20.1e287e6d.chunk.js": "/static/js/20.1e287e6d.chunk.js",
|
|
28
|
+
"static/js/21.cc58bd99.chunk.js": "/static/js/21.cc58bd99.chunk.js",
|
|
29
|
+
"static/js/22.fe58abe1.chunk.js": "/static/js/22.fe58abe1.chunk.js",
|
|
30
|
+
"static/js/23.ee721415.chunk.js": "/static/js/23.ee721415.chunk.js",
|
|
31
|
+
"static/js/24.36b10d26.chunk.js": "/static/js/24.36b10d26.chunk.js",
|
|
32
|
+
"static/js/25.edf85627.chunk.js": "/static/js/25.edf85627.chunk.js",
|
|
33
|
+
"static/js/26.99f3cc19.chunk.js": "/static/js/26.99f3cc19.chunk.js",
|
|
34
|
+
"static/js/27.d7aacc94.chunk.js": "/static/js/27.d7aacc94.chunk.js",
|
|
35
|
+
"static/js/28.d24eb9cf.chunk.js": "/static/js/28.d24eb9cf.chunk.js",
|
|
36
|
+
"static/js/29.fbb528d8.chunk.js": "/static/js/29.fbb528d8.chunk.js",
|
|
37
|
+
"static/js/30.32ab2cb4.chunk.js": "/static/js/30.32ab2cb4.chunk.js",
|
|
38
|
+
"static/js/31.9c06312e.chunk.js": "/static/js/31.9c06312e.chunk.js",
|
|
39
|
+
"static/js/32.a1f2009d.chunk.js": "/static/js/32.a1f2009d.chunk.js",
|
|
40
|
+
"static/js/33.1d5fce1c.chunk.js": "/static/js/33.1d5fce1c.chunk.js",
|
|
41
|
+
"static/js/34.edb9c338.chunk.js": "/static/js/34.edb9c338.chunk.js",
|
|
42
|
+
"static/js/35.6bd7c1ed.chunk.js": "/static/js/35.6bd7c1ed.chunk.js",
|
|
43
|
+
"static/js/36.be12d12e.chunk.js": "/static/js/36.be12d12e.chunk.js",
|
|
44
|
+
"static/js/37.b845d4ba.chunk.js": "/static/js/37.b845d4ba.chunk.js",
|
|
45
|
+
"static/js/38.0e8cfb78.chunk.js": "/static/js/38.0e8cfb78.chunk.js",
|
|
46
|
+
"static/js/39.73c851be.chunk.js": "/static/js/39.73c851be.chunk.js",
|
|
47
|
+
"static/js/40.1fc38a50.chunk.js": "/static/js/40.1fc38a50.chunk.js",
|
|
48
|
+
"static/js/41.4ddf36bc.chunk.js": "/static/js/41.4ddf36bc.chunk.js",
|
|
49
|
+
"static/js/42.e5620440.chunk.js": "/static/js/42.e5620440.chunk.js",
|
|
50
|
+
"static/js/43.44eb58de.chunk.js": "/static/js/43.44eb58de.chunk.js",
|
|
51
|
+
"static/js/44.35b43369.chunk.js": "/static/js/44.35b43369.chunk.js",
|
|
52
|
+
"static/js/45.91664b3c.chunk.js": "/static/js/45.91664b3c.chunk.js",
|
|
53
|
+
"static/js/46.e9639103.chunk.js": "/static/js/46.e9639103.chunk.js",
|
|
54
|
+
"static/js/47.77b33a34.chunk.js": "/static/js/47.77b33a34.chunk.js",
|
|
55
55
|
"index.html": "/index.html",
|
|
56
56
|
"pypi/stlite_pyarrow-0.1.0-py3-none-any.whl": "/pypi/stlite_pyarrow-0.1.0-py3-none-any.whl",
|
|
57
57
|
"pypi/streamlit-1.13.0-py2.py3-none-any.whl": "/pypi/streamlit-1.13.0-py2.py3-none-any.whl",
|
|
58
58
|
"pypi/tornado-6.2-py3-none-any.whl": "/pypi/tornado-6.2-py3-none-any.whl",
|
|
59
|
-
"static/js/11.
|
|
60
|
-
"static/js/12.
|
|
61
|
-
"static/js/13.
|
|
62
|
-
"static/js/15.
|
|
63
|
-
"static/js/16.
|
|
64
|
-
"static/js/18.
|
|
65
|
-
"static/js/19.
|
|
66
|
-
"static/js/2.
|
|
67
|
-
"static/js/22.
|
|
68
|
-
"static/js/23.
|
|
69
|
-
"static/js/24.
|
|
70
|
-
"static/js/25.
|
|
71
|
-
"static/js/26.
|
|
72
|
-
"static/js/27.
|
|
73
|
-
"static/js/28.
|
|
74
|
-
"static/js/29.
|
|
75
|
-
"static/js/30.
|
|
76
|
-
"static/js/31.
|
|
77
|
-
"static/js/32.
|
|
78
|
-
"static/js/33.
|
|
79
|
-
"static/js/34.
|
|
80
|
-
"static/js/35.
|
|
81
|
-
"static/js/36.
|
|
82
|
-
"static/js/37.
|
|
83
|
-
"static/js/38.
|
|
84
|
-
"static/js/39.
|
|
85
|
-
"static/js/40.
|
|
86
|
-
"static/js/41.
|
|
87
|
-
"static/js/42.
|
|
88
|
-
"static/js/43.
|
|
89
|
-
"static/js/44.
|
|
90
|
-
"static/js/45.
|
|
91
|
-
"static/js/46.
|
|
92
|
-
"static/js/47.
|
|
93
|
-
"static/js/6.
|
|
94
|
-
"static/js/7.
|
|
95
|
-
"static/js/8.
|
|
96
|
-
"static/js/main.
|
|
59
|
+
"static/js/11.5e15526e.chunk.js.LICENSE.txt": "/static/js/11.5e15526e.chunk.js.LICENSE.txt",
|
|
60
|
+
"static/js/12.8105987b.chunk.js.LICENSE.txt": "/static/js/12.8105987b.chunk.js.LICENSE.txt",
|
|
61
|
+
"static/js/13.6f270c1f.chunk.js.LICENSE.txt": "/static/js/13.6f270c1f.chunk.js.LICENSE.txt",
|
|
62
|
+
"static/js/15.91a85aa0.chunk.js.LICENSE.txt": "/static/js/15.91a85aa0.chunk.js.LICENSE.txt",
|
|
63
|
+
"static/js/16.650490ee.chunk.js.LICENSE.txt": "/static/js/16.650490ee.chunk.js.LICENSE.txt",
|
|
64
|
+
"static/js/18.e3d4364d.chunk.js.LICENSE.txt": "/static/js/18.e3d4364d.chunk.js.LICENSE.txt",
|
|
65
|
+
"static/js/19.9004a138.chunk.js.LICENSE.txt": "/static/js/19.9004a138.chunk.js.LICENSE.txt",
|
|
66
|
+
"static/js/2.26deed5e.chunk.js.LICENSE.txt": "/static/js/2.26deed5e.chunk.js.LICENSE.txt",
|
|
67
|
+
"static/js/22.fe58abe1.chunk.js.LICENSE.txt": "/static/js/22.fe58abe1.chunk.js.LICENSE.txt",
|
|
68
|
+
"static/js/23.ee721415.chunk.js.LICENSE.txt": "/static/js/23.ee721415.chunk.js.LICENSE.txt",
|
|
69
|
+
"static/js/24.36b10d26.chunk.js.LICENSE.txt": "/static/js/24.36b10d26.chunk.js.LICENSE.txt",
|
|
70
|
+
"static/js/25.edf85627.chunk.js.LICENSE.txt": "/static/js/25.edf85627.chunk.js.LICENSE.txt",
|
|
71
|
+
"static/js/26.99f3cc19.chunk.js.LICENSE.txt": "/static/js/26.99f3cc19.chunk.js.LICENSE.txt",
|
|
72
|
+
"static/js/27.d7aacc94.chunk.js.LICENSE.txt": "/static/js/27.d7aacc94.chunk.js.LICENSE.txt",
|
|
73
|
+
"static/js/28.d24eb9cf.chunk.js.LICENSE.txt": "/static/js/28.d24eb9cf.chunk.js.LICENSE.txt",
|
|
74
|
+
"static/js/29.fbb528d8.chunk.js.LICENSE.txt": "/static/js/29.fbb528d8.chunk.js.LICENSE.txt",
|
|
75
|
+
"static/js/30.32ab2cb4.chunk.js.LICENSE.txt": "/static/js/30.32ab2cb4.chunk.js.LICENSE.txt",
|
|
76
|
+
"static/js/31.9c06312e.chunk.js.LICENSE.txt": "/static/js/31.9c06312e.chunk.js.LICENSE.txt",
|
|
77
|
+
"static/js/32.a1f2009d.chunk.js.LICENSE.txt": "/static/js/32.a1f2009d.chunk.js.LICENSE.txt",
|
|
78
|
+
"static/js/33.1d5fce1c.chunk.js.LICENSE.txt": "/static/js/33.1d5fce1c.chunk.js.LICENSE.txt",
|
|
79
|
+
"static/js/34.edb9c338.chunk.js.LICENSE.txt": "/static/js/34.edb9c338.chunk.js.LICENSE.txt",
|
|
80
|
+
"static/js/35.6bd7c1ed.chunk.js.LICENSE.txt": "/static/js/35.6bd7c1ed.chunk.js.LICENSE.txt",
|
|
81
|
+
"static/js/36.be12d12e.chunk.js.LICENSE.txt": "/static/js/36.be12d12e.chunk.js.LICENSE.txt",
|
|
82
|
+
"static/js/37.b845d4ba.chunk.js.LICENSE.txt": "/static/js/37.b845d4ba.chunk.js.LICENSE.txt",
|
|
83
|
+
"static/js/38.0e8cfb78.chunk.js.LICENSE.txt": "/static/js/38.0e8cfb78.chunk.js.LICENSE.txt",
|
|
84
|
+
"static/js/39.73c851be.chunk.js.LICENSE.txt": "/static/js/39.73c851be.chunk.js.LICENSE.txt",
|
|
85
|
+
"static/js/40.1fc38a50.chunk.js.LICENSE.txt": "/static/js/40.1fc38a50.chunk.js.LICENSE.txt",
|
|
86
|
+
"static/js/41.4ddf36bc.chunk.js.LICENSE.txt": "/static/js/41.4ddf36bc.chunk.js.LICENSE.txt",
|
|
87
|
+
"static/js/42.e5620440.chunk.js.LICENSE.txt": "/static/js/42.e5620440.chunk.js.LICENSE.txt",
|
|
88
|
+
"static/js/43.44eb58de.chunk.js.LICENSE.txt": "/static/js/43.44eb58de.chunk.js.LICENSE.txt",
|
|
89
|
+
"static/js/44.35b43369.chunk.js.LICENSE.txt": "/static/js/44.35b43369.chunk.js.LICENSE.txt",
|
|
90
|
+
"static/js/45.91664b3c.chunk.js.LICENSE.txt": "/static/js/45.91664b3c.chunk.js.LICENSE.txt",
|
|
91
|
+
"static/js/46.e9639103.chunk.js.LICENSE.txt": "/static/js/46.e9639103.chunk.js.LICENSE.txt",
|
|
92
|
+
"static/js/47.77b33a34.chunk.js.LICENSE.txt": "/static/js/47.77b33a34.chunk.js.LICENSE.txt",
|
|
93
|
+
"static/js/6.8496e815.chunk.js.LICENSE.txt": "/static/js/6.8496e815.chunk.js.LICENSE.txt",
|
|
94
|
+
"static/js/7.54bbd037.chunk.js.LICENSE.txt": "/static/js/7.54bbd037.chunk.js.LICENSE.txt",
|
|
95
|
+
"static/js/8.934b1bbd.chunk.js.LICENSE.txt": "/static/js/8.934b1bbd.chunk.js.LICENSE.txt",
|
|
96
|
+
"static/js/main.118127a6.chunk.js.LICENSE.txt": "/static/js/main.118127a6.chunk.js.LICENSE.txt",
|
|
97
97
|
"static/media/katex.min.css": "/static/media/KaTeX_Typewriter-Regular.c5c02d76.ttf",
|
|
98
98
|
"static/media/theme.scss": "/static/media/SourceSerifPro-SemiBoldItalic.1266f2c1.ttf",
|
|
99
99
|
"static/media/balloon-0.0e6e96ec.png": "/static/media/balloon-0.0e6e96ec.png",
|
|
@@ -108,10 +108,10 @@
|
|
|
108
108
|
"static/media/icon_running.de1119da.gif": "/static/media/icon_running.de1119da.gif"
|
|
109
109
|
},
|
|
110
110
|
"entrypoints": [
|
|
111
|
-
"static/js/runtime-main.
|
|
112
|
-
"static/css/6.
|
|
113
|
-
"static/js/6.
|
|
114
|
-
"static/css/main.
|
|
115
|
-
"static/js/main.
|
|
111
|
+
"static/js/runtime-main.fe933feb.js",
|
|
112
|
+
"static/css/6.69790b96.chunk.css",
|
|
113
|
+
"static/js/6.8496e815.chunk.js",
|
|
114
|
+
"static/css/main.7bc75681.chunk.css",
|
|
115
|
+
"static/js/main.118127a6.chunk.js"
|
|
116
116
|
]
|
|
117
117
|
}
|
package/build/electron/main.js
CHANGED
|
@@ -18,31 +18,48 @@ const createWindow = () => {
|
|
|
18
18
|
height: 720,
|
|
19
19
|
webPreferences: {
|
|
20
20
|
preload: path.join(__dirname, "preload.js"),
|
|
21
|
+
sandbox: true, // https://www.electronjs.org/docs/latest/tutorial/security#4-enable-process-sandboxing
|
|
21
22
|
},
|
|
22
23
|
});
|
|
24
|
+
const indexUrl = electron_1.app.isPackaged || process.env.NODE_ENV === "production"
|
|
25
|
+
? "file:///index.html"
|
|
26
|
+
: "http://localhost:3000/";
|
|
27
|
+
// Check the IPC sender in every callback below,
|
|
28
|
+
// following the security best practice, "17. Validate the sender of all IPC messages."
|
|
29
|
+
// https://www.electronjs.org/docs/latest/tutorial/security#17-validate-the-sender-of-all-ipc-messages
|
|
30
|
+
const isValidIpcSender = (frame) => {
|
|
31
|
+
return frame.url === indexUrl;
|
|
32
|
+
};
|
|
23
33
|
electron_1.ipcMain.handle("readSitePackagesSnapshot", (ev) => {
|
|
34
|
+
if (!isValidIpcSender(ev.senderFrame)) {
|
|
35
|
+
throw new Error("Invalid IPC sender");
|
|
36
|
+
}
|
|
24
37
|
// This archive file has to be created by ./bin/dump_snapshot.ts
|
|
25
38
|
const archiveFilePath = path.resolve(__dirname, "../site-packages-snapshot.tar.gz");
|
|
26
39
|
return fsPromises.readFile(archiveFilePath);
|
|
27
40
|
});
|
|
28
41
|
electron_1.ipcMain.handle("readStreamlitAppDirectory", async (ev) => {
|
|
42
|
+
if (!isValidIpcSender(ev.senderFrame)) {
|
|
43
|
+
throw new Error("Invalid IPC sender");
|
|
44
|
+
}
|
|
29
45
|
const streamlitAppDir = path.resolve(__dirname, "../streamlit_app");
|
|
30
46
|
return (0, file_1.walkRead)(streamlitAppDir);
|
|
31
47
|
});
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
else {
|
|
40
|
-
mainWindow.loadURL("http://localhost:3000");
|
|
41
|
-
}
|
|
48
|
+
// Even when the entrypoint is a local file like the production build,
|
|
49
|
+
// we use .loadURL() with an absolute URL with the `file://` schema
|
|
50
|
+
// instead of passing a file path to .loadFile()
|
|
51
|
+
// because absolute URLs with the file:// scheme will be resolved
|
|
52
|
+
// to absolute file paths based on the special handler
|
|
53
|
+
// registered through `interceptFileProtocol` below.
|
|
54
|
+
mainWindow.loadURL(indexUrl);
|
|
42
55
|
if (!electron_1.app.isPackaged) {
|
|
43
56
|
mainWindow.webContents.openDevTools();
|
|
44
57
|
}
|
|
45
58
|
};
|
|
59
|
+
// Enable process sandboxing globally (https://www.electronjs.org/docs/latest/tutorial/sandbox#enabling-the-sandbox-globally),
|
|
60
|
+
// following the security best practice, "4. Enable process sandboxing."
|
|
61
|
+
// https://www.electronjs.org/docs/latest/tutorial/security#4-enable-process-sandboxing
|
|
62
|
+
electron_1.app.enableSandbox();
|
|
46
63
|
// This method will be called when Electron has finished
|
|
47
64
|
// initialization and is ready to create browser windows.
|
|
48
65
|
// Some APIs can only be used after this event occurs.
|
|
@@ -77,3 +94,36 @@ electron_1.app.on("window-all-closed", () => {
|
|
|
77
94
|
if (process.platform !== "darwin")
|
|
78
95
|
electron_1.app.quit();
|
|
79
96
|
});
|
|
97
|
+
electron_1.app.on("web-contents-created", (event, contents) => {
|
|
98
|
+
// Intercepts webView creation events and forbid all,
|
|
99
|
+
// following the security best practice, "12. Verify WebView options before creation."
|
|
100
|
+
// https://www.electronjs.org/docs/latest/tutorial/security#12-verify-webview-options-before-creation
|
|
101
|
+
contents.on("will-attach-webview", (event, webPreferences, params) => {
|
|
102
|
+
// Cancels all webView creation request
|
|
103
|
+
event.preventDefault();
|
|
104
|
+
});
|
|
105
|
+
// Intercepts navigation and forbid all,
|
|
106
|
+
// following the security best practice, "13. Disable or limit navigation."
|
|
107
|
+
// https://www.electronjs.org/docs/latest/tutorial/security#13-disable-or-limit-navigation
|
|
108
|
+
contents.on("will-navigate", (event, navigationUrl) => {
|
|
109
|
+
console.debug("will-navigate", navigationUrl);
|
|
110
|
+
event.preventDefault();
|
|
111
|
+
});
|
|
112
|
+
// Limit new windows creation,
|
|
113
|
+
// following the security best practice, "14. Disable or limit creation of new windows."
|
|
114
|
+
// https://www.electronjs.org/docs/latest/tutorial/security#14-disable-or-limit-creation-of-new-windows
|
|
115
|
+
contents.setWindowOpenHandler(({ url }) => {
|
|
116
|
+
console.error("Opening a new window is not allowed.");
|
|
117
|
+
// TODO: Implement `isSafeForExternalOpen()` below with a configurable allowed list.
|
|
118
|
+
// We'll ask the operating system
|
|
119
|
+
// to open this event's url in the default browser.
|
|
120
|
+
// DON'T pass an arbitrary URL to `shell.openExternal()` here
|
|
121
|
+
// as advised at "15. Do not use shell.openExternal with untrusted content."
|
|
122
|
+
// if (isSafeForExternalOpen(url)) {
|
|
123
|
+
// setImmediate(() => {
|
|
124
|
+
// shell.openExternal(url)
|
|
125
|
+
// })
|
|
126
|
+
// }
|
|
127
|
+
return { action: "deny" };
|
|
128
|
+
});
|
|
129
|
+
});
|
package/build/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!doctype html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><title>stlite</title><meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'wasm-unsafe-eval' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; worker-src blob:; script-src-elem 'self' 'unsafe-inline' https:; style-src-elem 'self' 'unsafe-inline' https:; font-src 'self' data: https:; connect-src https://data.streamlit.io/ https://*.mapbox.com/ 'self' https:; img-src https: blob: data: file:; media-src https: blob:; frame-src https:"><link href="/static/css/6.
|
|
1
|
+
<!doctype html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><title>stlite</title><meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'wasm-unsafe-eval' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; worker-src blob:; script-src-elem 'self' 'unsafe-inline' https:; style-src-elem 'self' 'unsafe-inline' https:; font-src 'self' data: https:; connect-src https://data.streamlit.io/ https://*.mapbox.com/ 'self' https:; img-src https: blob: data: file:; media-src https: blob:; frame-src https:"><link href="/static/css/6.69790b96.chunk.css" rel="stylesheet"><link href="/static/css/main.7bc75681.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script src="/static/js/runtime-main.fe933feb.js"></script><script src="/static/js/6.8496e815.chunk.js"></script><script src="/static/js/main.118127a6.chunk.js"></script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_AMS-Regular.73ea273a.woff2) format("woff2"),url(/static/media/KaTeX_AMS-Regular.d562e886.woff) format("woff"),url(/static/media/KaTeX_AMS-Regular.853be924.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/static/media/KaTeX_Caligraphic-Bold.a1abf90d.woff2) format("woff2"),url(/static/media/KaTeX_Caligraphic-Bold.d757c535.woff) format("woff"),url(/static/media/KaTeX_Caligraphic-Bold.7489a2fb.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Caligraphic-Regular.d6484fce.woff2) format("woff2"),url(/static/media/KaTeX_Caligraphic-Regular.db074fa2.woff) format("woff"),url(/static/media/KaTeX_Caligraphic-Regular.7e873d38.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/static/media/KaTeX_Fraktur-Bold.931d67ea.woff2) format("woff2"),url(/static/media/KaTeX_Fraktur-Bold.354501ba.woff) format("woff"),url(/static/media/KaTeX_Fraktur-Bold.4c761b37.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Fraktur-Regular.172d3529.woff2) format("woff2"),url(/static/media/KaTeX_Fraktur-Regular.6fdf0ac5.woff) format("woff"),url(/static/media/KaTeX_Fraktur-Regular.ed305b54.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/static/media/KaTeX_Main-Bold.39890742.woff2) format("woff2"),url(/static/media/KaTeX_Main-Bold.0c3b8929.woff) format("woff"),url(/static/media/KaTeX_Main-Bold.8169508b.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/static/media/KaTeX_Main-BoldItalic.20f389c4.woff2) format("woff2"),url(/static/media/KaTeX_Main-BoldItalic.428978dc.woff) format("woff"),url(/static/media/KaTeX_Main-BoldItalic.828abcb2.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/static/media/KaTeX_Main-Italic.fe2176f7.woff2) format("woff2"),url(/static/media/KaTeX_Main-Italic.fd947498.woff) format("woff"),url(/static/media/KaTeX_Main-Italic.fa675e5e.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Main-Regular.f650f111.woff2) format("woff2"),url(/static/media/KaTeX_Main-Regular.4f35fbcc.woff) format("woff"),url(/static/media/KaTeX_Main-Regular.9eba1d77.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/static/media/KaTeX_Math-BoldItalic.dcbcbd93.woff2) format("woff2"),url(/static/media/KaTeX_Math-BoldItalic.3f07ed67.woff) format("woff"),url(/static/media/KaTeX_Math-BoldItalic.bf2d440b.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/static/media/KaTeX_Math-Italic.6d3d25f4.woff2) format("woff2"),url(/static/media/KaTeX_Math-Italic.96759856.woff) format("woff"),url(/static/media/KaTeX_Math-Italic.8a5f9363.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(/static/media/KaTeX_SansSerif-Bold.95591a92.woff2) format("woff2"),url(/static/media/KaTeX_SansSerif-Bold.b9cd458a.woff) format("woff"),url(/static/media/KaTeX_SansSerif-Bold.5b49f499.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(/static/media/KaTeX_SansSerif-Italic.7d393d38.woff2) format("woff2"),url(/static/media/KaTeX_SansSerif-Italic.8d593cfa.woff) format("woff"),url(/static/media/KaTeX_SansSerif-Italic.b257a18c.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(/static/media/KaTeX_SansSerif-Regular.cd5e231e.woff2) format("woff2"),url(/static/media/KaTeX_SansSerif-Regular.02271ec5.woff) format("woff"),url(/static/media/KaTeX_SansSerif-Regular.2f7bc363.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Script-Regular.c81d1b2a.woff2) format("woff2"),url(/static/media/KaTeX_Script-Regular.073b3402.woff) format("woff"),url(/static/media/KaTeX_Script-Regular.fc9ba524.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size1-Regular.6eec866c.woff2) format("woff2"),url(/static/media/KaTeX_Size1-Regular.0108e89c.woff) format("woff"),url(/static/media/KaTeX_Size1-Regular.6de7d4b5.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size2-Regular.2960900c.woff2) format("woff2"),url(/static/media/KaTeX_Size2-Regular.3a99e70a.woff) format("woff"),url(/static/media/KaTeX_Size2-Regular.57f5c183.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size3-Regular.e1951519.woff2) format("woff2"),url(/static/media/KaTeX_Size3-Regular.7947224e.woff) format("woff"),url(/static/media/KaTeX_Size3-Regular.8d6b6822.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size4-Regular.e418bf25.woff2) format("woff2"),url(/static/media/KaTeX_Size4-Regular.aeffd802.woff) format("woff"),url(/static/media/KaTeX_Size4-Regular.4ad7c7e8.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Typewriter-Regular.c295e7f7.woff2) format("woff2"),url(/static/media/KaTeX_Typewriter-Regular.4c6b94fd.woff) format("woff"),url(/static/media/KaTeX_Typewriter-Regular.c5c02d76.ttf) format("truetype")}.katex{text-rendering:auto;font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.13.24"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}
|
|
1
|
+
@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_AMS-Regular.73ea273a.woff2) format("woff2"),url(/static/media/KaTeX_AMS-Regular.d562e886.woff) format("woff"),url(/static/media/KaTeX_AMS-Regular.853be924.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/static/media/KaTeX_Caligraphic-Bold.a1abf90d.woff2) format("woff2"),url(/static/media/KaTeX_Caligraphic-Bold.d757c535.woff) format("woff"),url(/static/media/KaTeX_Caligraphic-Bold.7489a2fb.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Caligraphic-Regular.d6484fce.woff2) format("woff2"),url(/static/media/KaTeX_Caligraphic-Regular.db074fa2.woff) format("woff"),url(/static/media/KaTeX_Caligraphic-Regular.7e873d38.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/static/media/KaTeX_Fraktur-Bold.931d67ea.woff2) format("woff2"),url(/static/media/KaTeX_Fraktur-Bold.354501ba.woff) format("woff"),url(/static/media/KaTeX_Fraktur-Bold.4c761b37.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Fraktur-Regular.172d3529.woff2) format("woff2"),url(/static/media/KaTeX_Fraktur-Regular.6fdf0ac5.woff) format("woff"),url(/static/media/KaTeX_Fraktur-Regular.ed305b54.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/static/media/KaTeX_Main-Bold.39890742.woff2) format("woff2"),url(/static/media/KaTeX_Main-Bold.0c3b8929.woff) format("woff"),url(/static/media/KaTeX_Main-Bold.8169508b.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/static/media/KaTeX_Main-BoldItalic.20f389c4.woff2) format("woff2"),url(/static/media/KaTeX_Main-BoldItalic.428978dc.woff) format("woff"),url(/static/media/KaTeX_Main-BoldItalic.828abcb2.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/static/media/KaTeX_Main-Italic.fe2176f7.woff2) format("woff2"),url(/static/media/KaTeX_Main-Italic.fd947498.woff) format("woff"),url(/static/media/KaTeX_Main-Italic.fa675e5e.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Main-Regular.f650f111.woff2) format("woff2"),url(/static/media/KaTeX_Main-Regular.4f35fbcc.woff) format("woff"),url(/static/media/KaTeX_Main-Regular.9eba1d77.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/static/media/KaTeX_Math-BoldItalic.dcbcbd93.woff2) format("woff2"),url(/static/media/KaTeX_Math-BoldItalic.3f07ed67.woff) format("woff"),url(/static/media/KaTeX_Math-BoldItalic.bf2d440b.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/static/media/KaTeX_Math-Italic.6d3d25f4.woff2) format("woff2"),url(/static/media/KaTeX_Math-Italic.96759856.woff) format("woff"),url(/static/media/KaTeX_Math-Italic.8a5f9363.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(/static/media/KaTeX_SansSerif-Bold.95591a92.woff2) format("woff2"),url(/static/media/KaTeX_SansSerif-Bold.b9cd458a.woff) format("woff"),url(/static/media/KaTeX_SansSerif-Bold.5b49f499.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(/static/media/KaTeX_SansSerif-Italic.7d393d38.woff2) format("woff2"),url(/static/media/KaTeX_SansSerif-Italic.8d593cfa.woff) format("woff"),url(/static/media/KaTeX_SansSerif-Italic.b257a18c.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(/static/media/KaTeX_SansSerif-Regular.cd5e231e.woff2) format("woff2"),url(/static/media/KaTeX_SansSerif-Regular.02271ec5.woff) format("woff"),url(/static/media/KaTeX_SansSerif-Regular.2f7bc363.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Script-Regular.c81d1b2a.woff2) format("woff2"),url(/static/media/KaTeX_Script-Regular.073b3402.woff) format("woff"),url(/static/media/KaTeX_Script-Regular.fc9ba524.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size1-Regular.6eec866c.woff2) format("woff2"),url(/static/media/KaTeX_Size1-Regular.0108e89c.woff) format("woff"),url(/static/media/KaTeX_Size1-Regular.6de7d4b5.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size2-Regular.2960900c.woff2) format("woff2"),url(/static/media/KaTeX_Size2-Regular.3a99e70a.woff) format("woff"),url(/static/media/KaTeX_Size2-Regular.57f5c183.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size3-Regular.e1951519.woff2) format("woff2"),url(/static/media/KaTeX_Size3-Regular.7947224e.woff) format("woff"),url(/static/media/KaTeX_Size3-Regular.8d6b6822.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size4-Regular.e418bf25.woff2) format("woff2"),url(/static/media/KaTeX_Size4-Regular.aeffd802.woff) format("woff"),url(/static/media/KaTeX_Size4-Regular.4ad7c7e8.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Typewriter-Regular.c295e7f7.woff2) format("woff2"),url(/static/media/KaTeX_Typewriter-Regular.4c6b94fd.woff) format("woff"),url(/static/media/KaTeX_Typewriter-Regular.c5c02d76.ttf) format("truetype")}.katex{text-rendering:auto;font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.13.24"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}:root{--toastify-color-light:#fff;--toastify-color-dark:#121212;--toastify-color-info:#3498db;--toastify-color-success:#07bc0c;--toastify-color-warning:#f1c40f;--toastify-color-error:#e74c3c;--toastify-color-transparent:hsla(0,0%,100%,0.7);--toastify-icon-color-info:var(--toastify-color-info);--toastify-icon-color-success:var(--toastify-color-success);--toastify-icon-color-warning:var(--toastify-color-warning);--toastify-icon-color-error:var(--toastify-color-error);--toastify-toast-width:320px;--toastify-toast-background:#fff;--toastify-toast-min-height:64px;--toastify-toast-max-height:800px;--toastify-font-family:sans-serif;--toastify-z-index:9999;--toastify-text-color-light:#757575;--toastify-text-color-dark:#fff;--toastify-text-color-info:#fff;--toastify-text-color-success:#fff;--toastify-text-color-warning:#fff;--toastify-text-color-error:#fff;--toastify-spinner-color:#616161;--toastify-spinner-color-empty-area:#e0e0e0;--toastify-color-progress-light:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);--toastify-color-progress-dark:#bb86fc;--toastify-color-progress-info:var(--toastify-color-info);--toastify-color-progress-success:var(--toastify-color-success);--toastify-color-progress-warning:var(--toastify-color-warning);--toastify-color-progress-error:var(--toastify-color-error)}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translateZ(var(--toastify-z-index));position:fixed;padding:4px;width:var(--toastify-toast-width);box-sizing:border-box;color:#fff}.Toastify__toast-container--top-left{top:1em;left:1em}.Toastify__toast-container--top-center{top:1em;left:50%;transform:translateX(-50%)}.Toastify__toast-container--top-right{top:1em;right:1em}.Toastify__toast-container--bottom-left{bottom:1em;left:1em}.Toastify__toast-container--bottom-center{bottom:1em;left:50%;transform:translateX(-50%)}.Toastify__toast-container--bottom-right{bottom:1em;right:1em}@media only screen and (max-width:480px){.Toastify__toast-container{width:100vw;padding:0;left:0;margin:0}.Toastify__toast-container--top-center,.Toastify__toast-container--top-left,.Toastify__toast-container--top-right{top:0;transform:translateX(0)}.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-right{bottom:0;transform:translateX(0)}.Toastify__toast-container--rtl{right:0;left:auto}}.Toastify__toast{position:relative;min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:8px;border-radius:4px;box-shadow:0 1px 10px 0 rgba(0,0,0,.1),0 2px 15px 0 rgba(0,0,0,.05);display:flex;justify-content:space-between;max-height:var(--toastify-toast-max-height);overflow:hidden;font-family:var(--toastify-font-family);cursor:default;direction:ltr;z-index:0}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-body{margin:auto 0;flex:1 1 auto;padding:6px;display:flex;align-items:center}.Toastify__toast-body>div:last-child{word-break:break-word;flex:1 1}.Toastify__toast-icon{-webkit-margin-end:10px;margin-inline-end:10px;width:20px;flex-shrink:0;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.7s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}@media only screen and (max-width:480px){.Toastify__toast{margin-bottom:0;border-radius:0}}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--colored.Toastify__toast--default,.Toastify__toast-theme--light{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;align-self:flex-start}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:focus,.Toastify__close-button:hover{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:5px;z-index:var(--toastify-z-index);opacity:.7;transform-origin:left}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:auto;transform-origin:right}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border-radius:100%;border:2px solid;border-color:var(--toastify-spinner-color-empty-area);border-right:2px solid var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(2000px,0,0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--bottom-left,.Toastify__bounce-enter--top-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--bottom-right,.Toastify__bounce-enter--top-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--bottom-left,.Toastify__bounce-exit--top-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--bottom-right,.Toastify__bounce-exit--top-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:perspective(400px)}30%{transform:perspective(400px) rotateX(-20deg);opacity:1}to{transform:perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideOutRight{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(110%,0,0)}}@keyframes Toastify__slideOutLeft{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(-110%,0,0)}}@keyframes Toastify__slideOutDown{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--bottom-left,.Toastify__slide-enter--top-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--bottom-right,.Toastify__slide-enter--top-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--bottom-left,.Toastify__slide-exit--top-left{animation-name:Toastify__slideOutLeft}.Toastify__slide-exit--bottom-right,.Toastify__slide-exit--top-right{animation-name:Toastify__slideOutRight}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown}@keyframes Toastify__spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@font-face{font-family:"Source Code Pro";font-weight:400;font-style:regular;src:url(/static/media/SourceCodePro-Regular.70cc7ff2.ttf) format("truetype")}@font-face{font-family:"Source Code Pro";font-weight:600;font-style:regular;src:url(/static/media/SourceCodePro-SemiBold.4d4c53c0.ttf) format("truetype")}@font-face{font-family:"Source Code Pro";font-weight:700;font-style:regular;src:url(/static/media/SourceCodePro-Bold.52ac8f30.ttf) format("truetype")}@font-face{font-family:"Source Code Pro";font-weight:400;font-style:italic;src:url(/static/media/SourceCodePro-Italic.454577c2.ttf) format("truetype")}@font-face{font-family:"Source Code Pro";font-weight:600;font-style:italic;src:url(/static/media/SourceCodePro-SemiBoldItalic.2f5470bc.ttf) format("truetype")}@font-face{font-family:"Source Code Pro";font-weight:700;font-style:italic;src:url(/static/media/SourceCodePro-BoldItalic.05b61807.ttf) format("truetype")}@font-face{font-family:"Source Sans Pro";font-weight:400;font-style:regular;src:url(/static/media/SourceSansPro-Regular.efa76f83.ttf) format("truetype")}@font-face{font-family:"Source Sans Pro";font-weight:600;font-style:regular;src:url(/static/media/SourceSansPro-SemiBold.43cc81b4.ttf) format("truetype")}@font-face{font-family:"Source Sans Pro";font-weight:700;font-style:regular;src:url(/static/media/SourceSansPro-Bold.12e6acd2.ttf) format("truetype")}@font-face{font-family:"Source Sans Pro";font-weight:400;font-style:italic;src:url(/static/media/SourceSansPro-Italic.3c01996d.ttf) format("truetype")}@font-face{font-family:"Source Sans Pro";font-weight:600;font-style:italic;src:url(/static/media/SourceSansPro-SemiBoldItalic.c30987e2.ttf) format("truetype")}@font-face{font-family:"Source Sans Pro";font-weight:700;font-style:italic;src:url(/static/media/SourceSansPro-BoldItalic.7c4f9b00.ttf) format("truetype")}@font-face{font-family:"Source Serif Pro";font-weight:400;font-style:regular;src:url(/static/media/SourceSerifPro-Regular.6f22301c.ttf) format("truetype")}@font-face{font-family:"Source Serif Pro";font-weight:600;font-style:regular;src:url(/static/media/SourceSerifPro-SemiBold.b27cb117.ttf) format("truetype")}@font-face{font-family:"Source Serif Pro";font-weight:700;font-style:regular;src:url(/static/media/SourceSerifPro-Bold.bada4fe1.ttf) format("truetype")}@font-face{font-family:"Source Serif Pro";font-weight:400;font-style:italic;src:url(/static/media/SourceSerifPro-Italic.90931d6a.ttf) format("truetype")}@font-face{font-family:"Source Serif Pro";font-weight:600;font-style:italic;src:url(/static/media/SourceSerifPro-SemiBoldItalic.1266f2c1.ttf) format("truetype")}@font-face{font-family:"Source Serif Pro";font-weight:700;font-style:italic;src:url(/static/media/SourceSerifPro-BoldItalic.9f9b1eb2.ttf) format("truetype")}html{font-size:1rem}h1{font-size:calc(1.4rem + 1.8vw)}@media(min-width:1200px){h1{font-size:2.75rem}}h2{font-size:calc(1.35rem + 1.2vw)}@media(min-width:1200px){h2{font-size:2.25rem}}h3{font-size:calc(1.3rem + .6vw)}@media(min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media(min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}small{font-size:.875rem}sub,sup{font-size:.75rem}code,kbd,pre{font-size:1em}pre{font-size:.75em}pre code{font-size:inherit}code{font-size:.75em}kbd{font-size:.875rem;border-radius:.25rem}kbd kbd{font-size:1em}button,input,optgroup,select,textarea{font-size:inherit}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}legend{font-size:1rem}
|
|
1
|
+
@font-face{font-family:"Source Code Pro";font-weight:400;font-style:regular;src:url(/static/media/SourceCodePro-Regular.70cc7ff2.ttf) format("truetype")}@font-face{font-family:"Source Code Pro";font-weight:600;font-style:regular;src:url(/static/media/SourceCodePro-SemiBold.4d4c53c0.ttf) format("truetype")}@font-face{font-family:"Source Code Pro";font-weight:700;font-style:regular;src:url(/static/media/SourceCodePro-Bold.52ac8f30.ttf) format("truetype")}@font-face{font-family:"Source Code Pro";font-weight:400;font-style:italic;src:url(/static/media/SourceCodePro-Italic.454577c2.ttf) format("truetype")}@font-face{font-family:"Source Code Pro";font-weight:600;font-style:italic;src:url(/static/media/SourceCodePro-SemiBoldItalic.2f5470bc.ttf) format("truetype")}@font-face{font-family:"Source Code Pro";font-weight:700;font-style:italic;src:url(/static/media/SourceCodePro-BoldItalic.05b61807.ttf) format("truetype")}@font-face{font-family:"Source Sans Pro";font-weight:400;font-style:regular;src:url(/static/media/SourceSansPro-Regular.efa76f83.ttf) format("truetype")}@font-face{font-family:"Source Sans Pro";font-weight:600;font-style:regular;src:url(/static/media/SourceSansPro-SemiBold.43cc81b4.ttf) format("truetype")}@font-face{font-family:"Source Sans Pro";font-weight:700;font-style:regular;src:url(/static/media/SourceSansPro-Bold.12e6acd2.ttf) format("truetype")}@font-face{font-family:"Source Sans Pro";font-weight:400;font-style:italic;src:url(/static/media/SourceSansPro-Italic.3c01996d.ttf) format("truetype")}@font-face{font-family:"Source Sans Pro";font-weight:600;font-style:italic;src:url(/static/media/SourceSansPro-SemiBoldItalic.c30987e2.ttf) format("truetype")}@font-face{font-family:"Source Sans Pro";font-weight:700;font-style:italic;src:url(/static/media/SourceSansPro-BoldItalic.7c4f9b00.ttf) format("truetype")}@font-face{font-family:"Source Serif Pro";font-weight:400;font-style:regular;src:url(/static/media/SourceSerifPro-Regular.6f22301c.ttf) format("truetype")}@font-face{font-family:"Source Serif Pro";font-weight:600;font-style:regular;src:url(/static/media/SourceSerifPro-SemiBold.b27cb117.ttf) format("truetype")}@font-face{font-family:"Source Serif Pro";font-weight:700;font-style:regular;src:url(/static/media/SourceSerifPro-Bold.bada4fe1.ttf) format("truetype")}@font-face{font-family:"Source Serif Pro";font-weight:400;font-style:italic;src:url(/static/media/SourceSerifPro-Italic.90931d6a.ttf) format("truetype")}@font-face{font-family:"Source Serif Pro";font-weight:600;font-style:italic;src:url(/static/media/SourceSerifPro-SemiBoldItalic.1266f2c1.ttf) format("truetype")}@font-face{font-family:"Source Serif Pro";font-weight:700;font-style:italic;src:url(/static/media/SourceSerifPro-BoldItalic.9f9b1eb2.ttf) format("truetype")}html{font-size:1rem}h1{font-size:calc(1.4rem + 1.8vw)}@media(min-width:1200px){h1{font-size:2.75rem}}h2{font-size:calc(1.35rem + 1.2vw)}@media(min-width:1200px){h2{font-size:2.25rem}}h3{font-size:calc(1.3rem + .6vw)}@media(min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media(min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}small{font-size:.875rem}sub,sup{font-size:.75rem}code,kbd,pre{font-size:1em}pre{font-size:.75em}pre code{font-size:inherit}code{font-size:.75em}kbd{font-size:.875rem;border-radius:.25rem}kbd kbd{font-size:1em}button,input,optgroup,select,textarea{font-size:inherit}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}legend{font-size:1rem}.Toastify__toast-body{width:0}.Toastify__toast-body>div:not(.Toastify__toast-icon){width:100%}
|