e7e49be

Pinchord · pinchord.git · Tickets · Changelog

Branches > main > e7e49be > files / LICENSE

Remove Javelin support

Grahp, 2026-10-24

Commit: e7e49bef9d79852c7b68f2aa7856ad06edd6ba28
Parent: 1bb903b

12 changed files:

.gitignore modified (view file)

@@ -1,6 +1,5 @@ .clj-kondo/ .lsp/ .nrepl-port-pythontest.py dist/ *.egg-info/

README.md modified (view file)

@@ -4,7 +4,7 @@  It is in pre-release, so keep that in mind. -This repo has Javelin and Plover systems.+It runs on Plover, the open steno engine.  Feel free to port Pinchord to other platforms as well :p @@ -13,11 +13,3 @@ Everything is versioned with a suffix number, see https://grahp.dev/pinchord-changelog  Thanks to Kate (https://codeberg.org/StrawberryTurtle, https://github.com/StrawberryTurtle), Harri (https://github.com/StenoHarri), Zak (https://zakventer.com), @novachromatic, Tink, and a bunch of others (hi :p) for help and influence :D--# Dictionary--Chords can be found in "chords.edn" or "pinchord-chords.vx.y.json" if that is a more useful format to you.--To generate the Javelin files from `chords.edn`, run `./generate-dict.clj` (requires babashka - https://babashka.org).--Or you can just edit the generated dictionary directly of course.

bb.edn modified (view file)

