- Tree Maker + Tree Maker GitHub
diff --git a/docs/main.css b/docs/main.css
index 017384c..eea0397 100644
--- a/docs/main.css
+++ b/docs/main.css
@@ -1 +1 @@
-*,::after,::before{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}::after,::before{--tw-content:''}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[multiple],[type=date],[type=datetime-local],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],select,textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding-top:.5rem;padding-right:.75rem;padding-bottom:.5rem;padding-left:.75rem;font-size:1rem;line-height:1.5rem;--tw-shadow:0 0 #0000}[multiple]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,select:focus,textarea:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}input::-moz-placeholder,textarea::-moz-placeholder{color:#6b7280;opacity:1}input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-datetime-edit,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact}[multiple]{background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;color-adjust:unset;print-color-adjust:unset}[type=checkbox],[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow:0 0 #0000}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}[type=checkbox]:checked,[type=radio]:checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}[type=radio]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}[type=checkbox]:checked:focus,[type=checkbox]:checked:hover,[type=radio]:checked:focus,[type=radio]:checked:hover{border-color:transparent;background-color:currentColor}[type=checkbox]:indeterminate{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}[type=checkbox]:indeterminate:focus,[type=checkbox]:indeterminate:hover{border-color:transparent;background-color:currentColor}[type=file]{background:unset;border-color:inherit;border-width:0;border-radius:0;padding:0;font-size:unset;line-height:inherit}[type=file]:focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}*,::after,::before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::-webkit-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.visible{visibility:visible}.relative{position:relative}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mb-2{margin-bottom:.5rem}.block{display:block}.flex{display:flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-64{height:16rem}.w-full{width:100%}.w-1\/5{width:20%}.w-1{width:.25rem}.flex-shrink{flex-shrink:1}.basis-6\/12{flex-basis:50%}.basis-1\/12{flex-basis:8.333333%}.basis-5\/12{flex-basis:41.666667%}.basis-1{flex-basis:0.25rem}.basis-5{flex-basis:1.25rem}.basis-6{flex-basis:1.5rem}.border-collapse{border-collapse:collapse}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.gap-4{gap:1rem}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded-md{border-radius:.375rem}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.bg-teal-900{--tw-bg-opacity:1;background-color:rgb(19 78 74 / var(--tw-bg-opacity))}.bg-teal-800{--tw-bg-opacity:1;background-color:rgb(17 94 89 / var(--tw-bg-opacity))}.bg-cyan-600{--tw-bg-opacity:1;background-color:rgb(8 145 178 / var(--tw-bg-opacity))}.bg-teal-600{--tw-bg-opacity:1;background-color:rgb(13 148 136 / var(--tw-bg-opacity))}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-1{padding-left:.25rem;padding-right:.25rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.font-bold{font-weight:700}.text-white{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.shadow-xl{--tw-shadow:0 20px 25px -5px rgb(0 0 0 / 0.1),0 8px 10px -6px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hover\:outline:hover{outline-style:solid}@media (min-width:768px){.md\:flex{display:flex}}
\ No newline at end of file
+*,::after,::before{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}::after,::before{--tw-content:''}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[multiple],[type=date],[type=datetime-local],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],select,textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding-top:.5rem;padding-right:.75rem;padding-bottom:.5rem;padding-left:.75rem;font-size:1rem;line-height:1.5rem;--tw-shadow:0 0 #0000}[multiple]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,select:focus,textarea:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}input::-moz-placeholder,textarea::-moz-placeholder{color:#6b7280;opacity:1}input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-datetime-edit,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact}[multiple]{background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;color-adjust:unset;print-color-adjust:unset}[type=checkbox],[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow:0 0 #0000}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}[type=checkbox]:checked,[type=radio]:checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}[type=radio]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}[type=checkbox]:checked:focus,[type=checkbox]:checked:hover,[type=radio]:checked:focus,[type=radio]:checked:hover{border-color:transparent;background-color:currentColor}[type=checkbox]:indeterminate{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}[type=checkbox]:indeterminate:focus,[type=checkbox]:indeterminate:hover{border-color:transparent;background-color:currentColor}[type=file]{background:unset;border-color:inherit;border-width:0;border-radius:0;padding:0;font-size:unset;line-height:inherit}[type=file]:focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}*,::after,::before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::-webkit-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.visible{visibility:visible}.relative{position:relative}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mb-2{margin-bottom:.5rem}.block{display:block}.flex{display:flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-64{height:16rem}.w-full{width:100%}.w-1\/5{width:20%}.w-1{width:.25rem}.flex-shrink{flex-shrink:1}.basis-6\/12{flex-basis:50%}.basis-1\/12{flex-basis:8.333333%}.basis-5\/12{flex-basis:41.666667%}.basis-6{flex-basis:1.5rem}.basis-1{flex-basis:0.25rem}.basis-5{flex-basis:1.25rem}.border-collapse{border-collapse:collapse}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.gap-4{gap:1rem}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded-md{border-radius:.375rem}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.bg-teal-900{--tw-bg-opacity:1;background-color:rgb(19 78 74 / var(--tw-bg-opacity))}.bg-teal-800{--tw-bg-opacity:1;background-color:rgb(17 94 89 / var(--tw-bg-opacity))}.bg-cyan-600{--tw-bg-opacity:1;background-color:rgb(8 145 178 / var(--tw-bg-opacity))}.bg-teal-600{--tw-bg-opacity:1;background-color:rgb(13 148 136 / var(--tw-bg-opacity))}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-1{padding-left:.25rem;padding-right:.25rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.font-bold{font-weight:700}.text-white{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.shadow-xl{--tw-shadow:0 20px 25px -5px rgb(0 0 0 / 0.1),0 8px 10px -6px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hover\:outline:hover{outline-style:solid}@media (min-width:768px){.md\:flex{display:flex}}
\ No newline at end of file
diff --git a/docs/main.js b/docs/main.js
index 8019b9f..e391264 100644
--- a/docs/main.js
+++ b/docs/main.js
@@ -1 +1 @@
-const go=new Go;let mod,instance;WebAssembly.instantiateStreaming(fetch("main.wasm"),go.importObject).then(result=>{mod=result.module,instance=result.instance,document.getElementById("gtree").disabled=!1,go.run(instance),instance=WebAssembly.instantiate(mod,go.importObject)});const clearMarkdown=()=>{document.getElementById("in").value=""},generateTree=()=>{gtree()},copyToClipboard=()=>{var tree=document.getElementById("treeView");if(null!==tree){const clipboard=window.navigator.clipboard;clipboard.writeText(tree.innerHTML)}};
\ No newline at end of file
+const go=new Go;let mod,instance;WebAssembly.instantiateStreaming(fetch("main.wasm"),go.importObject).then(result=>{mod=result.module,instance=result.instance,document.getElementById("gtree").disabled=!1,go.run(instance),instance=WebAssembly.instantiate(mod,go.importObject)});const clearMarkdown=()=>{document.getElementById("in").value=""},generateTree=()=>{gtree()},copyToClipboard=()=>{var tree=document.getElementById("treeView");null!==tree&&window.navigator.clipboard.writeText(tree.innerHTML)};
\ No newline at end of file
diff --git a/docs/service_worker.js b/docs/service_worker.js
index a8396f0..95de551 100644
--- a/docs/service_worker.js
+++ b/docs/service_worker.js
@@ -1,7 +1,7 @@
// copied by https://laboradian.com/create-offline-site-using-sw/
// TODO: ファイル変更したらCACHE_VERSIONを変えてデプロイすること
-const CACHE_VERSION = 'v1.0.7';
+const CACHE_VERSION = 'v1.0.8';
const CACHE_NAME = `${registration.scope}!${CACHE_VERSION}`;
// キャッシュするファイルをセットする
diff --git a/docs/wasm_exec.js b/docs/wasm_exec.js
index b9943f5..f3a0182 100644
--- a/docs/wasm_exec.js
+++ b/docs/wasm_exec.js
@@ -1 +1 @@
-(()=>{if("undefined"==typeof global)if("undefined"!=typeof window)window.global=window;else{if("undefined"==typeof self)throw new Error("cannot export Go (neither global, window nor self is defined)");self.global=self}global.require||"undefined"==typeof require||(global.require=require),!global.fs&&global.require&&(global.fs=require("fs"));const enosys=()=>{const err=new Error("not implemented");return err.code="ENOSYS",err};if(!global.fs){let outputBuf="";global.fs={constants:{O_WRONLY:-1,O_RDWR:-1,O_CREAT:-1,O_TRUNC:-1,O_APPEND:-1,O_EXCL:-1},writeSync(fd,buf){var nl=(outputBuf+=decoder.decode(buf)).lastIndexOf("\n");return-1!=nl&&(outputBuf=outputBuf.substr(nl+1)),buf.length},write(fd,buf,offset,length,position,callback){0!==offset||length!==buf.length||null!==position?callback(enosys()):callback(null,this.writeSync(fd,buf))},chmod(path,mode,callback){callback(enosys())},chown(path,uid,gid,callback){callback(enosys())},close(fd,callback){callback(enosys())},fchmod(fd,mode,callback){callback(enosys())},fchown(fd,uid,gid,callback){callback(enosys())},fstat(fd,callback){callback(enosys())},fsync(fd,callback){callback(null)},ftruncate(fd,length,callback){callback(enosys())},lchown(path,uid,gid,callback){callback(enosys())},link(path,link,callback){callback(enosys())},lstat(path,callback){callback(enosys())},mkdir(path,perm,callback){callback(enosys())},open(path,flags,mode,callback){callback(enosys())},read(fd,buffer,offset,length,position,callback){callback(enosys())},readdir(path,callback){callback(enosys())},readlink(path,callback){callback(enosys())},rename(from,to,callback){callback(enosys())},rmdir(path,callback){callback(enosys())},stat(path,callback){callback(enosys())},symlink(path,link,callback){callback(enosys())},truncate(path,length,callback){callback(enosys())},unlink(path,callback){callback(enosys())},utimes(path,atime,mtime,callback){callback(enosys())}}}if(global.process||(global.process={getuid(){return-1},getgid(){return-1},geteuid(){return-1},getegid(){return-1},getgroups(){throw enosys()},pid:-1,ppid:-1,umask(){throw enosys()},cwd(){throw enosys()},chdir(){throw enosys()}}),!global.crypto){const nodeCrypto=require("crypto");global.crypto={getRandomValues(b){nodeCrypto.randomFillSync(b)}}}global.performance||(global.performance={now(){var[sec,nsec]=process.hrtime();return 1e3*sec+nsec/1e6}}),global.TextEncoder||(global.TextEncoder=require("util").TextEncoder),global.TextDecoder||(global.TextDecoder=require("util").TextDecoder);const encoder=new TextEncoder("utf-8"),decoder=new TextDecoder("utf-8");var logLine=[];if(global.Go=class{constructor(){this._callbackTimeouts=new Map,this._nextCallbackTimeoutID=1;const mem=()=>new DataView(this._inst.exports.memory.buffer),setInt64=(addr,v)=>{mem().setUint32(addr+0,v,!0),mem().setUint32(addr+4,Math.floor(v/4294967296),!0)};const loadValue=addr=>{var f=mem().getFloat64(addr,!0);if(0!==f)return isNaN(f)?(addr=mem().getUint32(addr,!0),this._values[addr]):f},storeValue=(addr,v)=>{if("number"==typeof v)return isNaN(v)?(mem().setUint32(addr+4,2146959360,!0),void mem().setUint32(addr,0,!0)):0===v?(mem().setUint32(addr+4,2146959360,!0),void mem().setUint32(addr,1,!0)):void mem().setFloat64(addr,v,!0);switch(v){case void 0:return void mem().setFloat64(addr,0,!0);case null:return mem().setUint32(addr+4,2146959360,!0),void mem().setUint32(addr,2,!0);case!0:return mem().setUint32(addr+4,2146959360,!0),void mem().setUint32(addr,3,!0);case!1:return mem().setUint32(addr+4,2146959360,!0),void mem().setUint32(addr,4,!0)}let id=this._ids.get(v),typeFlag=(void 0===id&&(void 0===(id=this._idPool.pop())&&(id=this._values.length),this._values[id]=v,this._goRefCounts[id]=0,this._ids.set(v,id)),this._goRefCounts[id]++,1);switch(typeof v){case"string":typeFlag=2;break;case"symbol":typeFlag=3;break;case"function":typeFlag=4}mem().setUint32(addr+4,2146959360|typeFlag,!0),mem().setUint32(addr,id,!0)},loadSlice=(array,len,cap)=>new Uint8Array(this._inst.exports.memory.buffer,array,len),loadSliceOfValues=(array,len,cap)=>{const a=new Array(len);for(let i=0;idecoder.decode(new DataView(this._inst.exports.memory.buffer,ptr,len)),timeOrigin=Date.now()-performance.now();this.importObject={wasi_snapshot_preview1:{fd_write:function(fd,iovs_ptr,iovs_len,nwritten_ptr){let nwritten=0;if(1==fd)for(let iovs_i=0;iovs_i0,fd_fdstat_get:()=>0,fd_seek:()=>0,proc_exit:code=>{if(!global.process)throw"trying to exit with code "+code;process.exit(code)},random_get:(bufPtr,bufLen)=>(crypto.getRandomValues(loadSlice(bufPtr,bufLen)),0)},env:{"runtime.ticks":()=>timeOrigin+performance.now(),"runtime.sleepTicks":timeout=>{setTimeout(this._inst.exports.go_scheduler,timeout)},"syscall/js.finalizeRef":sp=>{},"syscall/js.stringVal":(ret_ptr,value_ptr,value_len)=>{value_ptr=loadString(value_ptr,value_len);storeValue(ret_ptr,value_ptr)},"syscall/js.valueGet":(retval,v_addr,p_ptr,p_len)=>{p_ptr=loadString(p_ptr,p_len),p_len=loadValue(v_addr),v_addr=Reflect.get(p_len,p_ptr);storeValue(retval,v_addr)},"syscall/js.valueSet":(v_addr,p_ptr,p_len,x_addr)=>{v_addr=loadValue(v_addr),p_ptr=loadString(p_ptr,p_len),p_len=loadValue(x_addr);Reflect.set(v_addr,p_ptr,p_len)},"syscall/js.valueDelete":(v_addr,p_ptr,p_len)=>{v_addr=loadValue(v_addr),p_ptr=loadString(p_ptr,p_len);Reflect.deleteProperty(v_addr,p_ptr)},"syscall/js.valueIndex":(ret_addr,v_addr,i)=>{storeValue(ret_addr,Reflect.get(loadValue(v_addr),i))},"syscall/js.valueSetIndex":(v_addr,i,x_addr)=>{Reflect.set(loadValue(v_addr),i,loadValue(x_addr))},"syscall/js.valueCall":(ret_addr,v_addr,m_ptr,m_len,args_ptr,args_len,args_cap)=>{v_addr=loadValue(v_addr),m_ptr=loadString(m_ptr,m_len),m_len=loadSliceOfValues(args_ptr,args_len);try{var m=Reflect.get(v_addr,m_ptr);storeValue(ret_addr,Reflect.apply(m,v_addr,m_len)),mem().setUint8(ret_addr+8,1)}catch(err){storeValue(ret_addr,err),mem().setUint8(ret_addr+8,0)}},"syscall/js.valueInvoke":(ret_addr,v_addr,args_ptr,args_len,args_cap)=>{try{var v=loadValue(v_addr),args=loadSliceOfValues(args_ptr,args_len);storeValue(ret_addr,Reflect.apply(v,void 0,args)),mem().setUint8(ret_addr+8,1)}catch(err){storeValue(ret_addr,err),mem().setUint8(ret_addr+8,0)}},"syscall/js.valueNew":(ret_addr,v_addr,args_ptr,args_len,args_cap)=>{v_addr=loadValue(v_addr),args_ptr=loadSliceOfValues(args_ptr,args_len);try{storeValue(ret_addr,Reflect.construct(v_addr,args_ptr)),mem().setUint8(ret_addr+8,1)}catch(err){storeValue(ret_addr,err),mem().setUint8(ret_addr+8,0)}},"syscall/js.valueLength":v_addr=>loadValue(v_addr).length,"syscall/js.valuePrepareString":(ret_addr,v_addr)=>{v_addr=String(loadValue(v_addr)),v_addr=encoder.encode(v_addr);storeValue(ret_addr,v_addr),setInt64(ret_addr+8,v_addr.length)},"syscall/js.valueLoadString":(v_addr,slice_ptr,slice_len,slice_cap)=>{v_addr=loadValue(v_addr);loadSlice(slice_ptr,slice_len).set(v_addr)},"syscall/js.valueInstanceOf":(v_addr,t_addr)=>loadValue(v_addr)instanceof loadValue(t_addr),"syscall/js.copyBytesToGo":(ret_addr,dest_addr,dest_len,dest_cap,source_addr)=>{var num_bytes_copied_addr=ret_addr,ret_addr=ret_addr+4;const dst=loadSlice(dest_addr,dest_len),src=loadValue(source_addr);src instanceof Uint8Array||src instanceof Uint8ClampedArray?(dest_addr=src.subarray(0,dst.length),dst.set(dest_addr),setInt64(num_bytes_copied_addr,dest_addr.length),mem().setUint8(ret_addr,1)):mem().setUint8(ret_addr,0)},"syscall/js.copyBytesToJS":(ret_addr,dest_addr,source_addr,source_len,source_cap)=>{var num_bytes_copied_addr=ret_addr,ret_addr=ret_addr+4;const dst=loadValue(dest_addr),src=loadSlice(source_addr,source_len);dst instanceof Uint8Array||dst instanceof Uint8ClampedArray?(dest_addr=src.subarray(0,dst.length),dst.set(dest_addr),setInt64(num_bytes_copied_addr,dest_addr.length),mem().setUint8(ret_addr,1)):mem().setUint8(ret_addr,0)}}}}async run(instance){this._inst=instance,this._values=[NaN,0,null,!0,!1,global,this],this._goRefCounts=[],this._ids=new Map,this._idPool=[],this.exited=!1;for(new DataView(this._inst.exports.memory.buffer);;){var callbackPromise=new Promise(resolve=>{this._resolveCallbackPromise=()=>{if(this.exited)throw new Error("bad callback: Go program has already exited");setTimeout(resolve,0)}});if(this._inst.exports._start(),this.exited)break;await callbackPromise}}_resume(){if(this.exited)throw new Error("Go program has already exited");this._inst.exports.resume(),this.exited&&this._resolveExitPromise()}_makeFuncWrapper(id){const go=this;return function(){var event={id:id,this:this,args:arguments};return go._pendingEvent=event,go._resume(),event.result}}},global.require&&global.require.main===module&&global.process&&global.process.versions&&!global.process.versions.electron){3!=process.argv.length&&process.exit(1);const go=new Go;WebAssembly.instantiate(fs.readFileSync(process.argv[2]),go.importObject).then(result=>go.run(result.instance)).catch(err=>{process.exit(1)})}})();
\ No newline at end of file
+(()=>{if("undefined"==typeof global)if("undefined"!=typeof window)window.global=window;else{if("undefined"==typeof self)throw new Error("cannot export Go (neither global, window nor self is defined)");self.global=self}global.require||"undefined"==typeof require||(global.require=require),!global.fs&&global.require&&(global.fs=require("fs"));const enosys=()=>{var err=new Error("not implemented");return err.code="ENOSYS",err};if(!global.fs){let outputBuf="";global.fs={constants:{O_WRONLY:-1,O_RDWR:-1,O_CREAT:-1,O_TRUNC:-1,O_APPEND:-1,O_EXCL:-1},writeSync(fd,buf){var nl=(outputBuf+=decoder.decode(buf)).lastIndexOf("\n");return-1!=nl&&(outputBuf=outputBuf.substr(nl+1)),buf.length},write(fd,buf,offset,length,position,callback){0!==offset||length!==buf.length||null!==position?callback(enosys()):callback(null,this.writeSync(fd,buf))},chmod(path,mode,callback){callback(enosys())},chown(path,uid,gid,callback){callback(enosys())},close(fd,callback){callback(enosys())},fchmod(fd,mode,callback){callback(enosys())},fchown(fd,uid,gid,callback){callback(enosys())},fstat(fd,callback){callback(enosys())},fsync(fd,callback){callback(null)},ftruncate(fd,length,callback){callback(enosys())},lchown(path,uid,gid,callback){callback(enosys())},link(path,link,callback){callback(enosys())},lstat(path,callback){callback(enosys())},mkdir(path,perm,callback){callback(enosys())},open(path,flags,mode,callback){callback(enosys())},read(fd,buffer,offset,length,position,callback){callback(enosys())},readdir(path,callback){callback(enosys())},readlink(path,callback){callback(enosys())},rename(from,to,callback){callback(enosys())},rmdir(path,callback){callback(enosys())},stat(path,callback){callback(enosys())},symlink(path,link,callback){callback(enosys())},truncate(path,length,callback){callback(enosys())},unlink(path,callback){callback(enosys())},utimes(path,atime,mtime,callback){callback(enosys())}}}if(global.process||(global.process={getuid(){return-1},getgid(){return-1},geteuid(){return-1},getegid(){return-1},getgroups(){throw enosys()},pid:-1,ppid:-1,umask(){throw enosys()},cwd(){throw enosys()},chdir(){throw enosys()}}),!global.crypto){const nodeCrypto=require("crypto");global.crypto={getRandomValues(b){nodeCrypto.randomFillSync(b)}}}global.performance||(global.performance={now(){var[sec,nsec]=process.hrtime();return 1e3*sec+nsec/1e6}}),global.TextEncoder||(global.TextEncoder=require("util").TextEncoder),global.TextDecoder||(global.TextDecoder=require("util").TextDecoder);const encoder=new TextEncoder("utf-8"),decoder=new TextDecoder("utf-8");var logLine=[];if(global.Go=class{constructor(){this._callbackTimeouts=new Map,this._nextCallbackTimeoutID=1;const mem=()=>new DataView(this._inst.exports.memory.buffer),setInt64=(addr,v)=>{mem().setUint32(addr+0,v,!0),mem().setUint32(addr+4,Math.floor(v/4294967296),!0)};const loadValue=addr=>{var f=mem().getFloat64(addr,!0);if(0!==f)return isNaN(f)?(addr=mem().getUint32(addr,!0),this._values[addr]):f},storeValue=(addr,v)=>{if("number"==typeof v)return isNaN(v)?(mem().setUint32(addr+4,2146959360,!0),void mem().setUint32(addr,0,!0)):0===v?(mem().setUint32(addr+4,2146959360,!0),void mem().setUint32(addr,1,!0)):void mem().setFloat64(addr,v,!0);switch(v){case void 0:return void mem().setFloat64(addr,0,!0);case null:return mem().setUint32(addr+4,2146959360,!0),void mem().setUint32(addr,2,!0);case!0:return mem().setUint32(addr+4,2146959360,!0),void mem().setUint32(addr,3,!0);case!1:return mem().setUint32(addr+4,2146959360,!0),void mem().setUint32(addr,4,!0)}let id=this._ids.get(v),typeFlag=(void 0===id&&(void 0===(id=this._idPool.pop())&&(id=this._values.length),this._values[id]=v,this._goRefCounts[id]=0,this._ids.set(v,id)),this._goRefCounts[id]++,1);switch(typeof v){case"string":typeFlag=2;break;case"symbol":typeFlag=3;break;case"function":typeFlag=4}mem().setUint32(addr+4,2146959360|typeFlag,!0),mem().setUint32(addr,id,!0)},loadSlice=(array,len,cap)=>new Uint8Array(this._inst.exports.memory.buffer,array,len),loadSliceOfValues=(array,len,cap)=>{var a=new Array(len);for(let i=0;idecoder.decode(new DataView(this._inst.exports.memory.buffer,ptr,len)),timeOrigin=Date.now()-performance.now();this.importObject={wasi_snapshot_preview1:{fd_write:function(fd,iovs_ptr,iovs_len,nwritten_ptr){let nwritten=0;if(1==fd)for(let iovs_i=0;iovs_i0,fd_fdstat_get:()=>0,fd_seek:()=>0,proc_exit:code=>{if(!global.process)throw"trying to exit with code "+code;process.exit(code)},random_get:(bufPtr,bufLen)=>(crypto.getRandomValues(loadSlice(bufPtr,bufLen)),0)},env:{"runtime.ticks":()=>timeOrigin+performance.now(),"runtime.sleepTicks":timeout=>{setTimeout(this._inst.exports.go_scheduler,timeout)},"syscall/js.finalizeRef":sp=>{},"syscall/js.stringVal":(ret_ptr,value_ptr,value_len)=>{value_ptr=loadString(value_ptr,value_len);storeValue(ret_ptr,value_ptr)},"syscall/js.valueGet":(retval,v_addr,p_ptr,p_len)=>{p_ptr=loadString(p_ptr,p_len),p_len=loadValue(v_addr),v_addr=Reflect.get(p_len,p_ptr);storeValue(retval,v_addr)},"syscall/js.valueSet":(v_addr,p_ptr,p_len,x_addr)=>{v_addr=loadValue(v_addr),p_ptr=loadString(p_ptr,p_len),p_len=loadValue(x_addr);Reflect.set(v_addr,p_ptr,p_len)},"syscall/js.valueDelete":(v_addr,p_ptr,p_len)=>{v_addr=loadValue(v_addr),p_ptr=loadString(p_ptr,p_len);Reflect.deleteProperty(v_addr,p_ptr)},"syscall/js.valueIndex":(ret_addr,v_addr,i)=>{storeValue(ret_addr,Reflect.get(loadValue(v_addr),i))},"syscall/js.valueSetIndex":(v_addr,i,x_addr)=>{Reflect.set(loadValue(v_addr),i,loadValue(x_addr))},"syscall/js.valueCall":(ret_addr,v_addr,m_ptr,m_len,args_ptr,args_len,args_cap)=>{v_addr=loadValue(v_addr),m_ptr=loadString(m_ptr,m_len),m_len=loadSliceOfValues(args_ptr,args_len);try{var m=Reflect.get(v_addr,m_ptr);storeValue(ret_addr,Reflect.apply(m,v_addr,m_len)),mem().setUint8(ret_addr+8,1)}catch(err){storeValue(ret_addr,err),mem().setUint8(ret_addr+8,0)}},"syscall/js.valueInvoke":(ret_addr,v_addr,args_ptr,args_len,args_cap)=>{try{var v=loadValue(v_addr),args=loadSliceOfValues(args_ptr,args_len);storeValue(ret_addr,Reflect.apply(v,void 0,args)),mem().setUint8(ret_addr+8,1)}catch(err){storeValue(ret_addr,err),mem().setUint8(ret_addr+8,0)}},"syscall/js.valueNew":(ret_addr,v_addr,args_ptr,args_len,args_cap)=>{v_addr=loadValue(v_addr),args_ptr=loadSliceOfValues(args_ptr,args_len);try{storeValue(ret_addr,Reflect.construct(v_addr,args_ptr)),mem().setUint8(ret_addr+8,1)}catch(err){storeValue(ret_addr,err),mem().setUint8(ret_addr+8,0)}},"syscall/js.valueLength":v_addr=>loadValue(v_addr).length,"syscall/js.valuePrepareString":(ret_addr,v_addr)=>{v_addr=String(loadValue(v_addr)),v_addr=encoder.encode(v_addr);storeValue(ret_addr,v_addr),setInt64(ret_addr+8,v_addr.length)},"syscall/js.valueLoadString":(v_addr,slice_ptr,slice_len,slice_cap)=>{v_addr=loadValue(v_addr);loadSlice(slice_ptr,slice_len).set(v_addr)},"syscall/js.valueInstanceOf":(v_addr,t_addr)=>loadValue(v_addr)instanceof loadValue(t_addr),"syscall/js.copyBytesToGo":(ret_addr,dest_addr,dest_len,dest_cap,source_addr)=>{var num_bytes_copied_addr=ret_addr,ret_addr=ret_addr+4,dest_addr=loadSlice(dest_addr,dest_len),dest_len=loadValue(source_addr);dest_len instanceof Uint8Array||dest_len instanceof Uint8ClampedArray?(source_addr=dest_len.subarray(0,dest_addr.length),dest_addr.set(source_addr),setInt64(num_bytes_copied_addr,source_addr.length),mem().setUint8(ret_addr,1)):mem().setUint8(ret_addr,0)},"syscall/js.copyBytesToJS":(ret_addr,dest_addr,source_addr,source_len,source_cap)=>{var num_bytes_copied_addr=ret_addr,ret_addr=ret_addr+4,dest_addr=loadValue(dest_addr),source_addr=loadSlice(source_addr,source_len);dest_addr instanceof Uint8Array||dest_addr instanceof Uint8ClampedArray?(source_len=source_addr.subarray(0,dest_addr.length),dest_addr.set(source_len),setInt64(num_bytes_copied_addr,source_len.length),mem().setUint8(ret_addr,1)):mem().setUint8(ret_addr,0)}}}}async run(instance){this._inst=instance,this._values=[NaN,0,null,!0,!1,global,this],this._goRefCounts=[],this._ids=new Map,this._idPool=[],this.exited=!1;for(new DataView(this._inst.exports.memory.buffer);;){var callbackPromise=new Promise(resolve=>{this._resolveCallbackPromise=()=>{if(this.exited)throw new Error("bad callback: Go program has already exited");setTimeout(resolve,0)}});if(this._inst.exports._start(),this.exited)break;await callbackPromise}}_resume(){if(this.exited)throw new Error("Go program has already exited");this._inst.exports.resume(),this.exited&&this._resolveExitPromise()}_makeFuncWrapper(id){const go=this;return function(){var event={id:id,this:this,args:arguments};return go._pendingEvent=event,go._resume(),event.result}}},global.require&&global.require.main===module&&global.process&&global.process.versions&&!global.process.versions.electron){3!=process.argv.length&&process.exit(1);const go=new Go;WebAssembly.instantiate(fs.readFileSync(process.argv[2]),go.importObject).then(result=>go.run(result.instance)).catch(err=>{process.exit(1)})}})();
\ No newline at end of file