texlive[72772] Master/texmf-dist: jsonparse (5nov24)

commits+karl at tug.org commits+karl at tug.org
Tue Nov 5 21:20:01 CET 2024


Revision: 72772
          https://tug.org/svn/texlive?view=revision&revision=72772
Author:   karl
Date:     2024-11-05 21:20:01 +0100 (Tue, 05 Nov 2024)
Log Message:
-----------
jsonparse (5nov24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/jsonparse/README.md
    trunk/Master/texmf-dist/doc/latex/jsonparse/jason/jason.pdf
    trunk/Master/texmf-dist/doc/latex/jsonparse/jason/jason.svg
    trunk/Master/texmf-dist/doc/latex/jsonparse/jason/jason.tex
    trunk/Master/texmf-dist/doc/latex/jsonparse/jsonparse-doc.pdf
    trunk/Master/texmf-dist/doc/latex/jsonparse/jsonparse-doc.tex
    trunk/Master/texmf-dist/tex/latex/jsonparse/jsonparse.sty

Modified: trunk/Master/texmf-dist/doc/latex/jsonparse/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/jsonparse/README.md	2024-11-05 20:19:51 UTC (rev 72771)
+++ trunk/Master/texmf-dist/doc/latex/jsonparse/README.md	2024-11-05 20:20:01 UTC (rev 72772)
@@ -1,4 +1,4 @@
-![Version 0.9.6](https://img.shields.io/badge/version-0.9.6-blue)
+![Version 0.9.7](https://img.shields.io/badge/version-0.9.7-blue)
 
 ![Jason, the JSON parsing horse](https://github.com/jasperhabicht/jsonparse/assets/6378801/ddfddc70-bf5f-4121-ba45-4b9128875d85)
 

Modified: trunk/Master/texmf-dist/doc/latex/jsonparse/jason/jason.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/jsonparse/jason/jason.svg
===================================================================
--- trunk/Master/texmf-dist/doc/latex/jsonparse/jason/jason.svg	2024-11-05 20:19:51 UTC (rev 72771)
+++ trunk/Master/texmf-dist/doc/latex/jsonparse/jason/jason.svg	2024-11-05 20:20:01 UTC (rev 72772)
@@ -11,8 +11,7 @@
 <path d='M334.6092 311.0627C334.6092 311.0627 324.3162 298.7777 298.7422 224.7227C273.1762 150.6637 260.5542 111.4807 250.2582 85.2457C244.7262 71.1487 237.7622 62.9997 232.4962 58.4767C240.2342 52.5387 248.2152 45.3397 252.2502 38.4217C259.1252 26.6289 263.8752 14.0117 267.8592 .0664C270.2462-8.2969 277.4922-14.0508 277.4922-14.0508S222.6952-27 199.1172 15.3398C197.5862 18.0859 196.0942 20.7031 194.5942 23.2031L69.4762 48.4377C59.0122 59.5077 48.0002 73.7227 43.3672 88.2347C39.2542 101.1167 32.0742 104.1757 17.1289 116.1287C2.1875 128.0857-30.0898 159.7387-30.0898 159.7387L-18.0273 208.4097L37.8752 277.3987C51.2622 268.4177 65.9722 257.4067 84.2152 250.3787C98.0352 245.0467 117.2222 241.9297 135.1372 238.3397C137.6832 244.6367 143.9332 261.2657 146.4802 278.5237C149.7192 300.4377 150.9652 369.6797 150.9652 369.6797Z' fill='#ba8d5d' clip-path='url(#clip)'/>
 <path d='M381.6012 229.0387C381.6012 229.0387 371.9692 214.2617 360.0122 208.1167C348.6442 202.2777 335.6052 200.9767 335.6052 200.9767S338.4452 189.3747 346.7302 178.2307C355.8592 165.9457 372.1372 155.6447 372.1372 155.6447L320.8282 138.2107C320.8282 138.2107 337.9292 131.7347 345.8982 124.4297C354.9612 116.1247 359.1832 94.5427 359.1832 94.5427S311.7422 97.3397 305.0512 79.4337C299.9062 65.6527 318.3362 36.4297 318.3362 36.4297S291.1012 30.1167 277.3242 30.2847C269.7812 30.3747 261.5542 31.1567 255.3042 32.8277C254.3282 34.7107 253.3242 36.5817 252.2502 38.4217C248.2152 45.3397 240.2342 52.5387 232.4962 58.4767C237.7622 62.9997 244.7262 71.1487 250.2582 85.2457C260.5542 111.4807 273.1762 150.6637 298.7422 224.7227C324.3162 298.7777 334.6092 311.0627 334.6092 311.0627L366.9882 274.6997C351.8752 271.7107 344.7382 254.2777 344.7382 254.2777Z' fill='#f68623' stroke='#512c15' stroke-width='2.9888' stroke-miterlimit='10' clip-path='url(#clip)'/>
 <path d='M37.8712 277.3987C51.2622 268.4177 65.9722 257.4067 84.2152 250.3787C108.1682 241.1407 148.2502 238.5427 169.8632 228.6327C191.4762 218.7307 194.1792 185.4067 194.1792 185.4067M150.9652 369.6797C150.9652 369.6797 149.7192 300.4377 146.4802 278.5237C143.9332 261.2657 137.6832 244.6367 135.1332 238.3397C134.9492 238.3747 134.7692 238.4097 134.5862 238.4497M212.7342 71.7967C212.7342 71.7967 242.9532 54.3637 252.2502 38.4217C259.1252 26.6289 263.8752 14.0117 267.8592 .0664C270.2462-8.2969 277.4922-14.0508 277.4922-14.0508S222.6952-27 199.1172 15.3398C197.5862 18.0859 196.0942 20.7031 194.5942 23.2031M69.4762 48.4377C59.0122 59.5077 47.9962 73.7227 43.3672 88.2347C39.2542 101.1167 32.0742 104.1757 17.1289 116.1287C2.1875 128.0857-30.0898 159.7387-30.0898 159.7387' stroke='#512c15' fill='none' stroke-width='2.9888' stroke-miterlimit='10' clip-path='url(#clip)'/>
-<path d='M106.4652 1.2266C106.4652 1.2266 105.9652-3.918 96.3322-13.8828C94.6292-15.6484 92.7692-17.0078 90.8672-18.0586C91.1792-11.9961 91.7852-6.9063 92.1642-4.1016C98.3012-4.2969 103.4262-2.5938 106.4652 1.2266Z' fill='#ba8d5d' stroke='#512c15' stroke-width='2.9888' stroke-miterlimit='10'/>
-<path d='M96.1722-32.6484C106.4652-33.4766 119.5822-30.9844 125.7222-21.6875C128.7112-24.8398 128.7112-39.9531 128.7112-39.9531S136.2112-20.1836 148.1132-14.75C143.5472-30.8398 127.1132-45.75 120.3282-51.2422C113.3552-56.8906 103.7652-70.50391 103.7652-70.50391S94.8202-59.2109 91.8322-41.6133C91.2892-38.4297 90.9722-35.0938 90.8042-31.7695C92.5002-32.1836 94.2892-32.4961 96.1722-32.6484Z' fill='#ba8d5d' stroke='#512c15' stroke-width='2.9888' stroke-miterlimit='10'/>
+<path d='M106.4652 1.2266C106.4652 1.2266 105.9652-3.918 96.3322-13.8828C94.6292-15.6484 92.7692-17.0078 90.8672-18.0586C91.1792-11.9961 91.7852-6.9063 92.1642-4.1016C98.3012-4.2969 103.4262-2.5938 106.4652 1.2266Z M96.1722-32.6484C106.4652-33.4766 119.5822-30.9844 125.7222-21.6875C128.7112-24.8398 128.7112-39.9531 128.7112-39.9531S136.2112-20.1836 148.1132-14.75C143.5472-30.8398 127.1132-45.75 120.3282-51.2422C113.3552-56.8906 103.7652-70.50391 103.7652-70.50391S94.8202-59.2109 91.8322-41.6133C91.2892-38.4297 90.9722-35.0938 90.8042-31.7695C92.5002-32.1836 94.2892-32.4961 96.1722-32.6484Z' fill='#ba8d5d' stroke='#512c15' stroke-width='2.9888' stroke-miterlimit='10'/>
 <path d='M184.1722-2.2617C173.5472-11.8906 162.4222-13.0547 153.6172-13.3828C138.5702-13.9531 128.7112-39.9531 128.7112-39.9531S128.7112-24.8398 125.7222-21.6875C119.5822-30.9844 106.4652-33.4766 96.1722-32.6484C81.6252-31.4727 72.2622-21.0234 72.2622-21.0234S86.7072-23.8438 96.3322-13.8828C105.9652-3.918 106.4652 1.2266 106.4652 1.2266C99.3242-7.7422 80.7262-5.082 64.4532 6.543C48.1832 18.1602 52.9962 49.3787 52.9962 49.3787S56.6522 36.5937 73.5862 28.7887C80.1332 25.7734 97.4962 25.1367 97.4962 25.1367S72.7582 25.9687 67.9412 54.8597C65.0472 72.2457 71.5942 87.0707 71.5942 87.0707S73.0902 71.6287 87.8672 62.4957C98.1402 56.1487 109.6212 53.1997 109.6212 53.1997C104.4722 57.0157 106.4652 67.9767 106.4652 67.9767S115.4292 52.8667 139.1722 54.3637C169.5392 56.2737 182.0352 44.1877 194.5942 23.2031C194.0432 17.1289 191.9692 4.8008 184.1722-2.2617Z' fill='#f68623' stroke='#512c15' stroke-width='2.9888' stroke-miterlimit='10'/>
 <path d='M37.8712 277.3987C46.1912 267.0387 57.7072 251.8637 60.5542 243.9027C68.0272 222.9807 59.3082 213.2657 54.5782 206.0427C49.8442 198.8207 57.8122 194.5857 44.6132 181.8827S-8.9336 190.1017-14.4141 187.6137C-19.8945 185.1207-19.3945 181.8827-20.8906 170.9257C-22.3867 159.9647-28.0469 158.7847-37.3281 159.9647C-49.9297 161.5627-55.7617 184.3747-58.9961 200.0667C-62.23437 215.7577-70.503905 215.5117-68.71094 228.9567C-67.86328 235.3317-64.28125 241.8907-52.8711 244.2927C-53.5937 250.0317-53.8047 257.0317-52.5898 264.6597C-49.4414 284.4727-17.918 294.3787 5.5 292.1247C16.2148 291.0977 26.5742 284.9727 37.8712 277.3987Z' fill='#976d46' stroke='#512c15' stroke-width='2.9888' stroke-miterlimit='10'/>
 <path d='M159.6012 113.0977C159.6012 122.6597 150.8982 130.4097 140.1722 130.4097C129.4412 130.4097 120.7462 122.6597 120.7462 113.0977C120.7462 103.5347 129.4412 95.7887 140.1722 95.7887C150.8982 95.7887 159.6012 103.5347 159.6012 113.0977Z' fill='#fff' stroke='#512c15' stroke-width='2.9888' stroke-miterlimit='10'/>

Modified: trunk/Master/texmf-dist/doc/latex/jsonparse/jason/jason.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/jsonparse/jason/jason.tex	2024-11-05 20:19:51 UTC (rev 72771)
+++ trunk/Master/texmf-dist/doc/latex/jsonparse/jason/jason.tex	2024-11-05 20:20:01 UTC (rev 72772)
@@ -1,15 +1,15 @@
-% File: jason/jason.tex 
+% File: jason/jason.tex
 % Copyright 2024 Jasper Habicht (mail(at)jasperhabicht.de).
-% 
+%
 % This work may be distributed and/or modified under the
 % conditions of the LaTeX Project Public License version 1.3c,
 % available at http://www.latex-project.org/lppl/.
-% 
+%
 % This file is part of the `jsonparse' package (The Work in LPPL)
 % and all files in that bundle must be distributed together.
-% 
+%
 % This work has the LPPL maintenance status `maintained'.
-% 
+%
 \documentclass{standalone}
 \usepackage{l3draw}
 
@@ -26,234 +26,238 @@
 
 \draw_begin:
 
+% sky
 \cs_new:Npn \__jsonparse_jason_path_i: {
-    \draw_path_moveto:n { 433.418 , 221.836 } 
-    \draw_path_curveto:nnn { 433.418 , 335.695 } { 341.117 , 428 } { 227.254 , 428 }
-    \draw_path_curveto:nnn { 113.391 , 428 } { 21.086 , 335.695 } { 21.086 , 221.836 }
-    \draw_path_curveto:nnn { 21.086 , 107.973 } { 113.391 , 15.668 } { 227.254 , 15.668 }
-    \draw_path_curveto:nnn { 341.117 , 15.668 } { 433.418 , 107.973 } { 433.418 , 221.836 }
-    \draw_path_close:
+  \draw_path_moveto:n { 433.418 , 221.836 }
+  \draw_path_curveto:nnn { 433.418 , 335.695 } { 341.117 , 428 } { 227.254 , 428 }
+  \draw_path_curveto:nnn { 113.391 , 428 } { 21.086 , 335.695 } { 21.086 , 221.836 }
+  \draw_path_curveto:nnn { 21.086 , 107.973 } { 113.391 , 15.668 } { 227.254 , 15.668 }
+  \draw_path_curveto:nnn { 341.117 , 15.668 } { 433.418 , 107.973 } { 433.418 , 221.836 }
+  \draw_path_close:
 }
 
+% head
 \cs_new:Npn \__jsonparse_jason_path_ii: {
-    \draw_path_moveto:n { 406.586 , 385.5 } 
-    \draw_path_curveto:nnn { 406.586 , 385.5 } { 396.254 , 373.168 } { 370.586 , 298.836 } 
-    \draw_path_curveto:nnn { 344.922 , 224.5 } { 332.254 , 185.168 } { 321.918 , 158.836 } 
-    \draw_path_curveto:nnn { 316.367 , 144.684 } { 309.375 , 136.508 } { 304.09 , 131.965 } 
-    \draw_path_curveto:nnn { 311.859 , 126.008 } { 319.867 , 118.781 } { 323.918 , 111.836 } 
-    \draw_path_curveto:nnn { 330.82 , 100 } { 335.586 , 87.336 } { 339.586 , 73.336 } 
-    \draw_path_curveto:nnn { 341.984 , 64.941 } { 349.254 , 59.168 } { 349.254 , 59.168 } 
-    \draw_path_curveto:nnn { 349.254 , 59.168 } { 294.254 , 46.168 } { 270.586 , 88.668 } 
-    \draw_path_curveto:nnn { 269.051 , 91.422 } { 267.551 , 94.051 } { 266.047 , 96.559 } 
-    \draw_path_lineto:n { 140.461 , 121.891 }  
-    \draw_path_curveto:nnn { 129.957 , 133 } { 118.902 , 147.27 } { 114.254 , 161.836 } 
-    \draw_path_curveto:nnn { 110.125 , 174.766 } { 102.918 , 177.836 } { 87.918 , 189.836 } 
-    \draw_path_curveto:nnn { 72.918 , 201.836 } { 40.52 , 233.609 } { 40.52 , 233.609 } 
-    \draw_path_lineto:n { 52.629 , 282.461 }  
-    \draw_path_lineto:n { 108.742 , 351.707 }  
-    \draw_path_curveto:nnn { 122.176 , 342.695 } { 136.945 , 331.641 } { 155.254 , 324.586 } 
-    \draw_path_curveto:nnn { 169.125 , 319.234 } { 188.387 , 316.105 } { 206.367 , 312.504 } 
-    \draw_path_curveto:nnn { 208.922 , 318.824 } { 215.195 , 335.516 } { 217.754 , 352.836 } 
-    \draw_path_curveto:nnn { 221.004 , 374.836 } { 222.254 , 444.336 } { 222.254 , 444.336 } 
-    \draw_path_close:
+  \draw_path_moveto:n { 406.586 , 385.5 }
+  \draw_path_curveto:nnn { 406.586 , 385.5 } { 396.254 , 373.168 } { 370.586 , 298.836 }
+  \draw_path_curveto:nnn { 344.922 , 224.5 } { 332.254 , 185.168 } { 321.918 , 158.836 }
+  \draw_path_curveto:nnn { 316.367 , 144.684 } { 309.375 , 136.508 } { 304.09 , 131.965 }
+  \draw_path_curveto:nnn { 311.859 , 126.008 } { 319.867 , 118.781 } { 323.918 , 111.836 }
+  \draw_path_curveto:nnn { 330.82 , 100 } { 335.586 , 87.336 } { 339.586 , 73.336 }
+  \draw_path_curveto:nnn { 341.984 , 64.941 } { 349.254 , 59.168 } { 349.254 , 59.168 }
+  \draw_path_curveto:nnn { 349.254 , 59.168 } { 294.254 , 46.168 } { 270.586 , 88.668 }
+  \draw_path_curveto:nnn { 269.051 , 91.422 } { 267.551 , 94.051 } { 266.047 , 96.559 }
+  \draw_path_lineto:n { 140.461 , 121.891 }
+  \draw_path_curveto:nnn { 129.957 , 133 } { 118.902 , 147.27 } { 114.254 , 161.836 }
+  \draw_path_curveto:nnn { 110.125 , 174.766 } { 102.918 , 177.836 } { 87.918 , 189.836 }
+  \draw_path_curveto:nnn { 72.918 , 201.836 } { 40.52 , 233.609 } { 40.52 , 233.609 }
+  \draw_path_lineto:n { 52.629 , 282.461 }
+  \draw_path_lineto:n { 108.742 , 351.707 }
+  \draw_path_curveto:nnn { 122.176 , 342.695 } { 136.945 , 331.641 } { 155.254 , 324.586 }
+  \draw_path_curveto:nnn { 169.125 , 319.234 } { 188.387 , 316.105 } { 206.367 , 312.504 }
+  \draw_path_curveto:nnn { 208.922 , 318.824 } { 215.195 , 335.516 } { 217.754 , 352.836 }
+  \draw_path_curveto:nnn { 221.004 , 374.836 } { 222.254 , 444.336 } { 222.254 , 444.336 }
+  \draw_path_close:
 }
 
+% mane
 \cs_new:Npn \__jsonparse_jason_path_iii: {
-    \draw_path_moveto:n { 453.754 , 303.168 } 
-    \draw_path_curveto:nnn { 453.754 , 303.168 } { 444.086 , 288.336 } { 432.086 , 282.168 } 
-    \draw_path_curveto:nnn { 420.676 , 276.305 } { 407.586 , 275 } { 407.586 , 275 } 
-    \draw_path_curveto:nnn { 407.586 , 275 } { 410.438 , 263.355 } { 418.754 , 252.168 } 
-    \draw_path_curveto:nnn { 427.918 , 239.836 } { 444.254 , 229.5 } { 444.254 , 229.5 } 
-    \draw_path_lineto:n { 392.754 , 212 }  
-    \draw_path_curveto:nnn { 392.754 , 212 } { 409.918 , 205.5 } { 417.918 , 198.168 } 
-    \draw_path_curveto:nnn { 427.016 , 189.832 } { 431.254 , 168.168 } { 431.254 , 168.168 } 
-    \draw_path_curveto:nnn { 431.254 , 168.168 } { 383.633 , 170.973 } { 376.918 , 153 } 
-    \draw_path_curveto:nnn { 371.754 , 139.168 } { 390.254 , 109.836 } { 390.254 , 109.836 } 
-    \draw_path_curveto:nnn { 390.254 , 109.836 } { 362.918 , 103.5 } { 349.086 , 103.668 } 
-    \draw_path_curveto:nnn { 341.516 , 103.758 } { 333.258 , 104.543 } { 326.984 , 106.223 } 
-    \draw_path_curveto:nnn { 326.004 , 108.113 } { 324.996 , 109.988 } { 323.918 , 111.836 } 
-    \draw_path_curveto:nnn { 319.867 , 118.781 } { 311.859 , 126.008 } { 304.09 , 131.965 } 
-    \draw_path_curveto:nnn { 309.375 , 136.508 } { 316.367 , 144.684 } { 321.918 , 158.836 } 
-    \draw_path_curveto:nnn { 332.254 , 185.168 } { 344.922 , 224.5 } { 370.586 , 298.836 } 
-    \draw_path_curveto:nnn { 396.254 , 373.168 } { 406.586 , 385.5 } { 406.586 , 385.5 } 
-    \draw_path_lineto:n { 439.086 , 349 }  
-    \draw_path_curveto:nnn { 423.918 , 346 } { 416.754 , 328.5 } { 416.754 , 328.5 } 
-    \draw_path_close:
+  \draw_path_moveto:n { 453.754 , 303.168 }
+  \draw_path_curveto:nnn { 453.754 , 303.168 } { 444.086 , 288.336 } { 432.086 , 282.168 }
+  \draw_path_curveto:nnn { 420.676 , 276.305 } { 407.586 , 275 } { 407.586 , 275 }
+  \draw_path_curveto:nnn { 407.586 , 275 } { 410.438 , 263.355 } { 418.754 , 252.168 }
+  \draw_path_curveto:nnn { 427.918 , 239.836 } { 444.254 , 229.5 } { 444.254 , 229.5 }
+  \draw_path_lineto:n { 392.754 , 212 }
+  \draw_path_curveto:nnn { 392.754 , 212 } { 409.918 , 205.5 } { 417.918 , 198.168 }
+  \draw_path_curveto:nnn { 427.016 , 189.832 } { 431.254 , 168.168 } { 431.254 , 168.168 }
+  \draw_path_curveto:nnn { 431.254 , 168.168 } { 383.633 , 170.973 } { 376.918 , 153 }
+  \draw_path_curveto:nnn { 371.754 , 139.168 } { 390.254 , 109.836 } { 390.254 , 109.836 }
+  \draw_path_curveto:nnn { 390.254 , 109.836 } { 362.918 , 103.5 } { 349.086 , 103.668 }
+  \draw_path_curveto:nnn { 341.516 , 103.758 } { 333.258 , 104.543 } { 326.984 , 106.223 }
+  \draw_path_curveto:nnn { 326.004 , 108.113 } { 324.996 , 109.988 } { 323.918 , 111.836 }
+  \draw_path_curveto:nnn { 319.867 , 118.781 } { 311.859 , 126.008 } { 304.09 , 131.965 }
+  \draw_path_curveto:nnn { 309.375 , 136.508 } { 316.367 , 144.684 } { 321.918 , 158.836 }
+  \draw_path_curveto:nnn { 332.254 , 185.168 } { 344.922 , 224.5 } { 370.586 , 298.836 }
+  \draw_path_curveto:nnn { 396.254 , 373.168 } { 406.586 , 385.5 } { 406.586 , 385.5 }
+  \draw_path_lineto:n { 439.086 , 349 }
+  \draw_path_curveto:nnn { 423.918 , 346 } { 416.754 , 328.5 } { 416.754 , 328.5 }
+  \draw_path_close:
 }
 
+% bangs
 \cs_new:Npn \__jsonparse_jason_path_iv: {
-    \draw_path_moveto:n { 255.586 , 71 } 
-    \draw_path_curveto:nnn { 244.922 , 61.336 } { 233.754 , 60.168 } { 224.918 , 59.836 } 
-    \draw_path_curveto:nnn { 209.812 , 59.266 } { 199.918 , 33.168 } { 199.918 , 33.168 } 
-    \draw_path_curveto:nnn { 199.918 , 33.168 } { 199.918 , 48.336 } { 196.918 , 51.5 } 
-    \draw_path_curveto:nnn { 190.754 , 42.168 } { 177.586 , 39.668 } { 167.254 , 40.5 } 
-    \draw_path_curveto:nnn { 152.656 , 41.68 } { 143.254 , 52.168 } { 143.254 , 52.168 } 
-    \draw_path_curveto:nnn { 143.254 , 52.168 } { 157.754 , 49.336 } { 167.418 , 59.336 } 
-    \draw_path_curveto:nnn { 177.086 , 69.336 } { 177.586 , 74.5 } { 177.586 , 74.5 } 
-    \draw_path_curveto:nnn { 170.418 , 65.5 } { 151.754 , 68.168 } { 135.418 , 79.836 } 
-    \draw_path_curveto:nnn { 119.086 , 91.5 } { 123.918 , 122.836 } { 123.918 , 122.836 } 
-    \draw_path_curveto:nnn { 123.918 , 122.836 } { 127.586 , 110 } { 144.586 , 102.168 } 
-    \draw_path_curveto:nnn { 151.156 , 99.141 } { 168.586 , 98.5 } { 168.586 , 98.5 }
-    \draw_path_curveto:nnn { 168.586 , 98.5 } { 143.754 , 99.336 } { 138.918 , 128.336 } 
-    \draw_path_curveto:nnn { 136.012 , 145.789 } { 142.586 , 160.668 } { 142.586 , 160.668 } 
-    \draw_path_curveto:nnn { 142.586 , 160.668 } { 144.086 , 145.168 } { 158.918 , 136 } 
-    \draw_path_curveto:nnn { 169.23 , 129.629 } { 180.754 , 126.668 } { 180.754 , 126.668 } 
-    \draw_path_curveto:nnn { 175.586 , 130.5 } { 177.586 , 141.5 } { 177.586 , 141.5 } 
-    \draw_path_curveto:nnn { 177.586 , 141.5 } { 186.586 , 126.336 } { 210.418 , 127.836 } 
-    \draw_path_curveto:nnn { 240.898 , 129.754 } { 253.441 , 117.625 } { 266.047 , 96.559 } 
-    \draw_path_curveto:nnn { 265.492 , 90.465 } { 263.41 , 78.09 } { 255.586 , 71 }
-    \draw_path_close:
+  \draw_path_moveto:n { 255.586 , 71 }
+  \draw_path_curveto:nnn { 244.922 , 61.336 } { 233.754 , 60.168 } { 224.918 , 59.836 }
+  \draw_path_curveto:nnn { 209.812 , 59.266 } { 199.918 , 33.168 } { 199.918 , 33.168 }
+  \draw_path_curveto:nnn { 199.918 , 33.168 } { 199.918 , 48.336 } { 196.918 , 51.5 }
+  \draw_path_curveto:nnn { 190.754 , 42.168 } { 177.586 , 39.668 } { 167.254 , 40.5 }
+  \draw_path_curveto:nnn { 152.656 , 41.68 } { 143.254 , 52.168 } { 143.254 , 52.168 }
+  \draw_path_curveto:nnn { 143.254 , 52.168 } { 157.754 , 49.336 } { 167.418 , 59.336 }
+  \draw_path_curveto:nnn { 177.086 , 69.336 } { 177.586 , 74.5 } { 177.586 , 74.5 }
+  \draw_path_curveto:nnn { 170.418 , 65.5 } { 151.754 , 68.168 } { 135.418 , 79.836 }
+  \draw_path_curveto:nnn { 119.086 , 91.5 } { 123.918 , 122.836 } { 123.918 , 122.836 }
+  \draw_path_curveto:nnn { 123.918 , 122.836 } { 127.586 , 110 } { 144.586 , 102.168 }
+  \draw_path_curveto:nnn { 151.156 , 99.141 } { 168.586 , 98.5 } { 168.586 , 98.5 }
+  \draw_path_curveto:nnn { 168.586 , 98.5 } { 143.754 , 99.336 } { 138.918 , 128.336 }
+  \draw_path_curveto:nnn { 136.012 , 145.789 } { 142.586 , 160.668 } { 142.586 , 160.668 }
+  \draw_path_curveto:nnn { 142.586 , 160.668 } { 144.086 , 145.168 } { 158.918 , 136 }
+  \draw_path_curveto:nnn { 169.23 , 129.629 } { 180.754 , 126.668 } { 180.754 , 126.668 }
+  \draw_path_curveto:nnn { 175.586 , 130.5 } { 177.586 , 141.5 } { 177.586 , 141.5 }
+  \draw_path_curveto:nnn { 177.586 , 141.5 } { 186.586 , 126.336 } { 210.418 , 127.836 }
+  \draw_path_curveto:nnn { 240.898 , 129.754 } { 253.441 , 117.625 } { 266.047 , 96.559 }
+  \draw_path_curveto:nnn { 265.492 , 90.465 } { 263.41 , 78.09 } { 255.586 , 71 }
+  \draw_path_close:
 }
 
+% muzzle
 \cs_new:Npn \__jsonparse_jason_path_v: {
-    \draw_path_moveto:n { 108.738 , 351.707 } 
-    \draw_path_curveto:nnn { 117.086 , 341.312 } { 128.648 , 326.078 } { 131.504 , 318.086 } 
-    \draw_path_curveto:nnn { 139.004 , 297.086 } { 130.254 , 287.336 } { 125.504 , 280.086 } 
-    \draw_path_curveto:nnn { 120.754 , 272.836 } { 128.754 , 268.586 } { 115.504 , 255.836 } 
-    \draw_path_curveto:nnn { 102.254 , 243.086 } { 61.754 , 264.086 } { 56.254 , 261.586 } 
-    \draw_path_curveto:nnn { 50.754 , 259.086 } { 51.254 , 255.836 } { 49.754 , 244.836 } 
-    \draw_path_curveto:nnn { 48.254 , 233.836 } { 42.57 , 232.652 } { 33.254 , 233.836 } 
-    \draw_path_curveto:nnn { 20.605 , 235.438 } { 14.754 , 258.336 } { 11.504 , 274.086 } 
-    \draw_path_curveto:nnn { 8.254 , 289.836 } { -0.047 , 289.59 } { 1.754 , 303.086 } 
-    \draw_path_curveto:nnn { 2.605 , 309.484 } { 6.199 , 316.066 } { 17.652 , 318.48 } 
-    \draw_path_curveto:nnn { 16.93 , 324.238 } { 16.715 , 331.266 } { 17.934 , 338.922 } 
-    \draw_path_curveto:nnn { 21.098 , 358.809 } { 52.738 , 368.754 } { 76.242 , 366.492 } 
-    \draw_path_curveto:nnn { 87 , 365.461 } { 97.395 , 359.312 } { 108.738 , 351.707 }
-    \draw_path_close:
+  \draw_path_moveto:n { 108.738 , 351.707 }
+  \draw_path_curveto:nnn { 117.086 , 341.312 } { 128.648 , 326.078 } { 131.504 , 318.086 }
+  \draw_path_curveto:nnn { 139.004 , 297.086 } { 130.254 , 287.336 } { 125.504 , 280.086 }
+  \draw_path_curveto:nnn { 120.754 , 272.836 } { 128.754 , 268.586 } { 115.504 , 255.836 }
+  \draw_path_curveto:nnn { 102.254 , 243.086 } { 61.754 , 264.086 } { 56.254 , 261.586 }
+  \draw_path_curveto:nnn { 50.754 , 259.086 } { 51.254 , 255.836 } { 49.754 , 244.836 }
+  \draw_path_curveto:nnn { 48.254 , 233.836 } { 42.57 , 232.652 } { 33.254 , 233.836 }
+  \draw_path_curveto:nnn { 20.605 , 235.438 } { 14.754 , 258.336 } { 11.504 , 274.086 }
+  \draw_path_curveto:nnn { 8.254 , 289.836 } { -0.047 , 289.59 } { 1.754 , 303.086 }
+  \draw_path_curveto:nnn { 2.605 , 309.484 } { 6.199 , 316.066 } { 17.652 , 318.48 }
+  \draw_path_curveto:nnn { 16.93 , 324.238 } { 16.715 , 331.266 } { 17.934 , 338.922 }
+  \draw_path_curveto:nnn { 21.098 , 358.809 } { 52.738 , 368.754 } { 76.242 , 366.492 }
+  \draw_path_curveto:nnn { 87 , 365.461 } { 97.395 , 359.312 } { 108.738 , 351.707 }
+  \draw_path_close:
 }
 
+% head outline
 \cs_new:Npn \__jsonparse_jason_path_vi: {
-    \draw_path_moveto:n { 108.738 , 351.707 } 
-    \draw_path_curveto:nnn { 122.176 , 342.695 } { 136.945 , 331.641 } { 155.254 , 324.586 }
-    \draw_path_curveto:nnn { 179.297 , 315.316 } { 219.527 , 312.707 } { 241.223 , 302.762 } 
-    \draw_path_curveto:nnn { 262.918 , 292.82 } { 265.629 , 259.371 } { 265.629 , 259.371 }
+  \draw_path_moveto:n { 108.738 , 351.707 }
+  \draw_path_curveto:nnn { 122.176 , 342.695 } { 136.945 , 331.641 } { 155.254 , 324.586 }
+  \draw_path_curveto:nnn { 179.297 , 315.316 } { 219.527 , 312.707 } { 241.223 , 302.762 }
+  \draw_path_curveto:nnn { 262.918 , 292.82 } { 265.629 , 259.371 } { 265.629 , 259.371 }
 
-    \draw_path_moveto:n { 222.254 , 444.336 } 
-    \draw_path_curveto:nnn { 222.254 , 444.336 } { 221.004 , 374.836 } { 217.754 , 352.836 }
-    \draw_path_curveto:nnn { 215.195 , 335.516 } { 208.922 , 318.824 } { 206.363 , 312.504 } 
-    \draw_path_curveto:nnn { 206.18 , 312.539 } { 205.996 , 312.574 } { 205.812 , 312.613 }
+  \draw_path_moveto:n { 222.254 , 444.336 }
+  \draw_path_curveto:nnn { 222.254 , 444.336 } { 221.004 , 374.836 } { 217.754 , 352.836 }
+  \draw_path_curveto:nnn { 215.195 , 335.516 } { 208.922 , 318.824 } { 206.363 , 312.504 }
+  \draw_path_curveto:nnn { 206.18 , 312.539 } { 205.996 , 312.574 } { 205.812 , 312.613 }
 
-    \draw_path_moveto:n { 284.254 , 145.336 } 
-    \draw_path_curveto:nnn { 284.254 , 145.336 } { 314.586 , 127.836 } { 323.918 , 111.836 }
-    \draw_path_curveto:nnn { 330.82 , 100 } { 335.586 , 87.336 } { 339.586 , 73.336 } 
-    \draw_path_curveto:nnn { 341.984 , 64.941 } { 349.254 , 59.168 } { 349.254 , 59.168 } 
-    \draw_path_curveto:nnn { 349.254 , 59.168 } { 294.254 , 46.168 } { 270.586 , 88.668 } 
-    \draw_path_curveto:nnn { 269.051 , 91.422 } { 267.551 , 94.051 } { 266.047 , 96.559 }
+  \draw_path_moveto:n { 284.254 , 145.336 }
+  \draw_path_curveto:nnn { 284.254 , 145.336 } { 314.586 , 127.836 } { 323.918 , 111.836 }
+  \draw_path_curveto:nnn { 330.82 , 100 } { 335.586 , 87.336 } { 339.586 , 73.336 }
+  \draw_path_curveto:nnn { 341.984 , 64.941 } { 349.254 , 59.168 } { 349.254 , 59.168 }
+  \draw_path_curveto:nnn { 349.254 , 59.168 } { 294.254 , 46.168 } { 270.586 , 88.668 }
+  \draw_path_curveto:nnn { 269.051 , 91.422 } { 267.551 , 94.051 } { 266.047 , 96.559 }
 
-    \draw_path_moveto:n { 140.461 , 121.891 } 
-    \draw_path_curveto:nnn { 129.957 , 133 } { 118.898 , 147.27 } { 114.254 , 161.836 } 
-    \draw_path_curveto:nnn { 110.125 , 174.766 } { 102.918 , 177.836 } { 87.918 , 189.836 } 
-    \draw_path_curveto:nnn { 72.918 , 201.836 } { 40.52 , 233.609 } { 40.52 , 233.609 }
+  \draw_path_moveto:n { 140.461 , 121.891 }
+  \draw_path_curveto:nnn { 129.957 , 133 } { 118.898 , 147.27 } { 114.254 , 161.836 }
+  \draw_path_curveto:nnn { 110.125 , 174.766 } { 102.918 , 177.836 } { 87.918 , 189.836 }
+  \draw_path_curveto:nnn { 72.918 , 201.836 } { 40.52 , 233.609 } { 40.52 , 233.609 }
 }
 
+% ear
 \cs_new:Npn \__jsonparse_jason_path_vii: {
-    \draw_path_moveto:n { 177.586 , 74.5 } 
-    \draw_path_curveto:nnn { 177.586 , 74.5 } { 177.086 , 69.336 } { 167.418 , 59.336 } 
-    \draw_path_curveto:nnn { 165.707 , 57.562 } { 163.84 , 56.199 } { 161.93 , 55.145 } 
-    \draw_path_curveto:nnn { 162.246 , 61.227 } { 162.852 , 66.336 } { 163.234 , 69.152 } 
-    \draw_path_curveto:nnn { 169.391 , 68.957 } { 174.535 , 70.668 } { 177.586 , 74.5 }
-    \draw_path_close:
+  \draw_path_moveto:n { 177.586 , 74.5 }
+  \draw_path_curveto:nnn { 177.586 , 74.5 } { 177.086 , 69.336 } { 167.418 , 59.336 }
+  \draw_path_curveto:nnn { 165.707 , 57.562 } { 163.84 , 56.199 } { 161.93 , 55.145 }
+  \draw_path_curveto:nnn { 162.246 , 61.227 } { 162.852 , 66.336 } { 163.234 , 69.152 }
+  \draw_path_curveto:nnn { 169.391 , 68.957 } { 174.535 , 70.668 } { 177.586 , 74.5 }
+  \draw_path_close:
+
+  \draw_path_moveto:n { 167.254 , 40.5 }
+  \draw_path_curveto:nnn { 177.586 , 39.668 } { 190.754 , 42.168 } { 196.918 , 51.5 }
+  \draw_path_curveto:nnn { 199.918 , 48.336 } { 199.918 , 33.168 } { 199.918 , 33.168 }
+  \draw_path_curveto:nnn { 199.918 , 33.168 } { 207.445 , 53.012 } { 219.391 , 58.465 }
+  \draw_path_curveto:nnn { 214.809 , 42.316 } { 198.312 , 27.348 } { 191.504 , 21.836 }
+  \draw_path_curveto:nnn { 184.504 , 16.168 } { 174.879 , 2.5 } { 174.879 , 2.5 }
+  \draw_path_curveto:nnn { 174.879 , 2.5 } { 165.898 , 13.836 } { 162.898 , 31.5 }
+  \draw_path_curveto:nnn { 162.355 , 34.695 } { 162.035 , 38.043 } { 161.867 , 41.383 }
+  \draw_path_curveto:nnn { 163.57 , 40.965 } { 165.367 , 40.652 } { 167.254 , 40.5 }
+  \draw_path_close:
 }
 
+% eye
 \cs_new:Npn \__jsonparse_jason_path_viii: {
-    \draw_path_moveto:n { 167.254 , 40.5 } 
-    \draw_path_curveto:nnn { 177.586 , 39.668 } { 190.754 , 42.168 } { 196.918 , 51.5 } 
-    \draw_path_curveto:nnn { 199.918 , 48.336 } { 199.918 , 33.168 } { 199.918 , 33.168 } 
-    \draw_path_curveto:nnn { 199.918 , 33.168 } { 207.445 , 53.012 } { 219.391 , 58.465 } 
-    \draw_path_curveto:nnn { 214.809 , 42.316 } { 198.312 , 27.348 } { 191.504 , 21.836 } 
-    \draw_path_curveto:nnn { 184.504 , 16.168 } { 174.879 , 2.5 } { 174.879 , 2.5 } 
-    \draw_path_curveto:nnn { 174.879 , 2.5 } { 165.898 , 13.836 } { 162.898 , 31.5 } 
-    \draw_path_curveto:nnn { 162.355 , 34.695 } { 162.035 , 38.043 } { 161.867 , 41.383 } 
-    \draw_path_curveto:nnn { 163.57 , 40.965 } { 165.367 , 40.652 } { 167.254 , 40.5 }
-    \draw_path_close:
+  \draw_path_moveto:n { 230.922 , 186.793 }
+  \draw_path_curveto:nnn { 230.922 , 196.391 } { 222.188 , 204.168 } { 211.422 , 204.168 }
+  \draw_path_curveto:nnn { 200.648 , 204.168 } { 191.922 , 196.391 } { 191.922 , 186.793 }
+  \draw_path_curveto:nnn { 191.922 , 177.195 } { 200.648 , 169.418 } { 211.422 , 169.418 }
+  \draw_path_curveto:nnn { 222.188 , 169.418 } { 230.922 , 177.195 } { 230.922 , 186.793 }
+  \draw_path_close:
 }
 
+% pupil
 \cs_new:Npn \__jsonparse_jason_path_ix: {
-    \draw_path_moveto:n { 230.922 , 186.793 } 
-    \draw_path_curveto:nnn { 230.922 , 196.391 } { 222.188 , 204.168 } { 211.422 , 204.168 } 
-    \draw_path_curveto:nnn { 200.648 , 204.168 } { 191.922 , 196.391 } { 191.922 , 186.793 } 
-    \draw_path_curveto:nnn { 191.922 , 177.195 } { 200.648 , 169.418 } { 211.422 , 169.418 } 
-    \draw_path_curveto:nnn { 222.188 , 169.418 } { 230.922 , 177.195 } { 230.922 , 186.793 }
-    \draw_path_close:
+  \draw_path_moveto:n { 217.922 , 188.836 }
+  \draw_path_curveto:nnn { 217.922 , 192.699 } { 214.375 , 195.836 } { 210.004 , 195.836 }
+  \draw_path_curveto:nnn { 205.633 , 195.836 } { 202.086 , 192.699 } { 202.086 , 188.836 }
+  \draw_path_curveto:nnn { 202.086 , 184.969 } { 205.633 , 181.836 } { 210.004 , 181.836 }
+  \draw_path_curveto:nnn { 214.375 , 181.836 } { 217.922 , 184.969 } { 217.922 , 188.836 }
+  \draw_path_close:
 }
 
+% nostril
 \cs_new:Npn \__jsonparse_jason_path_x: {
-    \draw_path_moveto:n { 217.922 , 188.836 } 
-    \draw_path_curveto:nnn { 217.922 , 192.699 } { 214.375 , 195.836 } { 210.004 , 195.836 } 
-    \draw_path_curveto:nnn { 205.633 , 195.836 } { 202.086 , 192.699 } { 202.086 , 188.836 } 
-    \draw_path_curveto:nnn { 202.086 , 184.969 } { 205.633 , 181.836 } { 210.004 , 181.836 } 
-    \draw_path_curveto:nnn { 214.375 , 181.836 } { 217.922 , 184.969 } { 217.922 , 188.836 }
-    \draw_path_close:
+  \draw_path_moveto:n { 68.77 , 289.297 }
+  \draw_path_curveto:nnn { 68.77 , 289.297 } { 71.215 , 285.078 } { 74.879 , 280.211 }
+  \draw_path_curveto:nnn { 79.305 , 274.324 } { 87.262 , 269.184 } { 91.254 , 268.836 }
+  \draw_path_curveto:nnn { 98.379 , 268.211 } { 103.449 , 269.938 } { 100.551 , 275.527 }
+  \draw_path_curveto:nnn { 97.652 , 281.117 } { 88.188 , 287.027 } { 81.254 , 287.961 }
+  \draw_path_curveto:nnn { 74.316 , 288.891 } { 68.77 , 289.297 } { 68.77 , 289.297 }
+  \draw_path_close:
 }
 
-% nostril
+% mouth
 \cs_new:Npn \__jsonparse_jason_path_xi: {
-    \draw_path_moveto:n { 68.77 , 289.297 } 
-    \draw_path_curveto:nnn { 68.77 , 289.297 } { 71.215 , 285.078 } { 74.879 , 280.211 } 
-    \draw_path_curveto:nnn { 79.305 , 274.324 } { 87.262 , 269.184 } { 91.254 , 268.836 } 
-    \draw_path_curveto:nnn { 98.379 , 268.211 } { 103.449 , 269.938 } { 100.551 , 275.527 } 
-    \draw_path_curveto:nnn { 97.652 , 281.117 } { 88.188 , 287.027 } { 81.254 , 287.961 } 
-    \draw_path_curveto:nnn { 74.316 , 288.891 } { 68.77 , 289.297 } { 68.77 , 289.297 }
-    \draw_path_close:
+  \draw_path_moveto:n { 27.488 , 319.328 }
+  \draw_path_curveto:nnn { 26.766 , 323.887 } { 26.395 , 330.605 } { 29.504 , 334.336 }
+  \draw_path_curveto:nnn { 34.504 , 340.336 } { 44.004 , 349.336 } { 65.504 , 336.336 }
+  \draw_path_curveto:nnn { 83.551 , 325.422 } { 106.699 , 303.945 } { 113.672 , 297.328 }
+  \draw_path_curveto:nnn { 109.645 , 300.484 } { 98.965 , 306.266 } { 74.754 , 306.086 }
+  \draw_path_curveto:nnn { 48.09 , 305.883 } { 41.801 , 318.445 } { 27.488 , 319.328 }
+  \draw_path_close:
 }
 
-% mouth
+% mouth outline
 \cs_new:Npn \__jsonparse_jason_path_xii: {
-    \draw_path_moveto:n { 27.488 , 319.328 } 
-    \draw_path_curveto:nnn { 26.766 , 323.887 } { 26.395 , 330.605 } { 29.504 , 334.336 } 
-    \draw_path_curveto:nnn { 34.504 , 340.336 } { 44.004 , 349.336 } { 65.504 , 336.336 } 
-    \draw_path_curveto:nnn { 83.551 , 325.422 } { 106.699 , 303.945 } { 113.672 , 297.328 } 
-    \draw_path_curveto:nnn { 109.645 , 300.484 } { 98.965 , 306.266 } { 74.754 , 306.086 } 
-    \draw_path_curveto:nnn { 48.09 , 305.883 } { 41.801 , 318.445 } { 27.488 , 319.328 }
-    \draw_path_close:
+  \draw_path_moveto:n { 17.652 , 318.48 }
+  \draw_path_curveto:nnn { 19.613 , 318.891 } { 21.801 , 319.188 } { 24.254 , 319.336 }
+  \draw_path_curveto:nnn { 25.383 , 319.402 } { 26.453 , 319.395 } { 27.488 , 319.328 }
 }
 
-% mouth edge
+% teeth
 \cs_new:Npn \__jsonparse_jason_path_xiii: {
-    \draw_path_moveto:n { 17.652 , 318.48 } 
-    \draw_path_curveto:nnn { 19.613 , 318.891 } { 21.801 , 319.188 } { 24.254 , 319.336 } 
-    \draw_path_curveto:nnn { 25.383 , 319.402 } { 26.453 , 319.395 } { 27.488 , 319.328 }
+  \draw_path_moveto:n { 96.598 , 304.234 }
+  \draw_path_curveto:nnn { 80.379 , 312.863 } { 52.5 , 327.137 } { 44.855 , 327.496 }
+  \draw_path_curveto:nnn { 37.57 , 327.84 } { 31.289 , 322.75 } { 27.891 , 319.293 }
+  \draw_path_curveto:nnn { 27.758 , 319.305 } { 27.625 , 319.32 } { 27.488 , 319.328 }
 }
 
-% teeth
-\cs_new:Npn \__jsonparse_jason_path_xiv: {
-    \draw_path_moveto:n { 96.598 , 304.234 } 
-    \draw_path_curveto:nnn { 80.379 , 312.863 } { 52.5 , 327.137 } { 44.855 , 327.496 } 
-    \draw_path_curveto:nnn { 37.57 , 327.84 } { 31.289 , 322.75 } { 27.891 , 319.293 } 
-    \draw_path_curveto:nnn { 27.758 , 319.305 } { 27.625 , 319.32 } { 27.488 , 319.328 }
-}
-
 \draw_transform_yscale:n { -1 }
 \draw_linewidth:n { 3pt }
 \draw_miterlimit:n { 10 }
 \color_stroke:n { color_v }
 
-\draw_scope_begin: 
+\draw_scope_begin:
 
-    \color_fill:n { color_i }
-    \__jsonparse_jason_path_i:
-    \draw_path_use_clear:n { fill , clip }
-    
-    \color_fill:n { color_ii }
-    \__jsonparse_jason_path_ii:
-    \draw_path_use_clear:n { fill }
-    
-    \color_fill:n { color_iii }
-    \__jsonparse_jason_path_iii:
-    \draw_path_use_clear:n { fill , draw }
+  \color_fill:n { color_i }
+  \__jsonparse_jason_path_i:
+  \draw_path_use_clear:n { fill , clip }
 
-    \__jsonparse_jason_path_vi:
-    \draw_path_use_clear:n { draw }
+  \color_fill:n { color_ii }
+  \__jsonparse_jason_path_ii:
+  \draw_path_use_clear:n { fill }
 
-\draw_scope_end: 
+  \color_fill:n { color_iii }
+  \__jsonparse_jason_path_iii:
+  \draw_path_use_clear:n { fill , draw }
 
+  \__jsonparse_jason_path_vi:
+  \draw_path_use_clear:n { draw }
+
+\draw_scope_end:
+
 \color_fill:n { color_ii }
 \__jsonparse_jason_path_vii:
 \draw_path_use_clear:n { fill , draw }
 
-\__jsonparse_jason_path_viii:
-\draw_path_use_clear:n { fill , draw }
-
 \color_fill:n { color_iii }
 \__jsonparse_jason_path_iv:
 \draw_path_use_clear:n { fill , draw }
@@ -263,24 +267,24 @@
 \draw_path_use_clear:n { fill , draw }
 
 \color_fill:n { color_vii }
-\__jsonparse_jason_path_ix:
+\__jsonparse_jason_path_viii:
 \draw_path_use_clear:n { fill , draw }
 
 \color_fill:n { color_vi }
-\__jsonparse_jason_path_x:
+\__jsonparse_jason_path_ix:
 \draw_path_use_clear:n { fill }
 
-\__jsonparse_jason_path_xi:
+\__jsonparse_jason_path_x:
 \draw_path_use_clear:n { fill }
 
 \color_fill:n { color_vii }
-\__jsonparse_jason_path_xii:
+\__jsonparse_jason_path_xi:
 \draw_path_use_clear:n { fill , draw }
 
-\__jsonparse_jason_path_xiii:
+\__jsonparse_jason_path_xii:
 \draw_path_use_clear:n { draw }
 
-\__jsonparse_jason_path_xiv:
+\__jsonparse_jason_path_xiii:
 \draw_path_use_clear:n { draw }
 
 \draw_end:

Modified: trunk/Master/texmf-dist/doc/latex/jsonparse/jsonparse-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/jsonparse/jsonparse-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/jsonparse/jsonparse-doc.tex	2024-11-05 20:19:51 UTC (rev 72771)
+++ trunk/Master/texmf-dist/doc/latex/jsonparse/jsonparse-doc.tex	2024-11-05 20:20:01 UTC (rev 72772)
@@ -11,8 +11,8 @@
 % This work has the LPPL maintenance status `maintained'.
 % 
 \documentclass[a4paper]{article}
-\def\jsonparsefileversion{0.9.6}
-\def\jsonparsefiledate{31 October 2024}
+\def\jsonparsefileversion{0.9.7}
+\def\jsonparsefiledate{5 November 2024}
 
 \usepackage[T1]{fontenc}
 \usepackage{Alegreya}
@@ -205,6 +205,7 @@
 \changes{v0.9.3}{2024/10/24}{Fixed a bug that prevented tabs in source from being parsed properly.}
 \changes{v0.9.5}{2024/10/27}{Streamlining of code, clarification of explanations in documentation.}
 \changes{v0.9.6}{2024/10/31}{Allowing for multiple return values when mapping over arrays.}
+\changes{v0.9.7}{2024/11/05}{Streamlining of code, ensuring backward compatibility.}
 
 \begin{document}
 \vspace*{-1cm}
@@ -396,7 +397,7 @@
 \end{itemize}
 \end{codeexamplecolumns}
 
-The command additionally takes two optional arguments at sixth and seventh position. These arguments can be used to place code before and after the output that is generated by the command called for every array item, for example for typesetting tabular contents. To this end, the command \macro{\JSONParseArrayNewline} can be used to make sure that tabular newlines are typeset properly.
+The command additionally takes two optional arguments at sixth and seventh position. These arguments can be used to place code before and after the output that is generated by the command called for every array item, for example for typesetting tabular contents. 
 
 Typesetting the above example in a tabular way can be achieved as follows:
 
@@ -403,8 +404,7 @@
 \begin{codeexamplecolumns}
 \newcommand{\myJSONitem}{
   \JSONParseArrayValueI &
-  \JSONParseArrayValueII
-    \JSONParseArrayNewline
+  \JSONParseArrayValueII \\
 }
 
 \JSONParseArrayValuesMap{\myJSONdata}
@@ -412,8 +412,7 @@
   [\begin{tabular}{ c c }
     \textbf{key a} & 
     \textbf{key b} \\ \hline]
-  [\\ \hline 
-    \end{tabular}]
+  [\hline \end{tabular}]
 \end{codeexamplecolumns}
 
 Finally, the first optional argument of the command can be used to pass options to the command, such as \macro{escape} or \macro{rescan}, that are then applied locally. 

Modified: trunk/Master/texmf-dist/tex/latex/jsonparse/jsonparse.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/jsonparse/jsonparse.sty	2024-11-05 20:19:51 UTC (rev 72771)
+++ trunk/Master/texmf-dist/tex/latex/jsonparse/jsonparse.sty	2024-11-05 20:20:01 UTC (rev 72772)
@@ -10,7 +10,7 @@
 %
 % This work has the LPPL maintenance status `maintained'.
 %
-\ProvidesExplPackage {jsonparse} {2024-10-31} {0.9.6}
+\ProvidesExplPackage {jsonparse} {2024-11-05} {0.9.7}
   {A handy way to parse, store and access JSON data from files or strings in LaTeX documents}
 
 \bool_new:N \l__jsonparse_debug_mode_bool
@@ -73,8 +73,8 @@
 }
 
 \msg_new:nnn { jsonparse } { not-array-item } {
-	\msg_info_text:n { jsonparse } \iow_newline:
-	Key ~ does ~ not ~ represent ~ an ~ array ~ item: ~ #1
+  \msg_info_text:n { jsonparse } \iow_newline:
+  Key ~ does ~ not ~ represent ~ an ~ array ~ item: ~ #1
 }
 
 % ===
@@ -83,6 +83,7 @@
 \str_new:N \l_jsonparse_current_prop_str
 
 \tl_new:N \l__jsonparse_externalize_file_name_tl
+\tl_new:N \l__jsonparse_externalize_file_data_tl
 
 \str_new:N \l__jsonparse_child_sep_str
 \str_new:N \l__jsonparse_array_sep_left_str
@@ -234,6 +235,7 @@
 }
 
 \cs_generate_variant:Nn \file_input:n { e }
+\cs_generate_variant:Nn \tl_gset:Nn { Ne , ce }
 \cs_generate_variant:Nn \tl_gset_rescan:Nnn { Nne }
 \cs_generate_variant:Nn \tl_range:nnn { nne , nen }
 \cs_generate_variant:Nn \tl_range:Nnn { Nne , Nen }
@@ -247,6 +249,8 @@
 \cs_generate_variant:Nn \str_casefold:n { o }
 \cs_generate_variant:Nn \str_head_ignore_spaces:n { o }
 \cs_generate_variant:Nn \str_set:Nn { Ne }
+\cs_generate_variant:Nn \clist_const:Nn { Ne }
+\cs_generate_variant:Nn \seq_put_right:Nn { Ne }
 \cs_generate_variant:Nn \prop_gput:Nnn { Nee }
 \cs_generate_variant:Nn \prop_item:Nn { Ne , ce }
 \cs_generate_variant:Nn \prop_put:Nnn { Nen , Nee }
@@ -260,10 +264,11 @@
 \cs_generate_variant:Nn \msg_warning:nnn { nne }
 
 \prg_generate_conditional_variant:Nnn \file_if_exist:n { e } { T , TF }
-\prg_generate_conditional_variant:Nnn \tl_if_eq:nn { en } { T }
 \prg_generate_conditional_variant:Nnn \tl_if_head_eq_charcode:nN { oN } { T , TF }
 \prg_generate_conditional_variant:Nnn \tl_if_in:nn { nV } { F }
+\prg_generate_conditional_variant:Nnn \seq_if_in:Nn { Ne } { F }
 \prg_generate_conditional_variant:Nnn \str_if_eq:nn { en , eV } { T , F , TF }
+\prg_generate_conditional_variant:Nnn \str_if_eq:nn { Vn } { p }
 
 \prop_new:N \g_jsonparse_entries_prop
 \prop_new:N \l__jsonparse_temp_prop
@@ -280,11 +285,20 @@
 
 \int_new:N \l__jsonparse_array_index_int
 \int_new:N \l__jsonparse_array_count_int
-\int_new:N \l__jsonparse_array_count_last_int
+\int_new:N \l__jsonparse_array_count_aux_int
+\seq_new:N \l__jsonparse_array_count_last_seq
 
+\str_new:N \l__jsonparse_filter_key_str
+
 \int_new:N \l__jsonparse_array_keys_index_int
 \tl_new:N \l__jsonparse_array_keys_index_roman_tl
 
+\str_new:N \l__jsonparse_array_values_key_str
+\tl_new:N \l__jsonparse_array_values_insert_tl 
+
+\clist_new:N \l__jsonparse_array_map_keys_clist
+\str_new:N \l__jsonparse_array_map_function_str
+
 \bool_new:N \l__jsonparse_prop_map_first_bool
 \bool_new:N \l__jsonparse_externalize_load_bool
 
@@ -778,22 +792,31 @@
   }
 }
 
