From 438e5a0db04d7a6e1a7199771cca16720c0b4b8d Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Wed, 15 May 2019 23:47:12 -0700 Subject: [PATCH] complete the skeleton of dquotes.subx Still some failing tests: - emit-string-literal-data doesn't ignore metadata when computing the length of literal strings - emit-string-literal-data doesn't handle escape sequences One issue doesn't have a failing test: - emit-metadata doesn't handle string literals containing '/' All these open issues involve a common design question: how to parse a 'word' that includes a string literal that may include spaces. For everything else I know words can't contain spaces and datums can't contain slashes. But for string literals things are tougher. --- subx/057write.subx | 7 ++- subx/066print-int.subx | 104 +++++++++++++++++++++++++++++- subx/Readme.md | 8 ++- subx/apps/assort | Bin 22287 -> 22516 bytes subx/apps/crenshaw2-1 | Bin 19446 -> 19675 bytes subx/apps/crenshaw2-1b | Bin 20005 -> 20234 bytes subx/apps/dquotes | Bin 24502 -> 25014 bytes subx/apps/dquotes.subx | 140 ++++++++++++++++++++++++++++------------- subx/apps/factorial | Bin 18362 -> 18591 bytes subx/apps/handle | Bin 19189 -> 19418 bytes subx/apps/hex | Bin 22455 -> 22684 bytes subx/apps/pack | Bin 37047 -> 37276 bytes 12 files changed, 210 insertions(+), 49 deletions(-) diff --git a/subx/057write.subx b/subx/057write.subx index 455146ac..203cbf76 100644 --- a/subx/057write.subx +++ b/subx/057write.subx @@ -151,8 +151,9 @@ _test-stream: # current read index 0/imm32 # length - 8/imm32 - # data - 00 00 00 00 00 00 00 00 # 8 bytes + 0x10/imm32 + # data (2 lines x 8 bytes/line) + 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 # . . vim:nowrap:textwidth=0 diff --git a/subx/066print-int.subx b/subx/066print-int.subx index 0715b414..1280f348 100644 --- a/subx/066print-int.subx +++ b/subx/066print-int.subx @@ -6,7 +6,7 @@ # . 1-3 bytes 3 bits 2 bits 3 bits 3 bits 3 bits 2 bits 2 bits 0/1/2/4 bytes 0/1/2/4 bytes #? Entry: # run a single test, while debugging -#? e8/call test-print-int32-buffered/disp32 +#? e8/call test-print-int32/disp32 #? # syscall(exit, Num-test-failures) #? 8b/copy 0/mod/indirect 5/rm32/.disp32 . . 3/r32/EBX Num-test-failures/disp32 # copy *Num-test-failures to EBX #? b8/copy-to-EAX 1/imm32/exit @@ -171,8 +171,97 @@ test-print-byte-buffered: # . end c3/return +print-int32: # f : (address stream), n : int -> + # pseudocode: + # write(f, "0x") + # ECX = 28 + # while true + # if (ECX < 0) break + # EAX = n >> ECX + # EAX = EAX & 0xf + # append-byte(f, AL) + # ECX -= 4 + # + # . prolog + 55/push-EBP + 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . . # copy ESP to EBP + # . save registers + 50/push-EAX + 51/push-ECX + # ECX = 28 + b9/copy-to-ECX 0x1c/imm32 +$print-int32:print-hex-prefix: + # write(f, "0x") + # . . push args + 68/push "0x"/imm32 + ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 8/disp8 . # push *(EBP+8) + # . . call + e8/call write/disp32 + # . . discard args + 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP +$print-int32:loop: + # if (ECX < 0) break + 81 7/subop/compare 3/mod/direct 1/rm32/ECX . . . . . 0/imm32 # compare ECX + 7c/jump-if-lesser $print-int32:end/disp8 + # EAX = n >> ECX + 8b/copy 1/mod/*+disp8 5/rm32/EBP . . . 0/r32/EAX 0xc/disp8 . # copy *(EBP+12) to EAX + d3/>>ECX 5/subop/pad-zeroes 3/mod/direct 0/rm32/EAX . . . . . . # shift EAX right by ECX bits, padding zeroes + # EAX = to-hex-char(AL) + 25/and-EAX 0xf/imm32 + e8/call to-hex-char/disp32 + # append-byte(f, AL) + # . . push args + 50/push-EAX + ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 8/disp8 . # push *(EBP+8) + # . . call + e8/call append-byte/disp32 + # . . discard args + 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP + # ECX -= 4 + 81 5/subop/subtract 3/mod/direct 1/rm32/ECX . . . . . 4/imm32 # subtract from ECX + eb/jump $print-int32:loop/disp8 +$print-int32:end: + # . restore registers + 59/pop-to-ECX + 58/pop-to-EAX + # . epilog + 89/copy 3/mod/direct 4/rm32/ESP . . . 5/r32/EBP . . # copy EBP to ESP + 5d/pop-to-EBP + c3/return + +test-print-int32: + # - check that print-int32 prints the hex textual representation + # setup + # . clear-stream(_test-stream) + # . . push args + 68/push _test-stream/imm32 + # . . call + e8/call clear-stream/disp32 + # . . discard args + 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP + # print-int32(_test-stream, 0x8899aa) + # . . push args + 68/push 0x8899aa/imm32 + 68/push _test-stream/imm32 + # . . call + e8/call print-int32/disp32 + # . . discard args + 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP + # check-stream-equal(_test-stream, "0x008899aa", msg) + # . . push args + 68/push "F - test-print-int32"/imm32 + 68/push "0x008899aa"/imm32 + 68/push _test-stream/imm32 + # . . call + e8/call check-stream-equal/disp32 + # . . discard args + 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32 # add to ESP + # . end + c3/return + print-int32-buffered: # f : (address buffered-file), n : int -> # pseudocode: + # write-buffered(f, "0x") # ECX = 28 # while true # if (ECX < 0) break @@ -189,6 +278,15 @@ print-int32-buffered: # f : (address buffered-file), n : int -> 51/push-ECX # ECX = 28 b9/copy-to-ECX 0x1c/imm32 +$print-int32-buffered:print-hex-prefix: + # write-buffered(f, "0x") + # . . push args + 68/push "0x"/imm32 + ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 8/disp8 . # push *(EBP+8) + # . . call + e8/call write-buffered/disp32 + # . . discard args + 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP $print-int32-buffered:loop: # if (ECX < 0) break 81 7/subop/compare 3/mod/direct 1/rm32/ECX . . . . . 0/imm32 # compare ECX @@ -271,10 +369,10 @@ test-print-int32-buffered: #? # . . discard args #? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP #? # }}} - # check-stream-equal(_test-stream, "008899aa", msg) + # check-stream-equal(_test-stream, "0x008899aa", msg) # . . push args 68/push "F - test-print-int32-buffered"/imm32 - 68/push "008899aa"/imm32 + 68/push "0x008899aa"/imm32 68/push _test-stream/imm32 # . . call e8/call check-stream-equal/disp32 diff --git a/subx/Readme.md b/subx/Readme.md index 517515d8..c91d10ab 100644 --- a/subx/Readme.md +++ b/subx/Readme.md @@ -629,13 +629,19 @@ allocated memory for it.)_ * `append-byte`: int -> stream - Will abort the entire program if there isn't enough room. * `append-byte-hex`: int -> stream + - textual representation in hex, no '0x' prefix + - Will abort the entire program if there isn't enough room. +* `print-int32`: int -> stream + - textual representation in hex, including '0x' prefix - Will abort the entire program if there isn't enough room. * `write-buffered`: string -> buffered-file * `write-slice-buffered`: slice -> buffered-file * `flush`: buffered-file * `write-byte-buffered`: int -> buffered-file * `print-byte-buffered`: int -> buffered-file - - textual representation in hex + - textual representation in hex, no '0x' prefix +* `print-int32-buffered`: int -> buffered-file + - textual representation in hex, including '0x' prefix #### reading from disk * `read`: file -> stream diff --git a/subx/apps/assort b/subx/apps/assort index 1cd0b6cfd604026a7c80a121a8c81be8bdf4e8f0..227bf4e73249b14bc131ecdbb9b85558d20d42b3 100755 GIT binary patch literal 22516 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 literal 22287 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 diff --git a/subx/apps/crenshaw2-1 b/subx/apps/crenshaw2-1 index 03d3d0c32704d2182064a6fd25c5715b4a2580a8..8414e3ce8eda06de314890128a43994c44f3dcba 100755 GIT binary patch literal 19675 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 literal 19446 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 bM@B}<&5Om>*oH_P$NQq|yJ$LzHkbV`Je%o9 diff --git a/subx/apps/crenshaw2-1b b/subx/apps/crenshaw2-1b index 60521cb0a3af52b56f67b55b95f8ea4b8ca86957..5dddec43399af2ab7429516597a96f5683ac7805 100755 GIT binary patch literal 20234 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 Wp#!Vnm|roN2aK*x8jOsV^8W?gSS-;1 literal 20005 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 Vtb%QR#hUP^^E`k diff --git a/subx/apps/dquotes b/subx/apps/dquotes index 03e591f6e970ef727c72c8827c9bce0b89c03c18..02102f045184686ecebb5dddde8e53e0d1931307 100755 GIT binary patch literal 25014 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 literal 24502 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 diff --git a/subx/apps/dquotes.subx b/subx/apps/dquotes.subx index 6cd8d6ea..4810bcad 100644 --- a/subx/apps/dquotes.subx +++ b/subx/apps/dquotes.subx @@ -31,7 +31,7 @@ Entry: # run tests if necessary, convert stdin if not #? # . . discard args #? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP #? # . test() -#? e8/call test-convert-is-idempotent-by-default/disp32 +#? e8/call test-convert-processes-string-literals/disp32 #? 8b/copy 0/mod/indirect 5/rm32/.disp32 . . 3/r32/EBX Num-test-failures/disp32 # copy *Num-test-failures to EBX #? eb/jump $main:end/disp8 @@ -256,6 +256,21 @@ $convert:next-line: # loop e9/jump $convert:line-loop/disp32 $convert:break: + # write-stream-data(out, new-data-segment) + # . . push args + 57/push-EDI + ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0xc/disp8 . # push *(EBP+12) + # . . call + e8/call write-stream-data/disp32 + # . . discard args + 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP + # flush(out) + # . . push args + ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0xc/disp8 . # push *(EBP+12) + # . . call + e8/call flush/disp32 + # . . discard args + 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP $convert:end: # . reclaim locals 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0x214/imm32 # add to ESP @@ -318,6 +333,13 @@ process-string-literal: # string-literal : (address slice), out : (address buff # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP # emit-string-literal-data(out-segment, string-literal) + # . . push args + ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0x8/disp8 . # push *(EBP+8) + ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0x10/disp8 . # push *(EBP+16) + # . . call + e8/call emit-string-literal-data/disp32 + # . . discard args + 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP # write(out-segment, "\n") # . . push args 68/push Newline/imm32 @@ -722,32 +744,39 @@ test-convert-processes-string-literals: # called. We just want to make sure instructions using string literals # switch to a string variable with the right value. # (Modifying string literals completely off the radar for now.) -#? # dump output {{{ -#? # . write(2/stderr, "result: ^") -#? # . . push args -#? 68/push "result: ^"/imm32 -#? 68/push 2/imm32/stderr -#? # . . call -#? e8/call write/disp32 -#? # . . discard args -#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP -#? # . write-stream(2/stderr, _test-output-stream) -#? # . . push args -#? 68/push _test-output-stream/imm32 -#? 68/push 2/imm32/stderr -#? # . . call -#? e8/call write-stream/disp32 -#? # . . discard args -#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP -#? # . write(2/stderr, "$\n") -#? # . . push args -#? 68/push "$\n"/imm32 -#? 68/push 2/imm32/stderr -#? # . . call -#? e8/call write/disp32 -#? # . . discard args -#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP -#? # }}} + # dump output {{{ + # . write(2/stderr, "result: ^") + # . . push args + 68/push "result: ^"/imm32 + 68/push 2/imm32/stderr + # . . call + e8/call write/disp32 + # . . discard args + 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP + # . write-stream(2/stderr, _test-output-stream) + # . . push args + 68/push _test-output-stream/imm32 + 68/push 2/imm32/stderr + # . . call + e8/call write-stream/disp32 + # . . discard args + 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP + # . write(2/stderr, "$\n") + # . . push args + 68/push "$\n"/imm32 + 68/push 2/imm32/stderr + # . . call + e8/call write/disp32 + # . . discard args + 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP + # . rewind-stream(_test-output-stream) + # . . push args + 68/push _test-output-stream/imm32 + # . . call + e8/call rewind-stream/disp32 + # . . discard args + 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP + # }}} # . check-next-stream-line-equal(_test-output-stream, "== code ", msg) # . . push args 68/push "F - test-convert-processes-string-literals/0"/imm32 @@ -769,16 +798,16 @@ test-convert-processes-string-literals: # . check-next-stream-line-equal(_test-output-stream, "2 _string2/y ", msg) # . . push args 68/push "F - test-convert-processes-string-literals/2"/imm32 - 68/push "2 3 "/imm32 + 68/push "2 _string2/y "/imm32 68/push _test-output-stream/imm32 # . . call e8/call check-next-stream-line-equal/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32 # add to ESP - # . check-next-stream-line-equal(_test-output-stream, "== data ", msg) + # . check-next-stream-line-equal(_test-output-stream, "== data", msg) # . . push args 68/push "F - test-convert-processes-string-literals/3"/imm32 - 68/push "== data "/imm32 + 68/push "== data"/imm32 68/push _test-output-stream/imm32 # . . call e8/call check-next-stream-line-equal/disp32 @@ -787,7 +816,7 @@ test-convert-processes-string-literals: # . check-next-stream-line-equal(_test-output-stream, "_string1: ", msg) # . . push args 68/push "F - test-convert-processes-string-literals/4"/imm32 - 68/push "_string1: "/imm32 + 68/push "_string1:"/imm32 68/push _test-output-stream/imm32 # . . call e8/call check-next-stream-line-equal/disp32 @@ -796,7 +825,7 @@ test-convert-processes-string-literals: # . check-next-stream-line-equal(_test-output-stream, "1/imm32 61/a ", msg) # . . push args 68/push "F - test-convert-processes-string-literals/5"/imm32 - 68/push "1/imm32 61/a "/imm32 + 68/push "0x00000001/imm32 61/a "/imm32 68/push _test-output-stream/imm32 # . . call e8/call check-next-stream-line-equal/disp32 @@ -805,7 +834,7 @@ test-convert-processes-string-literals: # . check-next-stream-line-equal(_test-output-stream, "_string2: ", msg) # . . push args 68/push "F - test-convert-processes-string-literals/6"/imm32 - 68/push "_string2: "/imm32 + 68/push "_string2:"/imm32 68/push _test-output-stream/imm32 # . . call e8/call check-next-stream-line-equal/disp32 @@ -814,7 +843,7 @@ test-convert-processes-string-literals: # . check-next-stream-line-equal(_test-output-stream, "2/imm32 62/b 63/c ", msg) # . . push args 68/push "F - test-convert-processes-string-literals/7"/imm32 - 68/push "2/imm32 62/b 63/c "/imm32 + 68/push "0x00000002/imm32 62/b 63/c "/imm32 68/push _test-output-stream/imm32 # . . call e8/call check-next-stream-line-equal/disp32 @@ -828,6 +857,9 @@ test-convert-processes-string-literals: # generate the data segment contents byte by byte for a given slice emit-string-literal-data: # out : (address stream), word : (address slice) # pseudocode + # var len = word->end - word->start - 2 # ignore the double-quotes + # append-int32-hex(out, len) + # write(out, "/imm32") # curr = word->start # ++curr # skip '"' # while true @@ -853,6 +885,30 @@ emit-string-literal-data: # out : (address stream), word : (address slice) 8b/copy 1/mod/*+disp8 5/rm32/EBP . . . 6/r32/ESI 0xc/disp8 . # copy *(EBP+12) to ESI # curr/EDX = word->start 8b/copy 0/mod/indirect 6/rm32/ESI . . . 2/r32/EDX . . # copy *ESI to EDX +$emit-string-literal-data:emit-length: + # TODO: handle metadata here + # print(out, "#{len}/imm32 ") + # . len/ECX = word->end - word->start - 2 + 8b/copy 1/mod/*+disp8 6/rm32/ESI . . . 1/r32/ECX 4/disp8 . # copy *(ESI+4) to ECX + 29/subtract 3/mod/direct 1/rm32/ECX . . . 2/r32/EDX . . # subtract EDX from ECX + 81 5/subop/subtract 3/mod/direct 1/rm32/ECX . . . . . 2/imm32 # subtract from ECX + # . print-int32(out, len) + # . . push args + 51/push-ECX + ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 8/disp8 . # push *(EBP+8) + # . . call + e8/call print-int32/disp32 + # . . discard args + 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP + # . write(out, "/imm32 ") + # . . push args + 68/push "/imm32 "/imm32 + ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 8/disp8 . # push *(EBP+8) + # . . call + e8/call write/disp32 + # . . discard args + 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP +$emit-string-literal-data:loop-init: # ++curr # skip initial '"' 42/increment-EDX # max/ESI = word->end @@ -1012,10 +1068,10 @@ test-emit-string-literal-data: #? # . . discard args #? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP #? # }}} - # . check-stream-equal(_test-output-stream, "61/a 62/b 63/c ", msg) + # . check-stream-equal(_test-output-stream, "3/imm32 61/a 62/b 63/c ", msg) # . . push args 68/push "F - test-emit-string-literal-data"/imm32 - 68/push "61/a 62/b 63/c "/imm32 + 68/push "0x00000003/imm32 61/a 62/b 63/c "/imm32 68/push _test-output-stream/imm32 # . . call e8/call check-stream-equal/disp32 @@ -1076,10 +1132,10 @@ test-emit-string-literal-data-empty: #? # . . discard args #? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP #? # }}} - # . check-stream-equal(_test-output-stream, "", msg) + # . check-stream-equal(_test-output-stream, "0/imm32 ", msg) # . . push args 68/push "F - test-emit-string-literal-data-empty"/imm32 - 68/push ""/imm32 + 68/push "0x00000000/imm32 "/imm32 68/push _test-output-stream/imm32 # . . call e8/call check-stream-equal/disp32 @@ -1141,10 +1197,10 @@ test-emit-string-literal-data-no-metadata-for-non-alphanumerics: #? # . . discard args #? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP #? # }}} - # . check-stream-equal(_test-output-stream, "61/a 20 62/b ", msg) # ideally we'd like to say '20/space' but that requires managing names for codepoints + # . check-stream-equal(_test-output-stream, "3/imm32 61/a 20 62/b ", msg) # ideally we'd like to say '20/space' but that requires managing names for codepoints # . . push args 68/push "F - test-emit-string-literal-data-no-metadata-for-non-alphanumerics"/imm32 - 68/push "61/a 20 62/b "/imm32 + 68/push "0x00000003/imm32 61/a 20 62/b "/imm32 68/push _test-output-stream/imm32 # . . call e8/call check-stream-equal/disp32 @@ -1205,10 +1261,10 @@ test-emit-string-literal-data-handles-escape-sequences: #? # . . discard args #? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP #? # }}} - # . check-stream-equal(_test-output-stream, "61/a 22 62/b ", msg) + # . check-stream-equal(_test-output-stream, "3/imm32 61/a 22 62/b ", msg) # . . push args 68/push "F - test-emit-string-literal-data-handles-escape-sequences"/imm32 - 68/push "61/a 22 62/b "/imm32 + 68/push "3/imm32 61/a 22 62/b "/imm32 68/push _test-output-stream/imm32 # . . call e8/call check-stream-equal/disp32 diff --git a/subx/apps/factorial b/subx/apps/factorial index c18b8bcc1fbbf548d5c3e53ab8eae93f3f1014e6..ab71d3b2a1792ebc934c2d23437c7dcf5326155e 100755 GIT binary patch literal 18591 zcmb_k3wTu3wVue33}Jxq(10im$fF=r5}-&(Q3k@pmd7LrLFLg&a*~rWWa2y|P@;_2 z2a|Kt_S)87tyj6NdaYh>Yx}8KtOdgrskNU<6)07Tk9usVS|1>&&0YW6=j?sX%n+&H z&G%)6S!cc1+H0@9&*=3FmMknNDDc=n=Xm;f@agcEJ^g0bNcua&6Y!j4ea7>o`0Yo3 z`;92~c<|d7&r3Ya-$|e8w-~=eN+Z`O>(`P0a9@8A#@|Nj%wPgCIw z=2&iv6!EYU5eJeCSElVhEls1iR2vIQ4CK^X-MQFX-IMb7q+ix*bSgVyLC{ zSxMMEnRkw*K4Y+PrH>wWt{H(k7)*7rh=YcbD=4rx4*glAsg~Ca$KuD(&dBep7~cm58S$@~aB@ERgf79C9@!mt#joO--Y)^NK>+FQASZ zNJUZVe5-NnF5h4Aa{Ewf8-psINqH%d?{TPUgFwXAuM_(Ni4s1w@WNzA-;@SDsFHqM zBCk_cegGuIh0Uiwwo3rpjucy}#15Wm$L|UycDO`NRANU1Nm5B{EWg;@T(fNLWm3Xt z9BAZUUnr5!D_zT!*x}h?!&bfgrzG!5l~}HIpR`@GSAKPki2gD!1-<-5^ytcg?ISy? z2Kwg|lm28$Whs4JQ|hIbJv210`&g*5bgS6$Gt0bklg`S)UwIj^SDU2+6O~stN@SY~ zmI0*5!8~cGD+k|GVt*qgJkN>YVEtAi9X_A|Fx6F+d6zuFtRQc`kmAOpTNC zN!Xzzyzr478U2rv^iL{buPV~}B&iidyW$>_ zXDP~Gf%2d<=TS8T2!BQ@^=xl{_4yU4WN|(v2jrSyPldQA74mhkQ}n5hm%VR?2Sr{@ zY4RD%e3i?*TZ5eoyH{js5GLKmY38tk)Qs`^;#>>`QHWW0{9Rfr*u**mnN!0tUP{bd zAvKK3(lEfG0UAH!%rMhsV4|UfjQw)9#+#&Ur^cAX>TLecm9QoVLy*GevG=mfpC#Fx z!p2IheycQpJ!c;QVp1B>aljYa<|%D=fk6Z-p|qiYWleSqiQ77h&koB8zxUR03un&J zI#he*BRDPb>%7K!yu>f{Pde?sRv17Ux#7qW@pmwm2h#d?5gB;r97siuhw=*M#7sh> z`l!z*Ab^o`*)*;nd={L2ImL|p6qFatwx3+i#o(AS|A*IsQgWC2JQiH6{a;Y@uSDainhf<}lpa(QinH!`O+S`D*N+S4_1=J#iviFNA)E(`n z&i5kAy_L)TTQ96NCvno@W#=MV+>di{<0B5r9Si*1s|JO>@Y8M2q?C9WC?KS%GA%re8mXsgq7?J)YNU~A| zA@QLMABKeJ=_G+@6Hf^-yrUp&HqnkNW)E>(_l3IO;91AI>_X|)V)3jbKzBE0S_Nnr zOhbW%&5`UTY_kWItHHF|ViJdN&dSA#=`Y=O>$92az_i|CDpi_lz(m4H)5AGTpx4(} zOyWL`HEmT)TXUG;j`Zmv)hq8+Op9`un!r?VX;K#?`culMAvsJO2!s&Po3Au=E2dZe znjHw%glK?ipkf;ORkA>Y{Qhhvoc+s>*hNu(g37XB4i`gV=t=O&3kf~beM(U|A{JtWa4l+?Ln@8EiEJO4=4Bt*<20;ih?7Md>?=>gZd_0W@awfFip` z>D;Nv=D>sN3xjaCD_9FSryryGGO915s9Nc2)4#{`j;D)Dk9nAEq!XggoWoN!HUfGq zp8eW>Hby?_+XfVWq7nDQ9$PLxufp zwS4BVVT`oFxu^A)SYCT#PrF4~#(UZ#mdED53M2m^EnW4F3_YS%{rClN$9pM84WH?e zdsq4t;XPX?kgW$y5iwl(b2Q(T)~4Tvj_wzov%oib39#-5Zr^T&?z_ssV$!9L1>n&A z@89wnRAw2pgT#x8Fpoi}Y0a@gBjiw@&!EFxlQ75`$1aK0*-Vbx7G)-X?oo%WnXtH4 znmsVfY@U1<_&Zy@bZP4!h`ZQYzp>s+7qMj(2et+>>%Fz+&!spXyyi+1%8yX%F5F%< zx@7*s?%xrux*``*I#-f9edyr@!lBk+8QYvaU{y+`dK5(8mOgw}dr3PFWseTO4(2iIj?nGXH-G0dTo8vDNL#}%FWDU9ZaZBLE zR%X$BPojEK!!Y%JSKVFVogq*$2aVsnj3+n_5R5>HpGynC9*b+Rbrxiv>a)^cS?%3g z#ErW9oXlW#rHDSFwcAH8OKYY#k5fe2c) z8CL@LfR&Kck%`ua zf^r%FUkx3XQ<$}$k8)Juqf_;Mi4|;*tIxBf>Jyw+B*dZGu_iACWt&tjI+48rV(2jn zDnec!a*~d*2J@u+>Hx;5-?KNoLa&1~F}gf?6plljy=*RmCH%^mm~K~0KLQgyqZO0M zX2N)ko2>JUYrUEGCOuEDlGC4nHq}q$cw+aciazwRr;Ez~FMHmnmpy$tit(~%{yg`~ z9_L8B9h2ZqJPGQLlLgggC!56a+O7OJ@oKgo8F1b#I1e%B3dMO;IrBt*PD|%!%sE1F zdgsY7+>pZwb+)zRiLlx{D%Y?+MR6|9;eUTx%(+2vZc?0o zcqKbRPMvo!XSw3M3!I`x?#SVE>O`8W&66}Chz_UkQ#!wq&B^aj`OedOF>T#`qqO3; z*H18J{_|fSKz%!l<85|8)GHUqJIaB>f68{<$$8;?Bx=1%@fbo_uHW4&=Mv@|uQ+QI zr`9Xyjm+7t!fhzdi+kmKj5!^zx1R(jk`Olkexx@)Ut`WqN~ftfAIs*%%V#uozcG;3 zv>LMh?ijMZ&XXBdG!I!vUWImE;25$Bc*qK64OvJVcie|0wX7V3NiT@+V$r*PpSf0!w4zl_%J|Y>g3$1a znu0ym;>!?W^OK|Su7vQb?f#_CghJlnhyD>yQFmDzJZFYM=CvBJ18?E{g4X3@jd_Lg zua+c-%}zzR4ywd*?9aL!EjwIoy^1QK31yXeIawrZF_zIQse%4X5#tB*brkg4c)EF9 zCw5qwmh*VUa!iTP{#uc~MTT|}#{p8R^#CY1;McP0JS*G)QVeBALE6N_uzBTSyDs$| zc#0?*A+P;-wtQ^wK`hf?@3T#DYV|0sPmtW6YrHhK9Y16%Q{zc3ef`c@Sz@#gtKpod zITReiqMB-&DM^d93sOw1se@v&^B{>8-wolHDV#_KnYU`$ePR|p2R`XX;T;OX7}3xL@Qu2OobrOLeQXU^Rt6l?(SSk6rX4F zo7@Fh;My#K|D7$6TY>1=#whyEU&Z0}0X(w#E1pmF33b0qUlG8Pa2%+g=Mv@A{R_l% zJ_m4V`QT;%fRT5yXN)vJiQrk^P4Svzq$$>z)u!Y=DCIt)R*8~ZrQ|+rJ1FJuf7y;1 zPDZ`?m(1_qdt9;X-^{=JgpUr5;@qVexaZoxu3ZZC0f&WfAEKOZP5Y$|SV zza;$=a_1_! zId~U^SRUkBkv)et8GNIT7bksh@R|009m6XQr25S5{=m8;-?^Twa8@(K)1vzg=a(B! zlWpguJ=Nwre~_;4{BC~M8x`wqPS#&4R`M>tX-TJPd-Kb8nD#8>qie&o6-xfjkMpxS zOzQzF?nl8o+`(GDC~rV6S6*F06kHHsedT}*h*j&gkMl(viN+lrZ+h+LoIG^<$y4d4 z$_QD*sO#TNw#Vml3WQ1#%TT!sXrxDGvc~ukgwt#cBu5il5jm{__<7FTi?G z^6!-!r^P=>@vFPXm$@~v{y%}$zu4A)V>Z87XKX(W5k11n+Z6v0uvSX`s%-wB@_J(a z6OwS*SEfRPjx^9F#o0rpUlm}6+GF@Fd!=2Zf(0#uSO=KTQg0hG`!hS>`66B-sxFCERz zJphew5V#HCX@C;|6X=X?t^&9j;8B3D)0KhwEr16BjsWzh3p}$D;68w707~dW(VPab z1)z{FZOxkiE}=^VvkTw`da-4`4)6huwB}_rSDTm8?U^}_ZoADp0D|;B(_9Pi7l4uU zg4PTJ+yw9|fOi4Ly-(mufFl4U9}rjoum#{}0B-;!KP0f`BLW3fdgd(v{i%q}YXBYr zDF2wijQ~Zb2wVm55P*J~z+C{R0H%IIKm(ZYDS-&Uod5>`hI~d~AAv4Z6qcFC6RNA{ zzW``)W9gR)3jgVY>j#T4`v)`2nSS!ogVu>hC$af)qa}V&;jj;sp?UZstN4t+_;E^@ zJ|j4NMkI30^cmA1I;agdR?pE5NvKq zCW6{EsYn!x=|8i;e}>}mEDQt#NiC5K*2gxsM&eqqB^8YZH)!z|EgDQDPcG;_=94#E`Vi`e)c%Vl8<@OwA`EpK{pkP~K4g1vp8U=L@hQ&Y?Q`FK}{W zmB-SA9*ZZnxUdyzMmn&~1N{aGFJJSIxxU$weT8yt<2slnSl5L2I;xxJs@? zYfB;x6p0`LBa9 zZpO7_D&CR^qC2)VC(n{hRB^y5lXBZ&t)1BcAvLfdw0hVXXoLi{%3SM+Wi=z{3^jRAxEI?LK!>J(h!U_1{<5BnxG$>LtnRaYo2rS1^P`^K51 z*k+Zr1zS-kZLV5%NU;f9w5CY1`C84jGxkD9gPkSW6&V`I5}F+|E3CnW=BDPPYhk&` zIHQ6p;Eal!N-A_^(M_{Oi^oRyBEmAc7ZN)Tu116!sMBaW4wemeN(Y{{qrAupSKgSi zj&}86MKBo)M)HZti)_p>B*J1EhdT{%)-tKWQY?$OR(LB-#z|fhvX==ehHWk_f|lr~ zPs3TDtgWnU)~t$(NJP-OI)Q^$3U)K~ArZ6>x<)i>UAvpAMQH8nXo0vxk?S>!hgTHY zsKqyG4b9Z}ML(df$8Dh@fT?Eg7ZH$Zu|=SRBpe+L{?874-6=E@jmGMsJ&~%f*Amo? zto_x{jG|wkjBXxFYI)D)LDJsGX9w_67)OVgV%+{j>Wb?dT+Jny z4;2up1FUawO=r2JL7-?bYi^;VAS+L`B%7m{&IG@!K_sHhbeIrlfn+?Tx#x7p!^TK7 zp;=4CwQ4O1IP_SL^U2^dkyD0iH9KTbn~DW-z_Wz8)^9c)pCUg`D?3M#^SIitQ1Y|c6@@Qg=(=`LriD`uQ=14uY6`0^!U%4#85IU&P zUX7fF>Rj7rE`yw1FafX@aWJi`cO9E^8L5#p(`AQHB?8?LAdS8F!zTi^s($QQPzI;D zDnWExVTiqGtOSEjJfNLSSmYkFEIQW?mBoNFV;~TzbCoEcQIfF@8g&=Wj7x&^DNW4y ze>h0*)iW$FTez!$93+kL*v23mWa+u+46>Yrq|z0}yz-RxK;WODj?}p}Yn-*X5EH?T zkz~DYl~<&0jMLCOR6)8X;pPyj3k1$U+Y(DksmK&%!4)WnSSKlqMma_5T(jhv$Z1o^ zn+FHI?HkS4A{|1!tH1X~?(}xjS$He;SZ=!)tBSeHZQC}7|E^mBhk^O|C=f`Sb5Lr~ z>YF!4qV84Ws(?Jy=wTJE0?0!Y!~_h=GS`J#K1$h(cs%C|uJSThCFJ9>=VPQQSn(Bt iauN1M9?a5)3hSYqW=fv?jMN& literal 18362 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 diff --git a/subx/apps/handle b/subx/apps/handle index 4fe1e044b305eae9f7a45a2d5666323ff62ef346..4d4bea1f274cb686178a10b6b8c8792aeae841a6 100755 GIT binary patch literal 19418 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 EKPS0UI{*Lx literal 19189 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 Wu~n%y^LXv(UGj-FKNfmqD*JyoH?uPU diff --git a/subx/apps/hex b/subx/apps/hex index 59170942272ddb904e86712a087fb78d5551fdcc..f69e7bb360ff87d6d5ba779f797d2363588f2c77 100755 GIT binary patch literal 22684 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 Ki22^S3I1Q2jj|&E literal 22455 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 literal 37047 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 PgE`%JDo#o>`tN@MN3bED