@@ -2,12 +2,6 @@  {:requires ([babashka.fs :as fs]              [clojure.edn :as edn]) -  generate {:doc "Generate the Javelin and Plover files from chords.edn"-            :task (let [mods (str "pinchord-mods-" (:version (edn/read-string (slurp "chords.edn"))) ".json")]-                    (shell "bb generate-dictionary.clj")-                    (shell "bb generate-mods.clj")-                    (fs/move mods (fs/path "plover_pinchord/dictionaries" mods) {:replace-existing true}))}-   pypi {:doc "Clean build the Plover plugin, and upload it to PyPI"         :task (do (fs/delete-tree "dist")                   (shell "nix shell nixpkgs#python3Packages.build nixpkgs#python3Packages.twine"

chords.edn deleted (view file)

@@ -1,347 +0,0 @@-{:version "v30.2"- :banks {:prefixes "#+"-         :initials "TSPWHR&"-         :vowels "AOIU^"-         :finals "LRPKFST*"-         :suffixes "es"}- :keys "#+TSPWHR&AOIU^LRPKFST*es"- :initials {"T" "t"-            "TSP&" "sk"-            "TP" "f"-            "TP&" "ph"-            "TSWR" "kr"-            "THR" "thr"-            "TPR" "fr"-            "PWR" "br"-            "SH&" "sch"-            "TSPR" "scr"-            "TSPR&" "skr"-            "TSWH" "kn"-            "TWH" "thw"-            "PWHR" "bl"-            "SPWHR" "cl"-            "SPWHR&" "chl"-            "TS" "st"-            "TSH" "sth"-            "TS&" "ts"-            "SPR" "spr"-            "SHR&" "shr"-            "HR" "l"-            "HR&" "ll"-            "WH" "wh"-            "WH&" "hw" ; The two hwat?-            "TW" "tw"-            "S" "s"-            "SR" "v"-            "SR&" "vr"-            "TPWR" "dr"-            "TPWH" "x"-            "H" "h"-            "PR" "pr"-            "TSPWR" "gr"-            "SHR" "sl"-            "SW" "sw"-            "SW&" "sv"-            "SWR" "y"-            "TSPWH" "gh"-            "R" "r"-            "R&" "rh"-            "SWHR" "squ"-            "TSR" "str"-            "TSR&" "tz"-            "TWHR" "j"-            "SH" "sh"-            "PH" "m"-            "TSP" "sc"-            "TR" "tr"-            "P" "p"-            "WHR" "qu"-            "WHR&" "q"-            "TPHR" "fl"-            "TPHR&" "phl"-            "TPR&" "phr"-            "TH" "th"-            "WR" "wr"-            "SPWR" "cr"-            "SPWR&" "chr"-            "SPH" "sm"-            "SPH&" "schm"-            "TSW" "k"-            "SPHR" "spl"-            "TSPWHR" "gl"-            "TSWHR" "kl"-            "SPW" "c"-            "SWH" "z"-            "PHR" "pl"-            "SPWH" "ch"-            "TSPW" "g"-            "W" "w"-            "SP" "sp"-            "SP&" "sph"-            "TSPH" "sn"-            "TSPHR" "scl"-            "TPH" "n"-            "TPH&" "mn"-            "TPW" "d"-            "PW" "b"-            "" "{^}"}-- :vowels {"OU" "ou"-          "OU^" "uo"-          "AU" "au"-          "AOI" "ei"-          "AO" "oa"-          "AO^" "ao"-          "AU^" "ua"-          "AI^" "ia"-          "IU^" "ee"-          "IU" "e"-          "AIU" "ea"

Show all 348 lines

generate-dictionary.clj deleted (view file)

@@ -1,88 +0,0 @@-#!/usr/bin/env bb-(def sections [:prefixes :initials :vowels :finals :suffixes])--(def priority-  "Priorities used for javelin orthospelling."-  (zipmap sections-          (rest (range))))--(comment-  (def yaml-dict (yaml/parse-string (slurp "pinchord-javelin-dictionary.yaml")))--  (->> (:letters yaml-dict)-       (filter #(= (:order %) 2))-       (map (fn [m] [(:stroke m) (:data m)]))-       (into {})))--(defn finalize [m]-  (update-keys m (partial str "-")))--(defn mask [s1 s2]-  (apply str (remove (set s1) s2)))--  (defn abbreviate-    "Javelin entries can only be 6 characters long!"-    [s]-    (if (> (count s) 6)-      (let [new-s (-> s-                      (str/replace #"TSPW" "G")-                      (str/replace #"PKS" "C")-                      (str/replace #"PKFS" "G")-                      (str/replace #"KFS" "SH")-                      (str/replace #"LR" "N"))]-        (if (> (count new-s) 6)-          (throw (ex-info "Too long!" {:s s :new-s new-s}))-          new-s))-      s))--  (defn all-chords [s]-    (if (empty? s)-      #{""}-      (let [rest-combos (all-chords (rest s))]-        (set (concat-               rest-combos-               (map #(str (first s) %) rest-combos))))))--  (defn abbreviate-long-chords [s]-    (update-vals s abbreviate))--  (defn with-gaps-filled [bank chords]-    (let [s (remove (bank chords) (all-chords (bank (:banks chords))))]-      (merge (bank chords) (abbreviate-long-chords (zipmap s s)))))--(defn ^:private new-value [chords]-  (assoc chords-         :initials (with-gaps-filled :initials chords)-         :vowels   (with-gaps-filled :vowels chords)-         :finals   (with-gaps-filled :finals chords)))--; TODO make this make all chords that aren't in chords.edn map to themself :D-(let [chords (-> (edn/read-string (slurp "chords.edn"))-                 new-value-                 (update :finals finalize)-                 (update :suffixes finalize))-      banks (:banks chords)-      dict {:name (str "Pinchord Base " (:version chords))-            :maximumOutlineLength 1-            :starters [{:stroke "#+" :definition "{^}{-|}" :mask "#+"}-                       {:stroke "" :definition "{}" :mask ""}]-            :letters (->> (reduce (fn [acc [bank entries]]-                                    ; TODO if the bank has no keys, map it to itself?-                                    (if-let [bank-keys (banks bank)]-                                      (into acc (mapv (fn [[stroke translation]]-                                                        {:stroke stroke :data translation :order (priority bank)-                                                         :avoidMask (str (when (= bank :finals)-                                                                           "-")-                                                                         (mask stroke bank-keys))})-                                                      entries))-                                      (into acc (mapv (fn [[stroke translation]]-                                                        {:stroke stroke :data translation :order (priority bank)})-                                                      entries))))-                                  #{} (select-keys chords sections))-                          (sort-by (comp - count :stroke))-                          ; Use this if you want finals to suppress space by default :)-                          #_(cons {:stroke "-" :data "{^}" :order (priority :finals)}))}-      dict-path (str "pinchord-javelin-dictionary-" (:version chords) ".yaml")-      json-chords-path (str "pinchord-chords-" (:version chords) ".json")]-  (spit dict-path (yaml/generate-string dict))-  (spit json-chords-path (json/generate-string chords)))

generate-mods.clj modified (view file)

@@ -378,6 +378,4 @@         (str "#+" fingerspelling-starter "-" chord) (str "{^}{-|}" letter)         ])])) -(def version (:version (edn/read-string (slurp "chords.edn"))))--(spit (str "pinchord-mods-" version ".json") (json/generate-string (merge symbols-dict fingerspelling-dict numbers-dict movement-dict)))+(spit "pinchord-mods.json" (json/generate-string (merge symbols-dict fingerspelling-dict numbers-dict movement-dict)))

pinchord-chords-v30.2.json deleted (view file)

@@ -1 +0,0 @@-{"version":"v30.2","banks":{"prefixes":"#+","initials":"TSPWHR&","vowels":"AOIU^","finals":"LRPKFST*","suffixes":"es"},"keys":"#+TSPWHR&AOIU^LRPKFST*es","initials":{"":"{^}","WH&":"hw","T":"t","TWH&":"TWH&","TPWHR&":"TPWHR&","TSP&":"sk","TS&":"ts","TSPHR":"scl","TP":"f","TPWR&":"TPWR&","TSWR":"kr","THR":"thr","TPR":"fr","TSWH&":"TSWH&","HR&":"ll","PWR":"br","TPWHR":"TPWHR","TSWHR&":"TSWHR&","TSPHR&":"TSPHR&","TSPR":"scr","TSWH":"kn","TH&":"TH&","SWHR&":"SWHR&","TWH":"thw","SHR&":"shr","TP&":"ph","PWHR":"bl","TPH&":"mn","W&":"W&","PHR&":"PHR&","TPR&":"phr","SPWHR&":"chl","SPWHR":"cl","PR&":"PR&","TSPH&":"TSPH&","TS":"st","SW&":"sv","SPW&":"SPW&","SPR":"spr","SWHR":"squ","PH&":"PH&","HR":"l","H&":"H&","WH":"wh","TW":"tw","S":"s","SR":"v","TPWR":"dr","TSH":"sth","H":"h","PR":"pr","TSPWR":"gr","T&":"T&","SHR":"sl","TSR&":"tz","SW":"sw","TSPWHR&":"GHR&","SWH&":"SWH&","SWR&":"SWR&","SWH":"z","TSPWH":"gh","TSPR&":"skr","R":"r","TPWH&":"TPWH&","TPWH":"x","TPW&":"TPW&","TWR":"TWR","TSR":"str","TWHR":"j","TWHR&":"TWHR&","SPH&":"schm","TSPW&":"TSPW&","PW&":"PW&","SH":"sh","SPWR&":"chr","TR&":"TR&","PH":"m","TSP":"sc","TR":"tr","TSW&":"TSW&","P&":"P&","&":"&","P":"p","PWH":"PWH","SH&":"sch","TPHR":"fl","SPWH&":"SPWH&","TPHR&":"phl","TH":"th","WR":"wr","SP&":"sph","SPWR":"cr","TSHR&":"TSHR&","TW&":"TW&","WR&":"WR&","SPH":"sm","TSW":"k","SR&":"vr","PWH&":"PWH&","TSH&":"TSH&","SPHR":"spl","TSPWHR":"gl","SWR":"y","SPR&":"SPR&","PWHR&":"PWHR&","TSPWH&":"TSPWH&","TSWHR":"kl","SPW":"c","TSHR":"TSHR","PWR&":"PWR&","WHR&":"q","TSWR&":"TSWR&","PHR":"pl","THR&":"THR&","SPWH":"ch","TSPW":"g","S&":"S&","TSPWR&":"TSPWR&","W":"w","R&":"rh","SP":"sp","TSPH":"sn","TPH":"n","TWR&":"TWR&","SPHR&":"SPHR&","TPW":"d","WHR":"qu","PW":"b"},"vowels":{"":"","OU":"ou","AU":"au","AOI":"ei","AOIU^":"AOIU^","OU^":"uo","AU^":"ua","IU":"e","AOU^":"iu","IU^":"ee","AIU":"ea","AO^":"ao","O^":"oo","A^":"aa","U^":"ue","I^":"eu","AOU":"ui","OI^":"io","U":"u","AI^":"ia","O":"o","AO":"oa","A":"a","AIU^":"ae","I":"i","AOIU":"AOIU","OIU^":"oe","OIU":"eo","AOI^":"ie","OI":"oi","^":"y","AI":"ai"},"finals":{"-LPFT*":"lly","-LRF*":"fn","-PFS":"z","-RPFT":"ry","-RPKFST":"rcy","-LRT*":"n't","-PKF*":"dd","-PKST":"ct","-LRPKT":"mph","-LT*":"ttl","-LFT":"lft","-LK":"lk","-KFS*":"gh","-LKS*":"lsk","-LRPKFST*":"ngth","-LRPKF":"nd","-LPKFS*":"gl","-LKST":"lxt","-RPKST*":"rkt","-RT*":"rnt","-FT":"ft","-PF":"n","-LRPKFS*":"gn","-LPST":"LPST","-PKF":"d","-LFT*":"ltion","-KFS":"sh","-K":"k","-LRKST":"nxt","-PKT":"ph","-RPKFT*":"rcky","-RKS*":"rsk","-P*":"pp","-RPKT":"rph","-LPS":"lm","-LPFS*":"LPFS*","-R*":"rr","-RFT*":"stion","-LF*":"fl","-RP":"rp","-LRPKFT*":"ncky","-LPF":"ln","-LRPKFS":"ng","-RPKS":"rc","-LRPF":"nn","-RPT":"rpt","-LPFT":"ly","-LPST*":"LPST*","-LRPKT*":"'d","-RPS":"rm","-*":"*","-RPK":"rb","-LRKST*":"nj","-LPKT*":"'ll","-LRKS":"nx","-RF":"rf","-PF*":"w","-LRPKS":"nc","-LPKST*":"lkt","-LRPFT*":"nny","-F":"f","-LST":"lst","-PKFST":"cy","-LRFST*":"ndth","-RPKFS*":"dg","-RS*":"RS*","-RK*":"rck","-PKFS":"g","-RPKS*":"rsc","-":"","-LRT":"nt","-RFST":"rth","-KFST":"ty","-LRK":"nk","-LKS":"lx","-LRKFT*":"nction","-RKFT*":"stian","-LRPKST":"nct","-LPKT":"lph","-PKFT*":"cky","-LRK*":"nck","-LKT*":"LKT*","-LK*":"lck","-RPKFS":"rg","-RKF":"rch","-LPKS*":"lsc","-LPT*":"LPT*","-RKT*":"RKT*","-LKF":"lch","-PFT":"y","-RKFST*":"RKFST*","-KS":"x","-LRPT":"mpt","-LRFS*":"LRFS*","-LRKF*":"nsion","-RPFS":"rz","-LPKFT*":"lcky","-LRPKST*":"nkt","-LKFST*":"y'd","-LPKFST*":"LGT*","-LPK*":"bl","-S":"s","-RPKT*":"'re","-P":"p","-LRPK":"mb","-LRPFS*":"LRPFS*","-RKFS*":"RKFS*","-LKST*":"lj","-LPS*":"'m","-PFST":"PFST","-LRPKFT":"nky","-RK":"rk","-LRKFST*":"NSHT*","-LPFST":"LPFST","-LRFT*":"ntion","-LRST*":"LRST*","-RP*":"RP*","-RF*":"RF*","-LKFT*":"sion","-PST*":"PST*","-LRST":"nst","-PFS*":"zz","-LKFS":"lsh","-RPF":"rn","-PS*":"sp","-RKST":"rxt","-LRKFT":"ntch","-LPKF*":"ndl","-LF":"lf","-K*":"ck","-ST*":"ts","-RPFT*":"rry","-LRPFT":"ny","-PKT*":"hp","-LRKT*":"LRKT*","-LPKF":"ld","-RKF*":"RKF*","-RKFS":"rsh","-RKST*":"rj","-F*":"ff","-LKF*":"LKF*","-KT":"h","-PK*":"PK*","-FST":"th","-LRPF*":"wn","-LRPFS":"nz","-LRF":"nf","-RFS*":"RFS*","-L*":"ll","-RST":"rst","-PT":"pt","-LPKFST":"lcy","-LRPKS*":"nsc","-S*":"ss","-T":"t","-PS":"m","-PFST*":"PFST*","-KFT":"tch","-LS":"ls","-LR*":"rly","-LPKS":"lc","-LRKFST":"nty","-LRKS*":"nsk","-LRS*":"LRS*","-RPKF":"rd","-PKFT":"ky","-LPF*":"wl","-FST*":"fth","-LST*":"t's","-PKST*":"kt","-LRKT":"hn","-LRFT":"nft","-LRPT*":"LRPT*","-RKT":"hr","-LRFST":"nth","-RPF*":"rw","-LPKFS":"lg","-RPST":"RPST","-LKT":"hl","-LRFS":"nv","-RPFST*":"RPFST*","-RPKST":"rct","-RPKFT":"rky","-LRPFST*":"NPFST*","-PST":"PST","-RPFS*":"RPFS*","-LFST*":"lfth","-LP":"lp","-LRKF":"nch","-LRP":"mp","-RPFST":"RPFST","-LFST":"lth","-LRPKFST":"ncy","-LRPFST":"LRPFST","-T*":"tt","-RPT*":"RPT*","-LKFT":"ltch","-LT":"lt","-LRS":"ns","-RFS":"rv","-ST":"st","-LRP*":"mpl","-LRPST":"LRPST","-KFST*":"ght","-LP*":"pl","-R":"r","-RPKF*":"rld","-LRPST*":"LRPST*","-LPKFT":"lky","-RKS":"rx","-PKFST*":"sy","-RPST*":"RPST*","-FT*":"tion","-RKFT":"rtch","-PT*":"PT*","-LRPS":"mn","-LRPK*":"bbl","-LRKFS":"nsh","-RPKFST*":"RGT*","-LFS*":"'ve","-LKFS*":"LKFS*","-LPT":"lpt","-FS*":"vv","-RFST*":"rmth","-LRKFS*":"LRKFS*","-LPFST*":"LPFST*","-KST":"xt","-KT*":"hh","-FS":"v","-LFS":"lv","-RPK*":"RPK*","-RKFST":"rty","-LPKST":"lct","-PFT*":"ption","-PKS*":"sc","-RPS*":"RPS*","-KF":"ch","-KFT*":"ction","-KST*":"j","-LPK":"lb","-LS*":"'s","-LRPS*":"gm","-LRPKF*":"ddl","-PKS":"c","-RS":"rs","-PK":"b","-LPFS":"lz","-RFT":"rft","-LR":"rl","-KS*":"sk","-L":"l","-RT":"rt","-PKFS*":"gg","-RST*":"RST*","-KF*":"q","-LKFST":"lty"},"prefixes":{"#":"{-|}","+":"{^}"},"suffixes":{"-e":"{^}e","-s":"{^}s","-es":"{^}es"}}\ No newline at end of file

pinchord-javelin-dictionary-v30.2.yaml deleted (view file)

@@ -1,427 +0,0 @@-name: Pinchord Base v30.2-maximumOutlineLength: 1-starters:-- {stroke: '#+', definition: '{^}{-|}', mask: '#+'}-- {stroke: '', definition: '{}', mask: ''}-letters:-- {stroke: -LRPKFST*, data: ngth, order: 4, avoidMask: '-'}-- {stroke: -LRPKFST, data: ncy, order: 4, avoidMask: -*}-- {stroke: -LRPKFT*, data: ncky, order: 4, avoidMask: -S}-- {stroke: -LRKFST*, data: NSHT*, order: 4, avoidMask: -P}-- {stroke: -RPKFST*, data: RGT*, order: 4, avoidMask: -L}-- {stroke: -LRPFST*, data: NPFST*, order: 4, avoidMask: -K}-- {stroke: -LRPKFS*, data: gn, order: 4, avoidMask: -T}-- {stroke: -LPKFST*, data: LGT*, order: 4, avoidMask: -R}-- {stroke: -LRPKST*, data: nkt, order: 4, avoidMask: -F}-- {stroke: -RPKFST, data: rcy, order: 4, avoidMask: -L*}-- {stroke: -LPKFS*, data: gl, order: 4, avoidMask: -RT}-- {stroke: -LRPFT*, data: nny, order: 4, avoidMask: -KS}-- {stroke: -RPKFS*, data: dg, order: 4, avoidMask: -LT}-- {stroke: -LRPFS*, data: LRPFS*, order: 4, avoidMask: -KT}-- {stroke: -RPKST*, data: rkt, order: 4, avoidMask: -LF}-- {stroke: -LPKFST, data: lcy, order: 4, avoidMask: -R*}-- {stroke: -LRPKF*, data: ddl, order: 4, avoidMask: -ST}-- {stroke: -LRKFST, data: nty, order: 4, avoidMask: -P*}-- {stroke: -LKFST*, data: y'd, order: 4, avoidMask: -RP}-- {stroke: -LRPKT*, data: '''d', order: 4, avoidMask: -FS}-- {stroke: -RPFST*, data: RPFST*, order: 4, avoidMask: -LK}-- {stroke: -LRPKFT, data: nky, order: 4, avoidMask: -S*}-- {stroke: -LRKFT*, data: nction, order: 4, avoidMask: -PS}-- {stroke: -LRFST*, data: ndth, order: 4, avoidMask: -PK}-- {stroke: -LRPST*, data: LRPST*, order: 4, avoidMask: -KF}-- {stroke: TSPWHR&, data: GHR&, order: 2, avoidMask: ''}-- {stroke: -LRPFST, data: LRPFST, order: 4, avoidMask: -K*}-- {stroke: -LRPKFS, data: ng, order: 4, avoidMask: -T*}-- {stroke: -RKFST*, data: RKFST*, order: 4, avoidMask: -LP}-- {stroke: -LRKFS*, data: LRKFS*, order: 4, avoidMask: -PT}-- {stroke: -LRKST*, data: nj, order: 4, avoidMask: -PF}-- {stroke: -LPKST*, data: lkt, order: 4, avoidMask: -RF}-- {stroke: -LPFST*, data: LPFST*, order: 4, avoidMask: -RK}-- {stroke: -LRPKST, data: nct, order: 4, avoidMask: -F*}-- {stroke: -LPKFT*, data: lcky, order: 4, avoidMask: -RS}-- {stroke: -PKFST*, data: sy, order: 4, avoidMask: -LR}-- {stroke: -RPKFT*, data: rcky, order: 4, avoidMask: -LS}-- {stroke: -LRPKS*, data: nsc, order: 4, avoidMask: -FT}-- {stroke: -LPST*, data: LPST*, order: 4, avoidMask: -RKF}-- {stroke: TSPHR&, data: TSPHR&, order: 2, avoidMask: W}-- {stroke: -LRPK*, data: bbl, order: 4, avoidMask: -FST}-- {stroke: TPWHR&, data: TPWHR&, order: 2, avoidMask: S}-- {stroke: -LRKST, data: nxt, order: 4, avoidMask: -PF*}-- {stroke: -LRKT*, data: LRKT*, order: 4, avoidMask: -PFS}-- {stroke: -RFST*, data: rmth, order: 4, avoidMask: -LPK}-- {stroke: -RPKS*, data: rsc, order: 4, avoidMask: -LFT}-- {stroke: -LFST*, data: lfth, order: 4, avoidMask: -RPK}-- {stroke: -LPKF*, data: ndl, order: 4, avoidMask: -RST}-- {stroke: -LPFT*, data: lly, order: 4, avoidMask: -RKS}-- {stroke: -RPKF*, data: rld, order: 4, avoidMask: -LST}-- {stroke: -RPFST, data: RPFST, order: 4, avoidMask: -LK*}-- {stroke: -RKST*, data: rj, order: 4, avoidMask: -LPF}-- {stroke: -PFST*, data: PFST*, order: 4, avoidMask: -LRK}-- {stroke: -RPKFT, data: rky, order: 4, avoidMask: -LS*}-- {stroke: -LRPT*, data: LRPT*, order: 4, avoidMask: -KFS}-- {stroke: -LRKF*, data: nsion, order: 4, avoidMask: -PST}-- {stroke: -LRPS*, data: gm, order: 4, avoidMask: -KFT}-- {stroke: -LRPKS, data: nc, order: 4, avoidMask: -FT*}-- {stroke: -PKFS*, data: gg, order: 4, avoidMask: -LRT}-- {stroke: -LKFS*, data: LKFS*, order: 4, avoidMask: -RPT}-- {stroke: -LRPFS, data: nz, order: 4, avoidMask: -KT*}-- {stroke: -LPKST, data: lct, order: 4, avoidMask: -RF*}-- {stroke: -RPKFS, data: rg, order: 4, avoidMask: -LT*}-- {stroke: -RPFT*, data: rry, order: 4, avoidMask: -LKS}-- {stroke: -LRPFT, data: ny, order: 4, avoidMask: -KS*}-- {stroke: -LPFS*, data: LPFS*, order: 4, avoidMask: -RKT}-- {stroke: -PKFT*, data: cky, order: 4, avoidMask: -LRS}-- {stroke: -LPFST, data: LPFST, order: 4, avoidMask: -RK*}-- {stroke: TSWHR&, data: TSWHR&, order: 2, avoidMask: P}-- {stroke: -PKFST, data: cy, order: 4, avoidMask: -LR*}-- {stroke: TSPWR&, data: TSPWR&, order: 2, avoidMask: H}-- {stroke: -RKFST, data: rty, order: 4, avoidMask: -LP*}-- {stroke: -LRST*, data: LRST*, order: 4, avoidMask: -PKF}-- {stroke: TSPWH&, data: TSPWH&, order: 2, avoidMask: R}-- {stroke: -LPKT*, data: '''ll', order: 4, avoidMask: -RFS}-- {stroke: -KFST*, data: ght, order: 4, avoidMask: -LRP}-- {stroke: -LRKFS, data: nsh, order: 4, avoidMask: -PT*}-- {stroke: -LRPKT, data: mph, order: 4, avoidMask: -FS*}-- {stroke: -RPKT*, data: '''re', order: 4, avoidMask: -LFS}-- {stroke: -LPKS*, data: lsc, order: 4, avoidMask: -RFT}-- {stroke: -RPFS*, data: RPFS*, order: 4, avoidMask: -LKT}-- {stroke: -LRFST, data: nth, order: 4, avoidMask: -PK*}-- {stroke: -LPKFT, data: lky, order: 4, avoidMask: -RS*}-- {stroke: -LRKFT, data: ntch, order: 4, avoidMask: -PS*}-- {stroke: -RPKST, data: rct, order: 4, avoidMask: -LF*}-- {stroke: -LKFST, data: lty, order: 4, avoidMask: -RP*}-- {stroke: -LPKFS, data: lg, order: 4, avoidMask: -RT*}-- {stroke: -LRFS*, data: LRFS*, order: 4, avoidMask: -PKT}-- {stroke: -PKST*, data: kt, order: 4, avoidMask: -LRF}-- {stroke: -LRKS*, data: nsk, order: 4, avoidMask: -PFT}-- {stroke: SPWHR&, data: chl, order: 2, avoidMask: T}-- {stroke: -RKFT*, data: stian, order: 4, avoidMask: -LPS}-- {stroke: -RKFS*, data: RKFS*, order: 4, avoidMask: -LPT}-- {stroke: -LRPST, data: LRPST, order: 4, avoidMask: -KF*}-- {stroke: TSPWHR, data: gl, order: 2, avoidMask: '&'}-- {stroke: -LKST*, data: lj, order: 4, avoidMask: -RPF}-- {stroke: -LRFT*, data: ntion, order: 4, avoidMask: -PKS}-- {stroke: -LRPF*, data: wn, order: 4, avoidMask: -KST}-- {stroke: -LRPKF, data: nd, order: 4, avoidMask: -ST*}-- {stroke: -RPST*, data: RPST*, order: 4, avoidMask: -LKF}-- {stroke: -LKFT*, data: sion, order: 4, avoidMask: -RPS}-- {stroke: -LKT*, data: LKT*, order: 4, avoidMask: -RPFS}-- {stroke: TPHR&, data: phl, order: 2, avoidMask: SW}-- {stroke: -LRPF, data: nn, order: 4, avoidMask: -KST*}-- {stroke: -LRPK, data: mb, order: 4, avoidMask: -FST*}-- {stroke: -PKFT, data: ky, order: 4, avoidMask: -LRS*}-- {stroke: -RPKT, data: rph, order: 4, avoidMask: -LFS*}-- {stroke: -LPKF, data: ld, order: 4, avoidMask: -RST*}-- {stroke: -PKT*, data: hp, order: 4, avoidMask: -LRFS}-- {stroke: -LFS*, data: '''ve', order: 4, avoidMask: -RPKT}-- {stroke: AOIU^, data: AOIU^, order: 3, avoidMask: ''}-- {stroke: -RKF*, data: RKF*, order: 4, avoidMask: -LPST}-- {stroke: -LKFT, data: ltch, order: 4, avoidMask: -RPS*}-- {stroke: TSPWR, data: gr, order: 2, avoidMask: H&}-- {stroke: -LRKT, data: hn, order: 4, avoidMask: -PFS*}-- {stroke: -KFST, data: ty, order: 4, avoidMask: -LRP*}-- {stroke: -RKFS, data: rsh, order: 4, avoidMask: -LPT*}-- {stroke: -LRPS, data: mn, order: 4, avoidMask: -KFT*}-- {stroke: -RPS*, data: RPS*, order: 4, avoidMask: -LKFT}-- {stroke: TPWH&, data: TPWH&, order: 2, avoidMask: SR}-- {stroke: -PST*, data: PST*, order: 4, avoidMask: -LRKF}-- {stroke: -KST*, data: j, order: 4, avoidMask: -LRPF}-- {stroke: -LST*, data: t's, order: 4, avoidMask: -RPKF}-- {stroke: -LRK*, data: nck, order: 4, avoidMask: -PFST}-- {stroke: -LPFT, data: ly, order: 4, avoidMask: -RKS*}-- {stroke: -RKS*, data: rsk, order: 4, avoidMask: -LPFT}-- {stroke: -PKS*, data: sc, order: 4, avoidMask: -LRFT}-- {stroke: SPWHR, data: cl, order: 2, avoidMask: T&}-- {stroke: TSPWH, data: gh, order: 2, avoidMask: R&}-- {stroke: -LPF*, data: wl, order: 4, avoidMask: -RKST}-- {stroke: -LFST, data: lth, order: 4, avoidMask: -RPK*}-- {stroke: -PFS*, data: zz, order: 4, avoidMask: -LRKT}-- {stroke: -PKFS, data: g, order: 4, avoidMask: -LRT*}-- {stroke: TSPW&, data: TSPW&, order: 2, avoidMask: HR}-- {stroke: -RFT*, data: stion, order: 4, avoidMask: -LPKS}-- {stroke: -RKT*, data: RKT*, order: 4, avoidMask: -LPFS}-- {stroke: -FST*, data: fth, order: 4, avoidMask: -LRPK}-- {stroke: -RPFS, data: rz, order: 4, avoidMask: -LKT*}-- {stroke: SPWH&, data: SPWH&, order: 2, avoidMask: TR}-- {stroke: TSWHR, data: kl, order: 2, avoidMask: P&}-- {stroke: -LRPT, data: mpt, order: 4, avoidMask: -KFS*}-- {stroke: TSPH&, data: TSPH&, order: 2, avoidMask: WR}-- {stroke: TSWH&, data: TSWH&, order: 2, avoidMask: PR}-- {stroke: SPWR&, data: chr, order: 2, avoidMask: TH}-- {stroke: -LKF*, data: LKF*, order: 4, avoidMask: -RPST}-- {stroke: TWHR&, data: TWHR&, order: 2, avoidMask: SP}-- {stroke: -RPT*, data: RPT*, order: 4, avoidMask: -LKFS}-- {stroke: TSPHR, data: scl, order: 2, avoidMask: W&}-- {stroke: -PKF*, data: dd, order: 4, avoidMask: -LRST}-- {stroke: -PKST, data: ct, order: 4, avoidMask: -LRF*}-- {stroke: -RPST, data: RPST, order: 4, avoidMask: -LKF*}-- {stroke: SPHR&, data: SPHR&, order: 2, avoidMask: TW}-- {stroke: -LRKF, data: nch, order: 4, avoidMask: -PST*}-- {stroke: -LPST, data: LPST, order: 4, avoidMask: -RKF*}-- {stroke: -LRP*, data: mpl, order: 4, avoidMask: -KFST}-- {stroke: -LKST, data: lxt, order: 4, avoidMask: -RPF*}-- {stroke: -KFS*, data: gh, order: 4, avoidMask: -LRPT}-- {stroke: -LPKT, data: lph, order: 4, avoidMask: -RFS*}-- {stroke: -LRT*, data: n't, order: 4, avoidMask: -PKFS}-- {stroke: -LPS*, data: '''m', order: 4, avoidMask: -RKFT}-- {stroke: SWHR&, data: SWHR&, order: 2, avoidMask: TP}-- {stroke: -RKST, data: rxt, order: 4, avoidMask: -LPF*}-- {stroke: PWHR&, data: PWHR&, order: 2, avoidMask: TS}-- {stroke: -LPFS, data: lz, order: 4, avoidMask: -RKT*}-- {stroke: -LPK*, data: bl, order: 4, avoidMask: -RFST}-- {stroke: -RPF*, data: rw, order: 4, avoidMask: -LKST}-- {stroke: -LKS*, data: lsk, order: 4, avoidMask: -RPFT}-- {stroke: -PFT*, data: ption, order: 4, avoidMask: -LRKS}-- {stroke: -RKFT, data: rtch, order: 4, avoidMask: -LPS*}-- {stroke: -LRS*, data: LRS*, order: 4, avoidMask: -PKFT}-- {stroke: TSHR&, data: TSHR&, order: 2, avoidMask: PW}-- {stroke: TPWR&, data: TPWR&, order: 2, avoidMask: SH}-- {stroke: -RPFT, data: ry, order: 4, avoidMask: -LKS*}-- {stroke: -RST*, data: RST*, order: 4, avoidMask: -LPKF}-- {stroke: -LRF*, data: fn, order: 4, avoidMask: -PKST}-- {stroke: -RPKS, data: rc, order: 4, avoidMask: -LFT*}-- {stroke: -RPK*, data: RPK*, order: 4, avoidMask: -LFST}-- {stroke: -LRFT, data: nft, order: 4, avoidMask: -PKS*}-- {stroke: -LRFS, data: nv, order: 4, avoidMask: -PKT*}-- {stroke: -PFST, data: PFST, order: 4, avoidMask: -LRK*}-- {stroke: -KFT*, data: ction, order: 4, avoidMask: -LRPS}-- {stroke: -LPKS, data: lc, order: 4, avoidMask: -RFT*}-- {stroke: -LRST, data: nst, order: 4, avoidMask: -PKF*}-- {stroke: -RFST, data: rth, order: 4, avoidMask: -LPK*}-- {stroke: -LRKS, data: nx, order: 4, avoidMask: -PFT*}-- {stroke: -RFS*, data: RFS*, order: 4, avoidMask: -LPKT}-- {stroke: -LFT*, data: ltion, order: 4, avoidMask: -RPKS}-- {stroke: TSPR&, data: skr, order: 2, avoidMask: WH}-- {stroke: -RPKF, data: rd, order: 4, avoidMask: -LST*}-- {stroke: TPWHR, data: TPWHR, order: 2, avoidMask: S&}-- {stroke: -LKFS, data: lsh, order: 4, avoidMask: -RPT*}-- {stroke: -LPT*, data: LPT*, order: 4, avoidMask: -RKFS}-- {stroke: TSWR&, data: TSWR&, order: 2, avoidMask: PH}-- {stroke: -LR*, data: rly, order: 4, avoidMask: -PKFST}-- {stroke: -KT*, data: hh, order: 4, avoidMask: -LRPFS}-- {stroke: -RK*, data: rck, order: 4, avoidMask: -LPFST}-- {stroke: AOI^, data: ie, order: 3, avoidMask: U}-- {stroke: -PST, data: PST, order: 4, avoidMask: -LRKF*}-- {stroke: -KST, data: xt, order: 4, avoidMask: -LRPF*}-- {stroke: -KFT, data: tch, order: 4, avoidMask: -LRPS*}-- {stroke: THR&, data: THR&, order: 2, avoidMask: SPW}-- {stroke: SPHR, data: spl, order: 2, avoidMask: TW&}-- {stroke: TPWR, data: dr, order: 2, avoidMask: SH&}-- {stroke: -LRF, data: nf, order: 4, avoidMask: -PKST*}-- {stroke: -LKF, data: lch, order: 4, avoidMask: -RPST*}-- {stroke: -FT*, data: tion, order: 4, avoidMask: -LRPKS}-- {stroke: TWH&, data: TWH&, order: 2, avoidMask: SPR}-- {stroke: SPR&, data: SPR&, order: 2, avoidMask: TWH}-- {stroke: -KF*, data: q, order: 4, avoidMask: -LRPST}-- {stroke: AIU^, data: ae, order: 3, avoidMask: O}-- {stroke: TPH&, data: mn, order: 2, avoidMask: SWR}-- {stroke: -RFT, data: rft, order: 4, avoidMask: -LPKS*}-- {stroke: -LS*, data: '''s', order: 4, avoidMask: -RPKFT}-- {stroke: -LFT, data: lft, order: 4, avoidMask: -RPKS*}-- {stroke: AOIU, data: AOIU, order: 3, avoidMask: ^}-- {stroke: TSWR, data: kr, order: 2, avoidMask: PH&}-- {stroke: -LRS, data: ns, order: 4, avoidMask: -PKFT*}-- {stroke: TPHR, data: fl, order: 2, avoidMask: SW&}-- {stroke: -PFS, data: z, order: 4, avoidMask: -LRKT*}-- {stroke: -RPK, data: rb, order: 4, avoidMask: -LFST*}-- {stroke: TSP&, data: sk, order: 2, avoidMask: WHR}-- {stroke: -RKT, data: hr, order: 4, avoidMask: -LPFS*}-- {stroke: TPWH, data: x, order: 2, avoidMask: SR&}-- {stroke: -RPT, data: rpt, order: 4, avoidMask: -LKFS*}-- {stroke: -LF*, data: fl, order: 4, avoidMask: -RPKST}-- {stroke: -RT*, data: rnt, order: 4, avoidMask: -LPKFS}-- {stroke: TSH&, data: TSH&, order: 2, avoidMask: PWR}-- {stroke: -LP*, data: pl, order: 4, avoidMask: -RKFST}-- {stroke: -PKT, data: ph, order: 4, avoidMask: -LRFS*}-- {stroke: -PT*, data: PT*, order: 4, avoidMask: -LRKFS}-- {stroke: -RP*, data: RP*, order: 4, avoidMask: -LKFST}-- {stroke: TPR&, data: phr, order: 2, avoidMask: SWH}-- {stroke: SWR&, data: SWR&, order: 2, avoidMask: TPH}-- {stroke: SPWR, data: cr, order: 2, avoidMask: TH&}-- {stroke: SWHR, data: squ, order: 2, avoidMask: TP&}-- {stroke: TPW&, data: TPW&, order: 2, avoidMask: SHR}-- {stroke: -LPS, data: lm, order: 4, avoidMask: -RKFT*}-- {stroke: -PFT, data: y, order: 4, avoidMask: -LRKS*}-- {stroke: -LRK, data: nk, order: 4, avoidMask: -PFST*}-- {stroke: TSHR, data: TSHR, order: 2, avoidMask: PW&}-- {stroke: AOU^, data: iu, order: 3, avoidMask: I}-- {stroke: -LPK, data: lb, order: 4, avoidMask: -RFST*}-- {stroke: -RPS, data: rm, order: 4, avoidMask: -LKFT*}-- {stroke: -RPF, data: rn, order: 4, avoidMask: -LKST*}-- {stroke: TSPR, data: scr, order: 2, avoidMask: WH&}-- {stroke: -LPF, data: ln, order: 4, avoidMask: -RKST*}-- {stroke: -PF*, data: w, order: 4, avoidMask: -LRKST}-- {stroke: SHR&, data: shr, order: 2, avoidMask: TPW}-- {stroke: -LRP, data: mp, order: 4, avoidMask: -KFST*}-- {stroke: PWR&, data: PWR&, order: 2, avoidMask: TSH}-- {stroke: PWH&, data: PWH&, order: 2, avoidMask: TSR}-- {stroke: PHR&, data: PHR&, order: 2, avoidMask: TSW}-- {stroke: TSW&, data: TSW&, order: 2, avoidMask: PHR}-- {stroke: -RST, data: rst, order: 4, avoidMask: -LPKF*}-- {stroke: SPH&, data: schm, order: 2, avoidMask: TWR}-- {stroke: -LT*, data: ttl, order: 4, avoidMask: -RPKFS}-- {stroke: TSR&, data: tz, order: 2, avoidMask: PWH}-- {stroke: SPWH, data: ch, order: 2, avoidMask: TR&}-- {stroke: -PK*, data: PK*, order: 4, avoidMask: -LRFST}-- {stroke: TSPW, data: g, order: 2, avoidMask: HR&}-- {stroke: -RS*, data: RS*, order: 4, avoidMask: -LPKFT}-- {stroke: TSPH, data: sn, order: 2, avoidMask: WR&}-- {stroke: -LFS, data: lv, order: 4, avoidMask: -RPKT*}-- {stroke: -RFS, data: rv, order: 4, avoidMask: -LPKT*}-- {stroke: -PS*, data: sp, order: 4, avoidMask: -LRKFT}-- {stroke: TWHR, data: j, order: 2, avoidMask: SP&}-- {stroke: -LK*, data: lck, order: 4, avoidMask: -RPFST}-- {stroke: SPW&, data: SPW&, order: 2, avoidMask: THR}-- {stroke: -LRT, data: nt, order: 4, avoidMask: -PKFS*}-- {stroke: -KFS, data: sh, order: 4, avoidMask: -LRPT*}-- {stroke: -PKF, data: d, order: 4, avoidMask: -LRST*}-- {stroke: TSWH, data: kn, order: 2, avoidMask: PR&}-- {stroke: -RKS, data: rx, order: 4, avoidMask: -LPFT*}-- {stroke: -LPT, data: lpt, order: 4, avoidMask: -RKFS*}-- {stroke: -PKS, data: c, order: 4, avoidMask: -LRFT*}-- {stroke: -ST*, data: ts, order: 4, avoidMask: -LRPKF}-- {stroke: WHR&, data: q, order: 2, avoidMask: TSP}-- {stroke: -FS*, data: vv, order: 4, avoidMask: -LRPKT}-- {stroke: TWR&, data: TWR&, order: 2, avoidMask: SPH}-- {stroke: -LKT, data: hl, order: 4, avoidMask: -RPFS*}-- {stroke: PWHR, data: bl, order: 2, avoidMask: TS&}-- {stroke: -FST, data: th, order: 4, avoidMask: -LRPK*}-- {stroke: -RF*, data: RF*, order: 4, avoidMask: -LPKST}-- {stroke: -LKS, data: lx, order: 4, avoidMask: -RPFT*}-- {stroke: -KS*, data: sk, order: 4, avoidMask: -LRPFT}-- {stroke: OIU^, data: oe, order: 3, avoidMask: A}-- {stroke: SWH&, data: SWH&, order: 2, avoidMask: TPR}-- {stroke: -LST, data: lst, order: 4, avoidMask: -RPKF*}-- {stroke: -RKF, data: rch, order: 4, avoidMask: -LPST*}-- {stroke: TSW, data: k, order: 2, avoidMask: PHR&}-- {stroke: -es, data: '{^}es', order: 5, avoidMask: ''}-- {stroke: -K*, data: ck, order: 4, avoidMask: -LRPFST}-- {stroke: -T*, data: tt, order: 4, avoidMask: -LRPKFS}-- {stroke: -PK, data: b, order: 4, avoidMask: -LRFST*}-- {stroke: OI^, data: io, order: 3, avoidMask: AU}-- {stroke: -LP, data: lp, order: 4, avoidMask: -RKFST*}-- {stroke: PW&, data: PW&, order: 2, avoidMask: TSHR}-- {stroke: -PS, data: m, order: 4, avoidMask: -LRKFT*}-- {stroke: -FT, data: ft, order: 4, avoidMask: -LRPKS*}-- {stroke: -KS, data: x, order: 4, avoidMask: -LRPFT*}-- {stroke: AOI, data: ei, order: 3, avoidMask: U^}-- {stroke: TWH, data: thw, order: 2, avoidMask: SPR&}-- {stroke: SW&, data: sv, order: 2, avoidMask: TPHR}-- {stroke: SH&, data: sch, order: 2, avoidMask: TPWR}-- {stroke: AO^, data: ao, order: 3, avoidMask: IU}-- {stroke: OU^, data: uo, order: 3, avoidMask: AI}-- {stroke: -RK, data: rk, order: 4, avoidMask: -LPFST*}-- {stroke: AU^, data: ua, order: 3, avoidMask: OI}-- {stroke: -FS, data: v, order: 4, avoidMask: -LRPKT*}-- {stroke: SR&, data: vr, order: 2, avoidMask: TPWH}-- {stroke: -LT, data: lt, order: 4, avoidMask: -RPKFS*}-- {stroke: PWR, data: br, order: 2, avoidMask: TSH&}-- {stroke: -R*, data: rr, order: 4, avoidMask: -LPKFST}-- {stroke: -PF, data: n, order: 4, avoidMask: -LRKST*}-- {stroke: OIU, data: eo, order: 3, avoidMask: A^}-- {stroke: WH&, data: hw, order: 2, avoidMask: TSPR}-- {stroke: PH&, data: PH&, order: 2, avoidMask: TSWR}-- {stroke: -RF, data: rf, order: 4, avoidMask: -LPKST*}-- {stroke: PWH, data: PWH, order: 2, avoidMask: TSR&}-- {stroke: TPR, data: fr, order: 2, avoidMask: SWH&}-- {stroke: TP&, data: ph, order: 2, avoidMask: SWHR}-- {stroke: -LF, data: lf, order: 4, avoidMask: -RPKST*}-- {stroke: TS&, data: ts, order: 2, avoidMask: PWHR}-- {stroke: -S*, data: ss, order: 4, avoidMask: -LRPKFT}-- {stroke: TPH, data: n, order: 2, avoidMask: SWR&}-- {stroke: SHR, data: sl, order: 2, avoidMask: TPW&}-- {stroke: TSP, data: sc, order: 2, avoidMask: WHR&}-- {stroke: -LS, data: ls, order: 4, avoidMask: -RPKFT*}-- {stroke: AIU, data: ea, order: 3, avoidMask: O^}-- {stroke: THR, data: thr, order: 2, avoidMask: SPW&}-- {stroke: SWR, data: y, order: 2, avoidMask: TPH&}-- {stroke: SPW, data: c, order: 2, avoidMask: THR&}-- {stroke: TW&, data: TW&, order: 2, avoidMask: SPHR}-- {stroke: SP&, data: sph, order: 2, avoidMask: TWHR}-- {stroke: -ST, data: st, order: 4, avoidMask: -LRPKF*}-- {stroke: -KF, data: ch, order: 4, avoidMask: -LRPST*}-- {stroke: -PT, data: pt, order: 4, avoidMask: -LRKFS*}-- {stroke: SPR, data: spr, order: 2, avoidMask: TWH&}-- {stroke: HR&, data: ll, order: 2, avoidMask: TSPW}-- {stroke: -RS, data: rs, order: 4, avoidMask: -LPKFT*}-- {stroke: TR&, data: TR&, order: 2, avoidMask: SPWH}-- {stroke: IU^, data: ee, order: 3, avoidMask: AO}-- {stroke: WHR, data: qu, order: 2, avoidMask: TSP&}-- {stroke: -P*, data: pp, order: 4, avoidMask: -LRKFST}-- {stroke: TWR, data: TWR, order: 2, avoidMask: SPH&}-- {stroke: TH&, data: TH&, order: 2, avoidMask: SPWR}-- {stroke: AI^, data: ia, order: 3, avoidMask: OU}-- {stroke: TPW, data: d, order: 2, avoidMask: SHR&}-- {stroke: SPH, data: sm, order: 2, avoidMask: TWR&}-- {stroke: -LR, data: rl, order: 4, avoidMask: -PKFST*}-- {stroke: -LK, data: lk, order: 4, avoidMask: -RPFST*}-- {stroke: -RT, data: rt, order: 4, avoidMask: -LPKFS*}-- {stroke: -F*, data: ff, order: 4, avoidMask: -LRPKST}-- {stroke: -KT, data: h, order: 4, avoidMask: -LRPFS*}-- {stroke: AOU, data: ui, order: 3, avoidMask: I^}-- {stroke: PR&, data: PR&, order: 2, avoidMask: TSWH}-- {stroke: TSR, data: str, order: 2, avoidMask: PWH&}-- {stroke: -L*, data: ll, order: 4, avoidMask: -RPKFST}-- {stroke: TSH, data: sth, order: 2, avoidMask: PWR&}-- {stroke: SWH, data: z, order: 2, avoidMask: TPR&}-- {stroke: PHR, data: pl, order: 2, avoidMask: TSW&}-- {stroke: -RP, data: rp, order: 4, avoidMask: -LKFST*}-- {stroke: WR&, data: WR&, order: 2, avoidMask: TSPH}-- {stroke: TW, data: tw, order: 2, avoidMask: SPHR&}-- {stroke: SW, data: sw, order: 2, avoidMask: TPHR&}-- {stroke: WR, data: wr, order: 2, avoidMask: TSPH&}-- {stroke: TP, data: f, order: 2, avoidMask: SWHR&}-- {stroke: OI, data: oi, order: 3, avoidMask: AU^}-- {stroke: PH, data: m, order: 2, avoidMask: TSWR&}-- {stroke: OU, data: ou, order: 3, avoidMask: AI^}-- {stroke: -e, data: '{^}e', order: 5, avoidMask: s}-- {stroke: -*, data: '*', order: 4, avoidMask: -LRPKFST}-- {stroke: P&, data: P&, order: 2, avoidMask: TSWHR}-- {stroke: AI, data: ai, order: 3, avoidMask: OU^}-- {stroke: TS, data: st, order: 2, avoidMask: PWHR&}-- {stroke: SP, data: sp, order: 2, avoidMask: TWHR&}-- {stroke: -P, data: p, order: 4, avoidMask: -LRKFST*}-- {stroke: -s, data: '{^}s', order: 5, avoidMask: e}-- {stroke: T&, data: T&, order: 2, avoidMask: SPWHR}-- {stroke: AO, data: oa, order: 3, avoidMask: IU^}-- {stroke: A^, data: aa, order: 3, avoidMask: OIU}-- {stroke: TH, data: th, order: 2, avoidMask: SPWR&}-- {stroke: I^, data: eu, order: 3, avoidMask: AOU}-- {stroke: IU, data: e, order: 3, avoidMask: AO^}-- {stroke: -R, data: r, order: 4, avoidMask: -LPKFST*}-- {stroke: WH, data: wh, order: 2, avoidMask: TSPR&}-- {stroke: W&, data: W&, order: 2, avoidMask: TSPHR}-- {stroke: PR, data: pr, order: 2, avoidMask: TSWH&}-- {stroke: SH, data: sh, order: 2, avoidMask: TPWR&}-- {stroke: AU, data: au, order: 3, avoidMask: OI^}-- {stroke: -F, data: f, order: 4, avoidMask: -LRPKST*}-- {stroke: HR, data: l, order: 2, avoidMask: TSPW&}-- {stroke: S&, data: S&, order: 2, avoidMask: TPWHR}-- {stroke: O^, data: oo, order: 3, avoidMask: AIU}-- {stroke: -K, data: k, order: 4, avoidMask: -LRPFST*}-- {stroke: TR, data: tr, order: 2, avoidMask: SPWH&}-- {stroke: U^, data: ue, order: 3, avoidMask: AOI}-- {stroke: -T, data: t, order: 4, avoidMask: -LRPKFS*}-- {stroke: PW, data: b, order: 2, avoidMask: TSHR&}-- {stroke: H&, data: H&, order: 2, avoidMask: TSPWR}-- {stroke: R&, data: rh, order: 2, avoidMask: TSPWH}-- {stroke: -L, data: l, order: 4, avoidMask: -RPKFST*}-- {stroke: -S, data: s, order: 4, avoidMask: -LRPKFT*}-- {stroke: SR, data: v, order: 2, avoidMask: TPWH&}-- {stroke: P, data: p, order: 2, avoidMask: TSWHR&}-- {stroke: '#', data: '{-|}', order: 1, avoidMask: +}-- {stroke: R, data: r, order: 2, avoidMask: TSPWH&}-- {stroke: S, data: s, order: 2, avoidMask: TPWHR&}-- {stroke: T, data: t, order: 2, avoidMask: SPWHR&}-- {stroke: U, data: u, order: 3, avoidMask: AOI^}-- {stroke: I, data: i, order: 3, avoidMask: AOU^}-- {stroke: H, data: h, order: 2, avoidMask: TSPWR&}-- {stroke: '&', data: '&', order: 2, avoidMask: TSPWHR}-- {stroke: W, data: w, order: 2, avoidMask: TSPHR&}-- {stroke: +, data: '{^}', order: 1, avoidMask: '#'}-- {stroke: ^, data: y, order: 3, avoidMask: AOIU}-- {stroke: '-', data: '', order: 4, avoidMask: -LRPKFST*}-- {stroke: O, data: o, order: 3, avoidMask: AIU^}-- {stroke: A, data: a, order: 3, avoidMask: OIU^}-- {stroke: '', data: '', order: 3, avoidMask: AOIU^}-- {stroke: '', data: '{^}', order: 2, avoidMask: TSPWHR&}

pinchord-javelin-system-v30.2.yaml deleted (view file)

@@ -1,320 +0,0 @@-name: "Pinchord"-## Eventually I think I could make this work with the normal extended stenotype layout?-## Requiring only the # S thing and to make ^+ maybe?-keys:-  - name: "#"-    mask: 0x02-  - name: "+"-    mask: 0x04-  - name: "T"-    mask: 0x08-  - name: "S"-    mask: 0x10-  - name: "P"-    mask: 0x20-  - name: "W"-    mask: 0x40-  - name: "H"-    mask: 0x80-  - name: "R"-    mask: 0x100-  - name: "&"-    mask: 0x200--  - name: "A"-    mask: 0x400-  - name: "O"-    mask: 0x800-  - name: "-"-    mask: 0-    absentMask: 31744 ## match AOIU^-    # presentMask: 16744448 ## Every key after AOIU^-    presentMask: 8384512-  - name: "I"-    mask: 0x1000-  - name: "U"-    mask: 0x2000-  - name: "^"-    mask: 0x4000--  - name: "L"-    mask: 0x8000-  - name: "R"-    mask: 0x10000-  - name: "P"-    mask: 0x20000-  - name: "K"-    mask: 0x40000-  - name: "F"-    mask: 0x80000-  - name: "S"-    mask: 0x100000-  - name: "T"-    mask: 0x200000-  - name: "*"-    mask: 0x400000-  - name: "e"-    mask: 0x800000-  - name: "s"-    mask: 0x01--undo: "-LR"--layout:-  - mask: 1-    name: "#"-    center: { "x": 0.5, "y": 0.06 }-    path: [-      { "c": "m", "p": [0.00454, 0] },-      { "c": "l", "p": [0.99545, 0] },-      { "c": "l", "p": [0.99545, 0.12] },-      { "c": "l", "p": [0.00454, 0.12] },-      { "c": "c" }-    ]-  - mask: 0x800000-    name: "^"-    center: { "x": 0.04545, "y": 0.275 }-    path: [-      { "c": "m", "p": [0.00454, 0.15] },-      { "c": "rl", "p": [0.08181, 0] },-      { "c": "rl", "p": [0, 0.25] },-      { "c": "rl", "p": [-0.08181, 0] },-      { "c": "c" }-    ]-  - mask: 0x1000000-    name: "+"-    center: { "x": 0.04545, "y": 0.53 }-    path: [-      { "c": "m", "p": [0.00454, 0.41] },-      { "c": "rl", "p": [0.08181, 0] },-      { "c": "rl", "p": [0, 0.17] },-      { "c": "rq", "p": [0, 0.12, -0.08181, 0.12, -0.08181, 0] },-      { "c": "c" }-    ]-  - mask: 2-    name: "S"-    center: { "x": 0.13636, "y": 0.4 }-    path: [-      { "c": "m", "p": [0.09545, 0.15] },-      { "c": "rl", "p": [0.08181, 0] },

Show all 321 lines

pinchord-starboard-layout-v30.2.javelin-layout deleted (view file)

@@ -1,591 +0,0 @@-{-	"layers": [-		{-			"id": 0,-			"name": "Default",-			"keys": [-				[-					{-						"t": "p",-						"d": {-							"a": {-								"t": "p",-								"c": "stenoNum1"-							}-						}-					},-					{-						"t": "r",-						"d": {-							"a": {-								"t": "r",-								"c": "stenoNum1"-							}-						}-					}-				],-				[-					{-						"t": "p",-						"d": {-							"a": {-								"t": "p",-								"c": "stenoS2"-							}-						}-					},-					{-						"t": "r",-						"d": {-							"a": {-								"t": "r",-								"c": "stenoS2"-							}-						}-					}-				],-				[-					{-						"t": "p",-						"d": {-							"a": {-								"t": "p",-								"c": "stenoKL"-							}-						}-					},-					{-						"t": "r",-						"d": {-							"a": {-								"t": "r",-								"c": "stenoKL"-							}-						}-					}-				],-				[-					{-						"t": "p",-						"d": {-							"a": {-								"t": "p",-								"c": "stenoWL"-							}-						}-					},-					{-						"t": "r",-						"d": {-							"a": {-								"t": "r",-								"c": "stenoWL"-							}-						}-					}-				],-				[-					{-						"t": "p",-						"d": {-							"a": {-								"t": "p",-								"c": "stenoRL"-							}-						}-					},-					{-						"t": "r",-						"d": {

Show all 593 lines

plover_pinchord/dictionaries/pinchord-v30.2.py modified (view file)

@@ -1,14 +1,12 @@ ## Pinchord Plover python dictionary-## Copyright Grahp under https://grahp.dev/pinchord.git/LICENSE+## Copyright Grahp under Pinchord's License (GNU GPL v2) https://grahp.dev/pinchord.git/LICENSE import re  ## Longest valid outline, Pinchord only needs one stroke outlines :) LONGEST_KEY = 1 -## TODO move this into the dict, or just wait until chords.edn is the dictionary format? BANKS = ["prefixes", "initials", "vowels", "finals", "suffixes"] -## Specified by and generated from 'chords.edn' (https://grahp.dev/pinchord.git/chords.edn) ## Unlike Shrimple, Pinchord enumerates all bank chords! DICT = {"initials": {"WH&": "hw",                      "T": "t",@@ -344,8 +342,7 @@ def banks(stroke):     match = re.match(BANK_SPLITTING_REGEX, stroke)     if match:-        ## Due to javelin limitations I think making these banks extensible would be tricky, actually-        ## The regex definitely should be though.+        ## These should really be extensible!         prefix, initials, vowels, finals, suffixes = match.groups()         return {"prefixes": prefix, "initials": initials, "vowels": vowels, "finals": finals, "suffixes": suffixes}     else:

pythonify.clj deleted (view file)

@@ -1,34 +0,0 @@-(defn stringifyify [x]-  (str \" (name x) \"))--(defn pythonify [x]-  (cond-    (map? x) (str "{"-                  (str/join ",\n"-                            (map (fn [[k v]]-                                   (str (stringifyify k) ": " (pythonify v)))-                                 x))-                  "}")-    (string? x) (stringifyify x)-    :else (str x)))--    ; "prefixes": {-    ;     "+": "{^}",-    ;     "#": "{-|}",-    ;     "#+": "{^}{-|}",-    ;     "": "{}",-    ; },--(def plover-prefixes {"+" "{^}"-                      "#" "{-|}"-                      "#+" "{^}{-|}"-                      "" "{}"})--(defn slurpandshit []-  (update (assoc (select-keys (edn/read-string (slurp "chords.edn"))-                              [:initials :vowels :finals :suffixes])-                 :prefixes plover-prefixes)-          :initials dissoc ""))--(comment-  (spit "pythontest.py" (pythonify (slurpandshit))))