+\cs_new:Npn \__jsonparse_filter:nn #1#2 {
+  \str_case_e:en {
+    \tl_range:nne {#1} { 1 } { \int_eval:n { 
+      \tl_count:o { \l__jsonparse_filter_key_str } + 1 
+    } }
+  } {
+    { \l__jsonparse_filter_key_str \l__jsonparse_child_sep_str } {
+      \prop_put:Nen \l__jsonparse_temp_prop
+        { \tl_range:nen {#1} { \int_eval:n { 
+          \tl_count:o { \l__jsonparse_filter_key_str } + 2 
+        } } { -1 } } {#2}
+    }
+    { \l__jsonparse_filter_key_str \l__jsonparse_array_sep_left_str } {
+      \prop_put:Nen \l__jsonparse_temp_prop
+        { \tl_range:nen {#1} { \int_eval:n { 
+          \tl_count:o { \l__jsonparse_filter_key_str } + 1 
+        } } { -1 } } {#2}
+    }
+  }
+}
+
 \cs_new_protected:Npn \jsonparse_filter:Nn #1#2 {
   \prop_clear:N \l__jsonparse_temp_prop
-  \prop_map_inline:Nn #1 {
-    \str_case_e:en {
-      \tl_range:nne {##1} { 1 } { \int_eval:n { \tl_count:n {#2} + 1 } }
-    } {
-      { #2 \l__jsonparse_child_sep_str } {
-        \prop_put:Nen \l__jsonparse_temp_prop
-          { \tl_range:nen {##1} { \int_eval:n { \tl_count:n {#2} + 2 } } { -1 } } {##2}
-      }
-      { #2 \l__jsonparse_array_sep_left_str } {
-        \prop_put:Nen \l__jsonparse_temp_prop
-          { \tl_range:nen {##1} { \int_eval:n { \tl_count:n {#2} + 1 } } { -1 } } {##2}
-      }
-    }
-  }
+  \str_set:Nn \l__jsonparse_filter_key_str {#2}
+  \prop_map_function:NN #1 \__jsonparse_filter:nn
   \prop_set_eq:NN #1 \l__jsonparse_temp_prop
 }
 
@@ -906,7 +929,8 @@
         \cs_set:Npn \r { \exp_not:N \r }
         \cs_set:Npn \t { \exp_not:N \t }
         \cs_set:Npn \u { \exp_not:N \u }
-        \file_get:nnN {#3} { \cctab_select:N \c__jsonparse_json_escape_cctab } \g__jsonparse_json_tl
+        \file_get:nnN {#3} { \cctab_select:N \c__jsonparse_json_escape_cctab } \l__jsonparse_externalize_file_data_tl
+        \tl_gset_eq:NN \g__jsonparse_json_tl \l__jsonparse_externalize_file_data_tl
         \exp_args:NNe \jsonparse_parse_to_prop:Nn #2 { \g__jsonparse_json_tl }
       \group_end:
       \bool_if:NT \l__jsonparse_externalize_bool {
@@ -978,6 +1002,17 @@
   \group_end:
 }
 
+\cs_new:Npn \__jsonparse_keys:n #1 {
+  \tl_if_in:nVF {#1} \l__jsonparse_child_sep_str {
+    \bool_if:NTF \l__jsonparse_prop_map_first_bool {
+      \bool_set_false:N \l__jsonparse_prop_map_first_bool
+    } {
+      \tl_put_right:Nn \l__jsonparse_temp_tl { , }
+    }
+    \tl_put_right:Nn \l__jsonparse_temp_tl { " #1 " }
+  }
+}
+
 \NewDocumentCommand { \JSONParseKeys } { m m } {
   \tl_if_exist:NF #2 {
     \tl_new:N #2
@@ -984,16 +1019,7 @@
   }
   \bool_set_true:N \l__jsonparse_prop_map_first_bool
   \tl_set:Nn \l__jsonparse_temp_tl { [ }
-    \prop_map_inline:Nn #1 {
-      \tl_if_in:nVF {##1} \l__jsonparse_child_sep_str {
-        \bool_if:NTF \l__jsonparse_prop_map_first_bool {
-          \bool_set_false:N \l__jsonparse_prop_map_first_bool
-        } {
-          \tl_put_right:Nn \l__jsonparse_temp_tl { , }
-        }
-        \tl_put_right:Nn \l__jsonparse_temp_tl { " ##1 " }
-      }
-    }
+  \prop_map_function:NN #1 \__jsonparse_keys:n
   \tl_put_right:Nn \l__jsonparse_temp_tl { ] }
   \tl_set_eq:NN #2 \l__jsonparse_temp_tl
 }
@@ -1002,28 +1028,31 @@
   #1
 }
 
-\cs_new_protected:Npn \jsonparse_array_count:NN #1#2 {
-  \int_zero:N #2
-  \int_set:Nn \l__jsonparse_array_count_last_int { -1 }
-  \prop_map_inline:Nn #1 {
-    \str_if_eq:eVF { \tl_head:n {##1} } \l__jsonparse_array_sep_left_str {
-			\msg_error:nnn { jsonparse } { not-array-item }
-		  	{##1}
-		}
-    \int_compare:nNnF {
-      \__jsonparse_get_array_index:w ##1 \q_stop
-    } = { \l__jsonparse_array_count_last_int } {
-      \int_incr:N #2
+\cs_new:Npn \__jsonparse_array_count:nn #1#2 {
+  \str_if_eq:eVF { \tl_head:n {#1} } \l__jsonparse_array_sep_left_str {
+    \msg_error:nnn { jsonparse } { not-array-item }
+      {#1}
+  }
+  \seq_if_in:NeF \l__jsonparse_array_count_last_seq {
+    \__jsonparse_get_array_index:w #1 \q_stop
+  } {
+    \int_incr:N \l__jsonparse_array_count_aux_int
+    \seq_put_right:Ne \l__jsonparse_array_count_last_seq {
+      \__jsonparse_get_array_index:w #1 \q_stop
     }
-    \int_set:Nn \l__jsonparse_array_count_last_int {
-      \__jsonparse_get_array_index:w ##1 \q_stop
-    }
   }
 }
 
+\cs_new_protected:Npn \jsonparse_array_count:NN #1#2 {
+  \int_zero:N \l__jsonparse_array_count_aux_int
+  \seq_clear:N \l__jsonparse_array_count_last_seq
+  \prop_map_function:NN #1 \__jsonparse_array_count:nn
+  \int_set_eq:NN #2 \l__jsonparse_array_count_aux_int
+}
+
 \NewDocumentCommand { \JSONParseArrayCount } { m m } {
   \group_begin:
-    \tl_set:Nn \l__jsonparse_temp_tl {#1}
+    \tl_set_eq:NN \l__jsonparse_temp_tl #1
     \jsonparse_filter:Nn \l__jsonparse_temp_tl {#2}
     \jsonparse_array_count:NN \l__jsonparse_temp_tl \l__jsonparse_array_count_int
     \int_use:N \l__jsonparse_array_count_int
@@ -1030,187 +1059,174 @@
   \group_end:
 }
 
-\NewDocumentCommand { \JSONParseArrayValues } { O{} m m o m } {
+\cs_new:Npn \__jsonparse_array_values:n #1 {
+  \bool_if:NTF \l__jsonparse_prop_map_first_bool {
+    \bool_set_false:N \l__jsonparse_prop_map_first_bool
+  } {
+    \l__jsonparse_array_values_insert_tl
+  }
+  \bool_if:NTF \l__jsonparse_rescan_bool {
+    \exp_args:Ne \__jsonparse_rescan:n {
+      \prop_item:Ne \l__jsonparse_temp_tl {
+        \l__jsonparse_array_sep_left_str
+        \bool_if:NTF \l__jsonparse_zero_based_bool {
+          \int_eval:n { #1 - 1 }
+        } {
+          #1
+        }
+        \l__jsonparse_array_sep_right_str
+        \str_if_empty:NF \l__jsonparse_array_values_key_str {
+          \l__jsonparse_child_sep_str
+          \l__jsonparse_array_values_key_str
+        }
+      }
+    }
+  } {
+    \prop_item:Ne \l__jsonparse_temp_tl {
+      \l__jsonparse_array_sep_left_str
+      \bool_if:NTF \l__jsonparse_zero_based_bool {
+        \int_eval:n { #1 - 1 }
+      } {
+        #1
+      }
+      \l__jsonparse_array_sep_right_str
+      \str_if_empty:NF \l__jsonparse_array_values_key_str {
+        \l__jsonparse_child_sep_str
+        \l__jsonparse_array_values_key_str
+      }
+    }
+  }
+}
+
+\NewDocumentCommand { \JSONParseArrayValues } { O{} m m O{} m } {
   \group_begin:
     \keys_set_known:nn { jsonparse / typeset } {#1} \l__jsonparse_unused_keys_clist
     \__jsonparse_warning_unused_keys:
-    \tl_set:Nn \l__jsonparse_temp_tl {#2}
+    \tl_set_eq:NN \l__jsonparse_temp_tl #2
     \jsonparse_filter:Nn \l__jsonparse_temp_tl {#3}
     \jsonparse_array_count:NN \l__jsonparse_temp_tl \l__jsonparse_array_count_int
-    \bool_set_true:N \l__jsonparse_prop_map_first_bool	
-    \int_step_inline:nn { \l__jsonparse_array_count_int } {
-      \bool_if:NTF \l__jsonparse_prop_map_first_bool {
-        \bool_set_false:N \l__jsonparse_prop_map_first_bool
-      } {
-        #5
+    \str_set:Nn \l__jsonparse_array_values_key_str {#4}
+    \tl_set:Nn \l__jsonparse_array_values_insert_tl {#5}
+    \bool_set_true:N \l__jsonparse_prop_map_first_bool
+    \int_step_function:nN { \l__jsonparse_array_count_int }
+      \__jsonparse_array_values:n
+  \group_end:
+}
+
+\tl_new:N \JSONParseArrayIndex
+\tl_new:N \JSONParseArrayKey
+\tl_new:N \JSONParseArrayValue
+
+\cs_new:Npn \__jsonparse_array_values_map_keys:n #1 {
+  \int_incr:N \l__jsonparse_array_keys_index_int
+  \tl_set:Ne \l__jsonparse_array_keys_index_roman_tl {
+    \int_to_Roman:n { \l__jsonparse_array_keys_index_int }
+  }
+  \tl_gset:ce { JSONParseArrayKey \l__jsonparse_array_keys_index_roman_tl } {
+    \l__jsonparse_array_sep_left_str
+    \JSONParseArrayIndex
+    \l__jsonparse_array_sep_right_str
+    \l__jsonparse_child_sep_str
+    #1
+  }
+  \bool_if:NTF \l__jsonparse_rescan_bool {
+    \tl_gset:cn { JSONParseArrayValue \l__jsonparse_array_keys_index_roman_tl } {
+      \exp_args:Ne \__jsonparse_rescan:n {
+        \prop_item:Ne \l__jsonparse_temp_tl {
+          \l__jsonparse_array_sep_left_str
+          \JSONParseArrayIndex
+          \l__jsonparse_array_sep_right_str
+          \l__jsonparse_child_sep_str
+          #1
+        }
       }
-      \bool_if:NTF \l__jsonparse_rescan_bool {
+    }
+  } {
+    \tl_gset:ce { JSONParseArrayValue \l__jsonparse_array_keys_index_roman_tl } {
+      \prop_item:Ne \l__jsonparse_temp_tl {
+        \l__jsonparse_array_sep_left_str
+        \JSONParseArrayIndex
+        \l__jsonparse_array_sep_right_str
+        \l__jsonparse_child_sep_str
+        #1
+      }
+    }
+  }
+}
+
+\cs_new:Npn \__jsonparse_array_values_map:n #1 {
+  \bool_if:NTF \l__jsonparse_zero_based_bool {
+    \tl_gset:Nn \JSONParseArrayIndex { \int_eval:n { #1 - 1 } }
+  } {
+    \tl_gset:Nn \JSONParseArrayIndex {#1}
+  }
+  \clist_if_empty:NTF \l__jsonparse_array_map_keys_clist {
+    \tl_gset:Ne \JSONParseArrayKey {
+      \l__jsonparse_array_sep_left_str
+      \JSONParseArrayIndex
+      \l__jsonparse_array_sep_right_str
+    }
+    \bool_if:NTF \l__jsonparse_rescan_bool {
+      \tl_gset:Nn \JSONParseArrayValue {
         \exp_args:Ne \__jsonparse_rescan:n {
           \prop_item:Ne \l__jsonparse_temp_tl {
             \l__jsonparse_array_sep_left_str
-            \bool_if:NTF \l__jsonparse_zero_based_bool {
-              \int_eval:n { ##1 - 1 }
-            } {
-              ##1
-            }
+            \JSONParseArrayIndex
             \l__jsonparse_array_sep_right_str
-            \IfValueT {#4} {
-              \l__jsonparse_child_sep_str
-              #4
-            }
           }
         }
-      } {
+      }
+    } {
+      \tl_gset:Ne \JSONParseArrayValue {
         \prop_item:Ne \l__jsonparse_temp_tl {
           \l__jsonparse_array_sep_left_str
-          \bool_if:NTF \l__jsonparse_zero_based_bool {
-            \int_eval:n { ##1 - 1 }
-          } {
-            ##1
-          }
+          \JSONParseArrayIndex
           \l__jsonparse_array_sep_right_str
-          \IfValueT {#4} {
-            \l__jsonparse_child_sep_str
-            #4
-          }
         }
       }
     }
-  \group_end:
+  } {
+    \int_zero:N \l__jsonparse_array_keys_index_int
+    \clist_map_function:NN \l__jsonparse_array_map_keys_clist 
+      \__jsonparse_array_values_map_keys:n
+    \tl_gset_eq:NN \JSONParseArrayKey \JSONParseArrayKeyI
+    \tl_gset_eq:NN \JSONParseArrayValue \JSONParseArrayValueI
+  }
+  \use:c { \l__jsonparse_array_map_function_str }
 }
 
-\tl_new:N \JSONParseArrayNewline
-\tl_new:N \JSONParseArrayIndex
-\tl_new:N \JSONParseArrayKey
-\tl_new:N \JSONParseArrayValue
+\cs_set:Npn \__jsonparse_array_map_create_cs:n #1 {
+  \int_incr:N \l__jsonparse_array_keys_index_int
+  \tl_set:Ne \l__jsonparse_array_keys_index_roman_tl {
+    \int_to_Roman:n { \l__jsonparse_array_keys_index_int }
+  }
+  \tl_if_exist:cF { JSONParseArrayKey \l__jsonparse_array_keys_index_roman_tl } {
+    \tl_new:c { JSONParseArrayKey \l__jsonparse_array_keys_index_roman_tl }
+  }
+  \tl_if_exist:cF { JSONParseArrayValue \l__jsonparse_array_keys_index_roman_tl } {
+    \tl_new:c { JSONParseArrayValue \l__jsonparse_array_keys_index_roman_tl }
+  }
+}
 
-\NewDocumentCommand { \JSONParseArrayValuesMap } { O{} m m o m O{} O{} } {
-	\group_begin:
+\NewDocumentCommand { \JSONParseArrayValuesMap } { O{} m m O{} m O{} O{} } {
+  \group_begin:
     \keys_set_known:nn { jsonparse / typeset } {#1} \l__jsonparse_unused_keys_clist
     \__jsonparse_warning_unused_keys:
-    \tl_set:Nn \l__jsonparse_temp_tl {#2}
+    \tl_set_eq:NN \l__jsonparse_temp_tl #2
     \jsonparse_filter:Nn \l__jsonparse_temp_tl {#3}
     \jsonparse_array_count:NN \l__jsonparse_temp_tl \l__jsonparse_array_count_int
-    \IfValueT {#4} {
+    \clist_set:Nn \l__jsonparse_array_map_keys_clist {#4}
+    \str_set:Nn \l__jsonparse_array_map_function_str {#5}
+    \clist_if_empty:NF \l__jsonparse_array_map_keys_clist {
       \int_zero:N \l__jsonparse_array_keys_index_int
-      \clist_map_inline:nn {#4} {
-        \int_incr:N \l__jsonparse_array_keys_index_int
-        \tl_set:Ne \l__jsonparse_array_keys_index_roman_tl {
-          \int_to_Roman:n { \l__jsonparse_array_keys_index_int }
-        }
-        \tl_if_exist:cF { JSONParseArrayKey \l__jsonparse_array_keys_index_roman_tl } {
-          \tl_new:c { JSONParseArrayKey \l__jsonparse_array_keys_index_roman_tl }
-        }
-        \tl_if_exist:cF { JSONParseArrayValue \l__jsonparse_array_keys_index_roman_tl } {
-          \tl_new:c { JSONParseArrayValue \l__jsonparse_array_keys_index_roman_tl }
-        }
-      }
+      \clist_map_function:NN \l__jsonparse_array_map_keys_clist
+        \__jsonparse_array_map_create_cs:n
     }
     #6
-    \tl_gset:Nn \JSONParseArrayNewline { \tabularnewline }
-    \int_step_inline:nn { \l__jsonparse_array_count_int } {
-      \bool_if:NTF \l__jsonparse_zero_based_bool {
-        \tl_gset:Nn \JSONParseArrayIndex { \int_eval:n { ##1 - 1 } }
-      } {
-        \tl_gset:Nn \JSONParseArrayIndex {##1}
-      }
-      \IfValueTF {#4} {
-        \int_zero:N \l__jsonparse_array_keys_index_int
-        \clist_map_inline:nn {#4} {
-          \int_incr:N \l__jsonparse_array_keys_index_int
-          \tl_set:Ne \l__jsonparse_array_keys_index_roman_tl {
-            \int_to_Roman:n { \l__jsonparse_array_keys_index_int }
-          }
-          \tl_gset:ce { JSONParseArrayKey \l__jsonparse_array_keys_index_roman_tl } {
-            \l__jsonparse_array_sep_left_str
-            \bool_if:NTF \l__jsonparse_zero_based_bool {
-              \int_eval:n { ##1 - 1 }
-            } {
-              ##1
-            }
-            \l__jsonparse_array_sep_right_str
-            \l__jsonparse_child_sep_str
-            ####1
-          }
-          \bool_if:NTF \l__jsonparse_rescan_bool {
-            \tl_gset:cn { JSONParseArrayValue \l__jsonparse_array_keys_index_roman_tl } {
-              \exp_args:Ne \__jsonparse_rescan:n {
-                \prop_item:Ne \l__jsonparse_temp_tl {
-                  \l__jsonparse_array_sep_left_str
-                  \bool_if:NTF \l__jsonparse_zero_based_bool {
-                    \int_eval:n { ##1 - 1 }
-                  } {
-                    ##1
-                  }
-                  \l__jsonparse_array_sep_right_str
-                  \l__jsonparse_child_sep_str
-                  ####1
-                }
-              }
-            }
-          } {
-            \tl_gset:ce { JSONParseArrayValue \l__jsonparse_array_keys_index_roman_tl } {
-              \prop_item:Ne \l__jsonparse_temp_tl {
-                \l__jsonparse_array_sep_left_str
-                \bool_if:NTF \l__jsonparse_zero_based_bool {
-                  \int_eval:n { ##1 - 1 }
-                } {
-                  ##1
-                }
-                \l__jsonparse_array_sep_right_str
-                \l__jsonparse_child_sep_str
-                ####1
-              }
-            }
-          }
-        }
-        \tl_gset_eq:NN \JSONParseArrayKey \JSONParseArrayKeyI
-        \tl_gset_eq:NN \JSONParseArrayValue \JSONParseArrayValueI
-      } {
-        \tl_gset:Ne \JSONParseArrayKey {
-          \l__jsonparse_array_sep_left_str
-          \bool_if:NTF \l__jsonparse_zero_based_bool {
-            \int_eval:n { ##1 - 1 }
-          } {
-            ##1
-          }
-          \l__jsonparse_array_sep_right_str
-        }
-        \bool_if:NTF \l__jsonparse_rescan_bool {
-          \tl_gset:Nn \JSONParseArrayValue {
-            \exp_args:Ne \__jsonparse_rescan:n {
-              \prop_item:Ne \l__jsonparse_temp_tl {
-                \l__jsonparse_array_sep_left_str
-                \bool_if:NTF \l__jsonparse_zero_based_bool {
-                  \int_eval:n { ##1 - 1 }
-                } {
-                  ##1
-                }
-                \l__jsonparse_array_sep_right_str
-              }
-            }
-          }
-        } {
-          \tl_gset:Ne \JSONParseArrayValue {
-            \prop_item:Ne \l__jsonparse_temp_tl {
-              \l__jsonparse_array_sep_left_str
-              \bool_if:NTF \l__jsonparse_zero_based_bool {
-                \int_eval:n { ##1 - 1 }
-              } {
-                ##1
-              }
-              \l__jsonparse_array_sep_right_str
-            }
-          }
-        }
-      }
-      \int_compare:nNnT {##1} = { \l__jsonparse_array_count_int } {
-        \tl_gset:Nn \JSONParseArrayNewline { }
-      }
-      \use:c {#5}
-    }
+    \int_step_function:nN { \l__jsonparse_array_count_int } 
+      \__jsonparse_array_values_map:n 
     #7
-	\group_end:
+  \group_end:
 }
 
 % EOF



More information about the tex-live-commits mailing list.