From 2fac3cd485872ca10582b7dc48b0ad10e9350143 Mon Sep 17 00:00:00 2001 From: Hunter Richardson Date: Sun, 16 Jun 2024 15:26:18 -0500 Subject: [PATCH] Initial commit --- .eslintrc.cjs | 26 + .gitignore | 30 + .prettierrc.json | 8 + README.md | 61 + cypress.config.ts | 8 + env.d.ts | 1 + package-lock.json | 9381 +++++++++++++++++ package.json | 66 + "res/lemmae/actus/adip\304\253sc\304\253.csv" | 2 + "res/lemmae/actus/am\304\201re.csv" | 2 + "res/lemmae/actus/c\304\223ns\304\223re.csv" | 2 + .../c\305\215nsect\304\201r\304\253.csv" | 2 + "res/lemmae/actus/d\304\223l\304\223re.csv" | 2 + res/lemmae/actus/incidere.csv | 2 + "res/lemmae/actus/plac\304\223re.csv" | 2 + res/lemmae/actus/quaerere.csv | 2 + "res/lemmae/adiectiva/Lat\304\253num.csv" | 2 + res/lemmae/adiectiva/bonum.csv | 2 + res/lemmae/adiectiva/centum.csv | 2 + res/lemmae/adiectiva/decem.csv | 2 + res/lemmae/adiectiva/duodecim.csv | 2 + ...304\223n\305\215n\304\201gint\304\201.csv" | 2 + .../duod\304\223oct\305\215gint\304\201.csv" | 2 + ...duod\304\223quadr\304\201gint\304\201.csv" | 2 + ...\223qu\304\253nqu\304\201gint\304\201.csv" | 2 + ...duod\304\223septu\304\201gint\304\201.csv" | 2 + .../duod\304\223sex\304\201gint\304\201.csv" | 2 + .../duod\304\223tr\304\253gint\304\201.csv" | 2 + .../duod\304\223v\304\253gint\304\253.csv" | 2 + .../adiectiva/incomparabilia/alterum.csv | 2 + .../adiectiva/incomparabilia/centuplex.csv | 2 + .../incomparabilia/cent\305\253plum.csv" | 2 + .../adiectiva/incomparabilia/decemplex.csv | 2 + .../adiectiva/incomparabilia/decimplex.csv | 2 + .../adiectiva/incomparabilia/decuplex.csv | 2 + .../adiectiva/incomparabilia/ducenta.csv | 2 + .../adiectiva/incomparabilia/duodecemplex.csv | 2 + .../adiectiva/incomparabilia/duodecemplum.csv | 2 + .../adiectiva/incomparabilia/duodecimplex.csv | 2 + .../adiectiva/incomparabilia/duodecimplum.csv | 2 + .../adiectiva/incomparabilia/duodecuplex.csv | 2 + .../adiectiva/incomparabilia/duodecuplum.csv | 2 + .../incomparabilia/duod\304\223centum.csv" | 2 + .../adiectiva/incomparabilia/duplex.csv | 2 + res/lemmae/adiectiva/incomparabilia/meum.csv | 2 + .../incomparabilia/milli\305\215.csv" | 2 + .../adiectiva/incomparabilia/neutrum.csv | 2 + .../adiectiva/incomparabilia/noncuplex.csv | 2 + .../adiectiva/incomparabilia/nostrum.csv | 2 + .../adiectiva/incomparabilia/novemcuplex.csv | 2 + .../adiectiva/incomparabilia/novemplex.csv | 2 + .../incomparabilia/n\305\215ngenta.csv" | 2 + .../incomparabilia/n\305\215nuplex.csv" | 2 + .../incomparabilia/n\305\253llum.csv" | 2 + .../adiectiva/incomparabilia/octingenta.csv | 2 + .../adiectiva/incomparabilia/octuplex.csv | 2 + .../adiectiva/incomparabilia/quadruplex.csv | 2 + .../incomparabilia/qu\304\253ngenta.csv" | 2 + .../incomparabilia/qu\304\253nquiplex.csv" | 2 + .../incomparabilia/qu\304\253ntuplex.csv" | 2 + .../adiectiva/incomparabilia/seplex.csv | 2 + .../adiectiva/incomparabilia/septemplex.csv | 2 + .../adiectiva/incomparabilia/septimplex.csv | 2 + .../adiectiva/incomparabilia/septingenta.csv | 2 + .../adiectiva/incomparabilia/sescenta.csv | 2 + .../adiectiva/incomparabilia/sexcenta.csv | 2 + .../adiectiva/incomparabilia/sextuplex.csv | 2 + .../adiectiva/incomparabilia/sexuplex.csv | 2 + .../adiectiva/incomparabilia/simplum.csv | 2 + res/lemmae/adiectiva/incomparabilia/suum.csv | 2 + .../incomparabilia/s\305\215lum.csv" | 2 + .../adiectiva/incomparabilia/terdecuplex.csv | 2 + .../adiectiva/incomparabilia/ternum.csv | 2 + .../adiectiva/incomparabilia/trecenta.csv | 2 + .../adiectiva/incomparabilia/triplex.csv | 2 + res/lemmae/adiectiva/incomparabilia/tuum.csv | 2 + .../incomparabilia/t\305\215tum.csv" | 2 + .../adiectiva/incomparabilia/ultrum.csv | 2 + .../adiectiva/incomparabilia/undecemplex.csv | 2 + .../adiectiva/incomparabilia/undecimplex.csv | 2 + .../adiectiva/incomparabilia/undecuplex.csv | 2 + .../adiectiva/incomparabilia/vestrum.csv | 2 + .../incomparabilia/\305\253llum.csv" | 2 + .../adiectiva/incomparabilia/\305\253num.csv" | 2 + res/lemmae/adiectiva/magnum.csv | 2 + res/lemmae/adiectiva/novem.csv | 2 + .../n\305\215n\304\201gint\304\201.csv" | 2 + "res/lemmae/adiectiva/oct\305\215.csv" | 2 + .../adiectiva/oct\305\215gint\304\201.csv" | 2 + res/lemmae/adiectiva/quadrigenta.csv | 2 + .../adiectiva/quadr\304\201gint\304\201.csv" | 2 + res/lemmae/adiectiva/quattuor.csv | 2 + res/lemmae/adiectiva/quattuordecim.csv | 2 + "res/lemmae/adiectiva/qu\304\253ndecim.csv" | 2 + "res/lemmae/adiectiva/qu\304\253nque.csv" | 2 + .../qu\304\253nqu\304\201gint\304\201.csv" | 2 + res/lemmae/adiectiva/septem.csv | 2 + res/lemmae/adiectiva/septemdecem.csv | 2 + .../adiectiva/septu\304\201gint\304\201.csv" | 2 + res/lemmae/adiectiva/sex.csv | 2 + .../adiectiva/sex\304\201gint\304\201.csv" | 2 + res/lemmae/adiectiva/simplex.csv | 2 + "res/lemmae/adiectiva/s\304\223decim.csv" | 2 + res/lemmae/adiectiva/trecentum.csv | 2 + res/lemmae/adiectiva/tredecim.csv | 2 + .../adiectiva/tr\304\253gint\304\201.csv" | 2 + .../adiectiva/v\304\253gint\304\253.csv" | 2 + "res/lemmae/adiectiva/\305\253ndecim.csv" | 2 + .../adiectiva/\305\253nd\304\223centum.csv" | 2 + ...304\223n\305\215n\304\201gint\304\201.csv" | 2 + ...\253nd\304\223oct\305\215gint\304\201.csv" | 2 + ...53nd\304\223quadr\304\201gint\304\201.csv" | 2 + ...\223qu\304\253nqu\304\201gint\304\201.csv" | 2 + ...\253nd\304\223sex\304\201gint\304\201.csv" | 2 + ...5\253nd\304\223tr\304\253gint\304\201.csv" | 2 + ...05\253nd\304\223v\304\253gint\304\253.csv" | 2 + .../\305\253nseptu\304\201gint\304\201.csv" | 2 + res/lemmae/adverbia/bis.csv | 2 + "res/lemmae/adverbia/centi\304\223ns.csv" | 2 + "res/lemmae/adverbia/centi\304\223s.csv" | 2 + "res/lemmae/adverbia/c\304\223terum.csv" | 2 + "res/lemmae/adverbia/deci\304\223ns.csv" | 2 + "res/lemmae/adverbia/deci\304\223s.csv" | 2 + "res/lemmae/adverbia/duodeci\304\223ns.csv" | 2 + "res/lemmae/adverbia/duodeci\304\223s.csv" | 2 + .../duod\304\223tr\304\253gi\304\223ns.csv" | 2 + .../adverbia/m\304\253lli\304\223ns.csv" | 2 + .../adverbia/m\304\253lli\304\223s.csv" | 2 + "res/lemmae/adverbia/n\305\215n.csv" | 2 + .../adverbia/n\305\215ni\304\223ns.csv" | 2 + .../lemmae/adverbia/n\305\215ni\304\223s.csv" | 2 + "res/lemmae/adverbia/n\305\215nnumquam.csv" | 2 + .../n\305\215n\304\201gi\304\223ns.csv" | 2 + "res/lemmae/adverbia/octi\304\223ns.csv" | 2 + .../adverbia/oct\305\215gi\304\223ns.csv" | 2 + "res/lemmae/adverbia/ovi\304\223ns.csv" | 2 + .../adverbia/quadr\304\201gi\304\223ns.csv" | 2 + .../adverbia/qu\304\253nqui\304\223ns.csv" | 2 + "res/lemmae/adverbia/septi\304\223ns.csv" | 2 + "res/lemmae/adverbia/sexi\304\223ns.csv" | 2 + .../adverbia/sex\304\201gi\304\223ns.csv" | 2 + "res/lemmae/adverbia/terdeci\304\223ns.csv" | 2 + "res/lemmae/adverbia/terdeci\304\223s.csv" | 2 + "res/lemmae/adverbia/trecenti\304\223ns.csv" | 2 + "res/lemmae/adverbia/trecenti\304\223s.csv" | 2 + "res/lemmae/adverbia/tredeci\304\223ns.csv" | 2 + "res/lemmae/adverbia/tredeci\304\223s.csv" | 2 + .../adverbia/tr\304\253ci\304\223s.csv" | 2 + .../adverbia/v\304\253ci\304\223ns.csv" | 2 + .../adverbia/\305\253ndeci\304\223ns.csv" | 2 + .../adverbia/\305\253ndeci\304\223s.csv" | 2 + ...53nd\304\223quadr\304\201gi\304\223ns.csv" | 2 + .../lemmae/nomina/Carth\304\201g\305\215.csv" | 2 + res/lemmae/nomina/adeptor.csv | 2 + "res/lemmae/nomina/adeptr\304\253x.csv" | 2 + "res/lemmae/nomina/am\304\201tor.csv" | 2 + "res/lemmae/nomina/am\304\201tr\304\253x.csv" | 2 + res/lemmae/nomina/bes.csv | 2 + "res/lemmae/nomina/cent\304\223simus.csv" | 2 + "res/lemmae/nomina/c\304\223nsor.csv" | 2 + .../lemmae/nomina/c\304\223nstr\304\253x.csv" | 2 + .../nomina/c\305\215nsect\304\201tor.csv" | 2 + .../c\305\215nsect\304\201tr\304\253x.csv" | 2 + res/lemmae/nomina/decima.csv | 2 + res/lemmae/nomina/decimus.csv | 2 + res/lemmae/nomina/decunx.csv | 2 + res/lemmae/nomina/deunx.csv | 2 + res/lemmae/nomina/dolor.csv | 2 + "res/lemmae/nomina/d\304\223l\304\223tor.csv" | 2 + .../nomina/d\304\223l\304\223tr\304\253x.csv" | 2 + "res/lemmae/nomina/d\304\253midius.csv" | 2 + "res/lemmae/nomina/d\305\215dr\304\201ns.csv" | 2 + res/lemmae/nomina/labor.csv | 2 + res/lemmae/nomina/lingua.csv | 2 + res/lemmae/nomina/nihil.csv | 2 + "res/lemmae/nomina/n\305\215nus.csv" | 2 + "res/lemmae/nomina/oct\304\201ns.csv" | 2 + res/lemmae/nomina/placitor.csv | 2 + "res/lemmae/nomina/placitr\304\253x.csv" | 2 + res/lemmae/nomina/puer.csv | 2 + "res/lemmae/nomina/quadr\304\201ns.csv" | 2 + "res/lemmae/nomina/quaes\304\253tor.csv" | 2 + .../nomina/quaes\304\253tr\304\253x.csv" | 2 + .../lemmae/nomina/qu\304\253nt\304\201ns.csv" | 2 + res/lemmae/nomina/septunx.csv | 2 + "res/lemmae/nomina/sept\304\201ns.csv" | 2 + "res/lemmae/nomina/sext\304\201ns.csv" | 2 + "res/lemmae/nomina/s\304\223mis.csv" | 2 + res/lemmae/nomina/tempus.csv | 2 + "res/lemmae/nomina/tri\304\223ns.csv" | 2 + "res/lemmae/nomina/vic\304\223nsimus.csv" | 2 + "res/lemmae/nomina/vic\304\223nsumus.csv" | 2 + "res/lemmae/nomina/vic\304\223simus.csv" | 2 + "res/lemmae/nomina/vig\304\223nsimus.csv" | 2 + "res/lemmae/nomina/vig\304\223simus.csv" | 2 + res/lemmae/nomina/vir.csv | 2 + "res/lemmae/nomina/volupt\304\201s.csv" | 2 + "res/lemmae/nomina/\304\200d\304\201m.csv" | 2 + "res/lemmae/nomina/\305\253ndecimus.csv" | 2 + "res/lemmae/nomina/\305\253nica.csv" | 2 + res/lemmae/numeramina/C.csv | 2 + res/lemmae/numeramina/CC.csv | 2 + res/lemmae/numeramina/CCC.csv | 2 + res/lemmae/numeramina/CD.csv | 2 + res/lemmae/numeramina/CM.csv | 2 + res/lemmae/numeramina/D.csv | 2 + res/lemmae/numeramina/DC.csv | 2 + res/lemmae/numeramina/DCC.csv | 2 + res/lemmae/numeramina/DCCC.csv | 2 + res/lemmae/numeramina/I.csv | 2 + res/lemmae/numeramina/II.csv | 2 + res/lemmae/numeramina/III.csv | 2 + res/lemmae/numeramina/IV.csv | 2 + res/lemmae/numeramina/IX.csv | 2 + res/lemmae/numeramina/L.csv | 2 + res/lemmae/numeramina/LIX.csv | 2 + res/lemmae/numeramina/LVIII.csv | 2 + res/lemmae/numeramina/LX.csv | 2 + res/lemmae/numeramina/LXVIII.csv | 2 + res/lemmae/numeramina/LXX.csv | 2 + res/lemmae/numeramina/LXXIX.csv | 2 + res/lemmae/numeramina/LXXVIII.csv | 2 + res/lemmae/numeramina/LXXX.csv | 2 + res/lemmae/numeramina/LXXXIX.csv | 2 + res/lemmae/numeramina/LXXXVIII.csv | 2 + res/lemmae/numeramina/M.csv | 2 + res/lemmae/numeramina/N.csv | 2 + res/lemmae/numeramina/V.csv | 2 + res/lemmae/numeramina/VI.csv | 2 + res/lemmae/numeramina/VII.csv | 2 + res/lemmae/numeramina/VIII.csv | 2 + res/lemmae/numeramina/X.csv | 2 + res/lemmae/numeramina/XC.csv | 2 + res/lemmae/numeramina/XCIX.csv | 2 + res/lemmae/numeramina/XCVIII.csv | 2 + res/lemmae/numeramina/XI.csv | 2 + res/lemmae/numeramina/XII.csv | 2 + res/lemmae/numeramina/XIII.csv | 2 + res/lemmae/numeramina/XIV.csv | 2 + res/lemmae/numeramina/XIX.csv | 2 + res/lemmae/numeramina/XL.csv | 2 + res/lemmae/numeramina/XLIX.csv | 2 + res/lemmae/numeramina/XLVIII.csv | 2 + res/lemmae/numeramina/XV.csv | 2 + res/lemmae/numeramina/XVI.csv | 2 + res/lemmae/numeramina/XVII.csv | 2 + res/lemmae/numeramina/XVIII.csv | 2 + res/lemmae/numeramina/XX.csv | 2 + res/lemmae/numeramina/XXIX.csv | 2 + res/lemmae/numeramina/XXVIII.csv | 2 + res/lemmae/numeramina/XXX.csv | 2 + res/lemmae/numeramina/XXXIV.csv | 2 + res/lemmae/numeramina/XXXVIII.csv | 2 + res/lemmae/numeramina/|M|.csv | 2 + res/lemmae/verba/abante.csv | 2 + res/lemmae/verba/absque.csv | 3 + res/lemmae/verba/abusque.csv | 2 + res/lemmae/verba/ad.csv | 2 + res/lemmae/verba/ante.csv | 2 + res/lemmae/verba/apud.csv | 2 + res/lemmae/verba/cata.csv | 2 + res/lemmae/verba/circiter.csv | 2 + res/lemmae/verba/circum.csv | 2 + res/lemmae/verba/cis.csv | 2 + res/lemmae/verba/clam.csv | 2 + res/lemmae/verba/cum.csv | 2 + "res/lemmae/verba/c\305\215ram.csv" | 2 + "res/lemmae/verba/d\304\223.csv" | 2 + res/lemmae/verba/ecce.csv | 2 + "res/lemmae/verba/erg\304\201.csv" | 2 + "res/lemmae/verba/erg\305\215.csv" | 2 + res/lemmae/verba/et.csv | 2 + "res/lemmae/verba/extr\304\201.csv" | 2 + res/lemmae/verba/in.csv | 2 + res/lemmae/verba/inter.csv | 2 + "res/lemmae/verba/intr\304\201.csv" | 2 + "res/lemmae/verba/i\305\253xt\304\201.csv" | 2 + res/lemmae/verba/ly.csv | 2 + res/lemmae/verba/ob.csv | 2 + res/lemmae/verba/palam.csv | 2 + res/lemmae/verba/penes.csv | 2 + res/lemmae/verba/per.csv | 2 + res/lemmae/verba/post.csv | 2 + res/lemmae/verba/prae.csv | 2 + res/lemmae/verba/prope.csv | 2 + res/lemmae/verba/propter.csv | 2 + "res/lemmae/verba/pr\305\215.csv" | 2 + "res/lemmae/verba/p\305\215ne.csv" | 2 + res/lemmae/verba/quia.csv | 2 + res/lemmae/verba/secundum.csv | 2 + res/lemmae/verba/sed.csv | 2 + res/lemmae/verba/sine.csv | 2 + res/lemmae/verba/sub.csv | 2 + res/lemmae/verba/subter.csv | 2 + res/lemmae/verba/super.csv | 2 + "res/lemmae/verba/supr\304\201.csv" | 2 + res/lemmae/verba/tenus.csv | 2 + "res/lemmae/verba/tr\304\201ns.csv" | 2 + "res/lemmae/verba/ultr\304\201.csv" | 2 + res/lemmae/verba/versus.csv | 2 + res/lemmae/verba/vice.csv | 2 + "res/lemmae/verba/\304\201.csv" | 2 + "res/lemmae/verba/\304\223.csv" | 2 + "res/lemmae/verba/\304\253nfr\304\201.csv" | 2 + "res/lemmae/verba/\305\215.csv" | 2 + res/picta/favicon.png | Bin 0 -> 177167 bytes res/picta/spqr.png | Bin 0 -> 200018 bytes res/picta/uk.png | Bin 0 -> 15677 bytes res/scapales/actus/aiere.csv | 19 + res/scapales/actus/coepisse.csv | 3 + res/scapales/actus/dare.csv | 52 + res/scapales/actus/esse.csv | 61 + res/scapales/actus/facere.csv | 37 + "res/scapales/actus/fier\304\253.csv" | 37 + "res/scapales/actus/inqui\304\253.csv" | 18 + res/scapales/actus/meminisse.csv | 3 + "res/scapales/actus/m\304\201lle.csv" | 5 + "res/scapales/actus/n\305\215lle.csv" | 5 + res/scapales/actus/velle.csv | 10 + .../scapales/actus/\304\253nfier\304\253.csv" | 8 + "res/scapales/actus/\305\215disse.csv" | 2 + res/scapales/adiectiva/aliud.csv | 2 + "res/scapales/adiectiva/amb\305\215.csv" | 15 + .../adiectiva/fr\305\253g\304\253.csv" | 4 + res/scapales/adiectiva/meum.csv | 2 + res/scapales/adiectiva/multum.csv | 18 + "res/scapales/adiectiva/m\304\253lle.csv" | 8 + "res/scapales/adiectiva/n\304\223quam.csv" | 4 + res/scapales/adiectiva/satis.csv | 3 + "res/scapales/nomina/Ath\305\215s.csv" | 8 + "res/scapales/nomina/I\304\223s\305\253s.csv" | 8 + res/scapales/nomina/dare.csv | 2 + res/scapales/nomina/dea.csv | 4 + res/scapales/nomina/domus.csv | 5 + "res/scapales/nomina/i\305\253gerum.csv" | 4 + res/scapales/nomina/lexis.csv | 4 + "res/scapales/nomina/vic\304\223s.csv" | 9 + "res/scapales/nomina/v\304\253s.csv" | 11 + "res/scapales/nomina/\304\253re.csv" | 8 + res/scapales/pronomina/ego.csv | 11 + res/scapales/pronomina/hoc.csv | 33 + res/scapales/pronomina/id.csv | 33 + res/scapales/pronomina/illud.csv | 33 + res/scapales/pronomina/ipsum.csv | 6 + "res/scapales/pronomina/s\304\223.csv" | 5 + "res/scapales/pronomina/t\305\253.csv" | 11 + res/tabula/actus/primus.csv | 106 + res/tabula/actus/quartus.csv | 106 + res/tabula/actus/secundus.csv | 106 + res/tabula/actus/tertius.csv | 106 + res/tabula/actus/tertiusVarius.csv | 106 + .../incomparabilia/autPrimusAutSecundus.csv | 37 + .../adiectiva/incomparabilia/pronominalis.csv | 33 + .../adiectiva/incomparabilia/tertius.csv | 27 + .../positivusAutPrimusAutSecundus.csv | 127 + res/tabula/adiectiva/postiivusTertius.csv | 79 + res/tabula/nomina/facta/prima.csv | 8 + res/tabula/nomina/facta/quarta.csv | 8 + res/tabula/nomina/facta/secunda.csv | 8 + res/tabula/nomina/facta/tertia.csv | 8 + res/tabula/nomina/facta/tertiaVaria.csv | 8 + res/tabula/nomina/prima.csv | 15 + res/tabula/nomina/quartaVaria.csv | 15 + res/tabula/nomina/quartus.csv | 15 + res/tabula/nomina/quinta.csv | 15 + res/tabula/nomina/secundaMasculina.csv | 15 + res/tabula/nomina/secundaNeutra.csv | 15 + res/tabula/nomina/tertiaAnimata.csv | 15 + res/tabula/nomina/tertiaNeutra.csv | 15 + res/vices/actus/tertia/cumImperativoBrevi.csv | 2 + .../nominativusDirectus.csv | 3 + .../pronominalis/nominativusDirectus.csv | 3 + .../tertia/cumAblativoVario.csv | 3 + .../tertia/cumGenitivoAblativoque.csv | 4 + .../tertia/cumGenitivoVario.csv | 3 + .../tertia/nominativusUnigener.csv | 8 + .../nominativusUnigenerCumAblativoVario.csv | 10 + ...inativusUnigenerCumGenitivoAblativoque.csv | 11 + .../nominativusUnigenerCumGenitivoVario.csv | 10 + res/vices/adiectiva/nominativusUnigener.csv | 8 + .../positivaTertia/cumAblativoVario.csv | 3 + .../positivaTertia/cumGenitivoAblativoque.csv | 4 + .../positivaTertia/cumGenitivoVario.csv | 3 + .../positivaTertia/cumTruncoVario.csv | 8 + .../nominativusUnigenerCumAblativoVario.csv | 10 + ...inativusUnigenerCumGenitivoAblativoque.csv | 11 + .../nominativusUnigenerCumGenitivoVario.csv | 10 + .../nominativusUnigenerCumTruncoVario.csv | 14 + .../secundaMasculina/nominativusDirectus.csv | 3 + res/vices/nomina/tertia/cumAblativoVario.csv | 3 + .../nomina/tertia/cumGenitivoAblativoque.csv | 4 + res/vices/nomina/tertia/cumGenitivoVario.csv | 3 + .../nomina/tertiaNeutra/cumTruncoVario.csv | 8 + src/anomala/actus.ts | 824 ++ src/anomala/adiectiva.ts | 192 + src/anomala/anomala.ts | 48 + src/anomala/nomina.ts | 308 + src/anomala/pronomina.ts | 181 + src/extensions/array.ts | 50 + src/extensions/string.ts | 52 + src/facies/404.vue | 44 + src/facies/app.vue | 244 + src/facies/calculare.vue | 118 + src/facies/inflectere.vue | 213 + src/facies/loqui.vue | 70 + src/facies/numerare.vue | 70 + src/facies/quaerere.vue | 154 + src/facies/specere.vue | 72 + src/lectores/lector.ts | 64 + src/lectores/verbalis.ts | 43 + src/lectores/verbi.ts | 29 + src/miscella/cocutor.ts | 59 + src/miscella/dictionarium.ts | 309 + src/miscella/enumerationes.ts | 155 + src/miscella/ignavum.ts | 12 + src/miscella/locutor.ts | 120 + src/miscella/numeral.ts | 84 + src/miscella/nuntius.ts | 251 + src/miscella/versiones.ts | 146 + src/praebeunda/agenda.ts | 402 + src/praebeunda/interfecta.ts | 8 + src/praebeunda/structor.ts | 22 + src/praebeunda/verba.ts | 531 + src/putatores/actus.ts | 199 + src/putatores/adiectivi.ts | 180 + src/putatores/incomparabilis.ts | 131 + src/putatores/nominis.ts | 136 + src/putatores/nominisFacti.ts | 51 + src/putatores/putaturum.ts | 10 + src/scriptura/gustularium.ts | 21 + src/scriptura/nuntiator.ts | 20 + src/scriptura/referre.ts | 23 + src/scriptura/transducere.ts | 19 + src/tabulae/adverbii.ts | 40 + src/tabulae/bifissa.ts | 37 + src/tabulae/collata.ts | 33 + src/tabulae/coniuncta.ts | 52 + src/tabulae/defectae/defecta.ts | 32 + src/tabulae/defectae/deponens.ts | 124 + src/tabulae/defectae/impersonalis.ts | 148 + src/tabulae/defectae/numeralis/adiectivi.ts | 41 + src/tabulae/defectae/numeralis/nominis.ts | 35 + src/tabulae/defectae/perfecta.ts | 72 + src/tabulae/defectae/prona.ts | 39 + src/tabulae/fissa.ts | 33 + src/tabulae/inflexibilis.ts | 26 + src/tabulae/numeraminis.ts | 53 + src/tabulae/recta.ts | 42 + src/tabulae/rescriptae/circumfixa.ts | 22 + src/tabulae/rescriptae/praefixa.ts | 18 + src/tabulae/rescriptae/rescripta.ts | 30 + src/tabulae/rescriptae/suffixa.ts | 18 + src/tabulae/scapalis.ts | 30 + src/tabulae/tabula.ts | 20 + src/tabulae/vicaria.ts | 55 + tsconfig.app.json | 14 + tsconfig.debug.json | 6 + tsconfig.json | 55 + tsconfig.node.json | 19 + tsconfig.release.json | 5 + tsconfig.vitest.json | 11 + vite.config.ts | 20 + vitest.config.ts | 14 + 463 files changed, 18638 insertions(+) create mode 100644 .eslintrc.cjs create mode 100644 .gitignore create mode 100644 .prettierrc.json create mode 100644 README.md create mode 100644 cypress.config.ts create mode 100644 env.d.ts create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 "res/lemmae/actus/adip\304\253sc\304\253.csv" create mode 100644 "res/lemmae/actus/am\304\201re.csv" create mode 100644 "res/lemmae/actus/c\304\223ns\304\223re.csv" create mode 100644 "res/lemmae/actus/c\305\215nsect\304\201r\304\253.csv" create mode 100644 "res/lemmae/actus/d\304\223l\304\223re.csv" create mode 100644 res/lemmae/actus/incidere.csv create mode 100644 "res/lemmae/actus/plac\304\223re.csv" create mode 100644 res/lemmae/actus/quaerere.csv create mode 100644 "res/lemmae/adiectiva/Lat\304\253num.csv" create mode 100644 res/lemmae/adiectiva/bonum.csv create mode 100644 res/lemmae/adiectiva/centum.csv create mode 100644 res/lemmae/adiectiva/decem.csv create mode 100644 res/lemmae/adiectiva/duodecim.csv create mode 100644 "res/lemmae/adiectiva/duod\304\223n\305\215n\304\201gint\304\201.csv" create mode 100644 "res/lemmae/adiectiva/duod\304\223oct\305\215gint\304\201.csv" create mode 100644 "res/lemmae/adiectiva/duod\304\223quadr\304\201gint\304\201.csv" create mode 100644 "res/lemmae/adiectiva/duod\304\223qu\304\253nqu\304\201gint\304\201.csv" create mode 100644 "res/lemmae/adiectiva/duod\304\223septu\304\201gint\304\201.csv" create mode 100644 "res/lemmae/adiectiva/duod\304\223sex\304\201gint\304\201.csv" create mode 100644 "res/lemmae/adiectiva/duod\304\223tr\304\253gint\304\201.csv" create mode 100644 "res/lemmae/adiectiva/duod\304\223v\304\253gint\304\253.csv" create mode 100644 res/lemmae/adiectiva/incomparabilia/alterum.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/centuplex.csv create mode 100644 "res/lemmae/adiectiva/incomparabilia/cent\305\253plum.csv" create mode 100644 res/lemmae/adiectiva/incomparabilia/decemplex.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/decimplex.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/decuplex.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/ducenta.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/duodecemplex.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/duodecemplum.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/duodecimplex.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/duodecimplum.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/duodecuplex.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/duodecuplum.csv create mode 100644 "res/lemmae/adiectiva/incomparabilia/duod\304\223centum.csv" create mode 100644 res/lemmae/adiectiva/incomparabilia/duplex.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/meum.csv create mode 100644 "res/lemmae/adiectiva/incomparabilia/milli\305\215.csv" create mode 100644 res/lemmae/adiectiva/incomparabilia/neutrum.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/noncuplex.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/nostrum.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/novemcuplex.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/novemplex.csv create mode 100644 "res/lemmae/adiectiva/incomparabilia/n\305\215ngenta.csv" create mode 100644 "res/lemmae/adiectiva/incomparabilia/n\305\215nuplex.csv" create mode 100644 "res/lemmae/adiectiva/incomparabilia/n\305\253llum.csv" create mode 100644 res/lemmae/adiectiva/incomparabilia/octingenta.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/octuplex.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/quadruplex.csv create mode 100644 "res/lemmae/adiectiva/incomparabilia/qu\304\253ngenta.csv" create mode 100644 "res/lemmae/adiectiva/incomparabilia/qu\304\253nquiplex.csv" create mode 100644 "res/lemmae/adiectiva/incomparabilia/qu\304\253ntuplex.csv" create mode 100644 res/lemmae/adiectiva/incomparabilia/seplex.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/septemplex.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/septimplex.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/septingenta.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/sescenta.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/sexcenta.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/sextuplex.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/sexuplex.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/simplum.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/suum.csv create mode 100644 "res/lemmae/adiectiva/incomparabilia/s\305\215lum.csv" create mode 100644 res/lemmae/adiectiva/incomparabilia/terdecuplex.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/ternum.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/trecenta.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/triplex.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/tuum.csv create mode 100644 "res/lemmae/adiectiva/incomparabilia/t\305\215tum.csv" create mode 100644 res/lemmae/adiectiva/incomparabilia/ultrum.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/undecemplex.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/undecimplex.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/undecuplex.csv create mode 100644 res/lemmae/adiectiva/incomparabilia/vestrum.csv create mode 100644 "res/lemmae/adiectiva/incomparabilia/\305\253llum.csv" create mode 100644 "res/lemmae/adiectiva/incomparabilia/\305\253num.csv" create mode 100644 res/lemmae/adiectiva/magnum.csv create mode 100644 res/lemmae/adiectiva/novem.csv create mode 100644 "res/lemmae/adiectiva/n\305\215n\304\201gint\304\201.csv" create mode 100644 "res/lemmae/adiectiva/oct\305\215.csv" create mode 100644 "res/lemmae/adiectiva/oct\305\215gint\304\201.csv" create mode 100644 res/lemmae/adiectiva/quadrigenta.csv create mode 100644 "res/lemmae/adiectiva/quadr\304\201gint\304\201.csv" create mode 100644 res/lemmae/adiectiva/quattuor.csv create mode 100644 res/lemmae/adiectiva/quattuordecim.csv create mode 100644 "res/lemmae/adiectiva/qu\304\253ndecim.csv" create mode 100644 "res/lemmae/adiectiva/qu\304\253nque.csv" create mode 100644 "res/lemmae/adiectiva/qu\304\253nqu\304\201gint\304\201.csv" create mode 100644 res/lemmae/adiectiva/septem.csv create mode 100644 res/lemmae/adiectiva/septemdecem.csv create mode 100644 "res/lemmae/adiectiva/septu\304\201gint\304\201.csv" create mode 100644 res/lemmae/adiectiva/sex.csv create mode 100644 "res/lemmae/adiectiva/sex\304\201gint\304\201.csv" create mode 100644 res/lemmae/adiectiva/simplex.csv create mode 100644 "res/lemmae/adiectiva/s\304\223decim.csv" create mode 100644 res/lemmae/adiectiva/trecentum.csv create mode 100644 res/lemmae/adiectiva/tredecim.csv create mode 100644 "res/lemmae/adiectiva/tr\304\253gint\304\201.csv" create mode 100644 "res/lemmae/adiectiva/v\304\253gint\304\253.csv" create mode 100644 "res/lemmae/adiectiva/\305\253ndecim.csv" create mode 100644 "res/lemmae/adiectiva/\305\253nd\304\223centum.csv" create mode 100644 "res/lemmae/adiectiva/\305\253nd\304\223n\305\215n\304\201gint\304\201.csv" create mode 100644 "res/lemmae/adiectiva/\305\253nd\304\223oct\305\215gint\304\201.csv" create mode 100644 "res/lemmae/adiectiva/\305\253nd\304\223quadr\304\201gint\304\201.csv" create mode 100644 "res/lemmae/adiectiva/\305\253nd\304\223qu\304\253nqu\304\201gint\304\201.csv" create mode 100644 "res/lemmae/adiectiva/\305\253nd\304\223sex\304\201gint\304\201.csv" create mode 100644 "res/lemmae/adiectiva/\305\253nd\304\223tr\304\253gint\304\201.csv" create mode 100644 "res/lemmae/adiectiva/\305\253nd\304\223v\304\253gint\304\253.csv" create mode 100644 "res/lemmae/adiectiva/\305\253nseptu\304\201gint\304\201.csv" create mode 100644 res/lemmae/adverbia/bis.csv create mode 100644 "res/lemmae/adverbia/centi\304\223ns.csv" create mode 100644 "res/lemmae/adverbia/centi\304\223s.csv" create mode 100644 "res/lemmae/adverbia/c\304\223terum.csv" create mode 100644 "res/lemmae/adverbia/deci\304\223ns.csv" create mode 100644 "res/lemmae/adverbia/deci\304\223s.csv" create mode 100644 "res/lemmae/adverbia/duodeci\304\223ns.csv" create mode 100644 "res/lemmae/adverbia/duodeci\304\223s.csv" create mode 100644 "res/lemmae/adverbia/duod\304\223tr\304\253gi\304\223ns.csv" create mode 100644 "res/lemmae/adverbia/m\304\253lli\304\223ns.csv" create mode 100644 "res/lemmae/adverbia/m\304\253lli\304\223s.csv" create mode 100644 "res/lemmae/adverbia/n\305\215n.csv" create mode 100644 "res/lemmae/adverbia/n\305\215ni\304\223ns.csv" create mode 100644 "res/lemmae/adverbia/n\305\215ni\304\223s.csv" create mode 100644 "res/lemmae/adverbia/n\305\215nnumquam.csv" create mode 100644 "res/lemmae/adverbia/n\305\215n\304\201gi\304\223ns.csv" create mode 100644 "res/lemmae/adverbia/octi\304\223ns.csv" create mode 100644 "res/lemmae/adverbia/oct\305\215gi\304\223ns.csv" create mode 100644 "res/lemmae/adverbia/ovi\304\223ns.csv" create mode 100644 "res/lemmae/adverbia/quadr\304\201gi\304\223ns.csv" create mode 100644 "res/lemmae/adverbia/qu\304\253nqui\304\223ns.csv" create mode 100644 "res/lemmae/adverbia/septi\304\223ns.csv" create mode 100644 "res/lemmae/adverbia/sexi\304\223ns.csv" create mode 100644 "res/lemmae/adverbia/sex\304\201gi\304\223ns.csv" create mode 100644 "res/lemmae/adverbia/terdeci\304\223ns.csv" create mode 100644 "res/lemmae/adverbia/terdeci\304\223s.csv" create mode 100644 "res/lemmae/adverbia/trecenti\304\223ns.csv" create mode 100644 "res/lemmae/adverbia/trecenti\304\223s.csv" create mode 100644 "res/lemmae/adverbia/tredeci\304\223ns.csv" create mode 100644 "res/lemmae/adverbia/tredeci\304\223s.csv" create mode 100644 "res/lemmae/adverbia/tr\304\253ci\304\223s.csv" create mode 100644 "res/lemmae/adverbia/v\304\253ci\304\223ns.csv" create mode 100644 "res/lemmae/adverbia/\305\253ndeci\304\223ns.csv" create mode 100644 "res/lemmae/adverbia/\305\253ndeci\304\223s.csv" create mode 100644 "res/lemmae/adverbia/\305\253nd\304\223quadr\304\201gi\304\223ns.csv" create mode 100644 "res/lemmae/nomina/Carth\304\201g\305\215.csv" create mode 100644 res/lemmae/nomina/adeptor.csv create mode 100644 "res/lemmae/nomina/adeptr\304\253x.csv" create mode 100644 "res/lemmae/nomina/am\304\201tor.csv" create mode 100644 "res/lemmae/nomina/am\304\201tr\304\253x.csv" create mode 100644 res/lemmae/nomina/bes.csv create mode 100644 "res/lemmae/nomina/cent\304\223simus.csv" create mode 100644 "res/lemmae/nomina/c\304\223nsor.csv" create mode 100644 "res/lemmae/nomina/c\304\223nstr\304\253x.csv" create mode 100644 "res/lemmae/nomina/c\305\215nsect\304\201tor.csv" create mode 100644 "res/lemmae/nomina/c\305\215nsect\304\201tr\304\253x.csv" create mode 100644 res/lemmae/nomina/decima.csv create mode 100644 res/lemmae/nomina/decimus.csv create mode 100644 res/lemmae/nomina/decunx.csv create mode 100644 res/lemmae/nomina/deunx.csv create mode 100644 res/lemmae/nomina/dolor.csv create mode 100644 "res/lemmae/nomina/d\304\223l\304\223tor.csv" create mode 100644 "res/lemmae/nomina/d\304\223l\304\223tr\304\253x.csv" create mode 100644 "res/lemmae/nomina/d\304\253midius.csv" create mode 100644 "res/lemmae/nomina/d\305\215dr\304\201ns.csv" create mode 100644 res/lemmae/nomina/labor.csv create mode 100644 res/lemmae/nomina/lingua.csv create mode 100644 res/lemmae/nomina/nihil.csv create mode 100644 "res/lemmae/nomina/n\305\215nus.csv" create mode 100644 "res/lemmae/nomina/oct\304\201ns.csv" create mode 100644 res/lemmae/nomina/placitor.csv create mode 100644 "res/lemmae/nomina/placitr\304\253x.csv" create mode 100644 res/lemmae/nomina/puer.csv create mode 100644 "res/lemmae/nomina/quadr\304\201ns.csv" create mode 100644 "res/lemmae/nomina/quaes\304\253tor.csv" create mode 100644 "res/lemmae/nomina/quaes\304\253tr\304\253x.csv" create mode 100644 "res/lemmae/nomina/qu\304\253nt\304\201ns.csv" create mode 100644 res/lemmae/nomina/septunx.csv create mode 100644 "res/lemmae/nomina/sept\304\201ns.csv" create mode 100644 "res/lemmae/nomina/sext\304\201ns.csv" create mode 100644 "res/lemmae/nomina/s\304\223mis.csv" create mode 100644 res/lemmae/nomina/tempus.csv create mode 100644 "res/lemmae/nomina/tri\304\223ns.csv" create mode 100644 "res/lemmae/nomina/vic\304\223nsimus.csv" create mode 100644 "res/lemmae/nomina/vic\304\223nsumus.csv" create mode 100644 "res/lemmae/nomina/vic\304\223simus.csv" create mode 100644 "res/lemmae/nomina/vig\304\223nsimus.csv" create mode 100644 "res/lemmae/nomina/vig\304\223simus.csv" create mode 100644 res/lemmae/nomina/vir.csv create mode 100644 "res/lemmae/nomina/volupt\304\201s.csv" create mode 100644 "res/lemmae/nomina/\304\200d\304\201m.csv" create mode 100644 "res/lemmae/nomina/\305\253ndecimus.csv" create mode 100644 "res/lemmae/nomina/\305\253nica.csv" create mode 100644 res/lemmae/numeramina/C.csv create mode 100644 res/lemmae/numeramina/CC.csv create mode 100644 res/lemmae/numeramina/CCC.csv create mode 100644 res/lemmae/numeramina/CD.csv create mode 100644 res/lemmae/numeramina/CM.csv create mode 100644 res/lemmae/numeramina/D.csv create mode 100644 res/lemmae/numeramina/DC.csv create mode 100644 res/lemmae/numeramina/DCC.csv create mode 100644 res/lemmae/numeramina/DCCC.csv create mode 100644 res/lemmae/numeramina/I.csv create mode 100644 res/lemmae/numeramina/II.csv create mode 100644 res/lemmae/numeramina/III.csv create mode 100644 res/lemmae/numeramina/IV.csv create mode 100644 res/lemmae/numeramina/IX.csv create mode 100644 res/lemmae/numeramina/L.csv create mode 100644 res/lemmae/numeramina/LIX.csv create mode 100644 res/lemmae/numeramina/LVIII.csv create mode 100644 res/lemmae/numeramina/LX.csv create mode 100644 res/lemmae/numeramina/LXVIII.csv create mode 100644 res/lemmae/numeramina/LXX.csv create mode 100644 res/lemmae/numeramina/LXXIX.csv create mode 100644 res/lemmae/numeramina/LXXVIII.csv create mode 100644 res/lemmae/numeramina/LXXX.csv create mode 100644 res/lemmae/numeramina/LXXXIX.csv create mode 100644 res/lemmae/numeramina/LXXXVIII.csv create mode 100644 res/lemmae/numeramina/M.csv create mode 100644 res/lemmae/numeramina/N.csv create mode 100644 res/lemmae/numeramina/V.csv create mode 100644 res/lemmae/numeramina/VI.csv create mode 100644 res/lemmae/numeramina/VII.csv create mode 100644 res/lemmae/numeramina/VIII.csv create mode 100644 res/lemmae/numeramina/X.csv create mode 100644 res/lemmae/numeramina/XC.csv create mode 100644 res/lemmae/numeramina/XCIX.csv create mode 100644 res/lemmae/numeramina/XCVIII.csv create mode 100644 res/lemmae/numeramina/XI.csv create mode 100644 res/lemmae/numeramina/XII.csv create mode 100644 res/lemmae/numeramina/XIII.csv create mode 100644 res/lemmae/numeramina/XIV.csv create mode 100644 res/lemmae/numeramina/XIX.csv create mode 100644 res/lemmae/numeramina/XL.csv create mode 100644 res/lemmae/numeramina/XLIX.csv create mode 100644 res/lemmae/numeramina/XLVIII.csv create mode 100644 res/lemmae/numeramina/XV.csv create mode 100644 res/lemmae/numeramina/XVI.csv create mode 100644 res/lemmae/numeramina/XVII.csv create mode 100644 res/lemmae/numeramina/XVIII.csv create mode 100644 res/lemmae/numeramina/XX.csv create mode 100644 res/lemmae/numeramina/XXIX.csv create mode 100644 res/lemmae/numeramina/XXVIII.csv create mode 100644 res/lemmae/numeramina/XXX.csv create mode 100644 res/lemmae/numeramina/XXXIV.csv create mode 100644 res/lemmae/numeramina/XXXVIII.csv create mode 100644 res/lemmae/numeramina/|M|.csv create mode 100644 res/lemmae/verba/abante.csv create mode 100644 res/lemmae/verba/absque.csv create mode 100644 res/lemmae/verba/abusque.csv create mode 100644 res/lemmae/verba/ad.csv create mode 100644 res/lemmae/verba/ante.csv create mode 100644 res/lemmae/verba/apud.csv create mode 100644 res/lemmae/verba/cata.csv create mode 100644 res/lemmae/verba/circiter.csv create mode 100644 res/lemmae/verba/circum.csv create mode 100644 res/lemmae/verba/cis.csv create mode 100644 res/lemmae/verba/clam.csv create mode 100644 res/lemmae/verba/cum.csv create mode 100644 "res/lemmae/verba/c\305\215ram.csv" create mode 100644 "res/lemmae/verba/d\304\223.csv" create mode 100644 res/lemmae/verba/ecce.csv create mode 100644 "res/lemmae/verba/erg\304\201.csv" create mode 100644 "res/lemmae/verba/erg\305\215.csv" create mode 100644 res/lemmae/verba/et.csv create mode 100644 "res/lemmae/verba/extr\304\201.csv" create mode 100644 res/lemmae/verba/in.csv create mode 100644 res/lemmae/verba/inter.csv create mode 100644 "res/lemmae/verba/intr\304\201.csv" create mode 100644 "res/lemmae/verba/i\305\253xt\304\201.csv" create mode 100644 res/lemmae/verba/ly.csv create mode 100644 res/lemmae/verba/ob.csv create mode 100644 res/lemmae/verba/palam.csv create mode 100644 res/lemmae/verba/penes.csv create mode 100644 res/lemmae/verba/per.csv create mode 100644 res/lemmae/verba/post.csv create mode 100644 res/lemmae/verba/prae.csv create mode 100644 res/lemmae/verba/prope.csv create mode 100644 res/lemmae/verba/propter.csv create mode 100644 "res/lemmae/verba/pr\305\215.csv" create mode 100644 "res/lemmae/verba/p\305\215ne.csv" create mode 100644 res/lemmae/verba/quia.csv create mode 100644 res/lemmae/verba/secundum.csv create mode 100644 res/lemmae/verba/sed.csv create mode 100644 res/lemmae/verba/sine.csv create mode 100644 res/lemmae/verba/sub.csv create mode 100644 res/lemmae/verba/subter.csv create mode 100644 res/lemmae/verba/super.csv create mode 100644 "res/lemmae/verba/supr\304\201.csv" create mode 100644 res/lemmae/verba/tenus.csv create mode 100644 "res/lemmae/verba/tr\304\201ns.csv" create mode 100644 "res/lemmae/verba/ultr\304\201.csv" create mode 100644 res/lemmae/verba/versus.csv create mode 100644 res/lemmae/verba/vice.csv create mode 100644 "res/lemmae/verba/\304\201.csv" create mode 100644 "res/lemmae/verba/\304\223.csv" create mode 100644 "res/lemmae/verba/\304\253nfr\304\201.csv" create mode 100644 "res/lemmae/verba/\305\215.csv" create mode 100644 res/picta/favicon.png create mode 100644 res/picta/spqr.png create mode 100644 res/picta/uk.png create mode 100644 res/scapales/actus/aiere.csv create mode 100644 res/scapales/actus/coepisse.csv create mode 100644 res/scapales/actus/dare.csv create mode 100644 res/scapales/actus/esse.csv create mode 100644 res/scapales/actus/facere.csv create mode 100644 "res/scapales/actus/fier\304\253.csv" create mode 100644 "res/scapales/actus/inqui\304\253.csv" create mode 100644 res/scapales/actus/meminisse.csv create mode 100644 "res/scapales/actus/m\304\201lle.csv" create mode 100644 "res/scapales/actus/n\305\215lle.csv" create mode 100644 res/scapales/actus/velle.csv create mode 100644 "res/scapales/actus/\304\253nfier\304\253.csv" create mode 100644 "res/scapales/actus/\305\215disse.csv" create mode 100644 res/scapales/adiectiva/aliud.csv create mode 100644 "res/scapales/adiectiva/amb\305\215.csv" create mode 100644 "res/scapales/adiectiva/fr\305\253g\304\253.csv" create mode 100644 res/scapales/adiectiva/meum.csv create mode 100644 res/scapales/adiectiva/multum.csv create mode 100644 "res/scapales/adiectiva/m\304\253lle.csv" create mode 100644 "res/scapales/adiectiva/n\304\223quam.csv" create mode 100644 res/scapales/adiectiva/satis.csv create mode 100644 "res/scapales/nomina/Ath\305\215s.csv" create mode 100644 "res/scapales/nomina/I\304\223s\305\253s.csv" create mode 100644 res/scapales/nomina/dare.csv create mode 100644 res/scapales/nomina/dea.csv create mode 100644 res/scapales/nomina/domus.csv create mode 100644 "res/scapales/nomina/i\305\253gerum.csv" create mode 100644 res/scapales/nomina/lexis.csv create mode 100644 "res/scapales/nomina/vic\304\223s.csv" create mode 100644 "res/scapales/nomina/v\304\253s.csv" create mode 100644 "res/scapales/nomina/\304\253re.csv" create mode 100644 res/scapales/pronomina/ego.csv create mode 100644 res/scapales/pronomina/hoc.csv create mode 100644 res/scapales/pronomina/id.csv create mode 100644 res/scapales/pronomina/illud.csv create mode 100644 res/scapales/pronomina/ipsum.csv create mode 100644 "res/scapales/pronomina/s\304\223.csv" create mode 100644 "res/scapales/pronomina/t\305\253.csv" create mode 100644 res/tabula/actus/primus.csv create mode 100644 res/tabula/actus/quartus.csv create mode 100644 res/tabula/actus/secundus.csv create mode 100644 res/tabula/actus/tertius.csv create mode 100644 res/tabula/actus/tertiusVarius.csv create mode 100644 res/tabula/adiectiva/incomparabilia/autPrimusAutSecundus.csv create mode 100644 res/tabula/adiectiva/incomparabilia/pronominalis.csv create mode 100644 res/tabula/adiectiva/incomparabilia/tertius.csv create mode 100644 res/tabula/adiectiva/positivusAutPrimusAutSecundus.csv create mode 100644 res/tabula/adiectiva/postiivusTertius.csv create mode 100644 res/tabula/nomina/facta/prima.csv create mode 100644 res/tabula/nomina/facta/quarta.csv create mode 100644 res/tabula/nomina/facta/secunda.csv create mode 100644 res/tabula/nomina/facta/tertia.csv create mode 100644 res/tabula/nomina/facta/tertiaVaria.csv create mode 100644 res/tabula/nomina/prima.csv create mode 100644 res/tabula/nomina/quartaVaria.csv create mode 100644 res/tabula/nomina/quartus.csv create mode 100644 res/tabula/nomina/quinta.csv create mode 100644 res/tabula/nomina/secundaMasculina.csv create mode 100644 res/tabula/nomina/secundaNeutra.csv create mode 100644 res/tabula/nomina/tertiaAnimata.csv create mode 100644 res/tabula/nomina/tertiaNeutra.csv create mode 100644 res/vices/actus/tertia/cumImperativoBrevi.csv create mode 100644 res/vices/adiectiva/incomparabilia/autPrimaAutSecunda/nominativusDirectus.csv create mode 100644 res/vices/adiectiva/incomparabilia/pronominalis/nominativusDirectus.csv create mode 100644 res/vices/adiectiva/incomparabilia/tertia/cumAblativoVario.csv create mode 100644 res/vices/adiectiva/incomparabilia/tertia/cumGenitivoAblativoque.csv create mode 100644 res/vices/adiectiva/incomparabilia/tertia/cumGenitivoVario.csv create mode 100644 res/vices/adiectiva/incomparabilia/tertia/nominativusUnigener.csv create mode 100644 res/vices/adiectiva/incomparabilia/tertia/nominativusUnigenerCumAblativoVario.csv create mode 100644 res/vices/adiectiva/incomparabilia/tertia/nominativusUnigenerCumGenitivoAblativoque.csv create mode 100644 res/vices/adiectiva/incomparabilia/tertia/nominativusUnigenerCumGenitivoVario.csv create mode 100644 res/vices/adiectiva/nominativusUnigener.csv create mode 100644 res/vices/adiectiva/positivaTertia/cumAblativoVario.csv create mode 100644 res/vices/adiectiva/positivaTertia/cumGenitivoAblativoque.csv create mode 100644 res/vices/adiectiva/positivaTertia/cumGenitivoVario.csv create mode 100644 res/vices/adiectiva/positivaTertia/cumTruncoVario.csv create mode 100644 res/vices/adiectiva/positivaTertia/nominativusUnigenerCumAblativoVario.csv create mode 100644 res/vices/adiectiva/positivaTertia/nominativusUnigenerCumGenitivoAblativoque.csv create mode 100644 res/vices/adiectiva/positivaTertia/nominativusUnigenerCumGenitivoVario.csv create mode 100644 res/vices/adiectiva/positivaTertia/nominativusUnigenerCumTruncoVario.csv create mode 100644 res/vices/nomina/secundaMasculina/nominativusDirectus.csv create mode 100644 res/vices/nomina/tertia/cumAblativoVario.csv create mode 100644 res/vices/nomina/tertia/cumGenitivoAblativoque.csv create mode 100644 res/vices/nomina/tertia/cumGenitivoVario.csv create mode 100644 res/vices/nomina/tertiaNeutra/cumTruncoVario.csv create mode 100644 src/anomala/actus.ts create mode 100644 src/anomala/adiectiva.ts create mode 100644 src/anomala/anomala.ts create mode 100644 src/anomala/nomina.ts create mode 100644 src/anomala/pronomina.ts create mode 100644 src/extensions/array.ts create mode 100644 src/extensions/string.ts create mode 100644 src/facies/404.vue create mode 100644 src/facies/app.vue create mode 100644 src/facies/calculare.vue create mode 100644 src/facies/inflectere.vue create mode 100644 src/facies/loqui.vue create mode 100644 src/facies/numerare.vue create mode 100644 src/facies/quaerere.vue create mode 100644 src/facies/specere.vue create mode 100644 src/lectores/lector.ts create mode 100644 src/lectores/verbalis.ts create mode 100644 src/lectores/verbi.ts create mode 100644 src/miscella/cocutor.ts create mode 100644 src/miscella/dictionarium.ts create mode 100644 src/miscella/enumerationes.ts create mode 100644 src/miscella/ignavum.ts create mode 100644 src/miscella/locutor.ts create mode 100644 src/miscella/numeral.ts create mode 100644 src/miscella/nuntius.ts create mode 100644 src/miscella/versiones.ts create mode 100644 src/praebeunda/agenda.ts create mode 100644 src/praebeunda/interfecta.ts create mode 100644 src/praebeunda/structor.ts create mode 100644 src/praebeunda/verba.ts create mode 100644 src/putatores/actus.ts create mode 100644 src/putatores/adiectivi.ts create mode 100644 src/putatores/incomparabilis.ts create mode 100644 src/putatores/nominis.ts create mode 100644 src/putatores/nominisFacti.ts create mode 100644 src/putatores/putaturum.ts create mode 100644 src/scriptura/gustularium.ts create mode 100644 src/scriptura/nuntiator.ts create mode 100644 src/scriptura/referre.ts create mode 100644 src/scriptura/transducere.ts create mode 100644 src/tabulae/adverbii.ts create mode 100644 src/tabulae/bifissa.ts create mode 100644 src/tabulae/collata.ts create mode 100644 src/tabulae/coniuncta.ts create mode 100644 src/tabulae/defectae/defecta.ts create mode 100644 src/tabulae/defectae/deponens.ts create mode 100644 src/tabulae/defectae/impersonalis.ts create mode 100644 src/tabulae/defectae/numeralis/adiectivi.ts create mode 100644 src/tabulae/defectae/numeralis/nominis.ts create mode 100644 src/tabulae/defectae/perfecta.ts create mode 100644 src/tabulae/defectae/prona.ts create mode 100644 src/tabulae/fissa.ts create mode 100644 src/tabulae/inflexibilis.ts create mode 100644 src/tabulae/numeraminis.ts create mode 100644 src/tabulae/recta.ts create mode 100644 src/tabulae/rescriptae/circumfixa.ts create mode 100644 src/tabulae/rescriptae/praefixa.ts create mode 100644 src/tabulae/rescriptae/rescripta.ts create mode 100644 src/tabulae/rescriptae/suffixa.ts create mode 100644 src/tabulae/scapalis.ts create mode 100644 src/tabulae/tabula.ts create mode 100644 src/tabulae/vicaria.ts create mode 100644 tsconfig.app.json create mode 100644 tsconfig.debug.json create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json create mode 100644 tsconfig.release.json create mode 100644 tsconfig.vitest.json create mode 100644 vite.config.ts create mode 100644 vitest.config.ts diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..6617ed2 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,26 @@ +/* eslint-env node */ +require('@rushstack/eslint-patch/modern-module-resolution') + +module.exports = { + root: true, + 'extends': [ + 'plugin:vue/vue3-essential', + 'eslint:recommended', + '@vue/eslint-config-typescript', + '@vue/eslint-config-prettier/skip-formatting' + ], + overrides: [ + { + files: [ + 'cypress/e2e/**/*.{cy,spec}.{js,ts,jsx,tsx}', + 'cypress/support/**/*.{js,ts,jsx,tsx}' + ], + 'extends': [ + 'plugin:cypress/recommended' + ] + } + ], + parserOptions: { + ecmaVersion: 'latest' + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d74b9e8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,30 @@ +# Logs +logs +*.log +npm-debug.log* + +node_modules +.DS_Store +dist +dist-ssr +coverage +*.local + +/cypress/videos/ +/cypress/screenshots/ + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +*.tsbuildinfo + +nuntia +wwwroot + diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..66e2335 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json.schemastore.org/prettierrc", + "semi": false, + "tabWidth": 2, + "singleQuote": true, + "printWidth": 100, + "trailingComma": "none" +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..e7656c5 --- /dev/null +++ b/README.md @@ -0,0 +1,61 @@ +# StructorVerborum + +This template should help get you started developing with Vue 3 in Vite. + +## Recommended IDE Setup + +[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur). + +## Type Support for `.vue` Imports in TS + +TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) to make the TypeScript language service aware of `.vue` types. + +## Customize configuration + +See [Vite Configuration Reference](https://vitejs.dev/config/). + +## Project Setup + +```sh +npm install +``` + +### Compile and Hot-Reload for Development + +```sh +npm run dev +``` + +### Type-Check, Compile and Minify for Production + +```sh +npm run build +``` + +### Run Unit Tests with [Vitest](https://vitest.dev/) + +```sh +npm run test:unit +``` + +### Run End-to-End Tests with [Cypress](https://www.cypress.io/) + +```sh +npm run test:e2e:dev +``` + +This runs the end-to-end tests against the Vite development server. +It is much faster than the production build. + +But it's still recommended to test the production build with `test:e2e` before deploying (e.g. in CI environments): + +```sh +npm run build +npm run test:e2e +``` + +### Lint with [ESLint](https://eslint.org/) + +```sh +npm run lint +``` diff --git a/cypress.config.ts b/cypress.config.ts new file mode 100644 index 0000000..0f66080 --- /dev/null +++ b/cypress.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'cypress' + +export default defineConfig({ + e2e: { + specPattern: 'cypress/e2e/**/*.{cy,spec}.{js,jsx,ts,tsx}', + baseUrl: 'http://localhost:4173' + } +}) diff --git a/env.d.ts b/env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/env.d.ts @@ -0,0 +1 @@ +/// diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..e3b40c4 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,9381 @@ +{ + "name": "structorverborum", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "structorverborum", + "version": "0.0.0", + "dependencies": { + "@neoncitylights/sets": "^1.1.0", + "@types/deep-equal": "^1.0.4", + "@types/file-fetch": "^1.6.6", + "@types/js-roman-numerals": "^1.1.3", + "comma-separated-values": "^3.6.4", + "list-files-in-dir": "^0.1.5", + "new-tab-opener": "^1.0.2", + "pinia": "^2.1.7", + "pleasejs": "^0.4.2", + "tslib": "^2.6.3", + "turbo-ts": "^7.3.1", + "vue": "^3.4.21", + "vuetify": "^3.6.9", + "winston": "^3.13.0", + "winston-daily-rotate-file": "^5.0.0" + }, + "devDependencies": { + "@eslint-types/prettier": "^5.1.3", + "@rushstack/eslint-patch": "^1.8.0", + "@tsconfig/node20": "^20.1.4", + "@types/jsdom": "^21.1.6", + "@types/node": "^20.12.5", + "@types/pleasejs": "^0.0.33", + "@vitejs/plugin-vue": "^5.0.4", + "@vitejs/plugin-vue-jsx": "^3.1.0", + "@vue/eslint-config-prettier": "^9.0.0", + "@vue/eslint-config-typescript": "^13.0.0", + "@vue/test-utils": "^2.4.5", + "@vue/tsconfig": "^0.5.1", + "@vueuse/core": "^10.11.0", + "codeql-agent": "^0.3.4", + "cypress": "^13.7.2", + "eslint": "^8.57.0", + "eslint-plugin-cypress": "^2.15.1", + "eslint-plugin-vue": "^9.23.0", + "jsdom": "^24.0.0", + "npm-run-all2": "^6.1.2", + "prettier": "^3.3.2", + "start-server-and-test": "^2.0.3", + "tsconfig-paths": "^4.2.0", + "typescript": "~5.4.0", + "typescript-cookie": "^1.0.6", + "vite": "^5.2.8", + "vite-plugin-vue-devtools": "^7.0.25", + "vitest": "^1.4.0", + "vue-tsc": "^2.0.11" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@antfu/utils": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.8.tgz", + "integrity": "sha512-rWQkqXRESdjXtc+7NRfK9lASQjpXJu1ayp7qi1d23zZorY+wBHVLHHoVcMsEnkqEBWTFqbztO7/QdJFzyEcLTg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", + "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", + "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helpers": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", + "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz", + "integrity": "sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz", + "integrity": "sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", + "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", + "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz", + "integrity": "sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", + "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", + "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", + "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.7.tgz", + "integrity": "sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-decorators": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.7.tgz", + "integrity": "sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.7.tgz", + "integrity": "sha512-iLD3UNkgx2n/HrjBesVbYX6j0yqn/sJktvbtKKgcaLIQ4bTTQ8obAypc1VpyHPD2y4Phh9zHOaAt8e/L14wCpw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-typescript": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", + "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cypress/request": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz", + "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "http-signature": "~1.3.6", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "6.10.4", + "safe-buffer": "^5.1.2", + "tough-cookie": "^4.1.3", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@cypress/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, + "dependencies": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + } + }, + "node_modules/@cypress/xvfb/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@dabh/diagnostics": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", + "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", + "dependencies": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, + "node_modules/@discordjs/builders": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.16.0.tgz", + "integrity": "sha512-9/NCiZrLivgRub2/kBc0Vm5pMBE5AUdYbdXsLu/yg9ANgvnaJ0bZKTY8yYnLbsEc/LYUP79lEIdC73qEYhWq7A==", + "deprecated": "no longer supported", + "dev": true, + "dependencies": { + "@sapphire/shapeshift": "^3.5.1", + "discord-api-types": "^0.36.2", + "fast-deep-equal": "^3.1.3", + "ts-mixer": "^6.0.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/@discordjs/collection": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.7.0.tgz", + "integrity": "sha512-R5i8Wb8kIcBAFEPLLf7LVBQKBDYUL+ekb23sOgpkpyGT+V4P7V83wTxcsqmX+PbqHt4cEHn053uMWfRqh/Z/nA==", + "deprecated": "no longer supported", + "dev": true, + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/@discordjs/rest": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-0.5.0.tgz", + "integrity": "sha512-S4E1YNz1UxgUfMPpMeqzPPkCfXE877zOsvKM5WEmwIhcpz1PQV7lzqlEOuz194UuwOJLLjQFBgQELnQfCX9UfA==", + "deprecated": "no longer supported", + "dev": true, + "dependencies": { + "@discordjs/collection": "^0.7.0", + "@sapphire/async-queue": "^1.3.1", + "@sapphire/snowflake": "^3.2.2", + "discord-api-types": "^0.33.3", + "tslib": "^2.4.0", + "undici": "^5.4.0" + }, + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/@discordjs/rest/node_modules/discord-api-types": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.33.5.tgz", + "integrity": "sha512-dvO5M52v7m7Dy96+XUnzXNsQ/0npsYpU6dL205kAtEDueswoz3aU3bh1UMoK4cQmcGtB1YRyLKqp+DXi05lzFg==", + "dev": true + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.1.tgz", + "integrity": "sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint-types/prettier": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/@eslint-types/prettier/-/prettier-5.1.3.tgz", + "integrity": "sha512-jJHwCAdqj+iw2ahrFrA9FSDrYJSAEShWS6s/X/6fmD8xpdaKUpFqG/ecTnUlO6Iyxhkt3lj79Nfu4MWUpo7k6Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", + "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "dev": true + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@neoncitylights/sets": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@neoncitylights/sets/-/sets-1.1.0.tgz", + "integrity": "sha512-Ou3bLvERC/sICRVrdFO63UrJPV081Nt5l36+gPLOgi1VHsuMG0IMZmGT9qFPsCV41V5qGuxIT+eNETM1Xynpbg==", + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/neoncitylights" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@one-ini/wasm": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz", + "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==", + "dev": true + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.25", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz", + "integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==", + "dev": true + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.3.tgz", + "integrity": "sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==", + "dev": true + }, + "node_modules/@sapphire/async-queue": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.5.2.tgz", + "integrity": "sha512-7X7FFAA4DngXUl95+hYbUF19bp1LGiffjJtu7ygrZrbdCSsdDDBaSjB7Akw0ZbOu6k0xpXyljnJ6/RZUvLfRdg==", + "dev": true, + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@sapphire/shapeshift": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-3.9.7.tgz", + "integrity": "sha512-4It2mxPSr4OGn4HSQWGmhFMsNFGfFVhWeRPCRwbH972Ek2pzfGRZtb0pJ4Ze6oIzcyh2jw7nUDa6qGlWofgd9g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "lodash": "^4.17.21" + }, + "engines": { + "node": ">=v16" + } + }, + "node_modules/@sapphire/snowflake": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-3.5.3.tgz", + "integrity": "sha512-jjmJywLAFoWeBi1W7994zZyiNWPIiqRRNAmSERxyg93xRGzNYvGjlZ0gR6x0F4gPRi2+0O6S71kOZYyr3cxaIQ==", + "dev": true, + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@sideway/address": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", + "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "dev": true + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "dev": true + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@tsconfig/node20": { + "version": "20.1.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.4.tgz", + "integrity": "sha512-sqgsT69YFeLWf5NtJ4Xq/xAF8p4ZQHlmGW74Nu2tD4+g5fAsposc4ZfaaPixVu4y01BEiDCWLRDCvDM5JOsRxg==", + "dev": true + }, + "node_modules/@types/deep-equal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/deep-equal/-/deep-equal-1.0.4.tgz", + "integrity": "sha512-tqdiS4otQP4KmY0PR3u6KbZ5EWvhNdUoS/jc93UuK23C220lOZ/9TvjfxdPcKvqwwDVtmtSCrnr0p/2dirAxkA==" + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/file-fetch": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/@types/file-fetch/-/file-fetch-1.6.6.tgz", + "integrity": "sha512-DvVqgVRx5+Fcy9VfOA0+bNuDSmcyN9ahN3Wms83szdqYQeDQIerTxdaoVo4Ghnnm1kdUsYRVy23LMfzhkOuIZA==", + "dependencies": { + "@types/node-fetch": "*" + } + }, + "node_modules/@types/js-roman-numerals": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@types/js-roman-numerals/-/js-roman-numerals-1.1.3.tgz", + "integrity": "sha512-iF/pPujpCHRkREdqpJuuexzzVh1pRzc/yUg/3cQ5dMF+aSSJscpm3EzZUoY7f+LFB1ImCS0BiQAUoWUhaU4AzQ==" + }, + "node_modules/@types/jsdom": { + "version": "21.1.7", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.7.tgz", + "integrity": "sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/tough-cookie": "*", + "parse5": "^7.0.0" + } + }, + "node_modules/@types/node": { + "version": "20.14.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.2.tgz", + "integrity": "sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/node-fetch": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==", + "dependencies": { + "@types/node": "*", + "form-data": "^4.0.0" + } + }, + "node_modules/@types/pleasejs": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/pleasejs/-/pleasejs-0.0.33.tgz", + "integrity": "sha512-KWyfyYQlx65ixvFW8LdkQxxEY5zbpQeGwcEixWG4O1e/5CRJ5XsEkQYooK3perQPGiE2qR67ZIECduQ1EPzbbw==", + "dev": true + }, + "node_modules/@types/sinonjs__fake-timers": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", + "dev": true + }, + "node_modules/@types/sizzle": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz", + "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==", + "dev": true + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "dev": true + }, + "node_modules/@types/triple-beam": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", + "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==" + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", + "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==", + "dev": true + }, + "node_modules/@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.13.0.tgz", + "integrity": "sha512-FX1X6AF0w8MdVFLSdqwqN/me2hyhuQg4ykN6ZpVhh1ij/80pTvDKclX1sZB9iqex8SjQfVhwMKs3JtnnMLzG9w==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.13.0", + "@typescript-eslint/type-utils": "7.13.0", + "@typescript-eslint/utils": "7.13.0", + "@typescript-eslint/visitor-keys": "7.13.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.13.0.tgz", + "integrity": "sha512-EjMfl69KOS9awXXe83iRN7oIEXy9yYdqWfqdrFAYAAr6syP8eLEFI7ZE4939antx2mNgPRW/o1ybm2SFYkbTVA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "7.13.0", + "@typescript-eslint/types": "7.13.0", + "@typescript-eslint/typescript-estree": "7.13.0", + "@typescript-eslint/visitor-keys": "7.13.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.13.0.tgz", + "integrity": "sha512-ZrMCe1R6a01T94ilV13egvcnvVJ1pxShkE0+NDjDzH4nvG1wXpwsVI5bZCvE7AEDH1mXEx5tJSVR68bLgG7Dng==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.13.0", + "@typescript-eslint/visitor-keys": "7.13.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.13.0.tgz", + "integrity": "sha512-xMEtMzxq9eRkZy48XuxlBFzpVMDurUAfDu5Rz16GouAtXm0TaAoTFzqWUFPPuQYXI/CDaH/Bgx/fk/84t/Bc9A==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "7.13.0", + "@typescript-eslint/utils": "7.13.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.13.0.tgz", + "integrity": "sha512-QWuwm9wcGMAuTsxP+qz6LBBd3Uq8I5Nv8xb0mk54jmNoCyDspnMvVsOxI6IsMmway5d1S9Su2+sCKv1st2l6eA==", + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.13.0.tgz", + "integrity": "sha512-cAvBvUoobaoIcoqox1YatXOnSl3gx92rCZoMRPzMNisDiM12siGilSM4+dJAekuuHTibI2hVC2fYK79iSFvWjw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.13.0", + "@typescript-eslint/visitor-keys": "7.13.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.13.0.tgz", + "integrity": "sha512-jceD8RgdKORVnB4Y6BqasfIkFhl4pajB1wVxrF4akxD2QPM8GNYjgGwEzYS+437ewlqqrg7Dw+6dhdpjMpeBFQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.13.0", + "@typescript-eslint/types": "7.13.0", + "@typescript-eslint/typescript-estree": "7.13.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.13.0.tgz", + "integrity": "sha512-nxn+dozQx+MK61nn/JP+M4eCkHDSxSLDpgE3WcQo0+fkjEolnaB5jswvIKC4K56By8MMgIho7f1PVxERHEo8rw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.13.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.0.5.tgz", + "integrity": "sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==", + "dev": true, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vitejs/plugin-vue-jsx": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.1.0.tgz", + "integrity": "sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.3", + "@babel/plugin-transform-typescript": "^7.23.3", + "@vue/babel-plugin-jsx": "^1.1.5" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0 || ^5.0.0", + "vue": "^3.0.0" + } + }, + "node_modules/@vitest/expect": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.0.tgz", + "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==", + "dev": true, + "dependencies": { + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "chai": "^4.3.10" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.0.tgz", + "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==", + "dev": true, + "dependencies": { + "@vitest/utils": "1.6.0", + "p-limit": "^5.0.0", + "pathe": "^1.1.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner/node_modules/p-limit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/runner/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/snapshot": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.0.tgz", + "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==", + "dev": true, + "dependencies": { + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.0.tgz", + "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==", + "dev": true, + "dependencies": { + "tinyspy": "^2.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.0.tgz", + "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==", + "dev": true, + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@volar/language-core": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.3.0.tgz", + "integrity": "sha512-pvhL24WUh3VDnv7Yw5N1sjhPtdx7q9g+Wl3tggmnkMcyK8GcCNElF2zHiKznryn0DiUGk+eez/p2qQhz+puuHw==", + "dev": true, + "dependencies": { + "@volar/source-map": "2.3.0" + } + }, + "node_modules/@volar/source-map": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.3.0.tgz", + "integrity": "sha512-G/228aZjAOGhDjhlyZ++nDbKrS9uk+5DMaEstjvzglaAw7nqtDyhnQAsYzUg6BMP9BtwZ59RIw5HGePrutn00Q==", + "dev": true, + "dependencies": { + "muggle-string": "^0.4.0" + } + }, + "node_modules/@volar/typescript": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.3.0.tgz", + "integrity": "sha512-PtUwMM87WsKVeLJN33GSTUjBexlKfKgouWlOUIv7pjrOnTwhXHZNSmpc312xgXdTjQPpToK6KXSIcKu9sBQ5LQ==", + "dev": true, + "dependencies": { + "@volar/language-core": "2.3.0", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vue/babel-helper-vue-transform-on": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.2.tgz", + "integrity": "sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw==", + "dev": true + }, + "node_modules/@vue/babel-plugin-jsx": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.2.2.tgz", + "integrity": "sha512-nYTkZUVTu4nhP199UoORePsql0l+wj7v/oyQjtThUVhJl1U+6qHuoVhIvR3bf7eVKjbCK+Cs2AWd7mi9Mpz9rA==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "~7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9", + "@vue/babel-helper-vue-transform-on": "1.2.2", + "@vue/babel-plugin-resolve-type": "1.2.2", + "camelcase": "^6.3.0", + "html-tags": "^3.3.1", + "svg-tags": "^1.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + } + } + }, + "node_modules/@vue/babel-plugin-jsx/node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@vue/babel-plugin-resolve-type": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.2.2.tgz", + "integrity": "sha512-EntyroPwNg5IPVdUJupqs0CFzuf6lUrVvCspmv2J1FITLeGnUCuoGNNk78dgCusxEiYj6RMkTJflGSxk5aIC4A==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/helper-module-imports": "~7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/parser": "^7.23.9", + "@vue/compiler-sfc": "^3.4.15" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-plugin-resolve-type/node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.29.tgz", + "integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.29", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz", + "integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==", + "dependencies": { + "@vue/compiler-core": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.29.tgz", + "integrity": "sha512-zygDcEtn8ZimDlrEQyLUovoWgKQic6aEQqRXce2WXBvSeHbEbcAsXyCk9oG33ZkyWH4sl9D3tkYc1idoOkdqZQ==", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/compiler-core": "3.4.29", + "@vue/compiler-dom": "3.4.29", + "@vue/compiler-ssr": "3.4.29", + "@vue/shared": "3.4.29", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.10", + "postcss": "^8.4.38", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz", + "integrity": "sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.3.tgz", + "integrity": "sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==" + }, + "node_modules/@vue/devtools-core": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-core/-/devtools-core-7.3.0.tgz", + "integrity": "sha512-J5nmaYadJvDgH9zsQI9vSLlWjfZn/TdKWEKMcc9xjbF3OvdhQwRrojvFax1G+WPoQ/X67EZKeUVY/ovCCyLo7A==", + "dev": true, + "dependencies": { + "@vue/devtools-kit": "^7.3.0", + "@vue/devtools-shared": "^7.3.0", + "mitt": "^3.0.1", + "nanoid": "^3.3.4", + "pathe": "^1.1.2", + "vite-hot-client": "^0.2.3" + } + }, + "node_modules/@vue/devtools-kit": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.3.0.tgz", + "integrity": "sha512-J9C+ue3Ka8cumQY/hMsNTcbb1tczqVBBXFMw4isa5YvPjyIBgEtJBfDSUVIK3nE+YWk7UNliUuCcE1GHEKaGcw==", + "dev": true, + "dependencies": { + "@vue/devtools-shared": "^7.3.0", + "birpc": "^0.2.17", + "hookable": "^5.5.3", + "mitt": "^3.0.1", + "perfect-debounce": "^1.0.0", + "speakingurl": "^14.0.1", + "superjson": "^2.2.1" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/@vue/devtools-shared": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.3.0.tgz", + "integrity": "sha512-bYw4BtZclxzVrYBeYYHzNOcLlvVZbe9tutwtrixTtdgynHvuSJa5KI2MqWiumpGYm2feFI5sHlC8Vt61v4z18g==", + "dev": true, + "dependencies": { + "rfdc": "^1.3.1" + } + }, + "node_modules/@vue/eslint-config-prettier": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", + "integrity": "sha512-z1ZIAAUS9pKzo/ANEfd2sO+v2IUalz7cM/cTLOZ7vRFOPk5/xuRKQteOu1DErFLAh/lYGXMVZ0IfYKlyInuDVg==", + "dev": true, + "dependencies": { + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-prettier": "^5.0.0" + }, + "peerDependencies": { + "eslint": ">= 8.0.0", + "prettier": ">= 3.0.0" + } + }, + "node_modules/@vue/eslint-config-typescript": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-13.0.0.tgz", + "integrity": "sha512-MHh9SncG/sfqjVqjcuFLOLD6Ed4dRAis4HNt0dXASeAuLqIAx4YMB1/m2o4pUKK1vCt8fUvYG8KKX2Ot3BVZTg==", + "dev": true, + "dependencies": { + "@typescript-eslint/eslint-plugin": "^7.1.1", + "@typescript-eslint/parser": "^7.1.1", + "vue-eslint-parser": "^9.3.1" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "peerDependencies": { + "eslint": "^8.56.0", + "eslint-plugin-vue": "^9.0.0", + "typescript": ">=4.7.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.0.21.tgz", + "integrity": "sha512-vjs6KwnCK++kIXT+eI63BGpJHfHNVJcUCr3RnvJsccT3vbJnZV5IhHR2puEkoOkIbDdp0Gqi1wEnv3hEd3WsxQ==", + "dev": true, + "dependencies": { + "@volar/language-core": "~2.3.0-alpha.15", + "@vue/compiler-dom": "^3.4.0", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/reactivity": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.29.tgz", + "integrity": "sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==", + "dependencies": { + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.29.tgz", + "integrity": "sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.29.tgz", + "integrity": "sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/runtime-core": "3.4.29", + "@vue/shared": "3.4.29", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.29.tgz", + "integrity": "sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==", + "dependencies": { + "@vue/compiler-ssr": "3.4.29", + "@vue/shared": "3.4.29" + }, + "peerDependencies": { + "vue": "3.4.29" + } + }, + "node_modules/@vue/shared": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.29.tgz", + "integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==" + }, + "node_modules/@vue/test-utils": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-2.4.6.tgz", + "integrity": "sha512-FMxEjOpYNYiFe0GkaHsnJPXFHxQ6m4t8vI/ElPGpMWxZKpmRvQ33OIrvRXemy6yha03RxhOlQuy+gZMC3CQSow==", + "dev": true, + "dependencies": { + "js-beautify": "^1.14.9", + "vue-component-type-helpers": "^2.0.0" + } + }, + "node_modules/@vue/tsconfig": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.5.1.tgz", + "integrity": "sha512-VcZK7MvpjuTPx2w6blwnwZAu5/LgBUtejFOi3pPGQFXQN5Ela03FUtd2Qtg4yWGGissVL0dr6Ro1LfOFh+PCuQ==", + "dev": true + }, + "node_modules/@vueuse/core": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.11.0.tgz", + "integrity": "sha512-x3sD4Mkm7PJ+pcq3HX8PLPBadXCAlSDR/waK87dz0gQE+qJnaaFhc/dZVfJz+IUYzTMVGum2QlR7ImiJQN4s6g==", + "dev": true, + "dependencies": { + "@types/web-bluetooth": "^0.0.20", + "@vueuse/metadata": "10.11.0", + "@vueuse/shared": "10.11.0", + "vue-demi": ">=0.14.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/core/node_modules/vue-demi": { + "version": "0.14.8", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz", + "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==", + "dev": true, + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vueuse/metadata": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.0.tgz", + "integrity": "sha512-kQX7l6l8dVWNqlqyN3ePW3KmjCQO3ZMgXuBMddIu83CmucrsBfXlH+JoviYyRBws/yLTQO8g3Pbw+bdIoVm4oQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.0.tgz", + "integrity": "sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A==", + "dev": true, + "dependencies": { + "vue-demi": ">=0.14.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared/node_modules/vue-demi": { + "version": "0.14.8", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz", + "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==", + "dev": true, + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/acorn": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", + "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "dev": true, + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.0.tgz", + "integrity": "sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==", + "dev": true + }, + "node_modules/axios": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axios/node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/birpc": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-0.2.17.tgz", + "integrity": "sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/blob-util": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", + "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", + "dev": true + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", + "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001629", + "electron-to-chromium": "^1.4.796", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.16" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dev": true, + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cachedir": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", + "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001636", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001636.tgz", + "integrity": "sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "node_modules/chai": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/clear": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/clear/-/clear-0.1.0.tgz", + "integrity": "sha512-qMjRnoL+JDPJHeLePZJuao6+8orzHMGP04A8CdwCNsKhRbOnKRjefxONR7bwILT3MHecxKBjHkKL/tkZ8r4Uzw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-table3": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/codeql-agent": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/codeql-agent/-/codeql-agent-0.3.4.tgz", + "integrity": "sha512-xmuXn6JjCb1g3OtvzOGLE+4VZDkDAcF5Lk6oPyGy/Q0XCqzmlTeBhboRMOmFZEAjXeFt0q56Z7gNN4ygjxtz7g==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "clear": "^0.1.0", + "commander": "^10.0.0", + "figlet": "^1.5.2", + "linguist-js": "^2.5.4", + "p-limit": "^3.1.0", + "path": "^0.12.7", + "which": "^3.0.0", + "winston": "^3.8.2", + "winston-daily-rotate-file": "^4.7.1", + "winston-transport-discord": "^1.0.3" + }, + "bin": { + "codeql-agent": "cli.js" + } + }, + "node_modules/codeql-agent/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/codeql-agent/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/codeql-agent/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/codeql-agent/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/codeql-agent/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/codeql-agent/node_modules/object-hash": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", + "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/codeql-agent/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/codeql-agent/node_modules/winston-daily-rotate-file": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-4.7.1.tgz", + "integrity": "sha512-7LGPiYGBPNyGHLn9z33i96zx/bd71pjBn9tqQzO3I4Tayv94WPmBNwKC7CO1wPHdP9uvu+Md/1nr6VSH9h0iaA==", + "dev": true, + "dependencies": { + "file-stream-rotator": "^0.6.1", + "object-hash": "^2.0.1", + "triple-beam": "^1.3.0", + "winston-transport": "^4.4.0" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "winston": "^3" + } + }, + "node_modules/color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/colorspace": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", + "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", + "dependencies": { + "color": "^3.1.3", + "text-hex": "1.0.x" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/comma-separated-values": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/comma-separated-values/-/comma-separated-values-3.6.4.tgz", + "integrity": "sha512-B0mjBHUfu4JqzYM5NurRTBl2QuNqQ9/O62EUfL4+bo2KN81fGsFOFOHbHn5SP65n3lmFPzGLkdg8wfuLKk9HOQ==" + }, + "node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==", + "dev": true + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/config-chain/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/copy-anything": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", + "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", + "dev": true, + "dependencies": { + "is-what": "^4.1.8" + }, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true + }, + "node_modules/cross-fetch": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "dev": true, + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssstyle": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.0.1.tgz", + "integrity": "sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==", + "dev": true, + "dependencies": { + "rrweb-cssom": "^0.6.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/cssstyle/node_modules/rrweb-cssom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", + "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", + "dev": true + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/cypress": { + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.11.0.tgz", + "integrity": "sha512-NXXogbAxVlVje4XHX+Cx5eMFZv4Dho/2rIcdBHg9CNPFUGZdM4cRdgIgM7USmNYsC12XY0bZENEQ+KBk72fl+A==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@cypress/request": "^3.0.0", + "@cypress/xvfb": "^1.2.4", + "@types/sinonjs__fake-timers": "8.1.1", + "@types/sizzle": "^2.3.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", + "bluebird": "^3.7.2", + "buffer": "^5.7.1", + "cachedir": "^2.3.0", + "chalk": "^4.1.0", + "check-more-types": "^2.24.0", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.1", + "commander": "^6.2.1", + "common-tags": "^1.8.0", + "dayjs": "^1.10.4", + "debug": "^4.3.4", + "enquirer": "^2.3.6", + "eventemitter2": "6.4.7", + "execa": "4.1.0", + "executable": "^4.1.1", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", + "getos": "^3.2.1", + "is-ci": "^3.0.1", + "is-installed-globally": "~0.4.0", + "lazy-ass": "^1.6.0", + "listr2": "^3.8.3", + "lodash": "^4.17.21", + "log-symbols": "^4.0.0", + "minimist": "^1.2.8", + "ospath": "^1.2.2", + "pretty-bytes": "^5.6.0", + "process": "^0.11.10", + "proxy-from-env": "1.0.0", + "request-progress": "^3.0.0", + "semver": "^7.5.3", + "supports-color": "^8.1.1", + "tmp": "~0.2.1", + "untildify": "^4.0.0", + "yauzl": "^2.10.0" + }, + "bin": { + "cypress": "bin/cypress" + }, + "engines": { + "node": "^16.0.0 || ^18.0.0 || >=20.0.0" + } + }, + "node_modules/cypress/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cypress/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/cypress/node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cypress/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cypress/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/cypress/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/cypress/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cypress/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cypress/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-urls": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", + "dev": true, + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/dayjs": { + "version": "1.11.11", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz", + "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==", + "dev": true + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true + }, + "node_modules/deep-eql": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", + "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "dev": true, + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-browser": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", + "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==" + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/discord-api-types": { + "version": "0.36.3", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.36.3.tgz", + "integrity": "sha512-bz/NDyG0KBo/tY14vSkrwQ/n3HKPf87a0WFW/1M9+tXYK+vp5Z5EksawfCWo2zkAc6o7CClc0eff1Pjrqznlwg==", + "dev": true + }, + "node_modules/discord.js": { + "version": "13.17.1", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.17.1.tgz", + "integrity": "sha512-h13kUf+7ZaP5ZWggzooCxFutvJJvugcAO54oTEIdVr3zQWi0Sf/61S1kETtuY9nVAyYebXR/Ey4C+oWbsgEkew==", + "dev": true, + "dependencies": { + "@discordjs/builders": "^0.16.0", + "@discordjs/collection": "^0.7.0", + "@sapphire/async-queue": "^1.5.0", + "@types/node-fetch": "^2.6.3", + "@types/ws": "^8.5.4", + "discord-api-types": "^0.33.5", + "form-data": "^4.0.0", + "node-fetch": "^2.6.7", + "ws": "^8.13.0" + }, + "engines": { + "node": ">=16.6.0", + "npm": ">=7.0.0" + } + }, + "node_modules/discord.js/node_modules/discord-api-types": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.33.5.tgz", + "integrity": "sha512-dvO5M52v7m7Dy96+XUnzXNsQ/0npsYpU6dL205kAtEDueswoz3aU3bh1UMoK4cQmcGtB1YRyLKqp+DXi05lzFg==", + "dev": true + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/editorconfig": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz", + "integrity": "sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==", + "dev": true, + "dependencies": { + "@one-ini/wasm": "0.1.1", + "commander": "^10.0.0", + "minimatch": "9.0.1", + "semver": "^7.5.3" + }, + "bin": { + "editorconfig": "bin/editorconfig" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/editorconfig/node_modules/minimatch": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", + "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/editorconfig/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.803", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.803.tgz", + "integrity": "sha512-61H9mLzGOCLLVsnLiRzCbc63uldP0AniRYPV3hbGVtONA1pI7qSGILdbofR7A8TMbOypDocEAjH/e+9k1QIe3g==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/enabled": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-stack-parser-es": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-0.1.4.tgz", + "integrity": "sha512-l0uy0kAoo6toCgVOYaAayqtPa2a1L15efxUMEnQebKwLQX2X0OpS6wMMQdc4juJXmxd9i40DuaUHq+mjIya9TQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-cypress": { + "version": "2.15.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.15.2.tgz", + "integrity": "sha512-CtcFEQTDKyftpI22FVGpx8bkpKyYXBlNge6zSo0pl5/qJvBAnzaD76Vu2AsP16d6mTj478Ldn2mhgrWV+Xr0vQ==", + "dev": true, + "dependencies": { + "globals": "^13.20.0" + }, + "peerDependencies": { + "eslint": ">= 3.2.1" + } + }, + "node_modules/eslint-plugin-cypress/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-cypress/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", + "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.8.6" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-vue": { + "version": "9.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.26.0.tgz", + "integrity": "sha512-eTvlxXgd4ijE1cdur850G6KalZqk65k1JKoOI2d1kT3hr8sPD07j1q98FRFdNnpxBELGPWxZmInxeHGF/GxtqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "globals": "^13.24.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.15", + "semver": "^7.6.0", + "vue-eslint-parser": "^9.4.2", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-vue/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-vue/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-vue/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/event-stream": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==", + "dev": true, + "dependencies": { + "duplexer": "~0.1.1", + "from": "~0", + "map-stream": "~0.1.0", + "pause-stream": "0.0.11", + "split": "0.3", + "stream-combiner": "~0.0.4", + "through": "~2.3.1" + } + }, + "node_modules/eventemitter2": { + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz", + "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==", + "dev": true + }, + "node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "dependencies": { + "pify": "^2.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" + }, + "node_modules/figlet": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.7.0.tgz", + "integrity": "sha512-gO8l3wvqo0V7wEFLXPbkX83b7MVjRrk1oRLfYlZXol8nEpb/ON9pcKLI4qpBv5YtOTfrINtqb7b40iYY2FTWFg==", + "dev": true, + "bin": { + "figlet": "bin/index.js" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-stream-rotator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.6.1.tgz", + "integrity": "sha512-u+dBid4PvZw17PmDeRcNOtCP9CCK/9lRN2w+r1xIS7yOL9JFrIBKTvrYsxT4P0pGtThYTn++QS5ChHaUov3+zQ==", + "dependencies": { + "moment": "^2.29.1" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/fn.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", + "dev": true + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/getos": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", + "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", + "dev": true, + "dependencies": { + "async": "^3.2.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "dev": true, + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "dev": true + }, + "node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^3.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-signature": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", + "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.14.1" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true, + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-what": { + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", + "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "dev": true, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "dev": true, + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true + }, + "node_modules/jackspeak": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", + "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/joi": { + "version": "17.13.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.1.tgz", + "integrity": "sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.3.0", + "@hapi/topo": "^5.1.0", + "@sideway/address": "^4.1.5", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/js-beautify": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.1.tgz", + "integrity": "sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA==", + "dev": true, + "dependencies": { + "config-chain": "^1.1.13", + "editorconfig": "^1.0.4", + "glob": "^10.3.3", + "js-cookie": "^3.0.5", + "nopt": "^7.2.0" + }, + "bin": { + "css-beautify": "js/bin/css-beautify.js", + "html-beautify": "js/bin/html-beautify.js", + "js-beautify": "js/bin/js-beautify.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/js-cookie": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", + "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true + }, + "node_modules/jsdom": { + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-24.1.0.tgz", + "integrity": "sha512-6gpM7pRXCwIOKxX47cgOyvyQDN/Eh0f1MeKySBV2xGdKtqJBLj8P25eY3EVCWo2mglDDzozR2r2MW4T+JiNUZA==", + "dev": true, + "dependencies": { + "cssstyle": "^4.0.1", + "data-urls": "^5.0.0", + "decimal.js": "^10.4.3", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.4", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.10", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.7.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.4", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0", + "ws": "^8.17.0", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "canvas": "^2.11.2" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", + "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsprim": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true + }, + "node_modules/kuler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" + }, + "node_modules/lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", + "dev": true, + "engines": { + "node": "> 0.8" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/linguist-js": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/linguist-js/-/linguist-js-2.7.1.tgz", + "integrity": "sha512-MlkT7rcRxpDYV+JAG0jFPOrSKaygAzQ8kNT1mI9kYECSs2jU3CKmpqdQdEv/sumL8CxtA4DYYe/yLS852i1Elg==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.2.0 <3", + "commander": "^9.5.0 <10", + "common-path-prefix": "^3.0.0", + "cross-fetch": "^3.1.8 <4", + "ignore": "^5.3.1", + "isbinaryfile": "^4.0.10 <5", + "js-yaml": "^4.1.0", + "node-cache": "^5.1.2" + }, + "bin": { + "linguist": "bin/index.js", + "linguist-js": "bin/index.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/linguist-js/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/list-files-in-dir": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/list-files-in-dir/-/list-files-in-dir-0.1.5.tgz", + "integrity": "sha512-DRSxn9ckPWIDnEvw5TJZGnqq2WjP+FTwdcFolRV6dTr0d2k6C0r++QnUJg+FBtLoQhzlCs+IqfXYf+HlbFtIBA==", + "dependencies": { + "@types/node": "^10.0.0" + } + }, + "node_modules/list-files-in-dir/node_modules/@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + }, + "node_modules/listr2": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", + "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", + "dev": true, + "dependencies": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.1", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/listr2/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/listr2/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/listr2/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/listr2/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/local-pkg": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "dev": true, + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-update/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/logform": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.6.0.tgz", + "integrity": "sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==", + "dependencies": { + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/logform/node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==", + "dev": true + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true + }, + "node_modules/mlly": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.1.tgz", + "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==", + "dev": true, + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.1", + "ufo": "^1.5.3" + } + }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "engines": { + "node": "*" + } + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/new-tab-opener": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/new-tab-opener/-/new-tab-opener-1.0.2.tgz", + "integrity": "sha512-hMKU1n8HuauAaqdH3JW1WPXCEPxfCIEGEWoChR2A9So1GO+CjGOMEhTHcsFpOxH3pqzHdRY/+9VnY4qnWQYQZw==", + "dependencies": { + "detect-browser": "5.3.0" + } + }, + "node_modules/node-cache": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-5.1.2.tgz", + "integrity": "sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==", + "dev": true, + "dependencies": { + "clone": "2.x" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/nopt": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "dev": true, + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-run-all2": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/npm-run-all2/-/npm-run-all2-6.2.0.tgz", + "integrity": "sha512-wA7yVIkthe6qJBfiJ2g6aweaaRlw72itsFGF6HuwCHKwtwAx/4BY1vVpk6bw6lS8RLMsexoasOkd0aYOmsFG7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.2.1", + "cross-spawn": "^7.0.3", + "memorystream": "^0.3.1", + "minimatch": "^9.0.0", + "pidtree": "^0.6.0", + "read-package-json-fast": "^3.0.2", + "shell-quote": "^1.7.3" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "npm-run-all2": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0", + "npm": ">= 8" + } + }, + "node_modules/npm-run-all2/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.10", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.10.tgz", + "integrity": "sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==", + "dev": true + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/one-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "dependencies": { + "fn.name": "1.x.x" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", + "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", + "dev": true, + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==", + "dev": true + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/path": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", + "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==", + "dev": true, + "dependencies": { + "process": "^0.11.1", + "util": "^0.10.3" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", + "dev": true, + "dependencies": { + "through": "~2.3" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "dev": true + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinia": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.1.7.tgz", + "integrity": "sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==", + "dependencies": { + "@vue/devtools-api": "^6.5.0", + "vue-demi": ">=0.14.5" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "@vue/composition-api": "^1.4.0", + "typescript": ">=4.4.4", + "vue": "^2.6.14 || ^3.3.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/pinia/node_modules/vue-demi": { + "version": "0.14.8", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz", + "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/pkg-types": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.1.tgz", + "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==", + "dev": true, + "dependencies": { + "confbox": "^0.1.7", + "mlly": "^1.7.0", + "pathe": "^1.1.2" + } + }, + "node_modules/pleasejs": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/pleasejs/-/pleasejs-0.4.2.tgz", + "integrity": "sha512-nHsHKvdOiKgFrYXp3bBIHpiSLf723Ra36HRI1Y7shY5utkTmvlRzZCnDtFUbiAWCIIZN6hHm+ximnyOJgeGwXA==" + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", + "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true + }, + "node_modules/proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", + "dev": true + }, + "node_modules/ps-tree": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz", + "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==", + "dev": true, + "dependencies": { + "event-stream": "=3.3.4" + }, + "bin": { + "ps-tree": "bin/ps-tree.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.10.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", + "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, + "node_modules/read-package-json-fast": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", + "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", + "dev": true, + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request-progress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", + "integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==", + "dev": true, + "dependencies": { + "throttleit": "^1.0.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/rrweb-cssom": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz", + "integrity": "sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==", + "dev": true + }, + "node_modules/run-applescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", + "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-stable-stringify": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", + "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", + "engines": { + "node": ">=10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/sirv": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/speakingurl": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", + "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==", + "dev": true, + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "engines": { + "node": "*" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true + }, + "node_modules/start-server-and-test": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/start-server-and-test/-/start-server-and-test-2.0.4.tgz", + "integrity": "sha512-CKNeBTcP0hVqIlNismHMudb9q3lLdAjcVPO13/7gfI66fcJpeIb/o4NzQd1JK/CD+lfWVqr10ZH9Y14+OwlJuw==", + "dev": true, + "dependencies": { + "arg": "^5.0.2", + "bluebird": "3.7.2", + "check-more-types": "2.24.0", + "debug": "4.3.5", + "execa": "5.1.1", + "lazy-ass": "1.6.0", + "ps-tree": "1.2.0", + "wait-on": "7.2.0" + }, + "bin": { + "server-test": "src/bin/start.js", + "start-server-and-test": "src/bin/start.js", + "start-test": "src/bin/start.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/start-server-and-test/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/start-server-and-test/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/start-server-and-test/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", + "dev": true + }, + "node_modules/stream-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==", + "dev": true, + "dependencies": { + "duplexer": "~0.1.1" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", + "dev": true, + "dependencies": { + "js-tokens": "^9.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==", + "dev": true + }, + "node_modules/superjson": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.1.tgz", + "integrity": "sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==", + "dev": true, + "dependencies": { + "copy-anything": "^3.0.2" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/synckit": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", + "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", + "dev": true, + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/text-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/throttleit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz", + "integrity": "sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/tinybench": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.8.0.tgz", + "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==", + "dev": true + }, + "node_modules/tinypool": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz", + "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "dev": true, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", + "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", + "dev": true, + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/triple-beam": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-mixer": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.4.tgz", + "integrity": "sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==", + "dev": true + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dev": true, + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/turbo-ts": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/turbo-ts/-/turbo-ts-7.3.1.tgz", + "integrity": "sha512-7juyj7A3jYv1/h/G55SMU8ohNcqggjeY8bXUpd9aaNgPzc1ms1wsziYXqUNNuDuwk3wOReEd+xO7EPDqoW3aRQ==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "devOptional": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-cookie": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typescript-cookie/-/typescript-cookie-1.0.6.tgz", + "integrity": "sha512-s+BZr7/9BUG6Kg7jGGcOY/4XJcP+iZRFdF3q4FPTfRSP83ivLWF94OcH8PrzGmnS8Ab9qP7ENu/ikLwNFsIafA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/ufo": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz", + "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==", + "dev": true + }, + "node_modules/undici": { + "version": "5.28.4", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", + "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", + "dev": true, + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/vite": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz", + "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==", + "dev": true, + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-hot-client": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vite-hot-client/-/vite-hot-client-0.2.3.tgz", + "integrity": "sha512-rOGAV7rUlUHX89fP2p2v0A2WWvV3QMX2UYq0fRqsWSvFvev4atHWqjwGoKaZT1VTKyLGk533ecu3eyd0o59CAg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0" + } + }, + "node_modules/vite-node": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.0.tgz", + "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==", + "dev": true, + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite-plugin-inspect": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/vite-plugin-inspect/-/vite-plugin-inspect-0.8.4.tgz", + "integrity": "sha512-G0N3rjfw+AiiwnGw50KlObIHYWfulVwaCBUBLh2xTW9G1eM9ocE5olXkEYUbwyTmX+azM8duubi+9w5awdCz+g==", + "dev": true, + "dependencies": { + "@antfu/utils": "^0.7.7", + "@rollup/pluginutils": "^5.1.0", + "debug": "^4.3.4", + "error-stack-parser-es": "^0.1.1", + "fs-extra": "^11.2.0", + "open": "^10.1.0", + "perfect-debounce": "^1.0.0", + "picocolors": "^1.0.0", + "sirv": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^3.1.0 || ^4.0.0 || ^5.0.0-0" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + } + } + }, + "node_modules/vite-plugin-inspect/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/vite-plugin-vue-devtools": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/vite-plugin-vue-devtools/-/vite-plugin-vue-devtools-7.3.0.tgz", + "integrity": "sha512-XnxQzTloGkQUTpsRdWVsEBzyh9F6i8NBmuPo8lotx4lSUnWYJ+jUlXvfftzmOf14hFgsTOySLJCr9nhaqOzgOA==", + "dev": true, + "dependencies": { + "@vue/devtools-core": "^7.3.0", + "@vue/devtools-kit": "^7.3.0", + "@vue/devtools-shared": "^7.3.0", + "execa": "^8.0.1", + "sirv": "^2.0.4", + "vite-plugin-inspect": "^0.8.4", + "vite-plugin-vue-inspector": "^5.1.2" + }, + "engines": { + "node": ">=v14.21.3" + }, + "peerDependencies": { + "vite": "^3.1.0 || ^4.0.0-0 || ^5.0.0-0" + } + }, + "node_modules/vite-plugin-vue-devtools/node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/vite-plugin-vue-devtools/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-vue-devtools/node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/vite-plugin-vue-devtools/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-vue-devtools/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-vue-devtools/node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-vue-devtools/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-vue-devtools/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-vue-devtools/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/vite-plugin-vue-devtools/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-vue-inspector": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/vite-plugin-vue-inspector/-/vite-plugin-vue-inspector-5.1.2.tgz", + "integrity": "sha512-M+yH2LlQtVNzJAljQM+61CqDXBvHim8dU5ImGaQuwlo13tMDHue5D7IC20YwDJuWDODiYc/cZBUYspVlyPf2vQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.0", + "@babel/plugin-proposal-decorators": "^7.23.0", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-transform-typescript": "^7.22.15", + "@vue/babel-plugin-jsx": "^1.1.5", + "@vue/compiler-dom": "^3.3.4", + "kolorist": "^1.8.0", + "magic-string": "^0.30.4" + }, + "peerDependencies": { + "vite": "^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0" + } + }, + "node_modules/vitest": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.0.tgz", + "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==", + "dev": true, + "dependencies": { + "@vitest/expect": "1.6.0", + "@vitest/runner": "1.6.0", + "@vitest/snapshot": "1.6.0", + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "acorn-walk": "^8.3.2", + "chai": "^4.3.10", + "debug": "^4.3.4", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.3", + "vite": "^5.0.0", + "vite-node": "1.6.0", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "1.6.0", + "@vitest/ui": "1.6.0", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vitest/node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/vitest/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/vitest/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/vitest/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vscode-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", + "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", + "dev": true + }, + "node_modules/vue": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.29.tgz", + "integrity": "sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/compiler-sfc": "3.4.29", + "@vue/runtime-dom": "3.4.29", + "@vue/server-renderer": "3.4.29", + "@vue/shared": "3.4.29" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-component-type-helpers": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-2.0.21.tgz", + "integrity": "sha512-3NaicyZ7N4B6cft4bfb7dOnPbE9CjLcx+6wZWAg5zwszfO4qXRh+U52dN5r5ZZfc6iMaxKCEcoH9CmxxoFZHLg==", + "dev": true + }, + "node_modules/vue-eslint-parser": { + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", + "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-tsc": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.0.21.tgz", + "integrity": "sha512-E6x1p1HaHES6Doy8pqtm7kQern79zRtIewkf9fiv7Y43Zo4AFDS5hKi+iHi2RwEhqRmuiwliB1LCEFEGwvxQnw==", + "dev": true, + "dependencies": { + "@volar/typescript": "~2.3.0-alpha.15", + "@vue/language-core": "2.0.21", + "semver": "^7.5.4" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/vue-tsc/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vuetify": { + "version": "3.6.9", + "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.6.9.tgz", + "integrity": "sha512-LVIZL0OCwzg3Aw2F8nT1rK/renpTPOcDEPe5E002Vj+VjXwsCNqwwxNteGfrcNlp0vgIJ8WusMvaxp69UJ3NJg==", + "engines": { + "node": "^12.20 || >=14.13" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/johnleider" + }, + "peerDependencies": { + "typescript": ">=4.7", + "vite-plugin-vuetify": ">=1.0.0", + "vue": "^3.3.0", + "vue-i18n": "^9.0.0", + "webpack-plugin-vuetify": ">=2.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vite-plugin-vuetify": { + "optional": true + }, + "vue-i18n": { + "optional": true + }, + "webpack-plugin-vuetify": { + "optional": true + } + } + }, + "node_modules/w3c-xmlserializer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "dev": true, + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/w3c-xmlserializer/node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/wait-on": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz", + "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==", + "dev": true, + "dependencies": { + "axios": "^1.6.1", + "joi": "^17.11.0", + "lodash": "^4.17.21", + "minimist": "^1.2.8", + "rxjs": "^7.8.1" + }, + "bin": { + "wait-on": "bin/wait-on" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.0.0.tgz", + "integrity": "sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==", + "dev": true, + "dependencies": { + "tr46": "^5.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/which": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dev": true, + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/winston": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.13.0.tgz", + "integrity": "sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ==", + "dependencies": { + "@colors/colors": "^1.6.0", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.4.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.7.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-daily-rotate-file": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-5.0.0.tgz", + "integrity": "sha512-JDjiXXkM5qvwY06733vf09I2wnMXpZEhxEVOSPenZMii+g7pcDcTBt2MRugnoi8BwVSuCT2jfRXBUy+n1Zz/Yw==", + "dependencies": { + "file-stream-rotator": "^0.6.1", + "object-hash": "^3.0.0", + "triple-beam": "^1.4.1", + "winston-transport": "^4.7.0" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "winston": "^3" + } + }, + "node_modules/winston-transport": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.7.0.tgz", + "integrity": "sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==", + "dependencies": { + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-transport-discord": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/winston-transport-discord/-/winston-transport-discord-1.0.3.tgz", + "integrity": "sha512-pKF3Sie6haNk+MjyF60nkex1AdskJ6Ep2Oxym1oh1Te1Vgs162qoVg91W9Tb4doHivYBmPJZ90z7gHXarRxd2A==", + "dev": true, + "dependencies": { + "@discordjs/rest": "^0.5.0", + "discord-api-types": "^0.36.1", + "discord.js": "^13.8.1", + "triple-beam": "^1.3.0", + "tslib": "^2.4.0", + "winston-transport": "^4.5.0" + } + }, + "node_modules/winston/node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..c96e005 --- /dev/null +++ b/package.json @@ -0,0 +1,66 @@ +{ + "name": "structorverborum", + "version": "0.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "run-p type-check \"build-only {@}\" --", + "preview": "vite preview", + "test:unit": "vitest", + "test:e2e": "start-server-and-test preview http://localhost:4173 'cypress run --e2e'", + "test:e2e:dev": "start-server-and-test 'vite dev --port 4173' http://localhost:4173 'cypress open --e2e'", + "build-only": "vite build", + "type-check": "vue-tsc --build --force", + "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore", + "format": "prettier --write src/" + }, + "dependencies": { + "@neoncitylights/sets": "^1.1.0", + "@types/deep-equal": "^1.0.4", + "@types/file-fetch": "^1.6.6", + "@types/js-roman-numerals": "^1.1.3", + "comma-separated-values": "^3.6.4", + "list-files-in-dir": "^0.1.5", + "new-tab-opener": "^1.0.2", + "pinia": "^2.1.7", + "pleasejs": "^0.4.2", + "tslib": "^2.6.3", + "turbo-ts": "^7.3.1", + "vue": "^3.4.21", + "vuetify": "^3.6.9", + "winston": "^3.13.0", + "winston-daily-rotate-file": "^5.0.0" + }, + "devDependencies": { + "@eslint-types/prettier": "^5.1.3", + "@rushstack/eslint-patch": "^1.8.0", + "@tsconfig/node20": "^20.1.4", + "@types/jsdom": "^21.1.6", + "@types/node": "^20.12.5", + "@types/pleasejs": "^0.0.33", + "@vitejs/plugin-vue": "^5.0.4", + "@vitejs/plugin-vue-jsx": "^3.1.0", + "@vue/eslint-config-prettier": "^9.0.0", + "@vue/eslint-config-typescript": "^13.0.0", + "@vue/test-utils": "^2.4.5", + "@vue/tsconfig": "^0.5.1", + "@vueuse/core": "^10.11.0", + "codeql-agent": "^0.3.4", + "cypress": "^13.7.2", + "eslint": "^8.57.0", + "eslint-plugin-cypress": "^2.15.1", + "eslint-plugin-vue": "^9.23.0", + "jsdom": "^24.0.0", + "npm-run-all2": "^6.1.2", + "prettier": "^3.3.2", + "start-server-and-test": "^2.0.3", + "tsconfig-paths": "^4.2.0", + "typescript": "~5.4.0", + "typescript-cookie": "^1.0.6", + "vite": "^5.2.8", + "vite-plugin-vue-devtools": "^7.0.25", + "vitest": "^1.4.0", + "vue-tsc": "^2.0.11" + } +} diff --git "a/res/lemmae/actus/adip\304\253sc\304\253.csv" "b/res/lemmae/actus/adip\304\253sc\304\253.csv" new file mode 100644 index 0000000..54b397a --- /dev/null +++ "b/res/lemmae/actus/adip\304\253sc\304\253.csv" @@ -0,0 +1,2 @@ +infinitivus,perfectum,supinum,versio +adipīscī,,adeptus,terti//deponens diff --git "a/res/lemmae/actus/am\304\201re.csv" "b/res/lemmae/actus/am\304\201re.csv" new file mode 100644 index 0000000..16cbf3a --- /dev/null +++ "b/res/lemmae/actus/am\304\201re.csv" @@ -0,0 +1,2 @@ +infinitivus,perfectum,supinum,versio +amāre,amāvisse,amātum,prima diff --git "a/res/lemmae/actus/c\304\223ns\304\223re.csv" "b/res/lemmae/actus/c\304\223ns\304\223re.csv" new file mode 100644 index 0000000..0e0ae8b --- /dev/null +++ "b/res/lemmae/actus/c\304\223ns\304\223re.csv" @@ -0,0 +1,2 @@ +infinitivus,perfectum,supinum,versio +cēnsēre,cēnsēvisse,cēnsētum,secunda diff --git "a/res/lemmae/actus/c\305\215nsect\304\201r\304\253.csv" "b/res/lemmae/actus/c\305\215nsect\304\201r\304\253.csv" new file mode 100644 index 0000000..7a15613 --- /dev/null +++ "b/res/lemmae/actus/c\305\215nsect\304\201r\304\253.csv" @@ -0,0 +1,2 @@ +infinitivus,perfectum,supinum,versio +cōnsectārī,,cōnsectātum,prima//deponens diff --git "a/res/lemmae/actus/d\304\223l\304\223re.csv" "b/res/lemmae/actus/d\304\223l\304\223re.csv" new file mode 100644 index 0000000..dc887af --- /dev/null +++ "b/res/lemmae/actus/d\304\223l\304\223re.csv" @@ -0,0 +1,2 @@ +infinitivus,perfectum,supinum,versio +dēlēre,dēlēvisse,dēlētum,secunda diff --git a/res/lemmae/actus/incidere.csv b/res/lemmae/actus/incidere.csv new file mode 100644 index 0000000..ba004f7 --- /dev/null +++ b/res/lemmae/actus/incidere.csv @@ -0,0 +1,2 @@ +infinitivus,perfectus,supinus,versio +incidere,incidisse,incāsum,tertius/semideponens diff --git "a/res/lemmae/actus/plac\304\223re.csv" "b/res/lemmae/actus/plac\304\223re.csv" new file mode 100644 index 0000000..676a48f --- /dev/null +++ "b/res/lemmae/actus/plac\304\223re.csv" @@ -0,0 +1,2 @@ +infinitivus,perfectum,supinum,versio +placēre,placuisse,placitum,secunda diff --git a/res/lemmae/actus/quaerere.csv b/res/lemmae/actus/quaerere.csv new file mode 100644 index 0000000..93feb05 --- /dev/null +++ b/res/lemmae/actus/quaerere.csv @@ -0,0 +1,2 @@ +infinitivus,perfectum,supinum,versio +quaerere,quaesīvisse,quaesītum,tertia diff --git "a/res/lemmae/adiectiva/Lat\304\253num.csv" "b/res/lemmae/adiectiva/Lat\304\253num.csv" new file mode 100644 index 0000000..9fa9530 --- /dev/null +++ "b/res/lemmae/adiectiva/Lat\304\253num.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +Latīnum,Latīnius,Latīnissimum,positivusAutPrimusAutSecundus diff --git a/res/lemmae/adiectiva/bonum.csv b/res/lemmae/adiectiva/bonum.csv new file mode 100644 index 0000000..dbbb34a --- /dev/null +++ b/res/lemmae/adiectiva/bonum.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +bonum,melius,optimum,positivusAutPrimusAutSecundus diff --git a/res/lemmae/adiectiva/centum.csv b/res/lemmae/adiectiva/centum.csv new file mode 100644 index 0000000..8d42c92 --- /dev/null +++ b/res/lemmae/adiectiva/centum.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +centum,,indeclinabilis diff --git a/res/lemmae/adiectiva/decem.csv b/res/lemmae/adiectiva/decem.csv new file mode 100644 index 0000000..aa082ce --- /dev/null +++ b/res/lemmae/adiectiva/decem.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +decem,,indeclinabilis diff --git a/res/lemmae/adiectiva/duodecim.csv b/res/lemmae/adiectiva/duodecim.csv new file mode 100644 index 0000000..a530fc1 --- /dev/null +++ b/res/lemmae/adiectiva/duodecim.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +duodecim,,indeclinabilis diff --git "a/res/lemmae/adiectiva/duod\304\223n\305\215n\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/duod\304\223n\305\215n\304\201gint\304\201.csv" new file mode 100644 index 0000000..fa9be15 --- /dev/null +++ "b/res/lemmae/adiectiva/duod\304\223n\305\215n\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +duodēnōnāgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/duod\304\223oct\305\215gint\304\201.csv" "b/res/lemmae/adiectiva/duod\304\223oct\305\215gint\304\201.csv" new file mode 100644 index 0000000..074b53d --- /dev/null +++ "b/res/lemmae/adiectiva/duod\304\223oct\305\215gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +duodēoctōgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/duod\304\223quadr\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/duod\304\223quadr\304\201gint\304\201.csv" new file mode 100644 index 0000000..a08f10b --- /dev/null +++ "b/res/lemmae/adiectiva/duod\304\223quadr\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +duodēquadrāgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/duod\304\223qu\304\253nqu\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/duod\304\223qu\304\253nqu\304\201gint\304\201.csv" new file mode 100644 index 0000000..b82c9b5 --- /dev/null +++ "b/res/lemmae/adiectiva/duod\304\223qu\304\253nqu\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +duodēquīnquāgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/duod\304\223septu\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/duod\304\223septu\304\201gint\304\201.csv" new file mode 100644 index 0000000..a139f12 --- /dev/null +++ "b/res/lemmae/adiectiva/duod\304\223septu\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +duodēseptuāgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/duod\304\223sex\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/duod\304\223sex\304\201gint\304\201.csv" new file mode 100644 index 0000000..2673793 --- /dev/null +++ "b/res/lemmae/adiectiva/duod\304\223sex\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +duodēsexāgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/duod\304\223tr\304\253gint\304\201.csv" "b/res/lemmae/adiectiva/duod\304\223tr\304\253gint\304\201.csv" new file mode 100644 index 0000000..7a33fcf --- /dev/null +++ "b/res/lemmae/adiectiva/duod\304\223tr\304\253gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +duodētrīgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/duod\304\223v\304\253gint\304\253.csv" "b/res/lemmae/adiectiva/duod\304\223v\304\253gint\304\253.csv" new file mode 100644 index 0000000..a9e03e6 --- /dev/null +++ "b/res/lemmae/adiectiva/duod\304\223v\304\253gint\304\253.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +duodēvīgintī,,indeclinabilis diff --git a/res/lemmae/adiectiva/incomparabilia/alterum.csv b/res/lemmae/adiectiva/incomparabilia/alterum.csv new file mode 100644 index 0000000..d1aebfe --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/alterum.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +alterum,alterī,pronominalis/nominativusDirectus diff --git a/res/lemmae/adiectiva/incomparabilia/centuplex.csv b/res/lemmae/adiectiva/incomparabilia/centuplex.csv new file mode 100644 index 0000000..0aecc9c --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/centuplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +centuplex,centuplicis,tertia diff --git "a/res/lemmae/adiectiva/incomparabilia/cent\305\253plum.csv" "b/res/lemmae/adiectiva/incomparabilia/cent\305\253plum.csv" new file mode 100644 index 0000000..b771a41 --- /dev/null +++ "b/res/lemmae/adiectiva/incomparabilia/cent\305\253plum.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +centūplum,centūplī,autPrimusAutSecundus diff --git a/res/lemmae/adiectiva/incomparabilia/decemplex.csv b/res/lemmae/adiectiva/incomparabilia/decemplex.csv new file mode 100644 index 0000000..9693720 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/decemplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +decemplex,decemplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/decimplex.csv b/res/lemmae/adiectiva/incomparabilia/decimplex.csv new file mode 100644 index 0000000..a2caa20 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/decimplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +decimplex,decimplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/decuplex.csv b/res/lemmae/adiectiva/incomparabilia/decuplex.csv new file mode 100644 index 0000000..c501ead --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/decuplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +decuplex,decuplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/ducenta.csv b/res/lemmae/adiectiva/incomparabilia/ducenta.csv new file mode 100644 index 0000000..9f33aa6 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/ducenta.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +ducenta,ducentōrum,autPrimusAutSecundus//pluralis diff --git a/res/lemmae/adiectiva/incomparabilia/duodecemplex.csv b/res/lemmae/adiectiva/incomparabilia/duodecemplex.csv new file mode 100644 index 0000000..676383f --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/duodecemplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +duodecemplex,duodecemplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/duodecemplum.csv b/res/lemmae/adiectiva/incomparabilia/duodecemplum.csv new file mode 100644 index 0000000..3cc964e --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/duodecemplum.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +duodecemplum,duodecemplī,autPrimusAutSecundus diff --git a/res/lemmae/adiectiva/incomparabilia/duodecimplex.csv b/res/lemmae/adiectiva/incomparabilia/duodecimplex.csv new file mode 100644 index 0000000..b467b5d --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/duodecimplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +duodecimplex,duodecimplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/duodecimplum.csv b/res/lemmae/adiectiva/incomparabilia/duodecimplum.csv new file mode 100644 index 0000000..91baf7c --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/duodecimplum.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +duodecimplum,duodecimplī,autPrimusAutSecundus diff --git a/res/lemmae/adiectiva/incomparabilia/duodecuplex.csv b/res/lemmae/adiectiva/incomparabilia/duodecuplex.csv new file mode 100644 index 0000000..a63be51 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/duodecuplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +duodecuplex,duodecuplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/duodecuplum.csv b/res/lemmae/adiectiva/incomparabilia/duodecuplum.csv new file mode 100644 index 0000000..67d3d47 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/duodecuplum.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +duodecuplum,duodecuplī,autPrimusAutSecundus diff --git "a/res/lemmae/adiectiva/incomparabilia/duod\304\223centum.csv" "b/res/lemmae/adiectiva/incomparabilia/duod\304\223centum.csv" new file mode 100644 index 0000000..b963c59 --- /dev/null +++ "b/res/lemmae/adiectiva/incomparabilia/duod\304\223centum.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +duodēcentum,duodēcentī,autPrimusAutSecundus diff --git a/res/lemmae/adiectiva/incomparabilia/duplex.csv b/res/lemmae/adiectiva/incomparabilia/duplex.csv new file mode 100644 index 0000000..2964031 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/duplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +duplex,duplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/meum.csv b/res/lemmae/adiectiva/incomparabilia/meum.csv new file mode 100644 index 0000000..4be7ca3 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/meum.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +meum,meī,autPrimusAutSecundus diff --git "a/res/lemmae/adiectiva/incomparabilia/milli\305\215.csv" "b/res/lemmae/adiectiva/incomparabilia/milli\305\215.csv" new file mode 100644 index 0000000..5cc97f6 --- /dev/null +++ "b/res/lemmae/adiectiva/incomparabilia/milli\305\215.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +milliō,milliōnis,tertius/nominativusDirectus/cumTruncoVario diff --git a/res/lemmae/adiectiva/incomparabilia/neutrum.csv b/res/lemmae/adiectiva/incomparabilia/neutrum.csv new file mode 100644 index 0000000..30fecfe --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/neutrum.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +neutrum,neutrī,pronominalis/cumLitteraR diff --git a/res/lemmae/adiectiva/incomparabilia/noncuplex.csv b/res/lemmae/adiectiva/incomparabilia/noncuplex.csv new file mode 100644 index 0000000..17d7486 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/noncuplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +noncuplex,noncuplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/nostrum.csv b/res/lemmae/adiectiva/incomparabilia/nostrum.csv new file mode 100644 index 0000000..5d212da --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/nostrum.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +nostrum,nostrī,autPrimusAutSecundus/cumLitteraR diff --git a/res/lemmae/adiectiva/incomparabilia/novemcuplex.csv b/res/lemmae/adiectiva/incomparabilia/novemcuplex.csv new file mode 100644 index 0000000..5bfbf3e --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/novemcuplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +novemcuplex,novemcuplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/novemplex.csv b/res/lemmae/adiectiva/incomparabilia/novemplex.csv new file mode 100644 index 0000000..e543195 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/novemplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +novemplex,novemplicis,tertia diff --git "a/res/lemmae/adiectiva/incomparabilia/n\305\215ngenta.csv" "b/res/lemmae/adiectiva/incomparabilia/n\305\215ngenta.csv" new file mode 100644 index 0000000..dfe44bb --- /dev/null +++ "b/res/lemmae/adiectiva/incomparabilia/n\305\215ngenta.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +nōngenta,nōngentōrum,autPrimusAutSecundus//pluralis diff --git "a/res/lemmae/adiectiva/incomparabilia/n\305\215nuplex.csv" "b/res/lemmae/adiectiva/incomparabilia/n\305\215nuplex.csv" new file mode 100644 index 0000000..ab8650a --- /dev/null +++ "b/res/lemmae/adiectiva/incomparabilia/n\305\215nuplex.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +nōnuplex,nōnuplicis,tertia diff --git "a/res/lemmae/adiectiva/incomparabilia/n\305\253llum.csv" "b/res/lemmae/adiectiva/incomparabilia/n\305\253llum.csv" new file mode 100644 index 0000000..b76e135 --- /dev/null +++ "b/res/lemmae/adiectiva/incomparabilia/n\305\253llum.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +nūllum,nūllī,pronominalis/nominativusDirectus diff --git a/res/lemmae/adiectiva/incomparabilia/octingenta.csv b/res/lemmae/adiectiva/incomparabilia/octingenta.csv new file mode 100644 index 0000000..a0aa85d --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/octingenta.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +octingenta,octingentōrum,autPrimusAutSecundus//pluralis diff --git a/res/lemmae/adiectiva/incomparabilia/octuplex.csv b/res/lemmae/adiectiva/incomparabilia/octuplex.csv new file mode 100644 index 0000000..064522c --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/octuplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +octuplex,octuplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/quadruplex.csv b/res/lemmae/adiectiva/incomparabilia/quadruplex.csv new file mode 100644 index 0000000..ef4cc69 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/quadruplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +quadruplex,quadruplicis,tertia diff --git "a/res/lemmae/adiectiva/incomparabilia/qu\304\253ngenta.csv" "b/res/lemmae/adiectiva/incomparabilia/qu\304\253ngenta.csv" new file mode 100644 index 0000000..7def27c --- /dev/null +++ "b/res/lemmae/adiectiva/incomparabilia/qu\304\253ngenta.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +quīngenta,quīngentōrum,autPrimusAutSecundus//pluralis diff --git "a/res/lemmae/adiectiva/incomparabilia/qu\304\253nquiplex.csv" "b/res/lemmae/adiectiva/incomparabilia/qu\304\253nquiplex.csv" new file mode 100644 index 0000000..29f9405 --- /dev/null +++ "b/res/lemmae/adiectiva/incomparabilia/qu\304\253nquiplex.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +quīnquiplex,quīnquiplicis,tertia diff --git "a/res/lemmae/adiectiva/incomparabilia/qu\304\253ntuplex.csv" "b/res/lemmae/adiectiva/incomparabilia/qu\304\253ntuplex.csv" new file mode 100644 index 0000000..0c1fcd1 --- /dev/null +++ "b/res/lemmae/adiectiva/incomparabilia/qu\304\253ntuplex.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +quīntuplex,quīntuplex,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/seplex.csv b/res/lemmae/adiectiva/incomparabilia/seplex.csv new file mode 100644 index 0000000..36c7801 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/seplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +seplex,seplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/septemplex.csv b/res/lemmae/adiectiva/incomparabilia/septemplex.csv new file mode 100644 index 0000000..0f917c1 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/septemplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +septemplex,septemplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/septimplex.csv b/res/lemmae/adiectiva/incomparabilia/septimplex.csv new file mode 100644 index 0000000..16f4012 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/septimplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +septimplex,septimplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/septingenta.csv b/res/lemmae/adiectiva/incomparabilia/septingenta.csv new file mode 100644 index 0000000..0099a50 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/septingenta.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +septingenta,septingentōrum,autPrimusAutSecundus//pluralis diff --git a/res/lemmae/adiectiva/incomparabilia/sescenta.csv b/res/lemmae/adiectiva/incomparabilia/sescenta.csv new file mode 100644 index 0000000..2c4136f --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/sescenta.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +sescenta,sescentōrum,autPrimusAutSecundus//pluralis diff --git a/res/lemmae/adiectiva/incomparabilia/sexcenta.csv b/res/lemmae/adiectiva/incomparabilia/sexcenta.csv new file mode 100644 index 0000000..ef3d247 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/sexcenta.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +sexcenta,sexcentōrum,autPrimusAutSecundus//pluralis diff --git a/res/lemmae/adiectiva/incomparabilia/sextuplex.csv b/res/lemmae/adiectiva/incomparabilia/sextuplex.csv new file mode 100644 index 0000000..1c9e9c7 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/sextuplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +sextuplex,sextuplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/sexuplex.csv b/res/lemmae/adiectiva/incomparabilia/sexuplex.csv new file mode 100644 index 0000000..8566bfd --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/sexuplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +sexuplex,sexuplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/simplum.csv b/res/lemmae/adiectiva/incomparabilia/simplum.csv new file mode 100644 index 0000000..fe88418 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/simplum.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +simplum,simplī,autPrimusAutSecundus/cumLitteraR diff --git a/res/lemmae/adiectiva/incomparabilia/suum.csv b/res/lemmae/adiectiva/incomparabilia/suum.csv new file mode 100644 index 0000000..26c7329 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/suum.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +suum,suī,autPrimusAutSecundus/cumLitteraR diff --git "a/res/lemmae/adiectiva/incomparabilia/s\305\215lum.csv" "b/res/lemmae/adiectiva/incomparabilia/s\305\215lum.csv" new file mode 100644 index 0000000..ab9fc4a --- /dev/null +++ "b/res/lemmae/adiectiva/incomparabilia/s\305\215lum.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +sōlum,sōlī,pronominalis/nominativusDirectus diff --git a/res/lemmae/adiectiva/incomparabilia/terdecuplex.csv b/res/lemmae/adiectiva/incomparabilia/terdecuplex.csv new file mode 100644 index 0000000..33be76d --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/terdecuplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +terdecuplex,terdecuplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/ternum.csv b/res/lemmae/adiectiva/incomparabilia/ternum.csv new file mode 100644 index 0000000..4a671af --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/ternum.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +ternum,ternī,autPrimusAutSecundus/cumLitteraR diff --git a/res/lemmae/adiectiva/incomparabilia/trecenta.csv b/res/lemmae/adiectiva/incomparabilia/trecenta.csv new file mode 100644 index 0000000..08aae91 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/trecenta.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +trecenta,trecentōrum,autPrimusAutSecundus//pluralis diff --git a/res/lemmae/adiectiva/incomparabilia/triplex.csv b/res/lemmae/adiectiva/incomparabilia/triplex.csv new file mode 100644 index 0000000..fd2255e --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/triplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +triplex,triplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/tuum.csv b/res/lemmae/adiectiva/incomparabilia/tuum.csv new file mode 100644 index 0000000..556ab4b --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/tuum.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +tuum,tuī,autPrimusAutSecundus/cumLitteraR diff --git "a/res/lemmae/adiectiva/incomparabilia/t\305\215tum.csv" "b/res/lemmae/adiectiva/incomparabilia/t\305\215tum.csv" new file mode 100644 index 0000000..7bf9b26 --- /dev/null +++ "b/res/lemmae/adiectiva/incomparabilia/t\305\215tum.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +tōtum,tōtī,pronominalis/nominativusDirectus diff --git a/res/lemmae/adiectiva/incomparabilia/ultrum.csv b/res/lemmae/adiectiva/incomparabilia/ultrum.csv new file mode 100644 index 0000000..2ce2242 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/ultrum.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +ultrum,ultrī,pronominalis/cumLitteraR diff --git a/res/lemmae/adiectiva/incomparabilia/undecemplex.csv b/res/lemmae/adiectiva/incomparabilia/undecemplex.csv new file mode 100644 index 0000000..0f7473e --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/undecemplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +undecemplex,undecemplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/undecimplex.csv b/res/lemmae/adiectiva/incomparabilia/undecimplex.csv new file mode 100644 index 0000000..4d03368 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/undecimplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +undecimplex,undecimplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/undecuplex.csv b/res/lemmae/adiectiva/incomparabilia/undecuplex.csv new file mode 100644 index 0000000..3130c66 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/undecuplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +undecuplex,undecuplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/vestrum.csv b/res/lemmae/adiectiva/incomparabilia/vestrum.csv new file mode 100644 index 0000000..506eea8 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/vestrum.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +vestrum,vestrī,autPrimusAutSecundus/cumLitteraR diff --git "a/res/lemmae/adiectiva/incomparabilia/\305\253llum.csv" "b/res/lemmae/adiectiva/incomparabilia/\305\253llum.csv" new file mode 100644 index 0000000..acc2391 --- /dev/null +++ "b/res/lemmae/adiectiva/incomparabilia/\305\253llum.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +ūllum,ūllī,pronominalis/nominativusDirectus diff --git "a/res/lemmae/adiectiva/incomparabilia/\305\253num.csv" "b/res/lemmae/adiectiva/incomparabilia/\305\253num.csv" new file mode 100644 index 0000000..ce7514c --- /dev/null +++ "b/res/lemmae/adiectiva/incomparabilia/\305\253num.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +ūnum,ūnī,pronominalis diff --git a/res/lemmae/adiectiva/magnum.csv b/res/lemmae/adiectiva/magnum.csv new file mode 100644 index 0000000..44e8cee --- /dev/null +++ b/res/lemmae/adiectiva/magnum.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +magnum,maius,maximum,positivusAutPrimusAutSecundus diff --git a/res/lemmae/adiectiva/novem.csv b/res/lemmae/adiectiva/novem.csv new file mode 100644 index 0000000..cf14ad5 --- /dev/null +++ b/res/lemmae/adiectiva/novem.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +novem,,indeclinabilis diff --git "a/res/lemmae/adiectiva/n\305\215n\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/n\305\215n\304\201gint\304\201.csv" new file mode 100644 index 0000000..97a704c --- /dev/null +++ "b/res/lemmae/adiectiva/n\305\215n\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +nōnāgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/oct\305\215.csv" "b/res/lemmae/adiectiva/oct\305\215.csv" new file mode 100644 index 0000000..e1c5ba8 --- /dev/null +++ "b/res/lemmae/adiectiva/oct\305\215.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +octō,,indeclinabilis diff --git "a/res/lemmae/adiectiva/oct\305\215gint\304\201.csv" "b/res/lemmae/adiectiva/oct\305\215gint\304\201.csv" new file mode 100644 index 0000000..d948a17 --- /dev/null +++ "b/res/lemmae/adiectiva/oct\305\215gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +octōgintā,,indeclinabilis diff --git a/res/lemmae/adiectiva/quadrigenta.csv b/res/lemmae/adiectiva/quadrigenta.csv new file mode 100644 index 0000000..6992467 --- /dev/null +++ b/res/lemmae/adiectiva/quadrigenta.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +quadrigenta,,indeclinabilis diff --git "a/res/lemmae/adiectiva/quadr\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/quadr\304\201gint\304\201.csv" new file mode 100644 index 0000000..739a4c1 --- /dev/null +++ "b/res/lemmae/adiectiva/quadr\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +quadrāgintā,,indeclinabilis diff --git a/res/lemmae/adiectiva/quattuor.csv b/res/lemmae/adiectiva/quattuor.csv new file mode 100644 index 0000000..794d881 --- /dev/null +++ b/res/lemmae/adiectiva/quattuor.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +quattuor,,indeclinabilis diff --git a/res/lemmae/adiectiva/quattuordecim.csv b/res/lemmae/adiectiva/quattuordecim.csv new file mode 100644 index 0000000..8bc93db --- /dev/null +++ b/res/lemmae/adiectiva/quattuordecim.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +quattuordecim,,indeclinabilis diff --git "a/res/lemmae/adiectiva/qu\304\253ndecim.csv" "b/res/lemmae/adiectiva/qu\304\253ndecim.csv" new file mode 100644 index 0000000..04250c5 --- /dev/null +++ "b/res/lemmae/adiectiva/qu\304\253ndecim.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +quīndecim,,indeclinabilis diff --git "a/res/lemmae/adiectiva/qu\304\253nque.csv" "b/res/lemmae/adiectiva/qu\304\253nque.csv" new file mode 100644 index 0000000..40d1734 --- /dev/null +++ "b/res/lemmae/adiectiva/qu\304\253nque.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +quīnque,,indeclinabilis diff --git "a/res/lemmae/adiectiva/qu\304\253nqu\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/qu\304\253nqu\304\201gint\304\201.csv" new file mode 100644 index 0000000..d3cf384 --- /dev/null +++ "b/res/lemmae/adiectiva/qu\304\253nqu\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +quīnquāgintā,,indeclinabilis diff --git a/res/lemmae/adiectiva/septem.csv b/res/lemmae/adiectiva/septem.csv new file mode 100644 index 0000000..d36cb2f --- /dev/null +++ b/res/lemmae/adiectiva/septem.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +septem,,indeclinabilis diff --git a/res/lemmae/adiectiva/septemdecem.csv b/res/lemmae/adiectiva/septemdecem.csv new file mode 100644 index 0000000..52a972a --- /dev/null +++ b/res/lemmae/adiectiva/septemdecem.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +septemdecem,,indeclinabilis diff --git "a/res/lemmae/adiectiva/septu\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/septu\304\201gint\304\201.csv" new file mode 100644 index 0000000..4c895b7 --- /dev/null +++ "b/res/lemmae/adiectiva/septu\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +septuāgintā,,indeclinabilis diff --git a/res/lemmae/adiectiva/sex.csv b/res/lemmae/adiectiva/sex.csv new file mode 100644 index 0000000..72b30e3 --- /dev/null +++ b/res/lemmae/adiectiva/sex.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +sex,,indeclinabilis diff --git "a/res/lemmae/adiectiva/sex\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/sex\304\201gint\304\201.csv" new file mode 100644 index 0000000..c3d0802 --- /dev/null +++ "b/res/lemmae/adiectiva/sex\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +sexāgintā,,indeclinabilis diff --git a/res/lemmae/adiectiva/simplex.csv b/res/lemmae/adiectiva/simplex.csv new file mode 100644 index 0000000..fa0566e --- /dev/null +++ b/res/lemmae/adiectiva/simplex.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +simplex,simplicius,simplicissimus,postivusTertius diff --git "a/res/lemmae/adiectiva/s\304\223decim.csv" "b/res/lemmae/adiectiva/s\304\223decim.csv" new file mode 100644 index 0000000..7e8bcdc --- /dev/null +++ "b/res/lemmae/adiectiva/s\304\223decim.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +sēdecim,,indeclinabilis diff --git a/res/lemmae/adiectiva/trecentum.csv b/res/lemmae/adiectiva/trecentum.csv new file mode 100644 index 0000000..6823ef3 --- /dev/null +++ b/res/lemmae/adiectiva/trecentum.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +trecentum,,indeclinabilis diff --git a/res/lemmae/adiectiva/tredecim.csv b/res/lemmae/adiectiva/tredecim.csv new file mode 100644 index 0000000..1246c28 --- /dev/null +++ b/res/lemmae/adiectiva/tredecim.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +tredecim,,indeclinabilis diff --git "a/res/lemmae/adiectiva/tr\304\253gint\304\201.csv" "b/res/lemmae/adiectiva/tr\304\253gint\304\201.csv" new file mode 100644 index 0000000..79646ab --- /dev/null +++ "b/res/lemmae/adiectiva/tr\304\253gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +trīgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/v\304\253gint\304\253.csv" "b/res/lemmae/adiectiva/v\304\253gint\304\253.csv" new file mode 100644 index 0000000..a5bb9b0 --- /dev/null +++ "b/res/lemmae/adiectiva/v\304\253gint\304\253.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +vīgintī,,indeclinabilis diff --git "a/res/lemmae/adiectiva/\305\253ndecim.csv" "b/res/lemmae/adiectiva/\305\253ndecim.csv" new file mode 100644 index 0000000..01b16f8 --- /dev/null +++ "b/res/lemmae/adiectiva/\305\253ndecim.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +ūndecim,,indeclinabilis diff --git "a/res/lemmae/adiectiva/\305\253nd\304\223centum.csv" "b/res/lemmae/adiectiva/\305\253nd\304\223centum.csv" new file mode 100644 index 0000000..a052768 --- /dev/null +++ "b/res/lemmae/adiectiva/\305\253nd\304\223centum.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +ūndēcentum,,indeclinabilis diff --git "a/res/lemmae/adiectiva/\305\253nd\304\223n\305\215n\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/\305\253nd\304\223n\305\215n\304\201gint\304\201.csv" new file mode 100644 index 0000000..27075c8 --- /dev/null +++ "b/res/lemmae/adiectiva/\305\253nd\304\223n\305\215n\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +ūndēnōnāgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/\305\253nd\304\223oct\305\215gint\304\201.csv" "b/res/lemmae/adiectiva/\305\253nd\304\223oct\305\215gint\304\201.csv" new file mode 100644 index 0000000..96e0e33 --- /dev/null +++ "b/res/lemmae/adiectiva/\305\253nd\304\223oct\305\215gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +ūndēoctōgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/\305\253nd\304\223quadr\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/\305\253nd\304\223quadr\304\201gint\304\201.csv" new file mode 100644 index 0000000..241518b --- /dev/null +++ "b/res/lemmae/adiectiva/\305\253nd\304\223quadr\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +ūndēquadrāgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/\305\253nd\304\223qu\304\253nqu\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/\305\253nd\304\223qu\304\253nqu\304\201gint\304\201.csv" new file mode 100644 index 0000000..9b608b5 --- /dev/null +++ "b/res/lemmae/adiectiva/\305\253nd\304\223qu\304\253nqu\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +ūndēquīnquāgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/\305\253nd\304\223sex\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/\305\253nd\304\223sex\304\201gint\304\201.csv" new file mode 100644 index 0000000..3e6c10e --- /dev/null +++ "b/res/lemmae/adiectiva/\305\253nd\304\223sex\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +ūndēsexāgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/\305\253nd\304\223tr\304\253gint\304\201.csv" "b/res/lemmae/adiectiva/\305\253nd\304\223tr\304\253gint\304\201.csv" new file mode 100644 index 0000000..d485a44 --- /dev/null +++ "b/res/lemmae/adiectiva/\305\253nd\304\223tr\304\253gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +ūndētrīgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/\305\253nd\304\223v\304\253gint\304\253.csv" "b/res/lemmae/adiectiva/\305\253nd\304\223v\304\253gint\304\253.csv" new file mode 100644 index 0000000..a4327f0 --- /dev/null +++ "b/res/lemmae/adiectiva/\305\253nd\304\223v\304\253gint\304\253.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +ūndēvīgintī,,indeclinabilis diff --git "a/res/lemmae/adiectiva/\305\253nseptu\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/\305\253nseptu\304\201gint\304\201.csv" new file mode 100644 index 0000000..854be3b --- /dev/null +++ "b/res/lemmae/adiectiva/\305\253nseptu\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +ūnseptuāgintā,,indeclinabilis diff --git a/res/lemmae/adverbia/bis.csv b/res/lemmae/adverbia/bis.csv new file mode 100644 index 0000000..563e130 --- /dev/null +++ b/res/lemmae/adverbia/bis.csv @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,bis \ No newline at end of file diff --git "a/res/lemmae/adverbia/centi\304\223ns.csv" "b/res/lemmae/adverbia/centi\304\223ns.csv" new file mode 100644 index 0000000..c869a29 --- /dev/null +++ "b/res/lemmae/adverbia/centi\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,centiēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/centi\304\223s.csv" "b/res/lemmae/adverbia/centi\304\223s.csv" new file mode 100644 index 0000000..d9991fd --- /dev/null +++ "b/res/lemmae/adverbia/centi\304\223s.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,centiēs \ No newline at end of file diff --git "a/res/lemmae/adverbia/c\304\223terum.csv" "b/res/lemmae/adverbia/c\304\223terum.csv" new file mode 100644 index 0000000..81bb235 --- /dev/null +++ "b/res/lemmae/adverbia/c\304\223terum.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,cēterum \ No newline at end of file diff --git "a/res/lemmae/adverbia/deci\304\223ns.csv" "b/res/lemmae/adverbia/deci\304\223ns.csv" new file mode 100644 index 0000000..b0b927d --- /dev/null +++ "b/res/lemmae/adverbia/deci\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,deciēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/deci\304\223s.csv" "b/res/lemmae/adverbia/deci\304\223s.csv" new file mode 100644 index 0000000..4d59335 --- /dev/null +++ "b/res/lemmae/adverbia/deci\304\223s.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,deciēs \ No newline at end of file diff --git "a/res/lemmae/adverbia/duodeci\304\223ns.csv" "b/res/lemmae/adverbia/duodeci\304\223ns.csv" new file mode 100644 index 0000000..3e77d0f --- /dev/null +++ "b/res/lemmae/adverbia/duodeci\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,duodeciēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/duodeci\304\223s.csv" "b/res/lemmae/adverbia/duodeci\304\223s.csv" new file mode 100644 index 0000000..cb53ef9 --- /dev/null +++ "b/res/lemmae/adverbia/duodeci\304\223s.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,duodeciēs \ No newline at end of file diff --git "a/res/lemmae/adverbia/duod\304\223tr\304\253gi\304\223ns.csv" "b/res/lemmae/adverbia/duod\304\223tr\304\253gi\304\223ns.csv" new file mode 100644 index 0000000..b5a1e91 --- /dev/null +++ "b/res/lemmae/adverbia/duod\304\223tr\304\253gi\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,duodētrīgiēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/m\304\253lli\304\223ns.csv" "b/res/lemmae/adverbia/m\304\253lli\304\223ns.csv" new file mode 100644 index 0000000..6f1c981 --- /dev/null +++ "b/res/lemmae/adverbia/m\304\253lli\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,mīlliēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/m\304\253lli\304\223s.csv" "b/res/lemmae/adverbia/m\304\253lli\304\223s.csv" new file mode 100644 index 0000000..860f477 --- /dev/null +++ "b/res/lemmae/adverbia/m\304\253lli\304\223s.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,mīlliēs \ No newline at end of file diff --git "a/res/lemmae/adverbia/n\305\215n.csv" "b/res/lemmae/adverbia/n\305\215n.csv" new file mode 100644 index 0000000..65f927c --- /dev/null +++ "b/res/lemmae/adverbia/n\305\215n.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,nōn \ No newline at end of file diff --git "a/res/lemmae/adverbia/n\305\215ni\304\223ns.csv" "b/res/lemmae/adverbia/n\305\215ni\304\223ns.csv" new file mode 100644 index 0000000..9d8a7e5 --- /dev/null +++ "b/res/lemmae/adverbia/n\305\215ni\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,nōniēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/n\305\215ni\304\223s.csv" "b/res/lemmae/adverbia/n\305\215ni\304\223s.csv" new file mode 100644 index 0000000..a0a31ad --- /dev/null +++ "b/res/lemmae/adverbia/n\305\215ni\304\223s.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,nōniēs \ No newline at end of file diff --git "a/res/lemmae/adverbia/n\305\215nnumquam.csv" "b/res/lemmae/adverbia/n\305\215nnumquam.csv" new file mode 100644 index 0000000..95d1d82 --- /dev/null +++ "b/res/lemmae/adverbia/n\305\215nnumquam.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,nōnnumquam \ No newline at end of file diff --git "a/res/lemmae/adverbia/n\305\215n\304\201gi\304\223ns.csv" "b/res/lemmae/adverbia/n\305\215n\304\201gi\304\223ns.csv" new file mode 100644 index 0000000..64def6a --- /dev/null +++ "b/res/lemmae/adverbia/n\305\215n\304\201gi\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,nōnāgiēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/octi\304\223ns.csv" "b/res/lemmae/adverbia/octi\304\223ns.csv" new file mode 100644 index 0000000..d971f87 --- /dev/null +++ "b/res/lemmae/adverbia/octi\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,octiēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/oct\305\215gi\304\223ns.csv" "b/res/lemmae/adverbia/oct\305\215gi\304\223ns.csv" new file mode 100644 index 0000000..5ba7287 --- /dev/null +++ "b/res/lemmae/adverbia/oct\305\215gi\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,octōgiēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/ovi\304\223ns.csv" "b/res/lemmae/adverbia/ovi\304\223ns.csv" new file mode 100644 index 0000000..8640b5e --- /dev/null +++ "b/res/lemmae/adverbia/ovi\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,oviēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/quadr\304\201gi\304\223ns.csv" "b/res/lemmae/adverbia/quadr\304\201gi\304\223ns.csv" new file mode 100644 index 0000000..349aff9 --- /dev/null +++ "b/res/lemmae/adverbia/quadr\304\201gi\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,quadrāgiēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/qu\304\253nqui\304\223ns.csv" "b/res/lemmae/adverbia/qu\304\253nqui\304\223ns.csv" new file mode 100644 index 0000000..e51663c --- /dev/null +++ "b/res/lemmae/adverbia/qu\304\253nqui\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,quīnquiēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/septi\304\223ns.csv" "b/res/lemmae/adverbia/septi\304\223ns.csv" new file mode 100644 index 0000000..5efac7c --- /dev/null +++ "b/res/lemmae/adverbia/septi\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,septiēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/sexi\304\223ns.csv" "b/res/lemmae/adverbia/sexi\304\223ns.csv" new file mode 100644 index 0000000..6df6909 --- /dev/null +++ "b/res/lemmae/adverbia/sexi\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,sexiēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/sex\304\201gi\304\223ns.csv" "b/res/lemmae/adverbia/sex\304\201gi\304\223ns.csv" new file mode 100644 index 0000000..f0a539a --- /dev/null +++ "b/res/lemmae/adverbia/sex\304\201gi\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,sexāgiēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/terdeci\304\223ns.csv" "b/res/lemmae/adverbia/terdeci\304\223ns.csv" new file mode 100644 index 0000000..8aeb3da --- /dev/null +++ "b/res/lemmae/adverbia/terdeci\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,terdeciēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/terdeci\304\223s.csv" "b/res/lemmae/adverbia/terdeci\304\223s.csv" new file mode 100644 index 0000000..9958a20 --- /dev/null +++ "b/res/lemmae/adverbia/terdeci\304\223s.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,terdeciēs \ No newline at end of file diff --git "a/res/lemmae/adverbia/trecenti\304\223ns.csv" "b/res/lemmae/adverbia/trecenti\304\223ns.csv" new file mode 100644 index 0000000..bf2c8ac --- /dev/null +++ "b/res/lemmae/adverbia/trecenti\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,trecentiēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/trecenti\304\223s.csv" "b/res/lemmae/adverbia/trecenti\304\223s.csv" new file mode 100644 index 0000000..27e985d --- /dev/null +++ "b/res/lemmae/adverbia/trecenti\304\223s.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,trecentiēs \ No newline at end of file diff --git "a/res/lemmae/adverbia/tredeci\304\223ns.csv" "b/res/lemmae/adverbia/tredeci\304\223ns.csv" new file mode 100644 index 0000000..068d8d6 --- /dev/null +++ "b/res/lemmae/adverbia/tredeci\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,tredeciēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/tredeci\304\223s.csv" "b/res/lemmae/adverbia/tredeci\304\223s.csv" new file mode 100644 index 0000000..ce11a98 --- /dev/null +++ "b/res/lemmae/adverbia/tredeci\304\223s.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,tredeciēs \ No newline at end of file diff --git "a/res/lemmae/adverbia/tr\304\253ci\304\223s.csv" "b/res/lemmae/adverbia/tr\304\253ci\304\223s.csv" new file mode 100644 index 0000000..4326d2a --- /dev/null +++ "b/res/lemmae/adverbia/tr\304\253ci\304\223s.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,trīciēs \ No newline at end of file diff --git "a/res/lemmae/adverbia/v\304\253ci\304\223ns.csv" "b/res/lemmae/adverbia/v\304\253ci\304\223ns.csv" new file mode 100644 index 0000000..e79be10 --- /dev/null +++ "b/res/lemmae/adverbia/v\304\253ci\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,vīciēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/\305\253ndeci\304\223ns.csv" "b/res/lemmae/adverbia/\305\253ndeci\304\223ns.csv" new file mode 100644 index 0000000..2436c4f --- /dev/null +++ "b/res/lemmae/adverbia/\305\253ndeci\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,ūndeciēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/\305\253ndeci\304\223s.csv" "b/res/lemmae/adverbia/\305\253ndeci\304\223s.csv" new file mode 100644 index 0000000..259e6d9 --- /dev/null +++ "b/res/lemmae/adverbia/\305\253ndeci\304\223s.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,ūndeciēs \ No newline at end of file diff --git "a/res/lemmae/adverbia/\305\253nd\304\223quadr\304\201gi\304\223ns.csv" "b/res/lemmae/adverbia/\305\253nd\304\223quadr\304\201gi\304\223ns.csv" new file mode 100644 index 0000000..f01ee7a --- /dev/null +++ "b/res/lemmae/adverbia/\305\253nd\304\223quadr\304\201gi\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,ūndēquadrāgiēns \ No newline at end of file diff --git "a/res/lemmae/nomina/Carth\304\201g\305\215.csv" "b/res/lemmae/nomina/Carth\304\201g\305\215.csv" new file mode 100644 index 0000000..33676e5 --- /dev/null +++ "b/res/lemmae/nomina/Carth\304\201g\305\215.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +Carthāgō,Carthāginis,tertiaAnimata//singularis diff --git a/res/lemmae/nomina/adeptor.csv b/res/lemmae/nomina/adeptor.csv new file mode 100644 index 0000000..501f2fd --- /dev/null +++ b/res/lemmae/nomina/adeptor.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +adeptor,adeptōris,tertiaAnimata diff --git "a/res/lemmae/nomina/adeptr\304\253x.csv" "b/res/lemmae/nomina/adeptr\304\253x.csv" new file mode 100644 index 0000000..a63ae61 --- /dev/null +++ "b/res/lemmae/nomina/adeptr\304\253x.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +adeptrīx,adeptrīcis,tertiaAnimata diff --git "a/res/lemmae/nomina/am\304\201tor.csv" "b/res/lemmae/nomina/am\304\201tor.csv" new file mode 100644 index 0000000..8c51f50 --- /dev/null +++ "b/res/lemmae/nomina/am\304\201tor.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +amātor,amātōris,tertiaAnimata diff --git "a/res/lemmae/nomina/am\304\201tr\304\253x.csv" "b/res/lemmae/nomina/am\304\201tr\304\253x.csv" new file mode 100644 index 0000000..97573df --- /dev/null +++ "b/res/lemmae/nomina/am\304\201tr\304\253x.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +amātrīx,amātrīcis,tertiaAnimata diff --git a/res/lemmae/nomina/bes.csv b/res/lemmae/nomina/bes.csv new file mode 100644 index 0000000..9eda0c7 --- /dev/null +++ b/res/lemmae/nomina/bes.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +bes,bessis,tertiaAnimata diff --git "a/res/lemmae/nomina/cent\304\223simus.csv" "b/res/lemmae/nomina/cent\304\223simus.csv" new file mode 100644 index 0000000..e4a2c77 --- /dev/null +++ "b/res/lemmae/nomina/cent\304\223simus.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +centēsimus,centēsimī,secundusMasculinus diff --git "a/res/lemmae/nomina/c\304\223nsor.csv" "b/res/lemmae/nomina/c\304\223nsor.csv" new file mode 100644 index 0000000..cf2bdb5 --- /dev/null +++ "b/res/lemmae/nomina/c\304\223nsor.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +cēnsor,cēnsōris,tertiaAnimata diff --git "a/res/lemmae/nomina/c\304\223nstr\304\253x.csv" "b/res/lemmae/nomina/c\304\223nstr\304\253x.csv" new file mode 100644 index 0000000..860c06b --- /dev/null +++ "b/res/lemmae/nomina/c\304\223nstr\304\253x.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +cēnstrīx,cēnstrīcis,tertiaAnimata diff --git "a/res/lemmae/nomina/c\305\215nsect\304\201tor.csv" "b/res/lemmae/nomina/c\305\215nsect\304\201tor.csv" new file mode 100644 index 0000000..2b2fab0 --- /dev/null +++ "b/res/lemmae/nomina/c\305\215nsect\304\201tor.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +cōnsectātor,cōnsectātōris,tertiaAnimata diff --git "a/res/lemmae/nomina/c\305\215nsect\304\201tr\304\253x.csv" "b/res/lemmae/nomina/c\305\215nsect\304\201tr\304\253x.csv" new file mode 100644 index 0000000..684f475 --- /dev/null +++ "b/res/lemmae/nomina/c\305\215nsect\304\201tr\304\253x.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +cōnsectātrīx,cōnsectātrīcis,tertiaAnimata diff --git a/res/lemmae/nomina/decima.csv b/res/lemmae/nomina/decima.csv new file mode 100644 index 0000000..725e990 --- /dev/null +++ b/res/lemmae/nomina/decima.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +decima,decimae,prima diff --git a/res/lemmae/nomina/decimus.csv b/res/lemmae/nomina/decimus.csv new file mode 100644 index 0000000..4ffb0cf --- /dev/null +++ b/res/lemmae/nomina/decimus.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +decimus,decimī,secundusMasculinus diff --git a/res/lemmae/nomina/decunx.csv b/res/lemmae/nomina/decunx.csv new file mode 100644 index 0000000..feb1413 --- /dev/null +++ b/res/lemmae/nomina/decunx.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +decunx,decuncis,tertiaAnimata diff --git a/res/lemmae/nomina/deunx.csv b/res/lemmae/nomina/deunx.csv new file mode 100644 index 0000000..4e8ef1c --- /dev/null +++ b/res/lemmae/nomina/deunx.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +deunx,deuncis,tertiaAnimata diff --git a/res/lemmae/nomina/dolor.csv b/res/lemmae/nomina/dolor.csv new file mode 100644 index 0000000..12595b9 --- /dev/null +++ b/res/lemmae/nomina/dolor.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +dolor,dolōris,tertiaAnimata diff --git "a/res/lemmae/nomina/d\304\223l\304\223tor.csv" "b/res/lemmae/nomina/d\304\223l\304\223tor.csv" new file mode 100644 index 0000000..8ed8fac --- /dev/null +++ "b/res/lemmae/nomina/d\304\223l\304\223tor.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +dēlētor,dēlētōris,tertiaAnimata diff --git "a/res/lemmae/nomina/d\304\223l\304\223tr\304\253x.csv" "b/res/lemmae/nomina/d\304\223l\304\223tr\304\253x.csv" new file mode 100644 index 0000000..c9b16fd --- /dev/null +++ "b/res/lemmae/nomina/d\304\223l\304\223tr\304\253x.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +dēlētrīx,dēlētrīcis,tertiaAnimata diff --git "a/res/lemmae/nomina/d\304\253midius.csv" "b/res/lemmae/nomina/d\304\253midius.csv" new file mode 100644 index 0000000..ab9121f --- /dev/null +++ "b/res/lemmae/nomina/d\304\253midius.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +dīmidius,dīmidiī,secundusMasculinus diff --git "a/res/lemmae/nomina/d\305\215dr\304\201ns.csv" "b/res/lemmae/nomina/d\305\215dr\304\201ns.csv" new file mode 100644 index 0000000..fa36bba --- /dev/null +++ "b/res/lemmae/nomina/d\305\215dr\304\201ns.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +dōdrāns,dōdrantis,tertiaAnimata diff --git a/res/lemmae/nomina/labor.csv b/res/lemmae/nomina/labor.csv new file mode 100644 index 0000000..30e49c4 --- /dev/null +++ b/res/lemmae/nomina/labor.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +labor,labōris,tertiaAnimata diff --git a/res/lemmae/nomina/lingua.csv b/res/lemmae/nomina/lingua.csv new file mode 100644 index 0000000..debef65 --- /dev/null +++ b/res/lemmae/nomina/lingua.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +lingua,linguae,prima diff --git a/res/lemmae/nomina/nihil.csv b/res/lemmae/nomina/nihil.csv new file mode 100644 index 0000000..48ecd40 --- /dev/null +++ b/res/lemmae/nomina/nihil.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +nihil,,indeclinabilis diff --git "a/res/lemmae/nomina/n\305\215nus.csv" "b/res/lemmae/nomina/n\305\215nus.csv" new file mode 100644 index 0000000..eabbf56 --- /dev/null +++ "b/res/lemmae/nomina/n\305\215nus.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +nōnus,nōnī,secundusMasculinus diff --git "a/res/lemmae/nomina/oct\304\201ns.csv" "b/res/lemmae/nomina/oct\304\201ns.csv" new file mode 100644 index 0000000..b33ff97 --- /dev/null +++ "b/res/lemmae/nomina/oct\304\201ns.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +octāns,octantis,tertiaAnimata diff --git a/res/lemmae/nomina/placitor.csv b/res/lemmae/nomina/placitor.csv new file mode 100644 index 0000000..c02da8f --- /dev/null +++ b/res/lemmae/nomina/placitor.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +placitor,placitōris,tertiaAnimata diff --git "a/res/lemmae/nomina/placitr\304\253x.csv" "b/res/lemmae/nomina/placitr\304\253x.csv" new file mode 100644 index 0000000..3382819 --- /dev/null +++ "b/res/lemmae/nomina/placitr\304\253x.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +placitrīx,placitrīcis,tertiaAnimata diff --git a/res/lemmae/nomina/puer.csv b/res/lemmae/nomina/puer.csv new file mode 100644 index 0000000..07e6b69 --- /dev/null +++ b/res/lemmae/nomina/puer.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +puer,puerī,secundusMasculinus/nominativusDirectus diff --git "a/res/lemmae/nomina/quadr\304\201ns.csv" "b/res/lemmae/nomina/quadr\304\201ns.csv" new file mode 100644 index 0000000..32f8eff --- /dev/null +++ "b/res/lemmae/nomina/quadr\304\201ns.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +quadrāns,quadrantis,tertiaAnimata diff --git "a/res/lemmae/nomina/quaes\304\253tor.csv" "b/res/lemmae/nomina/quaes\304\253tor.csv" new file mode 100644 index 0000000..ac09c6a --- /dev/null +++ "b/res/lemmae/nomina/quaes\304\253tor.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +quaesītor,quaesītōris,tertiaAnimata diff --git "a/res/lemmae/nomina/quaes\304\253tr\304\253x.csv" "b/res/lemmae/nomina/quaes\304\253tr\304\253x.csv" new file mode 100644 index 0000000..144ca56 --- /dev/null +++ "b/res/lemmae/nomina/quaes\304\253tr\304\253x.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +quaesītrīx,quaesītrīcis,tertiaAnimata diff --git "a/res/lemmae/nomina/qu\304\253nt\304\201ns.csv" "b/res/lemmae/nomina/qu\304\253nt\304\201ns.csv" new file mode 100644 index 0000000..daafcb0 --- /dev/null +++ "b/res/lemmae/nomina/qu\304\253nt\304\201ns.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +quīntāns,quīntantis,tertiaAnimata diff --git a/res/lemmae/nomina/septunx.csv b/res/lemmae/nomina/septunx.csv new file mode 100644 index 0000000..83a7c80 --- /dev/null +++ b/res/lemmae/nomina/septunx.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +septunx,septuncis,tertiaAnimata diff --git "a/res/lemmae/nomina/sept\304\201ns.csv" "b/res/lemmae/nomina/sept\304\201ns.csv" new file mode 100644 index 0000000..9ad57ce --- /dev/null +++ "b/res/lemmae/nomina/sept\304\201ns.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +sextāns,sextantis,tertiaAnimata diff --git "a/res/lemmae/nomina/sext\304\201ns.csv" "b/res/lemmae/nomina/sext\304\201ns.csv" new file mode 100644 index 0000000..b544f70 --- /dev/null +++ "b/res/lemmae/nomina/sext\304\201ns.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +septāns,septantis,tertiaAnimata diff --git "a/res/lemmae/nomina/s\304\223mis.csv" "b/res/lemmae/nomina/s\304\223mis.csv" new file mode 100644 index 0000000..79ee0cc --- /dev/null +++ "b/res/lemmae/nomina/s\304\223mis.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +sēmis,sēmissis,tertiaAnimata diff --git a/res/lemmae/nomina/tempus.csv b/res/lemmae/nomina/tempus.csv new file mode 100644 index 0000000..3173cd7 --- /dev/null +++ b/res/lemmae/nomina/tempus.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +tempus,temporis,tertiaNeutra diff --git "a/res/lemmae/nomina/tri\304\223ns.csv" "b/res/lemmae/nomina/tri\304\223ns.csv" new file mode 100644 index 0000000..0d22761 --- /dev/null +++ "b/res/lemmae/nomina/tri\304\223ns.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +triēns,trientis,tertiaAnimata diff --git "a/res/lemmae/nomina/vic\304\223nsimus.csv" "b/res/lemmae/nomina/vic\304\223nsimus.csv" new file mode 100644 index 0000000..b040805 --- /dev/null +++ "b/res/lemmae/nomina/vic\304\223nsimus.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +vicēnsimus,vicēnsimī,secundusMasculinus diff --git "a/res/lemmae/nomina/vic\304\223nsumus.csv" "b/res/lemmae/nomina/vic\304\223nsumus.csv" new file mode 100644 index 0000000..dafd29e --- /dev/null +++ "b/res/lemmae/nomina/vic\304\223nsumus.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +vicēnsumus,vicēnsumī,secundusMasculinus diff --git "a/res/lemmae/nomina/vic\304\223simus.csv" "b/res/lemmae/nomina/vic\304\223simus.csv" new file mode 100644 index 0000000..0ac4946 --- /dev/null +++ "b/res/lemmae/nomina/vic\304\223simus.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +vicēsimus,vicēsimī,secundusMasculinus diff --git "a/res/lemmae/nomina/vig\304\223nsimus.csv" "b/res/lemmae/nomina/vig\304\223nsimus.csv" new file mode 100644 index 0000000..bb1fd1f --- /dev/null +++ "b/res/lemmae/nomina/vig\304\223nsimus.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +vigēnsimus,vigēnsimī,secundusMasculinus diff --git "a/res/lemmae/nomina/vig\304\223simus.csv" "b/res/lemmae/nomina/vig\304\223simus.csv" new file mode 100644 index 0000000..dd719d2 --- /dev/null +++ "b/res/lemmae/nomina/vig\304\223simus.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +vigēsimus,vigēsimī,secundusMasculinus diff --git a/res/lemmae/nomina/vir.csv b/res/lemmae/nomina/vir.csv new file mode 100644 index 0000000..5231b4e --- /dev/null +++ b/res/lemmae/nomina/vir.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +vir,virī,secundusMasculinus diff --git "a/res/lemmae/nomina/volupt\304\201s.csv" "b/res/lemmae/nomina/volupt\304\201s.csv" new file mode 100644 index 0000000..6256da8 --- /dev/null +++ "b/res/lemmae/nomina/volupt\304\201s.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +voluptās,voluptatis,tertiaAnimata diff --git "a/res/lemmae/nomina/\304\200d\304\201m.csv" "b/res/lemmae/nomina/\304\200d\304\201m.csv" new file mode 100644 index 0000000..de3978d --- /dev/null +++ "b/res/lemmae/nomina/\304\200d\304\201m.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +Ādām,,indeclinabilis diff --git "a/res/lemmae/nomina/\305\253ndecimus.csv" "b/res/lemmae/nomina/\305\253ndecimus.csv" new file mode 100644 index 0000000..94ca1c9 --- /dev/null +++ "b/res/lemmae/nomina/\305\253ndecimus.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +ūndecimus,ūndecimī,secundusMasculinus diff --git "a/res/lemmae/nomina/\305\253nica.csv" "b/res/lemmae/nomina/\305\253nica.csv" new file mode 100644 index 0000000..3735a88 --- /dev/null +++ "b/res/lemmae/nomina/\305\253nica.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +ūnica,ūnicae,prima diff --git a/res/lemmae/numeramina/C.csv b/res/lemmae/numeramina/C.csv new file mode 100644 index 0000000..3edbf6c --- /dev/null +++ b/res/lemmae/numeramina/C.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +C,centum,centēsimum,centiēs,centēnum,centuplex,centēsimus diff --git a/res/lemmae/numeramina/CC.csv b/res/lemmae/numeramina/CC.csv new file mode 100644 index 0000000..c3c0a52 --- /dev/null +++ b/res/lemmae/numeramina/CC.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +CC,ducenta,ducentēsimum,,ducēnum,, diff --git a/res/lemmae/numeramina/CCC.csv b/res/lemmae/numeramina/CCC.csv new file mode 100644 index 0000000..b7a4366 --- /dev/null +++ b/res/lemmae/numeramina/CCC.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +CCC,trecenta,trecentēsimum,,trecēnum,, diff --git a/res/lemmae/numeramina/CD.csv b/res/lemmae/numeramina/CD.csv new file mode 100644 index 0000000..b50ca36 --- /dev/null +++ b/res/lemmae/numeramina/CD.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +CD,quadringenta,quadringentēsimum,,quadringentēnum,, diff --git a/res/lemmae/numeramina/CM.csv b/res/lemmae/numeramina/CM.csv new file mode 100644 index 0000000..ea47f36 --- /dev/null +++ b/res/lemmae/numeramina/CM.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum, multiplicativum,fractionale +CM,nōngenta,nōngentēsimum,,nōngēnum,, diff --git a/res/lemmae/numeramina/D.csv b/res/lemmae/numeramina/D.csv new file mode 100644 index 0000000..681aa34 --- /dev/null +++ b/res/lemmae/numeramina/D.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +D,quīngenta,quīngentēsimum,,quīngēnum,, diff --git a/res/lemmae/numeramina/DC.csv b/res/lemmae/numeramina/DC.csv new file mode 100644 index 0000000..937d505 --- /dev/null +++ b/res/lemmae/numeramina/DC.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +DC,sescenta,sescentēsimum,,sescēnum,, diff --git a/res/lemmae/numeramina/DCC.csv b/res/lemmae/numeramina/DCC.csv new file mode 100644 index 0000000..5f0ec6f --- /dev/null +++ b/res/lemmae/numeramina/DCC.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +DCC,septingenta,septingentēsimum,,septingēnum,, diff --git a/res/lemmae/numeramina/DCCC.csv b/res/lemmae/numeramina/DCCC.csv new file mode 100644 index 0000000..ac9b029 --- /dev/null +++ b/res/lemmae/numeramina/DCCC.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum, fractionale +DCCC,octogenta,octingentēsimum,,octingēnum,, diff --git a/res/lemmae/numeramina/I.csv b/res/lemmae/numeramina/I.csv new file mode 100644 index 0000000..46b773f --- /dev/null +++ b/res/lemmae/numeramina/I.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +I,ūnum,prīmum,semel,singulum,simplex, diff --git a/res/lemmae/numeramina/II.csv b/res/lemmae/numeramina/II.csv new file mode 100644 index 0000000..951e6bc --- /dev/null +++ b/res/lemmae/numeramina/II.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +II,duo,secundum,bis,bīnum,duplex,sēmis diff --git a/res/lemmae/numeramina/III.csv b/res/lemmae/numeramina/III.csv new file mode 100644 index 0000000..6d6be1d --- /dev/null +++ b/res/lemmae/numeramina/III.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distrivutivum,multiplicativum,fractionale +III,tria,tertium,ter,ternum,triplex,triēns diff --git a/res/lemmae/numeramina/IV.csv b/res/lemmae/numeramina/IV.csv new file mode 100644 index 0000000..8ad0d94 --- /dev/null +++ b/res/lemmae/numeramina/IV.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +IV,quattuor,quārtum,quater,quaternum,quadruplex,quadrāns diff --git a/res/lemmae/numeramina/IX.csv b/res/lemmae/numeramina/IX.csv new file mode 100644 index 0000000..25815b8 --- /dev/null +++ b/res/lemmae/numeramina/IX.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +IX,novem,nōnum,noviēns,novēnum,novemplex,nōnus diff --git a/res/lemmae/numeramina/L.csv b/res/lemmae/numeramina/L.csv new file mode 100644 index 0000000..9439794 --- /dev/null +++ b/res/lemmae/numeramina/L.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +L,quīnquāgintā,quīnquāgēsimum,quīnquāgiēs,quīnquāgēnum,, diff --git a/res/lemmae/numeramina/LIX.csv b/res/lemmae/numeramina/LIX.csv new file mode 100644 index 0000000..529db57 --- /dev/null +++ b/res/lemmae/numeramina/LIX.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +LIX,ūndēsexāgintā,ūndēsexāgēsimum,,,, diff --git a/res/lemmae/numeramina/LVIII.csv b/res/lemmae/numeramina/LVIII.csv new file mode 100644 index 0000000..c540608 --- /dev/null +++ b/res/lemmae/numeramina/LVIII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +LVIII,duodēsexāgintā,duodēsexāgēsimum,,,, diff --git a/res/lemmae/numeramina/LX.csv b/res/lemmae/numeramina/LX.csv new file mode 100644 index 0000000..d0314ce --- /dev/null +++ b/res/lemmae/numeramina/LX.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +LX,sexāgintā,sexāgēsimum,sexāgiēs,sexāgēnum,, diff --git a/res/lemmae/numeramina/LXVIII.csv b/res/lemmae/numeramina/LXVIII.csv new file mode 100644 index 0000000..88c2cbb --- /dev/null +++ b/res/lemmae/numeramina/LXVIII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,adverbium,distributivum,multiplicativum,fractionale +LXVIII,duodēseptuāgintā,duodēseptuāgēsimum,,,, diff --git a/res/lemmae/numeramina/LXX.csv b/res/lemmae/numeramina/LXX.csv new file mode 100644 index 0000000..a0414f6 --- /dev/null +++ b/res/lemmae/numeramina/LXX.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +LXX,septuāgintā,septuāgēsimum,septuāgiēs,septuāgēnum,, diff --git a/res/lemmae/numeramina/LXXIX.csv b/res/lemmae/numeramina/LXXIX.csv new file mode 100644 index 0000000..8883fd6 --- /dev/null +++ b/res/lemmae/numeramina/LXXIX.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +LXXIX,ūndeoctōgintā,,,,, diff --git a/res/lemmae/numeramina/LXXVIII.csv b/res/lemmae/numeramina/LXXVIII.csv new file mode 100644 index 0000000..62d51ce --- /dev/null +++ b/res/lemmae/numeramina/LXXVIII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +LXXVIII,duodeoctōginta,,,,, diff --git a/res/lemmae/numeramina/LXXX.csv b/res/lemmae/numeramina/LXXX.csv new file mode 100644 index 0000000..aa7edfa --- /dev/null +++ b/res/lemmae/numeramina/LXXX.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +LXXX,octōgintā,octōgēsimum,octōgiēs,octōgēnum,, diff --git a/res/lemmae/numeramina/LXXXIX.csv b/res/lemmae/numeramina/LXXXIX.csv new file mode 100644 index 0000000..022dccf --- /dev/null +++ b/res/lemmae/numeramina/LXXXIX.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +LXXXIX,ūndēnōnāgintā,,,,, diff --git a/res/lemmae/numeramina/LXXXVIII.csv b/res/lemmae/numeramina/LXXXVIII.csv new file mode 100644 index 0000000..9ff3525 --- /dev/null +++ b/res/lemmae/numeramina/LXXXVIII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +LXXXVIII,duodēnōnāginta,,,,, diff --git a/res/lemmae/numeramina/M.csv b/res/lemmae/numeramina/M.csv new file mode 100644 index 0000000..ba0ddc5 --- /dev/null +++ b/res/lemmae/numeramina/M.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +M,mīlle,mīllēsimum,mīlliēs,mīllēnum,, diff --git a/res/lemmae/numeramina/N.csv b/res/lemmae/numeramina/N.csv new file mode 100644 index 0000000..40165b5 --- /dev/null +++ b/res/lemmae/numeramina/N.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +N,nūllum,nōn,,,nihil diff --git a/res/lemmae/numeramina/V.csv b/res/lemmae/numeramina/V.csv new file mode 100644 index 0000000..3446045 --- /dev/null +++ b/res/lemmae/numeramina/V.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +V,quīnque,quīntum,quīnquiēs,quīnum,quīnquiplex,quīntāns diff --git a/res/lemmae/numeramina/VI.csv b/res/lemmae/numeramina/VI.csv new file mode 100644 index 0000000..8944dd8 --- /dev/null +++ b/res/lemmae/numeramina/VI.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +VI,sex,sextum,sexiēs,sēnum,sexuplex,sextāns diff --git a/res/lemmae/numeramina/VII.csv b/res/lemmae/numeramina/VII.csv new file mode 100644 index 0000000..b009158 --- /dev/null +++ b/res/lemmae/numeramina/VII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +VII,septem,septeimum,septiēs,septēnum,septuplex,septāns diff --git a/res/lemmae/numeramina/VIII.csv b/res/lemmae/numeramina/VIII.csv new file mode 100644 index 0000000..c9c9a0c --- /dev/null +++ b/res/lemmae/numeramina/VIII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +VIII,octō,octāvum,octiēs,octōnum,octuplex,octāns diff --git a/res/lemmae/numeramina/X.csv b/res/lemmae/numeramina/X.csv new file mode 100644 index 0000000..58d993a --- /dev/null +++ b/res/lemmae/numeramina/X.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +X,decem,decimum,deciēs,dēnum,decemplex,decima diff --git a/res/lemmae/numeramina/XC.csv b/res/lemmae/numeramina/XC.csv new file mode 100644 index 0000000..54c9544 --- /dev/null +++ b/res/lemmae/numeramina/XC.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XC,nōnāgintā,nōnāgēsimum,nōnāgiēns,nōnāgēnum,, diff --git a/res/lemmae/numeramina/XCIX.csv b/res/lemmae/numeramina/XCIX.csv new file mode 100644 index 0000000..c949122 --- /dev/null +++ b/res/lemmae/numeramina/XCIX.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XCIX,ūndēcentum,ūndēcentēsimum,,,, diff --git a/res/lemmae/numeramina/XCVIII.csv b/res/lemmae/numeramina/XCVIII.csv new file mode 100644 index 0000000..9d064af --- /dev/null +++ b/res/lemmae/numeramina/XCVIII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XCVIII,duodēcentum,duodēcentēsimum,,,, diff --git a/res/lemmae/numeramina/XI.csv b/res/lemmae/numeramina/XI.csv new file mode 100644 index 0000000..5fe73d9 --- /dev/null +++ b/res/lemmae/numeramina/XI.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XI,ūndecim,ūndecimum,ūndeciēs,ūndēnum,ūndecemplex,ūndecimus diff --git a/res/lemmae/numeramina/XII.csv b/res/lemmae/numeramina/XII.csv new file mode 100644 index 0000000..1a4f038 --- /dev/null +++ b/res/lemmae/numeramina/XII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XII,duodecim,duodecimum,duodeciēs,duodēnum,duodecimplex,uncia diff --git a/res/lemmae/numeramina/XIII.csv b/res/lemmae/numeramina/XIII.csv new file mode 100644 index 0000000..2cf7f3c --- /dev/null +++ b/res/lemmae/numeramina/XIII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XIII,tredecim,tertiumdecimum,terdeciēs,terdēnum,terdecemplex,tertiusdecimus diff --git a/res/lemmae/numeramina/XIV.csv b/res/lemmae/numeramina/XIV.csv new file mode 100644 index 0000000..0ecabc1 --- /dev/null +++ b/res/lemmae/numeramina/XIV.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XIV,quattuordecim,quārtumdecimum,,,, diff --git a/res/lemmae/numeramina/XIX.csv b/res/lemmae/numeramina/XIX.csv new file mode 100644 index 0000000..3b5fecc --- /dev/null +++ b/res/lemmae/numeramina/XIX.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XIX,ūndēvīgintī,ūndēvīcēsimum,,,, diff --git a/res/lemmae/numeramina/XL.csv b/res/lemmae/numeramina/XL.csv new file mode 100644 index 0000000..21cefc4 --- /dev/null +++ b/res/lemmae/numeramina/XL.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XL,quadrāgintā,quadrāgēsimum,quadrāgiēs,quadrāgēnum,, diff --git a/res/lemmae/numeramina/XLIX.csv b/res/lemmae/numeramina/XLIX.csv new file mode 100644 index 0000000..e5c73e6 --- /dev/null +++ b/res/lemmae/numeramina/XLIX.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XLIX,ūndēquīnquāgintā,ūndēquīnquāgēsimum,,,, diff --git a/res/lemmae/numeramina/XLVIII.csv b/res/lemmae/numeramina/XLVIII.csv new file mode 100644 index 0000000..fc7dd76 --- /dev/null +++ b/res/lemmae/numeramina/XLVIII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XLVIII,duodēquīnquāgintā,duodēquīnquāgēsimum,,duodēquīnquāgēnum,, diff --git a/res/lemmae/numeramina/XV.csv b/res/lemmae/numeramina/XV.csv new file mode 100644 index 0000000..aa689d8 --- /dev/null +++ b/res/lemmae/numeramina/XV.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XV,quīndecim,quīntumdecimum,,,, diff --git a/res/lemmae/numeramina/XVI.csv b/res/lemmae/numeramina/XVI.csv new file mode 100644 index 0000000..89940ae --- /dev/null +++ b/res/lemmae/numeramina/XVI.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XVI,sēdecim,sextumdecimum,,,, diff --git a/res/lemmae/numeramina/XVII.csv b/res/lemmae/numeramina/XVII.csv new file mode 100644 index 0000000..5a8f6eb --- /dev/null +++ b/res/lemmae/numeramina/XVII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XVII,septemdecem,septimumdecimum,,,, diff --git a/res/lemmae/numeramina/XVIII.csv b/res/lemmae/numeramina/XVIII.csv new file mode 100644 index 0000000..38a4939 --- /dev/null +++ b/res/lemmae/numeramina/XVIII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XVIII,duodēvīgintī,duodēvīcēsimum,,duodēvīcēnum,, diff --git a/res/lemmae/numeramina/XX.csv b/res/lemmae/numeramina/XX.csv new file mode 100644 index 0000000..ccb2a82 --- /dev/null +++ b/res/lemmae/numeramina/XX.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XX,vīgintī,vīgēsimum,vīciēs,vīgēnum,,vīgēsimus diff --git a/res/lemmae/numeramina/XXIX.csv b/res/lemmae/numeramina/XXIX.csv new file mode 100644 index 0000000..ce5fa53 --- /dev/null +++ b/res/lemmae/numeramina/XXIX.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XXIX,ūndētrīgintā,ūndētrīcēsimum,,,, diff --git a/res/lemmae/numeramina/XXVIII.csv b/res/lemmae/numeramina/XXVIII.csv new file mode 100644 index 0000000..d19b3d1 --- /dev/null +++ b/res/lemmae/numeramina/XXVIII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XXVIII,duodētrīgintā,duodētrīgēsimum,duodētrīgiēns,,, diff --git a/res/lemmae/numeramina/XXX.csv b/res/lemmae/numeramina/XXX.csv new file mode 100644 index 0000000..e6661fe --- /dev/null +++ b/res/lemmae/numeramina/XXX.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XXX,trīgintā,trīcēsimum,trīciēs,trīgēnum,, diff --git a/res/lemmae/numeramina/XXXIV.csv b/res/lemmae/numeramina/XXXIV.csv new file mode 100644 index 0000000..1cd7078 --- /dev/null +++ b/res/lemmae/numeramina/XXXIV.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XXXIX,ūndēquadrāgintā,ūndēquadrāgēsimum,ūndēquadrāgiēns,,, diff --git a/res/lemmae/numeramina/XXXVIII.csv b/res/lemmae/numeramina/XXXVIII.csv new file mode 100644 index 0000000..9b20471 --- /dev/null +++ b/res/lemmae/numeramina/XXXVIII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XXXVIII,duodēquadrāgintā,duodēquadrāgēsimum,,duodēquādrāgēnum,, diff --git a/res/lemmae/numeramina/|M|.csv b/res/lemmae/numeramina/|M|.csv new file mode 100644 index 0000000..0df5f3f --- /dev/null +++ b/res/lemmae/numeramina/|M|.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +|M|,milliō,milliōnēsimum diff --git a/res/lemmae/verba/abante.csv b/res/lemmae/verba/abante.csv new file mode 100644 index 0000000..d4c9d44 --- /dev/null +++ b/res/lemmae/verba/abante.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,abante diff --git a/res/lemmae/verba/absque.csv b/res/lemmae/verba/absque.csv new file mode 100644 index 0000000..0c7c1ff --- /dev/null +++ b/res/lemmae/verba/absque.csv @@ -0,0 +1,3 @@ +categoria,scriptum +praepositio,absque + diff --git a/res/lemmae/verba/abusque.csv b/res/lemmae/verba/abusque.csv new file mode 100644 index 0000000..5fdd5b3 --- /dev/null +++ b/res/lemmae/verba/abusque.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,abusque diff --git a/res/lemmae/verba/ad.csv b/res/lemmae/verba/ad.csv new file mode 100644 index 0000000..42c400c --- /dev/null +++ b/res/lemmae/verba/ad.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,ad diff --git a/res/lemmae/verba/ante.csv b/res/lemmae/verba/ante.csv new file mode 100644 index 0000000..0dc12f5 --- /dev/null +++ b/res/lemmae/verba/ante.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,ante diff --git a/res/lemmae/verba/apud.csv b/res/lemmae/verba/apud.csv new file mode 100644 index 0000000..72f9b51 --- /dev/null +++ b/res/lemmae/verba/apud.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,apud diff --git a/res/lemmae/verba/cata.csv b/res/lemmae/verba/cata.csv new file mode 100644 index 0000000..489d951 --- /dev/null +++ b/res/lemmae/verba/cata.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,cata diff --git a/res/lemmae/verba/circiter.csv b/res/lemmae/verba/circiter.csv new file mode 100644 index 0000000..eb7b4c8 --- /dev/null +++ b/res/lemmae/verba/circiter.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,circiter diff --git a/res/lemmae/verba/circum.csv b/res/lemmae/verba/circum.csv new file mode 100644 index 0000000..3b5e9ea --- /dev/null +++ b/res/lemmae/verba/circum.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,circum diff --git a/res/lemmae/verba/cis.csv b/res/lemmae/verba/cis.csv new file mode 100644 index 0000000..bfea144 --- /dev/null +++ b/res/lemmae/verba/cis.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,cis diff --git a/res/lemmae/verba/clam.csv b/res/lemmae/verba/clam.csv new file mode 100644 index 0000000..37cb1fc --- /dev/null +++ b/res/lemmae/verba/clam.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,clam diff --git a/res/lemmae/verba/cum.csv b/res/lemmae/verba/cum.csv new file mode 100644 index 0000000..1250f4b --- /dev/null +++ b/res/lemmae/verba/cum.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,cum diff --git "a/res/lemmae/verba/c\305\215ram.csv" "b/res/lemmae/verba/c\305\215ram.csv" new file mode 100644 index 0000000..7991996 --- /dev/null +++ "b/res/lemmae/verba/c\305\215ram.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,cōram \ No newline at end of file diff --git "a/res/lemmae/verba/d\304\223.csv" "b/res/lemmae/verba/d\304\223.csv" new file mode 100644 index 0000000..513a76d --- /dev/null +++ "b/res/lemmae/verba/d\304\223.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,dē \ No newline at end of file diff --git a/res/lemmae/verba/ecce.csv b/res/lemmae/verba/ecce.csv new file mode 100644 index 0000000..67d5cfc --- /dev/null +++ b/res/lemmae/verba/ecce.csv @@ -0,0 +1,2 @@ +categoria,scriptum +interiectio,ecce diff --git "a/res/lemmae/verba/erg\304\201.csv" "b/res/lemmae/verba/erg\304\201.csv" new file mode 100644 index 0000000..e476690 --- /dev/null +++ "b/res/lemmae/verba/erg\304\201.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +contiunctio,ergā diff --git "a/res/lemmae/verba/erg\305\215.csv" "b/res/lemmae/verba/erg\305\215.csv" new file mode 100644 index 0000000..98110f9 --- /dev/null +++ "b/res/lemmae/verba/erg\305\215.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +contiunctio,ergō diff --git a/res/lemmae/verba/et.csv b/res/lemmae/verba/et.csv new file mode 100644 index 0000000..8a12e62 --- /dev/null +++ b/res/lemmae/verba/et.csv @@ -0,0 +1,2 @@ +categoria,scriptum +coniunctio,et diff --git "a/res/lemmae/verba/extr\304\201.csv" "b/res/lemmae/verba/extr\304\201.csv" new file mode 100644 index 0000000..b206176 --- /dev/null +++ "b/res/lemmae/verba/extr\304\201.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,extrā \ No newline at end of file diff --git a/res/lemmae/verba/in.csv b/res/lemmae/verba/in.csv new file mode 100644 index 0000000..f12736e --- /dev/null +++ b/res/lemmae/verba/in.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,in diff --git a/res/lemmae/verba/inter.csv b/res/lemmae/verba/inter.csv new file mode 100644 index 0000000..aabd9d3 --- /dev/null +++ b/res/lemmae/verba/inter.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,inter diff --git "a/res/lemmae/verba/intr\304\201.csv" "b/res/lemmae/verba/intr\304\201.csv" new file mode 100644 index 0000000..839965c --- /dev/null +++ "b/res/lemmae/verba/intr\304\201.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,intrā \ No newline at end of file diff --git "a/res/lemmae/verba/i\305\253xt\304\201.csv" "b/res/lemmae/verba/i\305\253xt\304\201.csv" new file mode 100644 index 0000000..bd2455c --- /dev/null +++ "b/res/lemmae/verba/i\305\253xt\304\201.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,iūxtā \ No newline at end of file diff --git a/res/lemmae/verba/ly.csv b/res/lemmae/verba/ly.csv new file mode 100644 index 0000000..3f32972 --- /dev/null +++ b/res/lemmae/verba/ly.csv @@ -0,0 +1,2 @@ +categoria,scriptum +articulum,ly diff --git a/res/lemmae/verba/ob.csv b/res/lemmae/verba/ob.csv new file mode 100644 index 0000000..771a3f7 --- /dev/null +++ b/res/lemmae/verba/ob.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,ob diff --git a/res/lemmae/verba/palam.csv b/res/lemmae/verba/palam.csv new file mode 100644 index 0000000..0382cb7 --- /dev/null +++ b/res/lemmae/verba/palam.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,palam diff --git a/res/lemmae/verba/penes.csv b/res/lemmae/verba/penes.csv new file mode 100644 index 0000000..796fa64 --- /dev/null +++ b/res/lemmae/verba/penes.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,penes diff --git a/res/lemmae/verba/per.csv b/res/lemmae/verba/per.csv new file mode 100644 index 0000000..de6bfbf --- /dev/null +++ b/res/lemmae/verba/per.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,per diff --git a/res/lemmae/verba/post.csv b/res/lemmae/verba/post.csv new file mode 100644 index 0000000..2e367f9 --- /dev/null +++ b/res/lemmae/verba/post.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,post diff --git a/res/lemmae/verba/prae.csv b/res/lemmae/verba/prae.csv new file mode 100644 index 0000000..73eb390 --- /dev/null +++ b/res/lemmae/verba/prae.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,prae diff --git a/res/lemmae/verba/prope.csv b/res/lemmae/verba/prope.csv new file mode 100644 index 0000000..fe6ce64 --- /dev/null +++ b/res/lemmae/verba/prope.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,prope diff --git a/res/lemmae/verba/propter.csv b/res/lemmae/verba/propter.csv new file mode 100644 index 0000000..d8091d6 --- /dev/null +++ b/res/lemmae/verba/propter.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,propter diff --git "a/res/lemmae/verba/pr\305\215.csv" "b/res/lemmae/verba/pr\305\215.csv" new file mode 100644 index 0000000..532044d --- /dev/null +++ "b/res/lemmae/verba/pr\305\215.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,prō \ No newline at end of file diff --git "a/res/lemmae/verba/p\305\215ne.csv" "b/res/lemmae/verba/p\305\215ne.csv" new file mode 100644 index 0000000..6bbea0d --- /dev/null +++ "b/res/lemmae/verba/p\305\215ne.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,pōne \ No newline at end of file diff --git a/res/lemmae/verba/quia.csv b/res/lemmae/verba/quia.csv new file mode 100644 index 0000000..8a4bad6 --- /dev/null +++ b/res/lemmae/verba/quia.csv @@ -0,0 +1,2 @@ +categoria,scriptum +coniunctio,quia diff --git a/res/lemmae/verba/secundum.csv b/res/lemmae/verba/secundum.csv new file mode 100644 index 0000000..ebc8160 --- /dev/null +++ b/res/lemmae/verba/secundum.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,secundum diff --git a/res/lemmae/verba/sed.csv b/res/lemmae/verba/sed.csv new file mode 100644 index 0000000..04a79a5 --- /dev/null +++ b/res/lemmae/verba/sed.csv @@ -0,0 +1,2 @@ +categoria,scriptum +coniunctio,sed diff --git a/res/lemmae/verba/sine.csv b/res/lemmae/verba/sine.csv new file mode 100644 index 0000000..7a82e4d --- /dev/null +++ b/res/lemmae/verba/sine.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,sine diff --git a/res/lemmae/verba/sub.csv b/res/lemmae/verba/sub.csv new file mode 100644 index 0000000..4f84c05 --- /dev/null +++ b/res/lemmae/verba/sub.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,sub diff --git a/res/lemmae/verba/subter.csv b/res/lemmae/verba/subter.csv new file mode 100644 index 0000000..9861cbd --- /dev/null +++ b/res/lemmae/verba/subter.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,subter diff --git a/res/lemmae/verba/super.csv b/res/lemmae/verba/super.csv new file mode 100644 index 0000000..e0fc2a9 --- /dev/null +++ b/res/lemmae/verba/super.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,super diff --git "a/res/lemmae/verba/supr\304\201.csv" "b/res/lemmae/verba/supr\304\201.csv" new file mode 100644 index 0000000..cb53a59 --- /dev/null +++ "b/res/lemmae/verba/supr\304\201.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,suprā \ No newline at end of file diff --git a/res/lemmae/verba/tenus.csv b/res/lemmae/verba/tenus.csv new file mode 100644 index 0000000..7115203 --- /dev/null +++ b/res/lemmae/verba/tenus.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,tenus diff --git "a/res/lemmae/verba/tr\304\201ns.csv" "b/res/lemmae/verba/tr\304\201ns.csv" new file mode 100644 index 0000000..70f97b4 --- /dev/null +++ "b/res/lemmae/verba/tr\304\201ns.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,trāns \ No newline at end of file diff --git "a/res/lemmae/verba/ultr\304\201.csv" "b/res/lemmae/verba/ultr\304\201.csv" new file mode 100644 index 0000000..edb136a --- /dev/null +++ "b/res/lemmae/verba/ultr\304\201.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,ultrā \ No newline at end of file diff --git a/res/lemmae/verba/versus.csv b/res/lemmae/verba/versus.csv new file mode 100644 index 0000000..f879751 --- /dev/null +++ b/res/lemmae/verba/versus.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,versus \ No newline at end of file diff --git a/res/lemmae/verba/vice.csv b/res/lemmae/verba/vice.csv new file mode 100644 index 0000000..10f230e --- /dev/null +++ b/res/lemmae/verba/vice.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,vice \ No newline at end of file diff --git "a/res/lemmae/verba/\304\201.csv" "b/res/lemmae/verba/\304\201.csv" new file mode 100644 index 0000000..c9451f9 --- /dev/null +++ "b/res/lemmae/verba/\304\201.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,ā \ No newline at end of file diff --git "a/res/lemmae/verba/\304\223.csv" "b/res/lemmae/verba/\304\223.csv" new file mode 100644 index 0000000..a7dc460 --- /dev/null +++ "b/res/lemmae/verba/\304\223.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,ē \ No newline at end of file diff --git "a/res/lemmae/verba/\304\253nfr\304\201.csv" "b/res/lemmae/verba/\304\253nfr\304\201.csv" new file mode 100644 index 0000000..f3d1341 --- /dev/null +++ "b/res/lemmae/verba/\304\253nfr\304\201.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,īnfrā \ No newline at end of file diff --git "a/res/lemmae/verba/\305\215.csv" "b/res/lemmae/verba/\305\215.csv" new file mode 100644 index 0000000..79eba96 --- /dev/null +++ "b/res/lemmae/verba/\305\215.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,ō \ No newline at end of file diff --git a/res/picta/favicon.png b/res/picta/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..683e189d69976be4eda931a19748126a63234a06 GIT binary patch literal 177167 zcmXt9Rajh2u*BJ5!QBZ23-0a&4em}BcY?dS1$TFMx5ZgB1lNTu5L|-W<-hm4PiLR@ z%$%9-s_w3eQc;#gMp~^95)8g4seBQsdqKGA zX?r3K--3HmCm3mI;}jn2LS@Q=;DRZY&`AwFd4}BVvgv7IpO@}$KYy0-P6&HgCI85u zEziGQ=w4p)dAlWAGV-b2#(sukT>x-n#fCZ&G}S9w^eSVrQqM=+2^s#GRw-ak%xYk9TECkzCGJ^eCv7T_dv+=Jo@uX+YtKbX=sJi-F)*GS+? zk+*G0e*iq;P3FE-=BspK>gdeg*Fa#<`6<~>iYNO94(nbjFBFxc-|*&K;>^D-RYx;t zfW2(^8%fS=Qk1lGXv5QSCa1y6iY)BK&vr6d5keJENfRSsACh}&m85C{O^whm^!m73NU$G2%UrLt%+Ble zsd`P52L(mE{~6L&)&o}hhoEqzUfZ6KUE6^~^%fSZPmACTOwQ0&9PM zjh6xL{iR!x7yf?-F^}uk7z^2j9B`gpbr5I!*?vwv93e8@uq6HGB^3VNYv4YR!1}bV2+A`qnAKXJSysjGf@!So(pvb(LBy(71=82kv zaNXr5+O!-;11>lvSH2lN5&A@WnM^T!)8;VrrK@wSivgnU6+U};*EG#|9I)u}2af>e z=_RxMKR{tPKdK${z&^~YeuB8b;EiWI8Ewr=)#9Eyzo(I`XlLKvjUe4z1|Ll#WuCNT z%&O=-6#~SWo9!wCL8j?7wWFJ^E6IV{bLUA}Hqz{TsaUPah0Mh5T#|+#+D>R29N9P_ zfgjz4C|HyKq%Wp7ZBQr;>u_#!;lJ-P5;5J86bCjl-wfA@8PqN4+D=0TqTyz6h^=Hj z-;Ys?wZo!A07Vs%8ve}nzuOAaN*T@aemygM^I}z+AYti>pPUj9kt}!C1(6pe)I%$I zz{c&wX?|?equ5p3;)^{@M4#=a@J|5(ntFH+^})znsTR5YW0PUedDY7#Fg|B%>2CWD zmbc-7G&NURni%KgwYA~dHpiX~ze76yqN0&-W-(;)#47_LtdLC=E1$#xBQDF5PSu}t z8Th*z@wT#d2bgn=Z9aZG5Tg$M40MM1*aA|A0*u`9n##Ocki*Ym0vn{h+{K1}-b$h) zAt7bm!8(M6b%eRsFa854QTr4hR7+Zu}Uae zvuHpENR@b^E)KtfK_2%jfoem2V@KCW1LWQRpqcmQ>aq4%A}pYi)4HkLZappaSzZP1 z;P{GHR|!ao?=>jqXuW}sGpE|p@Fe6l8q|meQo8B+1}WjF*sA+QhN`0w1NvrJrmHsD zm$iQ(;?~H>UpM0~d4K8iOGtatzqd{p=Y5AKna4&~y1WKbnu~-O(~PY}v430Pq4nI> z{`x1Br0D|!d~<{|(yQG%eh=f-O`W8yufC7B_Kz|Je~)8LnDUY6-0y^LzK}JCVKYAa zA3B{eq<*&AvfFZiv$*BK##%!-Te0da&td<-K7TQdO!;5D1ja1QhBNo~2m9$a^(=Pe zrr)0VyLA)d`D?0=y^Kr^VGVvtZ6_LHK%t45Ppz*3WOFO1-x$0?9-!CK_RH-|X%v)8 zk-1nVo+~X^V@FJ0v}tznqw%PeR0b>Qod&W50emdKk+k1U%*qALj8OmwcbzjR4I4;`Ry_xW~0vj zJoqoMI%#vQM1eU9v%ZknvTi4}$_J?S!m+O5lwEObc&jR<$&3K9;9o7HL6-<#`51A( z+0+}PfxPZp>FFMbLGT}qnE{t7z=Urq9tjMgW=QrBvWoKf*v`0zfnTdSG*8yVXie7i z4pFoJUKj<1t7lWM>bef9GCWQ*oA%3&A#bCKVfwRXX4bjW1}AM=zvgV=JW2UO(f&F= zLJ#cDdB_TYtAtQ+*h$OEOY$VWx}k(_#KYVJMaW5b0?Oo74(j&#z{V`)mcX%Q#Jqp0 z$?CjN?*CO^F4YGJlrCsC3IzRLxwD4Q=(lzL%+I-7q<8EuuoaKqtG!6-08u}iCj$!; zP$OeD^47QhHwwq{yi#mD`0G)d=j)Dc8u0>SvL09Y5!1lAyb;N8&|cujv!jfRr+X65 zE-%!6k#pOy{yEga32+J$tSn#=i9!pK_{-`8xOMA4)IH|;hvwqEAFO&vd%zcpXYFt;2!@*2$Yo5*Ax35q3RCcL&oc>;|B!;vTHTpHGu4J>Uw2w(m0;=5 z8qa=B7t3g>W7BZ5R))r`Fqr+!*xN>OHEV*Sq8Y zezg%n)48qln3F{6EiftH5m~$;vNQ*Dvz(mM@H4aUYG3Ur^^<62U&`3-pBE1^r*07n~p)<>uf=l{cfip*0o+K(wLMxL;vLqv6=edg6hV}xz#-du5!mrU$G zehKqMt25%L>PVAipBYd2i?uPRtg6reuiZp`k8~>>D!e&XG|3ivnfq@Dt{O8h&S;9A z}TE5{JQSs|9iZ^1uwz>Pq~YryDt6%@TUueE!RcIdU}B*J_XCyk*-`g(gl zrok7g;LC)OsWHT@p~>Y+#dFlomEJ^`{O5DC&^Iyb3(_6E9$2;kf(DJDgpJn=<)DQ` z?CWFHZx-=8W6c&LPhz}fofY~Q#vo_Ril&c~0Bvm;)6DhE5s`9x*4?XFMli)Y39zqp z`sa;=4_6lrbou0n4I%5jM35STJ=?;;7*Gp}a-XjbTznwTt1=+r?D)ON#fJ>BFO^zc z{4!U&aiVUZ5Op;08;Twn)agJ=;Wp;A*Eu3Xc0jCSa)0wr;Fa8R?z--Kj`iNJnWJEb zWmcyGl;VxI&V+uDD;$$~z;l>ZE3-V{EyL)WLXPu8TgXRP0z#|!{Q=59y>LD^e3H&l z%xHLV@dz@VO+8}GAhjTLKk8!U8aY>={L?NjofI=QnR_$R%)T}EIepP}i%w^)u8V@z zzQ@b{yMXuXJ@>X;aYFMfDeTie@Rm&d)!&=wdzl$?y3&)u>zP`)tq)9!;BkbU4b2hc z_DK^EchSOFKMMQVOio=d?yC5RYj!y4#vWM|&LMr9D?)c5+xv^{X%Sq?P~c^*c<89q z-{RRDn^=^D-z6RFEI;EI`hrs~2n)<%iZ+Cc^BzPFxzD1}@^0VpSjbj)PI2Ea)wwMA z8=m6%x@^5xr;kOJmoxG*SHxXm510|TAoefyHg)*HT!zpw2%mWtEy!yNO5wqMn{)e4 zZmluYX_gd#YTwA&3HYo+Czd!06|!Ri3WmOc153FooXpjgd)dzOc8bnfgflE|=x7A+ z=AmAkDgAQ9B>%zSIcYsF+oOcd-OCwz;AVuMk#IM`FGn>rrikhp>F4v_pLeQXHT!*K z&PBRlw`)6Nfe&2gb_-5e=1ek4YWE3spa@E zPYly!`@M8d)&pbbu|@5tvU*PH_0bhq7ISN3`5JysEB=9aKuF`1*+wfXweIsroyBJl&j3>cNMEIV;todDd$No@={=7onsOR{i0Vqbg8uhNCyS!qm8t zbR$)JfUsto} z_DAo+j?L*wJjEG+B?(`JIUC;0i(@FySkY3_(K3y56r(-0ofcSzhS|XZ`r45)1ce>6 zC9?x`#0CxH#$!V0nUkdnm&7$R=h?NjUG7aZ!yP{A+25JjtC~8OLU*nIddlkL67rPY zqXE4wa-DNEU(ea^WxJ#nOY&WX|ojF}FO%wOz?I4f$eIY;|yDz%oYeP^EPJ)sbwf+R`zF7wN*nJ|IaZT>@14 z410`a6u0u*SkQQy(GG7234QhOwT*>DOjqPPsluKGNeVJdz1v4IG2*_d@kz*uZSx7i zz!ve2$ZN6v_?8(TF8GtI#;K4R9FYnCB!%L@c02iuy0aJi{vszg=4&W7_q$sz z_IY-Fe5=2d=z6S^{rZqwKFd9_MwsT5Zx!|6Z=w&R$-Hdu|?z3SAwiu%Q= zX1B{Y%gk{8^0)pz9#H)oHew{+?OW;{l9;HTmv-AKoU zc2NC4UA=Zb#k2a#gZ(o`H3n?QuWYM~2OZ4|xgyVJKzgA$8|y2<$6fpZg*#S+q657O zO`uI3NQ+vCK+m5S$>?O-c8R~b%v%}B#^;Nf1_DBo>CZn|M+(Inqrvsk3^Hv*ENVbI zZQ7Y9(@+v$d56KdG{rd*7}}5~KIt>sB)l0cXlSlTJP4`Sw{`{D!e5wMV%W>5&UPX3 z)3)DoY0pM0{2jGb5HB72XODdaj~Bx*H|h;l!?A7ODx=P{(c{fr0H33nx$tLsOkw!s zVNIeFm(GMbl#i8=psZD_5w`^K`g!&(Bj2wnmC&m{c=9`oZpuo=W}#Znsw|FSSZ5@r znfVEW&4SDJ4R@#Lf&NXP>jhQBzQ3EsX!94LOR+#@_V4fHfsjMy-o_E}TXYb}84uIN z_0)j;NU_^B?+K9sLv5&12Ln99OPK~8ZMd)l%JHv^M`tFd-vCmugW?ZNMe&rQ4#Qmy zy$EFS<`#Z&K{U`o=+dO%J01jFL{%+aahhu2h_q7vu*aT?#1+n z204u0!D&C$?w-+ymZ?L`C?;i^zesVQ-C{c4%E{dLOdKst!QjK@3djq<7roG?RhR9C zSKlS{_XKxTI=4As!?tdVWLA&OnlU=vqk#?gcvt(bcPWtzv&%d@VQNTpep{qV+pDoU_iM5>%*BSwKvGkhlfZPfygVqXVTpb_*J$?W zC&m^N7&YkUHka4U5s5V5hi}GqjEkLdVkD$|(M@PWyW60jH3v+!n)uCQnwehe8w-)_ zfO$%G+48l<82iv=QBGl#By9d^5p|8^!*wifz?UDEs#T3X!sJ1laRas5>~ss0nMm+bxLUC*u8Z5_^^(&`zk_ehn1!!+0 zAIy*VVo|RJL8Bp+6XbnVPTxZYq^_Tsy>5o+HK6A*@bA%;!g?*G9*M)xykbv?5W z#TK3f@3hlVCX1k*1eSrW0wQUpk=am^j&iqHcCSe#Pok!wF);Fw!l4Dt%kuW$<3$Xk zH0+4wg+Upsqn~(i<&R9fMhyQ``n98)ZsfUV&D~a`&3pIa?vKvCqwWx{dC`5aGk*x7 zA!)IxbH+|uX8JJmp8j}fZ>+3IAk~hUg);HT;S&0k8YD6=oZ=E0Kr(!l5E3e?bV@m> zr!xz|7tuWWEvC7&SXRl3plrF)^AClf5@=?8Rp>!cw{m}Q{rFD$rM5(Yoc_CxMY|IXUe0&4b17GC+#mCONUy8j zpZX`#Pd=TI`uQXbn1~N}AtkHx57C!f8E3;o5Vfrx*=t;;{7}_;7C}>L+INZ?Y5}*} zJ~LkrKRgMlf8uGohWVp8!bVLMY}@6{iv;evUG{pfc?jxbedw2lkfr%pw3friY>)1p znTbrcNR>HQ<|;zdHH~;+J#5CKs7Zf;9e{?3JFNN?dk*JUtPnU)%@AT(%NpKAcFmtT z4u*qNY{JSqE4YjST$ARl)=Tf#+Zz4z-Jd8X1iort4~r~XXJ9V7Iy-HZe+SN`HtV%+ zlQX^O%LPF(W8Nzx=X-;To^!x(QTC&|a5+kkg6rJQEe|eUUZv7yZpTn=espXc&fetB zZzGdp%`~DR|4pJk_e3nChVboW3$L|`oxG>*-^n!_5~a1&gaSEj=&)(% zp)pkJIOl!f8{Wx@It~k#wG(A#16ol{e1+hChsmp}i@;{?KXDJk_|TAYRex@pX}^b- z)7L)RoS~7Tll=M`fk{Vjul?L1k@&TA?S=dMLP@(qV65 zD$vo4U7v^%mxv(_sgh<71!MzsDKtA;lB)eQp?XH{)&U-6giTmwRS;oe#ATV;n1azJ ztfAc6v;Zw)krLrj$Y@RzeSfv`^;3qK>h&lW!HC~mhoz`>$HR#LIdjQ3)@0H5;~1x? zF4F6w%r}Q{_I6JB9E+u-S1tI`%uo`u6jhmhml|0$CwCBeEV_ps`r2y8%@WZc0X~&d zIkWToxxN%PsJNE@p_T{(9hn%K8FA|lv z9(Xf9j97RSb|pr+Ha`pM@bS%mS=Htwl^-aS;a^E@nvs;wS1K~>ZTO{=w;ULN(;%^S zpEx~~dxl~|%Z$ny{%zk3a@>4#N%d4|U-ifM#BAW9{ zrG`9F^G5!UBsgUiKEzrg=C) zbcFNx9IJ#F!!mfU29?`Q#!0e@I+aqgj>WNgx`c z!xWnsM#_D_Hiw$!4c}9spZko&sKyUI@1X}iJ26(JDm)}J=Q9r9Y_B!~z}4pDuzcx0 z)y2CfK`G_4a{T3*(AwfsjxMerqa~k zS6hB0T+^2cvI+vQ?xmxXBykkEbm^!SF|9pLhvLUHyStNhEnA`qhE%DdO~znj@9K0Lkx`eAtBXCQoJPH19T?gx z0i`tQ9JumzyGwT`8$&#B-m3E9 z5||tcIfI%}n7Z#O@!4TzatFz;T}pi{amSHXQuYlrw}_j;WLf&A6NKQK^FxUsgIE#P z^%1duCMh3-^wktmLf;rC_zSN*l?2E?ipkc(5`-OZr1csHR{$#j$S_1H2i<3Mq(eHm z^C#|PY@Y%NB*9g%0c~f&A0)}OA&^)fXJyln&&)^17DOxkvfl+|WpwGylUYC_J1cxL zE&G7OWznanZghyIuWddD(mPE+vvAp|f{# z!-bJ;mMF2j4c_Hsp@Jw4C!axETE&4~rSTsrXLKHY*6HJ6)2gmC0JE_n1TXQ${q=f1 zmxckt6MouGFyYJkd^!f0#z793p2Fupm+$~Mi!xyz2J-eYq3MBm7kZZkhrGO&3Opz$ z(|ayAB30_o3<+g|+}85aIiJs2q}s9-73c=v8?DS)$^G)7?`c3D;kyTSoU3QHjzwB@ zwtk9W)dF**;6@o2g(~#k=nuAhN>O_3#zWe^gTvc=RnHb-xITgIxe?=9E4i}!UY^RH|CL-+Qyj8MpdVs;~Z_6 zc31qRNC;8ucY%mwPa!rm-n1zm`705kyI_R=9DkxW`tMz+`&Y^&YKD<^7?~^C1=u%& zR*RnS1!xM#W2P;184iU5$rX-Rk0;e8VLUC0P87IrGIq;PlswLc8Vz z#T#=P+_XE{J06myC6yieUIJ`}om}KJnUMM!{QS&Bz;gVKBG zm(H?{&V}0pcJ8!+MeCOePp+@59(jEs1(*OkH+EQI1W^l)$WG4WPM0;FaAYjaYJ$Kr_QEFH6sSG_X>f)*2l@X zd+{?`^CSTNcv1LSFyKWRVq#8R{WKzeeC2WGU#Lk-t>Fy)y1o%Vo|`FywV0?1Y~I5r zEE3w`M?mR(a<7l&g!@UATpMNZwikjxV>kYl22H!-h_Z|EgU|L^u66v@`hwS;3q$XG zQs6~L181{QM7wP#;ZjvoIt|IuzZBdd*d3V`CycSsw1jk&>`2>BI|r?KbRC}(z2OT! zvGtXeSYuFV>l0o|vr0~UMRl#}pJ&1`PS|b#?RwQ_W6DX^TV~I?E~rOZ>iF%<7YF*% ztr+O+Tok5&29*0P9V*tKicVtifH&6eAeoi?A*-26e?xZbr7_Vhz>21ZSb3=hyDt1h z%Ib13kXAQ(vu=3a`CCw7sy$k>TopD56D<`#+;*J)E(r~dMgj~#qZxh?<_kuUr9Vk% z==uE32p54#=rin{0!dU2qyQ$|;!D5aXG71b^PWypQwb5n$q|pe9Mv&55t;%|jb2z4 zq40I?XU36GD$pAfy!H6w)Ym?qX_wH{D)V!(~7*W9m@n@-(-*jlxNFvZIhnA*$ zV2f9XnLa&EkkgcF;#u*ZH#Y1A3D8qguwHn-Q9vZ3seT#j*x!Nb7y zl&y~`>G>H%5?&89T-5oK;;k3+Ft_ExfQ%r=!UBzhsFBoOHLr0cq^O@R91W+Cs*xcX4y(^}>R>?%mW^!;rT^xGExy{*;3dOmOG>_dXfa1x3XaNt; z6q@rqtc6#PAEBk8NO~o?s5_M*JC&7xZm`VtBKh#B1RJ5RM|Qqy zfXo2i$4A3xEPa#j)PrnIv5A4Eg&bUg(aahh{fj_IDB;-L!T#QB@6gi_W)=qB%;Cwp z^ohcETuVXEtM)FJRUWVwnm%J_ngwvr$@JylNu3JL7pNsWF)=Ej->43{N) zF)6C_SZh(H69qxop1*#G!Z^AD5T@HB?U`ctCLAUkoQz6k3n*xI;*lZ<%OcWvZ(KelVL{Jpzy0Dm=6zT|_Q-WN&r-N9 zqDe^5R2b1YLS5|`KDTj_e+Myy2GOu3)*2t0Cc> zYv~auIIZ^ZXHPBf0}$22zrA%&1R*$hil9gqA@Mk!R~j?G6!Zh;Z@n|awzRUXcz};Y zF~f8~rHiNT9LI*iy8r?>--}FtgCv#|b29U^U;fbWH`k&4!YFjfEv?I!X=yrpn%&H^ z{+(t0H66YBZX5p4T(`RjLf)qph9eIW4-TCAcIl3#e9Xm@*1Uap<+(c9pE&T!!OhR9^A(d;m+vm0!XF`o;9~`N{ znJlxS+CBt)xPZIxG(nq%nsbHnw@sQItQAho$fgW@PQ)SIDpm2qTvmcWD=%jL(6Z+K z$u8fdPTFZfxHyiF^8TH%1yq^_KKleub=E3ZGsr;_jxe~Lk#Xsqnauge6$6?jZKS(i zOE69&5h^nhl}FB)pwnaKfXU@-mB$Isxc?-00Wv#jV1CL5-;(mHaTc*<(833(<-#!y zs6nLO>qZfM2M0Qy7~Mq0;amJT3DQw}B7LTGd>_hE6LeT(j8#I5rK=_w&K%C{x%=u* z6hYvPX%@!n{n!z{QoLJ|-MuiRiwm_}&Hiv=qm%6>`x=z4!-TdubfM?lcPS{_$Gw zj5F#Dv$SgrhI}j$Il%ktgZ_L8IXVJz-H=dU@Qxb`w;bDXR+8!{JDk|Do}vrDEW8i@ zi_owMXZAcK+VF}4^6+F21}b|neO1H1=ut};7?2vk!`=G|Hzwa<$0>ery~t0pjy>0IK7buh)wj{0fIqMKvxbEb)N5%?*)F|5-O~!Zo`fId!Gy@sEm~z6l-Ff z4b&iHn+ip9oz0~A%_09Q36Wm}{m$17LmOSL^$=q=6Ppf>BVGsm5^y-)N-BqGR|{Av zN}Dz%$;KJ7CT~ksdiZlQ`^2~xj8diPU1v`n9zX)FFFzkA@4{({vla<=vCE`%oFJV5 zmhOI~Um$!cT@#*!(MdFWlQ`Bp&=a;?4WEQ!9UBs{{GWF6T~slOTORGyb^Cm|o!IbP z)K2;)sE+1{PZu`%$#!Loeov}GV@wT6&e>Yr&`6>*tB4aodQ2fPs=145;%B9!A((Bc zuo$tthjlm$_<^vQ8y^+v8Lm%Fr*t>yF>7eO1tv@VB8c)LHLI@yQL}2D=>{;tn*z6oB`}0%0R-}mFio$w?MaTw_!tD&7E$Uck*>rb9 zxZ&p=Vyu2b37Nz-g;99+cDNZ%JO>gg2Ww27BPXmAX9LmD&)Vm*DKbA!js zN@r5}``*WoJjgICFs7TI1uT`k0|=AU}K z1D|hYUue3tygJw0zrEz@8GOZ77VRSImWAkiu%iAHxm}vcV6X1!#5RV1f`v2y0%sCh zJoNZ9FbnZD=Vi+~7pHt_kk(Bm8d+>+iD&ed)_zxkeE-6UhBnLXj+NGqv|(VqO2RiE zt~kKf_5C1<7KWM8kWmN+;d!C0q2*?~=C=D48|GLO%@ctuEYo;`uu1V};+|B|N?^1< zS7U64IUEG|fhfvJXXZ}DM{!^Q4Vu1aY@xo)lS|Ubv5465UlFYklrD&E$QEIJCQPhx zamrUBTY4CveY8S@26K0b3w?1gHN4Q3r~s!A7nP4hGJ6aK6q4$NBR=(Kd7qvB_Bl3) zAGdfQ{3R*<#WZ>1SBcz~>6fQ})te#?LkVuN;UB>HMp*+**R!9qziCMjIo&Y6CloT+ zPEP4LxV`3Z&iCm=MUT5^rvVujyN+AthZ(W?TyR9UrT)(4U$=F7?{3Xo1GWf;B^Uq7 z^5XZwE&n4^Nq%lV5H$$;X1>(&M=%y2pj5f)`k^JaR*j&NtUrs@cPXxuE$7KCfm7+yE-ttA$Lt>#JS>00& z&3zHnFEI=K=I#C1Iz{$ES~wRypI;gNlI^CRngXQk@^$GxGx05fAVnwo7lv0G?8Q!_;Q;yXBZblvyFO2Zu)3Ev!3nTH_m@{b8)DnGuNY|EJUz%xQdOJXak##Mn1L!h%@bzeh|d>+_|J*lF$8KSXU zqk#Nj?!adc9A7-!+NzsnVKkE)!%|RW&zyf63D^>k8|W)!Q)T`Z^)CTMhow#eE#T+$ z#=1A$mk@p%p0ljSTk;?^nw_tq;j9)q*_?2p>Pbc@fvH{Bq>l!A1&k3DoNya;+YJ&a zr7VZ-#a=S#{dKi_gUXj>tE86b6n`uI;51GHc($9Z0G#I#;bSOEv_QnIxUl< zRMY|^ga&-*bhYY%zp6uc7x)+=;Dg%d}$YN@6_W z-1Ce1i?2Of-yTvcEG9IU@!+87$PIt*E4UriO?}%3UGsfW*TPFP@s~U<4{brvWgNPT zooKw@dXO)h!x3=x>SGJ6LJ4PEztX8|aCLq*Y>0lDz9Lk=QTmS*b5QO?-z7qnSajId z=mQxfd3&pVXpG{=BdqZnfGmOtoMc1RgR}6ATJ4{Ek_%g`St6``+|_4kr>=8CQF;6k z>X?4RL^gHp>;Yt_-p*P?Nmr$;;gq~uJ&_KtLz-WPNy~1D0>MG9pP1f z=tR!pT%wJD&`Z^e<9&qkRc1#w-<@26O|O0|qw=(*(T3r((S&|Lb>s5_NS*t_tnsX^ z$oU#Y=zYCpm>pk6`iS^82$eN}zv{we!%WTi4UEBhF5*F~C^b$pFra9*L8SwONia$i z+lVezj@F54pgEQA@Kvq^dZ4s+leRvS@!8|qX>=}O+Du08X=I_k-d^2k`|lTYJ@}o+ zW4W`|;LbASV-6QNB8Q5~y-NwPUe1w3^l;P|CCgQJsYWV|*X2)qI?Xu?+!4myYnR=D z`SPLVSVpILHtORm=3pzSum94;?#G;feuYNKD=*%#@BSD{9ypfUzr6ZHs_e`HGD0}V z(QfA;g-RDeYqx-QA2uNRqhQ^pPltRM|dI4mR3mBDxM^CEEEG^2hj1hORm%6H5psP1!CRCw?3 z--m|7a;iJ!{p97kGHN}_*7F%<8*cHAjt9HwZrRw~Hb=DvMW?4G%uGq1m zRNYv(ZEGAW7BVuN{f4qx$h&mOp!magevdXh{7B#|O1RCRnT;MD=0Gnie_vR}%a&q= zSNmPBpj{O0yF4kqOPBYj83|)jyUey5L#9@CC{Q$;M}+QI9`+uy3YLsuxVRgw1bThN z)p>kDw?tPo?cOi<8la|$XWO*P8^5*D6@o}3<-fRhbi;s6Z!_SJ##v<3WPa-OENc3w zMp!;+T36yJYaB1_l*vSKLWqFVPys~o=&C97Vwk}nvJO*Auf7nok2c1=syhPU_qVVf z0kO!dlrNi`_S#Sd2~&^;;FpsP+J4SLn+18pDP}6nonbQ+%(JfNw`xc8{#5}>QQ8q; zEi0gjGwx(i4#Tw~*Qa`R&;rYJUEt*i-bCaTGbovEuvwoRSbFd`0kzQa9P4l!(9v{= zm$n=O!L-d#TRJKT?q~s~gxDeHI=4uk|FZ&VC4b-gr_dQN$V;eSMFO zg-aP-jT_U#`F7)8*>Hvh&XGtUdi>Qd=uh#!QdYHCQYwSBiT&Rs4Kf{$GSS9(aQ^C9 z*BV~t2CMV|+b$tUIn>0R6Gd*Agg^+uWB=R?p0diZH&>U*LG+=8pl}him-XkBs zE3ngl39siLxSq|z3h&J@Qk8o0ylUZDoDywp1=@vW;?lDqdWWZlLS zzW`*aiKr+oZ8X9Se(if5uz9Lbpt(+di?6F*R^0WzQ>=~%@x*W^8t?LN=KxZy;@eOxf``*2q{SYe-yOH| zj9X3!*?jPH5_AJL`8qB^g~&YE_opEx1?h)xXOA1sCv%XJnP;;%6Vo`s?Xy$lT-Y54 z6a5M8Yjis2PeMyB3;fpP(Wn-(7heS^I^z$2i<)|61SV8(&g==x>|j=FxV3m8rE}{4 zfkx{Prni4&VrKqE&x$ySVhJRuT#NDfuQNazlwD`Ba)Ey0$e3x>e8L(YB}1fNVrhcl zG<^GSz#VN9>wpuENwUM1nc4eBuEmV8+?1b_AWEO*P~YSX`Kb8Lu%?=Q#1az&tX-k8 z`2G5{e&ZA=7uE@Ew}p)`6%D`9_B6$5CfLOinumyAii}O&dBu@oA8T2j|lG z+liHs-p<_2J8UQ{Hf?ks?!}L^dUX4S62L*dKIm99*{z{XA1pO@&i%`f7=-};OL2oi zf!8YT2#0Z)U_vHE4v;@Soe3dDx;NjXh)UUyn2uQ~q0bGI^!-)J*J8NEYP(zd% zpSktLpSn{(=a96w3&e1HGI0U-$HJxty6Mvp)3EoC%O*MHf)ZYQ)p^5BiJjHg(giH3^c4#;?#yw$5uV|u6Y7e9Djj90_ zv4K+4{%4NjCS4gUHtIksT~n(9jf%oa;^EL7`gjlH4|YCffiV$lM?x9+X{|bSZzf~T z&}Uprfa-u7untnq(a$q&=v=<^uDh;;mUOtBtxyMQP?3znJu+607jV4OV_?&#&W=P^ zM%A-AWlmO>wg38PiKx_FTV$*RQy$tbXzlH_rcK1J3#X6W#{{N^JUgTR>6SP8-qkkm z7S{g?45vkn=E*Ty*{%NTais8m2ftvMgQWydL#+$^Q1w!hAk~(MVB4yN%iXefqo&Ts zH$y9K2@ehScRdL_)>EB1xdxJ$y70L=O4Ff%UUc=t^Gip!jW&*n`2d0Yg#f*&m5yfy zG%r0od1DP!&W#Lo!d3aXqy4evQf$K?`7!Qb?A_o9I9UaB;0mGTYXI#qK5@XIRv$l9 z3oe~poRJq#K6N{^8H5cM4t4N2XuMLq2i?*a1C7XbKH}rHHTcCFU(s`#b^os4A)_!I zuf9KhzU^H3Uh})wj6F^zO*yxuI4|26k(HASt&;J|R1dI{2Y)V86lcua9}1nc z1o)0$3I1pB>UhVe3ji7t!n?<-67;zXU;H>HJ!X?F@uTRH3e!be4iO^g=ajcYhMT>QZ%Q|@+KIlk zXT3mta3aN++nXTSyRGh}?fbn87BG@i=3yq5ixod+@GONw2x)+H>(k_u592|`$MGdL zM+-8KgM~JqY_FS>FY;wP(~pOAx!_}_X5XpJlFjw#29E5V@;W+qDnC4GSMzA9A(J1# zU{xM4y*Z(Ui6?%OJxz!0(n!6qN!Z~X$A5Q!K$3D-N$$#>y`?hlS6H^{60#hRhDOut z6st_8DsY$rM0!?s3K*V?gw_!a z(SSGlaW^h%dHrnYsO$b!Ny_Tv`A6PvijeoWT3)i-C7!QZ25vCjYtmFq8HU!KQx@@jQ=}i^4P#@1PzT#xv(g& zQPo;mFCol4LXOb%btALmmh(A1=1?W;893$hAZ=)V!oYMXAS*9@cdzUtTzk)ck%4I9 zc3}tz#!CJgL(}Gp|KjN7|Fr;m4I;!*SGh-A@d={0Q0BjXtY$p$T3rB+znFQKjAoh} z@jS4s9tCKuOeuaUCMHVaVyFRi6m!9`5RZl9=NVBthrUi(lR4@gm+SRVSHyU5cUp82 zc7wcR9{WWOomc5Do)(@B+PhQI2zdXsVlxA7U3K>B`1GPH4XCYX7kj_FvmxT{N6!u3 zS(O~SXr9WOweb7=fIeE|p@tBH1+k{+dBa(CY!Mns%QL8mr#uOHoF$YT`X@k6KfFkO z>Ac)*T%pJgi`=!g$l}4X9ns?YKQw&>Llj)o_Of(H$I>83cXxMpH_{yfN-W(-N_QhI zExmM?Gy=;CD3a1r-}>C|_YdZrGkIMzb2zkjF&=9n-kYs_Q?S{Ej$5<+{~C1%gtmuXHYfhxE@C48;uiFh&zgW) z?5^e&7nq!B#a~2O5!AS53&T$=qai}v26Xa{oWFvQl&IGK3NLmfVaYb&8CgK1p3v`< ziHxE8^2k%bK8e>98A@jO5q;7DOB(45(pxEfW!ieLfz@8Ekd;z zBo10h#6We&y@q$C5L-}vs(m!e-&p8n@6>%D?4#M_%(u5$}k2+u*{zKa*6(&C*bkY@d{>Qj*S|3R*67RA-NM&xCYEU|{V(>*7C-1E=r21Qcta1oF5d$Dx5VTcYA4FZcp)-`x!SRr#RM*%&Y z!3#0eHx0Phe9^Y`-kw`JdE!^i+spLX)?M9Z%woYaGcTwA0*4sVmgq0X09#y71rGlp zT3&p+0y3&PF0l!wOw9+gxv+>1i;-+s@|R_8YtNWdB!PC89rmlC&5XS~`474s$zv@2 zIXMR&QM=9Eb|~;+-ckj9;W9m`&wo7K;MHSoBOHjR*(c~KJwtw$@RD>FE=lG~eQ(I4 zVe(#yPdPI@KK)Fs zLAsoX_g_&l{Bi_i%98dYzUv}V`qVPv=(G06b~k$|Vqq?tnbtYHd)Pwte7`$r1u(1b zDm%sO7G&34nTGxiilpq`1`S1ZnY|die~N4dbqELT=2o7+t|ay~KWvJ`Zy%!LX7$jH#}6S_7s zoX3vC0Z|Uly4npPjal8Kaj z1!$cmh?_*UxE5utGRVaMi(yGGe%K50lHuK!?q=q*LWI~@{s0%u41p#ss3Zf^DT>6t zva_AD08{6f8d4?i{bQG$YMNq}v%9-ZLH2-^?7KasMp zVnIRV{0+ad4EU7cW$PT$EDZQs2?i9luaRZPon3t|L@SuX80m?L3y*{P#j)J#GgX2Aw z9Ckj6PX*8G8*Q&ZZta7E$EshL%oomy**s+YW^k=>%^lHpJ+@V?feCV|QV8MosgocNRtla?jQt+Y2IQpWGlD6a3?p z=RvN2TBE*{;_>jj=x#+0aGK?ZD|3SMYExb1M~|CIn~-?jP_jc5pTisC=!BMNWbLVX zlZi8DPHQ*DUz)n{5$yTwkYO{i)e)@K36WdU`A%ox?Og%5+3~~se?oC0Vi0`NtOc_is#rn9X#UmZ0tlHgr#31kwH#ORch9i>YIDEOsX<`5m|hq~!ngnY*+ z4EB=LAPO+7nVS}Q@Lg$~IiK=r_)!whc!CVa8R0}V0@`$cVuV`w<&+(goUG0YeayvB zOW*J$ylsCx^3lHmrWnf5Oktl@9)02zStP^buzAq$_) zL3yR}-hiXv6bl>yrD)TBI!^tp=jOra`h~V1Z-}@#mY%eXb}Uxz&HDt7v{avu5C-k% zyOcj2VfODcy=Qtj{yFqpTF4cj-esr%rM^!?U(QNogScRLTKkHWgKlDTG!t? z38nYM=8AUqZWGCX4VE!4CyyQ!JA_K53d9w_|MqGKzqZ+7bs`jpq~#Ls%tX~r#ppw2 zNRmElHOrDiEyieZI}?$nq@9JRKxe?qM7vKa6RHaCI(E`-xnRQgI00U8Ne1Y&2!XG% zc(`+R+2|;=k9H3@^6KUxWj6PQV|d3J^7DF~jRGT$AM(_M!vW^t38dAG5;bq_--}u2 zq5J@{zR~K*`XFh4-@#k{ojx#0VV&~HG$Jk$C65^f#d1N3ruA}r^%`>6A{h%~EGsYb z$#z(^RP-N~;abG`O(}Ecoq_Y;^)Z*{}n;mMK-N?+ZCQVIb;1;)=5l? zXK!7Z>VcBS^`$OdSfOxSTzrJmt}sw}8OI25p!qOIpf5imtPvC`_r6tR=9T%oe;XFy z1DFWSYW`s%->)2q4#=%3C!Nq5Q4^&wC+*+)4xC7Tc+-`L8xMV0a!`Depjz2MA91Pj zFQ|!=h5gLdd*6XkmC1TKfp9$TKdfavL~$lHlso;uW^Yq(_EE&cbTf&PTdA{f;^vqc zTj{TUsq+K;fTQ(IG)rbY%MioPGx&g*z2ennUIHmk5ZaJwIzfi8gbIcb<%vwmOWxmh)0A2o?{B6tG=)ZoB88o?V9U=9| z4#c4;0SfEHsn0t5`XqGo>zWw~X#F)chudbsiV7-maiM0C#JLVDKI>8&*{_Tct+eBn zb8dJBDtaR~U3A!v$FC(#5I>^{D`PRr6`fNy&TJmxZn^9#kpN&4&#CV)$m{WAc|nmh zHeKG_00{A`b^IsMQ6f^D=tIPzaMG6d64BKjM{qwFfaE6({OHl|g*{f5&px@vgS|@= zSzp?7yjR~&ju36=HvY0wX}r^W=1mIt*xR)Hry@)aUCauO5yL4`;B)OaK?7Va@L$){ zBdZh9K?uE?-pN^8?8{AZPxpFZ^CZX?bf#k92e&!u$AYGJg0U=arLJ0Qxo2zje;nsW z-IfjisPysl6~MIxemMnbju<{J;SsKxCT@pP%=d35xuR;&I1xGhP6kY#Z>l|2Z?S50 zR)Ie^9HMwOy@)e{O6_!n;KG>x&dH6^duV0NV2+=GrDt7Ybo4n*vBhkYA935I0PD24UmAJ8 zo4=bY@~N#o^i#hUSw?7$r|wtw-wFJ^?c=e$-k;8Ao&jlem>#0!ISr@qn`X*K5eRwu zJcR~`1b#w}NVylxO=fnKJ}0szDhs(l>xyag3ckJRJo=Pru^5Z}>x>y$2jkI2%gTDU zL7e*{u^xb=zFifFYwKVT5Faou&eCASU?$X!!?~6r0OI)uI_)j^&dl>iAks_J)^$pv z(Fnon!t59awMZk^Xk$>*VUFL40e2q#ZnVla;%Qvdmy~B_B4VKumH}i&#;*#U=(UVVCV;iYRiVeD4G3kBmc^Z;@fOw+ z61?8((SzZ%6G=rzzj1&D*3FoTE!2(+m3@N9#clT_4O%n-wE>I)g@n9*NR1NWTG0Jk*%txUCK*Ycw~cB#99}f3r#y?z5{1z! zzmA*d)_}Ek9Hy(@Yj}rv+4kBXhd#HQligh0)1%Wf+_oip1ielkR6T@w?!#pFnVy@m z5=rV%F;Y-1X{=hTkA{|jwpD~fk8dcY;M{8x-azC&Co$GvTMz2OR#h8@u36u@{}YUm z5O;(HvFCn7Msh54{?jgn84!Cuv3V~S`JAT2EG6lDARy_bo%FI)>;T{P0qKlWw*Kry zmIKNyDze3D2pE^1JPHxlKEgG)I`9lJet79wSu4xG?U(Jk+UKbJnG7MQcYN`h-pTDS z0tn=014nnbFjl7@MFie_ZSZaSKN-}RXb@IR!^Bl1lYy0mDz6QNY0hzBHZ-oZyY9Al zxVQqSl7;*v$E65|nQDy}T)R-3W+8VzrFP>iMiJiK)|+m7kRC zh!gWhnR?{zd!m@Ty7#n3@^w5BfI||8pcmMOVx^}e=N($~vpyhmY?si{m9edXH2dx6 zXJj<6%V0qJ$w2?O+|;{9YCCF@8IeFG5p`$rUqb)1rJOK8Sa)Cmm6c)&Vfcgo=Xau) z_K*Na3M~cOPh9;mgVKNbctZ$QG>o(1GbHERey4b=id$VAp0igHbsEmoZrro*3o%L= z%4YNY?067|8_&gMQRYzw$;)1F34aD{ei{t&b104hC8zv2t33+sGr9FBehReO8pH5E z{z~^8w5D7ihWO^ofp5zHJ==byK}M2xU&s~*(7A?k@Y0c-=?fXd7m=1|Z6VOMTw z^Y;6@uwjFDGzqRxI-|z-hFXB)=Cs7f6;8XI@+kxYXbt44ldD^@4`Wo%`dMc_hR<&S zBc0x^k)ml;Z?|aX(H5;Yl~fS#JaG=Rrqn49#IaQQPFFdA-VzTEbmoPf&W^F_L$iSf-x zOu(0B+rpSUzLX@cwdeagEP8d$umr+W8fr~P2s&A|)Bp&mz-`TGbEg)dgbdCrHO{~B za5h0?Z5?fkZyKS{K>kC?Ci$!uVY3`k5Q^lOf}ILi7AcjmtTdoPvk!L!-?kBUkGsFf z1D9>pmp^Zc-SBZc(G%-oVUH{W>Wksik^Qri&_zE+)7qUPj)9-ASc_eV1jv3p<=WWO zb;V7rGE$@##9A`2BeBiq90e{Z^7J=x;x(+0DdJj-A&LS$rPj>jjg^Egfd)#O2FRh_ zUI6LK9e`C%l~)nneU04#Cz!vuH`vR~WJ55nKy6G3es8;<)DRHAEyc(}cPZ!BYGwd~ z+S5XyeVU6en7dTCDkiX(N2ksq^JoGh>m7Q>k;DXt{iKxCwRZ~+DLG#-C6pwd+1B{t zUb(*d<^^}kL64Gm*&~Up_A{F827l5h{FWjc6EnEftQI>{iMDM%V}6NKDUiVsCD5`N zl_byGik$GQd`rMT6<0`;)gz9gXAG z)XC?}MHf5TG-XH!uF*d`0rN#;n{TQ$SfIk#Awo}TVtLM2oWD8n!5X5&2H5G zjt@R2Nc)-w*0(M8%&MG=>Fe!8**BhOP6#vP{nN=haWT{^!U13t!8~Kw8IYWOXX-&6 zlJ`S~cxLFL-1CRhs2&E6lbaQNL_*W|1mc9DPZ?*+okSSMFfuEw&}IcS9fKz)WxRYV zUT`y$P@-Z+1i6@p5Zl{~`*enV4x7QbF@dUk+c=HAs`Cq^IT#T!AYZEPQ{e` zW}&q7Dez`(KN~@pP03r@*p{DSs~(h0uB;2ud~KKyz-{+IwqF~XL?EfPP<~gDSLwgO z^`FFUT2ghj39}G{_zUcX#5{zs^jt(F3LSJNdfQ48%ix9E3rwB0U3?8HX}56ovTm=z zZVk>M?2hIJ$E;fKY&|WZ9Mbe3f|jr&*dZ()DVj<^?vNcIJWUJ1BZ`xSDpy=Al|O!8 z4Z?&8lAIIm-E0B8t6yh7Z1URXGGD72vB;>JLok(axx(IzC!ce);vp5%t8P_3tM@? zxoI}Z_6Ok!sR29@;*F3>r+3h>F^0+VC#+7g@lREbJloWYT4nz;Jd0>TBTr!du|)P~ z%AQohZKFA|fdP;bn-t)LLuOzJNsQqWu;jwBFNXbN0%x18JVO*R?;*6ZT&a~QCPE2X z_NfcyvbS3>#?tS#dJhaZ01?yBOMG$##=TVdQ_a#^7oeMgB}g{iSghQ;ye%*3c)o&| z6xaZb4gwNj^sj4^p?WzR(%3QOh~C24nnWeCyMME`e%kuGjutDR2Ii@14{#KGTxSP|)wxog7 zmg(7{u3mpIO8ZtyJTvB?WNWh2O#=AqD+_#>BoPL=VaPG{NF}1GzmZ~Qen^%0(V|Q zxkBvK3=nQ!$W}Uy5pGFFZP)X4V~}EytBM&#sZe8n(Q7Y(#ryjSq_j^_AQrFhwX)=Y;kGuyK(<3Aln~IZ5JzwCZwcEres7kKWNUgZe)U#xw|0gY^)<~@ zqRuDHBANj_^U5C{o;Dwp2A2jRj`zN*p(ih6SY-Se&gEYA=gJMLEtXH*=??-St6GsT zhVm3T8gaz1~iPs+aCm!&V}ouQbXDj1gT7{0Mh zuSM}l7^2)aiv+_Le%szgo;!>97@AI!ZQ6aGX`}H=xWOWbe0|) z2H|aP^uAb+wneT1ld@**_?FPnoHNunhlMRW6BaTPC7JGa3BPxB=i*>D0xSnpV_y)l z3`lt~gYh%qdkfJ}oI5{*q8y)0V9q+{tOyZgdGQah145Qg=xpVy|D~d&x>BLR0zk{R zWP9iec-yRNXFJ(bi9K53`5Mm^RU(oKCqa0zgW+wbr z`2LXLyPcf(kK*V$mfj2&Cn9%d1vJCgBVKozZtpbq`l1it@M~=eksQv8D?S5!Bp0YioP=GCVSKJ4=v$6y3|F;RrO zZ3QcTgS(&zqtL3rhx70BrGGeo4>76V>6lZYyPl9Gwd`CjzYQo?PyUDjc<~`qNT!U? zMawozr$x-AFcS#oXi$~;)6EwnO92^k-kuxe-57E#rDZqYz(^0~emW~nwc^0!yFl4> zgF?Twf+twkj8#)!zv`0xj0BJgBL&+jYvN6?rE!dtv0APn-xm6&rDnc3HM07EI!HmS zq&+{LM6hqXLFtk0YDQ=F7so!y(6025n>qDl@J5mb$qlD^n7nXLVc2@J44~|XQ0Mnc zuiMXu=K*PRLj54uj^RNk?b=qO2;qbxRjb=D3~FuHNpzfUEXVwqo$JD=&9t?FkzfYL zi{N*Gk|pcWU?v)%>H4J|IDXCICpTOk~v{`Qnm(@jF)ZpAY%t9|8^# zLa$9=3i1ISSc63z97DH?dk!zU)P8G|D1jT_igl<6MHybd+elb0wXiEwf3@@+7KrR; zjxTvtU z;2UNUe=*ZcX`YA?-BR3WauBx3%(c3ygc$;ny@fkbS$YaWZIz4P@8z7B#Et2YbxeqAtv|;p+w$dbyq-q02+R=7!`va2W*&Ix53_ z>~BBW660^}!k;;-=wn<6i3Zd@{u-Cc=<|h-axM9EwPL#%FWf|Fgm;D|q2;II-N2<1&$s2_&QVAV8i{HPZJVP`k8k4gAEFLzL_dd- zmyt^5F2^VmA99JB*eY;Yf$rS#6OC57J8>A-n7XcS3P6(iIb)J(66A1KM9;GwGXcb< zul$;oZBTr%*&WuOtcQlntJx13(^?r-Z=!~tsX+a91k=oy-_(SL5FgGyGpz9CI@Is5 z9)P0~&#c0KLn+lR8gNVjDL`4WpNtqyr^Sel3Zi*ew34uK-yYT7J=LUKk-EvuLL=A zf1GJQLr*bj)<=_wvE+Me#Mm1Yq~oGwoE9nzqgZrs!Ka}L@K-=thx_R2kV?y_{6J@= zU@~j^8abYf-op8)b+e-v%>VOiD@8c^;$ef~;E7=qF1|?xL>c;-^wv4}Hvc zzVr889Y~qJ>cgBWE}m=z+aj*VNKKhZMY$Io`&QJiDYTd+@Vbm6?|BJNajO-}5XK0x z@t69speUJP>@9yfL&{s%GoR!apVpN$*_Ftd2St|zm$&iUd5I1Y6^3jqC$m+k}?UMR8$K){x1$;60 z%pY;EHM|odO>Foa$g}cxbuS2yi+FnEnKTNAC8`eP^jB^yvT~0lJ#UE%nTFM_deRE{ z^K7DgLBOrQ9-#Ax;+W3}Qq#PP!f&9FsOVQ1pMZb_Di!sLl~Y{lv(f zn?nJe>lHRz!E!TkTGB??ouu$%23ED}ydAs?qS)ec;UMn#lG53ZFC~yN@)I^U;FC2y zLQX+Korsd(1c7yH3?}a(VH1>VLnJ0q-(!z!GnGV^Vq*Q>!(k~Y=KUE42~?J%$f&_E zO0U$PwnW0&WmVPZpWpsdMzTi%*in+ zk;jNc+<#~zFtL8tzr_b4eEk7iu^Zr37Vq4Q zjQyn!N1GFLt+c6%UXLQwr-gw8->&S%+lIv2w5$VBay%(#2cxl!7FWD4t%rq zpB8CR%bPGB21g>faA&fQ!cOAU-qoz?3Gh^t%-7w#WLI4{C?Y$tCk4GI&@h>zMfMYg zN%n7rdj5UzEN4*LUYWLZ)Writ3hj%hI49MeR~L;8`Dh3l!Q#qs`F*w*1^&HPt6~_k zgVmucN>NQ}xS_umgV;WALuc}ZXG{3YUjD@33wR-nwA0;SXS{y?rW2Sbs0~%MQgh1@ zi6rV3&foFwN1+s90hpx?S#v<#MyDqNuVGFW(I5^ayhM*%8Qx%XB9F z(#*MRM|o#eU!QR0-|k;} zRaads*stI%+531<&pNhv%(%nD4)N@W>8FVG6OG(ZQ~Mw152;+D1YTX#eG`c%beBwD z6N@Oaa8hoa%?%3^CL*XTs>Bn0&=pe%vEuh`JM91VV@HDd2(GDTnZG^n`?QneR4)Yh z{U$!nXD?BFun8D2;1A{J?Jp41(c=wdV7wxM-$g{ zCa7b~Cyp_gO5B;Agx&ZZ;I2BrYfa+kh1mdnazVNnT}23{?N0KETIIULlQ6|h_}A5g z5!ceLenHmcYd7q$sRNjlB`kg6S0tE(k0&dgSPC&?il~YLrn-ewQuT)lcrB-;j?mom zmy66p7Awc3HQlPOKH_d6rZ4K<_0Mkl7=IT?Gq>1YGvw)R4*toB>g*uxS3UC5zMQ8W zJI4G>DL=F2dJ$)YpL5oJuG_)9wd@f+xVB;CZ~4|MKIb^Toc{JKeSJ)RG6#nm_r2cL zd#UdhN6=ANy?Ey+T&yL3blJ%O&_sn0Hqc;$>~)>MnP--N9j&-vRy5cq#z@E$#3=w` zAXP{ROX0EH_t57?>pDrYGu&?y$|}A*ovOQWBsZkvw$jFY%9zUBF9tKuM9|L~VkiU{ zDzHMY0fLhQybd3#C5eC5$fp^mdSIJddvRf~IBuJLXTtQjlgNAF$$s))8rzm9vP(NF z0!1JY*-YrLXSd+{=^L0oLX}tfvsx{TXbgH)PLwr^0l0Ri5bXXiI(cjo)Is@!Q5klb zP)R&^H-6G?PkKn1E;wl2yjrm{tl>@~fi=3#z@qn@g`X)#=)*vnXY-6y6lMyk2LCd| zx!_cLXlZ-#Oq-m9v#FSyQBUQCp;b+f!9EvCEpOf1zgJv(b=n*gx34DZ-+BWygS1k3 zyZvjYEt$x&{_3XRn+}F}T{h$>yuGDUZXNhiK9ww>I@W6b4*|Mnwki%U8q5CzToLHX zRyP~i=MC+yM)?*5rlN)^AIYe{6@df3Hci{+1LH6V2?+j;}$;1*fK_#h$57 zOd6&I1u;w*A7xz3gjkaqO?nEPLX5E+S212zc!)KoXX1_X#j7ZMmS@fO{`%?xjPl1; zHz(gyNGz!vk9PddIW99tvfTIu$yt!4GucV-Y~6`ZKoLZyY2QQik|NB7GDX!iwJw?f zrO^J`swqWwhn66&s_holyQOct$eUoW_MFiXF!Poc;EzrVfsSh{nG|g))(BlLcvXkV;!t092TWV1oX= zKe1zNklChTazwVxH|VR>MZDPncI&uUp00&K5@Xv#`kRHhUDI&qykR4vHyjg#rMB#o zw(h`6a^5=o$C6JvoeACnf+KQ%7^OOAVvl@exQlRp_Ag?#e59;17h#Q}B!`(T?}lXP za^L8uv~Ek4F3Cvze>2Q(}!Y*als{_A+pK+xeGN_ExIJ82BfQ!!*oSAHNEYP^;u7Q})Q+8{2|d8cuf zGx3#G)CJ+EY#*gumC+GX-MSsdtcyKCq_JBhGxxo7Alt(DLK3D!aM?ya-8wMmiA(X1 z1`L!g7ejW{?~SXdJ6!~IiINP95vU_Q=_gw1uVbHmv|O2|23u0yw)-ze-=+bHv8_#b zmB1(2Pg61${9E3kVdj^KD}=A>B-%jzZ^qwK!T#t0l#a^FVdaEBv5+}ttfOUxSV|TI znWJ`QvPlM-r{38A9l7)p;r6Thidv?H)W^@b6BLYxQZ1Q07tyRKa~bu=6Pnm^5ugJj zMP~ZnQ=JY8(@nqw{}scHSr2tQ8~(HSnFyz@A! zGU6GS6u6e-vV3USVWgCv3*Ij=WOCh(WR?6&>FSgv;ne?+=n>HjL*9YhO#==XDztfR zRRtmvK8h1)Mz>gIkD=dKRfTP+1V!;BcBv)#77d7#!KOyirxVy1^unT*3YP-Lizj$k*OzNtRcra3+fnU zG0O=J5%(VV&mB!Nk^yKrjid<0-&^}xmipN=2It%d)yMb&1CDZvbVP`))i_JB=ehPd z{a55Dm!@>fbFE2nHy&fh9;TRNPS2TurkcRl4JxIx{=8TJp|SH4$bS!ER`x;V%Qhly zr{iR`-Cr-3aOdkJV-U09U{@ee;G^x2yunw@te>dgKn715eFHT8&LfO{E*#Tr{owB5 zTg+K>B7dAR0W=5hqqRKPhQ39FV-6jO5x~GhXj-SgL#2}Mt>HAZ2(cqz?->XN-&sx)MJIJQU#a?cT`z| z1V$TdGmC!zk|y6wpbp!3Fm6$z>blFrZ1~C%>|-~2zvNqhs10GC2wRjHG&Se)yy*Ir zc0lqe(rj^~f9q0SZu6`oK~c+PwxA7g1%32W5m}+*;#P_0YBZ=BlfS(1T3qfUiF-C2 z0MAatsBQjQrj2n=2Xwrn_CjzqG<@(leprq7tRGvJ$SrSuF^L63;amDXkZDpCjRl{S z8m#-C%~>BM7-M4{^^QeMlVUP-yrz8WW{5Y{!TuM{2)KhVKc<3 zoKp8+6NWOAR{K@qB;Iaws)hpVAD2YN2a-2U7dPp+<)kJ0M&+3(n$r_tiU-Hq)QU? z%`R%ic&&fGO*(bUDVWnB0|5)D@W}2Gq-=x%ZQHUmI z<{e`n_II;PU~X2-9y-DIi93`y=YL)*dyJGthfX3jj#ccND30XEkNW9%*c`tL z5+pfiZACz56auK|D^`i@4{q&1BOHWR7}L)>j}E92Xt+MwTFmEUD21P=9@&$63!K6F z8~ytajMRBmY6CMK67SI5n#{>CefJrxP%ZapL4o?{Ix{>kWYXZ~uIJ6r` zLA@4kPCDaXkp4`(EUz*lC)&s;BuHryqtKsOx`?T`Usi%i+cN?4DsBDottP|Y$BKB7 z-Y#&|k5nDFP|zAA*grjch56MZJuS=JCtTk%mfxFRt&2#*;#*Oqx)~YZ^6yquh4ys# z;#rcR{1t%Ipzl~gh#d)NEV|T!Nl;1V3S$EI+!xS0`~!;igz_aA5#$?Hv?*x|j{Ge1 z$NCx3qa1gpFE6HU3;6Y38wEW`K!0TKNzRds?m?ze^5xJ8({Z0?xK_d!kX*IM44WV< zmQ9FkZ@2wep7~)9$p?@A!kwE_Rwwqa1Y7Vpp2OM%`rZ*dsA779zE^m5qA>8=Jo8wH z_k$@esl2{gCj1QH853#&%RAbn3_CMHf;pg2m^UbPCE79E-6{QFP`9wb$e{I4rV~)A zpd~idX(2;ZK!}tfT6(+1#hVK`K z$RztZvHt0w2$zI2l?zOF*eCocP{Dr1iw~=6AJ*Yjg-enyzMyre?JfO6RW)> zS%r{SJhYLWSn@7&qDW2HKPyNvIRG80=Y~c;;I1Sejb5JJJ7b`4-T0*XsWG49YgrB6 z&ZmEm)bx{Drx=lbmCbU?0h+r$xTycB^Wd|VhtB99j+EQ{-jB+GUfk~=s7+zd3$0hy zG#Ryp9HEnuL^5oRTwXXi9#f}&Q`s2PWQw>=YGrFi%FWQ#FpI;{!dP{p?#O!(2Gs_u z5u&VNA6ZiT)GTY2?5e-Iq+|AeGipgrRFB(|b7(8LZ(HiUP~R5kQ=M_w<^;<6v--fDq61o^oN?4yftYDPnrxbYpm`g>!%J~DCg|ePW(>) zn*+{TC!NbilK?fE*AF1ypslSy>_VqDlslza+yC{s2>V|I z811HdHN}-;L@ehNjHzGt5u42ac6Mw;xuJe~Dviq9vFDir8wPNZyif%qP@=vF+j3By zNn$oyQx_#~N21NSgpD53X7pDw;=e@^LfZ{vH24Al=_vfcxHF=bA67L1RO=rZp4z&+ z;I|z)*U>`EwL{Aje11}$Sa-XU+ z)x_YmW4d(6<(B=gKv^REIR}%S4hUYNB;(_|<01=8hnO=^6$iytoV)L$`ibn8N?hTe z-;|%aCCieUiCX_J0mv&-sxXvrHO9}-l!SO#@1UGzZ zP^Cbs`1jOrQ6haej$F)&m>(ib6I*TjUO?kJ@xO|+XmI9SDPqPXobMZv37xEobt$O3 zod(6{JuOrYENj2+#LhgcBRx*|DV9Yzqtj`VU?b$A2Lv3}1aL)RQ4J2|`l&NFy<+mz z$4*B9QNNDrCHM-T`V(Y{s>+G^QV&`aswCfOUit%1h7s#*@8@Hy_IN|y1yT7Y1r(11 z3Wx!fJkX2}HU4zQDfVVC1Ve|gC8=y3{!GVnGE?~o4;U2(n&>N5rXMiknDDD)`qmde z%x5J@FRgAeR@Clurkhcd&13L_{P=Mv{sTJ9fwHdO29mt+Toyjn{^vnZ<<>=Sq0yqe zzfPENEBgMyMGA9l#3LgLb&j!a9MG{6UhED_tT6va!v6#y(~ri92a!!!&!cVZg6y}X z2?4_sJ2L2!xjq6^I9YI5A{iIfgw3W5oSzjHNIp!bf(P&ckB6owCJ;g~OBPR!yd%W? zJE@s53!G+8Y#$>66nVCo^ikW28l*mIT6L}5xr`b`$6x}q54iEiElK;siEypgMz3&O z4LDBwYh(4bYfu6HP}YSBw0G3oqx8qZf{^$%Z}iUXY#awPZ*+(;#+- zHKQ`Kq1xI7fa{w)Z^X86Lr&+Q>1skvIrnYfqP3ZTmxn)^yDCD|`A(|=^Dq2~`&9X_ zv;U}1S6nkhGE$6Ei|>|yPQq5ZgMsSH7|_|cSdXBua{e?G?n{c-$H0g#9Y^ zZ8~JS!|yd5Ni@5>`Bn}M%veAEo8vGBz2@wxKl|D#C26*@+QQmhF%;DJ*MX5?rb&Ai zTr2c4gYpEAGctL8Z7*L_pV^(C52QqvGm%c9&ENe7XKF;PetOx3sgZt7n;mJmw%`IH z;OS4gcRT}?10Q*HrEKQ;ppkea<#cLqC%EY9USoa2c7Xgb7Je*$4VWHtFtRmSd?TT>9^<6b9+)z>wJi@Uy-;cn&1 z;8KVZc;)?lFJ$%xF|g=SY3N(4q&XLKAkA=ViIr$3VPSe5A&AaI&vFPUlmYQ&Z~l3& zI7F1_%5dsx&J*jh2E(2W9NR(zlAa0$-e0KELmrdn6|5FViJE#wTCO#hd(ggX+E6Y(-dp2RtQCzN zW?yXJsf$#$=mb1=Ih>cJhZxjormwM^yrhuy6l=cpF`t=|-Rtkj0{@7kqgSTDx zt%`uVv)>{En6F6>gyL>-6N>btyih_!RH^2XaLOHU8t27yY7)B9gHp!J6_%V{ z0amac;4HyJvb6KkEQw_|H%?rMSd;Hs(_U1~_ByPSpfmPfHzV8btM4_2Z&IKee7=Fw zcmV+|b2hZqhQAt#TKkRi!PX7j*8~a_SBCAmOpLs0OK+(-0K;A4uC&rfh$V{4!l^b2 zc3FtO7P*#M;9xNs_&8FzVg2&2PP@xs9ks(N#~ZUTbihm}f?7XVK1=$?Q|b>qJQ6il zpmEwQ)q+uJq(nDR(Fqc`;fI@G-QdMj%IhR9Ml+O3@eVPhYTZYTaz8= zXWWf&3q}W!c1InBjg`B}6$5%3o80G^jY19!#?=Zi)XsQEK1|Ef@B0N(Ng4X_{`^jI zZnZg_^efF=BTmK8?Se>{R-Nf9N{KdU$je#G7(>#tsXah7#Pcxgz3Kq zvq$z@R8MtsiRnEE*xYUmw zzf>TFefeDh?Jh>oWmtZjhw3=_(DuqLn|OAp9}jx&*mY-*HaHN#g^lmR!R?;fUr7yx z=8#F2i1}7I?>LSo+aF$d@?N^OsgEItCP+j~XVhflSn1WKyQ~#9k%W$^{n{>ZLA5?W zir6!_#P>XJq6w+F9kE1CCEKj*#y5GL&5q1zyonzTCpE?tja0T4NNrH(8wJ)7D;>L zND9*@7AmE3g|s9J9dL#Lh>si7xgAFb?VK)d@PP-GL`??YtEPALC*Jyv=yp~0$pqCWO=ONa51)m;VG{Ep{va zEV*YZa4T4p12C@s;B$wi`(+{3uI1^OlNj)sWlCwFkjzM0%56!cEP<$eFkPO#YM~^F z#fVscje`Pj1e+`AxB-!Tj22`39j)v!FP+y~^A9=6|M+)v6IiHI zAlZHELE?*rFPNN4%kQCbpRqqrn8CB6tl>Y8ZX3T+ldRI^EC@6b7@D5er8(^4 z1a9R;y?wa3>5k=w3r;~#b}VK<;mxh|HOeJpR}h|-dN5(%jKY5%I}i7DLeb4A{Px%y zuI5(eUaRdk5daJ%FyV8QWTmFSd@t4iDrp(ANM^j6sI~wg8b3=~q8!JvW+^cQn(+6h zSL1tMET?p|LR>K|WgUD}`xrOdDihhl%QWs`uJytk#;cxt`1;HPfBwp0#eww(Z^3B0 z6llSkN?JIT`8OLd8+4V00iT$(@1s}@Ox~tn*>7G65G^ZYCdJR*^MQdtFt9Hs&E%BitPK4oE|sF^cV{R6 z@m*hgssa*H?zheTqph6Vs$kNMjHgY^V~TFmQZDWo;w zDvXm?+fp1FY(Tvr%DCU^23;m4bcsTC5FxK5)m!0zX3WLit;Ph1YkG&B@O}agX%;G; zfgQnkjRMxQWqD@CO|$Y?kTejGq#3FVzBluXA@HGQ9++0zY!d65*dq(}B;pcEKqKvKgF6wvlr$r zmuU1JmrPs$b07@3C~7!E&#Nw$Ogo#gixA)=CSA}9t_$BfZKwQ^Lz2=rER|4ryfFXr zMOqQDLttg%1B`$`5*#Q948dm!4ib%Dmwy++Me@~y(aIDL1)}gCLO0f)wu2DGB~mJR z6$^pKMr>kMKFi;*uT%2ZWykD%)4RT~JSqf8lb0o<3Flse;n?R%v9aVd!)f$g!HfHUa{SXQImf&Zi31bYGhYL z-70Z$8qx3K+&PIn3t{0MNy&8>zn{^E`&tzOBs<`#6`1ZQyjd*DP3+e=W*khCc}BRU z5`0d0VP+2JF3RJhig8F2<22WVu%fsgKj@VIKRi^;O=bkG7@#G2e3TO;4l!QM3f*Ab zXH9Jai(j9bmzYT5o{Wpjq^xkOOI&<5b|oLPHLwR5{@5(eJ?b00E+%j)>L<0CexrYf zEX#UvZl>io{&3>P=kJ=bb<@fzzAlWm-^9K*XdXPn&{(r!?3ziJO2)^}TC*^Ar8K)v zQA=NGQz(?GU(Ue~RqlW|&A;hFKT++!CiBlgyFmb;S%;rdA>$|MW2^%Tjw{SQ2pIH~ zTVXVg+hwc+wF3S^Va4W5TKfQdL5g4baka)U9Hb% zD{C;gL>N=U6*Xv3!)jPhDTsT2)T4DRZ&x_8I4wR(v#20u2Mk7IG2%@BBesm0>@tNf zn2N2ydPia5^m*0sV9o4>q-{?G-U8sAjq1i2A%XBFh$WS9Czk^OMG)A;$c<%8XVrRa zL9KZ@4z8O%7yV79#Wu6tVQpHK#@o7ybn4Gxss_H+P6|fsO&N!S4AgHWJ%SZ>A;tz+ zKn=Af%#4zg!6oG3-gXMSEXZL}2KaOZ<&e}1GmriBw{hr2(E}gVj%;Z>{4M$rN6o51 zpDkO|{kLAQ!`8J+cl8FhjAgIXH;vLO_=j`1>V5P^<>NuPYe@VPIew6EI8wsF9vGEMGsy^sn4*XIN@q#sQTze_QK! zoeY`BPOKMBMu`9*Oh07iPFCVMgUi*!V+kq@uWY`LnrF0V_J&kL??2xwayi)m$}1UR z%5V^4CD4Jzq%0ILm6(<0jB?f`9qH+kOzOjy3$uQ4KykuTcgcwu}A^ znUDOn$BHtZdLEj%=>IsTF88p%4;fX+kZK78wS<5XGp3R3OO5?#=lv0-eK@V?dnInV zaRPvSmTNKpsD+@BATT0<_}4j%8>?`tDb*fa>lNd_XXNozt9u~9+v^=1NIpK)&>g@y zlz}m%O!iqN3yd86m^BUpw-#4WYpxUvsfzs&>ynbe{jzD$HYTA5&t zwo;<;2os1wRw^E2ACL*os0*2Ed@GDU%*q6Q*u(_WMWJjVl0_^dyl;OS9sgo zY_nJO1NYo>E_RY0JH@?Jqvq6#ps;o8YUi2z|7Y^rN3VYkdt1la^NdEkvmOfGD{?8A zOQB#YvWPY-g213xB*8G&A|RAua9wAx^1u!b4jL4{a6$(B#xF`F!H{-bo&gVE&7^|}K_jrZ*=pt@DTR(JhWkJ; zs%)Ak=!;?}8F~(i0fcgJ`92eq4-KCMZwhcrg$kXtU-X40MyL`&fWVoaNw>fIiw}lY zsaQtyau5P)Xqq;Ywi!?Oee{e*1=wgiTR5=aHMQJYRYyCb`Gj=08I=4x{2cu~%*u!g z4tD=xLfT8UH+9@F_F0Z|xzySl^H@Zzk&U!}^OlIQkl4&TN`L8N(=qP%$^#XB$F@sv z1M^GxJYZ76&Banrh4CNl2m#W6(dpP7-S`v%mA2bd0O-%-?ab(HWr8)@imCrVA}j+e35l?)EtL&BYyo!v3P)qf z%(L-OJM&nO!;V>n4}!6Kr9UZh+-(1G-yFE!8Z&&!(W+&C$UJ)AFSajk-rA$Px}Ba; z+ZU$1_FbEHpZ0M{RgBZ5?CZ;e}=UXch2r(SF73?Q0Fu*o7CGr(KwpS74=x zecxlz{tdv7{DlU4CG#CP&}N0vOU}P1-;>X-l>%2NR0qMCcmOez+Y$3I+J93}zj3C2 z<-qCAm>2}3`D@Yg9b@KaCMADEQ@`Ul$T(RFQU(Llzj8AY4FHBKb^C&IZRkX#l%xzs zn16YrG(->*P-Y(zWgs*aSAdKqG&Juv5fNl&LPz!tEyW^WQW3;W5VS2(_vl9tnsd=@ zlPAAT%q;c%p)WU0(>Cp!qhxKfZQc*Rk23b~tk)A1!f|bDSFJ}dq+L|2w3)rF?aLn6 zzr`_sX&>z`_m2tzBhpOUd8ZiWH5_FzYKaNyCNvJ;+cv%9gspl3nbCKD)L(B40?oQ! zqOlnEGhpwfeXq9Z-Ji#?%#k`UjOVhzuiu-;vjVT)>V7Oa3wyA}4Av&TY?#0#+W(8O zUWY1$0S4|A*KhFd#qFMNToLbX^`3EjO8fZrth226wvi56qyIJ)02ZE$?Wl;aB~YD7 zqWJeTfIU{lKVzB+0UBZ!Eaii_fUA!`7tggrPx1M~$NQqpU&b0ee#&>=`K1-&`;ER# zouvzp-(lrbcOUAij4RB`aWZg5ZNKWk_gu7W%#^+41!QYd;e%|xTl3s4J&)e_{UboW zOJ%HkWmsJpu`djs3^RiAAq-4u))Mq5(hmEDve~*QH3!+(C9p2B(w-K9pjavyA;MS# z%0hr3{u%RjIXfV@mk1X@DxrBQMqv79%1Gp2)!B1Kb=PG6l<87zge*zvQ*g;u>;z_h za=J_ufaAEvMPP&las{dv($+Y3YnlBulajj{E+9n#h=Vu)aRg`+L*e^^qaf}Qk4eNP zU#te2O?zE1B9X(`(lu)Pho;T?kNYN0JXEYtQLWR+2$3_l&3(>w@F?Ome_PwM8GLxY z<#+qsRs`Pi_t7(LYom=!(Y8<7Hs{++L}+Z&IsA8M6^L^U*aAS*lpS?DY_t8Tq5X&S zk23Z+rXLj!;#`YyLY{pjZDtwL!rq6d@MH^MQDMy9GkdJ4OUAx`%k*B7!)}`Jm0|C4 z!U{O}ZSR?_0kwtW{N{8_95Whk*S@hbS7j%a0p#8!GMf^9GK4qtC;@jfaC|$wC9)A4 zOWpX+oYPycX4~q$x2XUi!GMeA;hjq1xK<|`X}=E#*!@cZYz==i(V20nh6Le)f103i z+uPf$sVrvyK?k3NHdzM2Rn{~KYVBUfpKfgvm<5dcigK)G;E z+opdbK~$&w8O>j;0_9*oX(DES(e6d-FF9GKON6GfDWBmuR5tUI$|_<0k`bUq*@r7n zrZPg3SOA1i3vg&TYapao5bPJY0L*vBmoIEx+zFC8DW5zRt}k>9tpV&6jsKrTAaJPA zJz?*=$85jP^RL>scf;774i&h?@MRb>m?+a4(MxY6&rJiff7C5ii_wG(DJlTi?HjoU zWEu5h04m#5{zn{x2?YRo=4@sk3IO&#*up`aU|>!_G}x+L^K>hFRD=0Pg{i2O(57#= z59Wy1P$r@RS1sB{g`hZ%-rkEifhsB}G%a+sO78_Hz{&29GoY)>%}X|b)>z>ZelfkT zJs~V%*6=iAG5QlMwce<%)jxkeeL`zYHrj zwQ{ep?ZR(hJLl} z%4SDz-17}5J}`QxqX&C>gh_SVFIPe9bC+L##({om?PQew)I>oQyrF1y%}V^!WsRK5 zc6#40aLF&S7_~+Bl-L0IE{qZIeX$S}wDJOg5wXA} zA8rr>pj;vqAOae2-ar(ndl@a?SWv_hP>!2`X5aImw68@7@U#c^ea(IlBcRwTj(*i) zHyw1;g-@0lhwYCJUwYBMwkg%jsnwTWJLfleK86+Yi86(#`93r?3;E)hz5To0CTbP1 znVD?`2!()J@1Ur!K4jA7WS0N0#rTEJ@?HpqgwRD0(%;?}drzWPnvT0_Vg!JYULiw| z{%v+I?0&X|AbNykykWwRWw8nc*yvfdX&be~#GU^}u>);A4@>emUULn(@WOBMEPm20PzEeIxCUuzF%a|D{Apy6Zv|uSYR<@OSXUr0Ok$r2LeGT1QZHI z5<$Sct+j;77psAA%8PC$>OXjcJIXHQ8wUP`+P_5m8-KrYmC^h&-EhTH@46Id{TWA? zzc7BGACaSox|Hz^z$M3(m;eP97(k;A33fm=G_Z{gz*7Aov}%a|fIKmFu=YGj{gZ^r zz}N4WOiG|HX_V~i?w(1H?|aOTZtdxr7@GV;CKLBEj52=vWw#vc_7Y)v%Eplvg9$b@XSi@hJ=ze6iQ)M^kF1VZ7$epj?? znr`Jq6C(iFw6kL|Y?|Bu78A8i-{|K!H%+4{+M0jV`eM^Cc%%b?%oeVq!a?+zh{hCD z#RRlc%6Z9rOk<5t532|pzLyBg3mU(llMfhmJJ*8mp{HvD-lY`|E(d<^&5WIGNMLht zT>Q@Q@WFQOQF$l{OQz=#V#$nTsG5DR`~kX-`J&;K!wY>Z%3(t30c@J{hhaX;#3myI z&2GRa+Nqsvd@#V9!B|;^_{VriDLkt+-bxOhVc?E+KJNHLzD`Ym1}j={26oP7F{cjm zha#+=xYv7s_?CaWd`o$_VdlBb&;KK{>@S}`c(61uMOeRUgn+C$p(ePcd#)(@+tRq4r0SF?47ocefA3!V$=8Yxv5?Q|T zk_ZC%#JFLEB{3ixmw;qH7>3W#hL+4;(I>~m7y$cd+4M8-*$A@<>1i|jkl}~l#r+mC zuIQNC)JhZC8=Eds3rln#LP0Cs1N*a#BZ5FxJW)(mK=@eOzJBv4lsCZsYcu%p%*R<+ zgx2;R#R&+}XQ0Xg(aQ6%un#*pgfBB&X8Oo`oe1}D()j&{^Vm2NCU(i0c(v=|a0ZS7 zaEJ*)XRHaw)QlS>3!p8-tH*u zT4Y>45~-;Xp#>KJ3ZJp^I2&~_zn3@qFjBbRCO!eT6uR-pQ6)?*`dD)hWA#YPC|BgL zV?p5~q>ZFk&2)#fe~@w>oblnSFUIa~lS3TUoGPZ#=a(-Y^XQ#FeY1k%|}0^1eX6vvgvGzd(SR5g~Ec%hFcIqD^e z_S2%ligxRJgAx$HzG3_&Ep3c7pfI3W>PnXORm;^B0;K*+9;XD)ax~{bnrwA_N3}f5Y4vV&-R3zOQ{R zKu{)Mqv(k!pb4JVUXjO5-uK>p-a7Ar2;&chfROpve?uly`Fr*Mz9*CIF4EXNKUg^Q z(9ig-Xgy6mDCI^mx#dw4bCgL$8GXoD;uw&87c!c#ojqR2#G*dza0!jPGqr-yLWU7$ zTiCP?_rYfV_TEJI$7W_xZMX7n?^IofhyW1P{%zMvNas+)kN%au@}0d8^@M=%ohEu#v!at3gUV@<(vsm5il8oFx&dI2_;iB%diF(^OxVU*|Ce?d;0ntEwiU>{&RzYVIMf^5I7OJhao^j` z=4KrtF<)mL-+1#SZC%XW62b1Mtm{g+yLn(Mfq&xNW;W~hJY&s)c&ZI6lL&RMUJVhzxKk#(uy``&=|B|uOQ`X$d}O$9AE?&9;8Fai+*M35ItfG~d}1eA;I z=yEoIIY1URKrQAk-$w-igY)0jU6u0J)jiq~<}W$^J(+GOWE>F~SP}v=A^>!$jN7e< zj2p##7SV|$4nWcY9fycTVj>cFV8wywpx1HYtFH^|KbS%j5wXnu>5> zTqRz~Gk+^}*lPkTKO z`~W7w7T#3y2i7XWMqR|lu5N5CbYZ~rQ5f&Q^Sc6Ei>JGwPdcd_>Dk0Vk1;PtHB1?$ zo;g1}zfo;dU{h@^Gi(=rXS)*YdxW#L-4Bgc5@isf)@d`P(BE&H`sKS&KoI)bdu3Z} z!heU%-_}MeOsN&Ew9$g>-z@27y5_$CclOMhx-&27Hn%wxF5BqShl?AwYtWz! zZGTR*nSll-tY-@!rrCS3#*$g{J7@a8v=2u*l7cTbWX6*-^Z1^5H%2FT<++$#DB%ow zu^Uu9AHOLafPX}*-!;3iM(re*6O4B>Tc4Q;`-+4`z+F{iEBsgQyee4WMz@arU0fhU z_^1sqQPr?o``4p)JmkEiK7Ff5f}yk?K47-yWHhDwuldHl1M45(-4&)rj&d_uNq#pm z>n>#-5A0+zUBoO3tr!MeCGqW$v^`4y{x@mFi3@r#sD zD(IqD(607;u?h?p2bgt1Oajcst$u-v8V2dE#8e#c#R}j{oB#q>Kqvr&k^l7sfC@67 zMKr_wRe(|l(|%yoi}aT#4GOoRoD6_7w)w7`F|X!OM|1e zE5en5UaVMF3>=YUA5;Z+#vkF3d&;i@egX$YiAMH;_1O}h85n~XuqQU3a6;Al(`Nor zOOLvN z-UC|*vjqa%eGqjun8%=L0pJYm$}Yar49YAMZgm;`?V!KfPh)={&f*xrAR?^hRs!4^ zzEZej@O~`lgxh^V4%u$PTV5=7cU&1ZS-{q=ot-lf!@~st@e>@PFxQe|Hj%;~3$Mkk zoe%;f-C`YMIw`!dnQDOy(@x+K|6y-PhH>7pc|6}1*DrUHs(u-T_Y>oQn&S)!0E$%R z@fl|h{;({K+Y$WHm#6%edE};V@4b1|1A7~Dw#qu<%Ql*<%1DkM$#=r|CCyDK;ca5O z7G@UU-3%{mqlINj9=i4=N?mDOS?Q8Eti|^)jK%jQh|Mc#5e`aTL3_nPt-0v2 zxB>KlmPA3XwAI7|_=N(S)IeR*k`|~)bFnl~(c;;p3<^kI!?hR%8G`c5erF|3HVc)F2`|%@prp{#-9~|z)_Ad|BFSyLB>_aB_Pp% zN=bmAgasNGKu|oWEPDvrkK{(MZ%_k7ZVIaZ1ekzY`(i3!txHT20ssT}BeWF!1b@n_ zkG^@kSG_~dS@<%u1%Z&+$Zw^!&)()dcE^vWZeD%=9;LzcJ4)<@#9c@lCL6&@!&m{z zmuI02M$ezk^v!SOFNQ%W2M_gHchs0=$DX!H>XwI>{o)T9et2f1X8bravu$3ES_G;r zT^5i~XyUg8f>02!1p?a~9bI}<0I)3pQOk?HC!t_w3uyLtR)-M3001BWNklHrvL4cKeF#IBL`kXw1 zXtg%3{;y%I?!gB^*tfzhqT>i7A@oQbg6O9ix95f_yT4=c!5`?CECbs|YCnJ#v)n&! z|Bt-})+~Q@!2E^TXB{o|>jMA35d?(Sn<6(X8E%T8LpVDk&AOs3g-fDOCO38yvenqAgm4H^cV*EY8Q zUfbaHF4$fN%nAuGw%0}?V?>TZ0)ZqHQ5s1z9jfZp`}w@;*LqXaJ<}5S`_~8GsB`tJ z>bmEid+xb;;rRu@MIZ(EdgWECD2J$>&HOFpoDfyii}(Kf*d6Qd zn;MsQjfz!SYA^~B$}owpR;y-^kO2WvOm=odT6P&2v4;xy15Z;A3{o{GN8eQ&QS4^i zE;zL+bGHoO(#!VW+2G#{47eaTTlaSZzuh1A8f4FHdurRjZ?jUj{%nJEqdIgp@Z+{U zHtsPqAgy*Bv*j8$jR1ff{Bdlu!QZbzLwkH&Hpe~gcHLd} zrBU$DX8tY^aD%zK=9X=7*B19>*V+YdS?xvrn768pS=>z*b8UwD47p(vtWM}JA<^vz z8Z#Dm(>Yu>@Uuy~(Z&q569~k_>2XTvj)mPuOYo*{#v@@Cy@S#gNt_qy#z=(~`r0L5 zONZYzq~DfYOGi;cm%4j|t0Lp{o(Tp`4#$#&^Oi*B( zO((Qv;kER&H?o3DyXk#I^cM7aHhUk&cu{LTT5}NEBKCv)?|5<4`WdHx>9I*OKZX_zj7!u0ZT{$+8UZbCIm?c-+ZnU2m~a7NI|TpRmueDB#e_NrZB81mXsAH28D4c(NR^!VPC>@2)mmElLQ&G z0GM`%vOp3gBB-J=&caH$z6Sse{dT88_FwlZaOi)N{d*pn_Q#s|&xri|yzqlIZY=-2 z9OqtMrlP+Bmog`~pYsIT{k*_~Zi2}`g7z1}$MS(PfbJiliopm7egHnAwY(z2KRP;42S) zXY%$fe>o(s^c0e)4EIDBFeNd@FGp2CRfV+$>k#v5+HK&l0005~vi(6a{buJW7lC;d z=l9sT`(e$B~75I!4OX&aR zchesZByQYs9UZ0=T{hsgoK{gnM-26zoYShFJ#_O2zeTotY^ayC{J3H9i7wDYXAH12 z=Cot})pVV0pKloK?&_kBDx{zm+&}@pUwVCG>7aG~CuK>^C>&3yh8+ zO^>7|?dc{sJ#yh9`en;2%NiNzYV*&GnykLGC-~RF+4(;9b%E7|- zghIqe@E4M6Lb2cUwsQo0XabNCOQT+AJh7^O*FFuA9!hme%lv3w6DCs)k-ZuLpjL4b zqwOz=VjWjh6jfjntW;D@w5q5$sVWtgk_3ON=me<75xA7FY=V>l0ED`9V#I(J0N5Xy zs|9FU`!|>QwEkbO(OCcxqXPoTew%K?@*!A%!Q9`E!nvim?C`=~2QhL#iOoH@@iMAz1yGHb02|m=Q;U9Y9r{&@}-m zK$2)KSY_hO_ulX4N5Fm3tu4pp^3LS76*o-Vv*VdVmBRX>t+JXZfUOYgu97$@Cuq$~ zqA&@oRZ2t*)uEBa_`86h83?c$ zX|^2Tf(?7+Xt_S!=$h050LYeLEC|D28}u;+%LM@z0AT&IOn}SqxFvx`yJso>tSB;D zZn5XT3xI9Vch^3<-i-j4%PiQkz<#auEnlV4UPxbPrHovUCvXfTx+9uF_v~+Z`;Kd9 zRHEq%1Cmuvk7z}c>QiDfD{KZ9F?#H8Rr7!B2J$v-ppz3x^Rw~OT#6Yjn^&vROqm1;zPxLD9jtb1P|K9B(1=rzW6m*_0b=or_1j}eVa7zI!< z_In+tTNf;%`}gApw9)iR=#cmmanw>0s#1_THJ z2RpO^B4PmmAa6y3KV$IVF&D#qQLIK?Cx-qdQ@dbdA&NCJ=*msE^3PC})iwMfe5uO^j5QCYJHT7YWGG03VC5ChgqDp+r{CN!$; zw{(8TDp&1|eGpumLCw5Zq1zTf?@&(5;7?eP~snwjTh%EuUo9*v;$__$?4{ zvwnMD_PAyB8kUu5#sb)2j9qtIB<=lfecvskxLLkkV|UG6AmD0c8UZf5?q(laDFYzu zolSIQv%uTzw*$ktzgqj=F`VcxXLb)hMb>?fTfR=if(l)k6#`<4Un1x(spykgZvxl_ z6Q@Ud5?cO7{AmXHE^J9Roka;<*h~<~1$}qk)%0o|1T}iI8$Lna`0@0aWRTIln$b?3 z(A^8Kp$F@3d@Ws}T6+@Ii#(yjJWeNQh%M5bXbjV|%i90ichZ8szwl~W)7m@NpT(AT z(Ok`FArZBqyuew1Pib@ZH30xT*LJt?+tvwPM4g)Ppn#e*_k3iiKIbearB@KbFL;LL z_k1B`UZVC-Jn+b9+0g;u!R1D1IQ@ghHYsb$W*evp(Y*1Wo6p}lcciNR#R31@{Ub z?q|}MLKZ#d2T}+yCs6(6r11h~66*@FpX9)9s02Vv3FbzC0Z7-+X2$l)h9OA62Br%D zqDC`c3H5&f0A&!BSyzAoj7(BtBK-DUlaG2YXmw+buxrB;?Yp+Fm{{JqZbTgQ8IJ@V zS5>0Qu`)obtl}6tj0(yti2@^21t^H2E1(3W0jV@Wb74L)oypM3xr`EvTP}bRQvExE z2=P4fWp3rUS8RRI@u;wYJ4^A~K;hELS;3iG`*-WiE)(De7&qt}^~bIak9F+a_{f;B zZ);ISr67*W5X5NVw}m2T3){yWxqH-vlXm*;jA0N^6ja8mbwu|p{4%}xxA6GaUBqu=bOt9n z2gz*1@1dzYjOZ#C=rk+=Am}aWqK`5@h#KBpQK`y^9^JB$mVENY*87uNU1WU1Emu&E ziZssiX!>7$7>;C`4su@)K}WSh->{;FR^J;&LwVYJ@HnvCAoieRnro60m>Wz~rjYT>xMMlN^a!_h?oH8W3<|18k5Sw9{}`;4Xj@o(H`!GL81-0lDz3*7JOG6vHCxC~2H zrJn^_Zk@jo!{V+v*4D1KJqC7-ZL6TmGVJ$SgZ|#IiM|3Bx79e{Jg+1*{p5mfdZm@u z;gEMDlbwM|M?yk!zh(^&oVl+01=;6I(dhvtbGK1?{0{5-#gZrG@ucfyn z30=}p@RxZL#%TTgF8X%A_}T1({v^S^oELl=hn3_QN1n?6aJ zj?6rFuh#Uf{ZUdHjRU7EYQE0t+re9a_g8Ob0f43dweZ&Y#gTVYoRhg+5v6IS{etji zPBO13Jh<0+Il*~Ok}P_G?+Zc(D+(R~1bC?T2QasX$&H8FH4K1F#DX@^v;wBmbrYI6 zXDTj>q}nG{Tot8VFSnI;ukQ%UJ9ANWPe3{*&U2BU@96c56M726586gdMpF1y!MzIl z*p;fH_Mesml1dB~AguNo5C8xG&j7;!SOCB+TFaV-m%Anv$P}+W8a8dA49uS@>2Y7PJ>!L+Ejg4;3b|4~?q!2$pfR4cs@V=CN+`4UAHr5MDSp=K&n z%azzs@oN=HBw0N{eDMuI;#~{c3(p4=jA=Y^U~1Q5(+oZ{3SR63SYucI2~Ju`oD>mM!8NZ z;d{5e*wNSXQs8@$;OzBz5Iyn`HqPjJH{Tpx^v9z*R-z2 z$ov(8JwQNMQAtvblc*GjxDU1JsH7Me0t~&0OFD_G5dN8-e<7<1;&>HC^?Eg^e_IA< z1^~DKw(1W6%uE3E|4WYrLEhB=MUdx0_FwRXpY!0JRPEc< zVM+jKrDRx7EMuMt4zcB~dw6Q8@w7GLMJl zB&G^97^Zt8jH+5u6(3j^1LCk+5HMum$CKUQkK6e)0piN|N{|S0dyYQ;=XZ>ob}BBY zL-monf-^V!&jNw0u#6>9NvwVRCx>o);g-3(Ha~gn8x8!~)7vkM-ah7#bDo$m^WxPL zrqA07{-%~uSw*=G*4cWq8H+qup48?{@yLcpvBz-IpzV7cvJ87j7}Z!yf?{| zZm7@4<9A+1Gh#*WM;Uv_=WF`of^NF2B>-^8muRB$=yOB9Y3&IRQZb^{Nl3rB=xh51 zB((baR-U)y8q?~Rt#7;*YWjXF{hT$EqqijqoeP!!fX`$!7BhKqf1~U_b(Ue87dr3c zqJ5{w^E}8GII@4#u|+VzM0AR4}A4_Ju`N04H4fvih z6!MG#P{3pkt$js7rgVZ0|1yTcv9xP?d$KKzI*fI(>ZK>km1)_ z{Wr+pmc+B%D~?#lW-k|R6t8F7jv19WiTuZ3Zp8;&Vzc}M$Op6 zMIML;4hw(;@JKcu3Q3X%{zPM0tMFThlPFXQr4(fOUifTbYR}fEkB+OmM-H{yZ{+d(ut}RnOgiPoS?7Fh zMSj>6^rpH(K$}6j_5Exnnhi=eIJq>nTS~~P)a&&0fd~RK41n#La5Whg2-teQ&G;?l zZvjB?+@G&JardUD4rd(WGR+SSJ{STzSeRgHV=GcniHbbq0h1`6s7NMB#hL=u4h76Q zbFmO!%tfHQ!st@IeSB}Bb4qXL__@0Z!w>EQq;%$AWZNsPuEMS%ZrgRmUl(|}0Ko-o zt`5L54hH14s<~Kt9UY;S@##PCjnV3`M8CM?8w9)WrrYAH>2xmWqU;mmgzkFxwe-gW z-+|U%xwwlC=bSEX#diSj$TabMn@(IeYjbjL~HUGr*SCtH>3YKQAM_TgeeTRitq&%B53z~ zKj6Y^mn5)u1y6WI*#CMY^PU&v{q1WXIDFF!zcu2TH+wU>3MMq?Uc!W@q~8_}8$aju z3DYlHmunwiN=*S`W4A~~<*!gWQJUg7uJplX8C?~zib^rs|B|pA85W@07e{CfjQbSW z79Ca%3xJkD3M;A_R!Q^7umG$ASxvg7V#L%QxZhS=aI7u5DEf5_1hwox_635!89&V= zn|{*2EI#NhpN4ma%K*44ayQu68Z$o06$NHB1egxNS3U5J8L#~1`UTa}_OaBg-7;m+ z5*ZBZ4T@uWyNxK8Ra6$0y<75OWyi?D-ovf~=Q1t~pR)0&bH4M3u}548 zXGWVbHUa<^4A>xK0}!%(8@TLaZdPi8oK?GLTjR{`><>kq9@l;%K)a?^3*c%nT($pz z;1BwL`HyG+!=BflJq46>w!&rCikZtGbqA;e zsQvDYeKSFSd@`m#v=WqudMo?*AHPhK%Q0P(B`4A3S310eLVORbUp8_M4x_o&>He_`2|-nw_kssWR&7#9g+A|Z|d z<%4dPq!UQkxgG>0c=_Smrk{D;&vaCcL1ROtmc*r4*XZgv>Ww3K0btCnswfu#U@m|e z8I0iX0)Vh$6zk^VXFCBh!ZalN_2*ay!1Ig?AWu9l63+64Hm*$v=5?6eDcdS9H=h1;YPsm(6Vfwt6#?N^7 zI^h+kB&bJyPl?O`#x<7)jGFCB5N>Lp4MatCv_r_5eCP~r@p=F{XWdBi} z1&C1=NFvll1{wodUjXd56Zoy!PrvU|3;tg0n`in40QeZB#11>*irXg7{RBivZbokb zfZJQ%DEqg4<^4o|aka;L=J)@2@@voja=uPfCZkM+s*FpOYoEAd_{0-7j6CR+&3<7t zF8;PL!|Z-)(g-i8QM>)($jxh3{NTtft8RZwwX|)NR?(o$m++34&n=sB+$UH2!El#3vE>u2iwm&a z>>mKYu79KQOZNEfHvqubZs25lV5_0%m-DZq70p!pm>3%|`r-fpz-it5Md`4ezs0un z8`Mq}x@>=fKSa(w34I~kemLlfvZR~-j`~{yxAc8rcJSAk!@qiWhHhx-#Z8`c+toCe z2{WXp|0d{<3$E^8*T_Bv!9U=1vDS3_p!>jRID7{hW&h^-%Y~9{BNlUN>!ZXIp#OQk zU3gwzaP;fkfBbc{K2597Hwj{EqYtg06-L$lO!p{NfjLd6_u!xieM+4gm4LjnGHG% zG=>9N1|UfihK>MH8xf4P$@Z-e=tD&}gY?Y#2KpbGN0}>#7{E#7g!BuX%e?fxc63pg zvWX0eo{#`isQ(9^CyPE40ki;;5+0O#ULCP#+w-HhtzAB)vS&j_E9aN=i?IwkV<7`G z|2K&%A}sIp6IC4&M0AXuxpnd}A6?Zk>hK3l;Xouv>=a0)WeSFR(D7N?D`h5`ki4001BWNkl39#-Noalo`v^!GfYb@yKQFK-g1{Qur#&YyJL0n znY%u7&h}UTe0tVB6Mtxt~}*^X#ubA^mnM{L3oTZQ!xg zbfduJK9+4&%jyiwX@7vKZhPIe=UjbVok@S$V`2k8M$K9PfO2TCd+XDqUVr7!Q~S2R zIH70r6Nm2J`t;#C>2E06=(mB4U--q4^FVPS5~U&$SN8-ui3j~H;P`fqpZn6ZlRy9P z#F-auAmWYG{w~n6YmL7E0WK@xmJYIA7|dRIt5o(?oj~XzKb~c;x)?->FzB(R;OSFo$4}3n1sTb>1TSYW69E zGXUxQ;QbxfYd!-$0e|h||DXBY{fG9na*=NIoZGtTe5UEV>|+tpZ!W%O@czxkSJN>7 z4=tP!k~9q?PC1wXnR0_kW6}$jC%o;VZOrXD@dVoc>hyn2{KtZ#=gT&c@Ph9LIZujq z-?Xkl%!c|u%X>nism+%fBkOR5=3H)F^XG}{pZe*s)xK^0f*5|F!zZ1*@t~vM_e$sZ zIX#%qh*q`KtR5}v5U9n;o~_TeZGPdmhwgao!NarY-!F{bGULpyUm`1ox4)@PtE!5V zN*t9-xUK2{K%;G~50eCSq$&zoe+-Af1dMkz(OhZfqb06ZP&dPD!U4hG`2D+<%1-Uy zTsQ$fzGy*^`4?(4m`oHiE5b&8On6e7k046>Bl_+uU-ul$Y zmCLSri;AlQvQT@zNsP%%S_UzC_a5s!KgDr$gH$ zz4T0%v7d>Jf`CBdF;Xat5VfQvg%F?t6reoX05&*s+-x(k)88*!>C7^GD+7bPC}6W< zZ#(&H@%HywMdmY`m?`O)S)=kY7$C#=ifhhdT!cO2-5@-9Ka!sLZLnfAW(-NM`|WdH zt(&Scb7v@=*g&Lvc4Jm29((n`mblM`%TERdjwU?cOGAwuB!>?n$2J7`VOGNq4@>&(l)2HOdeEs z1`=6IxK4C*S#kJKb1geW2g&8atQgf52*QHVW%THXLNM&ZUnkaa_i5L`sP(AG!uE&! zV%VQTJ8Hg@z4ZR|(3{~b?*IG^rT&T3cn<#U&xneNTy5T;JpZiz@|WKqcZFq-p>u>6 zqAvdVUTVxdR|%Wyh!yCvf9%xru0}K*MYYa)`034p=r}@i_p#(2um|wp+#uN}LRQo( zZu;?@%TWbjE@?mg=_J@*U-!}TY{);>t<>nzpy=!lD$A>+Zw6PTa4^v5K1pnPrK}jb ziE~{nS&2J+waMLDe6l2VB~K}~+2HU1OuOmdOiE6~u(zZx7hA$JOp5}Pv|`CN5MD)z%HVj9WgFg^Tc7ypu7xi@BQ<3A)^C3kH}qp zug!?wftPAK{)GQM*WE6^$=_#z+E|w^-yGCLYrVXG?slG^BbHr*3n80WkF5_zMiN!n zA8nzW&&4?+9CF4j#7S}6GI9x~GzqyJEDTI1*c#ejC@Y{E$*d;j%uI4jm<14BQt{rG z+Ia)f3m-rh_bcps5dYJLi$N@}&2?_nRT538zc`E$M!hMGGLKKMwBxz26x-W=;rUwPsfbmis35EIpx zh(~q`Ah!H+>1YPcCoN^;Thln!G)qD{Z<+HF{_&j4@z2nf8DyWeq-X+4(#vrE-bMm! zh?3#V$fF4H3kyF4rj6f;bFXu38oG>am!9G*G6a9TgWpgcS0;#5qUsqTJ#rei9^(~P z4m9cpC)?6TA3RoZ<&h6lew)7zo>GY>&fhx?9I+{n4)rH?5?#LBgjE-qlX-S`%dR-H z!u@jg`?B%+RAS~V)>s^Ncv_p5l0l05xA#tDWmEhxJI<%$6&|CvZWhdDG3dVRN}c*u zVJ{chfvP)7%HHq_s{!(l z$^B~bF-GM;%>9u8rg`$sT>Ylk+(G*~_?D%e{VWuOn^w)Yry~<8NYN^o6-a(khq4h?o?foz|{#$Lay`jQ&$WuYrbH3O}zl>xD6uc)DLkWf!k+s|Bm58Xo|AC;+5FF+m zbPQ5D3HspW!lywvyw-1*PY#k*YkSqn{yPE4GCx=Zom!@9{uCTu5#bl9|& zm{>N&_EuZv$}i(Gh2@R_MNaIL@X~Le{_$3L%sB5&8(E^?{t(UK2~Add)uH#rBjQTm zWd4o*{INwxJf@Pi++Jqb)vSi6M@Q9@{InaF%A4(%x#yuqXH&m6Md3L?#zcw!9D3k1 zQ>Zw(ObK(w8$l}6!XNwJFdNkSD`Jm_aOfp=BT5&VFaKQ{mpCp?vS!zC#%RAe z|I5o&j$X#abO?|f;NFzyK{dxe_j}+aeY@wslDV&FDPG$sJF*^}2EI0oo%S>6F%Pz`vBNL+Yo3%I_vhefwDD)_sBg z*h9*wljCeh1q}EzV8UG7_7t}$Au`|*#pILaM%)JRydlwD z;&>%6WunhZ_OoS_>L`#~x5!&4wRQ-@M)N+V)tsQKKE%2X{^xa)zf$sKry(e%^VhdK z#IE0ZqtDb8g3R|-glHY{??+H5VQgR3TUx7+M7P@|+Y!<8Ejx&Jd_oNj0edH8SoS(V zEEnK~ivz`Vdo@Ls@%S%{7e8Rvm~lF-owm%@vICxmPrCH(RO2&h;$LUt>+V2Kg$*0( zP(Qi;e2#D?)w~B&4bbBh)!;vuNbAVGK3ODf_j6D*PzNcQkHq4m3O)R2y2HVlqj}*MCo8#ZdY7|Q%EqxfY)yIX}4t$LXr&_b`8icXXaSYb$F0M8_4Z5xx zEVP<<< zg`h=4;Ag;fUu9- z23IrbnH_XxM_k@P4TPbUf?Ih3Eq?)M9%U)VKR~=Z+IR*BFn%dsR+7rVIk1qLElwB~ z;^t;3x7)+3HDfbd|3fY^_pn2;8?ANr#ghr|~1`%glE~IM~Q^m>Pj-5d?p>n>oporsFyv#-AUmd_QrKfKl0{uy z1U4p6)BYGL9?1pRC7Iw5_j6!iy};m#e-m_EGhjafR8e<@ga=xbQ(1xR)&@5T;N22n z_W&Z%cq00E*U4XIqHeb{o9u&a&P$7PLsDb7&rwHT`v-OdTqo2#{U1bB&9yqSf-1uP z$ON3-S5J?@eko~u2~VknRu9YGjef8xpzhNDoYt%mLJ`TUEW;Pir9y`aLIaXNkQYdV zU{(^4$&Aj&I#Pw=OwIh^FK_XC;`a1E_$_z369U3JT@bZ-7>Hl>*`@ih9(q!qfKubP zw;=wNRwmZvdoogys&g~Q(iB?Kdk@m)Ncx9VtJf?L4b;=h*G8rH-$7MCmpS0nNtWo* zu;RK|jcrWLhXGWDaOg0IKZ+b6{ha5Sn;FfA+=C2Ec35HgNtGiyXP0^mFYnoYfssXs z9xx8nY9LDwo5mWIpUxLD4X`t% zn?fJze|>9O@mj|Al||=$0ir%K^w}W`Ef2UT9OSiGpy1r^vv*}{J71W=75GP)7Ex53 zn>tz7B*S@?&A?>BC|b%$$P&IO5IHA&m7d$!?tN?L+i9|CA;#-|GML1y1}++y0J>6? z-fF~0Efzzu41gxxIdVV&61nLD28_edzXT_W$Jh=~!fAaYi z_`Ij46c6@rahhiFqtN#*L*qUg2gMky*)D3&=5<$q(U>4YwPh9|<|K(!Za~%RiMF(z zo?}ml7MOxA4_y{kf50!vSCD{LBMHR1AdR=u@5N>E8Tssk-kMPo?|;cztCMvWbYraO z(Isq87Yz9j8|TSG3Ytx#ZcrV#MGXln$Qtv_=v9|Aq~^Te-rPlOs1Ccg?1<^yHrbV? z;0n86BUa1DJw@;SUalG~)S8ID=D4Zy><~6T88m#?#F*175+2p*l9N!3c=0I?D@bFx zsG6dHh6W6F70e^yLotLfM4gib5pt_>jiMk64UOpYomO*S))+CQ%~~-9?JUoC znFY_cJTA0|J-=SlJI{pMrT~{uMRm1JPXlJVxFEn-eVXwu&8X?I6HDH%zdXS6YBuTQ z=+r0kzM(&Eny=$nZ5;mJ-!2lZ7M2KB6zz9iqO(PBIsP^!!)+2kUGY&NQF}EZ1&*I+ ziqT@YrR8@#CtYr{mn!m`S@vP+XajU{Zqq&Ngasil&q9dWjIXNU*0;77Cbl8g4<@{+*^9)}jo0N7s^$YkeUs(hwj`|Q5i4!{=}BS+vrOr^$KxG5wiO>Nq9;N*d3@PsjIG>ep3f z$|a0k*-sxOCM`Lt2_^8@JQzV%t+5nCkJ$RF%8^L&}^8zw&Epcm# zT1-UIz|$f*{qqEBR#h=lEc~HKO1PfOIaeOGQZjgQ|69or9IMvnj(jb5{az=*(C;Uxtc1|t_ z8G0VATwuqF$@Z%On2qn?@>LA}DrX!@IuI$^MPR)VRi6~h=7Odk_&`Pga>3C!3tsyo z+UYx4SI)k|ivct_x_7K_0FO2q(psROf;97}3+eYIlrutakq@csGqTfmhXdnuP%V4g z`l|j?aC-qR!6m%s%ZSP){^P_0*})72M~UX`085CU(}(C>(K^h7`4J3R`((na+@`NJ zeic(5U5P2oku!uH=e&trbQP0ysi&^!Sng3K8$A z?|t#WfH-Vp(YB{@o*zSszK5#+Ew8DqF_6E_2i7Wo)8M>#4-!XJ=M^M%1$h?IP=0tv zwy%uqt#n4dN0dv{9J-)d`yxShrP0{I0ryOIthAtcJ@Gw%#)O90Os0o3fJ*cds(6&n{+(d}6?wH{SOU72b6*tLsju0jj6#vQy-k&9o57m zZ-t&WU{B-0^z7YD9{iW%U{(O+d0cxGdEDj%C%d5nk`tS2OsZr~=iECNdYru7k;#RM zM~>g<@yVj;Bs*_^`}Q)o{=r!maC-d5!%cWq5cZxt zH(lt(!>UZnt)og0jZr~3Q^B}J?YDuw@cWc?H0`idkM&`GeMB_?^lGDZz^d$l>A5xfMWILwRz@xJya;0aS7Gda^^8w$StYmE#ey1*2V6b*FrwcbOT%LpJI~Gn#>o6R*NoMY zcR#6h=byg%5_`5);!`2&_V)nBO9IMxn0(aQU1Fe+cq_ZVXi;R10v<^e%~A^mkWXM$ z;hWA=s$Zzd!jJUh%7PaLwzwFd^o-RdN{z_V>RF}G2#UV^D*8gMHT*d_3uhui2N)m~ zP%8P^&q4fC@iKqENre;T1;<{0Zo{fYWE@4n5yd2JZ`|1%W;Z1r_nx#suiT1{{N1M=O?0u5@_U$TALZF8bB(&z%o(S+Tc&w z%77bBLs&tm%WAUodEJMkP3|+jsyQRQC3hjV+w5ZYtnwp!mi7#w~60`U2v^*Q(2lwGXtdj$>_zK5c`>TbRW&-?#ojx9{YTgRPBt(sT8aB&ea!uF*(FEg|P`4eL(i zWcp?6o-+DH^FU+B9ufTAF+XoI$oSS)7O1*%ovDbJu^%CX1xGo1ceF(K`~SJ#fmm7h zzCH{VjVF=V3qH~FVud^2C?>MyxbhTY>v~^yXQ-n9uak_tyLY`$8*R2CGh6=T7#exr z?xm+?WXh?Idr3$bZp9VvxPW=>*~QmxDUgt7pQTyW%qo{}TD@bCfgk=$g&EDX88^j# zg%lc*Wmwl5+*zwQ71LQL90z2$&lU=_Tq+5DOl-IITjQ(ODW04u?6m&FyN=gEHzJsk z(EpgogCOudXZ3I$>JpCC?~jVM$PSJXuY22cgGT)zEF{u8feSRxWqRU9%UzGqrCCbE ziCtc>b{~Ldn)%bdd-w1g)&AqKxGVf?xk02&I9c(`bsj^1wKi6Xum=X%is$0fVXSHvd5L8t&HV4bI$0Va$kH_n~N2fK6u z%)dKtS|w<8Um!Rk9uv@IFL&Wc-Ya>VbaJ{e^;xGdzT z5s~n=iDnaX93I2&d$Sq*J?hOK55WLc*fQNe41k9Tr76YlQ}w%!-NdAT!^)OZs@fhA zp8-sxs|H2U?dDDPr$2ZMfF2t1l4?YqNc>;-W4{+thS$Z4l5A!JbSX!RRMwSpqICVp z9BD1VViNL!dln;mEV8Q&E<;<3BALRC=rX}luYk~MvDGUlBb0(M});+WGR@% z8LDU$3NGH(6!-C8S(FO(ie!VqI_@n@0y(|U!-E~F*cv_EC-Y*b#Vi=kt#h`qD_<>H zPr5L+Y?Bf_U%I{9bXyJl`CLOgAh5y{Kq#_c#Sj7kye6k?_m~tNiK2pR%d=od_#&og z!hKhtKOz@(TPt?z%_|~ySJ7)BV)d5P-hxvqp{Un3icI_-vvaG@#f7i(YAk3P3J#uC z;6-hP_J5f>#qw%w;XH1DS96f^YqC3kQF9>qG@k4(&G7Dc20463P__`c5WcbWJD{Mm znlobJ1$F%vosuml35=by5Wp4QH;XLirLZd7;8;v(dq_egr=ODFKFnM1maAiN10{rS z=>R#V5OQ1;{|y)F0lxz5ELuSPOuh#K05bvyh^D@|_@_Lv!v)!U{J<<((@iqtU}z*a z#2*^Q^LXndfSQCFo!SX4%^C8^fT_NCuFp?L{MT`rgb* z2Dre)%+7tCJgxV87#|2W^3uI8$D2&NoYeS)BLUbd6Py&9gBf`pj48idJyPE%_nT>; zund4ZkE#Fa`^Q+30^V<;9x(Z!S%U8%r<%W9+EgL^uP7)5kj5Eu`;~=5AVX5F!Su}i z2uhZz!mIGJ5!u6^K{39;&vnD$Prf>v`mlT|l1jyyKb}l70}{81h{aL|0X^zV#$$><+%*c0r<^#X zeI&@M%+clu#9y%h9IaiwVgkFO&saTeINUscUogHUkx^Ls&o<3?hw|60-7xGnlcBA) z&GVC5{cTmXjHAFdJ^s@e_M&}E=TgSbY%VK?6KYUJca#t?I2!wi323d{Zja@)$czc> zrdgTf$(-Kx1+TjQRkpj9f}?n*Z2eBu@MPy#RIM zX6Oo63!sNOQr3goOj{n*MS(LugH6p_ciN$XN}e=_c_P4S>aeNvQ8hsHd;ja)%Ep6V zbz8cEa?B6f%3dDyyAQJzz~pnOrvNfy8AE^;Pq_M{Z-`4KdiE*qEuw;hh%2f8j~(u z4FI@Pi2Uq0xy=z>b)w>&5rrK%u-7}gWg+SbM#h~f>RyFmuj60(ndSY8 zfBEh`+HnWezJ^g85>|nQB&ki|7+fguqwX+Sv9%@qB~x6fIk+hR)~;ei?rMw_D1g1u zv$+W-cLEi5)a0s&u0%dv$v@u_ev4&QQ`1$bg#sHB1~Tc06_Q_X&g7%b%DCS#OaGHC zcEJE;72nI`%Tmc3HzBT5ry_oSs?+^AosIO`L&yPRda)3cS1o*m;Mbdt<EM@H+-Fk8ut!Hh`_*XoTiSGZRHX3TuhD7cWA912 zw_h+L666%VF@5A^B7yHSMr&AwXsij@&@ijWNFzekc%)cV>S9CKdDgJ8N5olVg(5{_ zM^Y##&@g1xuwtpppg30Z$+?Cv{Dme$eD@`)03&bPS{N6aQ2Il*kH3)V#hHyRRqPSe*<__dBh&H0r$0)?58h>ba{+KaA>u zhC!MqpKCc5u(rqDX#%GhDb_);Ya071&+CBMHT!I!nPrF-#?*RoyDV_K++k3OhdlpO z5McgvS{Wy7CBXEL44x6MsPoe-BVGg!f@}{Fr5AZ+Ph`6;thwUogkoN z2zj6LC|*^d;Ay9jxhQs~&M9)F<@6in#|h^Jyo`0?@-~qmTd5Muw3eHb)Uvr5&?7tS zHd4E{&Iz#PODg0ACKMgbQd4KkZg=GucWo5MJ&E92^ya2FaEIfZ%{RIDUr#Ml{RKPI zGMrD178PlyQlmv;{V4A!m6mNg?|T9cyDgJja;Iw#bqi)efPd4{oT$^;>hbuQkw-996(W5gw3J^D(A{3!szp+t+A*4{-D=rT=_RP5F)wnAaO8l>D9= z1C^y#V4}sHqh`nqoJrk*OWYmM8N+i@GP}Og0f5&8sn<(lg#FNy-+nzhV_`DJt8U00 z2F4fe^-izxocC$yAfV9ys++gDAzT_|f*c^n^nv#zfq@y(|F*)H*wb4s>q99G6(Z8r zyrV@=Tbb)f<7Q1D_CHub!PZN()FAqwa;m`!Vr9YM6>pp|Y}e$NU>x1F%_e1WyoJ5? z5*;`ix=NimPQWL5njN;`j{^5$x2r zQlInV-ClpB(N(Pc(3e5*k8@fnU@tbl!oOXc`ulCy^?Z8&8Xl-dy%YDjDIGaK&7{@v zAUSDvK3PI0gBh*)m_bNGM-cTTO=D$i=Uta#VW&HX$kUbIcJ8Woxt{-_x7o_UixYcR9& zAWqk-@A^=vDf8Iy^fm-|%?biAK=oPjurfh8``zB)y`6}P?A?$Du87t>;;}u`+i!Go z%{jEA2(I#)TTl16-@SV_uWe3<`DQ||eSY6Q(Bs{o+$VJgua3`xx>_C!j#eLz6jGSI zGgK?-tx#p%MgHr!eJEMN*M+a~r_D~`Wjvl=hqhl|QW3J)+Pl3wt*rl&eU>Q>uT+Qp zaL-fE!-z7onwcXP((144;<*z7=qf04Q~dz(gbl_;bU*>|LBW1weqsXa&wrfx+XV<( z`R~&9`d8=t22AFAaKR18X_qm1vIDtrszwZVf?!ATEN{x@Ym6y8K%2=7`d?DK6(+HN z8v9#c5+@_54)9?F%wd)gg%923e0Q!@q3>}$!&>U-xY&pfsO%*}!dw0<0N^hXl)VlG z_0V^K@%48YdE;|&8kGk*Qs$_8EV}Gy4RRKnVXS|n5&0NJL?iu57ZFJ&{+7W@TApejM^H%lj<{8 z5Esm*f32DvM*yM*aI%Pv_n2cfdlb-3aipQKY(00O=fJ+03O|~~I&5m*g6gkjqSO}^8oK5 z_77Dgh`^gqyURikzWmS$_Y~7xYg$&*_Smf6MY<2>z;Vs4?hE8eW5#6Ly- z#SQ=9lBzp7j$Unwy7$&yc4j^&>U{-nZrX&sALRoCqtWlP#DJl1PIe2m_r;UrPtP?i zdPX<7*y(C=4DF|$<5+S0TG%7A5({EcXd#(0772*}V>n0JOa3(wl(g;*XeHBox;IR^ z*o8QB55eA#BsB<^OUqL}OxaRGc{XtpuzD$_@ct7HiZ}C{hRl5s#xJwqtj@K9%iAKF zzUG|-di1`w(eB5v_MWAd@IO!7pfCvF{5!GDvf5;}6gPz)d&j(sUEM^H{(6DK+F6 z`ojeMRP>jjp~dSGVi=2XcV1cB>zistk5M(-#F z+g5W_j6QimQjNiiKki@uM*R_&Rxs9l6<0mIo0~q$rNJg|e(e8v9XZ$cl@yY^E3@RRvB^khL1KmH`dyY0k@%FAjCyi$R;nxrK4y3_NOaSk(B%3I?v>&`rGH9hCXg#2LVq1s#bOp5(g-Q}lNx2G=*9 z-@_t(jsjplnz({^G$9;WHYOLy#4ZoG7(80PmB zS+%_6II53_-i0?f4Fm~###+5|HQBw(%@o<`p<3hK7y~<{^xI(~qg*=dP&$@VmSxvX zXG?q#@FiUpF^YRvf!1|ELzG|Qc8eb^P&`vxQ9NKXBT-l>xJ`e%90vjtQL9*!bl3sr zHn(=N)n7zF$Hs=ORid%mej17K3#rbIJwfmJy2JdJy!70*3$<&M2R3h&(rS1MJ>ySK zU8jd_(S7hL990#>d~cKX^DV}0!$I1sQq3=Oq;wcM_*=dY(1q=tpc+8*h6|V$-x^%u znZnyK=muno9=dxRbZu`pZ*2E#KYvt%?fEav$)_Mjg*w%H0MxPC?IR)1WwS$ zo0uDYD9{U*bc+8pOCk{&5-1k;vuEgQJ}&@WGm{5&fUMGgGe%(_r`u>t{TlB1(mZV^ zdoFc8oo6<8-~*YE1!8T=NN^9&w}3kbsBC^s>*(~VQy6Q#c@jwnEPWlXj<83^R`Hyw$$r!RE8 zh@dABXtS}_I~zP?U`HA`rXBJLX-J>WP>EbySDkxquEBF0wE>5A~ynk{dy+qlS40ANk?Cedz%>HyeXl+ElN)E02{QDsE#3q& zw`sBvZ)GbCZOJ6=bQ6LQZxieoTSY%r**T*N-k`C(bz~T6={g)*DYDs%upc#> z3NjC%1#I(75wnAC4o04cnJ?piL!Fa>Z^>qvpJuUuHSAY#OMlM=%vL^;*_kGbjkqMc zly5h4v+MK;n%1Xv)gUyo7(r%j&?vjg!n;q- zY7M6VXhLF%vpkn@DCPc}39o>W^we1$x5{9@5|@^pXs})o%+FIDn^LGEoA5l8|Ow7g~xEuphZQVIa3iO7ll0?S~ifGnB0(tjXuhW@u(4OSHB;>lM) zoC&O;6S!FR_EYEK*T)C+pUN=z1ruESuxroY{;BnChz3#c&43Ta$4~O~iiTF!Wn<)hqpD`DJgkOCu zhbxv;zen$TrA-i~MluXe*3aJHuqWiP|GqykWM++?m107dg?bhQw(QZiGy{HZQIFvB z(2816%Xg!wQuCVSX3|Cj_H7?tKHYzCT)7#}#J9OgyS=1;9BXyCto(4hY`ob3YEg2J zk^?F@qs&1g#n1By|Ft|h7-=rg?yp4}Gd0RV0ZzIuY8WMfIOZ_5^{=I`ie2x0Jw(J!$C}WyS1jW3nU!kP~_wjq(k?qpd zyN@Dxar4ke?}v<{({GIc^2D3Qe1QK>@1c_ds8WJDYNHs(Naadih;O10{wohma+~ZV z%zXxbm9~*cB1Gp~X=w?g9kj}zBwt$Xaya&}?%BI`KE6tiM>m<*Lj&ZIz=VU~$mWr> zc21=j2MYPl`>*jSf8|>g_4@vt?AqjD&0V$MuLOHD*wJR!^nWc#?3^}+edqKxUVYu( z1h4|Dlt^2K z;}Sl&BToQSgORuO9j-h*;8#Pv%_<5FusXPoI``! zf2g6+;AYC+hfmB~n^@z`M{>YY3{aWQ%vyqYObeFuRhKYYsdN7LBIWcUc;wB%ec3wP zY>al@Ozut6Ylh@dZ?O=OZQ;$#epjO7%t#7!Su>I-7xAUN6smT8hM*c}mgTmKS?8E# zmviXnA190HR~;}`8lhvFGnuLl(MF}?*}Ro#!1E;(8*DSVk4JV@J&F( z_vht?(#hj1O2Hf}M?;N=#q*`0LCD-k=AP5uP-Nwis?_ss02Ci6?+_dwbbY+^op`}L|br3C0Qs2 zuh!iS@BO%s*pt?N!S6Gk`2DReaYxO!%lkJ7UgFBZ;jC;ZCO}7JziQB z1ic}Vu}=QsPfsZiB*Y`COb4B<8M&m?yLfKDsUxF4*VEqHj?}V^Q4&w&P?S@l_OiXH zru6P^DyE};amjbaVmG+)D1-Y{%;?62CiZ8p?J!0W!4pNxMOKs2L}IFBmR`#HmYi8E zG`gQUUvM{@u(FNvdR+QAa4>qUHw?d8y}L6DE+4Sc4V#-#4BNuV*Wvb|n|-&ziCL&? z0gg&p#ad56-}DH3yu}3S`RW5&O@gwTTgbH}vdF`5)KCo{3fx_1+ljE34bj#emkHuv8i^6_&aP-|)T-A*?P`(Zm% zTH9107gwQhRwAYH>V#E!H$&fh|4JG#-iRZs6!jVlos-lKprOb@)icH_bx!`p;rYtK zxn2y&f_(qZqna1bC`b7DKqAsVMm-=7?OQIYQ=qn(x`mRG{@7Z&G7Dq$D%Wn?;VJ#N zmGKG@R8QUm70PDCyL-Mk=qRvNEF{Kjyg|F_v?Wp4=5io&V$fi_nLDixDWTacnkFJ9 z2h^USCvVs&Zr-bsaQlEy!U%*1vQ4r9&3dlwGGY^~cjRa&&UG9?AX${QU;e5+XMZpN zsqRodAaT*yHyJ~6FjJ8F|bzG z>+H`t!Y{5tZO!A(J==oP_Cn7FVm`5qRi6SWY512Aj;+A*2{e^ZMR|P{@!MyI05I;S zdo50NhSY1TULx(Fp40rI0TKJ0qYeV*%7{C&PNYuFVrAJH;y~7gV1El7S&n{1_vezK z);8WllmuJtOU+Hxyq%j8Q{g%j(aEStMSKI((N?Xvpl-vJ9*C{EE7u%rcvB5H*1V3# z8QAv=#^VbLh8zP{OS@g?gp2plqaH|*wIjceQHZZmi@?B99(`10KJY01-6DN>hlfPc zK)7vf2a=gouT!4poQFok)M>di{09kMpm`UZx#?8jt8IMp4MV^5q}5|~N5hlvABz*) zwMn6`|8cjgXanwjcJ=NLjEP8H^w$$b_n)k3%vkV={z8yz9C+hUzgs6q_f%n#cz>8W zdk$r$Ve314jOju{b^;iNA2kwe*6nW`6Xd|fx*`pm54I(Zx?G1ZpkDvjMbN}z`yj2a zr=4T6r8rPr6oQ>XLmwE%vB|rfDrxHdF>#>`*cnN-mrW2SFu>@2rVd4eI{(rDlcUR) z(U(EBR^j>YzoS4y4gb_D|D*wo!H)JrugMcauEc=J6V{mBjJC~qZXyyqV*pR=`aniT zLDWC(&vSQ)N|;LoruVB^(&&gkq5y$RKE!|svTKZME{tbDiKF%)mY%+w(TE~ihxnLQ z2u^fnvmP~Z}im`WAFs~7L);aakqvY5G!wQzdgtD z@I~l5RVnfF%sxgLkYcKYtkVR^ln??DlT;PRRKW7bq^F&{Oli2j>kti2B|GxC~yf2Z1>@>a^IibW^WFqqsOwYdl+K&HLpL3{`ZiWdq0n97Yu3j;-(0hCUCwxbm!q6FT0zyA3c&eVz*hZ5iZ@ zp9HiBizlo@h%I)Y=$9NEJ*+(bvTk(RZ|6q^y*KS$rSdQ{RmizlIOqT8hHJ>%FR3W1 zSnK;fwT~@pAUcdhig2G!aX8;#&CnqwW%?%bI%ASRnLIvz zd*+c0>cSrB_#s*t7X2aib3Og|`+svWyCQJc7Q^A!@W8ABFLBRI4f)m&$gR#~R__jm z4(o2ov-f`N*I$`d_?2@5bT)PWb#hMo@ZS#cIZ*F;?Vn8Xn0?X4sN>YToz?I^+ah5= zGb}igLbjs!{{^sB?z^gUQ(k^tr*sJvzN_*Q269uVkuO0R#3!7+eARf5b?HJd26!?$ z@fsZG@nlzedU@*Si|cy>2BffWH5q3ni;rb=?|c5x_J~*k$t^M+W)9r*L*}qQo|Cj0 zY9-$f`XGgj#7*l>CI;A({G=#G|R0!lE8ba1(fE@HSxS+$ezGdsa5mdroD!&xpb!mh@Br9WOk^2 zIplU5zNU>7+RfTU) z5;}_*vWNURnR>*4c(~C|kZk*NS6=)g2%!B%j=od`-+cjw-)1)1sjplx$V>NW-M(zR z->UR`QpiKeYAX9O0!Y%J%@H*q3~K3jrXPG>3U{X&;0zP>Fw$3p0E+ zvxz)0n`OOXeN9OUPp4a?Vr)6g(Y5iiK%=3-Xt{tIH98F{iZJh!5hxLZfECm%ArOzE z7Ij??`dkrmu??*CcynE;A)BB0D6AHhKwAh=L70{(%+*$YlmD}VUT+}N?=)4tk&r^* zDzyFnrz?jRBX$f$M`OqHE#69&PrGrY)@WNQgYr&oZnraP_i zg&$k1Qy}dw^;$SK`(q=@PJzGD#P%BtfQM^Bhww_|XyaZaG#!;Y%PKQq=8l00xnl>^ zcG20(W^1jjRg-3V6<+TcBf4Iod}F64pngw*$x-NwJ`zs`F&1?Jpjyw_BwQl}u@P&o z#5K7?u5IGx5}L;^Ko^s_eYE^6R=`M;wXW=Uh2)U9x)JT+|A>w#MzU0}O#ProQ=S{r zy>cdEsh}!R--nX(w8SS{$>wTtS$cuzgXVEJDjrG z%2BQFC#+ZfDUA5f$CLG^kPqM6(g*6!L8X7hX{hU7a61ond#_Vvl+=Tys~3iR=5siU zUVZzX<&j~Lxujz)KA)zaDUpo3EP5a_^QEJyQcHF&koAjD#le9&3^KbxL)zbQJ9IUv zrzNKMrAv5k$W~0?A_(0*Tq**n&-y|I%5HtXNJ>s(ZX;xzj+$kp=NaYp#;eQw{<*_tBtEUJ(H&h#-{j&@!25+vks;tx6D~O$P(b>K(K% z{|j#zQIgAN94#@&4+_%7wDRUx^fdH9KTbE0pNq?>sm@9lG?a2Q)RtF1*kyb}cC?hE z1l2Z>N}tUsS+VlgS}p7Sb5yd>>V8hn#ZtgqZ70ufSMs!%f=D^YJH&pP#g5TYQSAJK zYo-MM7vgnIx2z6ItupBddT!ycCHc;Q-FZOU@CJI6iurzMbP#|Vy-e?r7bP|q z@$Gt?1~5TEseI0!Da54}nKy$6iIM0BB*&pE+zn54=&s(8-PYX0VYqRXDw82(p~I84b; z1y1eJH#;4e>24fw)KdP9`;7zkRW_2JiyerFJ-M5lThy~o{IQ5y;J_#V*iPjkhZEGSvWSi|NV*+Pmy_S&+)hGY{qjSFafe$Z4 z+_C5I>eVvjFC$_%RhD06jXUcBbdm9*L-r>)C04Ole%VEKLt3FmA1CGIVhwWSqkc); z>br55N1a40*mPI6XAVk-8r7zwyCkRN1n8^FpS4-J9ufo4>DAx~{4BdOX&?6aRaion zhy%(Bp&~Ym225+{h3u5$rqFvU*6qHTRqTZOR`aR6Gqwo)7O2IQzpnd+)Q>wXRs*{Uh_U4rhpQz|~X} zEs|Wb4)8vxu`VLA0R1C0gd#CZf_V&<}kL$*mE-H+2VIh|4FK}sU!3Buq35p$AspD8*L5+V8@=aiy z!EmZSTNDfAh3ZcL9GV<8JqULcq!JsD^>q&KJXhZs2gN zaB4Q+y9en*iL8$_TuIu!l)eX?Yszz2tC-XDmOUH!sncLD@%L=dp0`R*Z5$~8m^x45 zEdY1j{u`PwVDaSg{PMt|Pa+fcvhY3v#z4pS$}WfKfrRe#RGPb@1)n=QGG@cUEhSdJf!Q+`kcYluDQXwJ^ufF-c zg@NGoa5eza0de+44^>kTMk`?_0iT9pS!>l>Xi>FFtQMqEg*K6e^yVf(_)O?QplW40 z+P2HAOB-%L=jKlb`5M1*yZyW1g+541DEY@bY}!DHaR>^a^CWK{bR`5qp?P~6^oz0aNOw6I z1=x2wwgE2Bk0GF8+#NBmky|l$%Y`_WDBJPDuaerup1lyLa*`qJJl8*PuT--~*kaQ1nc z&>~FPQ~8C|-tn|2OFYu*^ZpTRQup}y*5sKZ@=sO(rda9Cxf}ZvjD@B0kpGRwWyX$} zrbYjPG^t>>r2YE|)K{aq5d|VPsDR9t$klt+r6zLzJ(K9lypyNN&YTmLI2%qZk|h%@ za}J-A!!1uopJKbzZ{j~rq*W`aJ$I<*-cN@@^hq$kTCljymcwvmbuoBV<3N;@_aGCC z!5%*7b59=5dAH5@Xnn44cLaTPEE^7WjN8#!xC20>a!pbo$!mVVlZF>h4C7SI;URPm zBVP}JO~m~HYqHSrg!u3^jA!Nq8BPP|ex4B*$FZ)Zh>Cj1{}^yl_4VYB6aK zCb9JHur-PaK~;^S46N zG?QSB$RGiBRtt1q8-4CQKn*`ye}&R);2Vd3%!>8GtWbO_!O&9e<>VjC>{b^EVS#(S zh%AGLu@Zs+9OrDKBC~|~B)1xAL%w41bd-|Vt`4IAP%!*_w;6oc8MYO3_xx-NxZ4?5 zY}F0pjqcB_7D_)>GjTM!>oZN%C!d2v6592}+?}AxXF3bQW%(3o zF)9I+VTAp9r4W_^q>`fO=l7cHG0&FYP3t!$efkNVzSXSGwAOX1^?EGAMYmy)*k_mX z<3ico{wz0{CaP$G{>DFr7$pJmxyDJDK(u(%GysH)aOdZ+^wcj~)uQKrRdq{=;bNQh z&m}zOMt)-8vW8>q*`k*H&yE37fHc# zu&F$ay(Ewxv_r%UD3_T&3>hYOo>kC&VN8EgtrdPVb#+pFc{od3?s=Rpm2 z$*Jv9K5|#q1S20SErC^?uynYor%jC3b!bA``pt<&mfC7|L7TtJzrV&Q_9qD|Yl-u|6S|CIIriy)y^dS&V`^}D!bNFc}?i#wa zQXD)L;q-Z%<;MG<+Puhct>Dzb;DEmUNOP?>SV}Q~$pu6IFqklv#64ZlLW)F#Db?>{ z2T%K?99h4W%uHaZby|~g{0TS7{U4AUuxe|#=5ssqgtE2wK=Ssu_>?kWm@}EE0Zg0% z)C*Olf+k+W#L{*n(EX%WS?xXVSL`_aR>vC8(rSLBeRG_Na_Tc!o+Kh`kWUT*d>hb zaHmDzCjHe!5$YLPmQS>U>e0_cVQe6-N>snPZxSBU-W?>$V1@VC8^*gwFB<5<{v<=B zD}*80R)^TlI`otkZw$R?sy@I&k;DZ3QF=OEx+;)>$R&{cZ(xap>3xgb06eNgBn5X^ zU>=*R(1Nv5yp9yerKq-8H20q$dwEh=vmXc;c9@DphAnBooO#C@W7aU_&1Tnd z(3X4i%XJm#;RQe?vgWl`=hQQcb~vG08L`Ct^S^r4n4C7`hGN`Ir2*VA6vhT8OWzX3 z-^$P7w7JOEi&yVn1}mtukKQW#;~jloBGUh`DnDLzz#l+_2-0h+Tk}_Fkfw$c>dt{e z3j&Klz%QYZq*PE`xan&oPj3-~F*;yItKqy19SRPe9rabt>_0zaNO($>)ED?pcm@>SF8vDGPY&DNuDhd?pPTxe+Jv z9W>-BWj6Ycc)qA$lMe{mkPr?^0w!y z`Jem1fREI-1GLL9c$7*L+2QvKJH#fHnQ@!HdzSS|JIE_?N+oDYh=%OW0B0V4l$H-|>DC10^h zGE)6?6}hLFxy@kNizy3)vDbaxw;JG%A_G#j+=>V_wJ)dR=ON#w7i0ok?^S*j3xk2^ zr@5#G9$|<` zsJbHv!e9>pgvNV1Uj@NrIupOy>pu6V_!qb2(xX9)$7zej6G}*{znME2GIdJo^acK8 zCnWi|=a^^7j-84riDb<<+DHNrgY;@B05pE!7zE%zO0hsNlIOn2P3JlfQuC0iGgUT_j3NU7W9Z!3=L1`+~Ke_R%pvxTF?6+ zl`&8yHHZ*+4gBU()?aVe_MmJvpC~+pS{aTg$bQ&K1$iA(7iVjCZ8X##t8b09+#Kh9 z=xnh$jrj`^EnYNRkFv%5Ii!pLKz8eetbMWCwd*s4TanbT01`qTV$8T>0x~61^e7pH zS^}k~j2et-9vY-jRA5+w3AOtT#t!V=vWmN7#Q{G~HtHQkNXN2xrO$CEx>ck58gAOZ zZ?S_p7mVfb0!x^Bsa^^Q<8l8mSwfsEW0h4&WcG807W?_|Nt%wunp=Bqlk_KKM+v{B zMG?V~CvIfKEm#N*C_S8DRB65LSksMiP}kR2wv}%HkpVKugTh0!ESIcW;0YKFl`u%f zAr{oluO1Cz(gK@+Xsm1IpI!Q!e^CC$FiVk?qVyj)`snjbm^w#RQ%6_nMP3mgvm+ws zktK!WK;Vp46U}hzzkeIb5BJUl9xR1puv#y36CCK-^Gqai$Y$QYh(GOyCZLUGOZE{> z3gSk+z{pQk(Dl40vF=^vRl9>g@C@rDp8X6;|9FUhCYSZtWyXG5T7#Rba|OdV;AZNv zZXy$f)8aNB)`iB4JPZJtjO-|%^2Sb9ZI4#JP?wMeOi@zEr$10*8&1-|K2+qPm@EgI zI$Vqe3`d3q07nQHz9~NCA|>9l=^A8JKL<10zWZ7m{drC_(d&85AuYn2!;A#okc}eE$Q~c!;w;i!p9tles=<<2kWkf1kwys z-r+MA0G2*ldc2PJZDMEn)!EN_A29P!ePPMVBrC=Jc!D00@*(g-rSBUEP6PrhX#q4b z;MxXodj&9nhob-lEx^&01nTqRJ&WtB^cbiA6u};t7X%6obg)d(IqN5qZ%qpiUJ6uR z`;{S2ag!L^`$ld~Ur0gq^08bsvi+)hcp#eE=c^h$wU-TprP{-MqQp&4L7hfCS5bqi zv}x{7QW6nuao_k12NTD;U}ZF|>A-_>%_ep7vqv=)l3GBVbPq%$O(Q!_T#`sMV6Sda} zm$xJe@l53@e_QtQLGDv*5bTGy1d0hYYk$QnB=U7Lz+~t{xakkJ-=*8cYS@5~(Q+-j zj>7z9Mr*i9`S(L4>r!K_x4W?g%QH;a*>0=(=)0@MwzI9z)LPH-eeeZzr-xFj`x!?+ z->+3XPMg%LqJ2%{+idCz=i0qK{W5#xZUh6EU=cg1L;eTZHRC1%CXKB_n z#j@~QLqb62x8PqAfF0`-9S;{!wI*SqcbMIPOwiC7Q;7HB)k=~LCSXmR3qxx5z3@F3 zd_GM@A9y`UC9SgRHloGZ#a=X%KdiC&Uirlq8yIWic(pfV3!;I+8;$4a38>x=a|67# z`(Iw?4(~TjLYn=~^YemG%+H3sX03O+!L8#FtJW=gO?7>G z`qi4;g|P506%9# znL)WX9YvRWe^rkd2Y*qU_v6BYy7T89-#I+2b6O#@?0JmgdWdRlhJR~3k+H2jU(M;{ zUm86*q5s4dE~x|{DUd+YtTFj&e0~eqD|7hmux=sdMCQ2;u61VLPd195T`cA$8BgNh z^kH3d5lzUW!@Qh|B~bws^Uw(xG}U7rY0qMM1w#S!xsF1cpxalV{`2a5@hBuKPXyFE z+x4$#rO{9wUPI zp#T9SoTHP|DmrGvjb|SPGdx6_erXvEI??-rQvz?MQqSh&n$bG%bd`o-b=F7r+Y9@KJc`_{q)&kBDzITtUQTDw^Pxb`srr6 z%J@8D#VYDoMYjUe6tYt;0Beh5$Q;T3#0bFj?ctO7u!o8K?Sc6QkQ52VdiuL*jED7M*a6|RHA=P>rYoPdVWB_Ha~xe{ z^@2!(g7+!77#H}@s}J#aN_tlMdzbGDct(_E!8qIMNy>FH->%EQZ66te^7*f&`T4UoY%tja1g6$BRW|KF)u-!6OF&Y7Z%)9C!Wz z@E^ctG|mkigW)=_Q8>N005Sm0W`QgI7=Tm{s$5;=W^XxxohZIa!JZ1XPr09ryY`P~ zc4Tp{Y!yX>Z?#GJJgZ%BvWH5$J* z2d&ZN#WP}nr@N6t##sX^1@?&FJ8WY91||%IRD^5n|CX11KTY}+bmWyXDu$CWW<->{ zzNy57A`?<%TK6m1hF*yKEzR`%S*$;^_7m@N?u`^1GHebQz)gD0T?vIm5jUNtA4_!F z86K{si&d8OyYlVC+}1;@%F~6OUXuBab-254^hOYh7)Etrhd6t=v|r~vXwB@EhkR|F z5Q0+eTcqYr2rWx1Qa92ufs_LJhM5wXM=uR88>ku=2!$gIgs_H{bOA)mGx1tMAx6RN zx8|jg9l5ZilQ3CRfR5PB^DnD=lhOE(lP_*Ke0Cf++ZM|5_Egj!vka? zE+AMEE9htlIQnzx;P-6)D#k_6gOJM%!sur)dVBF)JHvIf*B@9y^1ph=%5owFA}NpY zPJ~$+ckgRz%m}s1bT<-a&3o6{a_5x@4*>Y6*>eKfU^O)(wKwN#Il z^(EE=lL98S@?~WG@H{Hux;`6sSo^K`*Pw~b5PI%Ahe}j&HdUT2YRhS~`o|#ISHsZd zkK?U0tD1r}D|d(Dx7%G>mn7#l%)t6xfHlet3IMh2Z4@Hn`UqwM1Hnp3D&6^RPy|E< zEgPwn!2;*H!Vfsn$eK8!?G2yZnhf=KJbwu|vRgCr9~~fAPifq)6NQfDJflJkXva9a zCptIpUphp@slIBQrr4SYC*1;G*Z~>9(!ToA4*?Mr=nUXzhY$c%GwpXb1giFj*;M`-$880wk8cfbq6a=Np{v~#^8yR4 zM{CkIcKSSsq@56aK+i%4{%%oSKF~^~{rA~rY11i1y~`Nxi&hNi_A3AvAe}bWWt@;i zfkEJAobV?Ggpd8~PB0@UI}lC95%-UcR8G;CfLb4#&{PxteEaW{Y;bE5wR$Az z6=-6!XOjb-2~uauwW~wQMa0dW1ZyKwN&*?@YpL?2mya^63DYjGAen^^82R>jtNWeG zUjVDI^`s>_5jPstdm713(h2IZvLg4a#epCQ{P)kuZ$*bm`IA}RJ!9g;hy1k7@=b6Y zR3J_U^Lws<<8^ISv9%WegZXD=x!3H2m4Dz+xx(4| z8DFsj%s4^g|Mai-CPC;58TJ+njlc33lVwf7CVL!d$ko-!bQoX%R{at6J3LsVw-@|^ zyQFeGqSU!91`e+HXg2^p9)I*qBwnnM2f3XfS~0T}o^`C}?mq6{%MM z#tS;Qi9;CU%(pi%7){PEclvk?yH2q|oOr(FH<(teHXj#6D_t~_Og%>*2VnEYlX{+X zyijnRupSmA8Q_j#d#q43THMhUWE{@l1np^XpADl>cpr*@^w*?V0i6MRqA&}hY(zIn zi+`ho5ds4EfaQ;3p7AL*Or*^TB~;DT%M*!f>ruQP!9RHcHgIS;Qi|3Jf?*bYDKSq`B7Kw4L_6q|iSlw4BDKgY2a5SU|mB^B!p_e7%P($T}OTY-84lX?Q09Sicrs#U@N+EHNX2ZdGakA<}l z*784t9Zq_25CM<&w#M(-{r7#JG7dk|7c>Og3_KNZ_&$^1-w?hPOf=5u@s!U7{hI+ zO9OU~s2u`15KzzsDBn4o``=T4@s}6p{GgxuSY`}<01Xl%W)-MjAmzgPg-l0-Ejw&* zxgsccymV`MbDarxHdsZ?skI;Zugi!TYoDbM5-xs4fhAK7krUQWUIwYRg;4_swN%BI zLKU}^oU!rS5$NCO07NtXx4vJ1J#hO4x$^^)0Dhsytn}Iu_h$WkGbT-r*Df zH0IS`WF_s;9tkiITF?IF*hCtDS&HI7NDRRfyJZDf2wv7{eWd5Jx25C{nHF1lvc{AW zs%rOM@0;-x?rp-7j0Rezdd`*A=56DMh7+S@)Z-+o_lUAa82WSw*!1Z9S<7M_K+yj04{9>12gCztQm=ZgUB!A5iTS46e=Cc596_cL=qORpC3 z65eIK5e0g!t&_kbgl#~&2fjCuY(qZ*>gDcv!_J$0w3L1z3D1vvLDg>IV{zC^OZr&I64Wsw&qLJYW8i3?oV&sN&Uv_|Eq78j4c( zL-#hPz#Myfc1zGthS7z&Unyc9?rYUVTrA-Jg8XnPJ?nB=I3)=1E<0a&9kmP?cLffg z|CND1R7xlgus(>K5C6$FeFN@$-~ChCI}N4pm%#AIpHYuSi()O&6EvGrki1{Obo}&7 zs}!2_m#cj3&c6Vh__+ZYhz?1~??jO7=<5K>vE1L7dgpJBORx7&5^d3sWFi_LD(T8R z1Mk(Xmcc}L{jF_CL>l}=(VvgS!n%tzU3mt;I+zw2#pf>(2Lt`hAAkCqH$9F6$0g&`bJLh z#rScqXzQn3Poqh@h(UvdfH$zg(RDb9w} z%=UZu>jCaaSYg-~>N)pd6q+NEwT}IYci%)(vMV&ZHyI_T>Jkh;-jKKqV`|qb5&-bs zw{I2=BOVU>qPS8RtVzSwruZg|tjU}Suz=b%_D{VjAV2{^Xoqa43&W*k24y-OXXMK-utK>5s=klwg<6q&e0l?c_U&be$bLqwCx1A6Z`_ zs&DZthe1qc*4T!D{WWVj9XrP&svcP#%s-x86AhokT1par>zdeyeKPj*JM`M`ALFme zJQex&#E%yDV>RiB=d$l0K;ECN5X~P5=E6X;$~Gj&X66Inq)^op?OsCd-g+tR0etP( z#bQ05mr$5Yfa?3KHk4WR!2ELZB0l?Dj; zGwi-zpFTXLi;uX#-h9!{0N%xb$PEWHIu7M>T$cTgBs#3z?N0pVpC*3^#9;QIFq;lG zxgC10ASQPEVY`zoB+lTOh2Z1Q-SP*H*N#tob<|)QnoR0>b>#NnTE|dBvxh z_bq9^l~}c$IJZv{8}(QVQbJyhR>^3xJ7*xEpA|qeum7O z02Ve-u5(ppwc7kNs{ogGeo&Ewewo(%sMX|i&D|ThOw77!uTM)f@l`k15)U7V5>ALB z48}qMfq%=`9IZY(4{WA%im*&;&U1YKwDkRCVfxfSbJ}r=syY0Z_Epzp%kQ2Bh$;vvrN3kjqZ?&rg`ZdduiJVj4yrZ&OK*;<)NndfGaiP4`hR zs&X{-@%ukyB;(g9Sds6z&h4guZ#jsa$j zZQdetNt(Eso>Ob0G*`NEf|9K`{dqi>5@U=r$rZy>3WoJLrLYCv@W z$jOwY()((bk}HS~tu^}PTZTY@l{hCH0E7Y4RJqk?M&C;B-O49@T)LbWJgb$Cn%(N@ zn_71%I0b-<6VU=?;Q~yDqFkn9P=o$Ultb@!U#(X(B16#x_2lb$2bts&#u1_%zH)9M z2UDrO3yA|;541dw(<7el_Jw=&@Zlj@oCh+q7vv9ZWMJ|B5Dz%9HJ=Og3S6vxV?d$$ zG`LyJ(n=kEPWM@_;Nz1wL$|6R$|12B*P`-iOwZKf$I4hTyuH94Io;W>j|-Hcrg0JohV z_ASU--=>LaUA*{@EhMiVE*-xkgIf5n55Tlq`AS)7<|fh-#|FZtTiy<1ruAmaz7o$7Tj{x+2Wd#4g|dS5n^iU;kT3S)`Xu zwc4HX`&NlF8{sG^knire_wqOwR=V%=XlU}`R9U(}cEAL%UbLpcGCk~{gql;Xc>+VG z%p>&gRbXtQ#fFwBGO_3~vNx2$COH%*vUb;`nn^_3M@x$?isFj*8`-ge5uKD*Rj)e;gc)dT_t=5B=}EZRg=)h@1bZ=dZ7Gs(Yrky=#QYW2d+QJ zte(J^0-+Y5@Tj*D$No^NJ@1M}W`%dG`v)0`hCt1~u;PF*43hZf z_48_JW+gVbGy*6t|C9vc!n*cTP0xKssM#X5uHAK?aBB*dga7ywHIvSGI>9;6_unxa zvgZ?i;=dyC>y@8Uf;DRYaM*Ho1E6|3w zXf%fnVzgNQHNd2fVA2We2ZuGoQuxP{f(0%#_i9pl$VqJ(Jz#jNcpaR35qM z+UGXg?@S{mSJCfFSKK8{O*FmO*Pjsftk|4 z_=puG2!ks!8k|3{@1dNDRs$5G-<^99PMyMBNg<4XE6yjzB8eAt*d*WBPxB=(ytl{$ zpkzR^gw$ii8yFWc*JQ8n*ED=$saeRu@u%3iyVy(#o8^Pu;b0P*!ByA5_FcTb$X6m0 zHs2-KdRkg^9Q zJJJ0>aUHa9?plr5V7P`ZFpvkkeT&h}=bFn7=Wkw6Ma?aSGodlPsv$>PI&!ZSc)qRr zPdK^g)Xh!hL$n-PPd1ACz zhyCH#x?P9yR!zoSvI^;U!E&8ML4eWMPR1GW z1|=%sP1~6GL!0}l3;?jkyGqywx)`EVdphb)c;5W*9CXb^|2K9_qPJkj1)i$5o36)x z{F-WFqeBY;7=TBio-Nto?-vf_%{Kd852Zlxbz_tIbUs6b--v@arbUG z1D{0gF;Z~d*QPWE{JZS8v-JEJNfm0^#PW9lEYZh+QF2#TX0}%aeEc*ArXfxPCD*&0 z50_ws?k0~Ls(k6u9?dj`yQX4dV}y`~X}J}Ha;a1`IPh<=P|OiZ1`7Gn3b+l&TV@=L zVH%c2>~=P(JW+rygmAi5oT6AMqc=g8;s&%tFv%RUHS!niblUZwQ#e+#R|BK~?Zm+Dn%w-8p_|4oG4*cpn3E`NIZY6YFa z;UG1sTllGSzctqJp!>V@Gi!l38A>7bP)rh@tw|<$6{VyOh@J)-;)FOKF-41qJ=0qo zj#fn@lZ@?2B1r^~yT^5M=z;DYoGh2Vd%Cf9-)~$>9cHoMZEIcndohMzX1PTOGtX6i zpPYfY->snu)VFSL5p_`(3!$OfXBo|COC!zSJ3^F3v=Xi&l+?{`&JpdPH{agKvKM0P zFeXG(sRviyvhlkF<%YdNzN{``KZ031I{b|7q4YP=kM(_Y<|!w-%o-~n6uD^K8z*!c z(g>X+>flezy^q<$b;&})EF*eqV2o z%e1^2{X;G0xf*$|y4&!(`Ayk9f2_ny53+WfZKh1c zbxHz$6SWTXX`1C307ioTJEoY83m^tS)`y$;FnJKHG?umZTB6(tlHJagqbEau}`OCOXbg1IYPI7<8-3`N?kRudLK_*KnD7PZ=w1zuC{vOSJtC-PvI z$qx{$&d0pHxpA~Nc%1LNDl>Y^jRt1T++I{mSO#3RvJL887OT<>xJZ%wAT_IVq&=^kkpB6#GujZtSzh2ZT zThuYBN#}U=tO;n|WT$G=#$l{7`o~T)ZA6~7n1D$Pcp%;L>512INU6No|HSH*H_0#y zQl%kCHt%{Hfa72yLEU}Fe)dj=H=TpJ{Y<$j+>%erXX9K*SWxVY1pdCpj?1>7VxbC= z-wYu;dO-XHF%e*CvY`-^G4Ql*N%myt)3k84-)`z)*+l8ZRA7-x83KjA!G}ASw~mK% z7eBfL4O+$5{I_5ruX;A=M5*N9MbR1FA@C3kj~0`SM&N{LJFP}(gUTU>g3}+!OrSk1 zU_eLP7Ym;Bqx8sKMlbrz9H+bA%Vysq1FP6QWy5#B_FdAwm|hLb&EB}gjbu~MvFacMiu`lCu*tA7Xc2E-en-`Zm zl1qO?%V(xc?Z$m2<4ZKT6YM=&IR9%IanbX-8tca*A5M@>P*;|-f1(nud-3=fPq|7u zf&6E>@2DjAEKH0F5WK1302uL+V)CAI&K0{Bx2 zZ!I6Hzf3OzWN3sT00*+2;rV6tPPjXr&W6JeJ67VM&*8r5*pcaKFQ`wBOUY)mGz!39`4T=y|q4r3HSi8;cruvhd za$v*SZCR6F>w3_Mdl|I|Z!$@<-{wG|g;lNRv-6TgXUc!CA*nI%;1ee3QVPfie`v%b zn2^t+22K^p?e~9CXJh3d%=M8*!ZB5lx4#EYb<5bC$wWu4A|($u^5G{BRJd1bjJfAl zlT7dti$2};>3LMx)Om;=l{nf{i|*UD(L_W<;5SLUCQCI0ZAj#W1iAc5Oueo7ck}l9 z)Q!OcL&VsZP|p$?B&-h%8wS?;&Uv2{uJi%!l@|CXh2>Hpl@#M)Bc9Rp&qaE&d3vg3$yfJ=0|y-HYQLR_soe zZslB-8OPnvYe(sozxCd*mh4vZHd49%b^YSP2G6eN7vjJ{o=OU=XIDE!%CCU8VnZLI zz(7S7lcfp?lBoX|p<$?-#eY3nM7+U9U1!AU-@d<>XN2zt$ns}P&wsDI`*tFY_l-cN z8ApKlNQAHw_hj$TeaE?)Cq<@8DM#{Uf8-*X+V>~Wy~X>p5&NDPIp^K`b*G{dYIGmY zDu`MVPF&xL3KUxP9CgxFo$Q(>^0+bH8N#BK?(inRnzI!N5?4ZYy>27O_E3loK#R`H zRbNSn3QX6!$JuwE2w29aMS>d4)ujEk(dkgY-ARo_sn1Pu_^GUr?sH_(mTk>WL-Mu% z^d5V!=tPTKMz_189q7mz3?I+@)-I}9E}%F_T<}IVm2&6l>@$6uwK3fWv$*hyw*^Tq z>+uk2a-qf0=;NP6h5UGasKgb|=P;pKk{5zC+})+Ct2}I|wW@5s$VXu;Gy?%lik+tysL=4Q{kG zv8R>BJ(h_Pv3)>03GZ(IrX`U|lyUkla`XM_!bW16T>bC4?zy`3_9#4{2ijgK(0p;LIe@I78BH-^)wg#V=k|}hQ4fzqGJE1_C|iN zNPgRTFE+cMk7)w&mJbF(IcQH%fhlEou^YQ=3DTuh2neXr^t?GD_cRmj=hy7khL^kY z`u1P*a~2XKN(-7b8+J@EP%@Zx)kTfq2P$uuSc}1ukeP^eiRB@-KVV-#1%De#h;y5L zr9w&`)3V(&QfY|%YbZ>JqYX@_s5zU{fE|(6s5D;dI5cU$>$>~VQzQn7=+#d*Ao$ty zNWywZcE z;p$y7CEtIfaI}7(D4pNHel>}ZwATjv?*hQV%R)S%hSn8{_Y3+w`yeu6G&uplyDAY@ zUr~~c|D|x5I^fsQJlDBq1EC1^&)Yg>FHm~r!;!1ZaHQ#Hn;9&U1wz01CfdZ!)k+@7?+H z;sJv947)oGSjv;Yw>pu42}W{_v7h%>LT~Z7kYU}JwNy|{y+t4i0DneNdgjvN#s6$& zm@@;>PC}lbfmNyfV>z8YU758V|IyO-!{~g4-0}JNmeo%pLoljGCRPLR6%TWGJ_1*8 zPWjnOxXkW+e2TvqxgIfi55#dbBdaY`L&CE{El7Y2=wx0D4ke5YU7%YoBg%%riGslDjztGh`c3M=19rDZ1cg$Y7K!8DSCHqAt| zglsDL?K#k)c&pOjh`81I7qffE@se1?>^mQ2{LcZ#u z+kEX*;zZGwj`emgb&3iad4P1uAACb$nB-*0q#=iNRRtNWzPCcjEpm3P8f?8`lm)>` zXoHm-ZID@PJ74w&==843S((LI!NBB=8lZHbEoykzGyM@;+Bcn&*N1^)o1XoQ`@4v#XLc#ht8kM*AUK^K$a8;WBot z8d$hF(%)~U$yMw#xO@^UvW_OK=hp+PMJv%R38o#M6%u;W94;#P90X_VRY1H0F5gBF zB8ZEsqq&%0A?~}Z7Y>AzFbzJL_j(nCH6V=T(sw@ZScI#-B~}YeD!q7GrlqdAjAuMy z9uyh021WLE`ikATx)_!qL*Il%8*QD4+y(xTe{p8UhC85-*n+e>o-)j_h}?RjQ5Xc@ z*k>>YViv)5zJ7dbhY~6|28OQV166Ja*FU~qH}RhxSR0ntI@DwBpAk^@us|ZjH&)2= z=_f%zD@6!*@w_*V=3;hL?z3uLm@O3`M4E&yYFvbH=jfdcOvMIvR+92=l`0tjq?>_WPzJ#kdd9Yc;%aGG( zBETgiD1y=y!kKYV*JB?A#J)_eXhoHF>bilP7IXOV#34XA;M#GtGEOyDJ#Ew!G}M)I zAgm;xDR=mCk9ZG#c7X8E!WrIV6+}Lv2Ur znBb6^=j?gt({L+B(43^^lz%^61o;9@^J_9oif>#c`@GeOC;;f@p4{LWI3EwZTkvtZSS8n{nz>yTC( zt@%GyXo5Q9YO5TY`g(#c7|9xB@*k6lAr8}@2#yq)abG^k_*ma-N<-XYrLB)&R=hC9 z$yK)h?RP3VGFCTI{+S@#JINc5&qp8d0Up^R8CWGVWE>ne57VIav(BuWIMi6N|J85i z>+f}r6;dTHztExryjE(jnD+yPOUF*v$xkzE8@fMXN)nG%b7J}EAYcB~c!25UT1~8R zwnUv};y5Y@uh>q^vgGI^ z100IRoz6mbcE3A*4WATvd=t6hJjD!aq!c7a0b3Z(|90YYin9;HgWlNk{{8hDwjRPK zl7rmY$NrQc8unS@^W$6J?MFp9P!L!m$WlULm#JJ7+S#HzvT=ufkpmi@kLyixmL_eq zS$-!yOh|YTUcH5ot7@~^pp(i|uq}0)v0<@(0>1urb@)sGC_VgJ`Cg+*9bq0wYh)fF z!-Svr7_rWISe=Ib>non-z=5#u~r1?sCxtNB_ciP9qyOp{tdGE~W?qCgZ>y7sA# z?U{6^hl>**z?_1*|IXQK-MrFAO)~GJG0OB=+)^~tg6K&@=(vbt6a)4Qp+YwExIDC& z>%r(SCp{_KRq~yNF4s^ z5>or>`;y_oMw#xgB&zgUi*QxOnqB~3uDz5qMt#)RWcZxDZ9ci4ehdU}_mte8ni@(( z1!dQL3^<$FMRnAF^3!G1cmt;L|I6#>K`w;N=T%RrHb$mn#X*SZAF%Wh91)D_FCt90 zD-xa`Z}234XIIHX+J{Flmuo?*zTS)!;F_Ek-je+Iz0Vk8HrMviSh9S&-NkZ*p~D+1 zbbLo~2sLg{zJ#%6Mg}Ub%V`8ciR_h~CJFI>XZ-3Q?n>fXGa4sR#{GTh9`;He=N>1+ zWJ7~kwFV2}3Kgyp#fSi~NWVz9_02!lpm z%SPRNjCF~=n&FA^(y#1_M9%x6j46drMBXY31>df_u%)HU2lp+@-iZEnw&cL2s z3d$%r>+{Pf;i(3o+eabD;>cfPIx!`JRzgXjb4?SKdDu`^@efPkjtiEeMm<3HSGpnu zH0EM-RwGlSFYf;rx!=<%J#WHi|f;B6vLQ7fmEe(5vcuL2LzCEV=*u?UMvft zB0MuRA^%)IFBu1|3$-Dk9&NXD`|$Knz&E8R>2v?N#Oj>m(Rb|B5n7bc>|ml~1xYML z5L?Oi9Bks`=mpogC_?DdU@{x^06AjC^_qbq%zCNU(+kk{fAVj?u3{j>Z_`ZKk5Lt| zL19G(_fwuIM+P^a5o(?QdHxuQo7fyKpRh9Oy%)fc8_L+~#5@9m^MSt#{U1$d;T7fA zf9-o<=#-X5knV1Vl5V8Ck?w|}L6MLS0cnu#hA*ko-62SKH}jk4UF-b|X02KGIiEOt zUz=8%rh9S3-@AUKv{1G6K;<1qUeIh-v#-}i?hs=I;-ndLBj~he9J`Pn z1uq>&u~AV{`YusUH#+f{RNze?HCPSWzJ;Z# z)UC#V(Rd)sPh~ex9Qagh_RAwHxKGb8&c_y;KZv0!Bu!FmV-IjC@#h?m?C^>%ki-39KzVo z!HM_%8K`0o=4+(R?2g~S$Po_z<)-gg$)qUO2YtwW`B1SUA2{TnKg|xE(kb5GOfeNZ z;ShGhBoyiXr2_S7!=K+gMLHB!8~qHq6Bt{A?gGlMq$T5TGUAs8p0 zJ7O+rEI9E-?15Iy#Ha3eYeoyi@oL@$D4!gkeXT&F9U*@j)5MD30wPOmVtXheKT4UM zby;ly&)@I#E*|5=f9|gFS5`(gn?DSPJdCAx+~%PZQ7;qeRiebqzkXQ(3Ju7x=nAa) z$#HH=C+x-559UN3Zym;+VJ0NibsRSBvlJ1(HZhz_Owmbfz1_2Kct|1qYk-n(FmpFL z>4bmdYEv)v_b}W|9W%_?-|5S+zhOkig5hJ4*h{ziARtTt+7(t!^m)iDKcRk1peV)| zd06T}UgpbnILwgfKArkdHEetoraGC$4ti>t!5Hje|IB6Ia2LJXNVG) z`8te7ERLXIk<$J}7_=)3B_mq*k!d$ql7J_6)K8(e)_|e%E4TplDqWF~K7dLCSC?aY zn@i;bsJ(F@_lzzpH)V{xHt&JzuP$lV$WXD-lo852O9ubOM0fI8-YXzq9~ODN)-MepseBMUum89--@fi#QY?aG@;RbbxAXSO z8|eKxa-!{mA~$>(vQzka3LFB8H-t zA(?FnxSm97hh*r*1R|b#frAjDm1+Jh`Acd4?{W$oY{_Ihl=%)PqmrF8b zzn`4t3#kMHk^5U{sF@PcJIJCH3&#l-C2Vl-=MzQYfzyc=72&9C&jgNa($&WbFs|75 zxWDhVB*da*WT8_7J)*#5UoR>o#&0R=-|7>6-YhoIE4WMvOyaZgKx-rftplakqOJAQ zWagk`J1NhtgKgOHGIqX4tuv7A9Ngjy!h_|j-YPfP zQJ<|r6o3Tbhe2i{_{mwQ!ZsBO2yt0~r(fJaeva*G+K!sHA=jQQ?Fh|vEV0=id8-SC znNxD!quI@89j@AC8UWX|jREwB>;-nLuZ9c`L5qF$8_P3+XXdfqqlzlG|i!)26IzIx^U>@}Kgs$U6d@Qyi| zB9eZ0=gmmBR;j`vURMDLIq}n4jSKo}uNsl=jbLbldS{xvD{dD3TZ1 zE49MfVg88)owA-NCHeI@p}B0R`&7{tr&K{dCJ2Dd$lUHoe{=;?BG8RUOtN}8feNnq z`sI@!K)uhWHr4TMzaxKER5qlmC~e-Sc?|I>;Be2g-hT4B@AWX~G-MEfMlA7O4v?L_ z^;%`S-z+2roRD&Ql4exMw8+HokLnyJY?jlQ@S+;0W=0hp?QB`hfJBg47FXr1N{W~{ zx|KZt*c2<^F{DR*=n=X<-U9QRFLGzz|4j_@Q0=V8nSLM#gCc{Ls<5Azf@VbgRAO)9F*YC z0RiA2J`;`V7Y0lkE$@1Nvu)^wZjGw;b#LnpR_SsP9<~q%gMWhd0y224Etq7IKEED{7g*Vbl0x`a=#yn-+lc__HODN zaWY(si|;KKTWnSbf$6QqQFOw9c<|o*RiMNgjscuFf4PK+yHi|Cpx$Z!!}>MBfbN&d zHEzFtThyBr9Vuc+zv_<~%H}^&_PTnU-#;&zA>;9Hc}cbpD+OrrFyb~G)levF91 zL~8fcsKyK=h{L-EP~T9V6k8lT#(WtzPpCFq8N7WPEcy0|ibrRM%IhJSWxL$O^=aD@ zO$5IlV15FCzApg6Gp{Ch8$2MBI^67Tu^||xfzV045R`X%KRImr2U`#wD7^N+kRu}m zeE>n5-*7a8;y(b}xs%KA!aNGBN*w%yYwQ#c!`y+*{(|sHYI<}V^hTh2Me2&G%XM_z zt0v6}|LgmJ#+>sxpFFiW%y1H}|Ft_v@OGz=6*4QAujitr>PQxNKd=+qPN+79+E?^~NeleTACK_d zeta1)G(u>-pVF=T?94{;yorF?j}Ib%&WY2DnOs1z7Dr}V(w!~>V?b}#x6Lo3gX6=) zE^A7Q&aP5&@5(mzke~w+%CNzcFh&crhRCn6*vNd-yx;OGRc0z|05g(Qi~E$L4JB`? z_-v9rIA;>3fdC*Tq5zA8uRXB)L9HX5QC6~)|5?h}m9($N7*7$POqz=r*gY`73m90a zh&w9QfJJj?^5o&{#R&U&b33^v(!nA*+5puz(C=ArvEI=~8gG>3^6Y`Vi@gUY=dp z)o4;?8ilnIA)JAwx|WY-x)y2)f2+lz05HScu&gK&K#-sK_f=*HmjJcRU~`=CL%N51 zo}V^iJ_!0+p{CWiOC{!|!I|H)KxHcgsIwvrG=(`xH+!Y~-mL#+fa4SD7i3j7m<&sdpH4?KNlED(9!DEB8cX@{^)8a?%1FFI zdqm#^ByhuYRP!W5#$(x+wKmgM#d1ZSh=fHdXn#r6%DhOB+x@k)J<0SvpzS&1xfER; zH9%DFe6+>tz2%#@Tj_e}r^TG%PW)YsXhctt@b1c%8YNS6?Fq*|HdGqMwyuAq)#uzc!a2Wh|CX`9!ts=8pV^5lm z9M`s0b=t4CDh?p?;N!kIE}466Zdlvc zh_AxKweK-?GCc8yoOly~LILjItUTuEbaXUUs?4d{npb3}uH!x@Pvbwe1ZtwdjV=N@ z#fNhNcWXWqOAcpUw+1PL4{txT(tvL7l%q`&!tC+__oMf6aPOKpzMcz-Z1(GxAZosY zN-+pdV80HjNwTPB;hzD-sTY{YENIpt*Y`haHhcX^x1rP^i+ZVDQ2`7mXlKH2;J|hY z+m$Q+GdckFZS-6dI||uoJU9r+E=eWz&MTu5C~f_>MdfniVF@b3t3m44r*0*Xl$Nmg zsDO$B!l7eNUe(;XL;gTi`ihNch-yy%Ctd#0ZG-koO%KKhW~|B?Q-cLuHK)G@Os-2T z;}08OUX5k8r)eU^m9@UpcLV?r0HHE=nGhN$;XjgO8~8RLUPZCN5TFGC{BQ)x!YTtY zZae`%LJ5UKO4vxu619QP-`k>H1W$9i$NysnFoE3i)dK#fjcSCVp1nJ0--eRUYyYYf z$E)XLbG2)y?{8U&K-cB1o?+BxW29Q8C;qpS;E-%^%uOo&Drvq`g2mHDh3$ovm|NVwOUoO!`+4?Bp^r%Jk_(qp;*J=`zrJ3j!3qTf|{ANIOzTyp23! znO=ou@aiwE8!~-E=AUNtTxg0mY^fG-V77{e0KY|{tmvPa1L42%oyct8T^}S~J1;xh`yzS?{*gx_rpE4tLi0<_4hbAoiHs@^ zA-{IR0KEUJ!%kuBr{T1q1Z*A)1?h;pg>U18(-AFR{rD*AMZxFJ`NlOyYK)-;>@udD zp*jhh1baiuM>(Bl56x~f8xwnyP@um~&6ujQ#55f_P+%U%f|?r1wx1+Ox$=$r zUqx_%?^dzqshT2e)HP!3ht|HY*wgfPsw@-s#)Z*Wt~-gRqL6hSr;Dc*uJ&&La0+WM zFegc+{ShWZMD`~^;ejeA18Qg?iliQQd85TYD*B*B!oVNOI`$wR-tCE$Pc*Zt9XtBi zR0+%HN)VyO=^urPhM7P=z7qR zhuZVuaSLIG4-PYAUNHD?ZgNfg-K%52Rpm~jS}#CL@6b0ygjf%PPJua%pp9}sO@~O$ zNT9|+ndy)}9RPGaC3g30`G@6>&`_O!nF_0}ht(nghmjgpV*hN5rC1NDeT-G^nXwHHar_|3LmvzkopP!yLJ<}Kwro=&O25*z3B{6>9+`!pK!xeG|^R7Oz&&Z zTtr_^!s|C5-8}Btgkd6T-*7=+@?0Ot$c&Q)L)0Iww#ewz!n+50#8?NV2)FZ%;@X}~ z*~|1~(D4EJV{$^KSaf#XWxQcXE-*=ihWiH3B7iU=qV6ODV_#7V>HKo+X-GxPEx>sD zy3B9)?as5EDl6u}#P#dR*NH^HuYo6wY2x{Gx}~YQr)pO$k|A&<09H$HC{dS^ILSQj zMHnpu4NVjRim7SBZlYTGNl@a#rAR(>Y3LotGa*}c0yn*EgCXnu+G*x?jr*Pp9eD+0cV zXGiCDv#fPm2|#Mry;!JwFM82_`RAJMp>u32q?wO%KM;^3uoZU%tg(&#?+>%5)wd*R z$@U&axg8fjNDi>zbk{>cFM>o)DdpmBj+*i~(7ky>fQAB{5>EzLxRZWe`w1f~g&>4! z+z!JAnO)~sUt;Z1yv1iY;jUEYWqYw*Xm6M^f1tvi0(rA zk`BI*ewgrkh$*HT8VxkaumRASGxyevFSu;P;evziEvpgLp1pYfQ;gYnOW z65^+;-SKREZ=ZsLjr^8um!00~leK2uS@$G(vM9Oezq}~atUmRmR|r-f5JJo66);{OKP78Z?AMdAOo8f4Y$P^ z!R{pZAkQa7;b^e2s96wQVd#BMoW`tt8jb{Vgv4<1#sX5~t1JD|hi9o&l-DK@&~yBK zL0x>>vn{1juo$27gHpwjPpVP@Suz#DSmaA3?lo8vIYa(O{`2_5^~4tEh=4#`9e(b}ck_jt#*Yc(5P zb`wWFrvI$vd|12pqXp2t`L6W)R9d?$o8e{B?6ZJ(z;PraVS|y;I}IbQzaYT(<)VhF z?rIKxul1y-2@yMGcuh-mp}$FMl?t>RlGt4z2{JF@gc+ft%|YGsK92+?O{+_>lrb_7 zlRtY2X%bj6s{2lA$jxGmAoBBn-Ho`}`gJRPeypwhpd58Xw+XK82Fb5F$M5EzFFlp8 z26GVgyv=N^Qad4niXoZJPM!0lDF^Ki5i+zm>+yks)+6g4XQ@~v0B(Z`@ z#&Nsq#TDSy2U8+pZr7rm;L^)lDC4d|8CmV<;+H>m>AQ@6DSdr8;lSrJ=h}8g7 z@GlF3+VN0gXm*v4n82Ar4|Xz$(i7x+88KGQZN$|ZSU`VJ{m>u1=h@Vi^~(asLwWHr7Mevo@Aj4dvZw{{zl!uT@G4%d0EmF1g6hP58w8|1tu=(Zu{Ka_4$1bYGX8 z5w+eZ-&#&lHLH0Vwe2jO@wo*39cHt^-N_&Mw>x{0{_M`e>e7a%fdq&a=)HN*ESF^g zbXlPTAECIA)=@wZ`_B)Z!LlC@`*Sn#ui02>ec!9pTo5d)=GC$=ENtDI3;-K+AfG7D z)*ro>9)T3s5n4AE`#YjI{+U)n__VWoToQmd|L=UPP&HK>R^6Gm0KRQ22?=5Bdv$ra z?*4b{O)BAQc-5x5;uoJqbiU@f5&d#Sh7`YVQrQ%E2@Z&ugo2;P!NGwE9z6f`EMvD` zIe1a2n;(=NKEx3K*JMK<`D~&(CdSTOOcm0T@@I~RF(kb(onrmv9z}g~h-QBnJx+CW z%aa7WezAGo?R=F3026XyP$rgVb^OED9L9e^$wUF+JR1y*P~*(QrjlSZB@nH~W1Bk4 z%5xZmCI&%QL+IP{(|BT;>qAo@?d1pmVLs1TqU+mmak^?z>MNUg_ix48gHXJJZ+imW zzU!rTtD2SwW>A#gdE(&K+SN6Fq^^(aaTF74kJA(5`>QX{3Vj!S+i9@l9<&0s+=<}o z+S~Y~K1meRsa&TmD+?sd1)e~hX$tQ5l<&gcQL!gXPi$QHeCb#*p~y#~E-Kv3d%2Mt zRuwG~t24(6OXOP)=dOPiJjUX!H^K!*#OA0`=J;!2=ESVMx$z@z`l-LL@GYsX2k;Th zl+CRPTzgT?3iQ|1?E2+U$qI{pY1|%`IA(fmNpx`?l=)aD@gz+wUyttEy13G>a7kEx zvDQNJg`b$xM)-*dsYUYHO7-bZsd8cBMoWZq#1`~EWFvlZwF?5%BgPf3Q-7FDP&99w zMaqR>HVp_KBS~_{_kFWDx-TorX(eyPN(!%kPBrQLU-obcqXU`(dgOM#JAez&QZpnIDkFnyucwfI37IsDyMeE%v2uLG zT)~~9VG@l@i^PDG_9zMz1t}ZtL3QtR?yCdU{qwOP`Rd#8?o$8+Z>Bg_vTRK!(Io9s zUXqysd>AzddYo6-W6tk!J$%yV#7^H)FJ%#V{rL~EB0_=f#?OcJ)5l+!z6%SFmBrap z4XTf&&9p=zwc+|^OmJ@*0#HUBni)K_oov&E*yRW& z?MJL_qoU{3k+rY9s+WXR=|KI;jL|sPY3^N5xFB%Sg-%A7IHv1(1iYB^ONie-OAXIw zRmTS-0F)J-twJ35=PF2M@^GE#+QXl(Y#f#T8!I2lF%L-=7dy=sm~_RSqm_di?2#5v zfPmwPGVti=mW+kv&Rx*Gduc8I0seUgu0<3wuX@PvBlhLQ=x6pSbgnH^6h zK2cjuYM1x3w84N>Og%w8&Xr~Ao4~&d0%EuEA*;crSU_)a$n(O|>*ZqC(V1RBQ<=0{ zY6J7ajY-I}A+hCDTi1 z!``{tFdXn$qNJ*!;n!>7=qO}!*XI*>#e`);^wb!gH2=G@16@&rBl_p2Bqy&=&SU@g z%H=6rqEC2+U!3bjwd2g51m<1NvxczA-^C_MhJ7t<6N9>7$W=1ng$@F}f!pYT8W)y|l=SH@3hx&b|s0wSHd0mDVf_ zU<3VP3FiUcLm0L(hQ~w*!%0wv6je)dtwSkV#;+zxH}gPXs~<{#MQUwqydd(33;-}! zIyM0}JybUdsFM6~92S>YaEU49c-gE*lQXF|Rg|y+(Kp6%f&ex~u8-AJOKl~I_?tFrnm(4#r3M)c7I~6>vJX%?_f*P|*>MIxkB-S5=;~CMO zF%c|3BBRi$(;U4bf_q;D2DIa*HTp43OgVI90JvWe{EM_c4IFK{y4jxGvJ|M*PjGp z9y7%Z$4kD$IY0hYlv2LcQG(tzzfMP7c4ch8Z*@nk~Ux5 zXFixn=CHdipX1subCSc+VA@zkQVL?5)MZ7Uh@W{1H_;zB)xr+(?C1aSH71rhrxy`e zzkBmWA(e{nBDd|Vb@#Wh&o?dXclrzJXT$*k4F+i*8jHrnH#c$EVTjxPn)c+16@3$} z-M@tXNj9A>_h6x)h$@MA|50$*g@YOPHaBem=sY&hOX3aP1I0bm$S<*i8zI9g22CIH zCCT{6`P0(%fB?}FhDQ66>#4n|ulwph{1vl6L_*$_R<7NlFahP;a3*!r{6cs8)f6og zJMs`K!@E%9dY`j~hw)~Mu!2sl;HGD_qq)(?rmv=aWOg$#=^mGib%Ty&*m@;9_)zpt$e6da%}zmHZXcy1D~KQeRY5>imIY*pojZDD&=d9`fI`Xc}HXaWA{Ek_8b zCpsX!SWQK&X28+kH^QL^mHuO^=@tvO$L%ORyk3k6VQw?3N5-zVHv#oG_|ncCobbSH zIZ^;pO|pr@94Q$SjBN-Bhr!tdlS7PAnu2Ru2|=*_%x7?lyUHe)BDDD(Mc9^lW&;-T zClEmUK0aX{3arBDGi%?6s?56}n$O^EH{quVyW_mr{T>_~cj99KOq%Ng|L(P$B{^Sx z9OaeH0^8}LPE$1q)?Sqll?MC0BAHK$F>1`-94cN-ye^uzRaTmEn9{) z$%HCzw(z~(3h174choy=y@X#I7JqKb@%KBFBt$PEflqwbP2rt(V9Az}iGfrD2kAFR z@$|UMx;HXKpjr{jDur&6QvZR7fmG4ZfV<&MSn0|{tF&f+Z4K-m#;sZP-G4fz1dP%|8^ z(+e62P-XUXBI|v0vNLIXD)V@~VUm0oA zxqEL-&&qx}Af^hpOy#D#kOk#?oh-udP+bsI<&C=sfl%>leaXR@F8e=dex&k5>N~@Q z>whBR?q^3b4Onh?WaQlf)@ma6D_Q_DIO7^_$UbG^lZIJIa9G`1F%<{m5xIBmKjb z^q>bEs%+iUwHb*|e4`x%({o?PFgg;1j~>UIy_J9AgYYs4PXLbw?QZTjP^W@Acpy05 zUEtr|-PNq8*Sk?oH3ys8`Teq8*}?Z`&%fC@1kw~d@Abw|c0erZ62QcvUW+PcMijpfm-TqOb-ADXivWPl zY4(TDI+s83;9QjST5E;9@?lL*ks(P3)FMLqH9S2WSejndtX_6I)nAB}f6<1;_W9D- zb!c8cbyYPUad=v6m4p;JmW0O>Vq0%161k|xG+}SpQnC&i;s_ z{JJd#~ z)6(XC=m1!_VX4lrKo)^Fn<6-BVgvl-*)y|#y;>T46Yta5bulby2qf=TEplBI!5T8X z05jzN%O1ynLmP{_(&DxDQE!1?hWsl z=oy1cz@5q{mmdqZU=EVxUdKaQ1S5v5qWt%{4CHH+Av0|dH5l0ZtO#|ziYIuB@@cvZ zp%#xi0W9V6V?B~25k<-@5+i>tZVwTBJ^;n({*01LFOM!Ai$_~o%ZB~sdnWPO^RG_L zGx-mQPc;Y?poVzZKpMOfoOyEJ)S2O`CnZ;RN(N_RdTUI%PRe{+3oxxRh5h22Q4;Gw zMxqFI_Vj%2a9+-(;z?FvW(A<=kW}!mHGo75f+F=_yI@=|Y!e--O7{avHVA*$^rCFf z`sBv!4(4>J&n5E$?`%q3uHUJ41cvx4&F?@&G`Du5z0r@0SEp#)7G8Y zyO)c3x?ZnF+kTsLw5S?NJrPX(xa%w zRG?P6(C%sX^Rrz=751+=;6I~AhE8vP$0gIY1(&>SmArzS1$jAi$#hrhwig!9tjX)@ z&-tpRmHP@OGgoJiTZXnaP2eie_+ z*G5N&1&~>ZEa9W6UCU(}d!*?s%mYs=zn)JZmGiv=#IElCGLEaZnDE87y;_ti*vAo*Cde|MT zsy>?kw$V7(5;v*h)gQ3=0l8MUzp zlXx9aR$bHrqQG`vUKWehw3vF&-inI8Ht>wQY~1eW1NlGfgZH?IgJ7~CRbl*IYON7^ z$eX}TmRGp#m6Jka=vm_E-L>o{f($N77{63`**oR|VN_ltT#Z+hjnD$95km;9euBd6 z8?!RbG+FrkvQfdCB$u>Brh?k=dhhHhJOH{?&=j7lE36$YF%qBZmX;IHg){2b4B_sW-;Sw9VP$kJ-S;z@ zPBj~1w5)e`8xgLv5wsizBGywIPOcOZz2y8)^+%kax2TECh2AY3eagMPl5t}VcyTmdSw%`e z$qf3>=fcRQUrGKe$_j(7{!8lU#`>n?WwP=6O_Kxo_TNo*_|z5$Pm(*YZhN-?zozwu zYnodp5n)IMY?ZY1lk)g%9knWnF^mf@CS)?4;{)@d`8zXh_JKO)p>}N>05GRZez|gx z0im(onmi9q*F+ud6{Bh)3Iey|=f7yF&L4GZvZ}O=I4n=>Ka**bPtZ(b=0Eh>nQi^- zB__ZQudLsHkjh`hQ3=vxZxF&&LJ;}&{Ci9q6_pUwjGAWD7A620@>(;p_%N7SsYnKm ztXPauQ~dk8`-SY%Mf53erhVC@f{CAJ7JJYCq0D*pc>S^N%Kw9!aCN}!z+hK=x=NAY zmfq>c#X#9SmJh$riJy7O=kRdkcb~*svda^OsoZoX;_$`0B?JypTgBaP6YLRf$Sy-5 z{Xe9TAofJiI5V`dZd}Z7Bj)|BOGk1lqM&zb_7|i9&lBUKDnL`Q{fvIo_lE`Ma(Lf* zzz;2te_QL&(leb33U;jXQCp*x5Pa;~>Fbu1$fk{d*~Cy{f8`)NRrg z+E8!4sELR8n#cX$9VnsDBt(F<;Hy)|e$?NJO+G$gaXRevC%IMv!vSh>nVRqHqlJ72 zwpZU~l?>X?ZdI&y8C$!8?FiMFGsQ{ikJ>GV2Etbp%n2;V#F0P(Zev~1e)C98kXC&Z zuCiV}*e%ws2tRmCr8 z5TVqE<_F1O&5&xVj~)&oVQdw~wfFu(FzER}&g zgiYi`Q?ugbmm@4%4tnp5K&`c~I30#Lyq$iAY(B{aQDZ-1&%;5^zLr-7#E3PBe_RIO~`mb{N1tKH> zCv7M{i4r2fgVnq6G+tw)^J)6V1s%Xe(ww=A@<=uI!ZQ9*-jnJmzL2kM+V$+vi1YCb z_B-EYd~ZILcOlhNp|ZT~P@lRC9%h+0_jPyNp^Rzz+AnuljUube(C*R6kflqUoSD?| zKiJ=&o-#rO`q790NmVbu(X@WifxOmhO{We`{K1{3`i2=T90$gzl3ZK_Dq4R-#zpK zKh`1Hh-S+`)I*LlDB~-~UvR`uyD^#0_gx#gNVbNFwOW^v!ZEei%bWxdIhGeCPdsc< ziOqw3QP!=fVBmpc={{VuQv1!fUtEtcjdC?vQLIT6zkh=9lE^YkJ^3k7>dFvr7}Ziw zCKR>c(m35%`Y5`CGWzoA3hR2^hAGMs8PHA}wn`9~eqFz+_(X_!bR63$T z#+PC0@S!^P=;U3a=ORy!gUp-%m@QD1y^(qYUBa!htprGb%~m@Q&_M`Sj$~}Q_;Su| z;&67p4Camc|BVmvolsvGuW>jOf1<5<<=5Ik0Gw=}4-TS&>uoM0ya^|u2!T5%Egdg& zj}kBc8hg-2zVlVZoOpb)6TWOJPJh|eEi@oHWBBIH(u@6EqG(o;T=JafjOc28Iex^G zw_uPEkPHA8b2!~c1_+P}KeMh4KZ+o2CQ`sVU!uX{eUN`E^XA{xh3HFx82h`B@XKNo z;cW2tOr3VZu-g>EAcx*4eWkfyos7!}@zQE(bYgYV^vw{GxSvI=AII zDx(R_mJE+QHv!apx}A_geU3jl8iLmUZHTAY+j0F`N!#N+UIqQjQncFUZCu$MwLf@&1>2+p(U-a#09)WDIJ^P&6dA|IIt_ z0REWCGkqbtivU4^`0C3eHmE^egVNDLD}k6-iDi(!GH$D8n0$u$4LzEn2^wy1LsViB zz-eY5r#W#t8qe30yV$h1GbQODJoe_hsSjQd9CQ_g*KW7O``mnVfTf{Z;Akk!v(S;Yt_NjBC#b2{FK==jYDgM=B!|%3X3-_e>+LBY2P7WBDg+ z#Dq-D+Fm5dQkTx*BLLsjUcqx;0u>#^4#p6GALTzqKX-dSz{=Tn5s`yFOfxi>gKKwxaPQG%*kf4tDf|X$MsC)W(~)e6yWH|$|aHZb%FeUEdT)M1f`Ld#fum6 zVJ(YjhIuPVsx_Y!mEzQqQait(f0y~}9*qT%!+l`iZ4iOZw-htXDvh>qht6dl?scv~ zi9{0sk&5}3E0RFZc~RX5!ku<_Pa*Nf9#lH=$fzCGL_{`!OgNYpDp z?b!h7K<P(@EO?d}>0CZ0A35d$7KQ-gWF>A&OPa2pZch<>=T4!U zddJ$673{^Bw=GZkbgua46r=3F3#R0oUue8-!tdmm|0M3k6UB?j+3`vK_!z+iVBN-W zELo65K(s-Dru9O&fe1z$7puZ3&T&#UM!Sf<`pQ*w!GQC+!UqJgbTgjOJGa3CV*mJQ zLK3YVnpCU6yx##70l6;w&OzmMmUo9-k>g`n(KDo*4hPoTQEu=iT}5wIYlF8ZgNlz0 zRSBiDE1QaZrhDf{oq74pI5BctMA+fbIJ2^W>r(gcE8RwxuYW6pfnM2q#xP6sB88M; z6`==Nft8r!4V&y05W`q37ii}7lj4E5%Nj1|gsa0~&oS)K?5ICCt^Co9eDOiqV|*- zA22BhnD~43ymY>7K6Oia6~7Bo{29LLw4vvQ732dKxpQ1(Wa~_Wb*Js6rtswP76P#( z14Iadju00#5AweqoGeTS$a|EC?*E8YG?=8{C^ck%MDU8c{tEGcT4edQ0ucEu$*gg; zkAS?~HHm_O00B_uijua}{B>^ADglJu`tD`G8^xb43cP>6Qh$?7Ic9UkjaQxg``>#2 zdR=Q@V4LMpj8oc#sS7fzM8JlADA_UNopdV{{B`PkkY4K9EZ$>Pv@j8zll^v0#P9Vp zUtwwPYS!3S4v4%8zV;&?3O~PjY|@U|EmcG*UdGwtaTt6gx|d#hbhA%qhwBJfhaDY} zQ8x)Hc3xXhf!Qpuyc*bbLt@{F%*$*K|H>rbn&s?p{cbr)7(2=;I^kct&7r}qs>ChT z=}f#9fd(2Wp!_)V>oL49ufw8Pko5)vVVc({>nqDwe%L?;=*7Z5=hW=`5Wf;GbqjQ5 z=ZrG(WXVjN5`Ol?S3{CdH_`?{wtP5MwnmE36GP+q!htd{J$qeZE+?x6) zx7~(6{L0L6+5YZNi{&myfB03g8XnNzj8l;y29huud!HGmuXOLGv!Qs43S~9TMhO}9 zh?DZ{6piaM1bvdDm#B_&mmnkjfsTuaD^q7G;5@M(JKSx;B)hV+<5|8$Kd`*9veZz8 zVOFn|{80LIgknCcC<2hhkD+mH*YC0@+4{8f@IM}yay;p^xtt9MGS7!ni>}_3#flc; zi#T_4+W)tML)r1npr&0B+*Cp6eYRl*^Crwkz$7^FKWRpTYyZl>D6NTL*E805VQUIo z|Gi%vk(ws>ev|Zn0N6k$zgOR1H+Dvk)vB~7lfrcmUp;p3#(U-iuLVJYR9sSFVc*%L zH)OKopYd}Ij&fXS006l;*Y~rM1Ok8Fbuw8;ljmZ@%JXtkLl}tVRWlf^0-?%n zd;PBYdpF&EY8;ibLoMElE|K=U`eMtR3tpYL=*o>!I9e#!tVa-9=j0z`C$_tX;EfI{ z!9R#Y9V#7_A`qV@9l7H1QIn24V4-VM{xh2$R*wnH9VGyROUQo;P797W}xWK6Ks6GZ?|aUlxBqEZzAP!0h}n)Pu+ZZw&RVvR)leU1ZzsLfrTqQ z&ljP@K&lVkKmr0>UwU3XQ3>?x5+J~3|727UfY!-mC8}0j0q{JR|5j!k&1Sva5im3R zAO->xu&ZxnT7?`G2P#KcF38^f>*{;=t*Z1IZnSEoYoY>LW zJimbFO0)o=b&Yn13t1p`3}SI0{_IF@U-QfH+n)dNBo&uOG%1j6m{dIKtm`(`jh)lW zn#5QW=n6Yg{)65iFDCr%TN?C&oO+4(_IRZobwUsWZR;S7orZV`b7@DH{p| zcwwPE|Mc%Jy{xa}joHu^iQ^!vRS7Ma0hL8u$n;Vh_QU_O$6$KbomV$bFzhPmJjuBAAXqJ&PV7{De2^4?P zK{*H|;0bR33VmcSyWWE?BB}wJ{^(}u`QfSozxW2#)%VefhYJAE1C^TIUjqQNYoc2Q z8v%?pWrU_HDi)0c-a<+RFd4L~9?8C*6gQK59AkjO$*sxcnqJCevLXg^8U!n-{9%UL z^=0C(o^wcp0En?GluvW6b{*G6$ram}%(#&LXEt?VfBpXLkIn4a``Qs<*psI?b~VK) zuWBLP*zxk^+^DGsMo&DpbTe+0ACNvrC&ctND=1|CIo2FMfL>z_b8NzcWn;%x-<* zCr1@JHZPPAx0fDdYcXQ!I*#Ww%{X&y-I&?nGnl`xeq@!8(ayL)*N^sWyn9Yx=eF@$ zgY_RUFoHyK9G9T<7il*7>5DaM|Cdz+0${lqD;dN=5U?Af0RTEuLPps0lY>o?1fiyU z*Jald#>xI_hXGlS{A@`>p=0|=6o(5`yl*&Pflff7k|la0&FK zv&aB+kl0HMbKzbYtILbIC1dthCKVI4N8K)#-AzWhm}D$EKT zl|3?YacZbCeAMuT6M!eLga??})cI3`if3vjIv!^)<`x-QW zN~KyMgp7sb7NnEu@v@_Kjc!@;#Qbx={y<~XeAwyQs)2@#$)8jEjwhT~|M1DvbySo= z7$g87*nhl=;`t*10A^uU4XHGRmC3ha1q_s3P2ahw#yY<1I+`EF^pW)99;$8dR&NB{ z>vw6E6Vb(5&NWVNP^gJnJd7q?wU zC%KApX$^ppkN~mdiRc3dotLIqYx-{oV{9o6fXet_lO|eT9f7dk(MSP6vN<_Cb1mHL zvuv!;d}n$WNC#O=e^F{LS~c1cyxiGnYD50kAU$dvh~jz-(@Q z=g!qlJ6`?8+0x161x6|1f#-8?nw=FJTb67cJMCo1wc35t^nGnJo8#6^f0$8d-#D2K zf%v+V;us(xC@9u~k01b4Qc7X`52Js{{68B21#kikK(F8mKrH}JK_GiG8M<%TzhE%( zuX9v3R1SihHhs_Ce&4r_Dipd-qgalHI1nZRq~i%kW~JkL00OKD0M|g){C9G!7O14> z`hFfGgAf2hMF7Bn@6qJG^&t6xNr8k1K;Q%-wmBOnP1sv9$_yJhxy zyC*KVbjz5DCv0#t^~nBh&I^LH0mkW!Ki%`^0nkd&w9Ef?AWd@uY+gXE8>E&tfLSZH zTA*nOq}P!RBGT)j*16b~zH|#?z^7GJV^!Mjc_w{x%uY)+nj&TTlGz`~}@@uTK*Wdj5eD z!GUAKC_3hF06_m<#V{!%Nr4u0uPV`fzE52jU&Dkz21Bb>ax40Rg8+a-KfLtI6~nr} z;IhAIC5_DxovJ0BV6<_DeK}3Vf}n4{_Zot^6(2PLz{4xa?I!w&7Br}^O8Uhr&PJUS z)1NN+3c+f!CgI|iFVP&|rKv-S0NFvjTGp>9%Lz#rX-Y9KlhE`#2|wi;8UR}I_~F^Z z_Wx5?#1H|^MPgqPBr{Ik6Mm*?i|=|c_Y0e4eW0D>6gz&I+!bKmyGd+VC#f(Kyt)$G#$pxHlbNK{RoV%G#ioG_^RvK zQeI;))4P9DzI)G$<9j>aXo-SeNl=6dOR(yURXy5wSh)AKXUl%rvU$Fm(V?VU6W$v=|x%x>E#!B;E?0=g; zZ|h=I8R(V!%nqJ*=AW(v*cG)}?Esr>X9rmXd;@mVK*0RGRz_~$N;UvUa~IOpiu68S zt2$wG0n(&E`*rPcL%3<;=7=1}LkrT*?oHNj0Duhy?ENZQd*2tv>{xg6Qc|qOt#oi; zejG)|zgYlKJ!wsQwdB}Riel=@W@*QTpQp|{uAvWWK?m87dz!xXm*)T6{uNq8ip~>6 z6Lr6=&hT4BB6IxT_5%kc3ana5OSPb@hJV(9k3fzp6m87a)6dWQ3?aY_IKWcO3R*Cn z3ZVHT+{s49w-N-8`?GcWiRtH+g6^f5w$>B@5_Ad?Ev)rkYWV;Rd|V<<${Se%0JQSz zAMw3$yKDg9NQXQ(>$*H- z$;4~H5eP`ISQuTNbkr3uc-aQSR5s6PK1Rd5HXE?nK*H|!wfSAI+<1H(_Bm0xpm2>8 z2g%E%Kt1{Cj%vee(8T30Kmsl!8C%XyPTn$F8@61fd9ph zirlcdWqGrH`e#cf?Qh%hULnBZbA@uV<1W4NHrLM?K8zjs&AnqP0d_DqW&bo_HkC7*`Cp3=I1~`DTV>|H zHeetP0t|?@18~hue2{U)^!qjE${%AYSv2Rxwv84aApL#1C6gvX+O3rV<^7ZrW15Ir z{ddo-AEoJYXI{(ds&DxLDc`0EbdlrGX||H>NM9(@^wZ0(CF94!e>NxpKoy`<(r1KD z)cX$k5VYHobnEUNwACILy!9Gtb{$%XI<$Gt!OH*meHs90K@)_aOKY6ZGg8ruH7fvu z-UShrTJPbI0D$ALOtQ?>-|skedq`*8OukN_pGtlX;wp|Sc>`q;7V>hwgz$<3<~0me zd^T;x28-Ei?x$j8o3npUYN4U70+hgQRJ7?(w%XfX~>?kNq=Dt6KYH%TWTn%cAh-bc-eB>q1<;TuO3D<0X_PuRy zI%Wem8&A;Fwl25hm0vC?7xp!vf3M?0tio~>>p-yxkPfvjBdagPLAgW#QPuuGv?+!G z0Q~+H?e~f9eU@nNUxOH!0s$NZ9{B#;S*7ldi(Dz|>c>ud3b66s|*6XtaP1>Bp37lJU!q*0vPu?xBwDHmq_g;+6pNBBe;XO2LQmzgir`b z%7ChZWUHQ5{VNejl85uy-;!-Gxatq!zyO$Izso=Xx(6^Mf^9JO0TQX~1S}+8SxLnK zyLF+%-M;4MllE`>)A*pcKQodEgiNlfciOQZcyP+XzkPjF^THmIGQB43)|g%LPiOao zfdac#V6yP!4(TTa)~cM^KmhL%>%`parXpa1uU!dCSHsL}*{^8>7n`_f-jjK(9n90^ ze)~1k-`m@+S&R5;^Cy6!@!B>gsS4CnZj9#V=3JwPe}3BR(*Dh}`GumcDN#^9>#YI+ zypbsSgK%i4VfqN7ywvo!;0wUuM<){nF*N@#xthLu$gy&mKR_(*$vrt z(C$%+zIEoceBGMW(!bCIbtyql{5AT6e2WZJUgQn?!SBpErda4Y zFPqJE=ElrkJ?WUsT6etg>rGbZII9Rgi8G0nNHKIt2{K zTA#ncd*M&loi3H~r0O1DDi$wD4_O>;1)y?=J|l=;ssezRCK*LpI8I4H1*HfH$o-dG zOE--$JdWsL(B{!OI*|mO0Yk+R{ZZ;cLQoh>`f07bXGj15^*&G1r-ZJZJ&)vMAdM(B zz3%1du4SL2owr;^a~w6Whkqyl09k+(bfp#p#fqe$9YXiJ0#*YL%!G8!ih;Q!tJfe! zSxSCi0|5Bh`rj*2S0Dv)pC>R45V@{HPR_}>8L43mH_wdHH*dYQ4^M;!a%)qZ|7HiJU}0Ch>VgHk(bSxsx?0>8O&qygM$EN&0@clEK>+>|d zT+p=o@@x6E|6)g~3c%O7_4ymzbx(i$m~!v_vt8ef$gk@X5HgW&7D3j{WQCMTuiwFp zKfbyk|9OI3-<5(vLZSu;WnfkXbea7x00aO4aN`>C9?JPb0<}s^2O_tx@b);sF-Z{X z3nhH~3a*#P-k)H2^gDmx7lF&^TTV|6n3v(l%q&@M_~O8Aa=EeYs)x z`dg=TwXGQuKfv*F#a!c*)|Of4y*%rb&#cKePQwOYi#%rs@pM(d{5zfT+5o_QPCG+3 z-*XJA+$g4ECgO6zD|T*aEJsCOs1Rghh(3}h>tm8xE&Z%=ysU~t%auomp-{aY7344Z#4k0GX%o{z(!)e=ZS!|4}5WcZ~Ln! zfP@BBMN&Rw>Uk^;AYkIG70))!Is;q=dlO3E*R@DbW`n6_6>XdDso(PKf1DFV1s4DS zra=_OI-(MYf7S6n?M6IEb*KP<(Rgxl z-uWfkI1+7*q1I(B&;=LA^{YPc_PEr0a$*?dNf(Aea1C@F;W;^}K)u6c0Dx8n5C|_L zUFiw-1AvwVs44_~09ObC`1LBKG6Zlo3j)Q3>7tbzr&2;jp}-`x_)QY2nf8+S848}X zVd6h?1^@=o6(FtIju6ias!T$WO~wUTg-D@kfP5?|ByfwsTpx})aY^jk@>tXMm;ZZi zSn3+Vv;eXVCvyD8?uqj+eSE>0*FTeOfQ4~2lQqG=7BHyQ7O<;rcAG6-NichuU3sIZ z+=U<@cE0+%d8MA#iTIc_N+JY7$?WamZ`}~^#0D@?jBj|2eOyYT6qEob{s+SALH{6Aqei19$Huel!bLN=? zOYMgeKUvi0I%fA@B8alX&h`)UJvOkyke|odh3-C#doxu%o@N0(b;N?;NUsi3bqN|HcY^ zY=PiUk&erKiX5-!m`m@xr@p@4&RA*%f3pGb%O8sJU(L^dU|HIHymlMF1aZ^jbi4NM z$gTg=XU?XmG$F}OkyXOk&U4({=-#8w`Q{^5@HeH&!2p0=iZvxh)0gE^d-uaYs&uv$nL*>$9>9}qzLEQrgK=Pl#{U?~O!q*#;zrNrx zL67NDMB7xjj;Iub_LF?W!^fhzpI{!HJxK$mvrWD zlM`*BGMk?fKY8ng&E*|WFO3yBeLWq2m$Z}m4}p58`KQ7!}Z2is+QXA^O#Li=7>s zz6ROfT5o^Y3IP7-ww3e_B3d?-yx<{hP>m$0hZL=eB<;ZL{zxLc?uvF?)>+bv5(VcDUkJ4dL#5&SC4p8pbApen2I(8zR9{@zHjZ#{)-QM?rkb8E*4TW2nWF% z?e$DDf8u2jxP^vNpyOeH09m~tnL#Uyp)kJ2@CRV>pU<^<>7vjNF9Hx|!0Y3geqi3J z@DHf2NmP*V#zN|p@BsMdmFa$fVO-2gf1h8QgL+~{m~aH~0*Oi>+7K)qP^ls$>_JY9 zc}$Qa7p{9H3gBMs+rP1H@0LGK>}q>ue9+fcKN6xKuXi_FtQ#|H^XQhNUmrE$xLr-t zPv6rxadD@Vo_(Ly`rZZ$>FR-byy|FsA-8+&%|~?Xd~QZ>`)enZd)t<39cR7VnC(** zUio|J<*Fs-#FPowIBBT>WU*s&`hfBeYltMF&CQS9*E0Kpb&ccach{%_*!zLqim-#Z zS+6!9pxUCa#&XjDzn_QErH)6 z06?00S!hmDIZRBq-z7ASsm2+`m9&>6-7X->(mzWYc`oh9W@%@wi8%ZGR{w~+oozHv z#dNL|bi^UV(?K7Kgj>dR%kt|8(#|!H5di=&_Z^~tJ``b~L0?c%ohBMfLK}&j3 zMN}Hj32?ykIW(O#ElaOzEi3?#%o^f{ic9}k zQ=myFI~US@&Y(~SK*otiKQdLc17eH)uA>3J>HzDA~DEW*esM zT6FHWo=uG**#M&&gDsI3{LIcC%qCMUFBT7MlB@6h(23=~U31v_S4S!;2R!@F;y)?& zKZCByc;;aJ|8(|mPVAsD*W@Y$o<~0)PFZs#n}jV6WIdj7M{Da{?yEO_>>P^1<9M#q zafO6N0IFTc`dzfIJfXq-M;YFQ;7>MD{u8bQ&?RVLC`UkKh<&aQW*HJxzUNv2BLOb< zqi0`TpUJdK!si1?AYt-ziJyl8@V$!`1O5ie*(mp;faZu82mru@fd&8uM7khKgg>iz z2UKbRm1;nOFL-bU*SK=4#esl|U}x*|;|}b6dUB~}PvamGCI??`A(WSC?C^7A_d`;; zal+9M71}v|*14^@#wieuvDa3*+-_F};sbl0&F@@uT_Y?-}mM}G7X*dqo50C?7P=|2q$>~?`2YfLg;3j__d zHq9Ef350x&AN$Fo>0$5gqvANGVxjjuB9*vBnFP4-@pSW=8_X# zMVeccm21rd*>Au?*sEM=vv~rmIu3O>lC}&c3U=o;l#d0SM?}YsSkz|(i(d#jP%hBF zU;g#MN03JZ0JtY{JzY-G&?Z46I467%SuGL=rNpI)4k%3zN!_nbRLcsu`rJSYirJ6{ zX%t9B?Ml+`tGm9UoDkecsp(C9SO7pcFA2wcp&^%t_MSi+fLDT>aR2}mW|J}7FHtP5 zfB?t?OJ8cV132hs(5iFreWIJ@3j{RQ0Ki6xiXLx^m9QbW)6ZQq?mhD`V#5D}$yKb& zDEyn?uXPku`~M0iSjb{!X8+t{-uFz)(JQ)%8qC5o3##&QR11XzdXI0m^q;;j2Jr>3 zN1bdS;BJ2E>&?5?-*W-e#Zda?>+9($3$J{9%EBw4v}cbV)kuG;o0tJOwKikZ65!3H zecPYh7w-D#+eO$l4fVV*3OV~%9@;De$Nw-sSPkeSEdM8QJ~`~{UlO&)4!!nrOwYVk zBZEVMfP23={kS;nIUnE?<$hJ+1SB@UF8-fT6+lo;Dgg-m4iqq1|6jTQ4S1}_qCMc_ zK^QQ}%(-I5p9e-;p?AeQG56`YxsN`7rP7t`rAY-K$?}u6kOY4W5}+c0vcFak(E{n; z!wtdge>NWA3I_9Nzy-h)336aqgjaztOrkQFXb6~>O%$z^jzn1O_PTaIGp=>xowG~5 zZNvK654f*|P*S>~5KctG4KsD)_GIds_W~Gr`SBfIeq5jDWQ)?vl!IbNrd&LbDR=D} zTk752QtsU|JqmhTl!|<<;|zknd2ZKlXd6BG#E0s}%-k&5`GqF9nGf)8$4r}$ z^aLqlFYe(0fQ}f7xq3 zBht!qa@icA3V^H$8M(Z-KzJVQYg32b|FFQqY98IFFf;W_tmv5!h14V zzqx4U-}q{RbGk2UZ#;HOpxP5{Tk}i*l}A^e9~Fx&Q5*{81TmZ41(E1i|BH1D<^Rf& z9{)20o>~=vS^z-1bmt{sqV;c<09fn#*CGYp_3f#Pso1-WnI|4f`$PZ%xN{|zDx3r% z?*ofr*8Au2O9W&g-3)8?^8gD6e{K^nrsc*wf;kd+zKK{Dpt2c4z&eRm$W*0Q>HQ;f z2e@J_tR!rs0#Kb6kZ7%e<&SYhk79+nM3)Hd3Fhb|egupx&=zo99ve(V1DRIBV}iWC z_?F?vCZ8SFHd1KTAW))x>%-0MTOOKL?Ah56M`d5DXxI_LH@hyXe=lV0IDTK<*qJYm znR?3eLS`cA#FgSQrW#_rfdK#j_$H|g3^cvrNGZUNOs0o$IG7HCi#k^f!Qep4P~bi$ za!_DoreNuWci#q6n_7vpxt;Cuzr6<2ZGrxflzeB--2`$|4YAjx;V0Q(-R3NrJtu5par$N zie9VN6!gV3CwA$*dXNP5P2NvEK^I+r`L|iVc+g|S007T$`%1cu1fBM#PApNhpIn1a zfDeC@Bzifbq#96bg9HVW_5Br{t!2NSK($9sbeljwCOJlnWCXD02*u$50O4eA(L!|N z+%lOQU%!ZaW=;bDxSl6`&$mE;3(Y!|NVy&0yBVQCR@RP$HV|3?oZWE3!keT(Mu>i9 z|8?esK3Oza#5!UsAZ!4@1Hk-A(guhz0+@^mh5<;?-SuNIYAeAzy`k8>dU z{FaK<{}SS!3PQToIZ#PeAx|JF&LgBu{+ocovGN^LU*v(|_${IVke2+h$&TK60R;DY zSpiHXWZfVV2%Q&90EY8Oke(pd6oP?-&4eUKuLF|;6FFk?3Mf-d1Midx9iM>PVMj>h z2Z;uO_|oMSiEkj;Sv#v|F|_SrQKmg%s`R(ssujJuEua)Y_T z>Z{LwZyXKH<6JBji$pr}jVYc!o&Z28++_@&R~i@j@qgFX zvhlnU7R;)GHjsXle`mAOSboWZslr{>;sfImR?iMY7xcg_OM7rzqaoT709etDeYM8t zcP1^t>FZ-oU3Z7YCadv8OznWwY2~X1(i!Q7)IrwbBk2RCBP%kvTWj$o@a!3IA%H5; zp!A$p0e~X($hZ9`Lz!;*2oy5_ctk;7+nDY)#{6?CpKnuiR4^1ktpLgdNh~zXYik(_ zpz(KZOH1!6cU-iyzl{c5vL5;FL4M@th51b4D%bu?5B|%HHBbKN zRI4y~#@-+L)q)T9yv`KNOls0-03h9Y)FW$Uy#l;;{MfC(-?jebpYI!O-*#kNDo#mv z|MKN{#{X%fT(&^bYOL0I+_&U^xkY8Xj;t5pmcN;LR20SMCd(CF=x!WZQRO3#MXX{d zo?Q4t$T9cf!-JP9p1iakDUbrO6e$UoBCRzbM~gT z$#d7WPulyfLi>y@H25OkNzwx0eu?0oz6<&}V^9Y1f8{X3nLDOm7B z0P+YP*T6UOKH<;bxRmGbufG4GIfGlDc`vLDhldA~{;-o^hA&L`j`A*dCIleoYupco z=d8h{HEPQA#|l>_xfoRdKsv(*0Ri$V!Urv|AmPDn69tTMJdDC%TMmEMOd+zC0D$d= zz5!B>_q}6nuM^h69#&OI6xnOBMzap^AS`~9-66#Z03Zr8z{M$$NCAMgc)}{&pImb$ zEH0=7)2r{)G5}C|K;;V8_@0Tx08xru#fI#3BJ8$+?asGR?pG?NS;IVP*&79jK@C9e zxENE_EQclg6?z67DJ=O%(p={5rt!P7qJ?+>BG&PQq^mI=Kx3p;v2DtM&n!6h(pP8h zbvjc&e4eYh5;`I3dPAeFLKi1Nq<}!wcwBYo7SG8P7g&^%+N<_jfl;oBP33 zo5KeXS#XhkK0kiwuk*D+BIU)1`SZ`O_{8Dcw{Je#-_egX{?8kaAOO{)89-v#zaGBI~Kmf$)ZllxP1~5ph0&8!Ae+wBiTwhro52% zV(V1-w9Y4VbjIds$3tcax`kPOBgWS4QADt((wpQFl-sLv&O!&dglgu(42l&91z-@M zu$>MRNS2^xc1`GH0a^1v#EKm_k-7n{z=k4YSG;b*w<<>xNU7)-^SHbHoSc2KHJv)X2D?J+Ii7%@9btW3Bp|GhJ5FqFLce^ z|Cz4o2W?YO9V(ZLl+KfB%56SXCuP?!?4MzZe8omnQ;8m@Qb~-x7;5nh8s_`Z!y!Px zYF96W|CWAdf78-4`p-io!wCYoaWG8Epj0>!2PwwTDiVW4tx=uNZ=Te-_v^9EN5=HG znV@s{fa5;>`i%J})C#@%q`z7oIp5x->x~ZvQjeU!KKbE+)H7i4>z3|*+N_t08sY)?koV%7LUgouWO6*vUAEPJgWd^BgsJzfd2qx9stGbVw|BB zris_d&4XbJY^LjGyym#E_{Gv?SkX)vu_XY&22z^Pbl|Hb^X)`~XG4kB`-r2;yAa?( z9pN!9hUpJe0AMxR5#vHACy!VL00wVZjhkhh1GAMAQ>gizEdu~xgUYwxyPGf({BL>re5&>91S;sgE~KXd)LeZHtwgwWmJ|<4*p%29Ux$O_rTH(i9bJ7A^?B>nJ^sl)uc;k_;99wuJ?a+8J{W}W)WUUX; z1%q>#0hjGhL2wqEH83ckVCRnh;%f9%jBY%{}a58h+n+Ntb!3K z)&M`X7M-+@vhhmbk?-mIUix|X#_GF+_S}XkwuHlCV4)6>_w)ay(ViYaDgeaKYXJZ& zQS<5}^?>OBYl{jGESQa##!G6HcH)L_cAbH!^#1Z)6E6T~lz;$vh*0G_XZ{ND(2UrY z4wa9z^AZSAP+b3#hcCZ(@K(D5KjP&|_WQ0-Q0j8$e$}Pz`}F~si9orZgfSre0zn-t z0>piPq7Oib$~qj-I%WWkB1AH)C}0#o1q9WS!XQe;LK-A`&>^)46ulA5Ob}zwsR?=v z92bYEMszrmX*uGZc&{kTwGHG7Q~JWfr0rp0(tuV4Nf#OFdt>VG_Dz#>9aFXzy5??b z>zLh_D@-2@@@?dGnBri+?%(j(^mQ-Yc?3m2q>cw2@=?(m>UzYHcmSB*lYB?9&m^ta z#qi1N6a5Ls^XcxVf1uyX)KpYFFAbrfd zjhJ002Wyq^T1w}(Pnvr0(_M28@142e1I5DB!%AIUd$=2>FS&Y7W<7KMT9ln@{(Lkq z+`Vkl%fI>Ip;Pxh`I(Jt?mNT|ZkwTXZ1c7x&7$#_XHH!0@$ew5##w$LyA(K&82~V4 zU7@5r1;C`yd=b|wTS>Lc0sy5kPf?H#5N(1i0N`iL;nLK{fe7S{*&CoN?pV@;8#2pC z-9K9f0KC$5-B=K6{OOpLiZtk&m*8#o$N&Hip%?~_8sJgJN>TveMk7v6Yci*!P6!zW z*IES@yO^si7T0_FRsjHjr>(-T8L?+MTK~F~_is=50I>;zp`n2fDHH9d@>6cj=O^_# zf>j`jfpj-AU6AKX{<5dsk>f(@?LcTL2mlf%pWHIg9b39)?X#wB%7GjATDWLy=j_8% zNlY0_o^kgPb}h7>?V4R?{N?pklL6DV)Y&<#*LVNxS?? z?zWkGot`DkrSZmEb3WTg*##&IqWr!q_gR`9!D?Mw6^=6+@AnOU63;I$hdwx{<^Hew zeKtMN@dF0QZ^;FCq?!0$GmF3tJ;4&IgDO^Yxxon-U?tvzj{l?okKD&MpZ@V;M0RgS z(Btmk?fezVf#u>=6r%|fzn$;}nKe*0HUU8awRw^^BhtT=!bmj&gnG!?E-?j1-sklb zd2A94Ss{?uNmzvRKxpy@a$#OF6hh4m1)fh01HuG?Zb}NUeu3mXxcUN8gpeR6&{CO@ zo&xtjPJSRQR+Mz6gap!}A(D+NMT+Iw#5Ko^8T#67N$MX(PI)iN=R3Crx%PhO!Vm?! zN<#zr(!lzuQE7XgyMLY>b4MOWCN2$$YoENnQd}}Xi9}Pw?0s?H^D_YrE;Qg$g313; zECw!yUy_NUk~EILl6OS!LUM4G8G^T=C`CqqNb-FMLV`+mOF}Fw4=G8e(0Lo?3)^zJ zjsb*)p|CJxFh6;}ZS#-)=;m3o-skv))rT6~{6cR1%XfAS^}dm_abHeF%mnAF4mmxB z!x{SyPTl9Efj#y(qO3vi^MBg!l)=6?KdFQE2UMsET=|5xo^D?fCBc0!U<5Ga8Smhk}f{-j@)(nIoF$U z;a7F9WwZz1TG9g+d28wz697oK0H3f5?`!HVnIE;_0gy8(daE?qtWJs$w1Vl^xwkp70^G!(v)9k`(j-%TpX zB9PBRmlYs?J1&8Q66jfz$iI9pBwNWIM4mf(6)=;52A-d@|M=f>wgRPdlMDft84zS3 zx`t(d9-}B$MPMS1H+VR+m-(A?Z?UlVK(@im9EUgvIjt6wpKVTo90)`1CXL)r&cYqq8~=UMe`v6g}Wa!Sk;Pt$d~{C zAN-mxVOFkyzZer2fYQ9WPHLX#G9A%4gP$V6E9C{&xl}|DC<6d`cerY<6%K&Y0jPPj z>H)9{KLzjx0YJ>)A@$J{7iG!;AOMJqrT0WpQNWSTcibNYUC&ASmlP|>k)k7ffwneB zqexT394El(#FrbKcmTK`m^JT%54?BL|NBPfVY03?KgONS-_QP5E;ZhH{`LC1*5@Nq z(^fAF?!Nb`$+J#ezU{EX4g<+|&)j(Fkfjw{!nYok+G_)y;_x@X@u?5?mXv)*^f$HYTruK`o> zQlei(kswzdQsjH?{R|d2L4DTTdNeZ8TzuqS+@? zwAwl_CN7Bqw&eCiQpuA>KB7Cos(`AKqyr2&<4?E0aQB7{%YQK^&`E$xN}om1?byi) z@;Lz8&9DmzB!G-nEmP1UXoTg&Y1Elql)Q*Y3W#|}va5CdpLjeH?gV)j{*fzG=wVug zgT~|sbS~&Dnqub&{Q{;@&{L5dY}de$CtGhzacOAdNib#~MrMLQy-;ZD{3U-L4HqqA z6FvYSd6I?EV~h3>_;{w=dtEW0MgTxrY=Ro8C~GZNLqpnAeg>E7H^XQwuElk01OUnx zvKWTDZ+2Z8v6L!c+qyZp{4*_9A{;XS=u7!HYH2A z>z8+v^dA@XFxRo>jL*MxYvwW1v0ckB*5W^8`z!rTws%JDvzxoI=di|^NeXI(P$)T2egptK{I-j@>SY7H`a3H;B?Tmdkp zkD)FV>%yd0S!}}=2j-HCKyZ=EcWrK)wAZU4kTjiTP#j&ig?k1K?ryQ%o<;c`vGA8ykvfZQ=ZYuu zo9r5R>wTmMXb0e~`2r9Nl$zqZJa%H}TdVA5gyEj)wW z|Fx0!*-z^(>5zWsh3g1lef``B5`LEi^6=Yatj1S3%9S@>FMgi|K@=GRZ!SjDM1^U` z5bOm-=gYnRca{2#K)cg$3qmwo(7d+4?A(4*zNa!+ID9X|q2)m_fZqilBu&PBNVSE> zwK3g~Q?Fnz)b>DAH6;{Kgr8G2*-@hr^LPl7Ib%={%FrcAir9WbMH>$<0?}+Iasy{8ys>*6CGibRnYF~$OP2e*y~d^hh)`2EBF+U5l$v04RCLOk><0+8B3DPpadD{Re=G>V zIMl=2nz=5596NA;O~{H1vgKg^lu^G_Ve=X#Kc$a@??7JGx0PR-God{!ax9Kr`J^k{ z_X-U-e`>BbJMY`OCPmIZ?hr<#KNuRP_V7FE0-K~&dQ#^OE)NT}3dIbYx1Aa7CcZ8! zN17DmM;q<~2WW*@gE%VLZeg(pex_qlqxI5oz*5Jhayjvta=@fU)>;!9w_>Ek4iSVPB#8(en6o3W#G+A{---A$WJzrW?_2h@q}CC*-n=#G}$Ugt!lIboVGj)Hzsn*t(B zZIeQ?&9$$#aKR>uSbxQf@yJk{CHFEANSfmVB~%MH#huoo?=8nBt&Iw^?3GooWV6F+JiNkBgTBE^T4d) zF-4|umBUziQD=efb2qj4GHjG(d=oJnQ z9-Lm|a9wke<-1v(?!TaV7c@TNL>-QrHy-hw=pV;7wXBgP1|sK$%?;&-*>Rk6Xr$abSa}%KJ&o=YUV5l^y}$(B1Mr^umS{WHPTjXqUc$KYZh%q zGbMQcOQFV6w|uJ(Pn4z-6Qv>m=r4Diu$qriTtd{0J~R;`XWq3F;AB#DzmJpyLAqb( zH+yUd7Ii?7-Ue2k-tTQS!+&}O-WK`C`?I+LB{dS?g%#a;FtGb2n1qguGoF6(acr`z zG_gmN^+7Hl%P3J^?Bu%Xi}FtrP|6O@;=Ucc42h&v_d=&J4PbJ#Q0s+=!U{LCxE#>G zsi2LJ=h}DiTv^LK~&W;bBOd zZr#7}{M)Cmhzc6;iFKWL`5GYL9mx4JSA*T{>VWd26XuiN^pc_7GANgr%SN1y(6jc; zKPOHDk zQCd^)<+{@2Z=j1=KPn;@r|w&Z7Q`7$U3$bR^YsM_Cn#obOKr%8qw1$j&2dUN0{%iP zksk-Visu|5xyiXKWbX{8(sBvPKr!yR?h8g%tH~sl$6$pCl@)eEqB*Jj+yRJ1CzQF> z-+3jBHKFGpd|_*)vG%7|3`)TH;4Fd=2XWiNp$d68zbp=hS-I9^s_W5$1M;i-Nmgky zBX)z5`efy{u+pwP=uJles9}Ugf=J7ww1L*v&#TtYHp8*wb$<{-=T7dz*;d7UwxXiWj*xTGilAf{0IeuR?DeX+#%0KzqC*q*}GK|8GR zbb3zrAbS*z_D{nYPGmCdI94m?P--hX2`*m5omKPg??5=4#?U@}yZh!RtB$74y0h;E zC##HFb^1-u$D^nZ_df&0|J0SA`-DVgoR{z&L*OIAV{9WUQ~i=*Q5ju!2laS=IR>tWXR+DqrCXlFN6{+J)&e=~4< z7`T%eO^mzvBz#~HcwW4*<0yOr-Y^;AS#Ei4ZYXqmTg_3kasCM(>-sStHSr0>A+Zr1 z)Be{)6=WU(pQ`uy&i}Dt$v128bFv%f+RZ|1!}lE1m+hCpKvxYiMnY7x)&C67k7BU< zI(Du%n0=_UMi<9_)A>#Z1Ws;61OOc%?pkar^#*=HPf{v z9av2vaF`00l6@XfT~*kB1tIqcewBPgTadrc)@+ANyu5NhCa?uI5Ui~^@x}7&nyj<_p>ET zG8Ajm;`J)hntE%uE9Aa8W-@&AH*$Fj7_KCB)w(010Hy(Eby$&HsA z!w$&lDtn;8P{1$veV|g+54pS%U&Zu4P2gm-?Pq7lasaR$ z@6|D=7!Z1;0Gey@+Tb3O!~?tk!iHcJ#ep-Ir=mxRUsCoSJM~}bMpY2}I*gXqhX0F| z9X1>G0wBA;DkZs2QFxW+QJ!LTy3id%x-VE!G)iyAzz}k3j80CuOR>G8V~~mf!F-~u z(q&FPMrP=+@XySw8z8S$;t!ik0xdjAdGM>r-)VX8x!VJh@`1@jG@VVHO>ss{$Xd0#=e z+(NbWLp;Yc3b7K^FlAeWm1hvxoZs~AoF}Y04kYVpA`ZQ=+N_%RX$bV0Bu+3y5fmZ= z)jD%>@={LkUz!4ZT(R~~xeMH57#Ru{P`m4N%C&cl(!Mtg-DS2MW+J&jL1yXg4TXX? z?k|_-x6h+@$nYFO7fv($!u~U=5)!{LM!6P@X+zx-PNlzI*LgDt`JF#?o(o-O{H>RM z^Uu2B*lq52{CoFRo!F2|0v4ec^iF~6yBhi__D9uQ(+*)&*2opd*`vcylH^QQvQK!1 zzNpzFg{bo7b6N@|H)ecCNP?!S>hzO>0bU^ZDZop>Whqe?@8>X<5|)A-co$=1}UPndO!#Vz|FnF}Qu(*2xuhPi+q7D-ZkNTXcIjrtv9L>h7_*2N# z9-s)Abotm2#xbh0YUy;Al(qcs5K%1Nphf3w&%^{Qw&H{L89h7{JKuKio~_B1M4ENo zwJF@rBzw*}J2g{w812Yim4&Hcp?ZkgIP|UvCcUjworfbKZy&?osqjiOv`h@59?so& z>wo}Zm41^xTqtV9508W%3cjBrdV}S4m_Qx}YZQG%DaSMO@H#_hT;^Y?*JdEFq%3i! z!XvNR+#8b^P8NN8mjq90dDZ$|0Lhhei8Otxt`uksgbPS3%G2?2-oPi zB0LCifqOvH1)y1Z;aP7LeT&-d94~EdH{>Z9S|22?(ul=AQp*wO_kkrq-)!{`E+rBR zDW3m5_ptj}?i_b!wqL{=2S%=fw3p&bLTPjNbgQfKLWB~%i&9eJXm&1DGL(~xYi_ri_4$N-vpnIBQMp+mc@O#UF63XJ6TPLn$Ou``Zg4;()mpK3JfJixx)~P8 zQHAUA7z~*`Hg%~{6EKMZvVrKAq<*(?>1~W32z)wSvuNdFbYnd=_>K%Xz+|5VPrx76 z(0^Hq7{gX*8{+R z%US8}vo{l&tI+#6UXiuGPiu3XDfiy*2!|}>#i?tC7v@(e1pT0S(#UG?N_U?cR?MeZ| zOb*;lMO(Y7!nCONQ+*d=$VKCW>P475OS8!vI=F9&Lk^E^N1n8egZ@XKVVE83@2Ox! zP5qCmGPgf>eL(l)nRmq)$#fbNQ#O6nI7Et?$y5NX9i zA|lZhSs^v|OyC}xg^1|H2L>#5dp3E*Tc)-lFhrIFfWocor3B)j1q)B3<)0VvdcoMu z=+2qbG~f1NZ!vy8yKCS5W_3)U7`wWwz8NT!wAOg{lDK>^Y-8NNuhrJKvkx*6bZP=0 zED;qJ+|+YB9H6bL*DQaCdHEaGYG!T6TQT3fylwgSuLXKLFHsGYB&Smk)qn;NL+Ebn zFImiP#0JD5FTDBRUdUc)b!;Ff+w5{}$Tu8US0>smWP zCFwjM?a>0D6^>4|cddU&ef2k~cdQD$G=Y}`eAELFkn21Vma?_3cPED&VI^+LvC%gU ze{pZ)S8C)EkH3~`%M&1No;N7#lND|RC|eXz0NK?{!eO1V$*4|EWD%bc3vFXDTnUo; z0lVCpoq1l%<&wqThpm&ILQu)sWbWHx3*7iCgD6rfJ=Xmm=6dIb^BE~6A31lX@J^@b z#rZ^MV7E&_V9$jbKO>U~9=taf_&>to3QZw6p38($G2Ty1#OaIz`;xgmTnibv;sG=q zOh*~J23GjfBoPT<##`~2V#dACIDe64yd#U&D(&&`)24T6z4FU=t}clvO$Z=WNT1?9 zvAzrckxvM5e4ZtRt_6^sS*08EgnLOCg^vb0MR1&$TvH8I5{4wk_A#99^+Gj$$@SrZ zS0Y7F@Smt`yl*9d)CF+Pwewe?!*4vQ8j)4gkUO*#B5iu1LjwRG?$LkRhTVPv0s4$~ z&D|aB8$=w1VkyQp(Z^-|T112CrS(slj4+AWEXiH>_Pg%cy2_8AlDdAO`kWio9#1ua zA!h-E%}aI{2>G0qQgHO@I4&@Gd>bVTJJz?6d}(n5Zy)K0;2t{<8Q70S-&8eevLum! z00c73use%08VaD%pv;8bss*}W=5ocI&s8L`>bsuu;bY-g#}wD=>8+F5aD&64^@OQO zSc>M2=j89`b{VdKVcw2Zr^sp@pb-@b&)|-%@kLhFu?*p_A*|(zA zkpUj(9*pTzRf1IIt;Ac5=c3NYA#Z&F0tfC>!Lw+)61S?g#JoSC_W|p-m~I645fOyD zZYPx#FU5jR-p?&pqADb0Sgx)_|Hb)>9XUL#*bpt!)&^O&A`nI1f}*ii^Cy$JJ+rCG z)dsPLlw5gHycEN~AM(oNyOp9g3-PH3sX<>3y#lJk zM(F*nWkNk4bfjFdz6zT7fQX2xI1 z32_E=u<8FB%>@DMsX^UmvtVLNz~r2S=XCSs7z82Xx1k=q`_ahz?|}F-a)?ao$xua>%d?tUF+NkL z#&zOa`#qWDzV>{bb?UDu@qf6DqLl7~d$(7Z{m&z@L?peUFU$Y01;9!8Q+PV!?k$U^ z5O~%p9dL^Q0H`J|YV9D7;U6fSAF8>-X~a=!)F>}L_1W09c))*=4(DuQs-Cnoa= zd<5F`3a8lO?9XjUJ;Et|%_LBsC+g!DB^hluPE3*k>ug1&#fHPuCMJ12T^EGZzn2uG zxrzqgK0ZGObA%j4IIUFYkiuBft=Ov04H$DW$r@~jcV!DtE>0?ZoJkfIP!9{E!3*0>VrF|Co)rD^NZWL? zGQ-aH`2y{-4o+V+4($q|kkqNim2TWm z6ndu2LjFdf*1Yi9LAWN;{EPG3pXa+}VDWi7 z_Q=p1hJBsQew0iN@t7N!qcz8(&r~>I!?)%F7T0F--m=yJpkp0ATL(+{6`fSXk zW%-}b<>1}*vf%5pa@nWv;lC%cV{kdm5X4_IW*lGWF{%9NlaqM&@7`OsBoe?vAuaFa zO}FyoOwEdQ4iKX}Ik2ZfgBX8D)?A z)YCTvl|?hQbs27_7@Uvm2g!X?0g0aPfU5gg#DFc_k2L_5)%o@|Mce$p-d|V%^f&i- zG4Cr>?_VtJ28Os(gMgi4=&PLUdhPB>YYEx5oCQ^-+;ANQPz9A(-hAijP6K2UaUhIG zRE%hNM8_n4>PS2t(*sP9miGQ=#p~x1`i(VCQQYnbSoV=7G9EF6x%2Spgcv0b91{lY zoy6TN_z(oAq?#tv17apsHZGVIHnR+^Pj@V>7ZG@(msx2XO8RJM#Lt@vnauAdRVfdC z*Bq;2`5XBLB*M(iO6EA;M^tuDuvw)R@07?HwR` zzH|50(d*`7B9b8!pgNca{DEw0BxEqT7z!c6J4`X9_d}K2pur#9D)rmi0Hn;0W@dkP z0Rs>yHYrV56KZ~a7SoJr&o&_OTgq=G4=l#}W(EY>)ycnCXa~8rM<#S9qb=Y8lP43` zA{$h4g0^{}$G9XguFbMi0Z7a6D;foGTz98yRZtO|z}Eu)$lr??5(@yamQ4Mbdh-6? zvD<>tkRb2ve9DcrQC5Zlu^ns&Nq0w|Ip+gubB`DJ_pK37_7D0@$ zHq6|erOUx$LJdpt6~Co>lIr?HrTrfPS5hcK$zmQa2tXBKEVDR5&)k4n)^p^USbu0F zl0=+=fb&#MFIHFpaO8H&Qd9k$-uMl{rdy! ze>uuPF^>pyv^5+#(CcLf+wD4*?9M7W^}P|sgIv;RHRk|XnYeS;BIg-NZ_8e|?DMp; zpHjJNouSb}-D0^|V%whUjuGd%sIRsM5(;Q8ipOEHGpK9nja}t$LV-$c9y+J8C*EO&N;vM=kq z&`}mw@qo=QgPRH)^bZU2P)t<1_~#UD6b`*?Nq}lt;rsL5YZ<>cwJ@NjqPOE|dEp18 zo>~V+d;rdvjRx_}Ocg+k-!Tv}@tI46iZ~hfA1HnZb5xC>w!Axfl!<-7cMzR3d3kck zsWdZ7R+yw|0s5od4CR(K!!QNTgo_mAfKjt`+XOc6@>&9awFE&Bjr3MSqz6V|(-yco z2XBPvr2-!S5~krn>ZpI&NfzSyRq$|o4n^MId@xX+7dl!2C20%z6n9RtK7~|z6^2N; zms+lgp#w)M5kiWT*^juf8M`1+`L`dN9%>fl{U8|VjWnbv<@Ux9ZIzZsf7PzEy2MWVPEt@r(IZ{Am@H{TL_}%HX<9ZT{%Hwvn!Ps8RV4x-*CSzBb^iSp&>^$I z|85HpB-}kfcy-p$fOrG%u$QDhX({W5y#Fx7tl2Q~0-}S}rxXC_7rUu^{F12+$wH7` zTM?ck4TS?dkkt2gN-eDR%2pf%9a~$h9Tdpx(^Xk?%8`W(nH)|MJW0qdBVN(XTth`H ze_YLo)ldMy?>uOTCvEo^01_ODmSHfVx(5d#?;T`Q(Glr}iyz<^P#bApr+zqg%6%yp zNw+9RHg;FZnZ_kHdrsVw&TKkFDO+C(^UN9V%qP8y)>DI&MA6K_16)Q;o35)Ost!w< z3yQ;b++j|(Yyj1XiRvQoRhW3^hZIwgxy{`rMS4Zh4s9+S7oA6Jr#`VX8=?j#5U-Js z7f^q1ckfZYHlwqAnkC^7q89r3KbhS~%}Hq-)~_CWO@25O&Sio9^DNliRIb}%2_jbY zNmZ6QV)CgF*0YE|QjLkl01IC(W#^6aX4LFtn zkUlJ)fPywZW!U&PaH7+@oSDfa8k0FJ=rsLj4r^MkpZ3;tig=Z5V2OfZh2x!Q zovZoi>Dj-3tYK^pwg6BzDTzN_C0f(|zZ_0^jm3Ng(51tE#a*>!C%mQsF04*WR+@y44exKzVMjNhN zl35vTk{)H^6KbmR;DCsA(K46wsPI&JTeR4_Iq+XY6z~2tjjQJ4uGTk8*mI$v2G%*< zTPwrIgoc74@O3=s0Avz4&@=Jj2B11gW!=fYzTpk2vYgKv`n*8xspg!5!=otLri^$FgTY10r{ef6jhT*;>|9 zuyXi<;2!%Ekx@o~?N-gaVL@=g>h4F|AJ%;_(+oO!o{weXmDUJ(f!fD_kSQw#HIxIB zngc!_0XTB2#^b^(;ClzaZpaK#n_h)cj;b0#qq2s53NdlB1lJG=SuoaUX>4+zvOY2G z7<)_APf{hO<)2nA?LD*tETzvB`@sT@iOAxpq? z|Ko2$iUFZf*c$)?HLY)#IqB}~go?OZeTUAhl**iPVEYBFQAQg-0lvi$o1~AiltfyH znvX?19*Q3gKYSbxZ&>APEG69eJz^;nPywcnbKkQ10%Cc)|La!slj{$sp_BWNzz-@+ z0REf3F|j>kG$Yfxj7t_Ckau$Faigo9Y9Dw;{0jlFLHB)IE%A(Hcvl5O>tDO{cqH$P zUwK&^STvuJceymr;or={^oTq*Xd=j(L+c60)jH%B8Ghu$OpU|$lZ@Z~!h4UuO_}N<7dBU&s%`KH?*q&KoI!EO*Jj`T7SmugEsGeeD($W)GD~; zlzk|Gsig1dr%HlQW=a2yrWf_MM9m$BTa%cNl&0A~m{)rna+*sk+sG(`%Ln%!CB+iC z!cX37W!C@x!p(D6mu&o_Jxf1Uv_VYU`=S^GpiPQSMw|uy)rW-~X}RwReilk$r8~91CRePY;8=C6%y5!F5tH%57*rYDRdCNiC||>@pX74{cMZ z5Ec2z$`RUp!@2LTQYng>iFT3caAIZAgtABSCyhEAg^RY z0XW|pk<;oTe!#*%b(~`~o{4>K8B-bC4{x-MTp!=SRVi-+7qX-{(nxFG2*oM}^;gj? zardhfRr%!zF*-?$8ocqgaUfq{Z=iB^!Kz{VO;{!gOBXc;&bDEBw#GPW#aoKR8eGfI&LNn9 zfsbkafhR9eWSg>(bxD>cF2M@th@S`VTuTAy2w{XtPctMPe|h|X3l0U{6wqu# zuP|hNtqqIvO>^lVt@%~zCyXJ_LIH_7<&z8Q=I-BK*nO%415tjNg%=}Q$lb7|?)b=} z!1CFvQYnl(ffLfE61530FstV`=_4l>U=@c5Jo}u#e$;&TI^J|v9Jx->DuVfWwwg}X=w1N;1j|L1%!uqvFeqlu9ye1xmiZj$NLU#p4S)_NQwQ^PhxjI(zxCW{pT&f#;0>d zx>@|qIjnK{^y0DI+8X};MZgnSrYrTe49fV4*cc;f8+IW$f2&$6y8d06IitwtOH3!) zn}up+;!hnsBLvS?dvCmxV9*O4m@A4so-A?vL19AynPlrJ+=-RJ;R-|xR-y= zw)nugZh5~sidTHU@w&d0hZ_$jUx_LxH9%eNr`rK(o&p6+KHI3(k~Hlh-so-6j4AFK2e2Zrxv0RkibBg@w^TY z!MckQ`LIa2kEpHS-}N+kViLx`oLHG!zvy6iSJ#(z@6@kx&m5q;xf}4Ad|P@a zP58sI8|>;Jamj?dP97s9Z#AZNRZq%8&U)rI3685tQROibfhGDKp=lu>$qM1fOokrm zVVoQm^5EnLtE$Cc7VGr=HOzD4Z~}YIK^sMA)m(ehNj(U;LU-1Z?f)DFcz0n(upmXH zErt*RhoElV;T(q)Fa&Lr_(!HS_n&u|Se8MuSlK;92I;Qtu=fP8u13P2pA7na160M) zu<3%Nq1!xD&y9-~87W2SLYhu@qK+^`y5k$jftFid@*hkQf%3W6tC^VCA&@an5ZJ`H zDFPViQM~tjHDSujWFpdkl(y+xEM7wraX8?j1K1hj15PkGR3)Td2W}6UdT8@G4bezm z_vOe2He_>%uSGd1*3hb1!h+cKNc3+OUmi}YESrrzj5uex8O@4R9QOyS?D*SI2z8B? zd9Ge`t?{G;G7z}l^mK|z>odsxfdkLbd8qB&(5*FjGgLf%7f80OKPVeui0z}uwSc=m z=6m*K3C+szzsDE8rbOP2!M>56d?r~;`zkSzFq4WUBUjAR8eoe*>7e1f&Fyw z+2u_q1dbVwW=>j0~?F>hK#jU!=C$TS)=yVa2R#U1C7e%kKz3`TTvmSqOoA za5lBVPdeet=7D6mNiZ-dM{kv-%S2|X`Pr(|1~4)GnzYa{EwJ=eJI@*q1F%C1ot*^~ z@+LPZvK#TXxRczq5gnxd2ru2tyl^ZX!-~g4mq`-LRkH8|&;1uhQeEhy|n5bKO(($OF=PmlW21as-0?!1&s<(0|&H~gO^J|dno+ttO( zxOE>K7C6y78nrY}{rLKeCIO^%t6_252Uh6+Ns%pfapGP+VPp3@dwnLKh9i68_ajG* z#XeIzbfNT#?Ta$RzN(zl9BFk4QcEsF+qh@gR8Sfr2~2ZJ6ZoQKB(PTgEA^YZ4mo36 z-JID;zHl;6S%$wqY(nEB0&QdLH+nDDd@gs$wIU)qR}sYCarRny^PJ0dGq77Q0V}XK z`yzsT{V+y{E4REtjSv-MRc3 zp|*e2NeYz;=2^S^XIHKP_FMO<#?N{K>!IyVHlWHVUe{KiXTgLrGJqwBfv<@RHDE`3@stqpy3o75}=d z%H)6ekQ1oaxt=8QJ-QWrzpmVv_W`Kdf2t9ggh^Wqwe8xe9k*L96achueFqxB2ogqZ^hlK6Of9Pm^eEZD1Ckk}xaKhEOb zz^t`NEg)u;r=Dm=1d*zzM(N$gCSVa#WoIJU->6_l=ac}Cf~5Ni&Pr{K5&f-y9v zF7``Ar|^J`Ty%1lcPNqxAslcdYO+$*RbKpyQ8urK+a;)Kc?2v$><{uGZEwsZ8F8f# zk)9n1&in=jw7&TqGkgyJ@1x!YK)Ws6I0pxy@k=6pwb0boX751){CH&D*7#wqnfG#S zQ!qhB{H!*M!pneq0Zb>$88fvJHV|;YQRPoe=EQXqKAX8zqgPp(IM+`JNP?u3V)b!>?4R$GkjA_OJdt1>n-7QF*c8a} zi)3MkD3=1lym{b~4--Pv@SEO%ZNBiMQ5@{wlrrZ)9~!D;Ek+jtUK0D0bmN&`b81$oD>vW$b zFbTbnei?0={Ouf4sq05vVQX%OmB>kt^?a}gLp!~6^5wKW47;G{lL-I7pI5)lz5@djYM zpTx_T_vSmgfEYH_7nDWn06`+^(?J>v_M9X*dONz|-*~YzHpr06seUt^V#zoYD{%nD ze|VFQQHUI*&nUJlnwwX2`Nrxa&y`6&(ZU(K{}2iWY+VWEkas@Su|!K8ZJUNjqEgXh z$_Hg%LKHohX+JTAc&m6};@!%{T8{w0;dZp5=UT{-e_0;{p+f$O{qt(!J6>UJ*O`KK<8%`)|o}I6VzyDwP5Ys_ViM59Awv0ZS`qKLE_|53|?h8R~DqqcG}Oj zlghAh9WwRO`PY?f;Ig=j>Xmm)C_9?`qk+oE35OTIM45bSr!lfLnl|}e;L<&OB-Z9Y z`62lvf(Q?KR&aM7x!~I#$o!3j(h&uy!$M85x*WdYOAt}&tV9K*mhu-AK-cSLEMX8& zCcwG@1M)dr!ocE#O#!SL^rnPrnjPW}?bSuA;X?tF;?Fd+Ejoi+NJSbRlXJysbO%Ib zyihVNdWDLW4@i(aH@k}(m~@O!hk+Q$0&m`HqTfWK=zO(8izh<`i1&OoTs!=W?u<6V z2@`!rV)>nXwN#1ZyAqT1NrYHwP>=$$MvBVMqD3Azuvi?JK2u7$t8EH}{fOrI zcQOxnDIO@g`8OoT^+sdrlY~x~QN_KDIBnnT{?6+gJbC87a)~@X{^vJJ^e%ev^dmovV#K#{r|s=02V=?mYl5cF7BB!`2$kqYGb@DNpr3cR7Y-h z=S(Yf#AQg>E7vU3fF=Q`D04MAG3=nI;-sI^QLwst9-O3g?A?;}Sp z+x;tDAm+RL^2ZOiVoJ9iH$XRZ+J+&tqYbvrcal*(lwf$q^==bDRZ z|I_2P4Js>2HI7x61BIV--Fu*nYZ(M_D}*-qLC{rWc4`5WLUn*NPpp9&u1y~VAz`=c zsI6fzuj7HL3IUqbVk8j&zDIwJY6U}4R!j3? zy3AUWL9_s|7SgR#S(eccr8Rk&^H9^#=U{57+r7Qc^J_M?PIS8J zAcEMsK>YCIK8AbkZ5`nO1M;AT(7)fdd2*SIzuPk+4sr1~>ByuQ#Np#4y?EEYRsJJb zn%}YQdmd?JfU`^L)i;)ik+uhUJ5&k0bYxych?5ZumEmK^3(@sKH~SgI4ibn;HIOgGAh)w&Q+xmPjt0THvhUB8q&bS5Ab8Ele!A1Hwdu?i*qftu)1CYJ@B z028snnS^q=AC}o$`J2<94B~~CXd-2!u+EmkL1&%9LP}!PV{_D(&T0WD(W(uvk)sB( zO!atpH}$yeTiUzBuXtXqQzWcf6hA)L6(zch5V-sHFk@5tuuL8rKJ%{1u6;8tsI>yB z<8iONnsagOJPD`o*e`(9>y%V2=FRpUbeQiO+2bLop{<{yf7@gSD)t})!$lqbky5n! z`3?iG;u~o)yplR7<0-I92Y^hAqj@L$%*dH~Rd*SGZ-{TtKz(byLv%dt?^dHi(8{Ay zZB}j*Xy?Zm*^t+){gFoLew>1th-1nYZiLwm15(C$F+8UvsO-< z=wPYg%jdxC&}LF2ERMnjT~ZIbxLEs?e-0`-b-n;Wi4d~thF-7~ddWM$TtAM`#q zBga0w%KyUhzRz$ibs2T5G+EfJhKp0@h9Vu7F%l z?Lt0AiVK+R2X+6pS=k}$c&NB`D(&%HcnO%Z6j*>4fQ0*6fgmxTDDeb1pe7d1ngHu4 zU0CKeP+8X*mX&cefnQ%^c-MP#=H9dCWn3M4!p&nOl#kTI(o&7dBVu$GgWcb$m8KWc zYG%SXyGTjkOB@1DTd0xeUBm;4Qd=*OM1v)mFcf&<$q;|bMQn-w-ZHXSk&f$kbNfS3 z5w->>jDrY2$rq@3FBov2I44ny)hxzM$)tRpHX_-JG<+ngTw?~Tb>U3Ngn;Wql4#{T z$*CGuiqCLj`)cSIfX+_e_7cp5{w2SYh*FV1@2DO=2HdD0!Ye3unVHB4=h}ZcX5Xl= zH{&Hmigs_#jG$2_*>q>HdNB=j`%x+}mwM@e%9Ytqis`e@Fx-3=0ElJqKMZ9`FDsae z*So|WE+He$*iad(BxrbV(nc;->P|kpdfl1~Ed=ucwHkoo`xeQQNc2^@}dWUr2zOVd~6#q zPJRwesNB*X`T2<)anw;e(o_3WQF6+b0wb9@&pc7Aap|XPB!_!i3GyZFg_w(!u!YTe z3x>*yw-2|o-ei^dw{guh{9acsn{t5z?mHhwSwV$1VN9PxC>wuq`)l&=dxi_78UXnS zeu~p1PckhF<1zq0_FExw@&9PL3a=>Ia6h{=NOvRMAdMjKA>G}Lbc1v)qDV=1OGqx= zAiZ>objOm?(g=6&Irshv^PZV^p68dTAYK}PZU#tLm}YJA6u|A_MgcI&G>zu>nHUB& z5P1>3E8~`sM+06b0iXa}wm8=>l}&6WhAUweL%UNxH?m{r=S@8`Uz)sy^M;F!`_D` z+R%|d;84>r1ch4z|E5|VplW#R#s|)2g6ic0KGUf|9fK#LfNx@eJrjyXT0^YnkJr^n zh!R&|gx}%YdzAD)@Apv9(wLM-`l=xi1p2&H6vIuR` zDIljiUKtefEUSuO}hNzkdz(CC^X2R zUoxtm&g=GADqawzxivBX8IjyKkHBQhDNrz{xZd1Nc8EjPTwN8y5o8BvWP}Gz6N?cx z(y+!@f|5;QL{xjU+H__bxfeiyFi-XWMro>|BoHqCxg(Yw{~+c;fgUUZ+MqGztdabh-A8i z53V7)KuF!%!CzBi@klGLCMaPqlx;7FZlZ}|$vEDuOm;{}{@u|hLw8MO)K+3#h&u4M z#*_oe0x=J<)PH1PcQkE9lm z5RyiGdGV+{Ik6Mvt7PDt4nU66wl;J6auC-8XPV$|zzJbL$=nFo$H;!$aPY7I4}Mi^ z*HfXbDBk=E_<+2_yn&T~4Kk?jFcj%4^g;&QHw%Lp->_R_(?juJ%h75B{D8#?QF!Po z_2T*&I>%oj0nd9rs_HO?D%i(dyz64}k^wWNmEDrqw%3F!BMmQQ=V2v zlJ3J8Me&E{5%@dXhnp_Y)28-D#W?nS6D_9uB1-yJm)`RBi;t{uTzFcam79v7L23ZG z>*3&&6)1Uv7bl`GC|5dc1|32J*fRpZBTFO`0SlD{8m7Mp4$@u$P?6Fl=lsx#6r1^8 z8Jc!gzI@Q#QD+ad!YOgdHp>x7_0i7cQU847T1n3ZAb~cWr;GsEdfX7t{fe)g>;hsb zK+vfQ&^IotfYi5K-BfptA7$zYt5$eHn3o|FFS!8mlI}d#^qtLHsd@lH1L@hOHy%UU z1Od@Fpv7X=Pg)Fmx^nF##$G)wljK9o`_`ts8}HoyB02?LH3;fnSdH`W7+4RZCUlVf zRYeK83tb8%^i!<3e0~g6^WG4nY{2Dz)!%hi@P`?bogIA~9P4yBn4$2@Jd=^pjZgNl zZW$HzGO%zLa#`UjSa-ROk=zYBo~^XEx-LJ#)){hv?h7eJfHx?{(I_EE#v#jYe1@g&00F5(?9P%740(CzijWwH!!q+dD+ngQ$x>___LZU`GlvQ}rM{fV~_+?_&v8fdhVQn#RP+`sT^&ySl zn~qo4bca@5xkLvk5?s>sWMBLt62lZ-&y;H(T4jyt)-hX)Oh>Qm zn~yxSjQ%v4gV`m0Up-h(+Oj`s2zZ`*@`346rQR+H{KBs#Ru%>IcTlAEw#D0uV93X8 z*dDzkZ`!wlq=+rK@SoLDBoXg5Tjig-29p|af#+J`i&Vi7?Z#0ifB=h`EiUyjK%!B; zA`3mMyZ$!@AZ3TUw>ID(A^n&TWT4C*kh=e`U%jKFf$IVFYO%wnpGWZV^2IelJl*R| z;Rk@KjY0PqalpcIAM_sbRHS-|L~^QoE=2$!Qdguf5H^RZLVah(>PJ-5N$6lbo2)!;-K7J^t(rC2uk{gbNJ5$?8{LtiIR@t9>A3 z<7=0^+Zg8}Z-!ymP5gZgg(5LZ*hRf`;*`iXB!FZk{(|~%<&yafDy_E|lZiva{alNk zN5oscoX}s+I#Y*2pQD}}mpo1KJwuLCqd&g}g!OB5sy4pMGX2-#CKW^fZmUDG zCwDs7t1qs_5h-U6d@xBGLnko$vY-VT*8<^DcQAu^V=GuER;v6e8Jp#}A*V)KuGI>l zN~);=tg{r`AA&)=dK1)$u7HM9jdPigWf1@!D3TqJs`K6=2$}oS(mivVPsp6o4=()+QvMz$zCV1-oxnHM_lQ-!Z zk-L7x1R*D7gLtd-{H0KBJPR!*+hKInsSGRK>y8fZN=q9sP)2P2p?#sZjUunLU;^%& zgnFDY{5)!BF1}|pmLf+dC6Q#7=a%~-o6Z-Y?e^Vk)9$l2VRr(%l_BR%715x*tLaB3 z+~%D=eebIfwv(oFKj^RC#;akp=Eg6$kIk_2(4x!kxA!l$C=d!=($+Ig`nUMEfISKD zN)CyR16b6~W9zx^@c{uPts`Wm6Xr`dPbYs50!^=d{niZTl@85OfZt_6!p5-!U=O=_ z3=Ubs;eGk$mat)0#Lt%HWRb^F_a(UU7b!hcjXz#L^r~ZN@ks2q5I{%W3eV42nH|cv zl>X)x<4Mt3HNtIe$cEw3Xu{G% zE|dbFw;YuWTSb>is#>y&hnb;A+9^}Rfif<7SlAKv4oL~LB~vNFgacHS$io;zvfEy3 zQMA_f*cjd<5|442+x9)mm-~%JgTDr5@dq*dS|kz_Uq|aMN?+?EWJ?#3R|<_CZf9?{ zS~57=HN>&;dg>bUUN^Ad(cI#2yy1^t$~)m9uHa}b@~_g_JB_^O()>Cy+9o_X7fn8R z{#58XZ$o}&yVC0A%?q7%SDA4)S(Rc{B~x&kpD^!p%YHY->deD&7#{_7`rRTx5&(Z+ zS%>J!z)Ejsxr9SXwomG_vduRms&*LQ5lmxWgA&1Uy2rx}lyY1-hAQwCyljg#Mi%2& zi?4=fS`-1+x2ie2`coEV^NaejfYI>F5RY&w5*@w&@?rA7;~1`czCc!haNDc_{G z4p8)%LIOIsgf>SmSFH4{zM#zOJ?cgZbqhYNvgXC^-y3s-h=L9Lj2fBiB?2#e`ckuj zt5;M^7Br; zdGV$12HnT*A^JRS9E5$BOjIW@3EmR`_@!>0>k+PO-fG83MLYt3OcOM!bh%eK$Rslz`W_fenuU{lry6o}SWd@4*~w=_=L#QwK*Rz6{0SpA_d9pRPT78Qk2cYnnBs;F9(KciH*b|DlwGsI`rH zNB@}2Gk=hJC~@$d#`;ko=7C37&euKcO=@Zkl@Lw&M=@&M!KZj_$~NQFoIlnzTs7&DV<+G%bcJtbYEey#2mBm9V6rpF&+e@>qixH}3PJ`xLe2>^Ke z@9Zb!RWpQQHm>xv0UH?R6mlx#X<(6v@q>Vr_VC+@C}O!koz@PCy*hwGMTg057wlzG zowe$gDkdW}YansZlXHH8&5E2Gt5m=)(3kc0=lE6sqta75^-M%F5`YHA4C-N>RE$76 z#*WxUPTeNg-pkC{Tf$jv3&!l=xu^O$gUl$p*$HoCom%7r&`tlbqe`ZAe!?{bhebxx zZ9Y(@q&i0;9J6;oS;&ba%Fp>rPkurhPtNFIlU#UjViZ#-XK47AWJ8uR5#~Wdfi*|$ zl|?-wCg$Onx(@H_(b8l*4b03Ft-0E{?LL($*pwk_g4hRw+{e3Jq3a}Cx7@N(49$uk ziHOx*hgm2Lw{{Sl<&K>p7u5j}ZMnQJzgQGT`#J>rH0rU?H-;24q~Tiq;oL|~!$yst z*{>PVsTbe*ebvG6ruS6%tA)b6M|*XTVcs5*fVyv5TSu8_;8erWFQFNde1*5z8`R}* z@YefqCPZz#8tp3afwB^O=S?*Bj8&BK5%!00Bj))<#a%HdQ8)Lai0}yFZuYO%&4dQ_x@|uY zU*-m_AP+uvkh=xhdhd!5!7RHxB0L3I9(P-Zuaah~+AZ+54MwbSFaUIn|6+2#*kNU3 zQC3)Rnl%ap>S?r!tzpPgp7UR-_E=#bB+K@zBP&Kiz5$RYv$=FK zfE)lzLlWk1Da3)pJ~fw&13(d(_f?3Q$3OS_$psVGe>VLW$YAMQFgPeb&nIaU_3BTP z*M?2Lb5R~>%N*IJXpyi3#^ zFcb}P9PO;xZM>-o>l!0^u`fq1us3F+>w_xC+#_(9HVE+{ z&^#;M5shf|=Plt%Oyl3P02!Vp1_yGG-`;#daK3iJ-=zi2$%dd>Y#!$=T8h?pW|538Nk&31~G7Sb%i+$uD zi{-&eqh3NqvttpGx}TJo+!+fK{}E)~?g~g=5dWOFllP|zrVb8z^Ov90br?vkv#n{X zy5EE8*MFZ0L9pzU28DvuyLU%VV~1l>5`+XhtD2(vr9x{bVOrrPKmzc!K zD@lln$BRqwR}G1uusFk#fr3F~uF97$C|#7@X8NK?+G3Vwh8|T~DzW;c0?I(_tIR?# z9aTM$=KYQ8W3A1eob7ReN=LhlnpTs|&_qB`#a?ei$A!Mn8_A>@)sdHYdE{V=Prv5^ zvxE`KY0icVkro%kl1uFj{K>3?JfCxRA84roj7B*{7yM>!sVt=dqsIrReNCCl2iRy ze2QS+E#hFpG(MY=z_Vv2n(r@pXcaQ0UD(pcS82x<^D|}8tb5FLrtd2i?p-!xcTrDQ zj}m8*AvmwA4M+3IU;8&XXlK1lY7ue+1y^q{t>ktoT?zTJKi|QWgwVc@eib~cD>vA? z&Kat^`|pl#`3M9EyL)s$Ot;G2coPP0nw$IE{?a>~h&Vi!1-5U0Uz__O*Ig~_fMgc3 z=|a0meDj=Up-xA<1k@`($=&upI%kQyXrl!t3z+Fy1eET@e}J0{1qqglP{G<BrhN(jJ{CwXufVn(=cI z1OR&rBq~oq)ODY+tN9&0|9zK&L-#VBkNRI;VC$qIpS|&0n?V4G0>N!;xW~?^47FZ$ zt{*j!Z>Y1;Om$C&MrGTG#p!$h@uB7Q7k{&>5v{yU@ICxp=@&NkvNh7&fAX@UnklzW zc&`{aK*;}zT4j7Mz7#iAu6UDUl5Q~8_<{R2hcQ~U3CqnQcO<+nriH_lmS3j|(x zQl6&iS0-oYqvONg=O}Fag!CmdoZ1m;Bc*K^qIqR{2F%5giVkD7`WJQDgn_0bmHHrp8Se0CroIEf$oEVqHr1h)yOee*&`;T*a#~dnavTJO+^XSj|D^ZuP(E|wnGhUpims?O$3+S5+{$C5A14-EhHP#C5H!z*mjjh1aZilFbeob~4_S_qJs9g#t z#{S{BOoc6+Cp|T{_k2fvW~Twu4qQiuZ{a3S+SOBt*idN)jE#>IXEN-*!`^unWI*F8 znoms10du1g6UgX6`+QNUH-Q20S|m{`0SWXoCRl(%_pf0{(=UnYU?t3cYV%+3BE+~) zeWW~`DZ}vbuK9u_GV(`nKhR@u@O$j6XbJ??n0}Hv>1yv-I2gB?kEY3Cz*(_xjOvoXSoF0~T^&*Nt#nMyy9g7-wG_8!W);Y(&huyd4lw zI8KZ7B#!VGh6Sjb0hp|qW&m1OFF5+r5g|A}_X^=puW>YKKZF!GAkeU0TU@j!C%zU%M$@U3wEd@a zfIyN(q!hk^1pq)1lK9bxh(;>%{VFeG|KD&ph;bIU@G33`w|Ax7&wWw$w_xlWhl*pl z%>@_lp7vE27}?%yt#6S}N?n`>^+Wq7MuzzYliClaJF#FAWX;?M+m8;9QRq4$U{V76 zXk=tjNzF;pF+t=02CR-YCS}^}z;K5;mhp{PeSxfT&f;k!zEId)1S^tTh|-7@d7C5PE;@6&Fh zN|XrzKZ4Bj@Za*wN8O2-1%LK?*8?ZLKBw7%nOR67id|t5(8S^({+-i@>Q;D2|HOMl z8!aaw#VyC&I4SWgCq9==9r^oa^vh4X4yCDqAH>0f=Ts77G}BdX^=4Yo(>+cOnmMEv z8o@lL{m?M#*N6r&hU`Ym7!d&MIv*7E-kImC@yTB}QueRNab}=rhruA7zbd1-bSEt^r73n3mq52Od5edO5(3@@uMAjcEZbR?8U8xWGkJNXeJyY0Z0`yZ>qTt=fpXc3w&L~fR zmSsO?`|}n{u58H^iGE*t2)(6YRavSpTv8Yt1*17mh!u7rGCZ=v>vA#`1iPFM&_sxP zi;M3Q_YU55!kYnr)KQ;PJMC6Fbg3MhIK0WK<&8;=Y(g~&P*wys_~fyCDP$vx3=;v7 zIbcN-{RCNZ{rt0gk-b>8T|T*Rzo)VLuM*HF45s)vE2u1Lqwac8bfSRLYSLhpHK!7N z`MVB>L^i;{bGMMIASh%NjpqZCX;jvVz)2wxh}&upBZL**J*2HnH{8N&YLRR>jmcS& zUN(LN-<_-?7X9=^$t-jHG5MrNDRCs=-4VebGvlr9WW_H9jUGDoDAxB#MYSDY zN{~5(6OXy?f`YXcLWwdYl&@&4GxY8U9iFJ1*EM&A@7eyseZABsJ*_!x$}CZ)17%#^ z&=^+QfT*5LKZ-xq!`ouo?{yn?IOa?O9ru{J&1YC6=>feh3|w}_%lT**n=y7#{h&+V z&C+EtOAF)zS#UwvLgQ4ho>Ofhdf@$d0;f}cfLs8ExmW_L}gqt$%vCgsN7bY1x~p9&_%V|*Lz@7)A<%f z&nAjqv6W`5jwxe5h2>q|l=|LQq!jDhvv9V5DQ*WO6HBADZn8Xdd1mOpaQmdrh&NJA zMe}mBt;UwtTnQ>l^0j>rWEQa}VvE5AT2v0$rOaNJN_8tn)xH5}Q9;2b|EBvA3n?|4 z=v{~bG9kx_56%e@Q9`7k1X#hIT;eno5oE*!(V8rKx3^UAi$l;cmmEND7ot~Rtu6#VJ;quV>O$bXE9-$T8#by0vz1a?By} zNziVjlaIBgW#wjq|BGhd)CJtj1pr8KxwTy`jY>5vo4crE4xNz6cqq*|@ZNIKZG6so+{ zO%6gSHk^HbhC;8f#ejsk&;BLd6`sNrf3(>jcGA?;H7iO-S)Bc$OND~BYV2N*OKfR% zn)-TNTO!97EQ*TO7#IPfX)82&jnqpjK}V)}O$g&5W#eJZRTT;_;5u(Fk!50oRo@)( zRh(F1b)E|?_RED6d};PCP?(^4xyYc2!z%tcs{(St`e|x1X2iJSm%+i&2QMfnlyZ^e+ zvUl^A$T*RkJ7aTi%*Hih;megGRg4_}GQb6XPJYq8GN}ep$7~cZc20zW2Z%~inCz;b zO9s;992ljT9A+$Dlc}BcZczcXo%UX<%mHsM=DMHqh(KCemc;htzUX2kLLUi%D~rem1~pQb1Ny`TxtgDJ&>}I5fx3#XuU)3Oocngr zutvqR2c=158!q*pml+$!`_Vj%&2e9TiH3E13Eq=8*M_FiEP%XlqD}&Hp z_$vRZF2EgHai1Uik232c7=-D0ilOI295)-H0!nmt; zIp$?QAv(Gc-LyttwQrs*iy2rpzpnvwD&L%y#9R&jonPIraeMMPuS9|X&HRV8v7is? zsWE}IsCDov1ujhf*(BV=f|`L(LMwVYY36@>Ye-AU8midc1)|j%zr=p1Cx)ArqhV`W zPc$f2Prg=yD`Ay%i~a|V)UE$~Ni4=`lHSM}H+C@E3-A7B%k#~e1sCrgL+l*#2`!r# zIXcd~Et1&}aPWU<2k5?_ZC10qUZK>bY}CQl$VEN43O?oR_v$Cdz>Asc+!n7~6xQEc zAT@*iT%sAN)9V)nYdwfL@Q9q%hmZ=h6uD&Z&-wDTVv`c~FKzhbjLC{J^O~_|QBb>i zhb8|ju$5#7rFafN9#iy^Ygq5y!|R!-B!<> zF`xp))>_Kll+Ol#C@8%f2hT(=l4v$Fov9yRN*cqez4Ay?_tLY2PakDCx#;dY=S)vu zQ(HI_&2Mf{j;j5Lw@KK@|DG}%9(R9)jE}WIJApOtX)NdRRDMt(^JWAIy~c$lg0_;X zBf0%q_oQDph>OpZ4@@@{Cr?dL0!o5I>O-|PAu??iBzzW6R3ogAGO6tgbFp%UkktN zg1VXx9BC*|_bp{W5R*Sy93sQJcPU;Qj-J|KUh~Bu|FWJ}R-017B3%rQ_ChKbh8{k` zVnusn+;$srRQbd#ExWH%Y?Cic%VR6Y)Lpkv;p2Wu1V7*82D^Jd-P(bHFz_6THvm!a zkl0!YW0IU01`E@JZ7)#BjvOHo4iK5*UPWo+X82aK-e_%BkoZtm3on>n)>r`XEe!j+ zkob<1sA)Ehsbj^iU?SGpZ7_o8ETWsSsCm=XEmQKA>x^#{BX+HuE}U@Z$dx;aipu6! zqkFXR;{pI^o!G$$3~uFhR#($&)zkQ7Icz?&mjyWzJ=5ZW&>2^5o1^WhFW%(z^sjcO zAXlraJzs8g*+lG%-YzV8&@5Ykq*TEcob{F#9g#>dNJLPw9uFixexN~k8<0Y^LP#>s zziGFOb+PHwOUN5!Imi&zoxub&0}X@sa#QXeJ~=&bpv-^tO01iUom*7>Q_IFgqcm#? zt)y4r@qfht=y`~pn-Bm4*x%SWy!)LQ&^vvQrOYOh_?{N+n_)bapwg~7%^bMX;=8^ue3HGwPo1fJIO2z0RR4gWoshfaI!6K zqkmsZa_z9se?$?5_u(wW0F4U3NBQPUmuB5|M)j$cuP?&y9UcLg2+Tk9t z?CJURgm(V?vR;|gyJ=fCTnDBqQaPk~;^28VNM4)Q#a?IMKGa6-QjHZ>rE&VkY@e;| zS=5Tf=yBQq|HJeP&fyw+OYe2ytyLaXgzsPlJ7R1_;*RTeM zcs|+w1X0L=v{KOCJb7CBYH+=2{#K1|ur{$oq81y#RLOqp!BgkDH79>lq=bj#7zBXL=CWf1wl}q|D zRCVy;Q9^Aoutn^)5H=+O=ZFOkBzP!{BN)67&@^xXnGJWt-LD^xGPO#=w!dLcqtgRj zbE|N}5K0zTKP`4w(dDv&ml4s|T@Sw93$H;qsK95<Ha+HnKx#r>-L?q z?h|R>S9xUz+Gs_jFVT;_slCD^<(Z}@^dyS(Ced^WZaHiUB_DsF;!5G@%6Pjx#0$L<8}hd5fV-*^K+ zG~$N|X*}=l7>Zu%c{CL?fRY6`_xX5r+7uEeGLs4{YWJ2bQh#}Y!cmIa1aXPpq zQg|&guL~N}^Hc;>D9559?qeihsd47O*4D(krv@5z2ll5-EvhunocGYrKF9*d+hl|} zj5fLWY59zv7R1N&sbvx35UJwrcQg0LvLMKY;RLmZaD@P%k;$4|-*Nd~Nl?nxa8nKr z*^1iv0Q&%cueB0d`$6iqkmA%qFXr8`7yrDgJ40=K&yXyH<)L6O_{20%U##Y~6N~n1 zsb`y|@<{Xp^>^Q%r_enqbdU8)bGRP>lW^yV>z z{R4iAlkaK=tkK4I!fg8|s;#6vzBRcLU^g!(hq@mp0dzLkJhV!0-fEx!H&o*Y0EKgs zy}}w@V|}v$z3&+M=5cghTzRAQk==(|)HrZ@Jqx2SNU#lhg%N#{>1He6+L-v*)ENNP`Uk z=h3*r@|cJ$9?(mg@I5UjVx=l1y6@8P6{0^X z^qSjH>H!H_OLQ^yXhF{|tRh?!5~@Xrjun(h-&VGZ{b&oOgjM>R(5Ewm2oPT4j_+HV zoLk9sK_;QByF-5@{fP?-?={JD%is&OCl1Av@FR#wLQ}cal*c#&D6u*am-pbMu};&N z!8>2^i?$mVNx+>)TAD;eg4-(TJ6Pb9-U?}%SqGF22fdOPloA_;L@D&me?bYE{xilm zA95gXaV=Sweqt%P^9I(S@+&P$LM36YiiJHRLhWP168X7iJe2PJX%E&i-_XJ6z}H^SIpsacJO>u%Ujfn;ArNG^v#bwIp!0pHyly44 zi*+tmKHkf2r4iAk`Cn812&m|U(#H0_xM$baKt-f1H88F6EQw50PXC_+D3;wU{QM`P zsK&6XwnshU*~Kv^LK6chUU8~{D|937#<-v`Y1=>mA zO5prRAA4r(=>)WdGE{q6B3AOf^pNJ{SFA%ZUZ9liX9Uo%zO!Im1+ymujkx5aCO=rT zPx8;Eh>)E;E$*C2!HcNWu?JTCBCbh&y!P!|f9O5ZC2uS{iHwkB+R1+A#8hNiysmqB zMRh-rIkbN-tM4Jtzn{kEA~|GURL<@EYnDUfviqKHsQ=%wNQKGN5Dwkz3_ z)G^ilk7iBukK$*2^3%qw4JAxu*oBoqitbQ1HBexSVIhv#_1=`WK}~+xVXhjgM|5Qd z3S=}FkpRQ8(5`3(mCSfH;^gJj5jB2cf3L4Z05WbcG5T~?DRk;kNb{wJ=&>C=e9L#c zm%59${C4=Bz#!zq$0kepH37&ropm-c(8oW$N|yEcRV27^mby00aif6qlQtEYAwh$D zkykgtghI~)Q#}3XP;ZYQ>efhQ_b+jv zD@faS|A{v6eYApY1D;($LuYN0VLtl2$Ncd6b=!O1&QC|AK?)2=Mq{=vhQxO5@`T27 zG9)qJ13KiJ>N`)w$J(y4H!&7HGc*o%tSnc;0 z_V*d_*G1R(?s{Xd8v;8ETb5RRj_qhJ-pR7xJ3~bZH1Ev2-reJzioV3mu?=$SpSy*s z?uRtoRbie?L%j!%odGHK??f$;e_XPj+ypS>{^1b{q_61DVP)Ib(Fd^Wp=9w)YM|v2 z@}AL`MPF}!a`b@j49S!9G*!QG0n;KZrBaD{zlemf*ye&?q=5qBpEb{M=GZMap`Iq| zM1a)k$d1ZMFo@wzxJ1gK|@-;EE8X9w{Sfgj_qj$hk_i4A_^?{7gga6dIcI# ztUQs1oU{`ss~lnOCN_rVTQ#wW{((Ad?q&FUipW~aZt_;B;lGZAZkw1=|EH&SdV>>6 z(1t8g;* zU;QQup1&-7a%(*sd^a#Y6TNk0{%}x8UueB`HC@PUMp?bjOpNz!cO+Z9#i;8u zzjt16>Q;Eq?(XvmGT{0t{sN%VQmWqWuWco9GM_+Zz;$UA#ixsDB|fbbs4>WPhk*a9 z5jGC@{(dV%(L<(W7Dt0YocbzQG+%-?fS9UGoEv}b6YDFzFOEf|0xF-{NO_y1whQW> zobK&Q6AYGYU8LS!@Hs9^l<5l<-DJgOiJ%C=w-8^j&J#}WOe)gyKRRribNjRN2}+Uu6sa=U+6;Gr3>HASC^2L51tA8!dNk4qGn=zLlA9nJ~^8 z!^M(KRt}$^S@lVt4*32A(yca~%~irQ*{M@v{p_5+8J~YlLF%Yuk=@b7QB6W~+~|h% zM@M37gl**Ys+`&2@l!E<&dRt_***cYGJs5MU*C*$hBmKuZ<|sMVBL0T1ki~d>d>^x z!M(^qQjyp)p4tjwr$59%g&}yn{p>=rR+5&dM?+m(x<$OAFjpJDHu12D+z8Vt=i+^S zb4q~Bq@{$f?;$9F_txCdHD_Z&6-x7dAS-3+b+7~)+xyb@`)qqs&=h25jKtH{i~3>a zFJX**N!qIdd(R6;Ycwlow+_g9BqEw@5^vo1J~T(3e*ghia<c+oDKm7X8i&tQF@hQqyjg&(M3NmuppC&CdU#_mI<+P8y*22wai|C!Y@={faErCJH6s4K@ zt1=&qeuw6-cqjozZQTPP$N$x>+Ntwf!M^6nAU`J+NW>Kl<1O6I3U@RZC& zMcR|DH}Zd;mpqQF4{3sCdDz)8&Q3xsKRbKG)h}+te_jo`zX-r?Q6JA0O)trLz3t-2 zMaTZuPrZUtTQ7{bF_(ndTvk_NBuJyiN=cU}y+*JBVV^(KUHDb~xmtm(&Dko1Q@7Op z8y$jUXp+tik;WGpVdWxaKcN0rQdPVAw;Ihkit5q@3R!wbFFTu3I~@J* z{KkdSYFLj+l+1r-Uo$+J`dEM$wFL5F~GB0PE(bSW_xyFs=%jgnP zda&l}%??Ad&Gn_}A%-r}J`t8kl&?1^dYM{GC2#OzrKQDwacwAS=Hk8m@7ZQNZ@Ske zJlKL!DRJz=jnrhz(Q&1&+$|`4^^WB*Ln1uRil^axafts913}&ep@M9W#Rx>O2%y*y ze){_@-QS~F*?IX*ne`AEW!M%O0`bBTJSSy;?M$N9xl?8H5-?~RC2>OmyH--ku{Qqs z)LrAh^SYm!1(j~MNU5#Nbah4_ucv76vba8n^sKb*W56;SaR7AwP8WRPp&ePMQ_HQX$F}GhD<-c_Vv=^;d|h(i zKv4~`db+Z<5gBETQ=m?V7z>Ue3-uy3BWx9)S>Um214c`H#)lPk{@6P@y5?oY`~-W- zh715^^E&Qrd(hglu@4`1jxBlWU&iP3*=U>its9x%&0$t8CF9O{>NM zDYT6giS~OYzYy(WzPpQ4JYJAN@+=)rm7R)Uhh=ov5H~y&*3`Dg?aIYz=kCGf_-{RD zJLs!VHq19S=MGMlBftOAa=g``S{z>_J0{X_t3mL_yHfCrzj@%&927=+#e@p$iU=z-wx{rUnyVRP_c(L1K{dfu;5o6B9MON-|>a8U$?{f zjTu1IFLw2DEXuvhds-M4=d>&$S@e^|_nBdRShaFC_a;FSC7P+#*{0K8i zU=+fH&$!(iTA*{QkLZ;4-z7@0rzlhvnJ&Qc?UepS-0zw6r_<{ANfk$S1*WXn<;^g=%~f7E^h3w7>&z%-OOc9VCxZ-HKvq zir62(qc6d_@pVqh9}@Uh+ul?z=#e9ACZo`kw`Tl9iH|=WG0={2)aueM z3=4sg(N8k$7RQC3b_8{r=N5Rg`G$)8xB58z=qo9W_!r*H`#2-7e`YAq^S#0qYM!oW zM>V`)zi}#jnmTcP7oye{Fhj@!=%v2+t7wEBO!thK&ZHl29+%M5YSW{q1ZT7N$zJRs zz#>&7I@p-OL&|olM1RZW@(8xR7HK&4i++!6oE<5*q9LPg_j;Of+*^Q7@FmwhXvs^( zqezJ;CT&|}D)ozk!H<36wDl^{WMUMYg=IFh(}n6aZ#dB(+O~6> zwvdscfULQ}GxPJ`>|xry^m2D-4$0kT4k50u2%*IvvzJoH^4co^JBkJAJ4uo3ZEUC3 za)B>R1X#oB*ogQfypRq6Qq~oh4Xc@aRB696=1*UDUeQDYcEOC}T=k9l56p16n^;5c zyC2}$M*%xB5z+5%xi+^xjY})+gVs5sGTxZdbw$qi`7s@S;$u;1rk@r(1VZC6f3`LJ zN%=mJ$M-(~#6Ua0%IjJsCT2K%<|a3HvG*>`A*#%QGG?uC0UUYL@U+eGs+`y>bC{72 zLZ}~*SKN8wm18`C%r|AM;ahG5WTBOZPbtM=wJuJGf5x(3-Mst2odpAY&&I0YQ{Dfx z^G`V~h_aW}90_*!Q5 zl{mQ(0B98ckMA%4cI`DbZ+Q0n?&e(^2m4@-N&qm}i%Q#HR?d0@2jn#Gav`T0jMt$! zcc>C5NP4s6+>_@}noWIud~5MFjcf9SAMrN$8>>>)x?1nP<+tnM>scc!t)Hmzo&o@S zCNi_Qiz9&pwTDhx1v`Kqw@gkE2XdvEK}~M|3PalYJakbvziQl*u@++^@YWoGo33G> z-Xfnv4J6D(S8QRLYEW92933M9KJdfn?`iCRSFNKs-S|uqZ<3S|-deQ$XD3`dnD3lu zvKY&ZCILW?lxpYT8DrR{^6XS4o+}&nRXL_M0sxH!fNB8%Yv?O)=f1^X=@&j4jwkQ; z1^`5ZDU-`KT)E%}YcgMlV&o;87Sz(Fx<4t+llS}ld!q?B1OT75b&z{2-B*^<9*@ng zkxT<5`|Uj6%j}cOaheL$1*^73sem*oV)p`So}FJ98O}p1_hxLLu@PwZ2(0O5zOlT! z-f=}{U5R!_6Pwk%j^AGbI3WD5vC8MjFdF+iC$}5h0=wy8jHlB*CmjcLI{#OB6vGPHs*ty>4-bQmkD`Qb> zpWizG5DkQc(mRjl7_?IvoQrW{4-HwSgBpD6!d|_#LTbixM;X@D^969ExuyK6L@@@{ zm$aP~KU+{>W!B@0P*XcnG>y(D_NTMwaip~zE_uT!dXohJ$g$(Z!Vm!TO*Z`K?Cxr} zu15VB`+aN#-U=h|+&i1I6rk#8&`-lMNPvpSTWsJgY2^m7ynT;Nw>G zv8|o?|0w()KfY&p^1^OjXf)RC`u+D708|i|tTJI<2OMrS2ZWy2Gn;wvo4Fa10tiVp zsV|>_)r-2SYiN_lU)jw^Vp`bEoW5>b1-+9kSDoF>&MXI&yqMWe`TQ>pkCyeaFEM38 zkwc3<2SgEpRzZM;N6U}$%i+>L$TFT|ZN^5Rl@XA|Ozs$FWc8L`eGSLk5}&MhE~Om# zZr^756N;=ojOD&K0Em|ON)!bRXNNu^8{@~8$sc&2G=(4OZ5-n%K2}SZsF^;ww#r2h zUHBf6XP1gB#U`tGMO;{w4#Mtf`TOAp0Al~X!{_0TcMnVzH+|h1cKE#q02Lqr>SqNe z_T-sSEHPUPAn-WYTIYk^wsCTKY0bmR1SKUY+fHk_Zeh3cluq5&baSq;d?3U9ZMuok z{MVu@o$yA(O`HkKWzH^7;RlQVc6f4E0^ZkkF+*t%DES=3fB5b&bOU;cM6 z5r9?+fKlIFUwjt{+1>{aWp#*cbYJTI-nNNtFr64}`%0Mox-RllCXuI?y>}aqRia7= zv)cp)euU;g45y`CyS41{;On(QL2H(BiZOhAD8?=H2UwQn*vkq`>Qr2143A7ze7jYH zqb%o2wvkm22Qz8hc-~$z93&OX6}P|?N5M2cfKlwsjc4urFI0yjTj|f(K4T*=5+kr; z3GebW7Z~`TdW(jrZ^EltsrfryOZiV4T9j4n+jRb4WYytjV**#a3j1FP(Vcf86$L@4 zUj%k4>Znp4T{isR7j^SHQ6}8IldDoifie!Tkp3*rOh|-#o*X}(r(Z8Kc|wVk{Fvfv zH2F6R0BV;1B^&^&#vtr_Tm>*0UGOZ{fe7ip$5RWg=occ&csF0f_O7K{wIGQ0|3pASggH--?nrz#q=;;D<OYvyY@Vz86-&Hawx~XA&F^Ef&7@pMN z{@cYFYf@Jf_*(~JEWU5~i9eOwhbtWrzfMPN+J{3-9|tQj?@*{X2#7mJCdWtGxd?%H zH27?oqIq(RAUK$(Xl&o1909RNf8kZm^bF^TB)EjKXHDj^Gc%;&ZYXeKN%4t#{R>t3 z4s53WKg|E{-s6ONolML!dCFo)!NCU3P$Kgy3nRlut-^Gnb(8lkeUEZ$8W%?*u`4fQ zx|+aLYnh~cl$E0tDRy}D^_1zGlw-%a-7cKpP~v^XwaoBJoG#una{bMQ|CME%rx;%f z%Zgid0IUG51i>(h07SoQ%PZ^Q@vMunR-U;r0MN>)wQ-+SOE^w>d^}a#KX4+vw-ks` zR2d4b>gGdO&TL~>Du>#myM6zn0^iPZ?A6_TEK=$U-4kz{U*N|>X)#={Uq3D|x$Lo@ z?{kdum>ky+$N~Z+U+8IG+_{?vKYDE-Bs8{-jlgIbfzTrTJ!sxXXnJEUTNZX_vj|_+ z&81k5Zg4%K#3|)-nKn21%NAJU{!;!K0)Tne@&_o!tH1@dvic86e|LAzVD)e*;7JMf zNuobs18zgJ03c_%x0old%N#9{#w-9J&Hq5oomv49rT|>uBn_Y_Pwe2KbB0j0bPNDw zdc=pWk;}<>oThv}l!~|m5OCK6hLv$7xaJBDvN=98M1n>;Jh=9PE+@TQcUxKDeM&j0 zWw%*N$!LDM=t_P(Qkwg+a#-^PCNYWQeK;a60i6W|xa*KwV8v6rdwBd~!&K$aXsq9C zzsr5->Ou|W3g*o=CWGzo^#$IWQ@p>bw%zjZf^Pn!(Xm4#v43hL?JKqO%J$1~H#%+v z0IbgqO0g-N7-t&Adnun$I<9l9B0Z+$3J+YZqO^^Nn^`wUpzO<&&XRX3$*W8^v`C zeeN0QeEQm}+1K|u)krCj4f2RJK|rV`7*95a*IyJ>FkugCh3WI1gPEV#_`XjmCs6~~ zsXN&*zKqdcJpiLl7zEP)XpW#=~K6JlMk~p{P4mIa=FW|<^ZqEUkz|vRPr01o zU(%(qoqf%6Ea30Yh*W)^P? zF~!Qk|7vhXQO!HBaj$|FmGHmiRi(H|%zL!Q8F38(3I8kDEK=wew)fe2zVgSG>wwI3NfuZ=0 zjsbv?cmivj^QQ$SZG%5XaYT(KTXS&T`CU9Bze^py@AH{v(0bO(Rf=EFFYvua?bmiO z(}&O1ASCWYvu44S+|%ed!|}V2fNUQJc$&jPC$a%5fvz95BLP+IYk>e@r!j0066kAl zdFj$i2f9EG$Mp{3In?s2**|AF!5AkNBP?xUd<~rJYji?ZRL1gBPO<)iZeDz=gQY>- z3$g4y%UaG$vo)7WBj57RSww(Vbve$^hwAo4oH%Xs`G0MB7{x=z@D5kv9NR?Rmw@@d z)o7M2T*5;m9sODMMP_x5gI_s3UH~i&NQd3n^J6^UvQNM zb+>O77&le(g*q;aJxa4|{*|n6bgbd{T|%j=V6wqk1Ro^=CCSx&Gaw+u3l-21U4xJb zm7!#EY##6N%kwUCb;)mu?fNC0@9i3Roz^G<-HB=%uL88090B12Nt=vS?#_n( z!7B=uU)aSjMg!QB)YbBY zAK4@ip;BBb6Ir{v=fPDMbUETq-EH+!{=yoLs?|t@jr0WmpZQ;K0wJR&@B7mNQ@6nB z9?UgqH|zlhZ&p&AOh~78aD2(9?s!%h6L zO+oRMIsErqFjCU!)v5WrjP)rVCzT8zt@~~(Hcl~oHA~s*>ZN?#8cwO#sb&a(F#xa~ z!%Ilre)3x-rGJ6&&$>n3tZR8dhGs{#d?_b;esvjk8UavdXL;P+#P0FYiV*qiFc=#oatL1pRFJkYPk%fBAS>*jt%ud(=oH zAngQkAW$bAP}x;0wv^#%PxFc`v7>YhJBA{!*YaT0*-?m3`3<}sIJMQ|Cnx^sI4*)< zxh_i>yVY~Qnf7ypKf`Ityt79?Upa)6wk1zmTQ;jXB)Ua?=i*rd~z`InQ5126~9?n;Jb}3 zUD6hPB`$9$ldRZiOI*M3YMyR%%;ElBQW?`>p4A*;V1E^gg}8oX$Lc5Z;C_WWwW&!I_7^69h+c8Ju{`ELj_Uo z8`8wgvh;Vj+T2iJPT6vtRY7fkGO(5A0H}r6;05W!;Q|2Rw`j*yp9k9orp5rka6M%$ zoJUq&xraGbYc8oZxhu=_eMP>T?{Jc!$Fy*odb_;%>PEhL={M_>*aZ2n4unVo$E`Y> zRlJ___^%7D;H5@wN8)!^jbYhaX-={x783H`*~yV*sEXqd3IJSl-1u zbFi?M=#N!w_HwMXCH|QvTE$PRKMAmRF}7$iJTb38&#bDmN!X zdNoIShEq+H78n8$AZ3HwEh~mv^SjkSw#)EVZQzg6R-^S+_{sC7P5ja1ALkNS#m4b@ z?s@-ZyfV^E@m9yI)%{i#INB;c*)Z%MJHgI3Sn~0&HMWkGC{F%p{-vJ0uY#$P25Z#+ zut)Ne7kBY^qvMT+-zD;LGMrov%Y>sorLF#}09ayzZX^IyPygS6 zfdm0CZXV=*_Z(Q>6!%UT%=nD~fWeI3FzxHK|FvWAN*Rx!^Z}cs1GET7X%1}|iqGEf zogRE83lVTl7wALh(Me5($uW zz{K%fH9ykIRGOGS1SJLsFfnZEPB zMqjJfGg|i(u(_g(lRWr%Gif}dcx_REYqDHdNGvYYYinU%BL~1R&p#FIDg|DMyZS}P zmU@2;Yl}y5{hNj3B7JvK!Jg9xa8kkUISnWHGy|Yo_P_DRIzE9nTmK)=|403C5de*U zc!^&hn~;ak@*E`Fi~)dFMr{Q45d=T}7%uSP>^i4^Q7PtxW*&p?rI1dHEK%{tduN=$Y+oo{Vpf9+_0pz21<7Le39q$y<4w3L|Es&K~QrL(f=xc7f zc*)2KqtqHV;YCdIScGL-*0Ier>DQR}tx%kKDM+g z7n=3@+TBjx>v6~NHfy=STBbC0e8t@h3j8R`K5Gi>Zxnx5t8ExLJh-l=h(cM*GzHVG zxbMmRNNgenyr*pOPTz2clqzTG+h}UD>`P3^?dCY8osy-EYV*ZAkm%Ais0St%)xf1jVB^ki9q z=^b!IGb@zYKhU{o+5R^H5Rw2ua{qGtTJ`^N021{%0ssnj zKH#%{u+RNl1^}$PilfS94nhZITsi0|8TzcDFQ2EUC-v3y_w3dk`JrP`OZk#DA&7D%L>ft@K{u)e*R_(H_NrGzKSD^;m^|~lpDQ3O5SbDSF;Kztysbt+T+8uj%x>& zX43!wAOJ~3K~!OqqIQLVRm>3Ea)}C}c&7g@1V^;66U#ajyFJ6R^Sk*?qiYz=zpwZr zGgJp}*PxpL0L`lZ)dc`)1i=15D{k{yKUnV2TLu8EzJeo6p2fh7MmcatViD%5&n~Ok zArG(C>`-NP;yG{Wt-U@wypogIEKitB+1Hf&@{|vrNO|o>{J|ox!94u35}iGlk6<~m z#)>;CtFC50e9p_@cir&$3bo32OQ=PxVdZ~O z^e7wrxBS~$dgR}_%x*K0p7JJoF8Nn_hl9Pm>~oACHOK zf@^*k_~raAewbx{=L=xDteG@G<+v8#xBQ|*b92^@T9!TybsG_FSqt+F9FAtcS|rUz zDFGpI&M$DwXpl*b#>^Q#nSQJ1)Uj-G!jF!Tb;U33D?p>xhS0{B0(Dr>IlW+9fd(#{utKMqW(K9E$Rm}gD3mfZq6ECWjZwxYP(+W)`3 zHvyBYI`6!H@3~dIs9QVQ1!7+$Fqp*#uiyBX$_bl(db>H{A%l{v-)dc~Y7ym_lPyavsJ6cnFXjcVplC+wT)=WTaQbSb%t)ZpW z3GGG!jV$fzrSlAhHt%Po=uIj4JE6npz(_xTm|oIjEe{(8f|}(U0EOB6l^OuHNPa=S z0iaaI;bAr``})Yr0govIK<|vkEt3h}L&&=;DW@s*AQXP?U15%t#v}Eoh8i%Wu=I-I zfN>lM4F?eRXR_?u0Q+n0HBfGA+sB8D<6VOu<|tw3B&7>>;+g5Hs>OANCzsyHKbI?? z+q=90Fst1D`Te{*SGf0@F7Bx2`mwy`zAoB!!ORv#6ciSe10ft8D5B;JskG(RMv9wy zfE2@0SAcU+jhrh{`2B~R0(XD0dGoyoYK*r|WmO}4k^b$=%$m^3@0JAQDIw%a>i>19 zHC=pMq&N()()LPJ)8F5mKAMi12$SP*!$xQPY4@n7%dt;X`CE4B{ndMs%<|wzyNj0w zR`T2^21@(0OijTFEsiN!!$b+0WCA+%gpTu}-WD7!&XDwB6d{47rK$tS@Qa(EhEV*D z?GfSUF7y=;{jHkvKfO3VhcH(HI8^q3et+dJXm`Byp>DQSBGI!k9DY_L^$0-WW!r8n{S<*so}H@`Cyieir*X1Vv;Zhkl#o|JO;Rc=3h_D-0? zECcTlQ#^ZqsIY()b}VtMlkP!4dF4)D(|#HU4cb`d>|mPTawf{p|s!J!xO{kXgrPFia|v zY?pA3HdS6Cp8C7DKtJS9cVx0-MI|{iYr6Q<5I|uXE<9<#VM#o~pCSfMRCl_9jS2kP zDn@{^1!}V#dGi^+J2Vk7jIW4WsSHs9z=BWoWR`7v;hYOSE@EVfA7_t^oLUXl`8+Ze>N~!mo09z zXXx>4 ziIDcMj`N&9NG1@LejMx3iI zab+MhhMzk1a>fICg*btSuls_h{Vm!ayM^S|{j`N4EkVc$Hp8hV;N;M9ijjdF9F^>? z?tO)n!1`>8dlN03Vf9|+wZhZCel%SDzq;?$sx5Z<*K3EY|IeFKJpeY#){(-hAJYba z$}4tbUg=Tl2F7vf{@heEfxeiG#+YD_f!!`-w$atc?O zC?}wh%wrP5IcgjTyyAp63bS~JT&wWxk}hs3cQ3c!z=Q#FYkxWBbxV;|=3il9sLI0AE$|i1@Ii;bZx<-D;5g zgGo%O+&^9cS7x!C5Hb9FD&$|6R{#Wadlz3sn3J1FJrJTsg)pl>T%~Sx!%Q_ayz;m7 zIq}s*FB^sY#pe_qHu$Qb-T871EC;WJy9*6=EnRlbhZnSbaK1G@JT|)=o`XtcT(7jx3N6c`MeE0cv+!X7p*|CT@fj;N^uOgnzdz_}hIOAjFqHOLiAXCSI)5u)ru1HgwA zg*$DQC$b$pyZnoT!FY--`1X}_=eRn2_(7Ny$Nha8iawJH1Ke+rI8w&3J=C&3H3FP} z->7%s*SUP6{PH+)Y|3F0sQ0V&*PNbJRMLRC#xgxlCM=3#IwAqr@nR94%VfCc>3~i7 zo*|FN;+QX*^lJ&KiT{uE^zV%X*m=zep_Y#e1Hc;r*ApZba+(o7IWCQWqYrvo#G`QC zb8X1_LW|qSpl5MG5crbF!WWEw5f`BV6o$PxUv^f2Wi{{{WrYWqb#ZGY-?KY!<^$P~ zYbv>Bn7&7F{GVE3U)N|&RSl!hVCyMNu$dk~0MKrD7rNNpghOC1m@A$?O=) z160+5%D8BC7atbmOQA;Gik;0y6iXD;zXyhcO286i*^zB$$JCTRnPo3uNm!4(fz>zh zUU4j}WN-O>hXV%60r_Y}O`Is}6|8Ed+-cc{{y81=p6Yk^4`V@8a`Mlud8n|42i3~( zMB4#geq=&8wVc{_^`(Co%opg9DnvM*2+=-k-PZ;8y-#k3JjsOte-!Z7axBd zX3n9*6Z!}(HcLv{ITRkjBwD;zZieO(^t=3ZEouk|b8-fW(OQ4?5IPR)&4?>=eidf; zcL_Kz|Fo-=***hbZ<(Hih4ULY*Q(q{SdE-DOS@TLPKl)&dF{ff8TEJyEk=)4d94)t zpZ`wh;LutaR|VLxFF#1k(5mzcLsn8GzY1R;cX_4ca{5eG+@896`l$V zk0p2VN1MH`l|-Bd;NM&WnEke#iDS2K=7BnWID*+hoD`HYzwI$39U zueB@|gHil^A4Vxt`RjU$#s0O-(ZL!`5X^}*x864q1-DAzfqLeMjpUST&iT@~CBo6e zfYWLNJZh)P*6RUZffLp9d)yE;%;I;$FRUSBEJ^Q~5=2Y#B*6@q<&+rGd&H=t_57}t z99t9pLSD=YKPrd&q;Nd%-CM}4tZ;gu@{U_2+5dV;QTpG4$#Mojj4iOQy@!{Jg@jA) zIlAY^XY1-BabCcALC6P1m^a>~AQ4f@3r2YC>MowwFQvwwFHCTT5{+OzNR4kk0Z1Wx z9jAGa3@vNXQXfqY%xhY@n6>)Xnrn0)V zi>b+gQwTXn3>`zwH=Hrx6{>hR)}4W{rPuLtEpi9c0}#MD!^&U?AO4USL55z*@(hMe zOS{=W+}JT{-sDi2oe<7&_GltovFnCY{Mx?|pd~lPa0!j7{KJCH#0HG0k~EfG33w`3 z|9<;Tyj>iNt@9cFYQ$*5SaHyqGUEQRGS-*18tT8ut-07F%);YG8lTTF7@6kxc zcEY|uxbK8c9(~7WN0#@Y@Y(GFr-UILm4g42oBf~LYi@iOaxfvhP>mC`@JA@}uQ3AjjG+=DwN9`-#FVV52BkaJG#yk~6?IgjaozKx7^E zq#WN`-d#C}&|P0)K_<&*Ybj8VuOPgfaQtI64|^@wQtPoaPMh4|+C#d<%T)e31HcGB zvr%$rQ4fb-YeAMm413;z^*K2$vGUjVfhW3&zvtFkwkerU{D;sv9`-1rHcrvd3L?X~ zPJGO}-B%Pv?}DB0OZ{lS$8uZb(YI(MWs8|54pPYGVp+P+_M3W%$-Xx zYX_flmNN!W_C}>Y=i=yyOM|uxyreN%b;h<#=Udf0Si1i;H}QF~wfC-QVq*3gR##dc zsBSv5kOkA>wMsx#M*Ci_{W7y`f_F)Rse^DG3KlbzF`%x;WP)GyrFo`WPk<(r&YZ(i z6S;~9v~rYv;WY}UJq7N(qQt4cl)Sa%H8GX9Y3M}50;Nv>8OzTf zhaZ;8=csmVF`3pGR#1jk8IJu==O`Bc&$0jI)==R7SI<-?oXq-aiNu-)KrC7BE)O^# z#|LT|yRP=(snvDPu*-$~Yyv#n1L;=7;usSlKRHlQ$n<5ZHNfhs+;4wLE5Y*P6x>^>a$DQYA8U5A$?(wbfY-;m)_y42`XsUhXJ9$g$G{cp zv_var3^>CZq2=)nu%*%$-I^|@_(W2B^t4!N4TYcQDXaZrd7xG~9BQntUdg<`utWv=RK1mhM-U&nCm49Q2hdUQoE&1_Py(w!`TJBo z%cEKr>UDCF{Dxw#|6F;bPyU0Ci7?w9MW0q!ymS#i&yYWJrZa0*QgNTdqPf3v@lJ%39|Mm zAXt9#U$v)ytqxk;J&=>25*alOfC6dV@fGHUS)ciQVXd;*E4d-{=&Nqmz_5vsCnmyE z`wj0D%LlzH?`TU1%yzgeR^E*;vUw zZ|mYh443HXWw<#?*6CaJ*$fX{_chNJSJS3Y*x^i03bUMH%~5aDaEd=)iNlguC;wV7c8=>;o%hgU0=UGed!jc-w+fir$$RM4uf*|v>v-K59@lud%hGNPXInU3qA=m0=Bou9TM>^@GG5w2>v%XR zJX~wAr{M(PtFk^%rL+gackI`@#DzD4L@Q?27H5t0sm zW`%opZ{_Y!e`gQ{Xh}JEuZrP!oa4fhovZ7hNpIh)1S8z85 z^ae?OviJsemQz+$&f1FgQG~X>KIVrZZ#9O_Vn_Evm%p!7H=K?0(6>tXqR;<93Av+O z<&U~{wa(vgwsQmFo{R3K%#(jk`Rh+{yyzT{s3)K(?CcP(f2}+aHB6j0j866mf6iz2 zYqGC$kf{Bl$)g(`YzWm*#AESahofBSjmOG}x z%VQb-Q_o(Grnom&_N~3h!FELBZ2M9K?QJBrawE}3n^VeS%S3BP7P|klmR;95UZ}*V zFO+c802t<(`{CD^kxZKqzU3B@Gk0)pAwyiLv5S13ZlAziSANbb|50fQU)=i! zZcHVuQWsVr$qh)nvZLmxO zU_dwL*)jJQRsKa1|KeSr4!j-f|EDN_O8B$im-)p?Th|{to(v36s~5uxZ;_DmhAdZ% zHy9`XDGQx~Ifuk*(^@p+jOS(BQQu^?w z0Z`(ODsWKC0X~ZG)^Uy?IM9j*8#h|SvJbwuOwOk`$&5e9S3?DAG9;+`&;X!BF*glTw_3A`q_}jropcZPePuR4Q2+8%YtBpMz47O_(vA6@Mx2x-Q>1!GLJsaPrwOT z>%nRg7$zFUrVvgm^z6k-OvCOlrGG`^ z{>8HX9i0++BhK;wJ=zqIOAQnoCHlpGI{-ZC@U*si+P?sIv{ZPg8|IB3g(i=X0vopZ zY7@uSP`G>9N}g%hg^uyUng&1_H$bzY=Pcm7FyuXAYXgf~#$AmcfvzYT5c`JIPqSI4F7dFBuFRh7RyEx zuyJC@rYpMhUY@mHdzIs9RYTiC=7kAPb(*~9qMVLWM^Sw_CagF9p2?L{e(&o{osi+w zz;UK#jaRuOf0+`UiQ%DTE7&-aaYlNrhI^*Lxxjl|;PEgN?$#6C^y|T#ksE7uYq=YV z65EDV{)(ij?3)p7Zs}Hq^7r-k!aYg~mYZMz zrwS|@5DFY-H?g6l>lqfmp|n8i*TX@N5gs;Qc9CYCnHkkCMQ=wWTfm zXxU2cEhS$)>AuzQNgNjp*Eh})=rOQOk~}3@e%*-p1K#buhZ!cpLT6dvllBU%0IMFI zycSqOC6_|jnT)W^PY}!0aw;~8BJ1VGc7&nh7j_{pj-|^rCTzJ--~uC@qAqZZr`_$B zgFnsY)y*p!rgQv+BBgc%-2S2GcYllEA(D#&{NxL}I_0l!fY+Vlfgm`Vgj=lSPt?h+ zc?iO3TFyJnGp)st&pX2gqse@e-*RDs z*L3+8&Hp<9gP_Kn_CP@a|9$BSHkBG$y#U!PpDoubp|}Xfc^v)+6T*XyXb9-Dc^;hn zCRh8rMdRE9G=6c3#P?ka4TQqp12FvyKOATgJX$V}dZ~L<&F5M*k?rF>8pd$=di;p+ zCQ5Lf?&)s}PW?x17w(scDRWTkHvm+HMknpdOU26lAXO^=nDuX+QiJCfGl2XkUXarg z&4Blc^*H}SHXrY|JRAhPpq?UYd4HfFMG;eI$$Xc7W66-l`mjM`H4RGy+%Y-imt&da z*H}U+y_%*0P+CSsduV-UkKvj(>1q`nYjU|U*ea(R&CB-NkktqmYAjKP$vF23HVJ;_ z0v=fUWnWS>?2BYwH-BL3nG2xDF~{b<$=p&37(;RRlZH==LzAT{ZAW5uv?nd>UIINM z$;7R6@>2bEZz5crgp;j;(v&FU>mRRJ?4V4d^m{NNv_wyWrq7vX3 z;o>*3^3NacnH899VRGCjA2WZy6MkF_($Lxs|wg1Cp z{cBFcTteQaNq$3R?)|BEKlNUU zOJ4FHh$9p7{MKlG4Ib1{FiXyP&Kn7m|{#W^&tVrPXi(Agm*e+x*DSS z(}VB|AwPQxem&gFf9=hjMaX|D$IU#FjXUAzJ7=@*(0isw z^Ps}Zk#)WLctcI!JHlhBkY6>@_pV-huE)5gAL4qx+Nh-W~h&Hz~|!B@z7XV`2lnMA@HNtzGQ5B^n- z^7s3WlMS8Yut<4%Kb79sO8Uo1em@T#>zAz@y%N(();M1JHVuFp-6{13{OIp!N$>F` zMpqvT41;>sQ1-Ee;YXqHesR2SxYN5TLZx_3_ww({zfl~X(gX1Xd>&f@Cw-*%McDSF z<*!P)qct}{41eOOk!#SDRLL7pmM4tx^G3-+_PG8tImsB_Wo3+#DIWj;AOJ~3K~&^> zjg6j7!4ZCS?Ke48=aav(OD=GR_Zr99p3o+y1|I1x^Ut&4c}3eBPWgL9C|u!Wcs4>m zMg;~yk*>P~;m4kfBk%Mt0mf*RPE_p?g)WAQ-CGU>!q2kCCp9{K7YV$VJUHn}UH{Q^ z>~>?E{V#@%ZZco(bIzRZAX;5<5$+gL+Smj zYoE%Q+0fJcP9D~cFN9+FSt`l>*MH&7_;|sKYHc@Hc&_w1%Oteiy{wxb4yT-yyM3+W zlbGQv0;+mUlu*X7A!~Uc3)`+==}%B46RxV7tIUhk5STHaiw)i#-0lHj%J2$kEILk1 zOIgRB7R!@4`r9(6uBe*_Z0e=MOkiGCxB~U8)!}&&VN1&L_igYFg%U1y^4EnM!vY(X z{SDtnp!~gC+wp*+b>@`6vm_IS8P;*B6lVAje3o?SO3k}DAv~Ii4G5=Hz;Ko1aTAoQ z{PR!$v0c+o8dORQwftNSY9s6v;m6mO@aola-s54c@vD@^!QFYLimn8{i?Tc%!rdlAt8L|dqOs7p?tGXzUk?rUceeBFm7hC$!t!N-d-$XXi|Vr8 zcu-MN7sua~I)&f)b*5(f_%D=VZ>w^#u~*mS>A`r8kc1pKK$`Ns;ie+r+h2QQ1`VP*WwSi}TO($d*ueCL8j2 zGtOUuYR`UH-e@0vDBo;Zt zl_g=49lh$d6U%+qb{{PtQmV{W!>64aOf_4pb*uZ+B)E6+3f7ex^Y#_I+aU8~52n&Y4~`kJj@Ea5O#{@#dz7sT<8A+#lgGy9c)WJFx)9J6xUsrK}5l|d5} z{USi=OR0dZjgn7O*Nu2-KF3UvzIJ8)@Y*c(YXR&LubUbe;EK*6e{u)rf0b_ACD`}#PLXy+rj3p{p%^I%0fo^REh{^RR* zi9_Lo>(b&}g_oV<=ZE3td2pmz&tDf&4;Zv*0MuW`L(XvDeI$B*#s$vtcCG1kj@D6n z`IX$YFYSU}qnZ6F?p^#f&mcCa#c;HjSm7gO;UPHo1g)$JwzK)FZM zC3sGF!+qCwv9@qd_0}Z}i^WEWdd6_7g-eUBt-_Ok(eCP{GM;;2gM)L>lYfp?Fb}1$ zfBq;`koBi=!z0SJsER%n^4#)no?3k)i!rnh0B(v9FMaZ4Ip9Tw2#MYha=hxKcF20U zd=e235%TKOyY&Dsv>ohk}5!-0*OunoX^2R!?Ruziew`Unb4Rs|4gJO9skYo`JtD zCx*DD+gCeWTh_oe>ZA~~Z{pS8YbNmc;xBNpM#DDrFsf)<6u3wDkhp>p0`q&&G+MEPrFfEadL;Uxnv z`4CqOXDo*8*WAd@SFhk55^!Q6a-$Pw5b>BOMew8n#9swF%a#4*{W%o8ccPd{Qugig zxC9EfY}gm50V6z@n8HhqO1M?_#>R2SrUB4kH_zj`_b}UJm=zf2SeP#`uar`)b{qbr zuY^ERd~cgGY?Cb8mv(!lR8hvdzSM(&^OarD!Ghu9>2cE2E(6cRT;1>2xNo)l816cs zgqP;OE%|C`1~ZLAXB{7}cY7n3>+A2g1)6|(Zx zdyU@swEV;3?&4*tI=|vW958&uMY%d39HcBOJoy(@{(?vZ;-dyYTR(H3b}pv;g|vwG z6l~Hu_?(jX8v^7mIn`RiLCg<(sT z34m#FY`3t*1Z)jMcD1C~b@ewQkfUZBTM0A`fU%YTu(PW|?S!^W3+*n=bkFu>nIi$S zt>c6M+R8#Ci)T?~9~k!7kex~dld!yzfGvmMNW0K?wR;o%r+Z{pz9yDkl45eUowqq9 z7AjS*t+-|Z`(2h@is)9ajBkyxF79S^Ik#KEW`Z{Ub3GFjhgyeo>&n>r*oVA1BhdftzrGt#1zcH-7Cgg!q&-tnqT$C{UmY9OjL=BX`C>W1px+pZS zqHY$pLIc2f1N~Pq1D_`S`Ib}un)Ih9ere-@9h=xSYo4dN?nnFcpKF0(UJDF?h6Jpo z)dfs5A=8vBiO3t%f304k(7y@+T&CC$IYG+>w>Zn|26k!!;eP1*-ELB);KIwCquH%S z5@;F#H4@}l45KyOQ|B+0lz6g)(xBGQbbZlg7V_nC8R~B9;!-1gY{1EE zB*LiRT2E>u+&RT^|FM(^wW^EGgyWBmVSWYTs99GhJh!xqzb|J%EekxH;=3-NK6qrx zUy}(FCMq@61V2@%gOlp|fe1YALJD}=88&+0rM#AN{p+7{S^t6X#^NsS`{CD^k;!nm zmK+yT{@!>n15pP3-(n-dS=uDYq?lfMf+#(*MN9Jf^+gM+F>s-?%qhbVP}k%%ed##oFaPe}xlW zmcQ-K{;yv7tJ-YAG115P9f6`{LJ_#^Sow?47do~l;OQ{t11P2Za|(Rs6xLmKfYco^ zu#vj{3uRK2U?{JjF&xh3p)DpH_m{%b81b{-9AHc&&@=$XMC`}cqzaR~`pe8Vtz00^ z$0v^_I~9l`rfpSfQ>_D6K7!pi|FZ0NeO4wI3yp!Z~{8h^b& zgjS~sca~259U;_b*$Mjwu@3qIeXp#yi12b4vQ2`)#&5BczgPaTXD>|i@O5A1RrLb& zWw^YM`=OZf&p-Xg9)*V!FwGjy&=Y?4T<$H`b5^c=oBbL?0!;&;G48{0u?ioun8D0s z3-1%h#Y1g6HUcIq;fq8iQR-IQ<_&?7gfJ}kEV;>-1D4(X?aRz+Z{<@m3?pLMgH_Q{ z6-6jKHP!OH@fZ&9P|L!{o#VoKmU<2++BY-#AIzS^>T;EsK7VU(;&;Jgb)4+W=L*`e zv1~_D4AXq#u3{P}kWW;;w_A!m!_moqKZYmcKD|TL>*vS)b4$w4_&1hU)zHyBtht#> zB^;PoTk7<${2z;jwcp-La={E160mLY4aG}YE8R}<+Vw|f2+iJic1tft4|JK9p3f^?bN=^t} zlndbdnJ64EfL>VtmgifuaA;XKKd$LbXb#q}5@;F#4SQ>j{e`JVVAgye5_r1{nOzJ7 z$vRq%aGGXK=e@`jt6(d_L1%q=R9Q(!PIzf)7vHW_vU-|Y_Z6;mAzG?97T64a$pW`6 zUdhiZUH@40*OUKU0q@LMmW-9*VMaZ9C?v8(=u_Ld&L7>BA_oMQ27*%70Nrv|u zOGi1%-;ZtBb6pqrjm0z5oOARg&@=!>U*^pj3nZ}WOU!6(^N5J&d(4CQ#FE!ds{`iZ zn3Jm;kCDVQi&`<%_xTrUDMP^V#*%KnR?Q9Y>~sm1xRCc&bA2tY@%7&U|Gabsn`$v$ z9mkN>H}Mv+{FZug>NwAkLo0VZuxd#+>nkli`(YQ8GKL#-Tm;T>lE}c)IOp{&6P(bY zuKpp6oI_{^Jsjy@s3YazH3ilY#||e0%WjJq0Hxyo`9kp5I}V;Wn|m($6xr3?ygMNg z7r-FTK|z9`ejX&*w&X8(Xe{nobI#G1K+^yieVI3BEFytbs|Z?O4 zL!2;4V1XNm9A`!7B?3p$(yD%tl)`CLfi7LiifV5_oD}%6G0bFFH^9!c^-<;?&S^QK11)hzsD$ z1r1Jf2o`tqSj94LUN9~t&@=$XEB595S~mv-^}iZ9H&;LdKY%)&?Gd=I54o-LXOKyj8rkI@gx@TeiF{XRUU2!9&e zH*E9}+lt#?0OpgMa-?y89j92mzk{dN!%OE0XC?y9wKhsj9P0ER8v)N~{=i7&*SvQ8 zNT6u|jGudT+^$rKhD??V1kR2_0MT=+r?3dVbVeK&7#wdl91+JpeL0I`*OHa|X)OeK zTNm>K__%r_YB64=V<#|7*;YG^f~rw_!Q0e;4W*h!_YpR;#CSPvtt`WgRgP z?sURGwIq4^suVAk!h;`9N(ydt$IYB<9lwbkeRsF=I#|c|uIuKBM!1`+S2EKW{u9kL4?&)?w$^ zEW#EA`f)Cz&K*ked;4{Wq}5Wj{(}sNBFaCP^>2ljm)^+Zy1#^QnY9DG7%nai%#GQe z;GqxS!1htUfz1iWL;_6%U`)i`oU~dA_#A<6(~>#B$>rkBS@g0iQcfHw(G{zPQ3(NXOl%e~GDJJ(yjUTv(q+z`YbHz0;l{ywYU5+>oEtGek~cN2?j$T|Jj7bt)I z`;lJm{p}`G-xxf_V>4yb02mv&A2YM+N%%XTBGEF3Am}78hX^{9s4Pv8Y(=d8Op?rK zIaq?gIa-|Z|K&B)f=vj0=@e-L=}^cf!S*`r)ONysy@d1-o_aRfJGK$#E4;hD#+j)U z?-OC3SHc6cvJ*aA+xR(^Drs*arKz5zjpKO-`x&GrMz*Lqymv`5Wf1}hrX?{Mo5@;F#V=Mo0HM?eb_id*$(L#rXP8ZOg zgbC@;bBrtAxw_t!&2NHO+FgW&K9K9Yj2(O0Vxc!wE&%AW4kdEw(fVd1^khN~Dq~;( zhf>gU{Ynns@fA+CmUDrVuq;5a*DGw|IG_r}WqDaz*x8z8*Dv2p>MG}iz3wkKB}}qR z94A#c?Z~t@}c>)X%V9ENho`7eUyI7obW% zfSE}R4Z+EwaH#4fi0~6x} zI67=Z1Ke6ABy#BRbh>>`%U%`t!f?dd_&b6(p8F*5$%m;hk3=g0He=Zw!ZV396N47s zX-$!YM$5sa-TcRRLYpk-zBT&{ErF&1(0n?INCEub&Y zG@F-wy$FL_-e%TzF&DU2s}@GQ$MOeAn>N0E?H7INYv z1I5BOs`S+mY=M(qzPhNl8P>>KdU^sl$v_P zpT{rhj3!=r<~PHu&her+Ucqpd6E3SZQ7>j~OIv-xDvhh-`Lt#I@@@}0G^pM8Kj_@Q zo23RW8m$t+YB>%@D){@lNc0$P$j8bb>6m3)ulM2Kc5LC9Pk$$Jy=!~yQzTzIk<$aq zxfagG(rz^L6FtAxw6qnTv6crWcJjuD4$*t-vq)kgrzH%Z2p#i`8pMW#vn0fz5%mIG zzr1N{WB?46I9RwrZzMQE=dcFUd!VI>8n$@I!8T)3)sjEO@}MbBg`Pqt{x)o_t@ z%$3LuTdiV<-j~8|Ej!CPHrh6}(?WXRb7VjL9kQ#g$F!WwRnGCQ(SX8L1L)11ioseLjvAo4O&h=g}JT!3opmj#9euLX6D}P;pHvo#QC&I*d-G?F!v%O&} z-mrbiX83VS2Rn}RkvR<6lOcOWw@+;-i)&+)o`dEzHIzWp0H~ob8*Qljx@bEjbh<1P z(*YBchUr#8O(Iy+SsJfwv^CdbJ>ElL*scoO2|b}>Qc{>>9kYDdS{}eqRr4z;5o{IM zk`T6Kg#E1nJ?Si`;&_K=m8&A=T*+EQxN~urkKc|;Q>MSfLjK6qKir}2{(V}`mJN9^ zX_#nWK86#m^RE3uG{{Q#uOXzJF5tB=1GCy#Yc>EW0i26xeA3cDc0Ypg2e` z2e180?=`5^wko|>&Hgo(K+^!Iu|UUaICbG)(#GU;A2Upn6Ku$g0H!GT2N8C;zQo3i z$!@IVQe<9Dv%ou z*v4dflZRMnLe6n8UxXQPN#Nk!>FGJ}oD_9;`Rn90RQ`TAI7%kvL5?CLDi0p$=$7Nk z16BH(AiLixzky|!8V7-}^D)QX(R$`;`It4wiX_l90LJN)pz+s(FxLf~=p6H{Wu6#c z2G?RDMc-0{Rd1Z`wzkXmCo@N{66-kO=jISEqypO7S~$_c1sE2NAa*=(v1$;AkHxkc z!?e&b#YAf3NX%HLw6H@tkIUY;R!$_~>({Jgci9(>pkqx80EdWHiYRcCR*)DbU_Gdg z0_hy|IUO}}pZk}cuq6z6%CzuYONImOaOCoC!Zj;+OOW7l=R75~mj9K0FA67OhX|R~ zaLpAf|Djy}xqGcAf5&DGc~o=znaGr$=#c(Q?7L|3a3@Xh(P)0eWk`+svhc7ZHO^i|+Yjr~}iX^8m>xetvBg%PY zkpJ4wbAGGRGKR+&-^jm?#%sj-nyubb3x)4xrZw{V4|dxGPbEU0C}te3>S9`p;j=g3u>hg;*2asRxFyaKmu@d~^?ZNCv-BH+b@VbdEa4yLyge(Dx)*fm23^^tkiqc#nI zszq1(3svb~*21hK8Kwu~!AfQsnCav73;|eD`(+$gBZ{y$%yRp(n^|9M<7>akM0tGSHI2R>LQOMP;4* z;|1tGjT+q4;0)UU|+qz=&@&Ok2Abx3@=Q~@YogI#X}ACUQ2WQ;u2^Y z01fnHXkry-ae6YrIfyUAn>Uio<_6kYLoP+cvjwhuJY-`zigHyKooxwbX!4nH%yt@r z(VxQP{?qO#?9{u)4Sh;I>v8Edam$f$)_V=K4m=~4jH1S22#p~lSziX`8@E}pbPH}8^ zj%~TPbfs?SAAX4$nRY(rEN7Ivel-?EiJ)?xgE3V8y5?b${swHxdq?y+uxzVWKFS~& zI(iK}(FeCTQ3lI>!bYcG(*PJ9Iaf4G3}n)oj1u@xGinf6POFs*x}wD#qn-8SZ!Q0_ zw3}C}DRX-47Lu=Tqrh`Zh z`TM>{D-#Ym%g&L=tkiR%37kfFEU-M@0o$(Vjxh&HUD*75)FjX}07gyJBb!K1pRI;V zobYzB%u;u6qXP4cY^U|VT5I?_kMMUN906_YP^(nKVCyy(kl=I+XGrMtHWGTjjCm7_ zp_~M>3Pg}Uo_?8gTD@K`_S}5A7e~GoQL8!CQ0dQkz@sm|WD>lXNb{1C+EgH(O1sMH zE`Co8Zz;#46MF$pjnYU)-sH^ zK~&djPsjQ=O#@&Y-eHBDbqN-dD1xe%?1_I2 zn?uX0Wh>cP)gTpKbjvLyPuRuW7R%gB$Q&^~uS1Do+T)Toy>CU!GyRF&5h!7dPeN2I z0cETckII=~voCn7q8?qyrWShydwayBEkT}%) zmP~NDWVw{6-oI2+Jb-DXI+gmoQswVuKXk4Cpy_hP*#LtLc01+27(w&*Rp{|N3GlLO z;pwGc;*}8$*}QZVCD1egMp4+co=Q)fukK>5WH>Pp=7++G0nDmd30tifJhtPd5guwk z$lX`Q+5Tg(96dGO^GznDvrI{6m}-Pc2on{rA%GLCmZIrTnBonEC|ll_b;kdqIDI)S zsv=P2H)XO@Cd923oYE(XVY0Ik$&*v%uNej9HqArGm5N1hvxmg6*E)8Kc+jLB0rV&^ zQ#Ry4TPyo!PG|qcpFRrjTkce~?x*)?-AYcg@GfIGci8Wff@ul!@~ML>UC(H^{dG-+ zF(1!12wN&$uRrO-o)ESe%j*_iOA1@AS?LYVW*bKmXc_?H=w=PKRISVIX<@QUGu;Vi zien+-s|Swz=7b&2aYyz5o0fm8aj?!c!~Q~;9m1&zg|m%HJ2kGXkj#qG=-Cu~qFsdA z=1=0Dx4trrdo_NZ^DQu;TX_W)>l<6%|$ z2-`iCZi3BEX4qOz5@tEesAV6Y^x49hF3ksAq~r%R4^X5DyOrG!KTb7@U#}bK$v?M= zxFk?Xq{{LPDKHa;=dER8vm4m6PgYx%^D{#Z=|VDx2P_Zd~OELwzgZe~t8&805O zh1Ia))qSD$o*+_6kERZ=wt*DC+<7x+XDk;OI43?~Yo)wTyelRWA8XbR;`6uvzxI`g z(;(C={3sNVR7GT?5P{F+HxUH!3r<-L;}N_8QNV@ZW5PLN7(Fej;)YIv3td#>ABvDw zs932h@A++$zr8n|}3S9pKp5`?xxJUw)LS;ZXBlt=j zvcd}q;n_?dTM}6gUE9uK>8=jBZUpNXbm`hJGt0K}KHyB_n37kOqimT z>*W7j`MC(;u-bN87Z(PGWtF1kRXbnqI!#bB@QN|KnlWq(4zgwOU!vqa zW7^hqaWcXMMto_mVs&VervB_GXJJ*H{7XUn7ED~~tt%|4AGfu;e_824e+SK&a`eUr}A5vH~VOm`utS)~S!lF-UeG#mAm51cS2 zi+MqnT{^?7B-k}pU?Y0szkMa=6 zW&974v?hj%XUN61rl>$LNA;y z!r9hwmXXGTAohrMhRrU+<3|h|TA**kn`LfenMiiWO`M-~TqVwzgq4>#H{#n?d;pEp zXW$=}ck@yWr;ybvSriC=SZgeUiq@zlht|U%?{)zX?3%@6pB}@?fjG>QOu)&3;Zx3W z8bx5Dt2yizZh#|WWeEPDiw`7(nZ_{FGjzgCakN_@@X44J5=vEi`p;o9=yxa1?AK(? zeFW@KYz1Q?C9fZ9Q_!CH=a$9YJl;&~tH(E{vBzv00F8Zr8g6wD{SECsy-dkunCu)= ztYI=1tr>5%amkvVfUSlR;uoL(E(#Zu*F-!#t!9yD6`MS!v+c`5pOzbmmAWcA$ zpfy8~(N|qw3-pvPWFIsYFeMIA0se&bW7c{C6g_v=l4oJ zuN9vB^FK3=mlt>Q>r(Pt89L6!~}-Yamabxdj~#UJliga>zQ z<@V94d{86cynu5Omfs!goQGn!JWd?!#jq)`{KvK3DBw-qo0d)51g8(B{B;32#hg>f zxkdTE7lGvIKd~2CeeRl~W0k4=wVMdN>2tWJQH}4q-?-y+f~Em*oZk56wuhI12UCIx zZE&tLTg?w);Uf#ENdBn-zR?wiv6HdG$M;I8MPN%uIy@wt3B&hj* z7jxU-UBzUPeI_pR<<5gu)s%I#Nu#v}KQdh?}^H*%pEK3XPu z&Zw_3H=(Deg(nGkGC7%7>LD`?h3$h6O9baUpbd5MuSWUjt|@i$_sZW829}g&{CjdH ziwh0XDjvqzBS~r)B8b8X_cby7$LtXu^@*DXz^IG7IbowpAV;}u;ap=`PzaaXNbB~o zU*XU%q4=-K8rYf!<_L3iTajG#~luLXa?&M$0?cX1( zFNopiCN1Umx0Z|vI3RE+OmNs(dTo|e){*UmY^E1?upODwMi5$Bq?ZYq7ETBpv(uK1 zH7*~mwRoH3)ldRW1E7Y&Yz{R(CE!VU0xlDHueD5V#F+K~$!fx%;f|E$7h?r_RCuRV zhHrzJ8TkG2Ktko~@|}l_erk&4u3DCrDof{<9lXz3CRcju_b2weJb|KKgzV8$zTD@k z?17z$B)fVu9GC&w7q$~_n?qPe5~Qr^BH2EXN$CTea^1~5)+`AepYO6tSKTxKDwSBX z|FI$g|I$k&I88#X6PPg`Hl~CD3drXn-%3QmT z_d7PZke@95O6}d&WiF$vZvXqw>6kc?Wdi5nXf5laG47=0gMs0fnFJ4AcLUpNu^b-? zfQ6WWxE@4TtGZ|zYh=w@$iF#8X$dq9 zfYLH*_Bci)aK}m}q(aV17|z3R=D1N#u*+J0VT31_cC&vx+zyqsO>nWZT#jY>cv!Qp zQH0k*;i0x&JTcO00S$|s4YS*moa{p8cz~cX%ltx1uM0RBK#vVMXoN%ANgQ1MS$ao7 zmU7EV+CROLBcm`^bBZyPK+^yiL*X~49vulNaZ7Ro=Q-g$1`pXgC_{U6R#Mq4BBZS2 zp%%x(kHXF}V!4$~Q0LyOt|#D3W+xI{De#u@5)vRn)O*&2tgD5=_1!MoI?_yRYiFi~ zX-dZ(KuhQlMd1q^DKYeB9fwSU1Bs9Wfg^orGMNnr$aL2zEK$krRs-(pE_$2fK$S>s z{Pk@b0ORkTHCJ4w1blKI%npU$FnE%dhHsw6)nY9?lkMU5<=J4xlMY$_|>6rF7B8F8@gsdNL##b$*rnJ^$VSLnL?aeXDlR(n|C{Iq!UgJmt8pG^J zGA9#qslX*;M#)=&%;K8ng&2a-=5~;DwV*Rn>o#7Io}EAkB6FcO+Lf$DwgL1c&_hR zwvIN5O{Fp(Y5$-66&=03oa!v68N;bAWWEwdjda|4UaufR2+wF}Ak)H2P2!w-O1nAs zXi1=H0F0KToAcCF0;|5nj6^H%7vT(XoKV-vYBTr|twG1~v~A^$r78AFH#y#y+RV`4 zqiDVSYulNcFwC%ybBU@3CN}c2m44X3ZfAHgv^;rTH(MHcz0I{XB`}->ng&4g`54y{ zPG!1}b@TMNiTl&{7CQS%fWE>Zwnf0Cke8jXIe@(h*#D7k4%P#y zt;|&&bKP$F6v?@BnVfMZi)!KX%gC8HPx0(2PEIoDOdoN7`V0_=dV{-ML zQ7+_s7XkUyj-@Y(&u0vzwf^22GR~4Rh7^{RGo%dkg_eURNe`BTp`jR1mlKOk-XfckYh81d#SZH{|2@fR? zv;OLDux}iRvboe_R02%{;26EJ<8@nWR&Wu9cN^ivp~}GYWZr*5k8sr0)vB)dv4R*bzh}t=kk)@akk;$3?2O=u&T zPLWI|NE%3FGbF>1q-i0cKgH4-2yHf?O$`R4zdPCtv^hh&=AmdG^#4*G>!DK`U&o6< zg8#T?1uvGj;%2X=1nMJ!rU6hNxi&|wQUa^L#&nZnRyH_V&)+Jfjgam;Lb`P#eVM)} z#;!lpZMccOxKulCawqOUfIWNw*8z6lcHGntU^i^QHQlaN-jL(?G6zBz@-r~Iz;sSW z+V>!b1k>v31UUfiX)ySuk&a1UDC-Gf7*xVt;Fr9iO;2@Zu~g<`>49EwZ7{QmEJ zVI~ggp9O{0)ia9mt4b2n(fvcE0gr~g2`V5aCGbYSy0)AbxRSzOW6X?26UjeH zlF15d6PhBj5t%qf8odvPC1c5?plQl!Ek{SnhRBp6tAH5O$@K~J4v`QKOAp^B7npD?RT`Y4&-6WJ`5NS5U}F*Mohk+mg*iW@slZ?) zkh4?r*sMVf>ma~n?c4puN?yk7T7p#mnldhA{!tu`&yej3+p(J%z#|aW38=- z37UTik}3-W(!s}*y_3g`5deKdE>K>tSIm#svi-kb>lpv{Yrgk1 z>a&h#8Ik!k8}H) zi8a+y_@C2Q=tpsML@m_DciE|hQD~)CKk)cU>DE1CRL0@iJ0J-XIP7;sREjF;fUUBP zu9VD|`B1GCaeZ{(rCw1MV!0x4v~l{9++6@&(bQSHpS86-)dg>_r&VOd6Px0DKa$rXpeUY0H9rBrvLzLr-LF zq*FMYAh2#d1D_a|hV-)VEtF07W*Uaha&<4GpOw!n#uUWocKxb-{Wg$+;_@#A1ou9H ziGwladt|19Sog+-0sE5|1OzOH3yl7SOh=M0%r1t<=qB2PuINMJZ%-o#x?0vR9HJB^ zlY9c>?~j=n;<2b3CRP++yFpTG4?_PIN=wNLcdoEu>HOy`)~yP#3aG}Gy4&9P{ibbL zIsCW!5DH}EfLJo@9)0#;CI~z5Grc?oD0rHP0Q68l+A63pDF)1rAQTX!mDICQ+*5du zMQA3H!{b1QD{i{Ymqi#0IiR8CZL%1d<$0)YE*1U$^)YzDwDW@0+O`}NH6>F^V0n`j zztlUfKk^W=d6-vmp4wumAGj2=mi%m!%)f7u^WU0;#N*gQ*+^s(PWy+Oup%1F$1*}k zmoj@MDOA~E37%TWH$HaoJ^#Bi4%LuyRDM*WK9CU9s0!fl=-)xJeReW|3RLb?(xkDh zJU{u>cfej3C{?26c~Ha|D7kq-0rCc6Ch$KGza`TX@WOh-SXA)VM^OC=e%TnrK-YdP zS3v!75gsEy7UgBw{D;^^*&9c;(~^#ru7Db@c$WknQ-F1Rgs>)Pqj{dKDu0@-*zhVJ zl>bFjNx&h++il8H=%aRqn`df@Q8g ziW`Cr>YnV4DI&z41v*D)3i(+@5iZjo{?ls9%3_cpz@2+VQc~ypBv8}V<5$YmP71-^ z60-JXupLWms|Z8;=QbYC4rVdx_)@yNuKAI&)uy7RixIZ))1b>E z(|Z#gvSf^cSjZG2_DORcE~}N?BT~9}C)4*R13Upzlz!&Y7M*vRNv)dLWF?wP}G>fmd|kZR@wB*81c>3*W^d|{9CN!#WJ z5JoNwgrfia{uE1-1b3TTH{9&hxa3SzRBQ%WW^U~YXiOZq?mvTKnZ(Bh(t;qMrv|Wo zpeBS(r?WTo*Gsw!Ym$@fGA2Rc=*1MTRb5P4M}})_4_=@Ph=nc8dL~O_3XfF1a5!j0 z&!Ubiz~+ew4Ys2`dw7P(WZsRAOf5z7{`D);2@F+Y$E^*^oYoz-PZ@tZ&~3x#P-fbb z5F>(_+o&gxR;Vi-$Qs=iY!Dz0r`(z>_g0C}kU^t;h`)5vl+kLh?=8qhcaPrTMQu(h zD-yEd$Q6;O**)rU`)4iwH*6rMmb$w+mGh`ky!vK+V_Jj?6g=x7m%^Uj<3e#zo7Xz= zO&3zA&eX@Hrccw0|QxuM2TYSp^Q5h}cZY=^W$<+i+|e+^Ox3tBz*!r`$sjSlSTUA%el*cn;R2e&JovV(JBpcB*iwUiR&XKoD9wX_uo<3PqDE z#&BNVul~%4RxRqrk6GkAG?h%R4||9%DU&; z?KHE(GAr+&Iy7y~W%fr_4%9A`#o>VM3`7vg*8EZ^h7q~R%K8~%R}2TSKo5WvRJYg6 zHG4*Wxq>q>SD)zmtm@i&gRnOXBhZhqX_EQF{AxgNkz|oXNF{Qb*caArw>D3Gn0Lru z5+iek_N%nADJ+vbgv22!R}!N*D$o0I(7czb-|uT!rFpKm?n0+2>n;s`fR>haCJAJ4 zpKE_+V?}6452eixM7hO6M)K;W0(z@GE3sU#Xf&4;96X}05^VOD#T5u?(}LG6*s763 z8_MG}IG0_teE&1tRPRe9@q%-|%GmIeMYiZ9jfaY~>u;YT)`?Gbu+$g;yHvP-cRI@w zd5t2u4mIeDOZdbKN?B2s6quLCCuM3)IF(}XzvnWFT4|W{ z!F@_*Lm5i!UwtL6xi>>tZ86zJ@GdoYU5w53-Q81JMM3<3F7YZjTIu&El_lhTpqT9n zoG?M8y>6P>o^j&2;Scz!;n+pDch;)>q zx3qRSnhgh3mxDTLc-hMwO}T5}1SveQOC*SQ`OYBir{< zB-eQ-P-pQH0fX4*NDy$9tePYcBefPQTfs-;{wyi>hY@f!9A7YS+G+|Fb1%NH2|$XZ z&FPAC1KbM)uMQ?SRZi&yM!<$r$EN(6u(PstA^F^~AdOP^&d;-(Qbw9l5^Mx${Eqz( zG=AIi0Jc9V+>Gkj4D~h!@=x#=Qp17bT#ZMLIVLBqo;VXEgSXbngK##g$`qGZ+W4IC zwF9w|H0MyzL-t4NR@a!LkZy4c<)F7)UWBFw`Bk1(gC79IiEYu@k)N>W65sc}W3l{; zZ_`oTX4R43y8gmFO2UBwdSLnwwsbQ=E8zN2`JrR?dHC+P(hAFP0xX!rcRsIAP@6$r zjeS;SIc4MObFhL-7QdgbTEBA_Jv=`C%Q?baZ*{p~0+ zj!z-`Sy`+GWMa>(nHnm__QxbWCmoi4*VE!?<2^THRM_J19vQ?}W7UrEJoSI}fT2c8 z`MQV3ktZxifqWClzz;g&HHC_!37*EPm;60f$tccS;#s*2IoB(^@t)7?f1uL8g=$t3 znTpQ3jIv!mtW#xTfw5ZC^KqRq0NLdY$Jo?w_)veZsdxjKPrMYYMpsO-D``^O1%qE3 zP>@#LYh;4{DU8}^Md-FwGmZWgO*P`<*Sb`W(v5|n4-%gid`XwAr2hE5y%owL8DSx~ zdFAV`CgId zGn{{Xx4WkLEjp9tw`IvdvLtn;o@bB&{5nVBFyzU>QaFu7;x#BKA8`)NjD_sNHAgZ+ zkxr_I?(~1eG#ne;YmmoyqIrsaWu=Q6)I|A5zq6~zpwtyXY_5MANTMl|GH!B@Vp&(W zzlJhk7$|vwob`FI62)cnnFu9CeytP|)in=r3=`p(Kw{a!(k_~o@i_8nSw;N)F zaQkwNl6>qH(G;waZSc_oY-=i9_znWMJ=%|B2=L@29i+g&opJ?feYs`>X;bZgT~E@k z8}{=(%$$zmh|q)#(*j}eR9aY_cN`nYhrEI&(9#+g8s30&6j}~)@XdO~jn#;@#0EA= z{Ub;d$P+IX%se4I*slv&Z4{FeLM)X=U{-mPc_}Yy5K)tVs}zHx2U$k45X-ldabf}@ z3ciqC&EU7eZ3`AUMlfS<#YCp=8#)fITp`&O&(MK&lS><|tYJb!gDcNJNG+^eqF5fg zV#BP{LeFN%XWU^lP@ULkg>B>5zVZF-8Ubn8(QO^{Li@t|rQeo;9yzqhnGi-Mkwf!q z&s#$#H8FKMGOwZ>ua#k1Cfn$?AiN^a@9=z-1F_S)-@rDWb2Y_IHf@A1Z`+guwxuUqvzYlTYJnC0a4rukC!K!ZYDjuW+oivQD{u46}f= zH`6*2c;i5iTY?J`2r7CZ=LJr7A^a%d+8F;+=|@V-WG5|<7T%1>pyr_FTgU}NQJE)+ z1zABL{)ur8dK2M_QMqfa;*-v*KA0WgQQnK^x_N=LdR?Su0G9erAKJA{b;eYa#7tE5 z)ef0Nk*FdG%UtKIt9yRWl6^X_4$CoT$ zs4m+6e3W?C3<}f}>&AV@T&0Bk-Qp`O9o*of0)2> zJDzca#=<3XiK*I(HLSGNEtHCI|3Xu9e$zMnPgPeBSxyxOw77 zaii^tj<`$FD>H*YCa@#?L1tglvZ-}jR~G^~qU}2ON7o6F3zVAynoI%$uHo3FDnO_x(KGwUki|gnp z)5K?8XUJxUKaDTh-i?+wp5e<(KrecJDNIMLDg%d`v)u1WL=V_<7NVWP9|ODPE%$A` z2px;jH~6}F#W0sNJLG28UHeBuM3q#r7_La0r7CO*wse~gc@&6x#KxEcs}uaAm__Z5)ot?r3x1{X($K4z~}MzkhLq) zg%bz``<=Il-}%)HywkOI-Fb zBw)xMqbW`~R4(h|S44DZY14oPK0Y$G!GBpb44b!)*oZH^`lzMNx9{F+zgiS$4TR>S z#9!ZioL<=p5}Ik;{{XNR8qI5}XMCG1ZmPJ?zA79tw>8k&D(AymG*KU8KvST!PlZ+&gzo8TgS>IXhutxV5iAm*wYw z*y>JB^S-v$HkHS9qio8FOEs1@pYP5I^xKce^Vbk4%>^w=&0{13yELl~Do7iq&bNGU zg+s%BGeUH8ANwYsIE{H}Wn(JVCPjQ*IO(RBM}CgCK&v<$g_k@{*DvzEO*+VF9si*@ zLzVe(Li8qfUjr7MH?;E_Hnt4~vQ>LoajF(}LL*8JoKF9Y%w+VS)UxA@drw_w?0?xa zItcI?;2-s^-QfQj^RZ){4kZ$cDs=m0DLvks8}fZij9~jC&GcPT9LBnNx7bTf8pH}jATy~A-?ff`g5e46`lFS}fwM~<~ ztT#RR1>n2-`!rV)&P;lbzqe#_U3U>!9)6aw_!2oJRXV%t4Pjwm#Z$gYo5hjx!xqyD zmErC){zJxULgH9i^FQ*nBCjNxy$bbiRUC2<5Ul=(CZ1u6)IPKmp4g@l=HA?uw9JIJ zNDg9LE_`O7LDWTHck6sRVLIi(F9RQ3h8EuLbE$ifx43nOABElVP6jM8 zTX~APC(C`$H~N>X_)$@0P#6&LgX@+PNoHaj#j3e=J3|FlEsJ=&m&}4)?uZpWzmFD-|BIG?#S7B*e3U8vIhq9 z=O|Dz%e{`yEL`+TA|tJkx7zgw+dF(znaF*i5W8wW#A#Tg8bs`=*$3xkG^o&;eb`O+ z8eB(`L7*dOe)QQwSft5VO+SVyawo8dZcv`U3WZ3aM_V7U*gx+92WE+u3#y%HlS(xg zl&m$|S97-wdgc3{UPQmNvpl}%Y$rm&ch5JPW=h*oQn$dZO{IMI8KWrgWL}u?2l31P z(C3^`au7y^1}y3FegDC?f0(NtB4;{D-U@lUml!a|!j=uc%#c_R1+*gpdP0o5Dm!yQ zd=j>~d&=%8++D%BW&1#Z7)LO_rvV9%kb#{Fq=KMxY@@5Ibp6w8_%}(QW9rY9Prd6G z#(nT}piB3<{>+5EgG#Jl)!le+?2}c1CJtgiF+ePTApVl0`7iypsMN$eT#ek*L=l%v zsQdP`zR`H>mz;hU|83l0ohhuUYn1n`ioQK3?tzd51Y*nezrFR)ba9lThDC;2SxG6F zP%jG0F~nn!o=;vQ4Xna0v%lU)lLTT05mrbnjK~vUxdrqz9W5wm(p9h&3 zyZuy*ly&g%!JL%u@0{R%XE{Qxo=>{qICEHvsd{=C`;K|@WH>0|3z|}_HX@rLwo-z3 zh_l;66{4nAr_8GUdMni;P1)}$M-AV%)(8CKgpQ+FO*_98EQ4~gOax4j>Eybg@_WqQA26hiVkx{i341Jd^T}iu^=8VB?aKrKAZ#=+-!17u_W+9nq zkh=s{>_c{5s~}q}IGVRn=f@mn$EfZcOr@Bic#%Qd+)Plj_Pu-#>wLeks>4kwWFOdz z5$b^eR6K=!b@yjQqztxNNF1Ds`W6!XsO|sMH~yV^&@sVU8#I%Z=!M&N5j0O+t0Y>& z!IBs`D=Z!^w%jhz^I=-f=&+it=3mAG89njgl&J?J0Wsi}rNk&`vMPn5Qg%PwNIB_N73n)gkUW@Fy}W{w%IKz@V?LcD!5 zj^b}%W;h57I|+1^UnPPXMm6uWi@Q1&9$aiWY)rfi)V7;l=n{V_` z3BRu|8y4;da86dflY1>_hT2cCmnW@jlfvPg_UjG)ucEI!drV3augJdmAgQ8|Pm`sdslvPiG(fiWo}Mp9l88 z4z$Q}RL)BkP#E{>G|VT3+HVlNyylR-l9Evwn{pc3JoyZ&M_E;;SH{6i;HZ3JFgJb# z_8a*zaqFgeV7x{^&$}Ek2ZBq?)Sw%#vE{4++LX&cAlNhNJ>oIh#n*jBW}BCn|Z9JV90btd9Si8RAcT zBB&|Xa*5qWaXRonez}s#VzzT|?80J-G%1;j?vS@3{@XilKBy@EEoMmhUK;v-@$S(o zVffLcdXCjsYAPw%)n0GhNv0W6=x{yMie3$zO`n1EdVmN`9>iO3oDCXBX;{%)Cc|6x@-3-h zleCSwh97m12BPkqR}IwyI;cr9Nz!TKXNZ=_Z7u4Uq_(B8g`@|O3!tu4K}~g+zCTZm z*}&BT!>kCDMkyPW zx|AA_p<(vmRgk8l;llKWbW}YhV~MIltS=6Jn(bRT1*ciqnH=Rz|8)ClQ2=&5`4t`_ zL(?E&afYdx17VgpG-jOD*Qdy8+b+ zohT*}2)S@kTYnsBg_Ie}tns)iNFXPybbjf}>gKJuoU{X>fP4D1=kEJt4sFa7;yend z4w@`ZK91Jw6+jd7M=LwBo${Rz^XJ9y5Iv;Cv5K}P^kJCnCsgW54-klX=L;8JHx6fU zfe%#t)<*dC*L&k(hK8boGi|=_hqp+~#I9P^k0NmZ`-bCJSqx1Cd(&-&v$r}FJW$`L z_J)K(hb*!X4P&ik5~*>n{Jam*-MElz6z%uXZ#Y_Zt`%U8S~9}oqm3|mn=$zls+Hxd z3(}qX9e&SdBb%5(66>D#`~7M*ID9JBF<7k$rxI6`4&gIqQfW3=#0vJ6PH5=DRYz5C zIOOw6Dbn#2hlI$M!gHw_`W-?Zr@kVL{R%wDi@Y4Kqk3)6lwyNnXIvmEB5xXe8*+xa zplHtlU8|5%6{Wf#2C3B@!@tpDRcL5{jdTrfAE@{&C~7^ioZr>A+7u6FMqLiCLV&S& zQ+Z-PBv`YtRO>yB2?V}pqyp@6bo$EkS-}gstPAaWZ*90H$id6Xfp3Q_B6e)X{K2oI z)a`P#`xapdh^Su*qt2^mT_ifl;5`jISuB!BB7&Za&@AA~5C=$K{`!4LO(UZ+6}>8lm9kTYH}be0d2uR zM>7lD3(wN?R3L2 zA%~*GO~&ru{!AUq)UA*eZYyWb;b9ZNo+fqc3eIQbon~RThuR+WqCVX^BwMJhH|{ET<0*XQV~ztdyPCy=fu{a{Qg`#ytr(1>J;0!lx|Z;lcXe9ZjGna?3}g+=qK`huC>(P~JeYVEpP-8v`t zchMtwu+hYz;gS%Kh>g&=5z1uuXLxPlhOrzPCl~aKckWdye>X<}*JguQtQGw_9n@vm zoM!x3gZ{@9&Rr#=>)}%m)Zj2YJ5uhD-Hjs)@I;(e`{7hpTOsiN@8k}*@M#G8vvk4w zv0!cFvZyk&L+1*j>QS+KEnLKFy0VEKdp;#10u%0Ki!c-mIUtit`_Pbu-1;8xQJ6#} zF+=aJcF@qwowV?EY%`UbEb=&ZK25nP zNd)D<^&QHqdjbApXA}C_0-?}QB);8cRv2Xm_qPccjG{A?q{HLv%UKM90CYIE0crOv+8b(>4VT7pqzY-1TT{8u1-&me^~|{lC3VO znV=+xetR;VYTN?FPr#7^0jMd=;M2GL4nn`nXAXO5`)L?RwMg_o6ZdQn^} z#fmUgLEy?7nF^p+2Qe7lN$S&AS2JUv(!oqn$d+(#yS@H~AahXdL?n|gzu5)`(%IdZ z4ewW!W;FOcwULa*(T0E-_6Bvv+k^W9r4~C=S%Ay!CfOmBE@E<9I$QK7#}ZP3CnD{D za+9AcPdC8@ybtw23_(^6AP~)NqRYY0$NWejQ7uuM0-0$T1g_1uV*!7l#WAwUVq*fb zCko%aFvtaVD4DDmR0w^j(#V$nC}VaJwU9aM<%GTN-3b@p>RzchQNZeaEpbGW_jC6G zc`FJf-WF?Eq?5wnLv?bOP_5{9a`tuI-*;g}%XQBjikhlkolySnlE!?K43=y}3r#5b zVbmp$0B!2rnl7s^GLeQ(>bXDx%jP4X5V(4%CC)9eNLEjUcSYJG!dl$ni?as z?TI)G8k?J)L-(4J6J|Lu>vgOl`1OU;MV4DJzCOyzaFpw5p6;LTh<>-u%`FsXZ_s>5 z-$s0*mD8dZ7a+MP5%*@hAk@5375YqyUC--F&iaoFnPL~Ahg*jig0;AOxr%?9)wT5S zJiI;pPj3chFTyO!axu{)T`GIBqAuL0?MuuMrXuG-W{OGQX25x4hX&OVm}Jgms|JL_ zmU|%l%-jlC<+v<5)o%spdbw@nG&EOu7`W9}HVhS#b1PWT*BXm}aRQ?x8B+6x&P{a<#r0BH#7tp2sy!Q-=AB3#U>?oe4_aYymQ90qSk z>qG@2i2t+KLoalMdf^!^Gd)rz6S*~kCMW`9+z7Qp_*hUZq%srhh=Z&{?2p%(r`G%U zD;9kTeixK-tXqiQsnqHRhy*r`YI8^=_wIXxW^6-ctvf9f4*%wb>!L|I(?dKI${1 zaW&-8pXX#GZt!|AZJ)d9JBK(0DCKwZM;=Fzval?2xF%llv9M2s|AP&b%w>S^S+Aac zx48~>jExUT<6IRO8Gq?`Rga*Jw6@9=U>CH|LLdY;j6#9bxo-dOjnF@yiIpZ^ZZ_!i z$@z&l*}VWC!pSkYhGMkTD4QyQ{JF%+tD@prlm8LgRmk_s!l)>G4{UkBLwcYivo;lAn=48U^3YIT7HE3qzhIL&T3x1XVyyotN@_gy;Js+HU8_ zFqI~w{`k`L@7odp z1rU;?$);i%2VZ92A01sFgpuF*lrrzaC94YtU(E^i=hl3>65}0D_szTKyO7p^rW2u{ zTn984?c9Hw!(gbg2b_c#dBvot3(zI{XkD=wR?+FUXNdl2|xMt za|m{bt9}~-&CDww|LXZ*b;~;Qace}y274l5y%G|iG#!caTKSqJlut)l$vb48?(+lX z>wP^24u5DeDfYc?XS^uS4ge?v=?}RoiEWm73T`=i#Q5@`U?Yt^1=Gfr(V9eti9m%7 z=gb&G#N0Z8Low1Otk2RTq3x~B$2YE8@d&IYF#b$v**&1K}u;06?haLddJMg^=i*=$~G=W-DLXdcafa$F+M5{^uSz^N4w#X+SMNM+x5aN%zn z=%R$_QF8NE#8GnUzsU~st`*Sdr|U)>td+CDhjYJUs@+l2JZDne3wzt~ie{EX0*{#2 zEIL~?b(vqmOw2D4e*e+JmuA3c8`oZA6Z=kC6^zS0dv2f&`xVM=&$O-2_VHt}%pY^_ z#T$Ie$q3c9ukim9VoTk;wx{H4md|HAq4_5x!CUt%3o@!!iaD;iOXX)Rop+ufYEvzT zA0jy271Zfae4D&gr?1?Rqm-TOy~w@w6I587{-Pi+gxayeFVrys_6Ev#Bu!Xd@noim zdz)qC6Vl1ay)R}cEMcjar&Y5&i|#l`Tz7d%*i9#mCH+~Ac?IW=%%Oz3AJi=7OJlG;qsCbqV>Akt_COj@kj z)j(|)Rf-r3y{{|EpU!B4WFyy#aM?mT&U_||cpaC6EVeC^*pRce<-130LXk45<8P(=Jr<(Ylpw8k=UxcmCr>bzD&}$VWXIZz zMwu{)CC-AB)&AA&jQx;bviKmjSSj@lNmARWez?eTJ5S*d)%!aMQz6k87f$Ns*8)ff z=M_$OPW~Q)|6+Jv|4)3`el?3IgIA3{jsIw3<0$)exjY0=0&*lz5i`&0#iD4~y158E z_FV2kjoA)f_r%{9aTK{oFn z_Y!IZ+Dq55>5Y@eo|+T{iIq(3lX1O(`ZkX22t^d^XIZf$5sOe`M?}s+u6i^tkHzr6 zX~aFc0UwK=s#gCu&^!q>v{8e?nXx{Zhx4_eG2_3d z8A8Vkn zk4}taL}Mc!0mZ~g^AKMSrC(8!eO&HstUGfzl+R*~)vUnn4Ja_9P<@UeOG^w zu6XL5GF=^AGj6H7o`UDg!T{T`FPJ?U)Apg(K@8U84lYc;9<+A~?0zdASl=b51CW(# zjrrH<1Zsjs)y_?#s_>$R6$Rc{arzTO6+JFitqc)+&qhf$ISt*i8zn9c!6cLsnMPh+)#KWP|HT1$Pw#<}0M} zF5B6-(u26nNuF|{>ZxD%hHtmJ>~lS9r4N%!Sm^n`y74~}`G&=C=@?#8$0KR)Gv$B< zdbjT5VIa~)sW0$cN*YzpP!#`SmOoG(YhLhlg)1G}n&eM3+S~0jNA6vqt6=wk_ka+R zd*m0ar_bN{(M#b%TjW^hO49Bq%?wh%zx9_3nAk)Qs>G6_On()3EUkhqzo(IH_HJ6e zzeWrtdnm)t*d0gy(Hxfqo5-Z3s2z#DyXtX&68jW}zwzoxyz~MG1GQ$e377!Bo z_dFO3h4Oy;$z!(pb+>8ef&qMW$Z$WW)ghHRWm&K|_;aO#3x%=iueAHy7DxGR_|nHB zV28kHo_Ut!2A7rGub-mzhG~W9mK+B5)m;EE7B31fb{&*_3lJNl?62=GV`om(@BQ_t zhuy8(J1wyHHE2beXnGT8456s%_nddf*O3t;pO8B!oQ@nmJUwDx>rWl(d2R+eY$BwK zMSkK`aEL0s?p(k|WZdOhub?znDx@2$*7u8tqCB(yZ#xNvLJn4zyc9B{5ccrly zpVu7?bKl58Q*xf)wbhZ+kkb$pBPTW4U^@yEHjSA9n&F3g*Y(mV)IKko>5xsLG$Wz) z>dmD#lF;^zizAKO4IudrfU0#XLU`O>A?jwq$&izg@jFVbM!;iS7N%x{c>0upEHR;` zob8XE;@fKjKMlEP5lHN>+o6P{IP}mGBm08?nbZOniN(a|pWb&DtNUcCA^H{rjw#dE_NtVAcPTSsA}% z%z?~f$E$8h;!W~H2vfn(i*BKzD?x2b1dA(mDf@4m)6a*76LINgO}bxh<$9qS(nlM@ ze%ze&3JqnJ{dr*BRkb<;rVx1U>iCfcQ5sVu+I zrEsU>ZVh(~RusX6Y`jQ?{(-+yuanstoA+{NZjgWjOm(seR>-*-Fo(2o^(R4k(@}M& zck27?pFeX=8XbY7-07QwxFkMr+Ork-FqJBv_J@m-axxMH-k)S}%ivG>JykF9vy=4q ze%(c71Bz+cltNgH+)B=s2DD|sq_j^~CGHF%Pv=WaRhGY_m4x2x0;o{s0=*FF@ zSbAU`3yMict@vYC z94&Z-TKr9Z-8AF$oh=d}9A8&Q?uOpXfF4-^V5c3hEIoUh_UD}u;`OVg=QG;Ow5iWct(~&8X)t&_jRf}sA;fQ@9Yw$4WR@TW1+rAG zmk!3Qc#7?JO5FY&C-Ktv#f%(@CdY?eAc-LAly%Z*(ynmE@TD0{HA3(DTc!xTpS(|~ z7b)>Wr$}_qB9~o4R%L?gNqEvd_W;{0)z`{w&I#{$6=SQ~b#kbDxu<*!dkspaftc23 z*-KXFBpdJWskT-^**lXr=XQC!gr%l?7l@mJY+P1TIB&gN*{C^9LC%s;wJj&0%5Hdm zbCrH)50cQYp4*UVf1_nC=P#jpTf-|B#Fp;ngV$bb=*FE1&lY23nx88@HE+;@X3x*r zjrlVIqnR)@i0F_iRjEg8o+_k>MS&)q!<=%%=eIntX=Li1E&ao-pA{RyX<>rN%Sy&E zmwHA0!_jlq=P6i?upjLbS1kx{Aq>;a^I>sOpKUk&?wsF(XjBAKJFFJpv~o%k(2{N+ zPNjffaw%}B9k(!Jn^E-n%sc-UK0U6x1ftHtw%&Zi!80=db(G$M**fCv5$OhF=g*hG z>_uWn=asW%{;+Go6UXXT4p(B!M2aFqhonxIwe?JTX%a!yzSUy*p%bFa>(9P%{1L)- zE;Z4!^2CNrXpn70Sn`3^Fo0(IO6Jp_{~Xul^r;DT33@bbSFS~z+QB|+0p#_C z`J|cMLz1l^E%@@}TJzCK3K>2B_Zz>_>(0I87^b!U;jx^v(M{Y5^j^Ci2~(<1n=r`-P0p{S{1q^gE_U03sa|dp;DYX<1RCj9XK~kno3Xc!|G! z$hDU;)u8i0j&E!7l4+FSQe`vGv$$eFkQGA~qaj*ygeAJ%R)Kzi_%DDa-0WPOrd5Co zPsi7X;t(mscF`vdt^~LQ|AS3X)tzmOMFC!M9KV^^AmMMd&8yO(edT~c?A^Ah~bv&b1$o>P5sMzqaeMH#opdi6Q|6G*i%}8Y4PX3PwaWU z4rn|Ny+UzMnY3i3$(f9*SGMf8KnY(FOLGh!fjQc@rT==hqD`T5wyjfwAwtsaA%x=r z=xt(ODnR2+Yl7Qb4Q>CI0KW)Xv)#eXGok zmTV5!!_^sF?&a%$sTSU(AsFm3`p_V|+)mN|uLU@4W}S>?Y^BNA%Nb{wN?vOj^y~ZW zS7NinM9<$g+!1kHT%Cn#WIhD`*gsy_{u4drJZqr>ZHyE7$$Caggv)G9>)@`5kN%Pn zDgMvaQcO8pWA?nG{of@QSE4{^FfL=Sd)9IkuHen?H8D?l?GNey+zYQqSJIhp{`1Nn z?^9U(hu&|)N*S2yH^ z1EZ;_n;OdsMLy`QO}$YbXQ7!_sov{t|Gw2oS@0{`Ha?R_YO2ahOxQf0KoEJHPO`CQ zTVl;X|La!~(mGA6{h@9NU@KKyM-R?SdmwRk5gyDjD`oo$;~ zQE%fD486R+|0JtnavEi8>}x4)>fmN}8yCHmUJ$mK$E+F$L6uc9QWWyW#E%SAOrX5et={&naDai0Dc<~0q$ zOAE&r$0^^zhZnA0_}vKCn!(^iju`}Mp5)*f_YH4Fd^C0r3Fsr45Rn7TsT~v`bkvb7 z|4gj|*fz)2;p1hfKkEnQWHVP!SU!JJ@OW13Lp>s$s^N@A4;Ic?dyK@7E`SR(vCTsw zIstVB>=d6PStGn4V-7_k2-9vq8~eXs)M&Hc%&a&dfU&*e%0KlEtlj~or17B$p||Q9 z*KGB-2aDo06%O3G#G(iL0t(`Gptr*~R|D5}U}d9ai=v1}&5}Z?Cd}HAFR;f9*siY( z#_yV0*d)FMSBs4Gi3vy=1gnM_d^o&TWS;c>&(Y}V48>IvU9lx=CRFcFSAK}rH$iLE zS#QbeeA%Z%YVYqykfSZU0m`AF@23Mz`OmC@dlG!f%(tY@g5a19nXKm+VTeq1L)V~% zoHbvGadp1GMatoLDHwBgFsWYcs<$$xVw)nD`mcVZ6%Nn-rCqNX zh*eu;BJM_fomu^UIAJ|ej7rt9h^TVV;WQWFVTDBw6a#-$^=;gNSnWV~)6*ML9ZDcu zZ=aN4Z@a(kQZhyWB}Zq;1)g?8PXY!Pq=MK{W+$TZySDR=iQDmV=N3SV+eEi5`8cEJ zd6g0SuX5#YB*roe`i)$XDbEsOVggQdLAi!(xv!|azl{1HhOZ<-eogzmvcK%4nd?R;brxgl%(%7QXjr2Z);IoRzl~-AIQF9%!gg6ezL-M#+nLXql zyZc|m&kz7M9ko7zJ{P8%DO%}6r|fMM-!n;p8_o@d#2Ux%9(H>##bV8HW@B0-*Z3L6 zAf>_MRKszNq>H~zPns@Vfr{*igeeElbxD;?)E#>)!vr)0!8_UbLc=S=)iKBELU%od zJND6w&v3^4xUS#W8QGs`lTyzG6??$xo=rlh{Uc!XyDBN>zFhKY2jkak-q!G-2-ZU|-oYTK0tKoYLLMJ0q`Umkc*~lJh(CBuo0gb8&%-c z`?3?6l1~i;a#(^Gt7T{!##5G4O{e-BGc@kim#dr8j>U{jUUMO;J_i*dF;Xxwoi@H3 z)zgc$>CEvNi;s51EoA1^R~dG0E#0#z;^!Gr#X>9Qx$X~NEn{&X21K@OK3&1*kyT8Z zW|o{amMsksa*^WCc5Pf2d4+N-gW~;b`KQe2>Rbp48sb=d^5kmloXu0GGsBi$iK@yV#B#qS$#EKK9)8k+Ow+SJR zL5Pr!(ScOrkslFNqZM0n-2>w}K=k*p_t<7ZAw9d96GaVey$J^PpxDiK1lJ|nK4oD| zxeaBi8C}*EWft#NQ>k#Zw8CIqH9~!%JmDTb5jCA}Vrs)U_QrpRWLz2S(4}k7zt!Kx z)cUnQ@dFFGmVMs_A)8o?Y305q^r4okiU+fU@ekqs_1$|Z;#`C$V#ydhp&5iXqhq$7 zG(OcnH!65|$jEJgrp1L*;jv4nd|^T){CKx$0(|^6
em?2!_*AI$jIS5nHS2Zp|T%%1C7s6mFj=u?BglK<@ zav)o0>4q%r+xI1>C-YS0e2!TjG*;1HDOKC~T{OK20huiU(aA-`hQ|R~S!%3n=jqqN zSNug$=%C>}nBJghmaPn#oYJ~UAbmnHP6Cdt*qo2?zUoh?$?tD{58Qz(YiWb;hRSa; zoy&sus%sEhgT_ZvjG7C)-1@0k^%E(?bK(@KnxrNlW@0R8M8$@#>_ zE^zb~pbw0&j6bl^OXTz$^ob8HClkx{tMwNGP70tX1k8Fg0@od%3_9Cy-V0WFVl%Tt zx{ZLiQ1vXy&GGY;t1<5uR zL(1mN*c2j=vn%6{@#G>H;wWz$fO_}q!kCw)w7-MFdH`irrE(oDoIxT$;H;%j?||Sx zV9XT-u3+tYi`@NBP+Ux{^^9}AYtUa;R`kCS9Q&q}j!|V9Rw!%ZBBmy8^+vT%=8d`y z`;bL{<6NDLX53w6_G<^1`QMve*dkDzD82@h0X_Q9@DXqMTwh0b8WuW}EYw6uO4Axb zzUF`ODMsULM(?5+yuSs;kRMAdD9U#LIgG^lUi=i@ zQCI!aql1Ha4lc1)Logs@`Z?rUt>rSKm&?wjE9vV^G^O(WF8#U@o~O?0u|E_ePghWu z1nzCF*^EjHt6PMDyj~&?8TK|$=GI{hy|Q6!e9&HBjrIyYYFWxLMbd6-hG$uw8sowa z674+76({=sbB+-``xPp7L)FTVQJFO?OZeWD92}k-4p2>tD6#CW2iKEwE^jgAz(hQ9NACx}OIB}4P80!fG;4qR>jdZW6Y97-f#cifdW>@g(9Fow z3$WwwP=*X77Hg5I&PsCbdt zg$e`>NB%2LbVEDYc&<7X{xab@)#vE!T4`khy3378D(=R^^Zv0@ouN8$S5)!pap!>E z=CnEUTbxYx9$&r{t>k3QdTVd5e&nPmn8d~m46|7qLd5Vt>UH%dzkG^_Rc-SSa!yj; zVg%?b<~V!iTt8Oj_|TJyDco}5p#-g081gOMIJO#rBLf_$x|5CF-GMAyyaUdZBnJ~J z!MjFvklp<)jKB3MSxtEV?kF~V z4Xlplnbm&nq#MpqONg44tEMC{K8kSmx&GGbT3YlH!+?5ZN+& z8dsl4Ua9YGOZXZCy2NCTM^g81`<1>4=_r#n)lsErXundNEi%t(94skWdXh&U6BGR2 zlX=LAHY{u>$P^D##dZW1p>51 zP9BY8tt?vq{$~!upS^K)o#|gIU7OVb289D>pSHiQ8FaQ-aQHn4`;7hiO-&-Ix~%yl zSiqV(JcxcF`Qig$mo@;$Qr3QV(j(sORL7P;FuS_?JaXXkuk^JDmuPVABvebd2*_0> zK#u!hY2Yn|N`kfH`}Kqu@pbbr!Rg6^jV2%_5wW|vs@C1DpdlLPZLT{Lzv}!ySe&-E zSU=5f&3%YSZ1BmXNli5@@{30e;54TjaoTAGy+e~S6(Xvz) zg;y(}Le2h!U9UQhaJ0q#8G;%54P`)-AJ>;)$a+F-d-kh2ic=sh^*o zv8ceXP=UZH(NfIL3G4$>f~x5=5rYz~a7{M$so4Umi;Rf1$;2YjoAPY|nD9lp3kGW( zxCA-X+7e;xxUP`|o?>q-h)NA!DnCZGo(lT8G4CsIA&Uy2ymEVjgZjwD8@vCt2+lUy zEQy|<4h6y%7Vc@_Ln6BSoQQQ;^?pRV9k_``h~j;dO|vv2dF!~D-4Sp|$ZTRNF1ANd zJOZbuh5KT>%4le-+Apq8envWR?5nBMlcxk!<2ERY+Ez$D;&~r#1Ub5uFDWrU5c_LN ze2~gaYHU$1ETn$h6y0)0-8gciGmTGV_Lyv9l;r9}P(##6<)*Ezm&DJ-S=FV&OcfcZORX-oPBu|N65d{@BOA2>bfD z`SopFoxp^wyF35V$*Z_z_j@T3m;@tp{!XmkG}t>RYJ6~Le5~4XCW6R#OOWoe^1os8 zpJZrm>A!4i#~yZu#2O%gkB6I7C79_V$600`Kdq|K+V?16WNDRBMeHb->%9K$jB`=& z9;9Ftn8n3HM5gg-L^6S+zHm=R6pmS$gw8LURRE095(jv7+>s0NE=a=+fna4>U&sd# zqBy_dZ4OWFv9de7SCx}x84%E;yHC}D3sXEyP=mo23sQ#PyIoAZv|U>ASbaIT?3S*2 zg%PYNB5<1ES^x14ut-&$YK9>nm^)(@$|6+|X>i;#kgej}&O(yJeXM?1$v5>TAg?jM zbqz}^$dL7j)^)*sxUF8?p6Y?Sf+~Tq=O7uc&_B{)uInowWSofN0~Nr;p_zpNQj`H2 zEkI3$G(QargOms^$+=_gt|9o~2Dw?-Q;XnaF(?XEDWyNk^6f~1(*uQbSU%>O(4xY- z)vXIF{{g>^aJRZ`+*W@uAc$h`%FHs~mrTou2eu3Vw)rD|w5eLHB7lgu%ac(=Wl(>{ z!c)b4YMz(ERldXlvmcP@pUOYln;OR;tilrgA$6{{De2#9;Im>x0juUwaI-|M*k~>-8bX-?7mx^ot%=B8!=Tb+i8wy zf&>@$bryArSML=gQusf=w994*I@PX&57e>9qwWf}$>aP0U^O|fb<1s^aO7>4NSyDn2^=R{l3h=B7G?C0Msl`8LDd|p$6fZu{p!lU1 z>V9Xr?rQe{_QfW)6t0Q)9|Pp`3~sHRn%0%k-w?aCJ_T`tCE>~x6zt%B>dP(+?esL2 ze+twJ1Gb3aUw-lcYIW-BbBS6tqDTjokGW|1$4@f~$J*fepjUdv2cdrC=3pvHrzV9wwFqrpnq)4wPdji$CP{GzJ54-_4x#AD!%0M367c-*&%>Z zM@K~q?bPrG!;@m37ipb#k&rcv!Ta|>us<$BQ7+JCR>mXanlccGBK{;rbIPX*&$uIR z^_qC+?i9bt4SlyP;^SK`0xInKzpklpzw^zBF7Nhth&rb>A^jM(e;(v5Up#Z;&1YDACEFSR z*@j$m>{r0999C?m+9s2SDN^Zq)Lf%_@016N37lFA?x^Mg(;855sLQ>z<>Sf-piRG9 z^DPMnj=Knziir*?a`)JsKjLXn*sAwz?nMt&H3GXHkWHgigZ|$|k53U#+)Gb<>Q~BM2ya%m6_~yDU;I)m z36SUF@=gs-QfbNK^Ck{16zH`{F*QZ%p^L{S$HX|!YgeOz8Z@Dxx|4s_s7FzRIPoJ> zMhPR#CMD=tWH2-IAX~xVTzvjR1jRRL)c?l4mTiA`_#dc&P)c7oU2?7cEXd9EL5+XW z23^^G+%|*?-hEWPjLzn!@GMr#rw2;pfaVH{n(n=BzxWDuhi-HhA;NT zPrx)|gAcvI8!t2JTgM8TSeZ#gkS|j}>8p+;<6f=l!vF8*c@nX9X61LL3%15ONP0KT zKF8h=AAbz*QYC;V&Tjo3$2-yTlWu?!86#YYthrlTiOe1sTo|{v_p8oXYWR1n9Ve1~ zd9>wJxcJ!BO-*1iWf5ygR3DP7t(+tyd}<@ETKZLTcgON);jsV5m0}(k4-$ddm0pf@ zLr_aiYQGzQ{+2}PTUm`5CBuuvK_|`fK`Xfslc};av;%8vp4QBC1cs4G1)elAk zqEDfxqt~1%q%j(HC&VhuCO^iCh+%q?(XEJsOB{snJyP&!p>on*>vYmE$dFD+m}T?| z35Sg-WhqVl*A^5BchvvOwp|n~EMf7;x~)D;v6>z2;x;9R$#Hnyzj=4m(7wb?>Qdxx zI1z3=EO)wp@EgYbW^9nb<*MP5ZXn&d;=ZU@tJ(}@xk72(L*wsuyl_l9z3@Iwh`vW3 zuEe42W=3@{C3c%tQB|=vak5f5uZ6^<(flRb6Z6EEQ%jD+Te+)KXi;fdS|L||g-D{l zHCO{?!tJyEb2S^j!vW{!S|3P-T-RDAw}2?IL^b0d*Xns_HSm@AAhJKC0Pl+2zWJ5=oLZ}lgBVgk)w6B*HXP1N|MAchEwm`)4J=Lfvu4gaTvx! z-F}ARquf9JQ_`?mGS}Gj^=p(RaYGu_>YZHlicfB+2EqJ9}ugHU`Ht zgH*OVd0eT;$ra+0L*{9g1W`y)Ja2UZp#?4+YC)SxgfZOOPIwrfe?`UTdD_;e*A8-P z_zId{1zrs||1&Xz$#{ru&`3C|fEK8ys|;pc`GZ5QlLRL7b~7RKwcq z1lzue5rz*6;$3~W|Hk#~YV4)n>7@JNM$;&i%T1Ds_d{k(5{48F3+*CIj}hLVA({H= zA1}dWIJ~h}NSu!sA1`@2PegnrADc0q+#({mkk{cc*e$;&V58NBYYP15WBcV`#-5vX zTOfoinaW%ZOFn}gz+ybdXY(-OE!5`Z|IN?#!Nj{FC9eyI6ie_?`V)}# z<{yxLp(ktUy)IVFH!R)`aS zbNXL2h*H`X?-yQBbub2-h}A$xFGV--kKWFOy_!2{Z7$hmZQdY@hox~`e8rdWn5&;R z{}!g=AidEL116G_zH?EBQX7Ih1|y9=rpX@+LNHJ0I~g>@tGOY&6 z`kpk;4~%aA9n#rCUmxL6_ksvMmiR@yMAWLAI`xpoVI(3ntfVUf3W0zw7g}~s=(VPS zH@)YU;-z**yZ(-?-!*e%Nw^h#mx_EwmCrjWuRk?^EY|=vhG#q&0f8iW9 zj3f$Y%(R$JAM`696>8g5^q1|99aOecV;o?jY2^Fh@P*Danc412!sxhFABLAct-vTO zKM~Rsf-E-_p}>MXR<2HM(E)!ts=0TA;sLB&xe{t%NOWC0Nj(C?*hM%C45i}7rmjehjORZX|BSiG5jD(X z@H%hVNsH^+tU5p4i!*KlFI*kR`Fm?!lR%JTn+oDizPx{OM|f(YXMs_~#7gcAgEe%$ zmm&kl;VweE}BX2kYiS93~zlrHM*QtbSBB=cu*QS??qwn%Zo zeUBRQn7fwP9kQ=D*5M@Vjc8zN{w|V|Di-|)KMx;^OxRR1%M9g`=Zaywhjmy@fz@Wp z-|xTT=(ARM$huQ0J@Ig|?Yj*EDQe?;YnjfG7Z3D8lM0GV``~KW81NG5l78M=2|PRV zjfLN7BT7@6rq1ru)9`BYEF$M&68nJ-35j9#^;Yz=V((%Cj8HeBpmh?SS<*1 z0yFB3K0Q;Ste)0zu~Y`x5q{AwRteoi&^@17;FtaTk!qiFl?K+NSN&wO=tKmm!%hUV z)B%?eU@w9V2q2DI9^scq{!v)wdB^?V;OiSML7zn&96 znzwVI$Et=P6txMS5)Y=9G>*VNQg=}JerL1eetBxnrm$W1OQ;FV znxWPc2K^+9u1m=jk#ta-wd@)Z9WHg_yxUp?nR12f;8z2;EY#4tHe53ig7oa4^vL~{ z(kxL}owuH}Jz}N=*=)d%3d!i@u(wi)RS6jR(`y^c2Ru;s;<`NDOA2oZfT9^sw@ObK>981%lrFzCq{!m4kcN-${gU?rVU>iQ>h|7>;uj~OqXv#3Wo?q!l{F7H zU5sGp41NgC9J822Npj+Q5mYnH4DjchU**fmHZ2Me;SJrL-stk(_k7h|oJsPPwhCJzlLZEcvq zPcmzxT(CGdy$HYw4(=4@$o9SFXINTI6i4*ZNx|_NsF~5m=6`m`ABe8mB*^I z=Z(g*^hM=!5x@(pTzCDU@@Z$Bljq)#+hd7ZWet^pS9yim6!(FBbl@~yIP)1qX5cj% zQ&6b4?pm9C%!d({127*BKw$aw`u+jW`%(LoX@y5ij9u5OfyawDeQBFxH;~ZC_Lfml zjQ=I^>p4fCmY%eI@gV!I-~!?hS4ntBWBVs6k9E<9n@qYK8SuCj_mS#qG>4V8bCmQ9 zd%iJ)5v)fo9Z%g{v4#I_jP=3lZ-G0K)t?)wTnM4%JL=R``DZC$h@v+eC{qrd~XIoFs9cB$0j zc;L1w#cZI(`YGpytgQB`HlNU%xldr`#lMNkE<=d&L>3Ym$%zLnuD3P_9elr%rOq#S z=KH8|=Ye0Cw6ds=J8k*@YAnw~#~Ltifc?cl!@qNT#fn}$aJD5%G=0a5qs71)(UAM+ zM80j)O93+)>X+=eU>ITUJxACybkJv#^urvmECV#B%FT8VJ}I?cO>xP#bK?|pF8=x= zakzX#`*KzE#1A{tMtT2B4x!jhm| zGtz$HjH`_dlbrh%x!_TJOn)I%tC%MAUo&6mG z-egy&WlTPmZkW~FdlG{iD&dDY_`_?d^hgSQW7N^Q56RKtOwcql6v69L{jg{>4d^gQ1%$LI#b&c6DwUQ@u$Bte58 zScXHxWClKOn}v*etq>NirH3@0rw4$!)7Z1_a>sSBnm~B5IWbJpgPjtCJI&mI;Oc`+ zLtANS+ePp@Xe{^6#%t)_n5DUD^gq=kq`Ttai{TQ$y8-6yZm#g==^H7%)1%CLu*C2O zM)dxVb*G(garI4~Mo8DMXRC?1a@}&p$K7Y7!=2OH@?^w>zeW^glP|7b>8y zGlkBqeS7@LXrO1dV1CRyuHr%9JTQIbkOoDTz+Er&@oC}CXlV}PTg~FA-XI)L2qxes z|D+CxY7mpGN@#z(uy<4$@deCV zqRN8#ZY-9-kw_$TZno`mmp?e+3EJ6eBH$Sf5_*YxcPtfzYptEM25k=oE2`t z!$JT7P2~UxY4ixgPTyzi*ZA#+tDN4#NXRFf_^^QIP%f&D`s>qH%+-xNFyvi>jU<#% z8E=$Bv52#X!2ST$9}Xb-?#va7EQr_K9+sPX>t!|DH;A%uz4$|I-D^Z=R{`<&JGtqh z*OY`Ezl$w3FVnpr_M9?)dAPhzA~K;Ax&Jk|7>OAfy2CfY3R-NG(i*!=O3pZJA^x_r zbCwD^T^|ke(ZA7S6vDu46E^*q%O5Qip2E;34t;kR7zj1x3te4ra)tFXo_Ji!?ri7y z0jfJ}-E0IvPm(Zvkmv-OZI=PBI?CA|E|NKlT*$6?NB?)f7)&x{9|oG5@!SqlDSrq6 zyOT@_eKH+7m}@!jM}B{4q08-F0m{48Spl=5ZV(jRh9 zsb^eZh8BY78pYSYeAbDO4Tz*S$OsMh+L1?z#mQ&}2;487kKD-Rw55%Mq>DnqBMaa? z#n|j~#C#roWBbQQ^Vqfskq$f*UO6^?q`!mP?1MgF`LsU=&VGV{=x$s~O~xqbc!m|Z z(_XhV`}kpIDP-ao74iKCr2EecQ76>xK-MAlN|7`UlHQp45{P6hDsl+=5X2|NE~~y- z;h0G<)PeFs@%?@U#9sdfC5@1){Ud=xXhFA7yT$oVT2#Dn^E;y4C@f=c2@W2qL{A7# zn*eC?XBTbwkj&8^lgnyh#9WnQh6rAT4fP2M7=JM<(~MTf>m&S?ILB;Z3}QlYNlkgbDZXn+yjf3yFXh09B?({4@=F%$e!&K(LMrx7!~PI>Qa>`p8&!wa;oTX( zxj>Fas&=9F=&)shOX@rClB1i8tz6t+APl>)GR!t{Vfz*cUja1V?&z1qAx)C;r{6$e z`Wz>S5FRt>2G-|cjM#@bY(=lTbBr0(mlyuxyv|6sQ^0G!1phb%JXiC`{Xsc1v;mHj z2s|?7WJ3n+l}gX2BGQ%LE1H097SQif9j?lbpnpw{ee}U__xAQPl5pv=8bBA@zqdGz zZ9^n6E47idbGS(j^njU8y5+;K@l2ZQ@Dw``WVclTZFX1T`#SYc2GoltwYEfP6PDg_ z20ONjLC)jTaO$|9!=Z?ODWgk9zg27b!?DxKl^zVuM#(;Z)r~c9BE&_yoe8y*Lg&+S zivPBxg#Tsl@pq6)W^n8(-W}dVl-$6mc&Su@@+}I{PbpT&qHR^}s)n}9&I+l+q%Jo1 z#GBd9w!VN%!SGGrI6FiF2h$qt4>%`K6-23|3o;Os`>%R7v5BE*l5xH`O_f(?lHM=e zf@j3$?`d?NfFzwNILI6*){cRLNiyf%&8wm(Uy_@vX*kW||GZ`SOg(yU}^7 zG@VN+AF((|q@QlPsy6}UNf-QcKP1o<2h?Fxn<3=QS`Z7H$*OP`C=_%NeM5CGPpS9~ z?C$r2wT3{=G-}qQS~hd5LxoAcl(u#|rQuqo%DU3_(T(#z$IEyUAkfQe>- zttJ~S%!>u^cy{?bE~mZpsQ80*s=jh68_Yw4YD4h-QJBRa zz$_B#Jv<83sB=B%-`0ml9HjrU1Krn<+q9kzx;+Q~j{KMzTc7psQ@h=jYkm^HQ_v=? zT==*MXZnQ^j9~9GsB;MqdrKRB=O}WjzsSZEviBluJFWH(MN!Nt$Pc@CmY#n6v&^6M zfcS(y1EmboQTvn+R#BFk25jw~&F2`gXru0gNuc_#_xtfw_j>~>b$ntbm%;=Z)+8G} z$fnsu{w()4^A>x!xG@upNoU0N(n}g&V{+_Q6+9lDyYl4fC;IzcG-WmNQk><4Hm9@g zW%j1`y*B_We*vR6!4dq~7papWtb4I}wJ&bgM$!zq*IMA0mhOA{{bsBZe%Xc^o~>cK z_5ws;;z(M^BfNq&cp<7o;{++f(Hg@~M4GbLdjvkmF-9|DS)+Vr&Vct2x+o&FCa%5@#IwJPGuJO7@IS@&2LCt@*LYw8Epg4m4Uj<^Kf zg`&Y5r&Nh?Grx)~r?j#Im?$TvXY_-9Da*8YtDZ zPc7dOvi|7NMjl>F4wq1=-G*|Oy|tjr`Yi1r5j=1B^_5)j)i5ZW|5G}+lXLl76FCS@ zJ=6p1=;5O=4AWXt0(fr0$SZw(k<}Coxg`;UE&cGV^YcvQVT|iii!}+M9%O`ht;nUu zkkm@Pq~jY)oK6~iey|B}JTQonRfW}~jTY41t*E@(J6`&%q!AZ-+u}6z+WwYU4Eu~1 z6_Hr{R2`QAl+y)3^^IiW1&%K^n_)coE9;p528Hu@@2zwD;&&_6{EwfJEMP@eHpjcP zo{oXdQh%1K*5@EDG2z-OrdB7yt{}JX&Hu8%LLbVIM5>}7QGw+>MV^W*_&gapTXy^( zK^nNrCv~(F#p{?1)oC@Ru_KVvFM=2nd6wJ(KK>wu-K)D4KR$t4KTYOp)azU zANlTYlM(=!8%;N4^5?4!cLoVwH@UykrR(0yBaGUHR2b1aqM)$xmgzEiZetYco2FR} z5dmdQWoe1m)@2uY1M^q{>e-BbaE!QIsVzcxh4PcXJr9K-qp;Cn3mL@c zpT36!p~!!F(3c#>-SN&uar6X1Qm&dNsh7OVhFs+C_Wq^|C)-brjx3WCJ785x7tp_G z{Tb%!m%XCfRLOyQ13h~Q8!L`T$4+*k#uxJyiDVp1d(l+7NG1`@WRdHT2EJpc+aHxy zr7?-Bk6d~?R2SdSAzbF!41Pq91?xQx$yCTz$PRGGsS~fU`rD3aoe{d^#7ujVezyko zgaFyc0~yT9)<$IBTSJ4nGjH)QK35|$DSt^;UN(+>#*7}QgW#4cdTMo40*|w`yq(|o z+9H1xh;|jp-wRA?_*~z2TGU4oDP@Jk7%_De8#0GSbB-V~L;UKd^4!A$Rt8up`I>cW z!r0)h6u(tW0&=yn*^i2R|vMFVv>rFhvLe%J`)U zrYz%3;Uc;;UOiZ^C&cJhq9hI*qjj~J2dQ=vxCZDRp9e*<@#!gH4wwTW6`@3>aB ztoWc13KRebWjV8IOpP7!<9`{U=T?hi5<`_UTM(isMUc)j+NXu!!^31)yO6NE!q8b7 zbI%+k-`lD-yKgBOP=lY+GCRu>0=hs<3J2HuAVa=~51SZ+RN;%!H@#^Y>4nG(7;(JZ zAHRQGXe=-eMj4T{3Vehpbe&b7Al+}OF9ZIT2;=#c-iNxzOKd4FQZx=wYTwyVzJyWx za(OYx9=I!^D6myA?i^afmH{{jknH5m`RM>Jr3EF+Fn6l$W*f+qMv+SKC!6VeT>M`t zGkiVIZ>*%Slv9sUtLA($2vM!mxwdMFiezppN(k_azxKG<#Qz;W3#>xaEKbCshYhjB zmYW8eDuV)~&_Bd=`a&V+HHny(BH*Xf_swF}V$b?mnWu={)zE6kp zL316!f=Q2b+33-nOr7ENES;eN#mvr~F|AcX2DW+F${Gfn%{Pn+;$LzNCWV_SAHc&% z+&u7$AG@n{rqb)4r<9VSn#)%RLWB#}U_HymoS`-Mo8&{GJ&n9vk1G=6i?o^B{b~jH zq;{R@WJLc+hKQeZ!~SK^VX89=6-cNkd5qG$RQp~rsyc{2 z44mFrN^kFVQZNmjir8k+&Q2@TPx?( zi{DVx@VJWK<((s`Q*trOe}T2qse0jyG~B-Mk!$!a4gET5_Y>{PAGzi6YlQZEH4t9p zK*JxWGQh)%@6&cND@%CbrN63$Jc_3A6ji>fx}Okg;GIQe*mgbIvTytgsD(@8G$O9& z8ZnPiO{^yKRQSr69+~GGf2E$^GfbtDe(z7T;um}?R{1GOa?tkfd2Ox+z3U8kB?}Du zC~`hry*>&N{}`{%3cUiku8_r);FEvm(0VLHASQ8R`2jy2nkBd9)&I4Kz~Ebw7aj3e zs)66~A;~Gb4+6PIGQ5RNv{KGW;&9>CT9)c{-xBGUsw(Rse6Z2DX4#P7qeGJfv`XeU z11$TW4HI6s21(g<#T$Jpjp~qCKUmLG2?`YB_G`THV(EdR(~=H3y!)f1US}qhxjHVfck>BqzJO< z&TIYW0h5X3wh&OiIPSVr=b6IerFGMc+|gjw>#NirFj3a|1~WdbOlie*)s=tbI`G|# zk&P-WEKZX~1(c4W2EO5Q?G~q+-zo~KoeD>!x$^w1kV)uaTudAKXLc~^k`0Gv?5Q94 zF4%VM{N%*0;w}{Wdur!HjKEEKFaF^9ZDzEqp9M&9w+IHJp5dL$7)CQGI? zo)c;(+g2!;`UBTA8_8nav1;&iPy%TwOh)Dy$qgq@!md(BLd|t!6k|!iyP6=#T&(TW zt}b?osLj)CAvHPXsQazDpwW5JND*lkiZ9nYgI`{DtdQ8@A_GAPVTM)&>*))UC#Mb@q> zea7)Q2y_1kp$*EkyT8Q{dpb5g5FjN1TB4Pi@!{9M7%_TioFI{sQQ7Qk=zAuJZ zCLW?6M^Pj)9F=Gu^DDOYp~7;WDz-}5`3_8AOkLSFx_b?xSDFgTl0l*Nzv=fTS-AFW z_M~l5g~2*fkH*Dluakyj%D6DH28dL^ffHEy0gP;#D+mHO?&s9_`S!AS)@em0tp}-A zf!+Og@vTD~A)O)P_(vZ_nCw?ECFxAGIGUxx+ORA#Mj>(>*2(d*<@xH4Q;|RHS0`r^ zj3&^o53O+u{0X5*QRvu4{y3{PfSuy$Y(O!oo?~3Y$iJ3AGIn1JrCrCuImB|@WoFjr zGxE4Woy8Z%MEoW*DCJg;mc4iVVjj~a_@SB*aEa1nf@M_=$qY0Trj78P!0?E@6tr&RBkRRJxo+hBSrLDH^AyQNQEZX`r|vGqTDv z2&BOSkE)hehZ$)5H6{Ir)Eq^A`X-7yjAPu%=J1GlX$?HS2Qfo(+0zRq;re_T7D5za z=Gx}COtXm_(7EtbE6dyR2dMOq8ehU(#nq2!{Sq(`Ro`ex`uu?F1~hRZ+;0Ka+u~k) z{tmm5x5QBvi1T&o40c0s%A$J!C48*^r~d;tA8$(=W`)2qj~X*9iInNachYM z)=%ewMXIXA?mfre?9XFq>5Z$yrB#X(Kxz!LsPzm z;2G)9Mn^A5(drwoCqF^`C(DDHBuz$fj&H7yt`mFad>f5<==KTP&uJrecW()cxey^I zNEpF5-Oe3LVdD(pi&0nGQt5eFQ!MRqClOQVjMC~OI0on%KYyZ!q<#prqV}3tZ7MNN z1Ltl?!2Vs`pm#wjO^}-2dJEf*E!9tYY7~3M^Qt%ookmGv&c&D;X}3@tq(3|Fl`q@+ zLMR^%^sw;z}H5 zl{!`x&qr#;_9Ztv7Sa02o!ikiH)NK?Bp1=u)cA>%y&6{J`3d#KF5zbrZmwsT;E&?d4KhRw*DzJ zD3mjz?xjGk-MnI+h9Qn6D~`~@CfnnsV`aVWw@HSXj0+a)XX&MBrJ+7O`+sBN+8OEL zqg0m8-4ZsyeIl?nF5M`-&<@}E94R1kO=DO43N?(Qp~x|eqaagrHgNUGsIr@jt#aVi z?mU|R2Dy5Kam|omVyMXe=WpVbBQ5p4L|66KnZO%_A27ONFnd?@-;V+jq?um!QWm>| zK=(_gIT2f!fZClX=zd2hWeGEmYo<*XjhdGR*EhxvW34+qVlH%tj=w2*e6=kpf1Vy( zx%1tcPc#T+1c9oU(JCYZ7RkDBAs6njf z?Gd{cZck!aNAunEPxstgJzS4wIUsJpGjmuHg6n#+dHCcD z+4&f}WK&IG0yWp@w>v-2d%?F`UQl&y4r>S-a$garwe=77!xcmq6uoGA6i(Zw1XMF8 zlwcXJIG}!Y;lV4{KOL3tGEN%~03e|7Ioe%svj-#~FSY5;9lPeD>YaZ1!`xUq9?Wa` zZDag<1UVTKo@4%-g6%IMi6}v0Iv#>%M;nDK}R>8H0 zu{oO{uq9e%LV;AQ>O?f zUIlb2%s6W9EEwu^w8F~2kK+-pUpq~T`>5Xs5QoDt!RG*P8jrja&5aTvRi!kO>#h{m z3~GoDGXKRELxPZyyQpA9bf2!1Ef&1bhk1i7Smm|51aZW0EdQ%tVMVd^Bu&KZ=yf8H zSpaG|cbdZYlKs7Mb%%b;?0JF%If2U!6RqoKYflk5t?G6I}!PzKb8MzGUxvTSx)@9+J z-h-xovGif(Ab#OB?P{?%;-o~ggXV(j8dXq11jEg1ld&Gzz|)&MLwhawf7x9D0Hra( z_mpf#?;7u-1Lpw4i{-^8n3M4?9899+*W9rMG~sFwR)J)*k{K6>5aiVWR&`#Z#3PH z+Wfw#z4>`!&GsyW?%+_X_!50tFP>cO2NOrrsn+Tu0~dX{0lD(C4s;|7UH>e?4;g*# z#E@Tjyn@SdKTkKH=gwKf{n-useT?3|D1zPQb9iNmo65PhsgE*zelzyVf=-i8Y9!Q@ zFn){n;s@UUQuSkF>+oQgzW?&zn>POE#xqs$f5;-)WXDL^LO6T#UNP8n0(r%GmBmB4 zi0|v}VN9VAqxjBpN<5T8T6Of4BVPpwMGkxW&81Ye z<_ScqBYG%^&jlR6`4XuhZfEXvj~Lxr@Eg{{A=cWszI$tD36vfF$#6-uZpU)cMWD!$znbe_!yPBME%}OGAi*uo*75S{XMgi%lM_2jmSZri+7wMQ2ju zMvdM3daAWv-gz~TQpIO_=luOJSQw`(I;|(&`d7b4opK%cl}Kb3NT@0Lvh&y zYSfmKys%Hc1B(H@IRPXx+fNO;(o5A5wAE1~RjZHQ}qNSy$9qdJH3663-xnKHuY7RF^ z;++KQ?Z2TUEXw|~Ln{RhfCEY5CNNQvRju2v`+v+6fc0BnOiXj{QIBd|cLnYHTm2sZ z@IVj0Ym0+b{eJL+gjcsX^I7mR2hYcIV(+{MX#dL{biUl=V_&1#J=(p$hf-c;125@o|x z@2swJZe^7N>I+cik=339OdtVyU5oupQZ0}Kkv)@>)6e1^&m44s@6rKIS*H1{SJ>F-?^`bWDd<^7cpi9&k$Vc7&amITfgNXvnr`OFNTH4=`WG0($X>XEEz2lb?svLqOWvvQNtZElVJgaJ-n=o&qhMy9U zI!wgH$-|l?Y;BeMWp3Y&z2*v@-rdJbJ)GqW1p|9Z>kzI}%aZYG2<7@nAs-_Z z797&$YE-L7U0bh+u{wG0uG-MD zl(>&2WxQHMt&d42A7gX58kg0hbfN&Pn{~W&N2_|ZYKkKts%ls2-)f)h6jS`X;F2r3 zUL60Riz*1PcxbNZv6xCL$T2%w<@+XyfOzGxszuwC#zYbjl!sP(3PnhgVG8dD5|E(E zPjC!aBc>*sg7RHezGe-5Z^b$#duZitNCabay;6updB`a@$Lsmrg)P2z$vb&y7&ELl zJXK-cpxBMtJ_cpHs@XIpAN?5C^W&=`BAjZ^62mv4ph(uFv#rZ?JFdWURod3Dr{igdmUiIi zB{}QHxwaNUMKz%94Tr-Hv#-4TOC9*N9@)@88q%tC&l zEH&fRh~%RWM=1Fy3_sMI%8(I{LGAJbRS_R6oW0{p1o-+;{Y|l|I1&~5;+#b)OAAdg z#S}y0)mL)cwJkp2gg2whw&2?je1Z5J>A{- zNh)1$VNDS6OkcD1u8B^zUg4gx4lc|nY^u5*>iD)8ZYX^rkAzYLxs=gaw!yF{OXm*i_y?~ z#0E19_!y*CAwOHI3@k_7$Dnk(Wyg+EOJpEcn0$z723e!3ApUH;y6e&xujA$hD{-cp zc=R<>&bqqA;}^HMb6}rStQeN**)WbimqZ}S&TC3arkG-MT+rg)Yg_!+82*EhxX3Rv zdIUt^coptO`*j;pHtl)`Cv5q%{zYgnh)hT+bZf_~pDqCtNkGnjEA3s|co6Mno?3ON z(!_Ai0Oz0MJscXd^=7@MRk@2h40xyfD~9i9+v=y|U_!`8^pK=Ls}QO9LZwVMW;XGGiv&B}Y4Cu)@$#72qr zNc*$4ddz&Ey^iAnghlwJ?Qdt#)<2)t3t4T9;Tf^q&zRbf(ZhWGR)-he)?uGS$B02g%h^$;UveN7S^#oI~;YE|z?Z zlBFzfNm(#%2}yD(DM{Pgu)zzjdq2Ad6|tOR{8)n0x0L70D8~+~2v+quv?7^Zi>dOt z{Fo%NQHHwtP32=A7qmEh!w30q_dmjG@jPca$1=j>UO5R8H!LY5Aj;E$FD>UhmVh5^ z{lwC&xZ}jc5)d)`NIk!@+VjXDut}AlQvEVnurgm#e%g$(OxUw!i2X!yVWE zX=A3@I4Y~aK07n&$BbLC9Ms>S7kd8qp11P6Ok<1skuI!$ zbZ3hP6<#UJQ~+9)-H;FvV1q&^1-(dxCvSfrGh6>SSI^F{!g;&OAxxI5@x&4kk7~6Logm8NOB}-p9Hnqn)vrfjKfNUa(}tpqRe z!9Mnv!UMNmcYOZbXJ%$9Q|@NuWS9wwnF*}vw~7oq`6G#Zm=bHjqR2Ns&qL!E(xNt38K2CPKL{!v!r4o3bnes{=teR%$q`3dbXhCLjTD3<#9qkqDh<~lYu4JULw8*IYPw?Wq+^|^i9i(=wtS_x^ zmo@es?X|Oj589QheO?iojfFer=B*_r?Z^P`@WEgC!uy{v_u{uc@IbbIx(dBGj7T~b zv%l`RaXniG^^?g%S-ZTf*oy7N{k8HnjT2djRfr=RhinaV|Ek6r>E2J;^Xr8z;$7P~ z7{MR!dIujYW{p}Zw)`27Y=0l`3-|MSVZ3A@jRV;TAj$?3)vfPMugcTXdQ%Eu6t~)b zy*6i&nG{Sk0f}e1)i$|k)r*A*$D-BN50?as?`7170vt<9K1%lsBH%^%VytX`&1L26 zH5Kwh>A!omg}L!W>~r2sJWSEPT`kV&?%}r;{-4UZj*oaO8!5T-){mbn(g?HbDVhcv zrxuK&RU}VH@;hc`63gvuXLexBhz(}!f?#zR827QPwLXRU zbZxcUQ`BhmtQSMUz~R|B$$p9X<4noez4=#>lV&3!9tLQ)=hOBY?BRpEU;OF6Jo$4k z|1bA1D2h5&00(0X#A96B2kl!bGIxx!?PX(^ZLf0Eni7!#SjJeQm9QENGe*_Dt&*#O zm=rSN4Bs)1U(ksEbaji5j5`&2x=8!CJ1*nbF}!kI?)+&SNb(s1fumu;!tJ{2-ovS6 zB^d;_+L47;xoLH0un?2rmR5_MSMXLmr?2WHgy#SOniTpgLgASLdw}~!=u?1`sZk^~ ziNpBEM<3)EG{55BC|F3GB*)Fo&Kr;N6Ui&+eI#UwLFa?g?XDR4s30A^d2|}Reu_`_C~C+c zx2uuf@P+fLdy};1<_5=_WTd1}FJ!)xHtL9jHOKz*`Txg*_t$mx^Q-_CvBJb-*ll&& z7mK=kUbb)C+ZN#GO%BIwjh_TkGRplM)OI9USPj|P{u*rfbgmRwi{KDGe&J>1I@VHg zRf{KEcq56c`#A7iC8>rka6jcm39q~Gay|>Nqs5!YZHXBP!cQ)|oWEJM@hdRV77zdf zU-zsk0f|u70{g2Ph_GIjyGLPjsd)|{208*pnXkX$;jxC{!{=Yhw}!D|jEd`89My$4 zsPYsAMEZl1R$&Em(7t?|-ox_ITmPYX+w~uKhPZv3XJ+OV=1f8Lg3RSys*KF9l*hi^ zXVq$_7LtaUb9vXRX4-EzM?}gpW@RK~sX^y;cY9D8+(G2S1kFlULP*I+qggpdW@%90 zPX?l>F@KEhpGy!l7Vw4M{m}vO9=U4frhii(yz3;_-m8SsLU*fn8l2uc);Fvwf&(qH zkTe#H|Xi^Q5{c{<*l zdsCixgi&Jw(F&Rklet_KwY{#5Y_>g%%c(sf(@#*U{8B>KamGg0d&Cqb7Q^2_|VQ4FG4sUUHtPvlX%~xPMxp@C8D4s3Y_-AHxs_)Lv+zqti2)3 z29Hgi`xP7kE?59NwsDClzq(4pKUHC~2=}9WeZV;E(kdi&uY1mFGghfe73yL0ow**(W=#e92y{hhh~ zHHUPS9FmoC3(U>+$L2e2yS&R*MndLE4N^QNKWj;q@3Od%l?*yxF7grPEFIa7AWSVB zc0S%CBO7@%!X)NmsM;QslaC_WzFpa0nBMQ+u@>TPyObQZOVaoHpzZS4WW5a@ojLi} zzw%43*}iX>`Tr~`fJF?U5H8lbQTKfi;TUDXV<{NMU8*Q=uHy43`|7s!;b%<-$0%=0 z-L{xEc?@%3M!Dys%Ev^=jw-Tq8<$HG4?91$;eod2!&_U!mk$^PSG73V!s~z&7uA7a zfq$c#svE-h(>ig5W_(~vi@SEUc%8!YmNe-_LM;EhNmVZ;~XHowd& ztY8TooocbATBiy#vM>N?WT#>zh6`}r`)RcI@H$nVS==W!x*6Jo$j5T6 zVAi@z%szf+@WY!wd_w23J2xMm+jCryl7of`O5Jx1(9u}Esu0dA%ck4*q)M^(>Epw- zT{Dey$Vi0^8df}#Rm$#klT2DRXALPHlbwb4^R8Ew!RZxeI%(vi7}Q;KqiTfx-#bxc zHM_3K{srR%-rAwET&0!|BMZ-`h=!~YZ(ZqiZYLgPy&Tm+x9v@V7-gtzERuXImz6D#<#6pA#+5JI1`Fk-Y8!=pt13Gp=+152i1OmT zu{}?S;E%7llK=6lOZoA*$GxP*{a z64Goodn6=JKFUxVbiPdFV^IIL*<2XhT_7G&)ReqMC%8ZCn6>?d6z50Lcvhq?Op#o`7{vF=`8r|%-DuYg3Ob)eKNp8LgHP=H5!fH_2_0+ zk?fj?-M{|y=YJ_BAK7WafS35sg7TNgm=wWbpBKZBj!~a4WycJ{uw=uskR*&6TwF#> zMvWW!nZh#2T=DxbB&76RHDF#<7*#IHu+-S1y6rtI_cKhC8VM8|5j$r=8+f!`(=QZ@=Vi3}vxj z4IB|JSOA}Cv0+Yl*HZlU7J=gx&ISy^{Ew_kEDIhqSf z&xnNqd_319G*PgymdIRpuIGAHgo|evkfFX49$@`gO2(@+;CyJyM;-ad+^j4);sG=o z&7OjvCmoWyYR%v1u=IB;K{y{5UI=Wjf^!SW27qeEXLH1W>vS|vRD^y@Nk`}V3A*i` zOy%VTV6NT9M8V^yo%_Zwob{qVJIo^7VSZLf$QTsCVU)g6NylO>BTK;`8SoX`T}|66 z7p!4E*KGriTp1j*%+>9yBd()bMMlMPy7LX&|EfL1cD8sMb?#8Y7nUP9J;QZ>NTa=p zR~qF7I;2HQ6YIyb0F0oje1n3Hs1SGI?ID~m@WS!Wymo$Z7v8g6ZfxVg5ko)#c5dS$ zlwVt^@kDrvS55-D0$(d{#71v z=H!N*zyHhb@WJ&N`RHjRQ81rMH>ap-9Q%Cd*>NtnTAmRS^(wf|yj3GdL^Pg{7s(XR zPR_+D?#^33`bdaPNI*VARvuop=gw6;@zo+9gDf9Wlw`s3UM0x6TDd&&2%Bj%x#?L^ zB^Mte5}MwDwx4_$8}!f1r1xh2YbA>3q_OMW7Xx_L(Yz%kZ#8kva2!ft+4Ex9c7w(n$Le*}{ToC!@@>ip zh^uH*^?5PMW)DZ29M;I)QY>wQh{q__lRO3~uhoTX2R~2h2+4}Y7A=STT)mB#80D1% zn%xpTKK|hJJg#bSvcOgYPaN1-5Y_q6fXXeZuwg`|^dCvtvca91%x^ z3s#2cSgvdD<~&LL?v@*x=8QIQsFEdk4va|SZsZUW|%VO|WO*+><3WretYvy+>>iGTzCQ_DLEm1P1vR3PH;)|sl;_`a-pfDs0E1m)sM(gB z>k;aXwTxDeVTear`!dootQDkc+b}3|cgePA-wpGMVVNvs`-gGCDaxEJ*;Y1Aty|5J zB!^3=^)brlLGn~*87b}`gkszLedw*D)f_vjJ70dxL2*Yzjk6r`vqrhGExckt(dl!# z$MGMxx0WwB{gM{yYMc{}cAm_i8_Kp@;1HZch!$oKk|KVYOweLCyR9P5tyRh8@U17(oFXe}0on-;L zTAUOMzbDG3iiylCp2j@zl0Ufjk=)+eRi1s1-`UG&n~@I_G%e}swc3W=_rT3(z@Zyq zZP8DD;Di6*{=1G7iHt`D32l`!DutVowG&mbxqU9k_6J5gv04L~d$_xF9)VA`b<(cH zwSAnDkVaaqdv0!y1tg>~SDV|rr!*JhNs@hwkNc=gw>zlsyxUco%N2mJk<9`To(0Elb zan>$0PLj_-Fw?V?xO6D5hz)Te5O>;1pXyu~u4%71;kh@Q_RQbB|F|dpTHc&qrU(|d z=i46f${#F>e2klT6x$4|K-PUOjyWpw!Q@a*6td5w5RNJg3P>(fEU6pwNRY!3EpDU8 zT2XH5+7D}CE4HmeUKK4PwMF^KA2Udfin5vSdk_&>H4^)>7Q1(C)I`Ma5^M` z@xa$V`&WE#_Aswh<@r)^Z$;UcEmR|{uh0k1F!06Ym}?a*d}^68L~!jR001BWNklD#AAb3iGydH{`jy5a;TZM>e#9z&FjkkVVHCV7;!(AKF)mt54M@*hIWl-f-;Grv z0~3ZLj(`BP*YOY0eokh@tOcV$;V1wB^~(O@s(aez$EBI2l6|p(uk41;{qAMuDSXE^ z*A`|cyvo%DITgr<2yXqlv%bR!io~(UJ_jGH-4j~32_UwS^@0RJAO;9b;6=#6fORTO&jgEz5P1 zUMyW_Y$#nYaokpK8#ZwL#p!I&uwB>o7I59BEs~J-;o1I_w&a$)#u)c8tkwi1aUc1v zO5Cne@*!CbkC_7TkSG$bh)8G_SUYSai5pyCtqH_3PdJPX=3TPFQ2NppQ|e_0B=@^? zhj<@k#3QpZ*>FBXR@~9R1gMWaQDB`JW`?!h6uvU`d=TTOxtIj*W8l6X(AAX*c6lK8W`Wi)v ztiv#J__IPn#z{Vg*;m{?Xxu8)$(616UbKLe-N(ha^iAYqO0<@nW)E}mFo}i)0_%C* z&TVX7&fs)_tt}n~{&vTeoQ~rHfzx{P5cZ*{Ch^qP2!Sfy{PC)U@eFIFTkLuK5TP3? z|G3KlNR)7%Do06D;rzzZCc;jIGf|$FZBtMYZuTM9T>OsF zg3}j+?Jd?t!W&V}tZcNv@&Ooo+m?5AK2p-Uc17{-uU>lmgLi)Bxp7)~ItT&@Ov5B@ zFsV`+G!l21AW=?5qI9)9>?y4(qCqs{jdRwioxg`R?4^0NcHRrCs^$kk*X4rAT`opI zV(-0*r0zSJ8;(!ONk`k7ZByUzuG3DnuCDW{(v4%ys;OrrWNvOQvqFfE=ZQ(4gp?5w z0Pp7(WW*|>l7N&Dm*P{}E0WdyD5A>sY83LJsTINok;xMeO#{wFtSOQX3B%MXWeo<5 z?I#>6!2+eO>|Xa>3XOeU74)6B_t~lM-G3n=q;V%9ovK}L0Pmavi0?Y5T~!gk`RrH! z^OMhe(_<_Q^vx@kW!sB?i=XSZO=LjuGP%AK6}mbFaWP6`v0ZWBAktKYzV(9ws_uDF zR(#3!yxf$@mZx0C2Fc;DpZhRrayVq*`7p9qM`%Ztxw8Gm&!fUue1`gaTqYlbWMh~_ z2zBzZ?DBKX6};Jdo<8DX%O0Gb$F6trRE>Bkp3?yYp6y{hfC%3}7tX`MwRQ!9(4AxZ zC0BC&a*wkZY;Uol0UNfoxGURMsl0!wMX(#5JM%ac^F0IH9xvt#Xt}wZdIyINlA-y&O>O#brnJ*()ILWLL!fWAXe#FMB<1j zN*>UOHKgOiAdqg1@xJZj)DqHM(`0TosTE>^hRu@@NL<9i<_z7r*>tSjzNN%{3_(7s zj;(UN8issG5D5m9(B`ck8Szjcuz`@?S7QT{CmklWa7ZH*uPS0}UwU3O{RBkl|L%OZ zM=s~hD7Noh^87Wl2^mR9No1UQZ=(RCU4_uPZdYv(qT2NytRZCGu}}K`lh1q8J_aii zW$rU&tB94Bk0Tt*z4|=Nw!9@|DEH3X=i>bxR&lJdd{hyfGMAdX)gwEvy!_<%=f@qC zHL2JSLw-IIF^Z+3%7RfQM`dKBN_NX+tWJ&wJqxNbS!HrkbnDCi&CjLGrEgdaBS+cy z;ylL+2R8~M6Od&OPS0b@ySW3n<5TbEiO%zjUO5G2y$A=5(Do&^n82_ZrK?J~aPN2^ z!nY=od~E+CW*QrKxp(}EhkZaR+gC|IehManOFA35U`LD3cW>igwtix=9$pt-$v1ax zV-0ZOIQvytOZsCou)EB*r_eogCiidM%01V%xcOC=GrOE-z#^_~@$49WOBh|Cjd18$ zFZr803Y*Iw+@*@dbGLr*M_=3iy3MA2XuX)o^oU2gDy|w@6V4Nlz$7c=UP7a(q8f%t zT!2%_R@gCKB>>d-*Yr~lVxzu?ym4Jm(7=-hz>D{iiL;A+5LoMcOb~_+Ans!FM8ta) zV6*VJLm1BT9$}#uzbyv4An*eAX<@SwjLVWtI<{ zig(H?)2oo2gD3eOHo?aUQIXVsrZz}|*G=pU;5*4sHVPd%G9rOJ@RS$)=@03b@nN2G zBPoAB`N@~VA6);oX#M`fcFsorq+>6becEd-ca!DH!A9CGL*Srm64IWqFAQvEmkguB_usenj8*+LGP(y<*tr+n36t5CAk^0_jDOC zaJe>BR*oVeDI+7reRV`+&|=C+q;*{K)AigECABol<5;W4UxDECB3|(>?g8%EaVbAC z0l%k8Tt+_9`JF1lEr&3WFSjt$AGWWRe_?TYM<7QZ8K z9)Jk{8t)uF zT^0A<#oexYQ4!zus$H)-@0OLgVa1viv~!(~LQ)f?8^`LU?ZvCuv`$E`3VLb~ zC&m~P3I;?1(<2)}Y5~!C_d2N{AGu3F7Pt;T?0WaxOLG6j&AVR38sochk{!z?^*-WG zjF>pNPaTI!lBi()DZg~X8RxwzdtsHiz6|3wQ|i9(^-pZw&^~bUY4N_tPMY&>gQAAH zd1JB|nH81Uc07APlvxb3bUBP=Hn4O>=*${AVTW!5yj_cP4dUDw9NbL2b?bN*hQ>rb zs))d1SDyzdfmJKiWpk)HpT$_vi>k&T7p$VZ}>G{ z;5myqRw4Fgd4to7xVFV62bT_*mkQhoJarkSaK|GL^0#mK5GxR6G8|Nqo!fW`@bY{H zF@bMyY4Ne_du{xLG2E;^At0)p4E*OEEk1K0d_g8C$mPPzxpvn!=3rnR>EWP>Kc6w| zEh8TQPPuQ%Xz~Hr6Q1x(`}aQdJ!6bD zVj@Ep-yzn7;XLtB2~8sm#39xtLFCw!bQqJYrel-U@lX;aHMaAKoYbr2AMqlgh<1%K zA1h$2B=^XvhtPW0)qoJuuJ;Cuv8Z>>5ZkEHz^U`yE+#z+3#g5J7mNgGrsCNMpSoi? zEEpO_{hT@*S(~etZGwi)7b?v9>^5wg7Lt<;`C1>@wo%DPXhWkx zU^0t`M4|LZ2Px?gWAcPU($D0`hcQWd2P2@E1*e!NAJ!(M0UP3b`3A5m&SS9|F%d*V z8=}s8aA}abRY_g7lo%uyqtU@L&U^jCB&%)t6~94#|JgiCQ(oS@x`l^p>1sNuAQWGPM^rJOYU7jqUp{797_M?5bTDlTjjE$5R1^& zs!Dm%XjHEyGZjk;Nc(+!)x!5s;M(PS0>bi^q3u<51?dUokH+9_JVHq^W_z zZC&`ElSDo~|6Y#1W*e^;cuH}f82akY)e?~Kr+mM=sn2iC3cO;caL%sx@UfMObr=R) zF6Z-CUBO7>FWPf(WB3V#M}HhXf`xRxl8!d8||u z|9_kF@mJ|z8CSqa1C@luND_2x0b=Q4s_B_4R-RzExM8Ez3KBJE=yYdmy>UkgIxnIw=v)*bm-(vb zdSz0pN7qJnDdfXO4NFQKjR~cXc&IgEtz^~?BO)THwJaqgN#V#eO>h46B_W|+)T`I@ zTl(_#vD);Bq~0k6)~oY`0XR=ch!^Jrk_^o;u^Oz$VDL_@wW?y}*v-$m2SOov4i*(d zDz+`S4S+rP@LhcGEAKkJv-_5(w&S@?Ry%H{(V*RKW8#MOLA&;4ZEVAO*B+RpAVcK? zE>G4W@JfgR%F+2>(jG;3ZsUQD;nvr@OYdFKPx&xqie8x#IIPv9N=Y;Wj)8^BSy3^R z!v6d*W#?AbrVhnlwJF(`%|ThHIOgY{ea|bEW%C+E=^M#KFpt$DA&Uq+FKbgLS7o28 zh{qrjJV?F8cP`NRY>5&e=TQSaCi_8-an^nzDSH+W{<^FR?wAY;VBV8$uiPhQ$ zqTVZkQ5%bQPQ@iw8LQ5#biI$&YKW6=Y{M{gu8UDXJcy`Ug#o~xnb41UKLP$Gt|a?B;=(MN&HKHh4XyOM-}-n z!Au}QU~tyhg4Lr(Jd71%15slPYE2*_V&<(Ms@52jSm#_W)+exqP^NTZ;??$AW$AQ# zLFZ1fAzsy6F!)%p2`MpZz+k-dh!`IjFJ4ugh>93*G?3$-{Gy-I@0*>y#LHgZ`I+?| z_8Mi(>y*SQrE$fO)$Y8^<%!53Su8`{YWC11WTi2pE z2d8_u*9;&a3Xu_Xsa`rFsKTeWT+U~g($AP7J1*nb4ZKn-egj_kZZVF0Ud)0*u2W*jTz44KOyq=ZJ{n#aQ*;VF@h6ZNfB2y*t+tKt-(SBO#jp;5#Zp*8$j^ z6{J|JB7YIRN22BooqRBQc8kUs_t7_gc5IFHBM8%^0VG8RvsAm7g#qV9@?m@+VkL?7 z5M!*Ju|?t`DccC5#LA*-jffFdW2{ZA9csi_3zBmcG`Y{(tM8FNIh$Vdj9!H#d6uzO zoyP`AV7d)aRj)o)W1Sj8<9)2+RgGFN;>0%A?r*F;(bMmKwcv7+1VrZL-vQk7y^n2p z{I1VD@zB1XJSpzZ1_p?Td`!m^HWEc8=cbq4hdc@Kv+aQ|qEfA_@OU4VbS&s5Eg1XeM|9T0cJ(`=$6a4Z3%sh728`xf$&;Uo?T~&kS^aTZW~BIMEPND1JCKE%b)JL zf?ZoK<7u3Ug2u)&U6ow5ox^gDYY7+O>@rdSweE21$w_ z>e+@j zASE9e@d$FnBd`IQrYRCc)CNYfU=^8<3kZTBS*5Qyzf3t*NnC8KN+NTiN*s3(8(>w4 zeL_UA_*m3hA3Es7@|7#joXyM6c7d&GcdPtzc01?fr@SlX`HY%n+1 zCQPj$E^b)cXuB#2F+tO6A!cNL=NQOG4f58H%=HRDf=I+f#+b04d>FA3G;Gi6VMA+d zAc`?!12JL)leu3NNC#F7Vk9FPngyn(7Lha<#PmM*o%g&=#~MxUpQ<2P+=o?F^@b4j zUJXtN17a70suycijQ4mE#A?{w&|&@sU-bg-BPfsl=+j3%`oqtjcKFc!$HkokYh2f< z5$jDDdD7yT0g;L6qyZ|C#dTa}1xc=d_5I1*um+Ki#S)G>#IAiR@coiqRb(XlJcxW` z+rq-WJh`YN9%ZZ06tv^Vy7Go{SU~$6~)lYe@ck)qDn# zkXlR-38_Qz-VQ@P^53(+Vd1lsv@5fE7|LZXk18Ti3_SOR?L{}Mte-M6GKwXwj+hkX zFTZ_g0=rafY4PBWZQLumBxOCrdgu6qT`m4$ON+Aj*Ck_Z#Jz_Gl$$ofFv(XxUPd!f<&~)#GS8_M+?%z0&fLsXo?t(VZsBEM(RN1;~ z8_)F0KU~ye?+|lecD$;^H?D2*J#TrLcl?Ufzd!&GVJ(UxJX%GitSo!{hwR+OD^+=M zQPW5kpVzJg3D<-t!VhJ+hA&5wj1}R%HR*f}5fB~FK z#x^DpO;0k9-cwjq1c-gCV2x4r*a#KxRW*pL_!y_o#WpaZ1B`lOA`|$SuBZ`}nAiYL zoi!oOce;dODBUi`q>tv%M!st>iCP==0@CwV5Z|eI;uz?58iB3w`xiwdC{M||Xyvkk zeB?7YFsk?@Fr^eWxMZ}^$_D-=jAta(+)F3#)iy~Mnk@q%M_3_c* zBCs*_FYqqFUDyB3nR_3(;c3uO^_5;9PU zoL~}Cl*g+3RA>1JbNln#rLeC^Lh8sz>H0wl^4GK|FZsX4Y*$4RTSZ{=vNLLcavjMS zifoKSZdCc^60HS22m}bP+qI1owp`A2jCrB_C2wQj&K3tq3lf$=6$vdr@s53?ga`IX0I3;dugRAaCOq=nzPjUVN!eOE!1vjpCD^%d;8 z_%go11Xx2ZXmJ?0de?inUSrM|IJeFRPnER_yQQR>Wd>Qs3|Ore=3L?5p*$ZTB^PUf z210`@VwXfoSMAr;wUEv=K<9XA7jxyN@u<*Ofg(aeeGyyW3W@40zHz#yYtcND#Lrf#chzFq+amHF3fJ%>e zh!xXIziO>GhZPM(fgnm_LsU%h9MbEMq>@O#N5*;p@11011n<>Z5G)ba$2jpWR$~M2 z;;s!$=wc5(hyuJiY%CgUV1mH;IPL|eXC%aX^-_>wCA5KoPEvP5oo!fKShcQG7MH8u z$DnwUAg$E`N&HH2++cu@sR;GKH!)rfk)coQRPHHdI7b_h<47uD|EG56no z&DkfPb(kmZ?{3BAWP>AVB>ib zQfKX04oe55mKLS2*p8~s{P^~r=bZ8K_kS;&W^Q+xg|y5PQnr9mwwO^|eI7(Siv8A+ zj$sMMV#r8_yfOw06|&;WcJ?=0z0N-8$wgkFgoVmvXUMq~v1Af5A*hnOVwNTA@GqJpa9ngcP4qnVVLZ;VfxY@>Dm+VP$9Rh>zmNa6cEy zB5IwLA=UeSl{A5hC z91E_wf`98g7s`Nz!yXL9x^ut~1Oz~p9}9yCNQxQb`OO{Mc&;iRzqrMtLms!RNHcbQ zWLJxmRCqbcIi&(1tU>Gj>wK_00q7rmGvV>V8$@|#Z#u#Wl8gTsS|cf15CZ#SL>91T ziT9uS@J&~p>TJVGBb129qS`xN@m7VP+nqIHV`IA=(=`W77zQFH3b59Q1V*versTug z$bz-%)tEf-5G!iL7!!#1DnVq0%+o4$%dyr-F|MMwT$lx(C(5Pu-m92^$XM^a7sadM z1eXwzz~SQn;%?X4AawI2ByroZ5*RhAc&rI<8g~f8P+X@A78*p-1w#zD zb;Bx>h@nxiV2naO76hH=;y(b?_xJ0VkNuD+lCroDmB83E+m%7A*ibUJD~wI79ySnT z0xQ-SB(w%&BnWMucp!lZA}bl`Fk+LGyP_tmXs*Tx8R@KfplRwlhxcl-D`bqpqn3G6 zVkK6Os;KwYiW*VhjpM)wYOST45|QrV$DRQEn1wI!E)X7m^p<1qyY=JG=*;asO2zm< z8sa4MY7T>kpoWCFI93%Ei6XRHg<@ z>+diA@h`mL>chD`b&6k|rF0Pa$drn(a9m!oE3)O{Ybzl;->-H)K+GxR?J z@(N{9sVq|{O|Fl;6)vKGMLTaH8Kg*6DUul`m4pmqO(<(qMSzRMH~%*yADKL6f3tl> z(vklSj6y<+u1`e*;tSjI!RNl@U(s4S$dZ;>Lo#_9m+UN%o26Pow*E1*J6n8@Mb-qV zf`M}**zo!H^0zN}8~euC^@G5fbq$yXS=sdRsnErVXhG_ z@tzk9`;t=7nHlaZ+cy*eF){b(P%Y;n${E0)cZRBa001BWNkl z<)4m?T!A`g8`hA<2N+1In@1)vf$*j(a4;VAUIERReDX^#-rrp%^Q8=WS^4DiD{NJ5z$BHfV^8+dV4?7SKjO-0ymo z1)|qkDHglhJxtt3hDO*}@KW@OY1w5`}ci(rz@%tY8-bu5E?myo7*hOK}$K5%c z!P@}i;x$kpA&?Y2G=$b!ym-`laMB+SlBMP)3rJ7ZpK)3{iiD$2D=N5N0SO5La2oA@ z{HrejK36!jxRP8X8f7caVPW4eR*xd_$SZk8B0_E-72Ep0cia1e$M5;dhJ6ox=Y&Ih z?%o)84>eu;V8i=v!^N`=0AoTYw%HD%H60r?Ix|NuW%QY$RZK3^edC(_T|UOE0e=0lCTJ}F@bJaMHwy<-KfSEqB}2}MS@&LLh{?omZdVqJx@Ne?b$JzT;$0}mF$rFUS>(lkax)%r|gWKyn6VC z88ZP%amt}N{`ji*@ZT?aCl8IIL#I46h%p=GM1YGg=kq&T91Z+Re!mEZ6u!Ry0AEaF znI{I@|A?8L!taQ3)+omb-2c))DL-Mzm0R@gn=)ZKB{%&U_5T5oOpZ;2a4iKy-v-WUooH(bC#h#U_StO(<|iJ&Fj&w za)41vK&Ed0+^@@XhJrbuwuZeMvhXj2O$X(c8L1iLuJ6D42U3D zZdvD&QGW4P-&wiixgW3FxBXW~jUU{$ES=at7wB&4*G^dCiOSHT?K9>by=m@>Gd3+f z`tnV4k2tr?-!VL2FGZ(we}BCXQYU57FNZVQK8Qj;AOvVN9V?r`{&iwOLMa=6Md6Zq ze%zG#e0cCtWIjyry9hk|I^RB_d@Od7kXi8e*pCYjN-C;4sdfVsl%#EMNZc@xU1kKNp1b?()7~i~N7|%|%u^8CWLnkct3s(-~-!@!> zT?(8@gdLjTv2EM&z^_wMK`+<;SInm>K1zxueeX===2zLK9_7Yid=|jsz7L*Do{Ij? z8gSFJ+ulu++%Sv_2zXnkIto1Ywqbl@x{moDU&herDE_d+ja@{9fzoqn13-$-=NeTX ziU;OAz^*FJfhv_MdGKMSBC&~xC6+Sq5s4wtK%|^yH22JhplV2%l_O(f17}4KSB&93xAO0;`8{20N?tEf)ZEWX2ZG2y3Ya?-*j6}9J z8nH+!rji0t8V}AMi3b)OtPCwWSe?CMkFyp|ofEar!75psrfC9J=d7mA+Qh=9>NIiA z)l%nDkXmQc)Y){zl3JJ8nrfOjb=Fxsp_X1(44$u?UInemTI9$$vgih$m z*jUT6=F)Ln1Q9)h4*(#L6cZ5!=2uj!7yyXk3JJ3CyETc$n_p?v3_#cni4jA_3>YyK*jP)=avp2J<1CNZ|;LJ(g2RUN`2a(!> zB$P!_mlIMhhbeh9ESD!pXHw^!s;Yyka}2;)>xiAR)@9CoE>%F)IjgGHsJn#N;xwr# zxzu?UL~Tte56wF^o`v9bl8=#zW|y;W0Hnxr^dcSE4*;BI;IuL@FmdL^fBmnsj(=BC z326r~I)RVS)T&q3qgV%pzol%)$nIwcp1JF{vaQ<(nF&8p$F`CV*Jot@*zr}T-Nmh{w@nhA4j&M8{*^rKxod0d-c<$?z zfsZmEQZ{yyV4Fqx*a?4!fUY=}QhfD}dyV>vaH0J-f_A3||KY%~zgenynC$s{PZpm!w><2+j zb?_MgEg?XyS4e_af3M(!BOwQ4Ol&|9BVt(c2uPM7%-M1XJeY;RLaHi?+!O~u9@q*B zC9u%M$d1aMm+o3Tvg@gNqx(0{89%UfZZf{7@2sfACW)$Z_rybsUm2RW=H=OoPkga5 zxOhLaan7X-g(Kl676hUWsm=F~7}nO6h}=285e^mrOogmYs7qS!hfOOYX2LpEl4=!p zyg6zXo2obhp(Gj>&>4I%7yLeo`?`jL>cK~2XTVvl+d75p2a#c?N^B)_v&c=az(Pgv zp~|d690lM5WW*4YGD~)U4SV20lrdi*0Z5rhh;qv)~fm9;E zCV&AP$g*WPOc+stW57j`&7!D9a4rEy0Bi)O30MfQs5w}`QEZC&K>)Nw#42M!LeMcS z;A0>FA2t@>s8d({#V`K)=!=ej*Ar+~`X&QDigk+7hI#=WWgr9qkR%7Ar*HfGYqmXo z^BD(sJ#&Jp?bBFzYLbrco3rDEThH0?!mZ~#_M=aY%wBr><7?0Q#4nZ|_s%V7zD@p| zizYEepMavTNXUi&jrWiD3#kQlf%Z&Du^qpz-RyPC`onCB)ozG)8~TFQaR@ZVl_{wc zf{zezgyvaA;9-JxL!Xf1JG+bp^AeiZ3Ccl<~SNxaDtAsqHB@yJ|Wo!iWRrcI9;o>_>ey(>9{`fd3t`9{?aGB1VJ# z@arQnL?&XVjc8Z!;6sEQOyt1_kbw^{6DSrY2#ZJ)@W@m`0hm~rNQrVQED$m6+4}I@ zoiF_8$bH)$S}`%QeNI^1AG)su0q@TBJk)6KE@8bRDJx%e|p~5r@ntdT01be z|6ZAXNoylRyEff^#;#4bpD{FN^@~TG{JwkFo%fk1j2R4l$wH^$;%~1cdJ`INT7%$k z8LQ&|b~34vLfx|8T}`omP5eRpxpVNlj4f+7PDA#i$aFBu*^m%;lrbSdfSiomlBgoOR&_wDw&IpqEyUM?NR?i)Xkr{Owh8lQ>~ zKqPqkjl+np9L7&3-Hu`_&>4WhVkv+pCVPy-B{%*VE+N62rjogx8C$OUDq1r!=h8C( zsRA3P(QYbc!Uu00#`mXkvk!rEWq2Zb*-$hL^y~%L1Mq+WH56+ z&qMEeu~HE+QGG_WXnI8^Vzox1iXo>YCawyrVKzc4%qGgghlxehFhqnA5iuLeyvxM{ z4*(1{#0>VpgNVr{2cnlByKeQ4=YM+i#KEm|CUbrL2oW&4chiwdU}ocBYhVajIDi3C zAxc$%)QU0eYQao38-Yzz=9rxUQ1i~k==j=g>lZQw)2p`I3em3^Kpgsi#IeMxM6M~n zIDF(Q03bF}bUgR$2La4R=%ok$>CAmw??1WS`5kUyiLJylYjJf}EgoDjHZXJf$iSS{ z2j?s~WzWFOWn)%T2Xze~!bDK(K$g6P5IcYjt4#qVC5|g_wF&1OiNq05gG;SriGakZ zQ%TeyavC{GT*M4GSg=K6xnjsAU~xcVRFNndja?eUp;oKs25GsFfCcfOqg#08_MPJU zCeLIQ>}qTqspAo%HVda*a2WPD~FlXs$yXUPuf2WCt{8;eJhrgDh??)Q^<-%Xz2VO!D;`=LHF5cUA z_qrVmGVNeQfqMyu4uAx5+4aLPZy(0LPiAKVUg;JDlez(vS6Orzd;@S5fOB+;i8R!8 z_WSM`fE;`bTjLW@Ll6>nDw3nB%Wk>`(dD1R52vHesmO*;W2S1kuZ0&P=*X_Ag%$qK zVVJ#y-_4_h^(3m;142xB-?v4i1?O`HYEqd|9{^$GD=*&nquxYrdPN$sW5Z5KB8iC9 zu$YRdFiR9m5qu~`Mp&{;=S0j|n+!HYIThl8M>?^)^8AC}I_{O{e{zgVC#EIFcdw!V zkq9HT&Jj1vuu|A?S`q-5W3n!R=25R$3^|*s08oxuUClWM5>tgu$D1BiHWks@goCRJ zqW%&NPSx}Z03>ZSxlsoSKiA&(1MuvJ5zl^P$7*Ijyy?}P#p^fk-}b<3rh}!L4so_7 zZfw^;GPY}AWX}t;_u!ZHZSmlO(K$;_ePz+w3%AT%eDWR-L^uMRB`77tCUQst=UBx6 zHcg-;;JA{RV7VG7ibxb>Eg)hQc0inrK^?1Dqbh*f#7Y#AwO|reYqMN2O(z@2ggh*7 z84FSb9CZNE%_+SA5uAeZd>^gS1$+nqme|zxZLDDCQa|q$f(-w=SMcHO>^=AhL!5R4 z9@+J~gde`;<7dD8@OR#7)3HfS#xR@IROcM149puf)p_G4uBH+VCPc=u#MY)`kxfP; zm!^``_UpvRwi&gNoeQU8)|E``oAvCye{gUDaZ3)6DA~-`dC5hI4v8iGI3zbg4+0=rNxH2Ne#OueUhq{Z8BN` zfV6gS001TqZl7~-SF4{ck+{J*tG3Txdg`X7$6oQm5huK7QzJ`NQ_unrHaz$&jvb)Y z3El4#1$E0nY52P+J+UCuF;b zt6XG1fQIi!oSR-jfh^o^7V(NpUsbYMh zO@{Pvzr$#HWugif4?;QP;g{7ZNn{$kh3rQb8JSgu8O(E!JZBq_-n!$3+fEoC**4#$ z6NlW{cd}9&-8uNm^FLbk%JV;3Rh_Zyz|v#h`uyVKF53)C#B8$1!Z~sVV5{mZ5P}dy zF>#WC5C}jZRa=3`gq1WR$Br~|lv=Pxk)u?FT;x=1RwN<-Z1db8#>GerVR->Sof3IR z{DLotm(s{sZ9qrKriKLIBT5?yDVxTNsf2rUGQH{sK0-6BqRCYVLdw902Q1k5z&BPs z`JdOkYy9Arj^?UGF_oDkGv*!r%8Yqych6XO!tSBD>kbf0meZ7q!M+j1zsLZ1WpL4+ zSxeV%-2L)hbGAHj!`j_1-g(S{olmWvjC1?M!EFm3{mGxcd(*?;+IZ@f-}?UCWoPa~ zL+L95k>ZRtP;PovCLsvvMRA;zDHhPyaeO))kK3JhFY7}fQU-GCrc~=M`{qyX{MPGE z9NoLAukZ2U5>?A1d!Ac5vgf&_TOPme>_=|-k^Z(mJvzMH_2dxh4K=YU> zPCtb8z4&nwGH9VGmX~fU$RU-}e-Fv^*Wi9uoOh^?1pu(PcKY^t zE6&+bowY`dQ6lLJmQG0s={V3 z*?K+B9J$-<*7OxkQ1T6 zEGv?jtSTAF?|p856|x_yl7;DICL%*1rUh#+-m>_pH*W_S8QZ^k_QFlM7G+KwN4KJ4w`mm7!`=BVagS9EylZ0NAAU8UTxJ>r~ga~7Yr8w9B9#2L1i@sS<#Ya8zzT5#lM8H|L<+j z-m+xZ#@kkp?SFax=$=hWM)y8{#Q4E&i>7c5heVR`Ju|mFe%;wypSb?a`76(R{G?01 za>wi?r|v_usa1H7ieMuQ>F@nb!aBuq6OO}PSr9MN4ooVFpQVJ?PQ@poPr34jt8w6M zU%>sn?ohGV(RJ!lF;9oVG~AZSJnVA)Fc#?;J_bxHJG1v~!zc?=UYEXZ9D24^2p z&&KRv)rVfqlnJL$r%s)w69;JXW7n?Q{>%@KOUCzhHO;6DEq(d83;ygnYipJi4qCIR zOH|Xus!P?S$)~2d13&U$|7J@f*)_D^wu{E3I3`km= zXuM!@Gb|U}Cp$jgtO<0_cHX)@_xlJzrUxK#Tp>uNxF!-yC92c`2vNi)9x#!_1g;w5 zh^0CpWQCSdQ&sUCn<(XS1 zJyAi#I%D3tk->RKj}FdVJr-AIr(ol3ZB%MwyUfV0X9f@Kcyv~6Z1lHaHHBKMnpl@6j*zBlEpcjVRxx2+I^opS(ps88lbThe zPVK0*sdMT^tXk`=P1L%YLsC<9)>*BoO(yE&Wg-U~bpYZe1R?p8(`&-Q7Hy#bKD_Bw z2tI&}{a}hjhURZR|NZ~@|MrKEDz@E=%wBx*^Jo6%jW-R=Sv7`cAmYtx!YD^czAh{_|Cr7C$X}=dA`iIqz{O}Lonbr@l&*Nqd+%C* z+1Kx8j{TSj!|wVLj*;ScDH}K8__4uqxUSQfDgK?d5Y9JVgO5WyXB(epv8mu|@4On% z^t!`_VSGt}j+3Hp0-t~TUrxc6ZyM#MFJQGgd_)yP)7jv4!bAQ^bNyUK&STw> z*u+mN0PC7(%{}<2aD|nd*$?mg0RS#%KPWK0A`+t#^$b2h&OG|#&z`ww^F6D(U0^)0 zVD$KlzIfl9C8z8M0BH8nQ8*43FP^q{ z%l&IR9fwWSG?VC@5(8Qf6=Dor78t7~>~5nGz*)3qKfIW@!c8DV&@|r^=is3jp0_C7 zvYm(EqxcnX$Ef(|R~9C>`OnO+Sh!K$NbZm+3>9X{*bg!SVj-b8OEBoc2SiAijym`M zcy`~G`xj4)Z13xZHvfq8b}v}@x_t}Qym4PVxF9V|>1U=hUYS(Yoty8T`SQcxUb6e8 zd*)4M&SJ+4KV3C;V9SgXF8Yi6m?Ag<*a9wsMFLheV6oOYC00Wq2X&TN07s;-tV#wJ zsl+C-RxKrI3UExNEQo@Tk12^NZd0eF;7QI@bCA^1=QS&0P- z7!w1C#3?Xi&e|8y-Il%=@KH?g7P1~Kzykn3^|L=e;pyA|{5{rAbY(W<>fC+HPq^yI zg=;U|(zL-g#zQ;JN1c+wX4Zy8>YQdVlhrv7LI8l&%HA#aA2T%n*o`yht*t8!%a6Zm z%ktx|`nQeu{oSf3@A&*h;|I1b>~_AP?A!kEnmfLE_6N>**LSa9u=0W(XxQ`@&1yQ$ zlsaU6>&>@{K6N3(QEaE3DONkPEVTLk>mo(gr_3*;$i9Uvo*#$i$n_uEk|v`+eB_o- zyrZ8JAQHFkoIiPZ;hKwIS+M$oz06TD@PHRr8`~AV_~1V*-~8BjSMAwy|FZrr6>u&w zFFy3G*X?@gt~KYpXTuFM<{x_y-I=m5v~OsV=KCr%0|Z(bF~1HazuU^R`3w>6ILrV< zjKc?h{NM5AUUPR?!cOiI-Bbh%fIBWT?EnBE07*naR97E>Y#7FCti}7O^}R7=QQ*aH zbvn;T7v!p8>{ej^!x#kN1L#gIcM}U>KNQ;u zc$pNN2zU{oZ2;{h#RO2lp{a>0&jEnAYUyzuHB1^DHJe~Xks*H0mtVpAWfA}Zo_X0kK=C0jy`aA#m&N)j@JK(1!l}R#q#Y|vQRc44^ zLsp52m=wyy5hR-7j{A+jxM%qZSN)>Xv6xH>03^cwjQ&XCMt_xgzZ#zY0R{LNnkYMu?e7nb?ScL97s?q|C$uCZY_O z5Rr&*OmkP9-M6{o$#4B%FC205`*sh^Tx>;zvaFPO(X1#lgP9@13ywT*Wc^$I?%7kX z{Qn*uoU?MY`w?2@;Lax(Jn@sOPjj%$U{Pja6`?35A~47>vk@W@j$$DbXFg68k-{*u zkl`$Rv84>K1Av%@0xJ};p(tyU4GS9nH&&XRz&VY@s{>9!F0PO(xo7pZgVH3GN(=aK z3PKVar=TdVP#t{0gO9vTu1uVG{%2o8v%&^66qC@wyv(m71Rtibz6d^=!t*}-gFiU; ziJ$)22fBd|Vq=#cbNOQ@z4iaSW8vC2ZVLfJ(>1#+f`l(+qRy$aww`w;tLz++))jVZ z9q)hT@ihl_KH8!vt~&i=n=bz2jsJMW$?v}t)XfF8Stdrd&%OIQZ+`El`@gXk%^_jK zW&bzKRbkNFw_(`WvU}3Wgf8qm>0#ObE**N)BxUS}m(WkB-S*;j`t?OH97bhp3dOtT zjE}!q8CtTZpOa>Z-3f2}^0SN9zHvWi@71!rBLYC;f%$ITxu1IJ^&h$Kj>8I;sHB=V5MW0-^< zHYHKa9GSrHT>Gw`udk~gNJ_81AIMFg#~BXz(4hby0KkGxUF-DQs8V-SGgTqQrQf?6 zuRYYq2}OHw463-k2R>QCZw~%9N2YNaX<|Myb1?Jhk3MtGfmeRjbyg=HTr_&}Wq)^n zWpI&Y5@r$>G9)ZuF`T>SQV2pg03n=%5C9OvbmaOEJiTb$o7?7>Au;tCB2^_w`^?*= z!ax``tn`}VMzk>#SGqo9Qmu9@D3-D|&btz(1B?%qTqo~mj3?RF; zWSDZ_pFDK3CCS(i0Z53*WP6ZdXa*LPS!T>zGYLSz3?&A#!c_kUW+rAP0&`Z6vyUn> z&slcH*jews{_!P8Up}cEJ^Ob)w($A8zIuWZldyp@3lvN+WJpL@08n;rM3QBVH^QdE z%uGs#Em&d`!5E>;c|WGixj$bZ66+w=QAzPt)H$`OBbz!>&BIhM;G8Pw zl*;Iyjm!6Ld#J@plR4JYuKdS)PJhS0{A*=!L0?J6Y&uqb@CU#Dj;HVZ%j3`rFnR?c z5t;#?H!lhSNoYz3lq;X%dZ1PDER#|NyGxmjbOT3a?Un(JuusBF=q(_5){>L9PVzka zDoc;Pe9s$x|B+i)pZ>8&iMVe%cVcws?0f&^iude(`JM$RA3w!sE_{ZIEJ(OqHUZJg z^@o3_O@@czRPpoaZnvu_R>ddc&An7*bhnf-^6Eyyx^Wm6sp7pf2@KGS5JC6t>z-`9 z?}M{F^Z*0^Sn#eJhOz!|9P8S5L0Hk%IeK)gKLB#m=kYoyj-ULQ^(U%G0PL>JT>P#1 zvlhINI?7EvGKJV@J~yVq#n8Jz=6vqik4B?8`$5g@2N9c0DI_8S*Uhe&<(Z%V)yey| zJ#a*~^CdR!#Ebv>p~~Pw2O?2lpsWgk5@n%%GY|qLCIV3oLVzHe4VnC$4Xruj7ZT&u~Rk+|7?Z8LV z`8kpLmm~+A!luzi7UU|6ewAN0QML=SAtM4Z0;gal<(!-%f(S7vzdJ-Eh$^%D?q?!m z5+Qhyk(J;#h=~ax0#T!mGLytO{-Q6wwC1co+|;LQ8vtO(raM;d+;rPw1&Oc$bHp&r z5F^A!l$c4F2!1$Gym-%+U#kfQO8gG^y)W1d-wl12Cbl@lQJ2CkTRgyX}PFS7Js(` zA=9B)wgV*H+HbcloUsoT=wh1^)c3@gUpB!y0br_wi@Jm~YxG}(^z0cQeDJ9w zkAKTuCayG{vzVxPmat%c<)v$c?L&PFk3{=mE2yvc4n{)3`b&Z+Rm8X69J|b$FNn$o#U+j6_ zk5=j7Y4NklO}m-aoE!k4X;oaU($){F7t}qLdW@LX^f5hRZEV2snzMqX=TcwnO%VDX*h!*PZ!0w_{*l=#!D3 zZHs~up zaoxKwLF<_D#|*EP+pI5wxOVrUxc#umWy2U{!UKo%m;j&vBgMOihdXNm&Y`Q>p7vn! zKix7s48Cy~?@^%ZM9-8(@lr3!-}^Ub^b#_YO~oE{?tj^s8B=8i1j$q7aS@0>bC&=QLI5xkS<03} zGc01ztc54-oiYEI7PgKgPJm#J+}fsl>e6O>(vJNI#jr4yfR;F}l5fC76*f_&+)zEK zNU^Z12&d(x-T48n>_;Nav*t1HD~U)vb?z z??{MYVgps;OvyDwoDcg*;8_rgBGi3Bh}p2A*!V|2Vv&eYWI;^CRLNKn4+JCAY!Wq4 zsbHW|X+{76px`tXB(d>kRb{1kZQZ~JMM4W#o%xHUC;s+9w4b>xDlNrX)ncS8uLwtN z>dFHfKJ@x+Pu+Y$w|levgm*l-=B!UV1@X*h8`H_~aTe=bqHu|V$U4A*^nX#@sks(PLr|Sv-WPie=S_CrN1SbVbA;E9Y0>U`VCKZyS7l&S$XtFpL+9_ zC$3+P=6-AkLi~LR`@aZA$`nff>L}jlGKIb!P(fjRKc!dcbiA@UW!Ff-wsuOkf3FnR zO-71+N@(rl;xpCMKg*B5YWGQ({LL>X!{+YYdjC<6-}>2;g6j#N)exW-!AaQ|DE39S zJ~=F4gamgSj^mWb5hnw$>r^34x&shW%$mMa>MmdZD58@I9|CaJ;W!>sZ$w4k57=eH z7W%q^a=B&CPU2)WF zp8XJM*S+zfm9P2Wy$eo!=Ocr&*S$!>HjIANB!TmJ==4`!yi-v^Xmdi?s8 zwXxkjMLwFl?6h6g8H>{f{K(9$gaydvv;!cL0S_k6!XT>yfRQI!2Ldy!OlB=Rr3HXQ zmAP$AH-Ppa!=lz6e74E60%X9$FEbiI#6%SqsfdZHt^F>Y*$=8!jHDF_vz^Crg+lNV zvLBVG0^_9Zhk>GqGIOu|+H>&1x&H^yFmC%tBII2Llv3NN$ztbB=9T<0C+Pj z&axAO$gouwOU*d5Zqk^q4aXQ$<|7iB9B>4HF)nc;FESn7q*AFgd_JOBY?L{dD{ zSV)z~2oDS`eeuLgzxFiB6{K)EDy%QgxR?DVw3>OC$A0peQ(t`OTNih`hDB>Heg25` zAAF&1cgb0nA>RvGK<)r}s5%cm0DvfCHLSJulDgC>sY_kz{5ofA85ptFdLV)jga8mY zm!^&snuXvV-#cUXw)@w)G--Lhm_^Td?=82@S$0}qjGVKHJb2TG-!iiM=~+RawF4nV z)}t5a;xb?vf{fzt@GpY>rXuYCNxRwhZpUo5t$4kDUGY6r$`BAHF_F^D@P#0xWfBF= z{T*(T)o1+v_9IUEt-e?^FVFw-f1Q_%?H&l)_s0s4SuFneKzV<61EPmbF8jZ*Sqaa- z8pkH!lADLoHazn{)E$6;F!ONbGr8q&QCYGKzekGK9FF4wfaBg=H714dsYi4(U80KF z$pk)f?Qok+;8PXB%&zCqWAv}@3}Y6wOFof9B*gI}>#zKW7U$n3$NuKNxvS56_^kJB zc<8uuKf7b;N$(k1d(sDX9edFipILR<2Oa^kaI`JauK=(&zXISRUwPjTsIq52z=pR! z{r#T9%lq`Bjxwm6@39K*WQP>;y6plCvO$#w@55^lNoW^H=>wiyijh z+#}n9XP0L}2LM*=gN#o)UQH%h&BGjpP}4Iqthjqi{{LUSMnRb zi71aaP5xg1L^vx1CYOT{k_g9N_{ELPrZ2WO8QVRufBU1eGoUNENgxqmvgm9%3&KpS z#Pvbv%>cc4XLOMa+$lv2Vj+rHC}uSgdp{gQk%TwH6+lQ7S15`rMG#`PJ^lT~&))Nu%h6?uci!@| zwyZnj6Hl|t`!{>p+TZ@ktwZzHb&ZS@N;1A@#@+vN#ha`h zixK!F6iPU|&4u;7Iv00i5`gxKXTPjRuK=P`y|UT)aKCm8MmU3CHsfDpK(abio)@-@ zl!19B$l zrdN#x8MM^ijOnsri~?xQBpZrCuDfR1^KP`r&BGX+*n>|fFsWQclMw=3Vh^1O7F=?8 z0SEvPuskNb7n9*6yR}W-0f_VnKxQ!B3dO+G&#Hf^4lKB*uu1@6=JGSs6EFH|sYyz8 zXmyj5T{s|2Y@np%&94j#NQqtU`w_Aq6MJ788r%PJS5r1G^Ov8qKbtadsFazRP38xp zs!bq-a^O)n#X>z#2iua51Tj-}aM3tRTx+b0lG%$-Y3TCSH`ytIU-PHn6 z(0sqB03Nu*D?E;?WK4yO_a91HR zU}93zY?d&iOPIi9k-4O|zmjqxBGj$%a#EpQ+5wU5{4&rZgb;+xSa|%z;$z;rqu=w` zx#^C@0FarMHCT{(^e+IUIS@03K!&Uu1~D5Gp>Bpn5rY8*OFOef4?>tCF{T2ai9F@l zq#T>RXUPKfi5YMl8OM=PRT7EGm383)HtA@hTAi`v;L+!Q=7~BZ=eVUWoHu>U`?ns|DnFAt@W?@j zCN1R@S$^2?m!&&b8&q!G;etCiuagH)`d*LbTc5GKuJ5+qua4My=y`s z!X?X8_#5`eWOa=q+fl~2bY(yQh?qe=;f-JZ)nra$%M;h1;#}g}^A7eB{4QfbfcE`e z*3aGE^G$6{mm@j=O#BLuD0<7yG3}yw-L-$(-g1VhI}1|5p*6$$_NOr92p>P();LPo zcGYliK>{WPKveMDWcHh~DAwO_4KAJbc6$IIR=W@M4Z~Qb4rfl!N%behykpf{f6^}{ zDM$b{15P<&rz9Hqe`Hm>pNKajk<3me&kjf|#Kg2`^WA+U;UWyqSzhyCBlGRZO8y5P zgftvXnZm5aka9C{by|0x1^_XGb$~T<(eY1-spLuFY!m1R!Gg86?#*s(O6kG~I z)|~an+gK`nh_f&e*OCZ^2nEL*2cRD6#TVDslkVKNXX5h+DXEG!aH zL@}4KXik+l$T{QLw2mb=t^RU1<_>gFzw)TQA^kRC|PEqyB zZ|D>qG9KY?13>Qm*DJ4>74Ts zgAc%|x(sAEXztKqZCD)C*)(yQrqHCO3TsoBI%jLmASCw(30V+D7VbB#ja7DUdvL8y z4pz{d^p9sPe$B}77k%l@es$W-k6(B4wr9S-1g%PJF}hJPoNPNYtmYa1@;dE+!L%?S z58QOsk{|y+C!PBrUp@B1TmSy7llE@Btw_w1g%czxey@5%U{887_uYwOya2MX)M>jui-1qilNqUQzBegVD5YXwmB0$(MZjuH`4b z_krq+1x=`3HMeWxy7>d=Kgrw1DwG{D9o+p)&+LbZhf?Bd{UxhT*_RNA3*ph*SvDU=^%XL~|fg21uIs z?R+X8h*a{w^>x)|(2+FiUs(`m_p1L_ zi}xF0|IrVFqlG|(;6YDVPzFK)^hLnYY$atr4W8$XdfGrX-9mq_pG%sPbkX0#y50Z!n zW~_K=_Ux4*!0rS@LWQMl#yH$oG{-VPmgRiU%lDkv{=za@cJ$>h%v^ZvLFL}wrv!D1 zRGot|QcayxQft-LRBf8MkE^w$PDv9BvMwy7i6!UMgONHTLh90VLhI&Ob$<|54OtME z2Pm<%c=y(a*4l{!EeU(pobmA&mmKw`r;F=5iaLJy2cP&2XD5o$#r)s0S?%Iqe?QtO zl`Y?eTtfDssJKo_>Ad~h7oD{Kr3WvGbo?kIc7@xw_2j$1_q%U-^0xoFpojL#UMigw zW1tmigv>@!=`W6J!sNc^y)YhOo#OGOxbCR){?AEG`fh&gyT`XVPPhz|KjURm#)x&Q zcSyx#0HiNwaT?{UYlktTbc=S^7t=!oK)y4KS#AiQfF9c5P3?rVcMGXW0g&NgIObQ! z0Vp>~c;B_d(?=`09tHwSX9nbkVXRW%xam5lenb^XJp1I18NfSBtP570a&X<*fB5Lo ztd-lcMkSkZ5B)y?2s34&cReSO8N(+N`+N4!A<8GL^Wsfzh#Ad5Bv(iS7NpTimTG~~ zIg#M%Gk*WB1*=d^TM3pA?TXbAqOo*c3tVK8~{k=bw&HGz?=>ALbzu<~kqpO&BWTYZ^fCF6UmX)@C2OHUDz zA>@8CY&<9zhG{TL&SfAVk{Biu;+#2@JfDhE#KKv|d7+rqp$;0z`(05iMIcfyaaJlO zMkFys64y4b?U4-=hUScli@T~=W5P5i&PVrYT{BC zmRcQ*sI%6liPNN}#IR{Pp_-=7QDR{gPE$*;R;>$I5UU_K($wtT@vF7T_`Vhpa`IdM z?tT-`=u2T5+qY@Kum1gyLwo*^=?EE+BKQcI5x*QdskfUEZ#PR0v;vP7mg9*#u3q%> zZ@vDt8z1_cxy{=SnDLQqr#hE?O#}c-MdFC(YMTB_icOVNS988(XPVt1JD(06q%!6 zE4geKqYB*hDjhzK+eO5p?f`@i0RZ{VFlG&9W>-t5yX{_uYQ0-XO$vYjfYn#Y3=04O zQ3U+XhA(wDo$5sxJ(ys1q11@b^}~9o#IU*lO`p7{--th4_zNJ?Bi6s~xoBuX>BB?X z(D)S1ifURLDbH|LA~qQ{s+L0~)0aX3AyB}A000qFYih7^VFC@!UAKSLslWHY?4@V4 zaRN=9H*G40;O%sjwwt73moB-2Sl=YAEQAli+N)TJrIr@}n4kt|0h;|j0D!fbR|(Cp zh$05Jo)ei8#gB9Pi`qvDBXHgPifMA+D(67H)DK+*A+2T+4S-a_g3Mlg^4P%46@4TW zQ%sC(t#a;=ll5g|U^2W9Qedh^!j=pZF-z2NZD648@E_(zak&$?aKt1rljQk$q|x^t zh%jXV4TJ$w5cLoV%Y%+4;86e{fFw&^^IKc}X`*$8yAu;q1SsKluRJv=%MWb$@avQD zypPKjV$I!Gc%|hd;m_Ja|-8Fk&zmT)G9fru4c)m zN;Xwd>qxC5YaO{H4Z#RGrw&>NA=X;BM6(R*R^iks!8y-@z(JkO$Pu*(@89wGnq+KG z=x9mg%NVO73(^jRAlL_J9tU-K z{*J5XZ+z_fOAn6jIO?gpzxkGXuK(>-e%q6G{^fikl{BhwO=79VjrUfKqB!04?3q9N z-kUFY>8YEBitQGp7l2Vztjn(1OWFG*uRHAk1Z|c(0uds?(qpbDO|IKXY%*5a{KR$3 z(0c#Fd)MwcMzFmdh%1xB3RGrP@t*)DldomULWJ{f`6OCD;yo}RB-0B(ZWzX#A>a>R zP4EHWz!iUio&#=78i3$c1RwxFz+5+m-@W$QsSWnwVX#9R8ZD4?U;6=d%P>~ZtHgc) zKs>bIXVcf3(OFB@Zvg`$b@P*kq7}@L6AL-wEJq+o&vy3CSsK~-bhXLGpBgjYo(Vw^ z&XtKXGpsBcQ&yGhejt+{#|7~XS=#_6y-JxM2#^5}4?ZGOX(|9vtyB<8g({|kvJy#! zDp3^!Q5BV_F{$D#wg3Pi07*naRH<5v%M;X9q6#Vj`%yH%5{cL|I}CsefTJD2P!c8x zu^5o0tp9`XyFd=UCX)jM&Cc*;zssZ-7KDjt?h$A8oJ14=Ty0dKN(exA$OP3xKeM!$ zJ!K7$I5be0H^Tz5>k<-1J|@KHVhKP9i4aAN!7VN_aFGdtMW<3fj{@)@iC8#h=YV-f zUVPX5rKfr4^LBuvsIV3lnIh{U!E(Ls_Gf;ubo;YEJiS}LS7$Cguw>n(J0Z=FQU)e9 zv!Dw5JNNzY?1u**Hcea;_#o$CQ?(NlYEuj666;)IQ(Mc~k(#q=;nJETYaPgCAVd=z zf)FC>oJ*Z^KJ;&Hilvz!NO;zyjt}m6dSz{FchmRfnAZGLKKbfc=Y^Rzj@Z% z?)=sT7jA#zM;FDE{ReVc$>TG8eW_MtWgC zP_hg(KW9xKWci7|*;gbrFFT+AsrLg2ueTi->qUO8n2C=0lnu5oV4PWJcgGD=wnuK`h|ei=5bsxl{StC z2B~{L*sH$U-sdF&E;w8MA@N&JRj}**isfA*r~Lf8yjvLlF2zGmzFr0cNh^=P>k!QO#)Ev$suf7 zk`6K%3736w4#XrgG#CiG5&UcmwwG7>eq zqss_a)jB$yiiFXCT^%S*u3dkPbC;glS13zc8>#oZ3(WlL?~1%(Rc(yV!Z87WqsG1p z5u%7G%o1M$LMV))HCg{Xs$&1aRtLHDhS< zAiXxFgFByD;anq62(!?d(|`Z*ZhcXdtxw!=!pNTIh6;Th-mfrPRyP&|XuikofJX7Y zx0yK~k>~IK%6YIDLjLYj60s_Vt(~1t>|3VJ)~P`cL@H4Q15!anvdNf=RKO}jJD&RK z8}I$!?>G?{DFUNTQUnm;`cCVL?FM}{tqe$~ZN++A+-Jd&=N~lj%$}kPg>rD$)AP|8 zScPLG+&)==a@a)`w`w1X?{o?Q=d_$p4?e@h?Q@CrBe#4KmGLqB9vl`=M|)Ee!n6HU zpELlu>N;2jCY2;-I)#DPPsJ&HM%+`#+_tut*M0>93Ynp95YQic)Hp9{`rC9oG!MIO64sov{LH>g6rD}V-;McaS{03? zm;jiGVisZ&DmwI&8ZP=0Wj-J|SoR>qL<~V5+#nL=NIYxN&$(wOlz|R#_AnTUNn~hj z{*p89Jmu{-|KR8|KC%m)%__=Ftq85a!z;c;C+WHa^efN(`;xs|ALtr~-c)9eEkE&H zTS1K=7eKj22IT%9Ir9LQ0M4nk7Ont3?8JmRm(+m=t95Wmni*+12bTczKn%a6a7oH) z>wtt{ol9$ukfb39f#%0ZvYaDz7DSbhn_>Cb7LCE7#D#b2nsfhTQ)OsTpJQ^uJbvqE z*9ZL^0={l6NIMYGi4j5Y8zuYI%Of{`06+>F-T%T# zcYOPb*YDZ-^J0{&aJlT+XlIgDwoeGgsPK2PQhZ5u0w3+xhv$;lBFtQPd|ym10N7-- zf(Bbw1R}+A?FHoZQ~$8Y+lTQAF&^k%bNWRcmfu|PNp{j5fao-&Yq<7ZkYqkSqz)^m z+SYVP%IZDo0aBN>M#=Tn}m@~TbsR0i@G6!TP*XHF-;FjoD08n>C zci?a)x*olVg9fRY9VxOry-1P$sEYs`IC+=7l|2hV9J4Q$B5@pZy8;svOiUCM0Dxsf zPNZ1aiPUp`qG%f?OF2^x;-Od_#iF%f}pcvf}BHUdIbQ;qFKSgshyZmV%H2jY|X-@>fD5LZo04M4Ui(}1d*y+ank$xi--ka z`!ly3ZIhAE;oO6dG8UxBfD~Dfvisc)gdo@^0A$;P|1f9oj!mbSfeK9ATq=>J z>bDajPT7E4Cs-IFI=XM!qd)xgCC}ggKNkhZ??nlglJ!O9yEx-tl*zu!x`B*Nb&AL3 zu-@z?C-)6N(CSEE#PVfQWQcz4*$^7Xe^7Jy>%%4qaBle9OrY!J0-*=pvxBID%!zp4 zs}=mHCmw&9##$0T4TeC#SOiw25NC5kBGnlL@ zb3F+mHJe}&D4Ubds#C)cBs)*e!ukS$I$@`sQv2omlsR4ZD4qrJiY9Z+8~_aBn3ZA) z!3O|H6q8irmJf4S*u=~xW@BQeya0ekF;iS23K9`gT%m0898?x^mrTTUpO8QSCbTjh z?Ia?B=CK08^<_Q~G)X7)Q0i<*@4INzU-HYU08pK=q-RhqW~e@v8CEmaqxCx5+I*PI z%*vv?BZwlVD9e&AB+Ot@j@TDpF9aiHML1?(JlF_J{a7r~#6&Fw31!M=J1`Qm8%5@W zO6t^|qjzn(eZij1_x6;9cg0EXc@|lkmH(f*Hw}~Is?LPpbMB3-s_v@l?&?jwN@}%Q zYV8YRk=bR8S%icD8Ek_Ae*@oOkH>gC_V@4%ri=&7cp1jaU<00EjBRXW1d>?AjsO`U z2`w$DwY0ihQm^W@y1JIkhVPkIPZPma}IeH zl)~@6`6R0dAWBLC&D67g-ti|D5y@0Z1zDyb=NS#j)QR&z15O1_)rqJRaV~YvrB2{9 z01{CV%~BD~oJ%tz63MhCs?KSaffz1kK~$Y;ew{UBSmAIX;8s@o?B~DlX<{=g*+^D9 z*|+QNzc~{PC(;()#{eS+CUG1H(E7at?XQEf{`vB0+O_@W7lEx+Bt}hQl*$`%!jxaz zWncsVkl#=1EN`VkAR64W?enjEN0KkB&<&T#CQH=a3jAFHf|vD<-;B0!0ci01)~mv+of3_!cJdHIeDVb^^W2Zf#+7KDK-;$ZZouZuDj^JGA7`>(i`6<5q> zj9!`o+c8TS+`KNL8~zwaK;1{YFQlnr{hIZ7<7~HMF3Dg}FlxhqeBqC<8H!b9>rR19 zu3h!2V&(IhtPFINE?c_p1&8|D51An3<;X!0}QOrG|8=5dd!b zn;rg^>A4&bn506X`C|at$l0`W#+I;y^J_GG9&*p2?R)z~{&e~i5@ERZA#(oC@U`hna zNu=~a@VLl=XQvgVK&hr}o)95*UyfCo8yANZRsXfM5q|1ZjJ z%4W@r)wv0+&ac^V*I!)H>G}zl^e>%Qd%=wde12zc1e!BN?@>B$8)86^XT2hbBFhxw zR790>Kmp0rX$HxhX0@t_WEwY@)?5H2B2^I;VRb?*&Q+^QBmy`Q@=~mr1!01C7DN<2 zCY=KCC2Jf?9?XNw&Y51i=E?&zotvUPv+Z-|q1mY|vLNCAb}UHzeWS20wzBIZ?q{C3 z96=ZN07Ew!gfle%158Q|MG{v`dgQ@ zIW6rR=(5j6h4;liTzH+WHL(^^D;`ffHlz%M004$pT{P=dyvd@GDYXAAy#{j6DNAA% zU)Se`1?kI{$`}LCYn0~@|96s1i>rky8S|!0<(^5n>UITJw0St03d>&yLA*Z zW?G4jyP?6_Fd)V~ckBlPKfdxkx6L%8TgFIq%Tl=IXa4+716ympNSvxR|G*`GxURk6 zhNrq5yKax&@keJl*QmKbQwy=#!DipII##T6hj{rJ|Orx=Hh7AWGVyMEzi7`0{ ziJPH>8*-m!wxx{yh(SzQybD`H%*3kgA1G8$8UX4A;}J#$8u27W(>6YTyZ(7FFaXtL zU`ba1#Mpr>=^v>TccyIsN3c$DLyUxotp^?q5ZE-Tq*v|l zJ~2cl;qjw8F059^%RmOu>Y%oBSmT*>LMw2oJ71Dj&EcKjjc2Xf+VB~d?q@axA`c+J zq*1!<7{oLI8X^Iy2t+k!KR_xFr%FypGSwV>2%NgK=0q|j%|y~^k#t(rRh_!3gQP0i zlxI+!NB|+4r9vzYF7q-g=b++Q5Y002EQqM8QxAGYp&opwijs1fL&N~E?!p_N?&kc& zcH-duYfm2DzBoG9TzDUYk+Scy2q;l_?Is3<0r1$f_iv5E)0Ejz(wa{rDFG%xGZ+y8 zk*RPDLMWer(Of!;{()MXV++>qMpShA+gahhKj$FycCSUC-U2cT%i{i2S-g5y$zA}U zGO(hZGrSOB;WOq9A?5j&&9rlaAkN;qYwZcCBLdj=90zrYahkRjPR?^RpO&k zBe--7kIi@pwJUHJmdTC0y@z#%YpAA4|Zb9f@9>pR8+Rer+s40+H;Eo;)sr0&?dsWJHxF%{>4lm7%TxNdM64x_&pygv4h!62PBp%^lo$n;AbZ*E*I~OMo2H{9&=FRU@c=as$6m7QCx5vG?VZYY&S;r48#}52h%`yCcHQ^s zv(xHWTnD4AEn9olvjCb3kajXvC4p!i^yL|_z>WKnh^og1nW{^jrZq>JiDp$N&NY~i zEQQNbk0X2xh!#PJa{`gnsnndpiHIoF!Knj`6H%v3kXVKlKnO9lz3$dsc;i9JL07k? zs`Si5pWlF17Ni9PqMW^I$9k20wsYtC_PbN}7?|ERkKM%m-ku#rIxApoT zo_WQ)zjNkGe*2pnFL>JzR;<73-oAk|4qA=^&qF4-9CQ?4ZPG7ip8u}0Nv=+@9_^N! z!v95PBAmmySUZVT*>di%zGeS?i&u5c;s#r~_IZa(7N6Gf9P_b0&w|YQJk8fsvH8oR zjm%cs1q-s|soAk0H;tlFOY!dc%C~xL3he5XDYl)>8-Uyg>_it;A5WPn`rz z?vRNn!8M${O;^2d)^S0HcHF*V_dTETQZ}a6Os)(L}`#4mSdu>UfZF5aK;J271%$gPMy#C+RixgGN_S)HwK6Ea-8gRnkgaeovKlHP!P8|JNkUbUw2GHt^79HENO_orFOra4HHYTC|!BvMYdClKGaOPF- zJG9}Vw~nnl>$MZ>uYA{`EwA{(0-jx(kKdHa2* zv;E>Ijsp1MsopOETw`2V|DR`e$ZHd`0}_3Nw?MIWF2}c!#=xACAU9S$WpWjxJqu*`e7U%#J(%8HO4*d0dE#3d%JkUeUva(G(97*M0~_lyH*_tMKbFIS`4#NDE*{DiqSHa#A5h z!f_Mz4cd4wny>^df0KNnF)kZRWD_oe4~Ys67EM*Dj2YpCTQWT{7iDK{N~_R6@^#~AL`79X_3ci^@H4_;=+VQ zAfm8do<#|V#!*ADnY?jx3!uY~%S^;f;L5I_eDXzUI#xkByHPevj*`AH`_VG%F0N{i zAGoip)R081%QwFCH~<)C35=)4S?!{qs>IiV`0qe8FdCu|=W#>$(lq}SkZQxXw~W@)v~g!oifnTB`}xJ*@3CpqiF$dr(yVFWZ1K(Q);ixWIeAAi}#pPO|Y zEn&;l0Sr42ZMc1CU!s@jTVm zqKD755kdPD56orT-XLK!x1BGfsp6VjN3pq!e%)LEO?2K(@5g`>oHyr#n}-qbZ*LsM ztY^%+urN#K(6~9(LCElmt%p`_y5`}5rDyI>Dnlm~4FzJ5X8E*}qUXHmKW`^aW_5!S zarDqP|MTWUJHI`wtrSR*Sd~2#2<)pD=1fUF&?A)BVEFp!s?4gyFzi7=9tWai88$E? zw!RNz!i=-6JNf{cVnO2Nu_>{M*98`X8HfQ#yp1u2lf+Q51xZsJY+M8){&@Vc*IyG` z2NBT{IcoePXu{X5qtoxPHd-{_LleiAG_@g$)>x?N|+3c zOqyg70FXo(?`FD))RoKOMKXo+z(mPumZeb51PnMMLe7H@(Nsdyyfpz4=M<89DHfat zDVEC|ltcmxl8LAy)4`cmS27KoXX!I9~bv6{e0 z-_Sa};`&ehTi=TF9!LEimfzcQ+3CRW#+}PnzjPuRqwILPwVC2X+5xg|ts78L_F7~@ z;%z)A*Nn1svMY550F11E;hqkwpVN4ag|ur&F{y%YpX&XpVCzkzzAOWGA;HSDI|z>@3M>eLJqH3JA7~y}5WkV;!RHK6 zEW_{ob`${VJAND*cijb7WPrx zd14G%W67EZI8sWO0hl}h-Q>r`ai82F57H~8@>qhV{c?K-LwWANq8lp?uF*tyfsxT- z_A3n-I0qxK^eQ-m(w}oLfVjJ3Aud# zN}Ynzo1|FQGFi(e0wW9{$^SP=LiKg*|1Tf28HfNt3_OH9lV&*~H+6W;qj!Al^}Fu* zM4UsuED*U&eideoW9K%!HvsIR9k;J<_t}fqzj*a{eH@M0HEIN+bN+wX_CYE~q@vPb zr6kK#GEsta;v7V>2JoO%fK-c3bGatdakztjwU}a1g3d_vmrR!wV^MCv4%U=IKe{%U7 z|IgRXf60IR#+tKV^=})tyzZ_I7ryJsXn#!%O7pmVeC2EY>cO*L_?zG98(z0Zi3FS< zfaUC>7uTh|oupS~_qXD)x9i{Qdt0~6M;Q~sh5zegRwoYG?lYYd&VK%H%=8@Y286_u zlih58S^%4858w`^xjDx3u!;q?0A8&!Q|CU{os54FxDn`0<@8<~0r$^!+nxZB8*hY@ zc^t%onP7SK7;fm)rBjxlV9d<`MCiGZUpdA1U-kcCY^H97*Ro}0>%#jmJLk~KhSVLc z!IfJMR{Dm=Kq72Zq#g%C0;ryS)%$i2uh=@PfOG(G>6E$uEAKmR@1r-5M2jh~AS@s) z$gqGA|G~s;2o5YD)<}lM0A&uQDIG86bIUpVK?xI)WoAo;nFWRnSwrOY%mG-`L5MAP z=tZ>-IsgwmNRxVydki+hy0~fFIAI5Clq@S*j)6!KP?+d{PHYqN5gW|_L}s$y(55{x z1w;$rqeXh9s&KA`>G3@?vYjIvU%Fpa@@m%2>_?hqln-0~9XRzr4^k(fa<3t_ScXNE zP!a4UNkT~kIAXA2k_MOvz+$EbG=K*KsBl6IK$r}G5Q2(gGrnzIm@WE#LB z2$HIEQA>UETc@g;<}q%$#4AtX>%@6x%w_6R@%sJNWmu#_1c4J3a(;?}I|rFB9yxcq z(!XrR+0vp-9CJGH*}vwJckW%h zbe*)>t_VZ`z^vKy+OaFI`^-3uNg#UB+O6*ovux+sw(gACJeAZYJ zRVpi9XN*tDYq(NJTQOLv&&)?)%pX)~W~;_WZa1S(>_K5qOd9|qU(k4M1fNs$L$wKf zG^AG^d_Yx?AH08&xU}OjCVfk$&)ED6`~4JlGy9>MDKT8#(IqFKdLjk|13u-elK7zI z&MABI&}Sg2H%0&(jb&ip0*IKY0S&+*A$|n8H=5Ub$(W2KL*ZIFw&$*pP@~Lg1zP1- z#o0#Y0e1iZAOJ~3K~(l;HbjI^9(la$OoXNtJRb7MxSkOzHvYK$8rsSZ_vhDW0kloP_kvF{9jK zi^e@JZm01^kpEjjMXR$GLQQg*Tq%_O4_xu?b?lP`ubM7^_RZm@YYxT z$rD>&`k(fc^oeaY_nt6Dd_5JnZvcb26(VfMdXz0|*Gi9RdVF8k0A&3|H$FaxV=r1y z*^Dmym7dylqj*s16c@}UoC9>nfT(o#KX3hS7-D;RO0RO;HJ^}xo&k{8k7Ab+%F?|( z=av!Pdh73DsBE2faSqrtkZb~6K$v~S_4%3tU%GL$b6)8=SQ#@Cvmfz8GX@_5!1WKV zI7w`4AfGNDL6fhdfa>CrO_N(+{)gL$TB`uhWU4}s{rJC~{mAz|xPkmUB5}lm03d;K zkp)o@gDh#zf_MbtSrB4NPKkXiuJv_Aa)rIM7VJ1@IJ{$KKt{X7U!80G?a;MX^ zJy-yM3W&7%J80I+G^AEwKU-f+%iPH%0vrK!ga!c46eU^~waF99CJ*ljbtUSn&?>(Q z%YpXJEuA?0$dI^d*Ai8eERrx@4jud?0ekwO*q^ldo*k~gG;rJHSfbsy^%WRwAucnmJ~Iezf| zuF_g3{mUjdz36wIj23mvTy(>NoE8$RZcP<8;}jmVD%O1Vcd^)XlL~kS21Kj4Rux@+ z=g);@io52seJ|A%%8I*tI9~5eF(ixHpvW#HSS|t}M5jLZTnYEQakOU=w_?4IvN(`f zZWV)(Vsj?xpMcbl^|MeYnJ=i@DeQwRqzViQUcImXgRvBJf zPvikf%!2p?zIi19WzMBnfdwJ;%M4qCz=D`O5Itu>C}Bd7VYSiPt6_sYIMNiEj233Y z_Y+Yn0uPR4S}>MjEK8xOwFQSU;lw2M_!GmH0ua$WdrVl@YpGO=cT&h!9MYxE<0)Q8 z6NO1^gmEMGqmA?`fDfkud_Y8xJoWvSdIhm1eS_5v7u~p9obxdQDk_-}j1wX!dC@s9 zzslKFzu1}tV+Zb8 z7ahTD1+f^*X3W~*|G^>+|Dj^f~tVkvRkQG>|06OCT z!!qYQ3nH3|%UKYH&vGRy;_*hNDoP@vEpZ^RX%^05TPLu8c-^cs_S7bxErP~iML^PS zwm$|eMaRD#Kq=c_OJI3PE9)Qcw+McV{oB3oBpd5ydAERVwpJ#qYA3@glU4?J2vG&g2;)p{UO1S4^Qx;h9^PzX>5n%NJE z>YFshkL3H(BBBU=+e)uWm-f;$XFrrYB#Go$f%=H0SFS1O96o!m9@_n#CDSMOcZ~ly zdL>z=;4F*T4}nUZ{m?upU6n)|tVfVvsfvh8b14p}Shdy`;&7M}W>ZMF z+lAG=%qT{p*e7N^EEUoz!)u;S9NW1TGfP~W)K1Z|m?hzphaMTmY>Z4}Y%*xdxtpia zE~^F7&csE5=n7I*vd-tM4eUpq@z6}-=C`la8In2^Rj(r=((EBhLv9tBI`MiiRdrd_ zqD3;;Yy-m^X3c=OY$`DE@%Pi|y6MDplr3+!jti|D>%@R`VmIa+(=iu|&eNPLq0d!% zRVKx%k8y0zzs(5llm4Ys=e_I?I?1m>LWFwqm^s>W4lcU2n&S3TsnAiuIoyo|s{;dK zf$Qm1JZ0x-i|ZT?QHze_My8!|Kcla?$|NeHmYFkg8G~7%jtG{SGX*KRjF`btYeh203N^|WKur|JfQ*_1f;43T zgpIGWY}ntloz#@9Va=M0)5R6bK?#!r3PlU>KqKbDRmT<`d*-Jvs!kj{*SXpd5s9q~ z9T*(heBa>OOSi|{Nt!AfOX9NT*(?TBBDvK(gUve{g#i|1`+?1vU&KN{>u6!#H= z&c#arB?rK}fA)79I_+;@Xv5gr3*Y=SiHN8Z$ufniNU9L236W%V>6O$3EaIvei3&K^ zTnU_($*&{;rPSq;poY~!Mw@R*a^Rri_{4$xE}R_)Jxm5rkA@(D7vt0GWim8)(1_lP#XJ}it7duxKmm5#Fnz ziKDyL?R(_r-<&wU^QBoju|_2w6jvLrO&!^Cbnjiibl~AH{t{A`G=_~*xaL)`0U#8! zW3++~Dyi;X?>vLG>(W~NyF)ebE-eBdP3%Y9rNMeg1U~#9&EwQXL_n&09{h(@lgFNH zD_bD4vgw7t`2Y!=s1xzhEfLAerB^IME>mK0tWLbd%U8@UvLD3Iw(_?nZ49(&n=hrjst+QgxHd`pm8m4c6GUezQPB5Vy? zav&or{PY9=_`=$WXUZI$Fjl)PMolb8I(>Xr)qP#9Ue|z#NQH<33qnLtRT2WLDnp6E z(PxQ1Whgotr=l)1&GY<*O~qvzvnHyU6y;f&I)yqFZ7x1Zq|!`%h)>8tku#@CZh9=7 z*V15glMK$uVaukDwwpu@XQwQoK$*orvs0`_>Go-Qf^Yx$h7av~xat~} zY^kfA+&q5x(Rbecg&S|a@3wbcRWfF~|JyC=X5DQ1EQGaVGuo}|v`zi;+I7#TW=!m` zc;uX8TVL_vIQ8yaLB(kWAbMffjbew>`8&EumMh5^@yy}Y|MPnAe3kg;*p;HP#wp~Ap?<~N$v5cydEUOrd z9%$Q`1raYza9#)v=h&z~R8*Y$aCA{pbpV98B9~qJ>1~6{x6C@@OR%hV(%%2I-#Gv2 zZU4C1SNbT%f*1gKW%LjWVhux;!JHQ?w9J+XMC{Q7Gh1IPB*cOk$4q(ZTazRdq*x&k zJb)19O1ZNWg29W6Bk&=jlueH8)#OWJiK-Pqqn@pxaOjV97(s@2C|n} z5*NR7Lo?zGRf7rtrx(8!jtI{3(> z4n9Pk)3oNLSDHGfsgTQ5Bz4XS0{AG#e)vls6kkt1dmf^ILDJO^=mdKMdI5umf-~M%qZVvg*lYdmg{_^41XmwAbMmWk2N7$yp`o zaBeCI<1m?qtc;mBWW56bj-KaC_0M38L7}YAj25I>MIaLQ2{Nn@JK_@pC~02nMai}O z4)Y9H_3^3`hs#)@x&+2n7R|}wt4$v(p6gDqwyWRzo`?VCoE>+5?1hj2_+wY?_{o32 z^qKoVz2%t)K6}=)kKeN9*q$GZj2(P%7}=DK_w&O~U;XP-C-%Iq-Iyxb(9`#S_Aj=5 zI9@xXF)_=odqFPXeLm&O8-!L#T)+DgNsMboihkgN%`?R{_Ez) zfBex6&p!hC8mi5F^0q@#5PoAHf)lF2xKG&A>KiX zKuBO5^3<8L) zE^a%+dac(%=&7kl0351HP-@mI*Vzvrbe?BkRaO5+WctM3tjCXJA~3$t91&IFqz*nr9N;o_nS*m)dKJJ&%zlXTS(9S$5%w1f;0dK73MvLg z7j5$Rlk3un!!zD<#HEABpT6T&O$&23)V4`q8@dGaVDl_!(-TKlPEYI|M60|i8ntQj zV09oen@Y_9kX6SkVLYdr>+UIc#PYP+IVF;(+xF}Tn4pHeyviSokVi1wCV@oJd<+lj zK%@vl+HOakvz-B+Ee&8Ls~%q>uG;ozVw1r+%~Y$*$uDes9Qz;n*G*uDoYIK1c1%lAId_y5-XaSU{?8<>vSu|=bqeP+upmA|kW*C=Ck_M>K-4*>l|>`9 z=UxBV2ZxrQKW7jED4xFm?>9d1jo&&~HDv~q5E*7}WMRHwYpgL8vmi}UEck3xfCnM<6t%^|fIw;72ha#wt(`p3bxoO*M<0KwldSb-T=*5U zY43E#HmCHtC0h`wNbizQw2ae;@eb^Vmtcjsk2u{fAToaVvHtsRd(XwSsUvM4*o&8) zb7b??zx#l)N$sMMgG*LyeSF24FS&R1=4*ev;gWZJcl{;rxTCUU?b88#sMMUx9AfF! zY{5tPp1Mh^O8};h?(Uj#txX<1d*b-+H31@&1-`pHpH#)#jyjyNz4x|dT-t2X1W=?A z9Nm>okMCcE{K{ftqQGqCGAu&`ugUUk2zert40+%HW-??TN-V16@>xYS?6bm=ZIPrE zEu=fP#&$)evDf23rUUoX`;&9vLfqMqsYojaC{9oTkm+2@Zlsu?!f zs?FCv6#jqmCx87SRq3ieg}CXp_ucZ&SYC44FtAv-IFN2Y3EC~oYA4JSKmOB=opv^` z7>_!GYjNF~=Mm&vfYsR>e)WI2_TgjCeIIt!9HCq`8u>WE0l zvmtqX5Qq~8+dq_De#8ISHoWShdC{SVc712nJvaaAMYYKz34@7_;Y{Snzw0iSv?pm?&W!r~VUA(7%$-1LS-|!@W?C{R-ub)1; zV@(V`L^G#ZS{nBez(?3e03V{M1n|*qO%KXHc~+a4k;0EH9eetm7*{}H7$c7ix@7vQS56%X#V&cf7?IyuaConP}Yq>U~|I5~OVnA@umws(ib>d*# z$rLsfch#H!>2BLdySt!%%Be7plqm{ab;~GT)64M>?ZcM=%sDe>S4J~WSi7wGw@5g> z*$)t^2Dr0V!}T-^R%|E6@PpwYyc~*-wBd7QsyO3f#+9ONo(Ki2I;?3^q_=m*`0g7& z*t2>c0D!N4Z0SqIO-D`zXV6VE=hYNtGEE;+$m? zRpyF7YU}`EZOm{RlaO-_NllU@O(KnA><8s1l89tBRm9WkiDoT%_(o=9?2o~;kvIF| zhusa;>nB|RALKJ4L8TG9+d}NKFb3qO`Ixrta)`K+_DLBBHq-r^70+3l9$nmVc z*|auM|Ll>^Ju4GcN^9f8d$#@aWqrfz#$9@HnVTM8Ca${Fn8XTOV>mI)iGfKBvoXYm znJiCoLVb&tkF!Z;b=+BPBB@RsNct9^Au5{7At{VO0Fm>{6l}pFq!4m23}Xf2NQD?a ze1_OqR9y-N6WavNIik#v+Jw?91IUm8;2aoQ5{p9#6DOqP!H?yH;!Y~eFaXz6Uu)?v zsd)ZH)1*3iWTk=vvjIsEW;_V1(|p)SQ*gJXj$3&7Tf;453N1$=q)Qd?dbfMedytl^;eJ2 z^*~QYV?|oHs9t@`hjHZkKbT+PyI}AA6w+Hq@mUalM|HspOOId%kdv6kZ}O&5Y*d`y znXg!J$F-xFbDnug&F8~b$M+4~`^9%$cH+RcL871&XCkjUX|N!96?9QzD6vAB zt>wUiFdJfPDP}55AYx z&?%(aZHoD*zt#iKPafOZxBK2tt-9-`H(&JN*Z;#soxulTz6++to?c(8oft-k?^o*#igG%2bQw&gD>+VV$M@eq1c04n z#+MnTNQRXc6pdt90CH6%6ML_SE;9W_A}ZJA3DBj+;$oR@e3a#WoWI(vAfoRflcg`0aI% z-SOd$(yI-ZynXkUmwe!vXi=|k@qr9HrR-F#EH$*^m%j8zIHyyp$1A>9(Eu~3KK0aV?h)^s;+9pi7G>U zF>;d$bHXZ495b_X5GJrXQV>`fnh9VT-T!{%zT4ir_2}N8%o*sV)v@G( zufF$^OJ4I=4=y?5@)O=U5fV1cfOAAlNJW*5A*fo*&Z)2v31tjJfcTmqB&>B7BxM#- zMUsd~Q+8YtBQQO3hY=CeDAw=$AIX@OQQ&zi!b6d;oB6`gjt9k9y39RDGek66T``cmM!W?euF7 zY)CkVWdN>!=~+)s9^3VTZayObELw6_Q}MByI#j6DZwQjT;GO5-X`T*7!`U{bf7bCp zN1y)D^3|Jv@fd5CFf-JNXFPHl7742|6GRxIs>FstLIiREftgqh#9Fdxf=p9(zLW@) z8VC#$f^%%yM+&7%fEt^S%bJq`7?Tj#P>^e7Ovb8`fxmdzTJlm(X2U)MACaHfV6c~s zMc-!ZY1XPI7rS(#uPB|GI=R2CWU!qjeaoiN0Ox}CGwCxj6l41zu1h;rl_$-c+Fe8sXeU-7Nb|NIw!;HUc^`|=c2x=O!1wBr14w>h@P4Pf>*Q!SJ-E9)OG zoAo1KCByN3cMl9KIWz5BysDe$dDw?PzqOORZ~GU9cij2$)hC{Pux(~U09bL>%bvaB z`p-Pt;aCHBm<>Y}K7X-pOl(D!MA`az#R#xN+Hxf*3_HB@Yoqwn*N$Qy@uLm9eiV0p zX%w3XxN7F!volhV0DXj}Le@>jIRN?Odyp`2S+9?wmqv>3_mcep78rnB_xl+C(jVfx zr1-^!+|PVWe8HGQo%&207$aD+5P1_6n9u~Dde;YfS8VW`f3|tKOdWX_*t9rks@(R+ zkXyKEhMP#Z*%S*CGF;81waJ9Ys>7#>^O8E4lW)#i%pGAsWOg^EU$Y z*;C4uivOJ(UUWhdng=f$*ZAh_<6LE%l(UOe^PxLK)CaWIrSV$271_sY~bYSG{wsgO! z5+M_THO@Jox^|w{6tThBA{i7DOQDYD6{xkwccjsPSojMQmO8Xl(v-4c}A_K8P(_PRJn-WLIOX z_4$4qfk~~Ge*L$?Or!`2yz1SmlSh^=TC%u_1*o3fKdag)0MI|YHpp(`^WClds?KH~ zKlI?TYHfU&01FS+ef=5e9@%HRL=^UnnUw*AsSxF+ozT$NS&mpLNV zq<^U>NR$4hE}cGZB%R=_c9ODmlB*{VBvU7z=@XaExbNXr7mvO0tzUkK$h0k7ILkwy zDeS481^=Mky11}0RMiwRc9tKEL1~IW1%_*kcj_qqntC*0n*ujg2jaGq=H%B15Tk$R>$yzUJtt9TF6xKol}u_dCunZEq7#StV6=Uj1@>{Z3M@_ z|Gwb^=ouyb{ZG7NpgR53zf)jPr8Q4I8xtI`*xJBIQyqt{e6v z{O~FR%O-|bZ2fkpzN)~`$d>OeUHgJYmJ@CU1zM(MFWIT8l4P~EP`cY2!a_zlPL1uF zmnN6U%Chw@dg|(5`TD1?{?*&RnuCuFU4Rb&j#8TL27G|Uop;TLzrJkMRrh)Dkt&d? zbB$I!ws^VtlnwRoEl$fDDw;3b`26pII!_uT{Y#%-cFxONt|1krs>^6Ti3kWew?Xi@ zfMS(V`8Fki(KFiE!3UR59N)c;$!CrBnWLHGVDuov@-Iwed|6RL%&f+MjG;VjFQ{Tv z!D=do$Qm~N##)OC8K^OA?LaQavaD=a*)Xgj*aG-4%$5upV_{7Kb!1eTnTRNl0bw%4 z)__#mK@5XPwe_bIvSPT}cyVT%rpNcq`uVbW>6x+azbQ-w%~=cMK2qq5vAsWS0sEbXuE@f7bGY|mYb5AOKJ@PQ}3w&a;@pIf$P+dqx$y8C~w+_UYUM)o~=%hG3eetXH$XYL%D zIJUFD8}Ko-a_jidz4N;d*uJ46>oe1~VLhW+@>TroalhD1$+FPTM6Jx~%T;y8*$-{c zz5s%AZb9z~_1!p%nkYU4^gMGb6Lt120|T-U3`{Rgf!lkXnH4w%0OZC|)H21_7J5H( zwOnuBF*#?-tYW zHpPOF95)IT5$}*0h7(eOIL)$DGM7P+sX$ake9Z(E5fz2zfyF)zvaj>NP!QpQYd*TG z7a(NY*Z$)r((ZgOK59bUfih5xktoR{CBrWsJW%sa0E ze25D&ASIG!K++BSQMzKL4Vj6+Z3Eh8V?OX)b!5YfCx=#Sonp4LsDs10cx3a~x{KfX z#1(J+`yXw6`G>YIS#|Lw8o(le4~O>PBL$H5jjTToNwXsOkaSv_Vm>mb*4m5)xfTNt z08kYvYvFjEOEr9Nr67d8v)4bc>hRL_&;JUMZDB}>ZFO+Pxj$O9<#o3(_thWRDoPq% zYpFP-dA$fmR_e$}mT5g(R_>B88g*XsX@YvtwXdHM1K>vdN`HA^bVsY6JTNeIY}a6( z|0V|+;Wf`@M+`8N_x?eu#KeZg2cr`kSPQ6VgUio5j#l=g&BSpzfA6La^-Z1Fw}yNL&Za)BA~DNq!u4zWCxPbJ zljUc=a{RoPeBifDGVpZkUZ}Qs+1WR}_}$-s`}&LDez1#=7C(2|*@81A&Q%jYPOHpZ zgUh#^{JD30@4>!-6|sX}y!n;^3U0HmXvNw;0aS3I&%AucnLtQp+RK&zfC(@E(rE7_ zOE-+-Su*&H&OW6}Cu2}&iN65Zt-psMQJmky{r1`prVlSnZNG($0m&q_!mwvSh(%P0393%P zWE4uc=$eo120;6^fANetoeTigsl)yEf9>C2`usQk<2_s%NQKytsuO^jL>%&15Lglt zCW1P0^;i(LmLzLry0S2oAp??xs8%y??L)m;rGl6LaFpiumlvbYo z3qP1%anZJkBafb+rV~RZ>6=_MwEpQu%g%p>Y&3o@y~>?ErEZuH08X8fn2zEz&w z3r{9}gH;g`6(>-qCk{QbVdc>3BY8F{MQ7$C02Cb>Iq&d3XsU3gG}t`zmCZ#{ed7Bc zyLf7R_a+Z0Iv1z&4t;(-adWK}l}v~&gK{|*lDdOGv~2UPMN2k(X8h2jo3rZJ2*|if z|Hz?5E6#b!*nx(#pU0t4T+Mi_W%CIHkxV#GD&Y*1g&~DyV=RnGph8TRNdP7#qYfrXm^h06 zP+wb!;M0M#F$~I+ifSGiq6*Gx;{%m}rPBa7tDQ7c)_fB%w+ zqdT`i#10Iv+qLNhzj5c9^WSv1aD2u0WfNgVn@@~LSLU**N;-LTM6&5&B~8TD1{ZRF zvo$sqv3(sG#$sT5r`viAE&_{@MXzPs#*(Y>T@;TeUfwnyq>~)WxXu7X6-2-pqCbZuv022*I0sF&+Tc8M45tK~)#wV(96cf|?9&?p587qMZ@|LInNt zC_XR1`%5Z6KBuODK(P!211&$vj*dkln@TCvqO401aGj`;G zFmuw)&AdqQ*6V)&;A-teA1ee5C*p{R6lxrZ7@9G}Xr>uBiUmkqdCZcyOnko39EjwCa^XxXOI97JELrvAu()x`%Z4cj zIqGVPJeGhY73HMV10`evR2c9nVu=8CA~2`VjnE{EWMut|CPvo3VBF8eJ5}e@(+eU{ zagfwGaSAvAQ~>Aa>eUHq<9*|YcPtxPv1LD+i3AXmibKK%7MaU(w$7Jz^o$9!5=5yaZavzcDl9}oEUQZn8AKox)1_S^O?f(Ao#>?J)Oa;sg5usd8MFL_b=adY?fr%l$-U%CKe?b^E zR+*fLI?sZnqHHTH89bGifsFMIRsbQehHL6?`(#W#?{NYH2V;`Nsxke>6Qw!(VG;;g zGB)w$5Din1U)e~06{J|6zhNS-S9nJ{ePn56VCew>IJW1mAr&_(3X#~lkqs|ChUOsj z7I{^)F3xHQ0C29x6Jt9zWT}H;K*TlCptURo07`N&BB@gWFtYsIy>0e`fuW7lFM8Wo zzXjl1W$O!81RrH%o|2f5bo%(B>g3^-l1&d2TdN?`i#VxX+lgl%8oujauD{^wU%mYy zA`_pRG8QCGA`@BwC1t=Mjsr39_r*9Je{n*x2t^}S0Y-E1))YPh&TuMtGAS*V$;xUm_v$QHsYc7Bf)l`+$ppOhJRg8l%)><(4S-(xi5P9}P zD6u{lFtI3n-4eEBBKcLGM=G3LUm#VqE+=#8#NwT z;^0fiIfX)7VnG@#h}WI_xp`c8&BvZvyY+^-JoM_e^QV7x-sJJ!{Q!{yq%aI(QldJ@ z001IO-C~O#1*q3Qi>ML^qUr!ul>lPZiIW_#5=6xbLq(xV za85LH+4N+kHgRYG4d4-gMgSk-eLRC)8(MwQ(Zwq^KN^6Ct4%xAR4T(OcCWkS&HGnx zdGiw@sEMnoxSIC$uXy5$H~q_J&%fr6KR3AI?E8Sm&DGa)Po>@v0TFcyb*c&yNmVry z0-#a|V2{9vxKt&NAt?hK^%JP6P~O0R=5oRm4v9LKW)3Q;ibre6vStvfd7(|>*pbT= z>XggC2>E(_eFG~q+qa~B5NR6|$>`u?UmNm1Is*0}9~Y7r1_3ksU=RahCc~`8FtcTa zVKSC1R~TfB<-{+i#8^%krech#7^455x;KxLS;b-H|em2j3@AWo2b$Wo1UjiF3}q4a1EARyD?$0h1&N zDDi-V692qm28=O-Mu@$?158K~W4LJybIyJw#xxqlocKwNNPd-p zx7d9Dr`A3D&}WvQyZ@v7I0hAQ#9#!N>H~?Fg~$CokKbQ=uj~LJLwy*Y6|b00KM0LM zCIx>hz?Ng$kiv8(^AD360nc$*SczE`Siz1^~wRngh;dep+9vE95FNUj+ee@DZ301;}Y8 zCa+)MG!v!5sygg9^IBB(eKHWA_)S#r+N{oB4b+T%}O z#P-K;oxkS7w;v#Zs(=9!VkQ;w`LS4?6DDE<6(Qn;$tj3(UzspFftp5xoYh>4blO~ORRkY~~v zL`-T7F*CCPDA@XgB+G*map_=obl2#?9S?L(f>IUB&w4}bS**->C1OeJL_=ERiA@jA zO(zesZS6G^NA?e-M|X_aY&@~niSdZnGhPr^1wNc+YRI@{XT7B?1FX~k*S%h~yjS+4 zE(ASJrXJXS|LVyj+t)ES3~`ex?|LGN?sH1DF)+M1JNwli+?foFbX=b{9cSA*#1n^} zZA>28))?Qvxp{c+-Wz$Mtt{pf6NI5Ab>ae-0@-D35P3A^k-KE5u6|QU|4~K zD$>6tgaHM{XR4VZLMDvAy5R$}W0nf>`7vAypyxtm0I=k&%loZ268k`k$98h3f!M^d zs-b)WNvu+mo6teZUPwVq-hS>RVmYX!JnOBuN_J@Q+Q zW+sva064Vk;e~s*+_`Ac+E?%P+jd}Pa$*^PBLh!zB4x!buZi z(cB@F9a*tly_sACgAuV3W$*#CS&x|gaFhvaVmh~H1!&fG?BX*ecN91{uF|WT zy#RtFEB}gt{UB9{Xkb6Y2~?oSrB?)1u~xy>l5?)noPQK;kP)OQW$+P}M}Hf#;nn~1 z&d2Wjz^lfO?pm^X!}b3@y5iy^`Ri`UDX)EG+asSo)mn>m@<0>OP1U&;0^3DN0GF-} zL^KmPpR_z$2Vn;>lJu)S!?AL9J7p0ErsPtV1J# z!k8e#>Nqb*od8~X=#iecY(WIXq9Ouj_Kc;o1e1V?F>l%VM`i**4)6KV(828w42~|l zXaYG4B0>Z(d%qZk%7p5?flApBoG?KRDXW1|kb^QCh={5&oS>;zQUnkJuowu5wyW54 z!}nvkL=z@ykW*q~8pdz}rKTY=#x$Eulo%NHu5|d6z~F>ABrWE^+~o2rAg|m`@EJG! z8rz@z%DQawKwmTP&A|nei`HH?IdNp?C|m|-$4S+~Ws`7rf}EX%+DUSDQYFhA;GC0| z6`NW}Do(8vH({aH8S>e$RION>fk=yqkAnGt6=Rx{E6;f2cb2TZWV)34y#S67Rr21d z!D#>(@r2lvb9K6C9o;oNeqhT=PL5w)pNaQQDk@LiL1)Ugc5iYgw*fFn+w8^A_cUR6vumL9v(-w^Td zQuczBJtW=D>52)U=Skn;0m3_V41YFT^+8_$TR8faG2A=}{8s?;`+dIx36q~Ls|)LJ z+6!YQz9Yux4B($n#0Q;l00IE5AK;4v=i>|&tUDQ>9|tL1KDA09j6ku!ypHoVKn@VF zw(sqGlly0`{{Wtzjr|Sr#W5_;fS>8-JqpNam%JxM|CvO}oxMA}cT17CK9^w;F`U4W zLC7j2%49W|(TNR2MGdnk91|H)2>HHF6l(meHi6VRke@V!sDeq9x#7;g>ZWHNxc%qM z{^#%QdvF5)o9_L@8H?6lzQ-RA!+>+dOvVsI3@Zr(R&qzJ1Av4RQpupkutTD7Zc4`~ zq7mCv9j9=z{5)>GI5gT9*;c3j&(wbVYN<>_&I4unHX&_+f2~x z1S1TuIZyd=Hgjeq*}qq{aIbC#YJs=zt`SaZ?ackg)ej!jwXxpl4a zJq3+^|E+I*SvGlSMe)5N*&Q_-?9{1eu@ZuK`3n-Cs*AZv8o;G7-lw5i@WNDv*AC`p z8P{1^*?(xl&Tj+8A+Tj^6QH4RnS~*C!T?)q)ijJih`7N5G?>+A5e}{f5)~MjctlfV z-pT>u=<|QkNDQb!%%TbW51ar9 zAS6>T2oiuuaj1y$8Gm9j4KfN&Oaf5TFf*x1h+&AyfT&@>2?h28AfhB;h4Hn~*#KlX z$gcwXQPc<_(5|PyGOyp`vtaeh4~-w#vQkw9>YR!b5$hn%iL*{5b?TE=S^qIkayk)K zMAel5Y?Qst+6)FFRw*4`bo!Q|c}w>WHJ2P(c;;*NH5&7$^IY^ARg6cSA)TY=Wf0O= zOdQ_c_pzQ~C{Qri<-bL6GAOIhf7`*;=fCaXwnsiY^3cEjKkKr|1AUFj4)1w<^uaH@ z=j=*JKTEh7=AFreXEQw{W=CR;N6&}fFg0HP=;sc zcnbiuCUy=x$uty9i^Galf(qvbRx3_bgbYXs6im^%8NDzOiyvTmGdch$sgja}=Kx?# z(_Q$+o1Y$@zivj~<>SZ>Bl;C=xJ)ZJv6`d+#Q0j5~j6IRNg+foIMUq*`v?hmlD*KLj=u<1VCo zBB>V5TEIE&);RZ&h_eu9p<*>|`NkzMDglU;LtK_aJ*N=s*(U3JqA?X^Qh`{7ihABb z6`W@#Q-S|M@|qz|Fn{TV<7}EUnu*-`%-2RI4(|wgf7|syz#Mx)3^V*h0W%rH3S*%D z1s@5669#d@++Z>dlO#=6Y8XzMoN$AQlLV$|LQ`%e%8kUBhEWB>Gz_R|K*p%?UJ@c> z)EJ{|3=3slvmx)}uSPE6A zqE2C)6!Rq_N+hBX6;ZX~G}QjEHiOC2i4V?Mx?{uTANkVySH1uKQ!aYX)5|tozq`?x zpQ4_{=(p7w(n~&-DUUP=m3DIAYpkB33P&wEOY8I*Ku6Rz`&Mg zCF75hObEG|IFA56T)yo9I$SWK=YNakB`{Q1t=*!2Kg#whkT~sb3_fBRRtz-C&pVba zKJ6!toPEUyZ#(s+zjSX{Mgw!7hRa;h@(@YYT0g!}n+e%We4$R?)LIG6AMbjDIkRs- zTb8F{CA6^K6d-~egg7f|ou;rb5|-y#*$|ClTsyG@AWG`QX$HWl_!Pi-QUED_9{@0o zL7BhelDJZL&mk_Q&G+842zlmO(vbBk=X$)k0^mkoRFr)6^u!R7gaBh;8qCa0WDJ`I zfj9vrhNxkZB;hg;DL0sgfoYhA86c1`ND>O*14+WrJku5o6B`3hc@QCCV>s_0@;MGA zzk`L))Ps}#+wPguI`Vv9dZ3|^m6HosUv@YQn6)5d+ukUJ`s{;omm^M5b!{`C`R|_E z41>c9x1asW4}E)R-m*zl1B7zxHL48h@$)kH=mt=#qWs#Fbq7Y49R^So*CY>`JJ!)i zFq1S#4-+Rd$>>%GHY&kKXd_G3PrmA1-+Fv#-s(O-Q}Kf@|N2FTc0bz9%pA+BVnAXr z6+FbP3Yb)ZkrZ6Ysc`s8r+N?tEDTD zC_u#ZrcniYFRpX~LJ3b@tN7xH{LGUEKmg!|F+9wKJ5J_45Va|?x@zZ47-|B~_p@CE zzH{vuzH+SlSB~5N7tSZe%ci{0!-YzW3G_BAF>Sbs{RK5@^I28N|FVYa=y^v^5YB;! zO6Fx)q@r+2q~d2zJ6RAxF`z*Q3z82;heuCI&%5&fK220Vt5p|=_dL3A{NPqEnw4S_ z8a|ySU>enjvLh>0e$y74!nt;Z^4R;~oRcg99!!~pMmn__%|up`Y2G9il~kOh z;v!HJKu7tnwXJ+tJ3&ZbLAX2{&VW{A#d6m7p_1pw?S6Eff5PU%`A%fw9Qh zkH~y3BI4N(QO|ye`hw0@M4g*BylW6`;8D)X6PS*&_akOXYJo@Gmacj2k!9oFb$@pS%45`V?c@F zJQG%uB%H7ZBITBFlM`;TaFTGNX=3ofY785{U7uKhh>@_8VF4I0e*S`t$+Kd?4@SKA zBd{OOKJrg}o6nb>@zZ;X%S-bI;;)qgaYU0lk|{K#QU(BPmDCBT6ZVXj0DvKJNz!Po zIsccwheo52AY$s^zw#RBp;f&%Y`5y#LiC=x{pc%(<}4j=4lS(D>XRQQ1u!so$-aR( zOJmDUS%!^I>AJh3@bcNFcp~8 zu^@3n#p{TcSN*LG70ifzB4BiMUTt@tSOZ#dOhhm|eh}Mxt=*x(0}lbW&f;zY z0Pgq$j6m?#nZBQtx}o=;&jo8I*xDn*)351$AmOpv3_*egco~*D4HBD<6QBKhs-#-5 zAo1Z>)y3;xeR$0U@2st0Ul*!M`?h?m_iS3+1>98}wZMJ^mLY%+0B~8V&Q-U}rCNZE zsKvk_1|F)ZsHPpvhiWPYfKq9B4no*wQdPK)jB{~ait^VJacU?jZu+q-t|Ph^1D`g^ z><7dTbS2EL`}|fp5Q^CkksvuC@|yRF1Dlqj4IlywQqF=EgOMOJ>BfRo4U#%$g;#HQ z$HAfb=iVi$g;)zoZIQu>kU0a-iWK!g;DLzC!G=@+uh@7FL^KB+HqBtu3}Q3wr2#-l z-HRf5ffcBKot%gfE7mzxwc-oXIaO7)*1?H`AeUjms(8>Ls;V%#3`@jc>l}U?)n%t% zd0?h8ERl>h-ScOQ0Dy_0>g#rDHz!$5Tdd-R`**yE#@Z$B4k1Rbs9`sd#@A$QufDoYb zdO_*6^0s@4ZtHbyXW{CXY%)o+#GJQ}3z@_Y&tLm|V{l=vfuDZDr6PI-98$G>?!vPs zU-s79A2*HRzChNYT|Zp(z!!gIeYB`7$BO^PY(@YqWd(I#ZkA8bFN@J7&-6=+W$f_8SK0xKe!&k>;3!cH6*IkM|V^U!HJ?YirV+8(upGCbwt6QC=nhbpFbh zj9>VMo1Tp8S@sgoKKSXgwm$Tk6t{THOli<%4T|FU901%+I|5Kmb=%j`MRt^5@+TX=7)mfWqydVI` z#*J{9;;)tP)JfWfqEi>DK&6U-TW*0N#ip)XAw03`d3<`~=VsJFc8%M{aG40sJ(g`y zl7tzBx{e~Asi@O*;^@I=Mo76hcX~aEd?Dd>NG=-)GAt>{u=3Rk7KDhr;=BMMs?0{# zU-5g-5SzYk783`z9!pJ^B7!eMtrf{qRmvomWC0$006E~GHrOa{t6Z?KXp)I)Dx_`G zxr$%jv4J#Iq~7eDwWcz^fd%PUM&gLAEB}b3BCIOO;If^|&c5cMIisf>1hdXtcHZ`R zOV)29Ze&u&cBm-TF(h50gZ%&k<(0D^s-!;IE}#nM2fVo&s4(1$q(UTC#W^df?0@!K zr^EjqWl#}hRv9`6Kd~XbYVcDxh?)}T-|&fVJ2pFnG6(XkhorV>KwDY`0HLU%1lG!V z$yKKp#JXNu*rtjT%Fnd`LY!t2m=Fmph6h8y zHapDQ9{KFzevSpR(RCO7;x1LC;QydlS_O2-C&Tp+9ZL%7hJnsLn@D76&hqU;BTLJj zMz{um&U1VwK9FvbtazRBy5-mE_OHAgs0I*jaCqUw;?pjFbY%Itn}$Z$JwLMG%xC8> zz37R7k=1*dP3ime$$+$dP%*HO9-fy$h+BK%&+j?)()VuZ^W*6UU;ee19NzPId2k#1 zKB{C`A?sBPOnPNOs=Od|hV|(rSncJGrj0H|psMOK0A=+zKb|UG zf@T_6j~H+`n@Uwvn^u25=PXAKIAY)-tyUX!q>=X|dR)bV7|ALJ%*EHui;xY@KkeBS z=Un|5^FYV?L-SAFyLj!Z9+|)5q9+GN7VjZ4mV(D8uoyGy^i>P?BQ~F7s`=dO-F@9b z@pd9erXYq>YXNcs78yUfXTk2xUtf(*=~X;>R>5;Py9N%tncQ|J;R;*%HQ~^ zl9>Piq09-jkG*Z#=orNS!h;d02P1(UnJ%nNk!2}`>m+!KR5PI*hy+=d(@YS+26^Oy#t0ue2)UlDaqASCKS=B!ADrJ}lY-Q@>|=dGP-CLxUPe`a9w z{h#n&3F>4)K*Vg=^9$U_2TyDa8zN&oI4FUTkR6N2m;gkG8VSG&zzLBtCTV)$kqnx^ zdLZ|F2q(tBmy2S9lv5wz#3K!6W?}}Tll}1Z2x-gr|7Njm9q!A6x9p6c-aBXEsgnq7 zeH(k^{-;hUR*1j``W2N(ov=EASXC8qnZI4lU2xX6E+1b8ALZBjkzaLNR{pH2&#&vd zs$^naV_p!-6(VENpDz0Z+ zhX?Mt<%X9#H(8cl0aHOo8Avqpze%*bfof1u_qaTHIh{eh@>(F`V=mfEiZgD%5wAVg z?Nr6JV|c!y_;XZ%3?eiL*oV6FkuVVZk56|A3B(yUw`>k#LXl9*jCE_fB zrveX`^)`BD03y=$Gbv&^oTd^aUh%AUG0UBs%*(CVSk}^x20-APz^B6Tf1L{wFPEa&&^-;;vWqyIQ6+?U^u>E z%s{@NZSO~HKF{S>p8aq_gu;AYct3*PT}1^dRve5tAr`l1>)q!Z*!%EYw3&}8=~a~k zs}6W{lZ?dSR-X5+Lo3dB>6bIt{vCxf=aAQLDKR1dz_5@TaZV3}Q3b zy!j*B1|t6V&eXX~#9D}0b!i4tCuB1fh!8s`B5K8(mX-2BtB5L`Q*}{-rfJX(2gzN|Et9ZcRo7EOi<)3h++6@f6VMF%oE5k6SIO16SJuR zAw_nqq}c`{WDIlD5H}grFa%>5#!wDC3^51L!Jags0(@|TKxC8?&%Q#wzOwd&JGmeqfm+Z|S#^-%G;$_pG z`!%g=L}D}qKjNH_{Jx*vlUsV4KALJmZrqJzUr z(&cBpar&Ed{9Upm3;@LbrV~pVT+VtFDNJFNofEd1FRx)cGf2hqD?%oL`2aldaD_jk zBCTrLQfalIS*qpc(iSvpDd%7U07RYhbIA21M{qx?13@xC^$3Iz>|@0+y; zz;hR`e|qKmYpcLV`KFl%>)@Ov2j(t1=h>kJr#`33$1pg^GhgL?l3+e3RSE2e=JG4a z2f1(x5i4P~mqZjKl4X{h6F^eh{?KPHJ$i6cs8(JDKC0v)h#pTjh^ifIoqy%0w-3!* z_np+XklGd|vsUiON?mAx2P3fFxSn%k)GQ^_P`+Ja_Iq6VN1L>N%Y+LA2E)Hy5a ztU6@gYXniUnM#&H#VO}&beW4V_>v49p!W( zE~OuS^*2|$)*(L#idYa0*|CV3*yMG`InS0=0wI(nObN4T8a55X%xsdTp`_^nNzyc& zG)+js>yb*%dQ^Z9r6l*ACuGR88{YlFY{-y;IqX}=>iy*1f4IzM<9)Fot1o!RuECKN z?MbpJDR@iAt0I$K@!pF5n209k&Ofv2{#6AIdSd_TKEGz280429ciWd^iSjwv!k<9jFK^9T`hLDjjL2O7Rep=x`di16^v=kUp^{_OaiNdNM? zSf{}2W@~$m=A5ILCi6s>FaUV(wjazV^)rb;=LuxECVy>3#5cm=1Bo*$6=w991(^y$ zI@+2G-_eJWijXvho#q6F_F~m(z2h4v0H8TA z|M2Lt^_w|q^gVl3upa>G%;!XqLVl%Atz;6|4X$#9t|L{WmB{wX_Zpy$mD=Tm11V3uGvXT zcG4CG_l{N^(_Hq&K$@i_0`h5q%SL4@4w+IezY8pgv#FDu1tIH{#Cp)7qEM@iU(L zd`2(J>fRe4!w#TOQJ}DwC^H`AR>iQ^ttSB7stp_Wti9;noBP`h#lv6wt(PC%`QQk8 zV>?XE^66NRIzxK-b`!4yOdWr8j7=JYD>^~(49(~O0L98f23O7Ky*?>xbiE#pMI@z+TI9`wd1OR9Za@_~Yp6y5LaR}- z2u1-Q0q#*?KNIe}M)B9j!}9@n>6K~Xtu%|j(SVs7ZZu_mX1C~|OeYR)D{|L!o}xqY zl4#Dh%;7zcEw$Nr&&9Q*+`&u4a6~MK6m>u%5K?M$7o0gUIB!i)vnIwgEh&3IP~60A z>2Ll_stb7ezj;QX3iczc68s&m)j|w7l%4amiU%9h?Q=_7?dCc$Z~Qz}|1Ug`SrBzj zs;XhDk}g_(*+Z)~{LC}qZRl-~-LV<}$5_*tJA)kh60;wL{3PEwA<* z*bfm0XT35=R79N!B-7UT{&|nx_0iYv-gNgIbb^kmK|$3qs5>4#%>ZBVme1X3gts)J z;)DT+w2KOYf>)&M8RUZ*Z~-fEDFRp)&Lq~e_Q$z8o7OH?uywW7WTkSL2f@l4gK^L}>s(7ZJ>_JRPw zp3UE!xB1?i3O`6-K?KTiid*=Ce}yT%03pVw=Jk@S7>MxHmNX1g!a!c@!x(1r#`73_ zD3}8HVDf;+v(8NZvx!8Bt(`EB-}$?%w2$#D5n=u1AK1n`(EUvWQF02`f8qxK7#tj$ z347n`wNMpRz@y*3rk^OY5%Kc6eJZcpQ{;dpfSS;%COdioCove(3*PV-KN?xGzIIl< zDqME7dG9S7U*)o+amw6sw^0TpF^K4e1*tQnqqKe;(@umAEI+&YUOrP0;_#Z!kKvRV zy|>4>b__qbZVX>1sh0AGAVw27p#WqrrTF7($4*+Jr^{}a21i?95)n~DB+e;Bpv;~UA>@oqUZ~58sv{9cB2X&?o%Uwwv~4a|n`bu4 zL5H#j91LJ0ZBfg%Fs0>S!%8Q!0RRn`y0|fbCQ_GVt&VdtWz@=dfXH2?~E+zciS)O&#f`yoK2Xh)hn5 zY<=L*e)8%6{PPE%0@A$35`a;dffO#mUJK2s@p;iC*OcQJ0}nxYf~>bFgN|ciM2gpp8ITvh>7T!E8pD0b8ISCHa?yRaz2n8G zW+bXWMEG09f;7+uC3P~Zx@?+N2K6!9o@bL07PtY42|jS zo))LB4{Qg8j7R`X&Vs~ptcoT>^VjvnfDDbEazMp_7$Rad_&;2x-U||TNW`ZoE$^=? ziHHm7cZ+?`*$)?|%#FZDSk}r~MXL<&$fsrrXf#~vOg1%RR@0?Z2Es850stl&e3E!s z&d|`p-KW0%z291K`jtWEQ8z&7W#DjZ8fwzK?njmR+{>>JYJW&O^=>eqlX~_8&T3#k zBu|eeE>le%oMw`?CK|gpee;#~-}=^9@7wwxgJ^?@D%n*p3`j5G0Jv4>{M`7O^WXYK zGUhM<45$Ypv1~83X=Q6==@ix@1}v$hNX0)7G8;kaB%qH7gjkpQDNpe!d7ZNYXH{IL zlIEmtmO--&&RR%b;XHFKbr6kN5K?tM7l0FxcYnXixd@7HEQm`tvBqFk!sZ5%NO0VM?+5`c&z_lQJIVT{5UQe!wV1ZLyC z9A)s4FcWcJ6p;aDWe_Qm0A$F}&L{tM-uA~o-&Z|?;rXYu&U)qhYX=PR%uY9-9Ro$_ zbu~5F5gYSj7Qfp}^>oX-T^rrxR#jmCc(EaIlzk`hq{_@EQlO5!)ZXef?Aa`F~H17L{3#URjXP{UqoF6x~=5pnhyo8>gIdxsXX_SKcmI zwtOXidRDhticgPW5IRkfLFxd($0Z05C4A*U#m(3LpZaR*3L9kK@H%oR0D*H=#z$2h0Z_YhFAhI9Wp3) zAV~K;xdiZDk63;sqI7WgCf|!hD)!Es2>Bf^%6Kc|$m9C36;UUwY=%-#+IjKlbgp^Upkr=_M0Y%gQ(G=teq& znZrnW<=GEyo6m#%3gYuzsZ-<_u_M(ei8$*}q#AW)@R+Heq0c0p*t6!bJKulJ17H5t z({S`?yk6C@=v8_(t#s||*Zsl%d8fVlw3a{s03ZNKL_t*kR+A+A0e_t&E_HD$zb60` zTLL9O4p<`KG3iVC zZ1*!?Ux@l~U!5_%%z^}v(TKKHWk^TGvR=SR@tg?9oQk(1Uh^-%i*?6gy8wWNn7;TS z%_6f?xqaY}18%= z1R9Lt(|zLNwXfPq44EpwvP#f=lq(YaAF=!@_J4%zSMk=JrV@W~Vdqqp%D`j5r7kvv zs!Ltm#H9}T-_F+R7@!&iK$5>Fid0h-0X621>{xQ{#(#U!#?O5AWk36c+g^0--+X)B z1@GK}`hjwMBaN5U&D=;2>vWC024%s1AeUbi5Hy!x0RR)ELw-dnqE?Zc&jb4rPp96r1~-tQ_fF)hI8W!;xv^Ql9t&U^c< zlbJr7rc;^t07Q&U#n@C5m%3&Nq$DnNiTW1Si~S`b0tf-TRIk`M$;A6XY@TA*3dH%p z)`JkXR=cqv;@|5fi|Qb1B{%BiS5;ez1&B0<7N=)i_S;)4?9_dQ*cLzhwg0|u$K!W| zemQ4Bf)pzUAyR-4%1x|n*bsO z{NPK!zEI==r&e&Y3bPrs8vcbqnu>sS1CKQ!*S{m=vPMNcgO}{j4$+ z_Z$7ZzhCgt>-sUf8M7Z+@jPEPBMDaBghUn7VKEhi)B%y=`6bu?{ey!etNNPN7Tapv zciY>pJbGYL@F$c(MGQL1Oi0~&RV)Zl4MwV>D@&qEvy+N9-X_3i0B=8DQY<$;07*0| zem(0!cyMqIe*cEC`nq*5l=!g%AR(^#05%;^{Gk%=B6LM}ixgN$HJPncK?DpDuuy?P zc!s2jz>pA(=EsN$Blmsc_-Y4l8N)(O@P?VbznlMqsHY3L>iq@)4s805Me5Qaz?;tt z`ISk0R-Z%L3jm_pmS8z;cPc7VlQ5Md_&@^7p(4uUN2URU1R%l!jhjF;J+f-UiA`V`DmH$4u{K~&wG?>o|_9K^HA#)0N@PSYzTr&|(Rc$JhM-DCB zx9zU0zW0w;yz?73U;LUK5Byoxd2}qYkSSo~oGU&${>K0J`P-Ikxc+b4;Nbmfnj!`x zf%PamMvLIi^+E)HNoWkf=4^-{bxu=}ya=L`Oq@gs3tT1;r-DpjvnecybE$xwz@?5T zb3`i2&N}rh2!TX3H>8WrO*&SToDf8aR2QFi#ewB#U3E;gK>$FUrN_T{T1*tOS$W_=AP+c**)T&i@GH!r#)m4glFxc2 z0NK{zsSi<}avBMY85~}a zq1rTDo~bTt{L7Ey_g6(XfHPh6lQ<>Bbc}Af4=Xbk+J8SbEdx>p9d*yUva8LZ1+7c2 z|GV!JH~O00ZXMk{_q+f2hAUk*URGEHz!66{2fDE!WzbOvJj%;@k!ZmfGb^chr-WeH zl9hP<@z}JP4uB9EM90C?%-Bl?H(hrlKK=UN!mI${?iV*B=1j3q@&kMJi;=4!rSS#;~{QpgEVXYTy*G%*a@fF_5Of z5jTj#I1NWOZmb`~3;-Kd(U(!N_Un`+T5KBeh1_e0U#xdv@55^Vbfnr9Fq?eY#F6cV zVLoden#ash>8tillbN`x2mrZ2M!&kiDI=eeV-*!J7)6D3A{A9|k^P6I@T_Y-S|@@W z+4scAbYE=o=~r$hhOm-k*5}k>7U!H*C!${E`IWj%Gs)#wu0>#{YOS=hUq#== zrV=0Emi5ZFMg%gfZAtk@n4HYPgqKr=hn>f%;&wRMYN0teK&@5_0|NsHEC@Fi?pVC? zB~LHA|IY2Go918Qf?bKaKbkw|}%d;Q;BSDDR8kBj5U?r3dzH|Ce*F_-MFp zx`B`QwO+2Rj`d%9&8H3l_>V9C@tV0hIdOKHrXAp;GV&Lyfa*ZA8Lt9%nafPWsDfH9 zMU$IQWR6l8H2qJlVub)!KpX(WhJ?Y;hBm~iI)=a?VG^-SNDPzBL}8dkl?(|noO2-N zrYOJ$ED9ko*jZ9Cs?00|!5NqR_O|i;n}-hVeq?SB$E!9Jil_ebk5?br^W@MuuYUiw zoS6_}@9H8ZRbgM&k_Fxv&MG3R5C+&Aw*i=(U-0@%7$Q;yF|mQFvSEgjFMdeAt{_2! z^a{kxU}9K1ZXW!?FRnYf@2RetaLTdjytnK-^(DWyPgOe3$&T-leVlK@psnJ-x9-8`C7a`V~ zIIey_p1bx&{HX%}2%t#)sneN&N)c71?7ZmNclJUs4Z;#b7}C5sU^p~mFqF5sOjrQL zQX#Cegj1Pt{$LBQXg-FY{QMX$`qD?Sq&#bR#~5C$!20R-lL!Wc5fBy;u$Tx7Ko~(? zrS$OqDCt#8S*F{0_m*!hwv+otWBFAQHhHi}&nwyF(2>1Qj&>N(salTJ zu~0g1x{~L>QgKjmd7;2COYSFEeGLc*5hR`5Zw~Exq-&o2!I4!5SFOK(E33LJ%aqyL zzBFbXE5)oQ^x z&X%vc;NM^SUmm>kMb~_4+p1NUSIr{DH-@q-p}ahPtt<%urp_MDVCE1INRT`fsdqKh z{tzc3d3_0p%f00whV$kfC&*LDmgQFf;4~A>qV&V;Spl`FAag35I-7ec7=SoC|CtB> z?n*rMR4m&lfB!nK$c$uKYc{;`+su5lEBMH7@1meOmMlwCWNC_4-b6vhW|HLctRTr! zWDcnOJ6!qHO2i` z>2aSK#oC`yC7~)a9WmRHp_BQ@P~F#bwDVs3dyg$x^|HRR%k6slYwI8S(yv`qT3nV_ z#mnQ@xU^mjOycdJVp$a{QX2&BE;BoZ+8_il9Nu=z&&;mhhzMQBAmlCR$K3BJAk6sA z5yeNYyAfagaRVO!z+V{4XZwG=L$4phJv*PrM~HAc2os=cCZRm=4?%4sdWSZzw0>bk zk8l3**&Al)%OMJa!Vs`BP4SY?e+aL+bMs#pVHF;qtt zI!{#>Ky?YAs{t&nGp}>fECZ09z~{l8-yhkx^&4laQ1LZ`{K|hXrGw8uxVC)D+wt_j zo!QF=7%g}3qAE~gl_0ede-}^{2dEVy6)%-)S3*~{vh|_QtWe3ie(c(df8mD!6`8LB z`vF+>&RgpO`w_BV#pZJcppCivSFHWXdsdxu_4nq^-|(nu4DRdrPSN9*boMg=d>Eh- zbO3Fc)s*E)%avPs9Uf@xUUSL2{`I`;|253&)D4ikMI8_+`#j>CY-~oiGXWqf7RbE> zTCg7?!F=u~By;v7FFpu}s&k$4D*!=$|LK8p10)I!G%jdH*d{`PcOdcZGTP+=iTdf&aYPoJfc+q z_`XXO6wA8GAOrxATKM$7dA2rH%CbxmP#&DG36fO?hDh!Y}ps#aZQ1vv;wnj_hHKlR5?HHQ|?N-d?M2c8+a@3x;md)p(oF3N#N z&8$ZoghbwuqJ@7RoOFT@sCs#puYVY8GeFA28>Cb%j+l|46eM^-#-Fwqzk9_^N z&&!`yT`IB1qkM9f&yg~~C_j#)?l(21zu?A{aZ7a^LxIBPxp>Wt-dhubX~xuE8aZPL zR-WDJK2Gub*L)DSykiWxkp?a!;6l~jd>f+3*c0EiC{lIyGGQ?=s1B#A;EY`&PXMIDb4{9so>@EN=Y zNzv?TLR1|lU>JmqSThw^Viu^nX2P`j-~Zs#l zyzcUyq|S+mK=Nd*Hd9gOD0n||_JeZyl?~=|0G!O*bHQc*{d;H(PXchuHb4M8yl?A& z3_kbN7Z)Gh{lsExcPd z^MOSSJ$I{s`L+JE)Qg7*MOEHg#3($K+%yPp*) z?e~B3i4~W;XEscOb<&n1&c5sqT4!JO2b<$%cYXT1j~{I8c@a>54ulOAKTcp#T+;w3 zyd}+M6N$^5H4T#@MU&wO4FhNuX+t%OIu!Kobm&te8CS^&fxY;jjI-Gt=?CefcG-!evLz zli&IMbvvK_@`AHo`M#~g^VUr=0Aa*ZECmzg$~-Lw@ttR^?`(V_L1H!vRnK$)@a#u> z<^9iockZKizHe@lX1=go1p|?=rKhIQ3sal!%Fq z0v4>yL`H-isgN!@^;MftFTJXZa=#L;vnp9uyxpp0K=t6a9CZL@x@|c4{w$W3#z`{b zNt9SlCtudm9h!~JsYD@{Evz+G*HNIz2d6~<`ho8CclP@~s6~FcUy7xKfP?MS-o(b{y zPlTLO-0r+OdTE={qhI@-^IUqgb^tRlciExSU-3U43gCmtiG!$ED7$%Lu}a zC}u@iZ2t`N(S6Sh49{D8R23>}rSN`;`LI_^yv^SaHdF`p&)ILre=u03b;gw1DZsN7XuFaz9WGL;wH`B$_#k zhVfuG6K=t169NY&Km=f88lEhaj2IBW5H$ou4sfY+01_sGI1-x*8cbp{HDEOjI1yj) zR{${#7J)FgK?sb%aH4Y;o-uym8$R))AAaRG&YV2FtuNn1T^!o+(7gL^d*_BV8{V>g z-HU!<2PH%8V=YYJVszg=US;P+Zu9`!-iw0$(EJ?=+VuUKmu`LFZjorghhBh#ioX-{Z6-jsICvJl6J+j>@$_kl>4*Tqv7Dsg0N5QT-w*nde%BH zfHor>e_jkas+N`4?IntRTYdh|KDXpZ!%;dg9x^_d4Q6cFyHDJ{rAL z_JPE{50usmGOYNw4EKfj9)XJWx`N;4$dd7F?`+_LuF)JIya~Xkj&(!-_WPK3bh5jT zSAhf6hy6hTA;!Il;A>Zp^_Knh$05EjhT&x6M!4I@@Oc2g48hq1oPGNko+gX0Ui%UJ z=w$C?ImX7o=K<#lusA=H>$S28#v%AF5gt&73)tX%MYT7Ck?Ri#N4i}8vtJ8D@iLqM zFAfn;!VGlpwDWGFZf82GpGP5fvQl!e_u21UIB(M>JC~k%g)bnf%Kac&!mMtRz-AF6&V$owRAVa zKHnE#M%;*uxRDug@BQ81@0?@KScM5t<8c-wVHyFl&Nf@ z1ysrl%nKdi|l5AgIhLv?r1i-7*r~OQi9NOA7Z^hdVt9eBl`ASmX z4^vepsMj?4pou2F2x;yXFHlo7MZZ#S@M4U(;kYA7lDtwUUq-?L6wB)}d@g_|r+Ys$ zu+mOA>WD_QULIb00{Ezu_kHRjVX3$*cSsn9!&E4F zg3|pAA`K|%BZXYp87*1=!OdYu*BBDEJ$v`F_xof=c`QzH0PVp^nN5)8v^l1gW$cF* zwu_S}`E^Fpj!g@Is6_7g;ca2h+|$Q^2|y#i-U@t_P4(pm?|Ez5zTn!wd3@-=vvZE^ zd3@z`>TIU8^?}>oOYG!~xBa(g+Z>wzZCbVOMRp{c49f$LR!ms_cmP1yGiMlwr*s=9 zWM(*L<83(i`p;m?iJWJ+hJ}-Ld<^U|U>PR$e?iR%KeQSixZ#gpk6+>Su}yz~g&O0X z9(WT2!1V)o&Vc-bx7Gsu>c(5~$&CXz>nBvt3HJ2?biIjjK2N5xE0`JT#CVJZf6u@V z2sm0iMhzZ74c11RXP8CB(1s^q3@n39BO%U-T$#hM^qSK$pY#1_WhQZpFvmvQAOFHn z9ohZxf_yn~Lheks9Y*5!0WoAr=`uf$@fmhQ63$ZyB3u9Uw)K0qZd%u>ZsbBa{cXSd zU{Bwwp(6M&^QM-74^pV z@mQ63Y}#Dm@gpyFH^2u>MB)^DX1*V4@TwXc)I`+B+9bcS@hB-OVn*Wa@OhNSl z1x1bLCaRAw1yh&gol!ILQPgM)B8>oR&L2V=tE!k;tRPj9*hsvp#$r+zACH;$v8qHW zQEXl!HT9ytZW_m?h&9&OG!_#dDVd0=vh%&lNPm3YkIJF=dYEOaW3E7L15z%{_g0*wK{@AhRTL z+3ay^T1(O(3G^`d0QwK%rOc9bpI`B36wQx&AYF22-a8 zPntdcC4_tTVy$;rWHNKMKpC+TwgA`yUP@p2h za4=FbW2O{@u(G5-S~B|zQ{!A`8;u;UY<=MO&px{6(WR}cRq>}?_Fo_BU9{nls@eqb z0TDB=sv?w=UUl}a*){L<_iS^nT1Ru_lKdbWC1qv6q&V0Y0C?BOcW$}&kLQg<(ddN@ zRxTsFCo_hS20Qxau72|JUwL{6Gm|6aXQlEEgPCSJvob%Byi_57j*Jx%jce0>PmdpY zr6&U)NiI8>nMjfg2I^zq#C~MX=TL7V3gn_+H7cJb9~|E{5}W9N9!Mm$Xx#Usu_L{U z+St*vh-k{uW{M!h%x3Z*CAQ&Xs^9(1N8#g(0Smwuz}GL2d~3i8AORr^Aobr$V#>zC z7B=biSEtJ)Umn1#NeGO8waZDJ$V3ut9Ug5d%yyC zAq36?f(S0CAY(!-Ne5=k#t>#f2vDRhtk@ZE`_zuvOD`IH>ES4 zwvNZ|_}P_1$q9&0PO2YA;L?d8! z)!{t=?w;v6%&=h6V}N}UK4esj001BWNkl@3^GTTGR5(r@dJVuFe5rEShM`XjPoNP(lAW9X`kXi#ZmAb{L1%Qv+kWQEN)~zH;9;wJD-aeuqDpt zMfnwwf{*d&SEYlwGU-)gpMgC58Q&kk_pct9Sq9rOR%AM$58M#MHbgDfZ4>*kD0%8Tqgw8@n{1n2#KNyl}ZJnMiOD76idB14nk6j zjbbx_Gv}a+fGLWB3WOb?9^fGPR4@}FMNk2IfSeOyU;+q9pQ=QX1(-xc6p+9(gRx-k zJCF1(ICo^*gMYZ{*xn~g+sT=lnbP3Cr~3!@J>CD(BY&bjbJh*_ExK@U&hob$n>GKe zQRWnXvl^61>Vt023!CQceSYJj+Q`0>;-g|_*t_lS{)0R2o3(Po#}2J}(|hx8L;--fHaKmdd35g+b1}}al=+F9;m|L?Cqe&>g8P+yz&jQ-xOn=ZTmi{~%A_-F3^O3$3NuNwn_Qb+W~ zMxf(>oqYLwiJ9W6O}~prulqynpW!Jc2Ox(1H~uaT1Nhvg&tcY)F~n(JyMI@<=?}2b zJg!NDK~es}Hoz)|Z#B&>Rc7Pf`Vm}AEqonJu@V7(b<+S|RNx!0SJW)W2z8oxu(YKr z!QKXV2kcP>5##7&xYK|+X4qM_uWbn4yb-EUTyzpu29p>^V4Ct^)GSs)Sj02qXG8PP z*wwde&)D$pwh^cRVC2Y4OSate@%Q&GIPcZv=X~IWzQq?E0|g2gt7;=pZwf@j98(%C z3vq2M+_&|PrTbp|#+tFA*V+z9I(rr#TX)509-1|G%}^2s6lN9+45kt#jvks0Xf;w3 zFQVR@bF~F)-~KY1!AEiCUkdy39dvQKXcL%`4I4hD*zmD^0QODx`xPx4)TRU3qQ15a zlmO+Oe|`{(cvkrHc~2PR=Zh*eC1jQz;uSJudQp1he&z8|Uls%>?AE-N|E zG32loIC+yVt)yBlfysuC>3JJIR>OFpjKctSed~YpA&zRzp(Hc#k!f&zy}^V46F~@& zNU=hK5{GGSL4Yh)6)-!fBJnYB6sR}=5u62tAPf}hiHQwq1ONkIK?N#xq*18ADF`7B zp_T**Ca4)XC34OzCU{1o`ed$lFQ}jQ-p{{qaL4`q+kfR_^6C%fim%U{!D?eZ8gVZ_@}~>;Ja6ic3zIm&zJf4D&%=ZnGF(8={z{W6uDNR8H7_ot@+Oy~g#+l9R{mqz=e4EhjT6vZr z-wl)u9Lu8`wJC39#fg+MNAxnEgd(sh*1Nb}oLC3|*y!NSwmBWjZ0NuJ`>-EX0No|Aur z_VoeGQ{X*_u>lPUOS2K=5+(u zb24wBXsQ?i(9+3x8s}*b5UklZq%3C$0kiWz=uCPg6P!mpJ+0vhVwGgTB6XS65xrmm zn^-}X<}Eg+@iuMt$}3(t^4gFj-2e2Pp##s(JAU}Z`Rd0eb&~8~^5*TQUH03XgGwb5 z?=6XN<&&6JNhsH5@L{T|-W+0I?Ow6hxvmU+?~m6SA*_G=h5z=eNVUa%V}qacRo0O z{>rQNCE!ERa6D)4&3h$=nE1qnAZ0(&OfhPrT6_jG`Ber+#9}iaHU2B_BdDUKqf(QA@T3_KnX}^ZqqCP^I{4a_e_XitxjU9bwZW6^EZs0uPoqP-yGMt1cOTjH z@Tt1Y1RERNQGM#0zp`@fiYtaryW+R^b@#2VC+vr%&#wWnl;^OfS$)S2s@fb~h=>Tx z#;O3QYxde>XigdzAQ^OLzh!p5OoCYi8^u9oURt9iWk54{IFYuk2sVm7Bh#^>%qf45 zO|q;byC3c!8{9eRjCRp{eX#S;t{?QyTY2T--1+j?%Rom_mQ}1@(YUalZ?7kSk|k%} z{F>cJUwz`vkK8PNY}(*Gt{v-t`kr6=PkWyI+JhI~`2T&qbJnu@B=wuBwE~N!AeP{c zmj~cFHD-o$zV>@K?dDJ8#p!(Sp8t$$OqestbU}2(AL0o9=!B~HhO}?|5oSvr?-s(v zu-5M-0g4*F1C;nXy#F(JeB-USJoW!*Yi2mdfU`H=h9@ckzIDy-;@}D0K?{=#jv~T} z3FT$FAS8fdM$=V-W0QH9m|@OLPTepUH?HdnUSy7u|1m? z9ox5g$E`>BYT&eears+FWf!vwdXf3t`F}ijcE99*$%(@ zgWeNo%TfuN($XSpb-l${{TKngjANs<^blVK4tS32h&?dVxBie@jf zj0HjNGXow)|B&pMA`r=}DAz3W1vya=lCNiWzRCPXGRym@Wi#=4e~$?)NK_lFJhAbk z@1Dw}TA982<^R8IJ%0{bdge{L=_dNh6L z2YfW#J>B~-Gdj5Adsp1|=VzY3{JaluI`^8-Kg1m7>wGG#=~*%2*HZ=t00aMY9snX7Xaw>8cVf5y7Wyikc&D%9tpMC)cc+9WZb&6=We$EO5$@y=pQI^F zyi*b$bwfSEo9-OIqXc~Wh5;O#$&IwKrz0GF6W}GS?@9AYELh-hEH-Gn7|lfJ2S91Y z(`lOl=K&`cX<_>2T4qT#jg+{;V8AR=P&lChmpHZ{Xl8NQG*fZ|WV+_fzxMsD|9b2E z`pCgW#qXa=BMxNViYs4ObI~t7$JL$&>jCvfAoUt4RE^El`&cdA2lJxpL5RJonMfpE zo%4p!3_gl}AbArsgOOr+@!0bEpL+1oPI{N`bl{BqIBy5$26e~#mK{|Lm=c!Pv z0au)w7&DXvZ0yVoMqyx9s~K0SYCd+}pzMq^HsSyoBc)^^AxHpEfTWyJ5zlZ=O%!H; zV}=qCz=&XGmH-hY2oXTU6zbwLZrZna{Z0E1?zn&U{+GYKU})b{{U*_jgOkkEf=aia zwcy<0zJ=$GboMTb%!KxC-864--_x@um-4qZ)0lQY`_J?Dy>!p)73crrzUAkCaH?Qr zI>4kX`c;1LUG@xQz8*li3@ZZ!9zYO{9^#iD{j)Q7JpQG(*GCV|Saq>`%RgOI8{XU5 zzvzNJeTy$R)W7uNquu>$qTF?}YiD&VhU3lGKYy>lM7E+t=^ykiIPWN?+275?m}ux!qMb4` z!0CQCrb0q+PjileB1`fhpIj7~> zXEqZWrrSZfo_&Vl=0A|hs zOw2?;z~l%SBQo9!=GOt!Iv;rXdvgx%yno*C!Dmk?7^(Iw8tY$j@v(U;uQ)bm*(Jw` zLjaTn=rJM?(a^zXyLLbI4+{?MynnVze8Qf7owJtKR$u(9uPs>nuA@*`>Sm)b)g(;0 zscLLQQ1xO)B2ZO`n(Lf>aPEq?K96L88<%`$gYP^mP+ZRj$oa{Z{CXK1tSz>SlQsFz zsaVk$1Q-WIdEbz%{mSHK4$bXakS#kN|Khs+FMjK+;X_+jjSOyI(<-d|iJEiOTG&1R z@a)AKUOe-ifAmoA+%ree{M${%2c!r-@}R^Oj%flSQSE5(*zLEx>)`hLHk=4R1^^8enFkFbD`@3MGQTAO`hx5}6qyJagS=r|t`K*R8mT z3~y_9j1lg>;j_5!#B2AHv%eic$83k6g5oMz`=pCSGvNC-3}9on-Li4q^j|T{y78&W z2Fq=16u^Cb!2L6g9Fw?9p1EF)(4o4O;xsb_)feS+- zV|HPeV{aV3aU>eoR4fvT#neW{M|A;W6^%`zF=_aJ=RX2zVTbFab=>U<7Dx6_a(bn2zs% zwtH~@mfn#=&(9h;`qHdu29b=$f1d7m*8H;u`xb3DHh0CPgI#?qqvTpl)RdsG8H4~p zee__s>#2X3zvuZo7pNaQVNle&;GCg#7k_+L&!Y222v9RsB!e*%6)>qJ00asZW#`7` zEWdmU2OV`Zw^`Ye2O$mL2TTMZz|?^VFtP2M4j7rtTCpGP0Ek1W-ja=-f-jJe`(438}^|!2r1fBz(+ek0swgFkw0Cx?FYaAzG&>oNuMYr z;`-Ge+k9j1q6>~;>XUf!4{!hQ>0?KqTT4b$AGtNybYU9 zG{fXI0~p$P8%9(yZ5`vZ%y0-u07xt20CUZzKL8=Z`k#dQk2z>CQ7s+u)tW$CJ`xs_ zs>Cq|K{fFM;ZOl`WU8J#GXj82;XQLWD_-~3-@NbW?nhtP|I)WF92?xRa;7@k%z~h^ z);;fxJquP{y}f_cm3x?6(%?u0B2qIk5Fk0=0f?zj(uQTM2gIAPs*htO6ZH@?sf#yL zGp~aOp6Z>o@SKBa1|O}Mjxy;La{KaS#r4n;zzq0Ai9v^nesE&#ppgZzRj)zs8*As zG}&ot9CnTM&Rf4b10NGIpA(>2?vGSxF`4`-vpoCJ%G5vvTz>oQ*m=t>Kau}*Mn*(p zX2&1->Mj3pL?rVbMk4b z2^awYYsAh=EN}t(7oR`azxe#dpdqf0@Yv9+9rfdTI>!e0RO=%LJ4D8u#&u^Flf+{I z01yY}f-WC+C!uNm!`d;0O-1!sM)TgbHRRn2>3r)+KfZ7^zqi2`qi)tDWd~o|?f4S(ui{F~3>Sx>*4jp)=_la-(^4W8iUwU}WMZdhOYtCsCrL{~1 zGf)uvzQr3}yyq#29=)C zYVXp+J+s#x>|cE0zTPDp4!iL*!DN&M>eZC(NF7-7z=Iq_eGFBxOmamg8heE!l}J5I z>H;$*^D0qY;4E5o_D3G+S#*A0+p1`uy#Xcyl6)CTK8x!o)%T+f1Cn2Ng@sGD^K3{3 zKrk}+O3&`6{_!p9N9Pe$9lOvO!#S=nbA>sqI2bXpb90x!<@uiZ=N!d&=a`pCrAR`;T@sdzJq)yE@}u^$Ye z7Dbdfpx2{%TlND;7?7;3V8&zDe+EC8%K!65vi!61;1|y89UR(mra8RD)H+EkjR~nN zG;hqIt8fJw3jzRnCL|0y*eK+{IU?8TI0&dzj)j28C2R%3b4NR0|B+popvB8~{mw)*AC5LxDFlUA?gt&Gm~i**%AT(9}QQc(L-4jsYK0S=EjCzOUtZS-|@8eNu0Oj&o)yt6TocNyfX(o zdzWT|u`))ecup=^FET)73`tqL+pyZu?&`Dmed^-CBNon5a!`1^0OxUNM8gmttlsvW;MyIwm6WGeM- zasp3Y#0cYnBuhS=o&3P{pT!?ccFubS&>I22*X|et25%U^XQooeH;UakfO8o5X-olJ zwKF2@d%xjxG|>E9PdXd3>GyDk34ZlNE}oes1ocxv1si|*cbY@qPQ`8?K*bR*3)4Zs zsQ@4zs8k3aH3F4|;Z1L(X29Pyou>r=$>dimIEx*wXm@|fsZR`m04WH`1CZ`HUkRu? zDgqE-+z-TD=!h#^sRRV7FjqQ)41l<>LN0JjLDe~9h6|a3Ffd{cI3y$Hye~)*gb*{C zV`e3eYKJ?IA9=Y?qu~x8k5yG-=PKRaRl4I!_kz(`vsVvu*yB;gnwY4Wk*3+X93_o> zvRwckP$e?8D2A~rnW%~vFJi2*#Sk-%J>uBRRH2cHsaCt^?O*@4&pv{QjK^fst0LHF z%YOWX0Z6u8Cc|n-vEs3zju#*L{j0pz=Q{3mE)1MXz|K`1S3*wy_zJUQ28FJ7{`#GB zR$jRq&7FU-Q!KM=5R|Pq20}ZY{F}=x9&ug;q>-q`BBIDkub{E{xUNR37S#lZt)2V| z97!!o{5zWbKPm|rX$3&MuQxTG3ViqG0X*I2zTR+FmSg0{8-H=uq3vJ4awM*w;|d@o z<|HV^1P~H-IRJ1$hjScK211H*ECacq(nVy%98{TH#Ss$`g^pbacFq9-aga!^GFg@w zCGANHM3k7>m|Vy<&U%ak5+DI3EpNP4Ttq7#Hhx?NOdKaaNgj+4GfcstW*}l|cH1M|XDiEgLhi?_YB9vq9K7 zhKXRK7>TJJ2+1$V9hWaFwu8lY7?=n)CIcfVl((}o@R5Dy+n{_~6c+a9K}g$M!$9IvP2!AR0S7 z-&7j@Fhpd;m64#@d!VCd;m*$fmD?Ac{=Oft-ta50U>t1ZWy{(9RoCpmxi3LC;hGC{QiEjuU5X=IPCy{9-ZEAeQ zVf9I@=9G+CRh7ZyY5;g_tcGeenY3{}k_?2DnMPtB+o001BWNklO1LRaTzu69Cxr{GChUv7>$Dsz#w#i2)ZP$#E6| zTnS+sLAe4TqS289y>rIHduDQn?Eh`oIh1zHA|mR?NJP?TWwB=9qe*&|M!rIvWIoU2 zS0=Hlw01u$3%{FXM4yUapMiJWeH*Ip{|p|R!r^ZSOQl#%|NjNo|Lrh~J5}O)`C^S+KJD4|1)kvlsb`nK(RmboV9CN5J5HuFz zieqOUWDHb5Fj9C+d_yu>77NHAo*b9~I8|msOr*pJ(npxmCd0t2>Az`I21JsbJXwHt z)f}th1OU{8(qtTfrC>yim`Djoa&QnQ!x}OYFXWhE#44&Fa;a7<$;mZq{+Y)wc;8=c zJG%RaJug50#pTBjJ>N66f3KvvCUkh`{fmz5`oY5aE3ewK{KAj!2oJxwq@#D~zG~Op zEPQE0X@`k&oxDV;I9M$Xl9BsGAlAaWlTsW(c;{CsV_*;mYjLht|e#Qv?E_PjYly$^lF8J z4&T+cDhtq(XEKUmg^Qn4mLV^_;QAML{qPG5R8xF!we+QhAOQoXHqgnqu+S;c4NK(y zRmCsfF@W!y$Kj4{9D2Nt!GXd|K5Sx|h?3LKSpD;QSuuP0NjWKDTN(HOrWnyS2yj;v zVLc{)xun0Fcs3W(xNym?IoiL)+OYX3Qr{EsLcA z6*4TD>EGGXN6$!D3Z4 zVuTG4Vva44K!rSc2Q+~Yf|@ZQR%2p9;8Y=i5}TPezzFhS0{|q+aORWpWEx47C;=Us zQQzjxi&!3bz(iHe$V5%W)W>E{H8wRv0zO1)Vy4O_CK9WuSJQ|G_im~7E#5GU*5E@6 z+f$Zay}>MdBl53I1EdTed2XS2Rbo%Dm;yl66LSDn5F>(eC4~71#18T3!Jc?@n8L1E z`3?|h?i5?qVL~VEoRdZCuY0g|_~qW=!I$QY9oxGQn&kh;q*rMoNx+LWh2FI!_Xhwg zI-gG#s~u4^p{T4ePDS-sY`PT-!bAA(bS6`Nl2!&n0La^a?fD%)y6eXObKvFgzaO4g zWTAO85CQ-ykvR)V0+!H4#PyX*E!v~+6akghup#$6RTY7Nk1B>UbxP0%@vp@LioMjj9oVDQGoy@_+ z2RgAlD98XoHVn(RTSYKZ^rdL!%aH+#Rz4uD>Qh{wina3tDLa2=Stj^AE0X^`fQbWn zV7yx{^Q!?$+OxuT5ttO~+RCyzDPvL{OHU3fw7WM{xk|$DFCsAVmxKuwWe4T5auGpT#0b{1qA=K+i*Y?dvO*H z-f|1X3@ax)kJ1|#fPCYRFx$s?FJinID9>I#6Ei?7hC5pApAw+>@_iWn*{e_mu;wJy zE3*y&=YQ~Oob{o%W8Xi0fAahxAG`_`M&gsw%15Kj&q51jjVYV5!AQb>EN@#8!VqDc zmTOlR0#<{tw(a?vzEV=qa>zszb`x=aI=u(4yWf*^@R!-@9U z5j!Rj!Gs8`31=xrE({rBL;=H82?iphuA$^e$tZv`H6>$0V1PP;nHo&NOlAgxs#!8o zY8-HqwFJa-uF!3WUXQRh1kD=BN(t+(EKQX9*Gfq}A)CC@x? z?lV8LSJVhM$qe>B_ti6%q7DaUH8n61sR3YOHX|UJbtVCU0aFr0anJ0vM{?KJlF$57 z?9>Fg(2ZfWZ?v<2)sg;17w(~I*Z$F?FV9h}2P$#Oene`dCK4%S><7%u>LTJ{601Q0 z6-zwG#p-b)zj7v)$*;hGX0zl{`nQppH2rVPN&8{IJn6#eKle`T`O5cxa!CrOW38T< zrDuLH>RPe(xuI9S6~>V*6%i0Q3RF!9mh|E;g(r^-%@C>4& zLWCrH2$K9HMlef+7)cXiDrTBaMi|JSsGX&SrQGeWy%mURWegJhLLKbJ~y+@-sQE$r@#N;tOe%| zMI#5p+VOoecM3M8(PKM$54`lvWk+6pc#)5ecFtb**4;!+V~Px9P|13J8<;p~oop69 z&lY4-CM(%jlsIK&goy*`e4ABfWiq4eTv=KEzVi21*8XK}RlD{pKk&{L-{LbnwwPBc zzdwJxmYh3VEVn=3&t&zL7G*{GUD+aqb5CfG3&)hT-G*^rBah~KOty&CcaI$1^VA9e zF!)qz?ajx21z^2N`NT(ofMQ6Kc2>%fwlZdPn&CO3#5Y6|-RG>(VR7XER^4(HW)a~X zm;~Sj72N%g_n|iRE1!D%KmP^YKmRVg4~h?`EY8VcJyJ8mL)Q)9N3HfxIj3JZ2j8h5 z!J7$fq)9V0GORGgCpO-OCroj7yF`XHKzo3ejK++!py$jC`zQSyrs0@xz{->QujbEf zW>kEga<4%^HVgn_HDT&-V`F3J>`eN%q6~{PQV#$P76bsQjkAdt4Ff>qnBfA2#ZUn= zLKW2EToqpH6u2tj1rd422rOVnu`#LFB$ka!{yZ~w8jrIcYAKt;07DBDr>L3{(rH9R z+O4Z3GvF!X0RRLQ?>*SZCQenorhvt3a$E!{FdrHCFp9M{ayUQ3*9v@;$+6I)tYNQX z*7H^}tf?F?01!vR9R!$As4f7*i+N`jc!;9nTmWxktXzTlI#C$P=%MG9V#Sr);VOA) zMzJ1w$wvPASy@@97SCP$<^z3m&bV*q=D$9Br2fisGgXCJBE3o^f=S}R_LVjv(eYmOCR0A7^Ir9KxaC2Ap7KMuP{o%pbgO%lz#>`r^4u z&bsO0Gp@Sr$x26Ggz>?D#!6)WeLG3kR4qT_UM$PA8`EJpW>S~@tiKf2%dVYgcU*2A zC7^c^`Eqs`ZKI|=rKSpE#ZoxDlrK+nf(Ar5!wjndC;`Vo7&dE)EC(VC z&cyHeRN3QSLb!V`t_0y7Fmz4>yiM5*7zqvEYJ-MbqMF1}J-Mc@iI2y;_)(E)OjK&#C{~FhLlotysiqn2S}ss!3f)R6SxdABlP~a$eQf)!@B)FY(y%pf+;AA?c{Hh$3-esi#Z6 z%(p1ZzApfLQ0*OC`_|ulw14r2Crl!bSWGNdMhZSGPM^tS_N*wsD%G{lWQfNl>?y%9 z;p)3@#m%?>_x2LbH-fbQ!;P|cePY*>T|IN|Af`BqA{hLfAKv+i^9KiCZ48)>9Nt|K zjnyBZG z7D^VMEGA?orm7xRW-5h{#B!AT=6?EU3AmmKel-Nb-P^9bwWe0vEkSH zUw-uS*WCMmulV@pJ3n;g$kCU&@{a+U2deq)j77+pjx0Jvk1 z&QY7fwd&P7qznNYrBS$CK$6b3 zau86`t2i<YKBA>gpucYNI?pLhi0(S(XJi&j=9Z7b{K zvh8^HwoUW*KX=Ea;>SXZ#{r0!ny8P)eLn!Si+%+Lgp=bKnBW7Fy{ z!2RzZz?L^U8`9$WX_P(k4_B`^vU|%-VGt&r6$eKu{p+6STY2u0Biru392&1gD(!R} zGI2=kLLzd^E+nIXnO#~IFa;qwb4g??mnJ+6I+>6}&SMIQh#4*f6Bry2z{D ziI$b+E=jM&obbHmi517qN5|d1ZC_uoZ|m2W)khDU@PL8H`MyOLys+|uUwC}=MZfwY zn2WRAmfJ?5tT-#4eU`149b0Tui?jd5cLkZS`|gZUA?o{?CD>6>0Xrg9oC|}?EczW**z8OT_$mxEFxAbMtZV#x#%NOWI5uJ z^A#BpYUxIO*IM@Fr`RXO~!;H0KN+3WAp+p zQFLBPg!4+zZx98B6!`K@1NiP#>vt+_(*V|iaGg!TVg5vo2(P~XGx(F1zjJC+mSCl3 z9N??w@tb9S7AM*I$>Hbkx)oPB#+~o~G`0hPp_~~x1-2h(4?rBS$k3ivQ^Uej{X@00 z(D6{CE(*$b$C)#_le*LZ*Ue$mcg=gv=CR0EU_q3;>5}r;4om_y7XTI~(`5oEzzPv| zP8k7T+w%f3@F;9Ym$iZi}$`2Mv6IMn`IZ#Zi_7ngqc z`>#HF=S^QeumOBAB)%v57j6(Vv7 z0QQJ2a2-%fesAy5kYy>9;n;H0EC7IN#Oy-Ah#8>(0+Mk+l87?{BFchR5o`K)x)huU zJhJ^jPWG8Tdt3<&kYpyvh?56}8Sq9fG?;*p<_#fDLhx$h1L!D(rXK5*_`0QFg^ZaY zn$}gxKuoHdc*_W2nKL{9F2ofH!fsi1_Rs8Ia^}si?R)W?3-)c@xO{AA_e?SoBl%q< zIJS55*~j*7KKuFmKYL`sns;qp{g(gypvOzD3f)S$*-EWyE|6x7#!I;FWV-fG$ zVYV?UB$yD;fe8y*j;=+qoB#(@U_ zn0QqYBNJ1}q9esB7MsT2jFK{HfR9L3jUj22NFlbFMSE&qL21#4N98ei60sxe<2E+j&1reO>Lo@4<5A~ftuF0stl;nDm?E6`c z5VC~PNWK<=U`$MA=9qH~iK7t0#6&O#QKRWIFf)UgOhC+*yLNWoLVwag@hNyZyz`+s zd$-=PV(8%3xhIKWv+llCug+WhjvueRfLVV3sLsn z{3iaf<10L`^50Y)k zgXZ~+-Bq>MdVlQN)z#J2efk`oBO9`QKk0N=?b@|#=&JSYZ+&ZBT{2#OAhXJVkkh!| z$b=pF2Xde=O86CM>$S=EpN8}QV**5>;@RU?;Q4bu(y9@e4ZG>H7?>EtTS0hTaeT9E zKe=iM|K3Z(sWKn{02;?PwI62y=%2Ll3>djYBj-oJ*&5<0#CQ?mq%#FaWen_|?13Y| zif&$&0ifN`@eG=%Di_4)A{NZyC;(KsZYQMH@p>EEut-C))JB#7L<*_^LP5YPu_yyb zDiDgu7#EJ|E`o(os~{u7#;`)5v5f5#z`bMtLUI0k(g)k8h|{DlkbbHV8Sq9*C$L z2d8<&HEI4FTSBkU4C4|e1+uwjUCy(X6%9gwdVN;zxd991t&bWaP>uxuRZ%$A78ZQqJwB%61gEz~UkIe#vT z3`QBqDFTw>c`lx};$yE<7?%Ir?b%!gK8jWZUS*#xmTf>^e{H{vjV}R!fP+aHkd8OS zRLtLjW&INt0oW0s8HS~drI7Bg1yLLzLSozy*S)kGCvCnCqgJplnTr>%{jZof+F|GI z`s-n8PvP|wV|XiozGE2xOh7#ZzBPsR)3Z(2;UWm$Gu`c{YYNOuNBt8~Y~=!yoiPmv zfe83z=>oDC00IA^jIlC7dW}Jm;)5!^0lhNzBOOb5`@+~W078B}jStLS@MXXq??loB zAbA!<2&6&9xHze*@hpg_l5&+Rra}}1Z2SzTsjwP0##9KJG9)HsVm7JJ1H{HKjLXiN z219eof&hSastCpaO}dbdYHxTMH7;rDKqtYJ$U-I-#vTu z!1JdAKp5s`uuaG+#sq;O)4zP@>2LbfPtbYBt=mJo>^$dRZu#$>X3ylvi;tPde)xNr zMfHPA^TKlgNRkL9cGo-8egKfl)Y%W9^K+xfegG&JtYeaA5Cf!m_^OZNrn3FahE0V@ zyXy<5o_+AZzDt5ItT0-c5Wq2}zG`}&4Pg@!a%>0ylrbUz94i9HiU98U;aOA9j1ZHO z2MW{#6CQ{VQI=^cb52T_*B}=HB>+qcRv>O1?gaR7uP{AdDKo-MQoq=UfvaDT8_yWk4{W`NdPuni$@jiN8li z4*fj2(ha3XqEZ}u$F^O+WV^@%49q(w(DTY}x>1Xb5~Z;dfQBYPx+)#|Rh% zFkcA-#Q`h0n@uyrKra9!zrHH~QCud}xfDGE5Q|$l#MUwZLcm-o-q*un0XTX90;C`$ zT`J%`gLCHJ2&7X=q7+G=X|{DBq}t!-UV1^r*pvmSaR^PHz)DL9Elg6in;r(AK*+6(^h0DcO=N8U;t$xgtd)8FjnwQK8* z^Pa!=Z?6!@fa^QtFbv6%VT2)xfQSOF^esBP;fnw91C)nf0qrlkymgv&>-3W9H16fO zT>tcGC+a{t~$oT#i@XhN51zPb9O%RjY|#5sX!Bi0PP`JKof|t@s1xerJvhE zvjA`y!l)rJ%n-nbXaUX14C26n5Dx}|=5xja6CzSlw_V%xZ_w&w`p_=tC78@*_33`I zLW=2rGO&?`f-#XQh)v+yixLwvk$)?ZVFD;)YEs}r3K9=*(=nI~gqYkt(&=qLMC18bY*SvAts?)D|DXh--h<>s#tYYX@ z@w@*FOd{Cc`Q%p@z3|YN&KchG*je?_UFV2xWT3-ab#UpH#cSShd;h%E2b&C1tK+HS zF02O+-b{9XQMsdP{Dthv6Ah*Sw8^_^M(IZ@jMuJL2+Ov0f-PzBgGp!4TRmk zA18w!m8RrPu$m0s-pfG&GY>$Z<{5*BvB=5dATB$&b9vjgdEuL zp;0U4MJElJlrI49H(&6NW@7*j%volKa-3`hf!$`! zN&(8)*mk<_`d_>xp4hvl6ZinSvmXGEB#oB$SsFt)H2^YA_5%Qv@XdFB3{RHrYc{RN ztZD#&TfcDL$>aNP=P!KqzD27y4kPT35AA$tVBfCWmc$2NS}bJj+@+^Kzh=WP?k?`4 zi{e~F-T5m z9c2?POa*`dok2(^078TYfPV(EN{eh1zd|Ka2H$sDI{Ba3INe_-0OEl$0g)O!bLAi7 zrCvnb*AHP~09?hunUl4hO(TLr@wZnFwbn|Rbi1S7@uutWKFF~XqywlDu%uXdTop>d zbCTdL4lrEYXi5OY03;wHED*(eI}IcSAP1FPdbXlzg45XGq8^UPwJ*6Il>JxIei8tp zWF8_DJ^%o7`uf`d2mo+UHKMHm1aP5PfCC`_K&E1ts|*GVhpeeM-B8GRHiY4Th#Oz% z+Iu0pa_hs-n6~jtI+dBk?UMkU3ev50B6I+-8fgYP()Fs5KtNsx;J`;Z8y=^#-x3Me z=IuRs;|K0r{_6LRVUh=8&R)^r1L){LP8)>W{~zzUV0?J*sep4P84idjg{-Pn9bC3| z;}w7ZLsTkS(ogYoCo2PZWwURcUSfr|BXaZqy!3o)_iqTS0~#&hBhP-IJp8JR{Q!#)$a!L{OrDDFrDetq|w|33D#{RbdV)Fky>xu4oUz;^IVzTbQ!4061l3a*r?< z4wf<|=~#_1U?Nq^#y{T-8(1?+gR~- ztMo74Hh0-scMmRp^@~2NinuBG5dhqY(eMrOUnyV%Yn1|~l;y~OZfkEvh)5G|h6+=X zZkII2;S-?5u~i=ywqV7^2T#86zirQT=i3)Gb$Kgen0o;v#ceuSF?=pRuF1lwrVTy- z;FixFe>!w*4dB2B09YHJ3$;C0FC0C+K&yu z>=iUASSdY~y4@$iU@b8oP7*w57>%;Fy_yvqHiYqRIuHO0RMAJ&E+k@uX{Sn@uI0t( zMD0Kf04h9TJqQtPSfCnA)F;qa>jNc`)u3XGZCGonCelPJ6p-4;x(9fbt;Ax|t6&4b zCNT_!Oj>bzz4Wdk0-!+Bh*aGyXu@zh0ud!7?LNAak^;!P12#!SRms8$%7K)hw~_jg zDj)?O05pk3G63U%hjqmTAsT5AR>uZcUii@2Z~3cyt&eUFaPf1uWv^7rzr@Num;D6* ztiSlv_dfjX-<)5MMwS`4b1yNNs}QKtf+eSKL8TI*DP-r|_APzomZ4;Mep#m%UN`za zw{DKT?4$SI@%?{#?Li!V@%6~Tcrk^dnC zO(#EMkk6`R9HSt_1jG_>;6g-+oh~(r5d;P{wnhLO2L?ojlnf+F5E>&^iA5|NAR!iZ zlPGKq*k*T-V^U1u)$9r)B`7!RvIXf_a++xmphUDXu%y27wD)dXdD?rojUU-Iuz&mQ z%SZM+vUF_t#f4Cr#+};TY*HVvqq|SQ=2=9TVE~` zS@&@0aHJlvv^ucXx?}`4d&x*zOtPpa0RWX)nMg?h9}Wxvq=|S3Gfwr4pjenvr#X)F z(C&Lq0`P3Mo7~U~fAdFB_8iZ*D?ZDM;G`FSy==m*+q1Zvwxb*P$n2T#{8mUZzN!d0 zl`z@`J{}VjS6tAg(p9YJVUwNH*^ep)En(y4>##QkBAGs9^Pk{V8sa@7SpmeC+s1j^ zg{Do_W`vSG)`D~eRu$6}7L9D=t^`9+Ni{ z3^YLWO-fCPW0JVU+>LgfIXND@GI)q^yS* zrfU$eh*E_s>8xcMYLS~VBnmTypDRKbw!aP-fJAMN8Ec!%I9H(1!Y$X-;jw82Y!V-8 z6=gaPHY7oH#g;QJ|I}0ci%-pi)2W7Bby}7l=gVL7qX!nG_`Rz(m}v-r5zJaEdTfBtlb{=7|Pwyo^k_c8lTvrqknzFqC+n{_+bF>AOvVKAwWAD z0<2H!1_riw$@)W$;~xbl8(=1r^AUwDP+=;T0*J$6&YZ$NlRNIsMmxf zw#kH;+-#eTqim+$YZ(Dx{X4$!&AD?|^)hMN?b%xP4DJ?!RknPx_g%Nip-uoJzpiY3 zw(fhMTfKqo`0*a(c?JY3$5|U)?s|K97!W3WTY;An07mf+04uxpPx!7Vp7+aoWk7Oc zQ38a3?N#951n@2b&YtAZj^5 znDFBm$l^gK10a?_o*E*;X;PvC$^W7i*rLF#ZEX}kr;`*j%-c)@5DjbpLhABO8vr68 zU;D#bM14k7$pGL22(etr7%~m3%m6ATAW@L|3dSiAA%so`61W#+kOC1QB@agYIEV~O zTdG}WLhZ{*t$6)MY$MI41tqaUN;dbP*A#eY4tM|n2Yq|io%4YQmu>jPQA`bR^b~TH zjrA1(K7c93@plWEYWaI;*ByP2fA%lIX|@5KuSqIZ&eiI2PeoUi+aSCQK0UqXz{K4-NG+ zQ#q^F>3+K9b0;ny8{7Bm`DHT&MErWE$KYHzmM=8e)Nc4B7tA3QqmU@4@gR1gTtNHu zFB2)Fs7YhaoOc1lSA0)J?WS6BS@*n{ISu79#sC7itmJ-dfvb@2KN}{b;D|#57ABjX z2g8O4Ohlxb&#c9*f4Lb>mW`WodYF7F-@Fx%ePG_|odZiwdvV93|F(MXb2qOW-uu`I z6GxsuUTplbhj*l=L2cfifq8469b9tS*1o|N2LOQBIq*rGqzKYlU;D=~WlhlG0AAAe zTaqNwat5SaGh#KC(oAHMD5qlfJczM2Qs3UEf)@Z*Bgtz_<}N<%u?<&zu2;=hx5=c* z07+T9PF6f6ou0qNb(1}xOPAg8`E!@l$G4p)0%C?{-~)h&4yZJ)bzf!=fOM?|!nle3hoT1m3~7zT@j8&600={E3>5D;A3;9yuIRb7Mpx)I9Kq~+NFkgY6FSco6K!9$wE%r(QAHcK#Nb!3qAQ|8PVEEv-fBUkeKDtazg;3*j$a2iMd;vG5CWMR5b+w3Y~K{J05CabgtK(Dxo1%hSTKL~|Ce-!^B-Dfx6lAtoUt2$@p*8aJx5A-cQ;c&IK+T4gpDC-Mq#=8A#G36+7~lv{@vvP2Qw+G10B8( z$<-2zvR?M)?N15XZrgW_u@-;d*=26NV@emRTd=wd0OD(?k~S}+4!z|&$g-o z;MjsZ0096=>hDva`f>pf5bh-4u^2c$P+T#|F7_(n>&1m-00bxpAOt+621q+*p@LmNjn8`jn*nH5`^cAVIK2D5VDW$}E1R#Lo z{YtGsqUf}U;%gur$S)(sFJTJB8fOxKFq@qSDmMX>0}xS=m0DAnPR*+6mHrxWRG*95 zyio%O5F`uBYQFr1!hivIK|0{TNS@K4z;JOaMHBxf%^#;&$%_yfDYL<@y$2pDO~+9= z7#>`5#?!C5c<7~pfu;V3+AG+YQpgqX$^swWW&nibKR1_+KUux?%OAW9akTiXcYW?_ z3szj%=&((F||MvK06T^Exlr6{u5p-Zf(z7dtw7ozMhyX3=d;Mmb3)>8Wbf#aB%T$&2QB1d* z+m4F$Ad0MqAA35MW>9@DG%WDpU{H`@mwh1x1L?Y~wg?B*WMPavd1%%6!EMVL6Z@9L6NeVscx-+zLh&+VQyB{?gL^9d zOJD4pcii)Xi%)%iaLH+-h({O4^|2b*fd{oBu#!IO69pxbLlC`6ou;oKoHw9UQ+Yn!8w4zOqwr_>S&uti&_#g#u&c-C(n_T3hC-zy*~+jcUW%H&YKeRuG&=Mld9 z*56-JAAW9CJi0&AR7^}vpiF0zB+*+5vixNOAi(`ZxIY0dG>X%@^)HP3NpWv+`DB@} za>F>5TQ@w~o8JLj!_-S!pd{Puyt!NFo7D3p9ZD%JydWr7c& zD*yqe2ST#X_k8PvtH)lv?{YGg;YBCD>CQ9W{O5Zo>91^ExARt9H5^>)Bn5lgm~h} z`&%Xyxc!l5yf%!WoMS^=SW`O?0m{J$7g$r`ko=vIZ=X4vB`k=q@lZD79aP%KuF9>c zd;yTpiiKuK7==DHa2ifV22j9qz@Ckf6bLXG_UUsK%s~(k*gyne6R;{c%z=@BQdY%R zYFASKD>Rfe)xsK`uM&+mBb|VBUN_}MS`$Drl8s|VSl62zj$=s zl2Z@PTY3JW+Q8B}S~UW?_0GS#&?aL8uqxnKZ3;YKQ}%;Wokf&@14#fta^M5(1mU(3 z=aQ7f;@L5qD{AW#Cgf{@*jxxz(J}Nw@}h&RSwB!)(2+1feONHyK}@Pu$yp#+-2h41_fE@-Hk}EguFv8}zWGZ_4)45s^~l)xGExm{ zRBy=|;F*u&IgXR~eAeXDQYJ6`HT3F@Pm=+8lz_Vg_`gUoulo+LNrAR343nnfWmIAD z2CqG)4t{DnR3YGq0;5zu?Afxzl>_+n+y3V05N?%}i{l}Fjj_lidF{Lx8Owd|&#rCt`@mF{EFFxC|P2KMMUI0j^8Mm_U zM|EBA`s%fnk@^wtAKg{iwf9jP2r$PA){5XX0cyue|Ivy4C~m_9CB~E1;Es3yQ7h|u ztjyn6-}=mg(AlhX{_x8M2Mh1;Q@fG2w>LMR49M9_*A`` zb6%*B@S-J#KL=8ZPKn=6;G7|o?}wZ9H;4kxx=Wc7Qwg08Ax#w=sG&FoE@5D@ae6Sq zM5@ZnK|ta|w@kp4z6AmkAW2gUGlejDFyh%DS7k(d0k2V&>&o{4{2@Gz9^{l zjhgDbky>s3DA(pr)T)cdt8*8Q167;fV*hiuu8Hf12dUaWR-3c@$ecy%_8T*h!293M zY~iy`3~wLU{?L~$B&!*iuvP>rqDeFK%CR5T5|bi!jjgo;PSdg{i9nELP893f5JNc^ zu4^d=Km^dlcJ*O>7!@nE=nTCPla{`_NU{u`0-zB)99NbaxGGU%3r{W^RE!T3G;Hc~ z7N7p;t6ul<7YCQG^DQT1IeKNpTXx&S@~)FZ+wcAV`u1+Wt?#^RuHUzR|9*Pt8&{ke z9on_pH>z;mvLZ|9mJhqi0}vZeSOHF9;G&lcfDrJw1s>s&u>3;XC?Wh4mkg&H0AY(& z65vu*3}k(E0U+scL4+8 z>;-^I*k?M1Jh2m|=bu24xDYI99K2jrRw&G9rEkS10~eCj(m@JDL_m}>BHk(#kQB0& zxdx%>I18Kt6GGhb;PXI+42j|Xy+Pl~y~m&N)?I}f9^PgZcmO{g;KSQdf{>Q)w|w#Z zGwjIz*RmIJ13)DWpV4sS?8|=t+Y8sd|EOj~ayC_VYDP6YH+>cZ<72pt87ICR`VVwy z&;CD!isJD~6?eSj4{@l|_-50-`RO?qh;6*3YoiWeL=?$8fA!YC!mhg*+UWjAmmJ#p;E9qn+$)%4RVyMQ3W93V483yK!CFe$ zk+=vx(A0Z)4F^f{z2bp~2OJ)N*n0oDg+sRKXC|mN+A}sXK@%>*2O!FUlKgqC zYDv*604nYGVOz)+OhbdYyXP!E;n2K=$B!&N?%dHur(ENm(5Z%9728jDf~aM?Z+&L| zN02nug?)=}>Kk0PWprd$7EMy&x&@q5-U|RxV2}ydYKcEHV*mu`Tn(M@Br*1>?OdQb zZTp-MzE`%c6956>Oaq)Rh3nJ{0Ll7x*XwNM_Lq>$huKYN@Fe81rLDr} z8dkZ;bQl1k38@nU;zLjpDP$|5aAKhUgl#8X^uZSvI_h~QoX?+m@BvH;K!6@*#`f%a zgdh9*FI<3$L+kw-p-S65W%}mryYxd3+}Pv(dO45NxsEe-T~$Gwufye92*J#+2YT0k zOq%_wWFMUXNVac+Rl#Ew;Ky$pDzE)BTXw?`E(YNu=E`LESUV62Y5ZOP_we8NuQ&eP z+Dn76Mq5!^4@SJh5Kx7RPKGfdwZ~HhZCa45J%{YWT#B1{a8eBEVj?9DxMc$l$OD$V z&cvhwb`FA6qvF#9r>sX1Ql@dqfstw$sL$@jCdl+63~quLCH9{IP{@w`NTXoWF_AJe zkVFr?6mP3uy%w0Gw+iCeX2ostIU0dkN=6tpmUL`hJaJI*wC z1PhPfd;I#h?OWwQ$z;D#KDhJV%E4_vm^*&(`8kb=0~Jad6{R?!d?CqD1%~V~DkwOR-n`){7DH*$IJ+C&YYlSOg z1Ix~O;+%K=_Z`5T;%{xbGv5CxfJfeX03kpJHsq;W{;2<%N56ClCZd%Lpjxe>$ZTay zm@2J4^R1iLU;ID!_0YGs$jtDUm=NTDa zn6MRqaIOuCVOdn}{bi<-Sd?RHf34Qqa`NX0D8IW%+2Ut8b*)Y>Q+Ytz=+q^_D~@hVzH92I2&1k91uu%0v; zF$|D2qB$x@PL3PH7Xr;tAyb>TscLM?^NH1EyejUZ41h4OffTPPJ7=>EKnU0h-~^qd zh&K`bRe;g5b$I|HgaIht3hM07P78nlNHxyG07j_2*|bc78?GM0Z8OmqFawp)J6ZHN zZmpb-jnK}8TBdD^V1}U+5paP5{Z?>SQ1S{@!3&rq!xsZT`tLg#(pp3|0!^@$0HIwz}Es{sHg ztt3r3prNK>#JX9YQb&vc%>kBLxZ=4pul?J{1_#%5qZ4O>+4z|TAAlQwClIpzwhx5Q zK7RMWn?CyFVHAMEZGV6EvXSxa7gHn5vcNTxMpkaQT1m?Uq%T^dN;{stXW9CTGx6P2 z*pA8CO$BuHvJSxH*VYvm!%ds60|8iHTtC%xGE=cBRbF=?q8l-QGjI3=9tae7Rt#zi9A6@*Csr(B`k&);$~fQJECU3k|!U~yO>^=eT zfFzR0&-`T;N;)~;!O^e)SV#!1`jDanBS?fRfddzkI;j#j!@K}ki8L@3C;*i>1wYn` zF(j!2%o=)Nq7($MngA3qlGqyS)+IqmHoYAg1~$EY^FLn-LfAx_U_=2`AtINp%KCQ> zks31N!NAfZVQv0sbzsp1Q(s)|o1bvlmw>AlFcjA2#KxEmkHC%vvBWInhpUbH;o8KJ z9ZSX!KfelS3b)J7Xd>e3Y4~;O>v34|AW$e}GvXLZWSyhuvs|gL@u5>q=7ThmL}T?N zMjm{K6(Q5gd;lrkyF&G!HzoYZyf>!f)|K0t*gcLmc2>qL!N_wEn%=8oK7Q z>M@niM@Lb;+&RpJU?p+AdEXb=Cjdb%{JGd)Sgk=Mnj`fW=InXqg*CgkeqVzi9807! z0RTZja~d}82in0_-h%Y_S}dI*t=H>-i+HI3Nb9LKY!Xilwl)`|(eT;m8~9;bv{?5%00U4Q298c2LX77h z68v!TmQ(0+COa$Iji17rD8cW{f)l<7G==oGlQSUswvQ>{jxtJG1n(nunGZTS9TwP3 zY373&$%55kuw64?8GK8mnSH@CApUzEgcL>SL?DTxp94{gV-bXvJF1o1mU@~UtKF*Y zxGl|U-vh2*u z@bo?ZvNWmhdi7YNaYCN03X_!C>Tv(n!U_q^dG_+(dGgj78uE0nUr*OfQE8JQS=Eu>ISq+pdwr3EZxGn&!_Ch6CX#za~{rL9fd>?oy$R&&{j zf=cBOR|iL;#_;j}eW7VP00_grD5%ce%@hQh#8r!UzFJ!W028{`0&&n}DJWoOQbv$6 zB_VqOd({ML;li|nAb{0WKN40n6S_-U3&ey3V!L4V>mONh;+tRcMIO<7zw}xoB3pOx z#k*G=+)2|VDwq`*O4b}EyIcvd3~>GI$MNh%av;lg)u}cHL-XLne=v%7q9hD|DhvqFnFZ;> zfM}VYR$?P9aW zfB?YT{{+u(8p4kOTr^{y5=a$&vxS_9a5@tV7(XnEz?iUIfit^p&xEzA&iPj$rrFZL zbT9&j6N^3F@|$#HLd3>vgk+BY0UBTYO6)wKHEuJXw%4;F-b^k`%Rc~oK!d-mfaV)b z%YNYwfTRZ^wZq$Qqxowu?(}0h8s~GyoztHdD`!HI1t6HjPF(Q(3%6hJ{0p~dYot+P`JKR!wJwgn8xSGYh5NRA z+8G4nCvE&Mn^tbP#)q01064Jq z#=$+??_60Q-nOD19atmL#DLdx5C^IVU=c$RGBX4Tgec@#BTX>}Ok!cvE6pqpfLMdT zgekkMylBOF53M-)E!*?^M(*+J4-+|`4kdCJ|6$?k*S=7lv-HsZXKy||t{<6~Kbe~S zYXXhzj!3gsDd2zyQ3gC5F+xhl(K(V>Pg1~m{YVNvY^wc$ii#CcN|`a6q+wc-Y7Tr@ zjnpdO1?oU+xE0U@9^{#hbkGgk{u9ZEQXzMuw6HvHQKK~zRz3u)rLUlbSwIR{N`5(| z4rWqo`RON7z9v>0h85)A$&ET#-0`*okg}1$oth4wy(INET}!r^CWfdrX@LS{<9I_7 z+i6cy3E@fB-gUq;Vop)E5a_Od5MX<^$FvAe25>18+O%x5YJ@&j)Cf2NOf5v0fLmr7 zd;qfyKmgzn@T~>F835+bNQa6(D#oABunDlvvu zmJ*)g9^(CM;${`7(kf0@tEcD3Y}4EnMyV}EF%L%Swv`#N+OSC4H6Q@ML2XjhFY(CW zBRBuX`Zs*&$pvuWLb#3;u2t4xUkIw^MX8p|ocdC*qzU?+BHN@;v&(1=hK#T)7e@tPa1!|e|X9vm7v z`r=j9v#{94#yEYxD3V1QaCH^6R9ZtrUvGp zc(8WX2Y$SF+s$i6c0P0}F`#J?Mp7%8utWgOpH58_X?UEZ0E3VS!G%hxHuWN$0*wTT zB4tCYCc@$v5b=Wc6nOX)yG8Kf+E{V$B1%KKV(Wi^Meq@6vBW}@dC{#)SNZvQ7 z*PEb)shQEKXnC-aX+S!(ostE0+Y%}kx4&a0DFB_ceReY#m;JIV49nVvEqlV2MT%6y zx;3e0q%Q4|Drzl+?C~b3&Qql$037@+^ly_1+lfU8fafgmS^~;nOtWBVYTT|K9T7&< z;y|a1s=%w6@rK#>>u7D(0mui2P~S9!uK@VS40YLa z=+#l$dP9g5xXUjfgWU{_OP4V)FgGDAV8tQO?4?30Gg62ETc>hs+jzp7Fl9rmEK`!w z>=Lm}7R$s0*ZTWP9|#q$+x!!+A?**qEDR;7mlk`2Y1NDjkBzJZ&eCCpe_8$S^h=nX27mE3pjhzr*P9%e}WgMIW%XssqgFLM74OhHp-@>dkN2i zfPh?Fen~ptX4A;W>$_{i086e`QO>c-KuT(q&hC}~5SWmXD}HxNrfLt(f&W39-2VI_mI08CkZpMPeT#+< zJhLKcjP_{~hoqL3$f^j#qXaFloslHIXdkHu9e@*-1AwYyaEvCR020LNSqsm4uvoQ; zLl|V@?C$sA!&g{*v^6ZLQLj7w z5L3q|kc4G=i5_zj`G^4m%Fe2v(lfcx<~9qPlY=G~E@zW!$H$S_bQ@_8!xDfxO>9=e z&J2jEWGu1TOq~Q$kR-`^GT~h%n`INEoy;n%0$Zs=cEZ`Pl=1GWsZ+&vlRjsPm`Z`u z4RGPh13e1nCZ(1WVL!ApD^3Iz#+N_xdBmOC9F5I700DrjhVaCu>+ll@+EOe|(ToDM zV|D!mIExe!2=@antAGM8fV$T>F~C{{4iPY_Q%Dy)1GXJBb)k`uu_TyNJN-Ba2ne!h zVq&7D0&`zqxqhn3bqfR790QVn@^#9BB?<~ma4@04U5gfphh{$gK z44x%aUyDg5;|j4>tt)d3NvE1KM`=fOjb`f_f8-;GHxFT#=2CRO(yT3u7GarK{La2D$@*Uz<(oe9ppheIGC{4WCTm{xy6<7moL=Ls9W%0G z+$bDvRYhjd#D0NWn;{FxJnUp%2W=rq*I7B@87nm*l-0~;!? zI=hI?t^ujjZX{_)7OV&XNF-JwQcm02L_|&Oz>94b7qr%6pIC?pk^>)}^+0wm@x- zjRzHR&6vi0I7I>C+l}suE(*s&f!Ab&^UrsaRbs9U}PRJdhy56_~s|^h9oCgpKY7Ug<}As zIJ*L@**t_z(~0jDpq1tW;nmDkWxdIVu$rutzG}eTJ z+MEN+Pr1Th$Bb}3yl-n?9t1TPwbmJwq^BXFu>)IIkzw0bun~ai z8yv1sHHzw^gH{?f01(dAqtK@7DVhR~^m`&nI!i2;#eoh1U{u7UJMh2*20#+0BJ@O{ zj`hfj3~HnRsah*p5y6!4NTMh&*l;X}Hk49UBM&~rMlE4XjYdmYRb~=29Ej1eYY zqj4;FVOwv#{SpEywcg*$CeNOPB>*dDWg%Pji8`18N_0S^i;pP?!O1!xd?FkBB;cdK zDjZhe1)zIPj+rnb^g|H>U73JJ#b9Srd|DAsBEbc(2|7><%w6A>(rv+we)xq zUx8v70hjbV&ZEeJ#f-fWY_=umrkDk*Wt@~{!8!#c$pU{*e!M%y;Q{;FU07y}BUeJNGEpJ5=<3yNH=t2~X2#TQ6 z7KT-<2hv}wK628PU;X~twHLQc`WO4_vfT9WnG4Iz!Dlwl*>eAvUKiE(uL;ns*`a|8 z!3s>pAp$mZ+-dKs^1neq{IkXNzGDz!u@)k-q+gBSCfH@Zf^Ahvpr( zVWc*=re4@T0ATyW|NFGj-H)AGJdo<(iXA6k_}}jF``GuwZ438pz3Cj)MlF95lO*-m zQdYp^%Iif*3}&eD^*#V3Y2iQwiEEd{s#$nd8jvK8^^lao(8LNeskM<4h~&VB%RJRg zN)>BE1+5wnDb(s1A1{eW2^%epR;J%5vIupTHLL6aR7}I0_0a)fGnEIn<#iXfxV$`M ztGxf**i8j|Ddwr_v~!sUr#6S)is+kx_` zl{s5Sf|q8sNI=dc!6O|rSoB~-II%qST=Vy=R+dgXpgm{xi8}ImF^Fkm#iCPh-S`VX zEG^t~wDwAINMFfz$q zW9U@N*d(&7=|e~WHcf^^H4Vcm*;jG-VBf;89l!oPyPtUA^B)DYzpZ@|wL5QxqZuD< zY}mHxJ(b}6zx&Rr3$F3^TqmZ_c3D;;xh=Q*Zn*Zeu>;#*D^`LasE9=j@+pQBH)1P^ zfI4}euXdHQB!dta(?%}k53jj-wzj*h-7w+5>j}EWOpZT;T zBce1LR(1l^iUA;zh!5JbCJ`8bY%G2rRwWTl-EfH`rIcY2jdH~VV^xJxp7qGA$$DgC zN}_D~D-S*zjYivqpBIgHe5BRO!{>Xxz^@RC>&?h*E}8XAo&G7AcBodKtyfjREO4KcfAkKcg)84;U;Z;H};I5MWppn;7`z zp2s;&284hkO!%rQbUF+O0sTht-frjBuOPzLY%X5Vr}Lc(1LE7eWi-BQ$*H$({P2A< z0zO`;&gf5zZMqH@L7T<)dSO8FVOyjiVmk7UKbrWrnI79u+qJ##9}vE<8^7I=0m(5M z(`7(N5m$iEzikM^`E9Si9;WXJoS86Qmk)bwrok?K*2F;tpMS?6_T~&IK%1_^hX`2S z4SbaBr-h-A;_}js%4c`mvSFnFC10a~2=<*<{LN>v@xyZCXXc)7lg6c`{dCBL)xJ~n z%t=@M{-*WoKkmid-K@C2+xM2w_k8Is=Z_rOaSm64bd1f~CdP!WR!9)0Rn<-I_gF!# zf911_PI}XGa~Gd9w&&^Zu0FKq!Snrg&0U098c;(ax74Eua{UphmDb055Y)z(uDkSs zTK}T@$l({~jP8Bn_=)j-%iTCB6_)3s|I_p6Md{gMb^yVLQvrZjrvdT6!xy7eikl2b zV#U|^aN~~?0BEG(gVZr7#H4YOX1q#rDV?R6bt4~YMdSjZN)irhE`v`B?J%2*MgqmjUU<{Q3QK(u|ZbAON6o^j1J}z@VI*AmCvb+&3i# zq&56)Edg&%` z4}AQzIix=gW*E;|+g|Ovo8?8Dq#zR5PS>Wa5aQ43bv*YYh&K&k2MEV?Yd00bsOab` za9RPCaV*pF%|PO z+WBx4AvEaRkHl#r#ydBE5(lisB}7<|XH?3^L=7_GeX4c^!LEVAh}w0}ed9A%<8j=u z{+f?ZrgbU`zKhIA>AnBVou67TGO~Sxl3Iz}wn4So)>;@h{U6&Ps34IhGh*!o#BM)n z;^8lzs1#&rfZ0?iNu0Ay%IqtUn=mA+u_YlTN&!lo^NBemlGfs7HW{t#e*Bx~bLfCd z8akB#$YNvi8z?0$$EiNUl|m86nFFL*&=IKz9+UzPiLH7d>cI!WXSZqv9)J^>d#5=M zKEy`WYdRW*WEv7QY^i9vm~>+bX45(uS^&{G;5{QINxe<0lkFG1rN5ssQ#A^^kb3a3 z1vm+U`+F%LP-aAUUKIx^7d||brog=P5_Qye5%8Qp)__2kad|pvKI?8P&G1e{a2qq~ zY1yGg23TaCfZa5N{RY^3KX7m+(zpXJ0{{VlD~IsNrt5G&1RHzWfM8U+Yc7tN5mu_= zJOZ|X&=wop(p0bxguR$WkrV+(0)s7W!l$X2;>2E?3b2BJt)14lh{&{aMkG}zh4|4G zzxMb+{Msu}o%Ns8Dpeew=$dG7a_giI0e*JDMklkt-2w1(Q{ArHIrOHAMlu&a>DDF% zBKO}qgolTLvqW$q84PyZFR<<(K8&!}w2SW;!gHHGfuAVw+FshH<8A>Oy@X;-tzoMX zA-w(?m}|f49QZ3ghNo4rW%DO+sVb##x)6!Qr`__v z!^X|NNFBYBPpwOFl#QJVwLHqeN869ihgkJ6OJHqNu&vV0fQWWZWqT~l7YxiS2Z$^H z(<4AB3dOaA0b#;I>Tzy`fI)I0RC{`9Uo>?f^8utR$V^zysVAfpH-xSkMzc&&vEnrZ zET5^d97|K+DdG~AhhQwQ%mT|cD&lYb86NMIDeq>-I9j`D(ICF6)V-plH`Uo?5T;lTyNZ@u=Bm!AB`X@Cue-_8K!gTlz-q-aN$LO^Lj zixwL$j)FQ0YJ)+mw&>Iroh=MmX9IOMP#X+e)uK~ZbZSooYEJ}c(W%P^&gBDD>q?6) z3|m_mwl*kgdn_ zij6*35BOZs?{~)KJCP6{C)!%-bYk56yBJTykD)PzshUu1!KD`IOvNgn;0B)`YqjxY z8mlfWg0A+tGXlF5k8%CI`GU`1tU{;8+@^qkB8@;G2;6pxs! zE!xroPzdrPODY+$qh!QtQAVzf9{(9)uAaD;G(6rC#uT3SX(hby{33nNR3c&H0p zX#pr|L5nf+Q98k53pP$Zh7-IVW3E;m#A6E8k&y-oh;XKQ&D*2Kpt$l$khVaW8~wk4 zNv@aV;1yLAp-184G6A{O?SKjodnUaoVH`nugk{s1(CqvheO?*xc~Gk)bZht-Y3PGE zE)cS!Oh*}_ioxZ1%meat;25mqacLp<1Hgk7jc#LvB??EH*`HDNt-g(I&1^f7*!V>* za1yDvDPn;vyl1n|?;Djb?RH3mA`g|&7Cdq%BcgcO`#0XfZj`GcY;w}%(|596mFKp6iSxv=T4APBBrR1#Ta5(__4Yn?(E zrxb0hZZr{HLup7hct@NQGiE22c zN|nsT&+@5*1HU@!0%fb%W9v48}HztxP$Xc{2o#B^`_kM-<)^;XOFc zY&x4At2)89`O0sVfcSY2(=QOc=f9^h%lteQiK_z3?{aLj8j}Y zeR57w=lE@_@eRhZ46pH6K4Vy{f@q2aVahfdSbn$Wv-P?7I*IXs;@(>U$FZ|p1_ERBPsaWL`K>19Q@3Z+b zxQSSpkP$R35#7O|8}F)rwki$I@zacO`a^a6_}$CNSn^LCv4Y73-=_A%dnyuOHm!Y3iFXM$(!l>vb;9YUIO38Tx7T) zbBv25Q+_R+W%j_AnYH%wqY}fFxHcUB!;kp%9))GraEhnQbS{~EPDb?i%>YQ7tcnm7&a-7C#d!rQf|iH~ zlzT>cGCgJ0y^CJXD+J{Z-Asl^qBtTB#VENp`dti~n3L(yvGP!(Bq3}v3U!i5Kt{Y? z@sKJ;2}rnY5RszMbphpsrILJzEm&e?D4!pzmYPUB!p4cKr_el%u*5ZCScotS%N$H| z;oT)T<#B;CwKaQdnnbpzz;Tz5?;G9IJ5{+#x-m_l4mkLg7!EYL-Cum2;O1|%zW=Tu zAOP3uQwVxQ9{2@ zE@${}s?4iKVbcl`)!<)EC$Xd{-6Oa!27~s=QC6dWGR9zOkl< z;r#TGS7sbd(KIR$e$%SM@bhId&^KxDg5fTx=K{g^Jqlp)&DUN+Ls)#B> zRy?o5oe&FqinlN8baY)j?5^b55QCNmseqM`Y`7Q!p*UK_ywpc!m=%P?qw*GUnS5ex zjA(R;TIAbAT7NTon@gh^fudzCoEQYwyw5@9eua9&uD5C19!2AVXjfAYFj&Hk<0T( zmx0@SJI6ea->?2+YcZ*l4ZVZ(v>H7-EOO4>#zhMyg zMXUXs0`7>mN1m}0u!Qb)h4&8lyu8*QzX=2pbgR!3d7*cX@|$W&>xT+Y%`ICI71^Vw z{Pk5LBVtff7)wTs2$^Ub6EoP2pjL8TF)B*vM%RycN#amJjpjVH6;;e7*#i=nRrWoc&yOJpE)$)bF`WRz!*wx=x} znr)&iSJ>W$aXc+>4mFCerocd`^r=u3h`0#{D$+m`f#PHLG%Em`<+4kgr zzy!+hrr~L2lfrhCnJ(pHHUSBYRUvQ~MO0ZzO5C=<0%%^f20)dal}ZK8-U(u=S7)w0 z7?x0nv5_$h4V}*`E$yoX-0QPY13uPBAxj0L${a66cJE|H59uL~4KV1oy`bJr&?;gU zz=*LU!n`c}r;UCaJgRNPDxV-Q+(#9&teW>D?Y-U!S!WA34EUVZ?tZJ`I-jHKZsUiM z2NekOL`q9(U19k6{KPX@D2y%@a9+X2myu2Kg|ejt&lYTaDXkBJe8N(|X~B+NiiwML zMQ0hi1X3tlO8eA8K`WP$f!cx{Sz;K@=SP;Z^N=an68RW|;o)$p11CdWkBNYDtvyo; zi`BKE=(J!Je&IFo?vSv|fERYdp+uEaLqRRmR5_*Pv5qrTD5~&)bIr-^Yw;u|Aij?) z4)Hyas~f=dR&E!KtxCq3hWi~ z1@f_FC?X}EEm&iVW0ul(K~P9oMoCIBwpg22TP$BBC^!lQtz5JsAEbBpqHz zI#P)T)J;5KihQ&JugL`T5=1b@w5QlH!ahs&aK|KQ7&4E7b!lPdj#p_d#A{-p1md_q zq4;XuFkWkQ!piz;S4ZuF`k3qt&cSe>q$vw^ncGvsA~a!AcvyfZF|^Hv72O-2RabBh z9;Qu(oj}I4Cm&^5ttMVi>uNpC;)!pN@nB{Xo4)mQ6Gh%m28e9~0nsS}(hQ!qysBEi zxP*dHxCr=*jXocL#P5!f+OV-4BN(=>gKAeNdx2I}vaSs^IE>V`E9!>wJChz3pU|A?NT|jtaIlK7 zkeW%Bc&>`W4} z&b27NOC@6!@aiZ`sE#G1Msh1eLUY9ew9aa(Qz%Dt&;7394Fykxs}2i)yxp&!=QLhe=kq%p-^FpFl6X||kgDXP zS);A~r+02nxask)w;}AKO)%c546-c|5zP-7FY}Zb^IFXgN<<_dEfpwv3*yU|E@EV) zk_c3i0T?A3Syu?W;@HrxG{pO?+-D_%Ogpt3a9N0 zjZ`6Tg`d|etPu$YAwnU|`ys*sWpdU0aEcn?L3QkEwJ)!Y9+0k>F)QH#pZR$=YP@?w zUSYt&>ShY&jVDaV3XcP`)G<$lgD}<*6NBJz)KC6ivaqe4nVrq#e}r<_75%_mr_2yZ zk(E@AO|&5&$!(6jNbdW4=D9rQE1Z$=vMgYDxbJhV*Fl)92w--rf-fG_|Mj0j8Ro*a zca*C|n2}ZsL-KRv}ld6Ia^dN+o|WHC)i`mUA>o+_PNiTrTWk}U6P;?eFea~%;8^+1H# z3e(WGeTR1oJgsn9wMMFBM53g1Wq+FY!zqPHCcEpz@v!sSlZzYJlQRTM2E&4GWpGMS zlq~|go9=j=T%Ssq;}M9|2#-@Ennr}Vgy!3E2S<||Q50ceJIB^Z zh)`6^51nCWyZX#zPC^gJ13vTenjDL(5Cj4Dds#k?wxPmhr=T2Dp(sigWwyX{t&BfZ zJfq~*qn0sopa?(eQ7qD`FzP5AOwYjFb}_Q3c0gjHSI`D`Y^M-;IUeixc|K>j&^cbc zc7h8fb_1L+Cw{Xf&cZuVXB<_~nbRjn*krfj%|-lv;U2E^yz+3kdfcW~@n(4}hxUDN z+J!&+?+mK)@0)JtS`pq~t*w!$hD8nUMu~@3`DlbD|Ee{zuEQTw`Z)EjD1dY5PivUzu zgz{=-J1eXZ<#mD66Z?TZMR>?-W3o>Po@0@k_7NK3G#!!GuYfX3eT;N*K1H9;ap2L3 z9!EFe>wiHOVOl*Ojt` zB78WlT^jjFY}YQ-C<56@6lO4-D^?Fw7dJNUJe7>Od@xeq!|Ur z7*|sm&L{WZhA))0d23wx@wU@5(W;T%EojF%5n*XNPlXW{*=ij&H|P@%ekia;E9B;l zFiRn4;9#1Fif0h#>KCjS$H<$ceIGW;eb#WS-TT|uKvI7#bVUeOe?OiSYP+>OgBrtQ z4jvS3pBt#nI8>VLk+72cn513<(~V&t$*%YfOKZQuTU zA9JtI!hW9>{daQ;ZTU=1p@ijUFjrFQ*u)XN`=9MmzI}u8b))$_>A8^k(sVInKNHvek0*J9=wEM zlWJ#XT3cbR5*A?_$sdJrbu|5V|pV%s~h7q1#4v_H<-tMc*@%XzK# z@B5g6J30SSSW|>g^uULD3jD#q9o3V{rqCE{A-RT4C5++8wHx@=bv{SM$K_YDU16_- zEvtPFc6yxe2CV%&$JC8Ai0bhSXmirj;|{xx2gc;~Rn!WphU5&61>VbWlN;tV{&(>B``B8V}aDe|X=16J9Bj67%46{ZX9N7LskWCABB>VW~L z@Td{)@01jNlpE7FLf#bwq)=%5Msvym5&BhImlbOUHJ+bt|=Dk4m+NXuj}i>uD^|e^;0=C?M7AMjkJl9v|03SL*MtYxh(ggk*B8y`KYFR z)r|L}^8Bfi)nTsdziHwOjnzK8W-H%x@N*%daIKPeh96z`S@M$MsR-Yh5Hbm&<+F!s&K*+g6Xckb=@YMfb`#lhpBJowGtY}^xfx_UshwT;|+mfCA^6Z zfTmVQzg%Ir2+tdD9HdJfi_rF8bAkEB(3^Gvoa3_oCKYCiLwvv`Bz>tcI0Lpd)8`bD zk$syN3d*zxj+mC9^vo$VBnGi68$e)``{b%>PKjb+>Rpgu^4A zohAwunkvMlruV~@Z|0OUdoJXU{0S`TxXLH^w9n(~eE!*+#{Vm@(JA+P9{q)teErk6 zhSzuP7kCqzSMBR21GjE8Fz8y>UKRC}?V9C>Q7#~Teb_nh6H`S>d{Umb4#K)N77mQT zq$!EE0RnDDj)(1Zd|;ozGZGSyW55BV;xbG3*p~^|>x6z

QVz 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 literal 0 HcmV?d00001 diff --git a/res/picta/uk.png b/res/picta/uk.png new file mode 100644 index 0000000000000000000000000000000000000000..d041eca27d815d4f8e6b2e18494bafcba7b54938 GIT binary patch literal 15677 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 { + static se: Ignavum = new Ignavum(() => new Actus); + + protected override async numeretur (): Promise { + const aiere: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/aiere', positor: Anomalon.positor })); + const esse: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/esse', positor: Anomalon.positor })); + const fieri: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/fierī', positor: Anomalon.positor })); + const infieri: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/īnfierī', positor: Anomalon.positor })); + const inquii: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/inquiī', positor: Anomalon.positor })); + + const coesse: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/coepisse', positor: Anomalon.positor })), + new Ignavum(() => new TabulaFissa({ + relata: new Ignavum(() => + new TabulaRescripta({ + relata: esse, + rescriptor: scriptum => scriptum.startsWith('f') ? 'cōn' : 'co' + })), + tabula: TabulaPerfecta.apponatur() + })) + )); + + const dare: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/dare', positor: Anomalon.positor })), + new Ignavum(() => new Structor(() => new ActusAgendus) + .ponatur(actus => actus.infinitivum = 'dare') + .ponatur(actus => actus.perfectum = 'dedisse') + .ponatur(actus => actus.supinum = 'dātum') + .ponatur(actus => actus.versio = 'prima') + .struatur().putetur()) + )); + + const ferre: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/ferre', positor: Anomalon.positor })), + new Ignavum(() => new Structor(() => new ActusAgendus) + .ponatur(actus => actus.infinitivum = 'ferre') + .ponatur(actus => actus.perfectum = 'tulisse') + .ponatur(actus => actus.supinum = 'lātum') + .ponatur(actus => actus.versio = 'tertia') + .struatur().putetur()) + )); + + const facere: Ignavum> = new Ignavum(() => new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/facere', positor: Anomalon.positor })), + new Ignavum(() => new Structor(() => new ActusAgendus) + .ponatur(actus => actus.infinitivum = 'facere') + .ponatur(actus => actus.perfectum = 'fēcisse') + .ponatur(actus => actus.supinum = 'factum') + .ponatur(actus => actus.versio = 'tertiaVaria/cumImperativoBrevi') + .struatur().putetur()) + )); + + const ire: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/ferre', positor: Anomalon.positor })), + new Ignavum(() => new Structor(() => new ActusAgendus) + .ponatur(actus => actus.infinitivum = 'īre') + .ponatur(actus => actus.perfectum = 'īsse') + .ponatur(actus => actus.supinum = 'itum') + .ponatur(actus => actus.versio = 'secunda') + .struatur().putetur()) + )); + + const perire: Ignavum> = new Ignavum(() => + new TabulaFissa({ + relata: new Ignavum(() => + new TabulaPraefixa({ + relata: ire, + praefixum: 'per' + })), + tabula: TabulaImpersonalis.apponatur('passivo') + })); + + const velle: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/velle', positor: Anomalon.positor })), + new Ignavum(() => new Structor(() => new ActusAgendus) + .ponatur(actus => actus.infinitivum = 'volere') + .ponatur(actus => actus.perfectum = 'voluisse') + .ponatur(actus => actus.versio = 'tertia//semideponens') + .struatur().putetur()) + )); + + const malle: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/mālle', positor: Anomalon.positor })), + new Ignavum(() => new TabulaRescripta({ + relata: velle, rescriptor: scriptum => scriptum.replace('ve', 'mā'), + })) + )); + + const meminisse: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/meminisse', positor: Anomalon.positor })), + new Ignavum(() => new Structor(() => new ActusAgendus) + .ponatur(actus => actus.perfectum = 'meminisse') + .ponatur(actus => actus.versio = 'tertia//perfecta') + .struatur().putetur()) + )); + + const abdare: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: dare, praefixum: 'ab' })); + const abesse: Ignavum> = new Ignavum(() => + new TabulaRescripta({ relata: dare, rescriptor: scriptum => scriptum.startsWith('f') ? 'ā' : 'ab' })); + const abire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'ab' })); + const afferre: Ignavum> = new Ignavum(() => + new TabulaRescripta({ relata: ferre, rescriptor: scriptum => 'a'.concat(scriptum.at(0) ?? '', scriptum) })); + + const auferre: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: ferre, + rescriptor (scriptum) { + switch (scriptum.at(0)) { + case 'f': + return 'au'.concat(scriptum); + case 't': + return 'abs'.concat(scriptum); + case 'l': + return 'ab'.concat(scriptum); + default: + return scriptum; + } + }, + })); + + const nolle: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/nōlle', positor: Anomalon.positor })), + new Ignavum(() => new TabulaRescripta({ + relata: velle, + rescriptor (scriptum) { + switch (scriptum) { + case 'vīs': + case 'vult': + case 'vultis': + return ''; + default: + return scriptum.replace('ve', 'nō'); + } + }, + })) + )); + + const coepisse: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/coepisse', positor: Anomalon.positor })), + new Ignavum((() => new Structor(() => new ActusAgendus) + .ponatur(actus => actus.perfectum = 'coepisse') + .ponatur(actus => actus.versio = 'tertia//perfecta') + .struatur().putetur()) + ))); + + const coire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'co' })); + const collabefieri: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: fieri, praefixum: 'collabe' })); + const confieri: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: fieri, praefixum: 'cōn' })); + + const conferre: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: ferre, + rescriptor (scriptum) { + switch (scriptum.at(0)) { + case 'f': + return 'cōn'.concat(scriptum); + case 't': + return 'con'.concat(scriptum); + case 'l': + return 'col'.concat(scriptum); + default: + return scriptum; + } + }, + })); + + const dedare: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: dare, praefixum: 'dē' })); + const deesse: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: esse, praefixum: 'dē' })); + const deferre: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ferre, praefixum: 'dē' })); + const defieri: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: fieri, praefixum: 'dē' })); + const deire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'de' })); + + const differre: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: ferre, + rescriptor (scriptum) { + switch (scriptum.at(0)) { + case 'f': + return 'dif'.concat(scriptum); + case 't': + return 'dis'.concat(scriptum); + case 'l': + return 'dī'.concat(scriptum); + default: + return scriptum; + } + }, + })); + + const disperire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'disper' })); + const didare: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: dare, praefixum: 'dī' })); + + const efferre: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: ferre, + rescriptor (scriptum) { + switch (scriptum.at(0)) { + case 'f': + return 'ef'.concat(scriptum); + case 't': + return 'ex'.concat(scriptum); + case 'l': + return 'ē'.concat(scriptum); + default: + return scriptum; + } + }, + })); + + const exire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'ex' })); + const inesse: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: esse, praefixum: 'īn' })); + + const inferre: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: ferre, + rescriptor (scriptum) { + switch (scriptum.at(0)) { + case 'f': + return 'īn'.concat(scriptum); + case 't': + return 'in'.concat(scriptum); + case 'l': + return 'il'.concat(scriptum); + default: + return scriptum; + } + }, + })); + + const interesse: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: esse, praefixum: 'inter' })); + const interferre: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ferre, praefixum: 'inter' })); + const introferre: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ferre, praefixum: 'intrō' })); + const inire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'in' })); + const interire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'inter' })); + const introire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'intro' })); + const nequire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'nequ' })); + const obesse: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: esse, praefixum: 'ob' })); + const obire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'ob' })); + const obsolefieri: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: fieri, praefixum: 'obsole' })); + + const odisse: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/ōdisse', positor: Anomalon.positor })), + new Ignavum(() => new Structor(() => new ActusAgendus) + .ponatur(actus => actus.perfectum = 'ōdisse') + .ponatur(actus => actus.versio = 'quarta//perfecta') + .struatur().putetur()) + )); + + const offerre: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: ferre, + rescriptor: scriptum => (scriptum.startsWith('f') ? 'of' : 'ob').concat(scriptum), + })); + + const perferre: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ferre, praefixum: 'per' })); + const pervelle: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: velle, praefixum: 'per' })); + + const posse: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: esse, + rescriptor (scriptum) { + switch (true) { + case scriptum === 'esse': + return 'posse'; + case scriptum === 'estō': + return ''; + case scriptum.startsWith('s'): + return 'pos'.concat(scriptum); + case scriptum.startsWith('e'): + return 'pot'.concat(scriptum); + case scriptum.startsWith('f'): + return 'pot'.concat(scriptum.substring(1)); + default: + return ''; + } + }, + })); + + const postferre: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ferre, praefixum: 'post' })); + const praeesse: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: esse, praefixum: 'prae' })); + const praeterferre: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ferre, praefixum: 'praeter' })); + + const prodesse: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: esse, + rescriptor: scriptum => (scriptum.startsWith('e') ? 'prō' : 'prōd').concat(scriptum), + })); + + const prodire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'prōd' })); + const proferre: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ferre, praefixum: 'prō' })); + const quire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'qu' })); + const redire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'red' })); + + const referre: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: esse, + rescriptor: scriptum => (scriptum.startsWith('t') ? 'ret' : 're').concat(scriptum), + })); + + const subesse: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: esse, praefixum: 'sub' })); + const subire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'sub' })); + const sufferre: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ferre, praefixum: 'suf' })); + const superesse: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: esse, praefixum: 'super' })); + const suffieri: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: fieri, praefixum: 'suf' })); + const superfieri: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: fieri, praefixum: 'super' })); + const transabire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'trānsab' })); + const transire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'trāns' })); + const venire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'vēn' })); + + const venireRectum: Ignavum> = new Ignavum(() => + new Structor(() => new ActusAgendus) + .ponatur(actus => actus.infinitivum = 'venīre') + .ponatur(actus => actus.perfectum = 'vēnīsse') + .ponatur(actus => actus.supinum = 'ventum') + .ponatur(actus => actus.versio = 'quartus//impersonalis//passivo') + .struatur().putetur()); + + const arefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'āre'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const arfacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'ār'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const benefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'bene'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const calfacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'cal'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const calefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'cale'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const commonefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'commone'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const condocfacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'condoce'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const consuefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'cōnsuē'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const expergefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'expergē'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const fervefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'fervē'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const infervefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'inferve'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const labefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'labe'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const liquifacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'liqui'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const madefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'made'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const malefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'male'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const mollifacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'molli'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const multifacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'multi'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const mansuefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'mānsuē'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const olfacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'ol'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const patefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'pate'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const pavefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'pave'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const putrefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'putre'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const satisfacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'satis'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const stupefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'stupe'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const tepefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'tepe'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const tremefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'treme'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const tumefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'tume'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const vacuefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'vacuē'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const incalfacere: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: calfacere, suffixum: 'in' })); + const percalfacere: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: calfacere, suffixum: 'per' })); + const recalfacere: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: calfacere, suffixum: 're' })); + const permadefacere: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: madefacere, suffixum: 'per' })); + const subolfacere: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: olfacere, suffixum: 'sub' })); + const confervefacere: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: fervefacere, suffixum: 'con' })); + const defervefacere: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: calfacere, suffixum: 'dē' })); + const obstupefacere: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: stupefacere, suffixum: 'ob' })); + const rarefacere: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: arefacere, suffixum: 'r' })); + + const advenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'ad' + })); + + const adinvenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'adin' + })); + + const antevenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'ante' + })); + + const circumvenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'circum' + })); + + const convenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'con' + })); + + const contravenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'contrā' + })); + + const disconvenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'discon' + })); + + const devenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'dē' + })); + + const evenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'ē' + })); + + const invenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'in' + })); + + const intervenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'inter' + })); + + const obvenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'ob' + })); + + const pervenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'per' + })); + + const praevenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'prae' + })); + + const provenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'prō' + })); + + const subvenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'sub' + })); + + const supervenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'super' + })); + + const transvenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'trāns' + })); + + this.contenta.set('abdare', new Mantela(abdare)); + this.contenta.set('abesse', new Mantela(abesse)); + this.contenta.set('advenīre', new Mantela(advenire)); + this.contenta.set('adinvenīre', new Mantela(adinvenire)); + this.contenta.set('afferre', new Mantela(afferre)); + this.contenta.set('antevenīre', new Mantela(antevenire)); + this.contenta.set('ārefacere', new Mantela(arefacere)); + this.contenta.set('ārfacere', new Mantela(arfacere)); + this.contenta.set('auferre', new Mantela(auferre)); + this.contenta.set('abīre', new Mantela(abire)); + this.contenta.set('aiere', new Mantela(aiere)); + this.contenta.set('benefacere', new Mantela(benefacere)); + this.contenta.set('calfacere', new Mantela(calfacere)); + this.contenta.set('calefacere', new Mantela(calefacere)); + this.contenta.set('circumvenīre', new Mantela(circumvenire)); + this.contenta.set('coepisse', new Mantela(coepisse)); + this.contenta.set('coesse', new Mantela(coesse)); + this.contenta.set('coīre', new Mantela(coire)); + this.contenta.set('collabefierī', new Mantela(collabefieri)); + this.contenta.set('commonefacere', new Mantela(commonefacere)); + this.contenta.set('condocefacere', new Mantela(condocfacere)); + this.contenta.set('confervēfacere', new Mantela(confervefacere)); + this.contenta.set('cōnsuēfacere', new Mantela(consuefacere)); + this.contenta.set('conferre', new Mantela(conferre)); + this.contenta.set('cōnfierī', new Mantela(confieri)); + this.contenta.set('convenīre', new Mantela(convenire)); + this.contenta.set('contrāvenīre', new Mantela(contravenire)); + this.contenta.set('dare', new Mantela(dare)); + this.contenta.set('dēdare', new Mantela(dedare)); + this.contenta.set('dēferre', new Mantela(deferre)); + this.contenta.set('dēfervēfacere', new Mantela(defervefacere)); + this.contenta.set('dēfierī', new Mantela(defieri)); + this.contenta.set('dēesse', new Mantela(deesse)); + this.contenta.set('dēīre', new Mantela(deire)); + this.contenta.set('dēvenīre', new Mantela(devenire)); + this.contenta.set('dīdare', new Mantela(didare)); + this.contenta.set('differre', new Mantela(differre)); + this.contenta.set('disconvenīre', new Mantela(disconvenire)); + this.contenta.set('disperīre', new Mantela(disperire)); + this.contenta.set('diferre', new Mantela(differre)); + this.contenta.set('efferre', new Mantela(efferre)); + this.contenta.set('esse', new Mantela(esse)); + this.contenta.set('ēvenīre', new Mantela(evenire)); + this.contenta.set('expergēfacere', new Mantela(expergefacere)); + this.contenta.set('exīre', new Mantela(exire)); + this.contenta.set('facere', new Mantela(facere)); + this.contenta.set('ferre', new Mantela(ferre)); + this.contenta.set('fervēfacere', new Mantela(fervefacere)); + this.contenta.set('fierī', new Mantela(fieri)); + this.contenta.set('incalfacere', new Mantela(incalfacere)); + this.contenta.set('infervefacere', new Mantela(infervefacere)); + this.contenta.set('īnfierī', new Mantela(infieri)); + this.contenta.set('inquiī', new Mantela(inquii)); + this.contenta.set('interesse', new Mantela(interesse)); + this.contenta.set('interferre', new Mantela(interferre)); + this.contenta.set('intrōferre', new Mantela(introferre)); + this.contenta.set('īnesse', new Mantela(inesse)); + this.contenta.set('īnferre', new Mantela(inferre)); + this.contenta.set('inīre', new Mantela(inire)); + this.contenta.set('interīre', new Mantela(interire)); + this.contenta.set('introīre', new Mantela(introire)); + this.contenta.set('invenīre', new Mantela(invenire)); + this.contenta.set('intervenīre', new Mantela(intervenire)); + this.contenta.set('īre', new Mantela(ire)); + this.contenta.set('labefacere', new Mantela(labefacere)); + this.contenta.set('liquifacere', new Mantela(liquifacere)); + this.contenta.set('madefacere', new Mantela(madefacere)); + this.contenta.set('malefacere', new Mantela(malefacere)); + this.contenta.set('mālle', new Mantela(malle)); + this.contenta.set('mānsuēfacere', new Mantela(mansuefacere)); + this.contenta.set('meminisse', new Mantela(meminisse)); + this.contenta.set('mollifacere', new Mantela(mollifacere)); + this.contenta.set('multifacere', new Mantela(multifacere)); + this.contenta.set('nōlle', new Mantela(nolle)); + this.contenta.set('nequīre', new Mantela(nequire)); + this.contenta.set('obesse', new Mantela(obesse)); + this.contenta.set('obīre', new Mantela(obire)); + this.contenta.set('obstupefacere', new Mantela(obstupefacere)); + this.contenta.set('obvenīre', new Mantela(obvenire)); + this.contenta.set('ōdisse', new Mantela(odisse)); + this.contenta.set('offerre', new Mantela(offerre)); + this.contenta.set('olfacere', new Mantela(olfacere)); + this.contenta.set('obsolefierī', new Mantela(obsolefieri)); + this.contenta.set('patefacere', new Mantela(patefacere)); + this.contenta.set('pavefacere', new Mantela(pavefacere)); + this.contenta.set('percalfacere', new Mantela(percalfacere)); + this.contenta.set('perferre', new Mantela(perferre)); + this.contenta.set('perīre', new Mantela(perire)); + this.contenta.set('permadefacere', new Mantela(permadefacere)); + this.contenta.set('pervelle', new Mantela(pervelle)); + this.contenta.set('pervenīre', new Mantela(pervenire)); + this.contenta.set('posse', new Mantela(posse)); + this.contenta.set('postferre', new Mantela(postferre)); + this.contenta.set('praeesse', new Mantela(praeesse)); + this.contenta.set('praeterferre', new Mantela(praeterferre)); + this.contenta.set('praevenīre', new Mantela(praevenire)); + this.contenta.set('prōdesse', new Mantela(prodesse)); + this.contenta.set('prōferre', new Mantela(proferre)); + this.contenta.set('prōdīre', new Mantela(prodire)); + this.contenta.set('prōvenīre', new Mantela(provenire)); + this.contenta.set('putrefacere', new Mantela(putrefacere)); + this.contenta.set('quīre', new Mantela(quire)); + this.contenta.set('rārefacere', new Mantela(rarefacere)); + this.contenta.set('redīre', new Mantela(redire)); + this.contenta.set('referre', new Mantela(referre)); + this.contenta.set('recalfacere', new Mantela(recalfacere)); + this.contenta.set('satisfacere', new Mantela(satisfacere)); + this.contenta.set('stupefacere', new Mantela(stupefacere)); + this.contenta.set('subesse', new Mantela(subesse)); + this.contenta.set('subīre', new Mantela(subire)); + this.contenta.set('subolfacere', new Mantela(subolfacere)); + this.contenta.set('subvenīre', new Mantela(subvenire)); + this.contenta.set('sufferre', new Mantela(sufferre)); + this.contenta.set('suffierī', new Mantela(suffieri)); + this.contenta.set('superesse', new Mantela(superesse)); + this.contenta.set('superfierī', new Mantela(superfieri)); + this.contenta.set('supervenīre', new Mantela(supervenire)); + this.contenta.set('tepefacere', new Mantela(tepefacere)); + this.contenta.set('trānsabīre', new Mantela(transabire)); + this.contenta.set('trānsīre', new Mantela(transire)); + this.contenta.set('trānsvenīre', new Mantela(transvenire)); + this.contenta.set('tremefacere', new Mantela(tremefacere)); + this.contenta.set('tumefacere', new Mantela(tumefacere)); + this.contenta.set('vacuēfacere', new Mantela(vacuefacere)); + this.contenta.set('velle', new Mantela(velle)); + this.contenta.set('vēnīre', new Mantela(venire)); + this.contenta.set('venīre', new Mantela(venireRectum)); + } +} diff --git a/src/anomala/adiectiva.ts b/src/anomala/adiectiva.ts new file mode 100644 index 0000000..0047b25 --- /dev/null +++ b/src/anomala/adiectiva.ts @@ -0,0 +1,192 @@ +import Anomala, { Mantela } from './anomala'; +import { Encliticum } from '../miscella/enumerationes'; +import Ignavum from '../miscella/ignavum'; +import { AdiectivumAgendum, Incomparabile } from '../praebeunda/agenda'; +import Structor from '../praebeunda/structor'; +import { Adiectivum } from '../praebeunda/verba'; +import TabulaCollata from '../tabulae/collata'; +import TabulaConiuncta from '../tabulae/coniuncta'; +import TabulaRescripta from '../tabulae/rescriptae/rescripta'; +import TabulaSuffixa from '../tabulae/rescriptae/suffixa'; +import TabulaScapalis from '../tabulae/scapalis'; + +export default class Adiectiva extends Anomala { + static se: Ignavum = new Ignavum(() => new Adiectiva); + + protected override async numeretur (): Promise { + const frugi: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/adiectiva/frūgī', positor: Adiectivum.positor })); + const mille: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/adiectiva/mīlle', positor: Adiectivum.positor })); + const nequam: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/adiectiva/nēquam', positor: Adiectivum.positor })); + const satis: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/adiectiva/satis', positor: Adiectivum.positor })); + + const decimum: Ignavum = new Ignavum(() => new Structor(() => new Incomparabile) + .ponatur(adiectivum => adiectivum.nominativum = 'decimum') + .ponatur(adiectivum => adiectivum.nominativum = 'decimī') + .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda') + .struatur()); + + const utrum: Ignavum = new Ignavum(() => new Structor(() => new Incomparabile) + .ponatur(adiectivum => adiectivum.nominativum = 'utrum') + .ponatur(adiectivum => adiectivum.nominativum = 'utrī') + .ponatur(adiectivum => adiectivum.versio = 'pronominalis//cumLitteraR') + .struatur()); + + const aliud: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/adiectiva/aliud', positor: Adiectivum.positor })), + new Ignavum(() => new Structor(() => new Incomparabile) + .ponatur(adiectivum => adiectivum.nominativum = 'alium') + .ponatur(adiectivum => adiectivum.nominativum = 'aliī') + .ponatur(adiectivum => adiectivum.versio = 'pronominalis') + .struatur().putetur()) + )); + const ambo: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/adiectiva/ambō', positor: Adiectivum.positor })), + new Ignavum(() => new Structor(() => new Incomparabile) + .ponatur(adiectivum => adiectivum.nominativum = 'ambum') + .ponatur(adiectivum => adiectivum.nominativum = 'ambī') + .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda//pluralis') + .struatur().putetur()) + )); + const meum: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/adiectiva/meum', positor: Adiectivum.positor })), + new Ignavum(() => new Structor(() => new Incomparabile) + .ponatur(adiectivum => adiectivum.nominativum = 'meum') + .ponatur(adiectivum => adiectivum.nominativum = 'meī') + .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda') + .struatur().putetur()) + )); + const multum: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/adiectiva/multum', positor: Adiectivum.positor })), + new Ignavum(() => new Structor(() => new AdiectivumAgendum) + .ponatur(adiectivum => adiectivum.positivum = 'multum') + .ponatur(adiectivum => adiectivum.superlativum = 'maximum') + .ponatur(adiectivum => adiectivum.versio = 'positivaAutPrimaAutSecunda') + .struatur().putetur()) + )); + + const nonumdecimum: Ignavum> = new Ignavum(() => + new TabulaConiuncta({ + positor: Adiectivum.positor, + prima: new Ignavum(() => new Structor(() => new Incomparabile) + .ponatur(adiectivum => adiectivum.nominativum = 'nōnum') + .ponatur(adiectivum => adiectivum.nominativum = 'nōnī') + .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda') + .struatur().putetur()), + secunda: new Ignavum(() => decimum.ipse().putetur()) + })); + const octavumdecimum: Ignavum> = new Ignavum(() => + new TabulaConiuncta({ + positor: Adiectivum.positor, + prima: new Ignavum(() => new Structor(() => new Incomparabile) + .ponatur(adiectivum => adiectivum.nominativum = 'octāvum') + .ponatur(adiectivum => adiectivum.nominativum = 'octāvī') + .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda') + .struatur().putetur()), + secunda: new Ignavum(() => decimum.ipse().putetur()) + })); + const quartumdecimum: Ignavum> = new Ignavum(() => + new TabulaConiuncta({ + positor: Adiectivum.positor, + prima: new Ignavum(() => new Structor(() => new Incomparabile) + .ponatur(adiectivum => adiectivum.nominativum = 'quārtum') + .ponatur(adiectivum => adiectivum.nominativum = 'quārtī') + .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda') + .struatur().putetur()), + secunda: new Ignavum(() => decimum.ipse().putetur()) + })); + const quintumdecimum: Ignavum> = new Ignavum(() => + new TabulaConiuncta({ + positor: Adiectivum.positor, + prima: new Ignavum(() => new Structor(() => new Incomparabile) + .ponatur(adiectivum => adiectivum.nominativum = 'quīntum') + .ponatur(adiectivum => adiectivum.nominativum = 'quīntī') + .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda') + .struatur().putetur()), + secunda: new Ignavum(() => decimum.ipse().putetur()) + })); + const septimumdecimum: Ignavum> = new Ignavum(() => + new TabulaConiuncta({ + positor: Adiectivum.positor, + prima: new Ignavum(() => new Structor(() => new Incomparabile) + .ponatur(adiectivum => adiectivum.nominativum = 'septimum') + .ponatur(adiectivum => adiectivum.nominativum = 'septimī') + .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda') + .struatur().putetur()), + secunda: new Ignavum(() => decimum.ipse().putetur()) + })); + const sextumdecimum: Ignavum> = new Ignavum(() => + new TabulaConiuncta({ + positor: Adiectivum.positor, + prima: new Ignavum(() => new Structor(() => new Incomparabile) + .ponatur(adiectivum => adiectivum.nominativum = 'sextum') + .ponatur(adiectivum => adiectivum.nominativum = 'sextī') + .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda') + .struatur().putetur()), + secunda: new Ignavum(() => decimum.ipse().putetur()) + })); + const tertiumdecimum: Ignavum> = new Ignavum(() => + new TabulaConiuncta({ + positor: Adiectivum.positor, + prima: new Ignavum(() => new Structor(() => new Incomparabile) + .ponatur(adiectivum => adiectivum.nominativum = 'tertium') + .ponatur(adiectivum => adiectivum.nominativum = 'tertiī') + .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda') + .struatur().putetur()), + secunda: new Ignavum(() => decimum.ipse().putetur()) + })); + + const duo: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: ambo, + rescriptor: scriptum => scriptum.replace('amb', 'du') + })); + + const utrumque: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ + relata: new Ignavum(() => utrum.ipse()?.putetur()), + suffixum: Encliticum.Coniugans + })); + const utrumcumque: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ + relata: new Ignavum(() => utrum.ipse()?.putetur()), + suffixum: 'cum'.concat(Encliticum.Coniugans.concat()) + })); + const utrumvis: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ + relata: new Ignavum(() => utrum.ipse()?.putetur()), + suffixum: 'vīs' + })); + + this.contenta.set('aliud', new Mantela(aliud)); + this.contenta.set('ambō', new Mantela(ambo)); + this.contenta.set('duō', new Mantela(duo)); + this.contenta.set('frūgī', new Mantela(frugi)); + this.contenta.set('meum', new Mantela(meum)); + this.contenta.set('mīlle', new Mantela(mille)); + this.contenta.set('multum', new Mantela(multum)); + this.contenta.set('nēquam', new Mantela(nequam)); + this.contenta.set('nōnumdecimum', new Mantela(nonumdecimum)); + this.contenta.set('octāvumdecimum', new Mantela(octavumdecimum)); + this.contenta.set('quārtumdecimum', new Mantela(quartumdecimum)); + this.contenta.set('quīntumdecimum', new Mantela(quintumdecimum)); + this.contenta.set('satis', new Mantela(satis)); + this.contenta.set('septimumdecimum', new Mantela(septimumdecimum)); + this.contenta.set('sextumdecimum', new Mantela(sextumdecimum)); + this.contenta.set('tertiumdecimum', new Mantela(tertiumdecimum)); + this.contenta.set('utrumcumque', new Mantela(utrumcumque)); + this.contenta.set('utrumque', new Mantela(utrumque)); + this.contenta.set('utrumvīs', new Mantela(utrumvis)); + } +} diff --git a/src/anomala/anomala.ts b/src/anomala/anomala.ts new file mode 100644 index 0000000..99f453c --- /dev/null +++ b/src/anomala/anomala.ts @@ -0,0 +1,48 @@ +import Ignavum from '../miscella/ignavum'; +import Nuntius from '../miscella/nuntius'; +import { Multiplex } from '../praebeunda/verba'; +import type { Faciendum } from '../praebeunda/interfecta'; +import type Tabula from '../tabulae/tabula'; + +export class Mantela implements Faciendum { + private readonly _tabula: Ignavum>; + constructor (tabula: Ignavum>) { + this._tabula = tabula; + } + + putetur (): Tabula { + return this._tabula.ipse(); + } +} + +export default abstract class Anomala implements Disposable { + protected readonly contenta: Map> = new Map; + protected abstract numeretur (): Promise; + + @Nuntius.futurus('Anomala') + async omnia (): Promise { + if (!this.contenta.size) { + this.numeretur(); + } + + return [ ...this.contenta.keys() ].sort(); + } + + @Nuntius.futurus('Anomala') + async feratur (lemma: string): Promise | undefined> { + if (!this.contenta.size) { + this.numeretur(); + } + + return this.contenta.get(lemma); + } + + async forsFerat (): Promise | undefined> { + return this.feratur((await this.omnia()).random()); + } + + @Nuntius.finitus('Anomala') + [ Symbol.dispose ] (): void { + this.contenta.clear(); + } +} diff --git a/src/anomala/nomina.ts b/src/anomala/nomina.ts new file mode 100644 index 0000000..2aef2cb --- /dev/null +++ b/src/anomala/nomina.ts @@ -0,0 +1,308 @@ +import Anomala, { Mantela } from './anomala'; +import Ignavum from '../miscella/ignavum'; +import { NomenAgendum, NomenFactum } from '../praebeunda/agenda'; +import Structor from '../praebeunda/structor'; +import { Nomen } from '../praebeunda/verba'; +import TabulaBifissa from '../tabulae/bifissa'; +import TabulaCollata from '../tabulae/collata'; +import TabulaPraefixa from '../tabulae/rescriptae/praefixa'; +import TabulaScapalis from '../tabulae/scapalis'; +import type Tabula from '../tabulae/tabula'; + +export default class Nomina extends Anomala { + static se: Ignavum = new Ignavum(() => new Nomina); + protected override async numeretur (): Promise { + const Athos: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/nomina/Athōs', positor: Nomen.positor })); + const dare: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/nomina/dare', positor: Nomen.positor })); + const Iesus: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/nomina/Iēsūs', positor: Nomen.positor })); + const ire: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/nomina/ire', positor: Nomen.positor })); + const lexis: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/nomina/lexis', positor: Nomen.positor })); + const vices: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/nomina/vices', positor: Nomen.positor })); + const vis: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/nomina/vis', positor: Nomen.positor })); + + const balneum: Ignavum = new Ignavum(() => new TabulaBifissa({ + singularis: new Structor(() => new NomenAgendum) + .ponatur(nomen => nomen.nominativum = 'balneum') + .ponatur(nomen => nomen.genitivum = 'balneī') + .ponatur(nomen => nomen.versio = 'secundaNeutra') + .struatur(), + pluralis: new Structor(() => new NomenAgendum) + .ponatur(nomen => nomen.nominativum = 'balnea') + .ponatur(nomen => nomen.genitivum = 'balneae') + .ponatur(nomen => nomen.versio = 'prima') + .struatur() + })); + + const caelum: Ignavum = new Ignavum(() => new TabulaBifissa({ + singularis: new Structor(() => new NomenAgendum) + .ponatur(nomen => nomen.nominativum = 'caelum') + .ponatur(nomen => nomen.genitivum = 'caelī') + .ponatur(nomen => nomen.versio = 'secundaNeutra') + .struatur(), + pluralis: new Structor(() => new NomenAgendum) + .ponatur(nomen => nomen.nominativum = 'caelus') + .ponatur(nomen => nomen.genitivum = 'caelī') + .ponatur(nomen => nomen.versio = 'secundaMasculina') + .struatur() + })); + + const dea: Ignavum> = new Ignavum(() => new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/nomina/dea', positor: Nomen.positor })), + new Ignavum(() => + new Structor(() => new NomenAgendum) + .ponatur(nomen => nomen.nominativum = 'dea') + .ponatur(nomen => nomen.genitivum = 'deae') + .ponatur(nomen => nomen.versio = 'prima') + .struatur().putetur()) + )); + + const domus: Ignavum> = new Ignavum(() => new TabulaCollata( + new Ignavum(() => new TabulaScapalis({ + via: '/res/scapales/nomina/domus', + positor: Nomen.positor + })), + new Ignavum(() => new Structor(() => + new NomenAgendum) + .ponatur(nomen => nomen.nominativum = 'domus') + .ponatur(nomen => nomen.genitivum = 'domūs') + .ponatur(nomen => nomen.versio = 'quarta') + .struatur().putetur()) + )); + + const iugerum: Ignavum> = new Ignavum(() => new TabulaCollata( + new Ignavum(() => new TabulaScapalis({ + via: '/res/scapales/nomina/iūgerum', + positor: Nomen.positor + })), + new Ignavum(() => new Structor(() => + new NomenAgendum) + .ponatur(nomen => nomen.nominativum = 'iūgerum') + .ponatur(nomen => nomen.genitivum = 'iūgerī') + .ponatur(nomen => nomen.versio = 'secundaNeutra') + .struatur().putetur()) + )); + + const semidea: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: dea, praefixum: 'sēmi' })); + + const abire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'ab' })); + const circumire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'circum' })); + const coire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'co' })); + const deire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'de' })); + const disperire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'disper' })); + const exire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'ex' })); + const inire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'in' })); + const interire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'inter' })); + const introire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'intro' })); + const nequire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'nequ' })); + const obire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'ob' })); + const perire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'per' })); + const prodire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'prōd' })); + const quire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'qu' })); + const redire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'red' })); + const subire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'sub' })); + const transabire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'trānsab' })); + const transire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'trāns' })); + const venire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'vēn' })); + const dedare: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: dare, praefixum: 'dē' })); + const edare: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: dare, praefixum: 'ē' })); + + const venireRectum: Ignavum> = new Ignavum(() => + new Structor(() => new NomenFactum) + .ponatur(nomen => nomen.infinitivum = 'venīre') + .ponatur(nomen => nomen.supinum = 'ventum') + .ponatur(nomen => nomen.versio = 'quartus') + .struatur().putetur()); + + const advenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'ad' + })); + + const adinvenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'adin' + })); + + const antevenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'ante' + })); + + const circumvenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'circum' + })); + + const convenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'con' + })); + + const contravenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'contrā' + })); + + const disconvenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'discon' + })); + + const devenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'dē' + })); + + const evenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'ē' + })); + + const invenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'in' + })); + + const intervenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'inter' + })); + + const obvenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'ob' + })); + + const pervenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'per' + })); + + const praevenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'prae' + })); + + const provenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'prō' + })); + + const subvenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'sub' + })); + + const supervenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'super' + })); + + const transvenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'trāns' + })); + + this.contenta.set('abīre', new Mantela(abire)); + this.contenta.set('advenīre', new Mantela(advenire)); + this.contenta.set('adinvenīre', new Mantela(adinvenire)); + this.contenta.set('antevenīre', new Mantela(antevenire)); + this.contenta.set('Athōs', new Mantela(Athos)); + this.contenta.set('balneum', new Mantela(balneum)); + this.contenta.set('caelum', new Mantela(caelum)); + this.contenta.set('circumīre', new Mantela(circumire)); + this.contenta.set('circumvenīre', new Mantela(circumvenire)); + this.contenta.set('coīre', new Mantela(coire)); + this.contenta.set('convenīre', new Mantela(convenire)); + this.contenta.set('contrāvenīre', new Mantela(contravenire)); + this.contenta.set('dare', new Mantela(dare)); + this.contenta.set('dēdare', new Mantela(dedare)); + this.contenta.set('dea', new Mantela(dea)); + this.contenta.set('deīre', new Mantela(deire)); + this.contenta.set('dēvenīre', new Mantela(devenire)); + this.contenta.set('disconvenīre', new Mantela(disconvenire)); + this.contenta.set('disperīre', new Mantela(disperire)); + this.contenta.set('domus', new Mantela(domus)); + this.contenta.set('ēdare', new Mantela(edare)); + this.contenta.set('ēvenīre', new Mantela(evenire)); + this.contenta.set('exīre', new Mantela(exire)); + this.contenta.set('Iēsūs', new Mantela(Iesus)); + this.contenta.set('inīre', new Mantela(inire)); + this.contenta.set('interīre', new Mantela(interire)); + this.contenta.set('intervenīre', new Mantela(intervenire)); + this.contenta.set('invenīre', new Mantela(invenire)); + this.contenta.set('introīre', new Mantela(introire)); + this.contenta.set('īre', new Mantela(ire)); + this.contenta.set('iūgerum', new Mantela(iugerum)); + this.contenta.set('lexis', new Mantela(lexis)); + this.contenta.set('nequīre', new Mantela(nequire)); + this.contenta.set('obīre', new Mantela(obire)); + this.contenta.set('obvenīre', new Mantela(obvenire)); + this.contenta.set('perīre', new Mantela(perire)); + this.contenta.set('prōvenīre', new Mantela(provenire)); + this.contenta.set('prōdīre', new Mantela(prodire)); + this.contenta.set('pervenīre', new Mantela(pervenire)); + this.contenta.set('praevenīre', new Mantela(praevenire)); + this.contenta.set('quīre', new Mantela(quire)); + this.contenta.set('redīre', new Mantela(redire)); + this.contenta.set('sēmidea', new Mantela(semidea)); + this.contenta.set('subīre', new Mantela(subire)); + this.contenta.set('subvenīre', new Mantela(subvenire)); + this.contenta.set('supervenīre', new Mantela(supervenire)); + this.contenta.set('trānsabīre', new Mantela(transabire)); + this.contenta.set('trānsīre', new Mantela(transire)); + this.contenta.set('trānsvenīre', new Mantela(transvenire)); + this.contenta.set('venīre', new Mantela(venireRectum)); + this.contenta.set('vēnīre', new Mantela(venire)); + this.contenta.set('vicēs', new Mantela(vices)); + this.contenta.set('vīs', new Mantela(vis)); + } +} diff --git a/src/anomala/pronomina.ts b/src/anomala/pronomina.ts new file mode 100644 index 0000000..65a5d19 --- /dev/null +++ b/src/anomala/pronomina.ts @@ -0,0 +1,181 @@ +import Anomala, { Mantela } from './anomala'; +import { Encliticum } from '../miscella/enumerationes'; +import Ignavum from '../miscella/ignavum'; +import Nuntius from '../miscella/nuntius'; +import { Pronomen } from '../praebeunda/verba'; +import TabulaCollata from '../tabulae/collata'; +import TabulaCircumfixa from '../tabulae/rescriptae/circumfixa'; +import TabulaPraefixa from '../tabulae/rescriptae/praefixa'; +import TabulaRescripta from '../tabulae/rescriptae/rescripta'; +import TabulaSuffixa from '../tabulae/rescriptae/suffixa'; +import TabulaScapalis from '../tabulae/scapalis'; + +export default class Pronomina extends Anomala { + static se: Ignavum = new Ignavum(() => new Pronomina); + + protected async numeretur (): Promise { + const ego: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/pronomina/ego', positor: Pronomen.positor })); + const hoc: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/pronomina/hoc', positor: Pronomen.positor })); + const id: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/pronomina/id', positor: Pronomen.positor })); + const illud: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/pronomina/illud', positor: Pronomen.positor })); + const se: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/pronomina/sē', positor: Pronomen.positor })); + + const egomet: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: ego, suffixum: 'met' })); + + const idem: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: id, + rescriptor (scriptum: string): string { + switch (scriptum) { + case 'is': + case 'eī': + return 'īdem'; + default: + return scriptum.concat('dem'); + } + }, + })); + + const ipsum: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum>(() => + new TabulaScapalis({ via: '/res/scapales/pronomina/ipsum', positor: Pronomen.positor })), + new Ignavum>(() => + new TabulaRescripta({ + relata: illud, + rescriptor: scriptum => scriptum.replace('ill', 'ips') + })) + )); + + const istud: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: illud, + rescriptor: scriptum => scriptum.replace('ll', 'st') + })); + + const quid: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: id, + rescriptor (scriptum: string): string { + switch (scriptum) { + case 'ea': + case 'eae': + return 'quae'; + case 'eum': + return 'quem'; + case 'eius': + return 'cuius'; + default: + return scriptum.replace('e', 'qu'); + } + }, + })); + + const quod: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: quid, + rescriptor (scriptum: string): string { + switch (scriptum) { + case 'quid': + return 'quod'; + case 'quis': + return 'quī'; + default: + return scriptum; + } + }, + })); + + const tu: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum>(() => + new TabulaScapalis({ via: '/res/scapales/pronomina/tū', positor: Pronomen.positor })), + new Ignavum>(() => + new TabulaRescripta({ + relata: se, + rescriptor: scriptum => scriptum.replace('s', 't') + })) + )); + + const aliquid: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: quid, praefixum: 'ali' })); + const aliquod: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: quod, praefixum: 'ali' })); + const aliquodpiam: Ignavum> = new Ignavum(() => + new TabulaCircumfixa({ relata: quod, praefixum: 'ali', suffixum: 'piam' })); + + const ecquid: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: quid, + rescriptor: scriptum => scriptum === 'cuius' ? 'ecculus' : 'ec'.concat(scriptum) + })); + + const ecquod: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: quod, praefixum: 'ec' })); + const quidnam: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: quid, suffixum: 'nam' })); + const quidpiam: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: quid, suffixum: 'piam' })); + const quidquam: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: quid, suffixum: 'quam' })); + const quidque: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: quid, suffixum: Encliticum.Coniugans })); + const quidvis: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: quid, suffixum: 'vīs' })); + const quodnam: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: quod, suffixum: 'nam' })); + const quodpiam: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: quod, suffixum: 'piam' })); + const quodvis: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: quod, suffixum: 'vīs' })); + const semet: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: se, suffixum: 'met' })); + + const tute: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: tu, + rescriptor: scriptum => scriptum === 'tū' ? 'tūte' : scriptum + })); + + const tutemet: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ + relata: tute, + suffixum: 'met' + })); + + this.contenta.set('aliquid', new Mantela(aliquid)); + this.contenta.set('aliquod', new Mantela(aliquod)); + this.contenta.set('aliquodpiam', new Mantela(aliquodpiam)); + this.contenta.set('ecquid', new Mantela(ecquid)); + this.contenta.set('ecquod', new Mantela(ecquod)); + this.contenta.set('ego', new Mantela(ego)); + this.contenta.set('egomet', new Mantela(egomet)); + this.contenta.set('hoc', new Mantela(hoc)); + this.contenta.set('id', new Mantela(id)); + this.contenta.set('idem', new Mantela(idem)); + this.contenta.set('illud', new Mantela(illud)); + this.contenta.set('ipsum', new Mantela(ipsum)); + this.contenta.set('istud', new Mantela(istud)); + this.contenta.set('quid', new Mantela(quid)); + this.contenta.set('quidnam', new Mantela(quidnam)); + this.contenta.set('quidpiam', new Mantela(quidpiam)); + this.contenta.set('quidquam', new Mantela(quidquam)); + this.contenta.set('quidque', new Mantela(quidque)); + this.contenta.set('quidvīs', new Mantela(quidvis)); + this.contenta.set('quod', new Mantela(quod)); + this.contenta.set('quodnam', new Mantela(quodnam)); + this.contenta.set('quodpiam', new Mantela(quodpiam)); + this.contenta.set('quodvīs', new Mantela(quodvis)); + this.contenta.set('sē', new Mantela(se)); + this.contenta.set('sēmet', new Mantela(semet)); + this.contenta.set('tū', new Mantela(tu)); + this.contenta.set('tūte', new Mantela(tute)); + this.contenta.set('tūtemet', new Mantela(tutemet)); + } +} diff --git a/src/extensions/array.ts b/src/extensions/array.ts new file mode 100644 index 0000000..03eb708 --- /dev/null +++ b/src/extensions/array.ts @@ -0,0 +1,50 @@ +export { } + +declare global { + interface Array { + first(predicate?: (param: any) => boolean): T; + last(predicate?: (param: any) => boolean): T; + random(): T; + none(predicate?: (param: any) => boolean): boolean; + all(): boolean; + any(): boolean; + } +} + +Array.prototype.first = function(predicate?: (param: any) => boolean): T { + if (predicate) { + const copy: T[] = this.filter(predicate); + return copy[ 0 ]; + } else { + return this[ 0 ]; + } +} + +Array.prototype.last = function(predicate?: (param: any) => boolean): T { + if (predicate) { + const copy: T[] = this.filter(predicate); + return copy.at(-1) ?? copy[ this.length - 1 ]; + } else { + return this.at(-1) ?? this[ this.length - 1 ]; + } +} + +Array.prototype.random = function(): T { + return this[ Math.floor(Math.random() * this.length) ]; +} + +Array.prototype.none = function(predicate?: (param: any) => boolean): boolean { + if (predicate) { + return !this.some(predicate); + } else { + return !this.some((status) => !!status); + } +} + +Array.prototype.all = function(): boolean { + return this.every((status) => !!status); +} + +Array.prototype.any = function(): boolean { + return this.some((status) => !!status); +} diff --git a/src/extensions/string.ts b/src/extensions/string.ts new file mode 100644 index 0000000..69b0b85 --- /dev/null +++ b/src/extensions/string.ts @@ -0,0 +1,52 @@ +export { } + +const apices: Map = new Map; +apices.set('Ā', 'A'); +apices.set('Ē', 'E'); +apices.set('Ī', 'I'); +apices.set('Ō', 'O'); +apices.set('Ū', 'U'); +apices.set('Ȳ', 'Y'); +apices.set('ā', 'a'); +apices.set('ē', 'e'); +apices.set('ī', 'i'); +apices.set('ō', 'o'); +apices.set('ū', 'u'); +apices.set('ȳ', 'y'); + +declare global { + interface String { + chop(length: number): string; + startsWithConsonant(): boolean; + startsWithVowel(): boolean; + removeMacra(): string; + capitalize(): string; + } +} + +String.prototype.chop = function(length: number): string { + return this.slice(0, -1 * length); +} + +String.prototype.startsWithConsonant = function(): boolean { + const first: string | undefined = this.at(0); + return !!first && 'bcdfgklmnpqrstxz'.includes(first.toLowerCase()); +} + +String.prototype.startsWithVowel = function(): boolean { + return !this.startsWithConsonant(); +} + +String.prototype.removeMacra = function(): string { + if ([ ...this ].some(letter => apices.has(letter))) { + let copy: String = this; + apices.forEach(entry => copy = copy.replace(entry[0], entry[1])); + return copy as string; + } else { + return this as string; + } +} + +String.prototype.capitalize = function(): string { + return (this.at(0) ?? '').toUpperCase().concat(this.slice(1)); +} diff --git a/src/facies/404.vue b/src/facies/404.vue new file mode 100644 index 0000000..f3e4292 --- /dev/null +++ b/src/facies/404.vue @@ -0,0 +1,44 @@ + + + diff --git a/src/facies/app.vue b/src/facies/app.vue new file mode 100644 index 0000000..e538c60 --- /dev/null +++ b/src/facies/app.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/facies/calculare.vue b/src/facies/calculare.vue new file mode 100644 index 0000000..5102ab8 --- /dev/null +++ b/src/facies/calculare.vue @@ -0,0 +1,118 @@ + + + diff --git a/src/facies/inflectere.vue b/src/facies/inflectere.vue new file mode 100644 index 0000000..4a19194 --- /dev/null +++ b/src/facies/inflectere.vue @@ -0,0 +1,213 @@ + + + + + diff --git a/src/facies/loqui.vue b/src/facies/loqui.vue new file mode 100644 index 0000000..88e8f33 --- /dev/null +++ b/src/facies/loqui.vue @@ -0,0 +1,70 @@ + + + diff --git a/src/facies/numerare.vue b/src/facies/numerare.vue new file mode 100644 index 0000000..a2052fb --- /dev/null +++ b/src/facies/numerare.vue @@ -0,0 +1,70 @@ + + + diff --git a/src/facies/quaerere.vue b/src/facies/quaerere.vue new file mode 100644 index 0000000..18416fc --- /dev/null +++ b/src/facies/quaerere.vue @@ -0,0 +1,154 @@ + + + diff --git a/src/facies/specere.vue b/src/facies/specere.vue new file mode 100644 index 0000000..3ad2d7f --- /dev/null +++ b/src/facies/specere.vue @@ -0,0 +1,72 @@ + + + diff --git a/src/lectores/lector.ts b/src/lectores/lector.ts new file mode 100644 index 0000000..88ad808 --- /dev/null +++ b/src/lectores/lector.ts @@ -0,0 +1,64 @@ +import file from 'file-fetch'; +import path from 'path'; +import Nuntius from '../miscella/nuntius'; +import * as Verba from '../praebeunda/verba'; +import { type Agendum } from '../praebeunda/agenda'; + +export function LectorAgendorum (scapum?: string): Lector[]> { + return new Lector[]>(scapum); +} + +@Nuntius.factum('Lector') +export default class Lector { + protected readonly _scapum: string; + + constructor (scapum: string = '') { + if (scapum.startsWith('/res')) { + this._scapum = scapum; + } else { + this._scapum = path.join('/res', scapum); + } + } + + protected viator (via: string): string { + return this._scapum ? + path.join(this._scapum, via.concat('.csv')) : + via.concat('.csv'); + } + + private async aperiatur (via: string): Promise { + const corpus: Body = await file(new URL(this.viator(via))); + return (corpus as Response).ok ? (await corpus.text()).trim() : ''; + } + + @Nuntius.futurus('Lector') + async legatur (lemma: string): Promise { + const data: string = await this.aperiatur(lemma); + if (data) { + const { parse } = require('comma-separated-values'); + try { + const hoc: Hoc = parse(data, { header: true }) as Hoc; + if (hoc) { + Nuntius.plusGarrio({ + nomen: 'Lector', + nuntium: `Lemma invenita'st ${lemma} ` + }); + + return hoc; + } + } catch (error) { + Nuntius.timeo({ + nomen: 'Lector', + error: error as Error + }); + } + } + + Nuntius.plusGarrio({ + nomen: 'Lector', + nuntium: `Lemma nulla'st ${lemma}` + }); + + return null; + } +} diff --git a/src/lectores/verbalis.ts b/src/lectores/verbalis.ts new file mode 100644 index 0000000..db031df --- /dev/null +++ b/src/lectores/verbalis.ts @@ -0,0 +1,43 @@ +import listFiles from 'list-files-in-dir'; +import path from 'path'; +import Lector from './lector'; +import Ignavum from '../miscella/ignavum'; +import Nuntius from '../miscella/nuntius'; +import * as Agenda from '../praebeunda/agenda'; +import { type Lectum } from '../praebeunda/interfecta'; + + +@Nuntius.factum('LectorVerbalis') +export default class LectorVerbalis extends Lector { + static Actuum: Ignavum> = new Ignavum(() => + new LectorVerbalis('/res/lemmae/actus')); + static Adverbiorum: Ignavum> = new Ignavum(() => + new LectorVerbalis('/res/lemmae/adverbia')); + static Numeraminum: Ignavum> = new Ignavum(() => + new LectorVerbalis('/res/lemmae/numeramina')); + + static Adiectivorum: Ignavum> = new Ignavum(() => + new LectorVerbalis('/res/lemmae/adiectiva')); + static Incomparabilium: Ignavum> = new Ignavum(() => + new LectorVerbalis('/res/lemmae/adiectiva/incomparabilia')); + + static Nominum: Ignavum> = new Ignavum(() => + new LectorVerbalis('/res/lemmae/nomina')); + static NominumFactorum: Ignavum> = new Ignavum(() => + new LectorVerbalis('/res/lemmae/nomina/facta')); + + protected constructor (scapum?: string) { + super(scapum); + } + + @Nuntius.futurus('LectorVerbalis') + async omnia (): Promise { + return (await listFiles.listFiles(this._scapum, 'csv')) + .map(res => path.parse(res).name).sort(); + } + + @Nuntius.futurus('LectorVerbalis') + async forsLegat (): Promise { + return await this.legatur((await this.omnia()).random()); + } +} diff --git a/src/lectores/verbi.ts b/src/lectores/verbi.ts new file mode 100644 index 0000000..f67a7d4 --- /dev/null +++ b/src/lectores/verbi.ts @@ -0,0 +1,29 @@ +import LectorVerbalis from './verbalis'; +import Ignavum from '../miscella/ignavum'; +import Nuntius from '../miscella/nuntius'; +import type { Verbum } from '../praebeunda/verba'; + +@Nuntius.factum('LectorVerbi') +export class LectorVerbi extends LectorVerbalis { + static se: Ignavum = new Ignavum(() => new LectorVerbi); + private constructor() { + super('/res/lemmae/verba'); + } + + @Nuntius.futurus('LectorVerbi') + override async omnia (): Promise { + const ordo: string[] = []; + (await super.omnia()).forEach(async lemma => { + const verbum: Verbum | null = (await super.legatur(lemma)); + if (verbum) { + ordo.push([ + verbum.categoria, + verbum.scriptum + ].join('/')); + } + }); + + return ordo; + } + +} diff --git a/src/miscella/cocutor.ts b/src/miscella/cocutor.ts new file mode 100644 index 0000000..e98da7a --- /dev/null +++ b/src/miscella/cocutor.ts @@ -0,0 +1,59 @@ +import { getCookie, removeCookie, setCookie } from 'typescript-cookie'; +import Ignavum from './ignavum'; +import Nuntius from './nuntius'; +import type { CookieAttributes } from 'node_modules/typescript-cookie/dist/types'; + +export type Crustulum = { + nomen: string, + valor: string; +}; + +@Nuntius.factum('Cocutor') +export default class Cocutor { + static se: Ignavum = new Ignavum(() => new Cocutor); + + private readonly _optiones: CookieAttributes = { + domain: 'conans', + expires: 30, + sameSite: 'strict', + secure: true + }; + + @Nuntius.modus('Cocutor') + coquatur (crustulum: Crustulum): void { + setCookie(crustulum.nomen, crustulum.valor, this._optiones); + } + + @Nuntius.modus('Cocutor') + edatur (nomen: string): string | undefined { + return getCookie(nomen); + } + + @Nuntius.modus('Cocutor') + voreatur (nomen: string): string | undefined { + const esum: string | undefined = this.edatur(nomen); + removeCookie(nomen, { + domain: this._optiones.domain + }); + + return esum; + } + + @Nuntius.modus('Cocutor') + coctust (nomen: string): boolean { + return !!this.edatur(nomen); + } + + @Nuntius.modus('Cocutor') + est(nomen: string): boolean | undefined { + const valor: string | undefined = this.edatur(nomen); + switch(valor) { + case 'ita': + return true; + case 'non': + return false; + default: + return undefined; + } + } +} diff --git a/src/miscella/dictionarium.ts b/src/miscella/dictionarium.ts new file mode 100644 index 0000000..8612d90 --- /dev/null +++ b/src/miscella/dictionarium.ts @@ -0,0 +1,309 @@ +import deepEqual from 'deep-equal'; +import Ignavum from './ignavum'; +import Nuntius from './nuntius'; +import Actus from '../anomala/actus'; +import Adiectiva from '../anomala/adiectiva'; +import Nomina from '../anomala/nomina'; +import Pronomina from '../anomala/pronomina'; +import LectorVerbalis from '../lectores/verbalis'; +import { LectorVerbi } from '../lectores/verbi'; +import * as Agenda from '../praebeunda/agenda'; +import { Verbum, type Pronomen } from '../praebeunda/verba'; +import { type Referendum } from '../praebeunda/interfecta'; +import { type Mantela } from '../anomala/anomala'; + +export type Lemma = { + categoria: string, + scriptum: string; +}; + +export type Relatum = { + lemma: Lemma, + lecta: boolean; +}; + +export type Quaerenda = { + pars: string, + categoriae: string[] +} + +export type Eventus = { + referendum: Referendum; + categoria: string +} + +@Nuntius.factum('Dictionarium') +export default class Dictionarium { + static se: Ignavum = new Ignavum(() => new Dictionarium); + + private readonly _lectorActuum: Ignavum> = + LectorVerbalis.Actuum; + private readonly _lectorAdverbiorum: Ignavum> = + LectorVerbalis.Adverbiorum; + private readonly _lectorAdiectivorum: Ignavum> = + LectorVerbalis.Adiectivorum; + private readonly _lectorIncomparabilium: Ignavum> = + LectorVerbalis.Incomparabilium; + private readonly _lectorNominis: Ignavum> = + LectorVerbalis.Nominum; + private readonly _lectorNumeraminis: Ignavum> = + LectorVerbalis.Numeraminum; + private readonly _lector: Ignavum = LectorVerbi.se; + + private readonly _pronomina: Ignavum = Pronomina.se; + private readonly _actus: Ignavum = Actus.se; + private readonly _adiectiva: Ignavum = Adiectiva.se; + private readonly _nomina: Ignavum = Nomina.se; + + relata: Relatum[] = []; + + @Nuntius.futurus('Dictionarium') + async perscribantur (): Promise { + if (!(this.relata?.length)) { + this.relata = []; + const lectorActus: LectorVerbalis = this._lectorActuum.ipse(); + (await lectorActus.omnia()).forEach(res => { + this.relata.push({ + lemma: { + categoria: 'Actus', + scriptum: res + }, lecta: true + }); + + this.relata.push({ + lemma: { + categoria: 'Nomen', + scriptum: res + }, lecta: true + }); + }); + + const lectorAdverbiorum: LectorVerbalis = this._lectorAdverbiorum.ipse(); + (await lectorAdverbiorum.omnia()).forEach(res => { + this.relata.push({ + lemma: { + categoria: 'Adverbium', + scriptum: res + }, lecta: true + }); + }); + + const lectorAdiectivorum: LectorVerbalis = this._lectorAdiectivorum.ipse(); + (await lectorAdiectivorum.omnia()).forEach(res => { + this.relata.push({ + lemma: { + categoria: 'Adiectivum', + scriptum: res + }, lecta: true + }); + }); + + const lectorIncomparabilium: LectorVerbalis = this._lectorIncomparabilium.ipse(); + (await lectorIncomparabilium.omnia()).forEach(res => { + this.relata.push({ + lemma: { + categoria: 'Adiectivum', + scriptum: res + }, lecta: true + }); + }); + + const lectorNominis: LectorVerbalis = this._lectorNominis.ipse(); + (await lectorNominis.omnia()).forEach(res => { + this.relata.push({ + lemma: { + categoria: 'Nomen', + scriptum: res + }, lecta: true + }); + }); + + const lectorNumeraminis: LectorVerbalis = this._lectorNumeraminis.ipse(); + (await lectorNumeraminis.omnia()).forEach(res => { + this.relata.push({ + lemma: { + categoria: 'Numeramen', + scriptum: res + }, lecta: true + }); + }); + + const pronomina: Pronomina = this._pronomina.ipse(); + (await pronomina.omnia()).forEach(res => { + this.relata.push({ + lemma: { + categoria: 'Pronomen', + scriptum: res + }, lecta: false + }); + }); + + const actus: Actus = this._actus.ipse(); + (await actus.omnia()).forEach(res => { + this.relata.push({ + lemma: { + categoria: 'Actus', + scriptum: res + }, lecta: false + }); + }); + + const adiectiva: Adiectiva = this._adiectiva.ipse(); + (await adiectiva.omnia()).forEach(res => { + this.relata.push({ + lemma: { + categoria: 'Adiectivum', + scriptum: res + }, lecta: false + }); + }); + + const nomina: Nomina = this._nomina.ipse(); + (await nomina.omnia()).forEach(res => { + this.relata.push({ + lemma: { + categoria: 'Nomen', + scriptum: res + }, lecta: false + }); + }); + + const lector: LectorVerbalis = this._lector.ipse(); + (await lector.omnia()).forEach(res => { + const [ categoria, scriptum ] = res.split('/'); + this.relata.push({ + lemma: { + categoria: categoria, + scriptum: scriptum + }, lecta: true + }); + }); + } + } + + @Nuntius.futurus('Dictionarium') + async referatur (lemma: Lemma): Promise { + const lecta: boolean = this.relata.first(relatum => deepEqual(lemma, relatum.lemma))?.lecta ?? false; + switch (lemma.categoria.toLowerCase()) { + case 'actus': + if (lecta) { + const lectorActuum: LectorVerbalis = this._lectorActuum.ipse(); + const actus: Referendum | null = await lectorActuum.legatur(lemma.scriptum); + return actus ? { + referendum: actus, + categoria: lemma.categoria.toLowerCase() + } : null; + } else { + using actus: Actus = this._actus.ipse(); + const referendum: Referendum | null = await actus.feratur(lemma.scriptum) ?? null; + return referendum ? { + referendum: referendum, + categoria: lemma.categoria.toLowerCase() + } : null; + } + case 'adiectivum': + if (lecta) { + const lectorAdiectivorum: LectorVerbalis = this._lectorAdiectivorum.ipse(); + if ((await lectorAdiectivorum.omnia()).includes(lemma.scriptum)) { + const adiectivum: Referendum | null = await lectorAdiectivorum.legatur(lemma.scriptum); + return adiectivum ? { + referendum: adiectivum, + categoria: lemma.categoria.toLowerCase() + } : null; + } else { + const lectorIncomparabilium: LectorVerbalis = this._lectorIncomparabilium.ipse(); + const incomparabile: Referendum | null = await lectorIncomparabilium.legatur(lemma.scriptum); + return incomparabile ? { + referendum: incomparabile, + categoria: lemma.categoria.toLowerCase() + } : null; + } + } else { + using adiectiva: Adiectiva = this._adiectiva.ipse(); + const referendum: Referendum | null = await adiectiva.feratur(lemma.scriptum) ?? null; + return referendum ? { + referendum: referendum, + categoria: lemma.categoria.toLowerCase() + } : null; + } + case 'adverbium': + const lectorAdverbium: LectorVerbalis = this._lectorAdverbiorum.ipse(); + const adverbium: Referendum | null = await lectorAdverbium.legatur(lemma.scriptum); + return adverbium ? { + referendum: adverbium, + categoria: lemma.categoria.toLowerCase() + } : null; + case 'nomen': + if (lecta) { + const lectorActuum: LectorVerbalis = this._lectorActuum.ipse(); + if ((await lectorActuum.omnia()).includes(lemma.scriptum)) { + const nomen: Referendum | null = await (await lectorActuum.legatur(lemma.scriptum))?.nomen() ?? null; + return nomen ? { + referendum: nomen, + categoria: lemma.categoria.toLowerCase() + } : null; + } else { + const lectorNominis: LectorVerbalis = this._lectorNominis.ipse(); + const nomen: Referendum | null = await lectorNominis.legatur(lemma.scriptum); + return nomen ? { + referendum: nomen, + categoria: lemma.categoria.toLowerCase() + } : null; + } + } else { + using nomina: Nomina = this._nomina.ipse(); + const nomen: Referendum | null = await nomina.feratur(lemma.scriptum) ?? null; + return nomen ? { + referendum: nomen, + categoria: lemma.categoria.toLowerCase() + } : null; + } + case 'numeramen': + const lectorNumeraminis: LectorVerbalis = this._lectorNumeraminis.ipse(); + const numeramen: Referendum | null = await lectorNumeraminis.legatur(lemma.scriptum); + return numeramen ? { + referendum: numeramen, + categoria: lemma.categoria.toLowerCase() + } : null; + case 'promomen': + using pronomina: Pronomina = this._pronomina.ipse(); + const pronomen: Mantela | null = await pronomina.feratur(lemma.scriptum) ?? null; + return pronomen ? { + referendum: pronomen, + categoria: lemma.categoria.toLowerCase() + } : null; + default: + const lector: LectorVerbalis = this._lector.ipse(); + const verbum: Verbum | null = await lector.legatur(lemma.scriptum); + return verbum ? { + referendum: verbum, + categoria: lemma.categoria.toLowerCase() + } : null; + } + } + + @Nuntius.futurus('Dictionarium') + async quaeratur(quaerenda: Quaerenda): Promise { + switch (true) { + case [ !!quaerenda.categoriae, !!quaerenda.pars ].all(): + return this.relata + .filter(relatum => [ + relatum.lemma.scriptum.includes(quaerenda.pars), + quaerenda.categoriae.includes(relatum.lemma.categoria) + ].all()).map(relatum => relatum.lemma); + case [ !!quaerenda.categoriae, !quaerenda.pars ].all(): + return this.relata + .filter(relatum => quaerenda.categoriae.includes(relatum.lemma.categoria)) + .map(relatum => relatum.lemma); + case [ !quaerenda.categoriae, !!quaerenda.pars ].all(): + return this.relata + .filter(relatum => relatum.lemma.scriptum.includes(quaerenda.pars)) + .map(relatum => relatum.lemma); + case [ !quaerenda.categoriae, !quaerenda.pars ].all(): + return this.relata + .map(relatum => relatum.lemma); + default: + return []; + } + } +} diff --git a/src/miscella/enumerationes.ts b/src/miscella/enumerationes.ts new file mode 100644 index 0000000..1003e7a --- /dev/null +++ b/src/miscella/enumerationes.ts @@ -0,0 +1,155 @@ +export enum Encliticum { + Nolens = '', + Interrogans = 'ne', + Coniugans = 'que', + Eligens = 've' +} + +export enum Mensa { + Ianuarius = 1, + Februarius, + Mars, + Aprilis, + Maius, + Iunius, + Iulius, + Augustus, + September, + October, + November, + December +} + +// Operator + +export const categoriae: string[] = [ 'actus', 'adiectivum', 'adverbium', 'coniunctio', 'nomen', 'numeramen', 'numerus', 'praepositio', 'pronomen' ]; +export const casus: string[] = [ 'derectus', 'nominativus', 'genitivus', 'dativus', 'accusativus', 'ablativus', 'vocativus', 'locativus' ]; +export const facta: string[] = [ 'infintivus', 'gerundium', 'supinum' ]; +export const genera: string[] = [ 'neutrum', 'masculinum', 'femininum' ]; +export const gradi: string[] = [ 'positivus', 'comparativus', 'superlativus' ]; +export const modi: string[] = [ 'indicativus', 'subiunctivus', 'infinitivus', 'imperativus', 'participalis' ]; +export const numerales: string[] = [ 'singularis', 'pluralis' ]; +export const numeria: string[] = [ 'numerus', 'ordinale', 'cardinale', 'adverbium', 'multiplicativum', 'distributivum', 'fractionale' ]; +export const personae: string[] = [ 'prima', 'secunda', 'tertia' ]; +export const tempora: string[] = [ 'praesens', 'infectum', 'futurum', 'perfectum', 'plusquamperfectum', 'exigendum' ]; +export const voces: string[] = [ 'activa', 'passiva' ]; + +export function anglicum(valor: string) { + switch (valor) { + case 'actus': + return 'verb' + case 'adiectivum': + return 'adjective' + case 'adverbium': + return 'adverb' + case 'coniunctio': + return 'conjunction' + case 'nomen': + return 'noun' + case 'numeramen': + case 'numerus': + case 'numeralis': + return 'numeral' + case 'praepositio': + return 'preposition' + case 'pronomen': + return 'pronoun' + case 'derectus': + return 'direct' + case 'nominativus': + return 'nominative' + case 'genitivus': + return 'genitive' + case 'dativus': + return 'dative' + case 'accusativus': + return 'accusative' + case 'ablativus': + return 'ablative' + case 'locativus': + return 'locative' + case 'vocativus': + return 'vocative' + case 'infinitivus': + return 'infinitive' + case 'gerundium': + return 'gerund' + case 'supinum': + return 'supine' + case 'neutrum': + return 'neuter' + case 'masculinum': + return 'masculine' + case 'femininum': + return 'feminine' + case 'positivus': + return 'positive' + case 'comparativus': + return 'comparative' + case 'superlativus': + return 'superlative' + case 'indicativus': + return 'indicative' + case 'subiunctivus': + return 'subjunctive' + case 'imperativus': + return 'imperative' + case 'participalis': + return 'participle' + case 'singularis': + return 'singular' + case 'pluralis': + return 'plural' + case 'ordinale': + return 'ordinal' + case 'cardinale': + return 'cardinal' + case 'distributivum': + return 'distributive' + case 'multiplicativum': + return 'multiplicative' + case 'fractionale': + return 'fractional' + case 'prima': + return 'first' + case 'secunda': + return 'second' + case 'tertia': + return 'third' + case 'praesens': + return 'present' + case 'infectum': + return 'imperfect' + case 'futurum': + return 'future' + case 'perfectum': + return 'perfect' + case 'plusquamperfectum': + return 'plu-perfect' + case 'exigendum': + return 'future-perfect' + case 'activa': + return 'active' + case 'passiva': + return 'passive' + case 'modus': + return 'mode'; + case 'vox': + return 'voice' + case 'tempus': + return 'tense' + case 'persona': + return 'person' + case 'genus': + return 'gender' + case 'gradus': + return 'grade' + case 'casus': + return 'case' + case 'factum': + case 'numerium': + return 'reference' + default: + return ''; + } +} diff --git a/src/miscella/ignavum.ts b/src/miscella/ignavum.ts new file mode 100644 index 0000000..1bcc866 --- /dev/null +++ b/src/miscella/ignavum.ts @@ -0,0 +1,12 @@ +type Generator = () => Hoc; +export default class Ignavum { + private _se?: Hoc; + private readonly _generator: Generator; + constructor (generator: Generator) { + this._generator = generator; + } + + ipse (): Hoc { + return this._se ?? (this._se = this._generator()); + } +} diff --git a/src/miscella/locutor.ts b/src/miscella/locutor.ts new file mode 100644 index 0000000..e83d629 --- /dev/null +++ b/src/miscella/locutor.ts @@ -0,0 +1,120 @@ +import Cocutor from './cocutor'; +import Ignavum from './ignavum'; +import Nuntius from './nuntius'; +import { Verbum } from '../praebeunda/verba'; + +@Nuntius.factum('Locutor') +export default class Locutor { + static se: Ignavum = new Ignavum(() => new Locutor); + + private readonly cocutor: Cocutor = Cocutor.se.ipse(); + + private _verba: Verbum[]; + private apices?: boolean; + private utendaU?: boolean; + private magnas?: boolean; + private separator?: string; + + constructor () { + this._verba = []; + this.veliferum(); + } + + locutust(): boolean { + return this._verba.length > 0; + } + + private veliferum(): void { + this.apices = this.cocutor.est('apices') ?? true; + this.utendaU = this.cocutor.est('utendaU') ?? true; + this.magnas = this.cocutor.est('magnas') ?? false; + + switch (this.cocutor.edatur('separator')) { + case 'interpunctum': + this.separator = '·'; + case 'nullum': + this.separator = ''; + default: + this.separator = ' '; + } + } + + get verba (): Verbum[] { + return this._verba; + } + + addatur (verbum: Verbum): void { + const praevium: Verbum = this._verba.last(); + if (praevium.categoria === 'praepositio') { + verbum.scriptum.startsWithVowel() + switch (praevium.scriptum) { + case 'ā': + if (verbum.scriptum.startsWithVowel()) { + this.removeatur(praevium.unicum); + praevium.scriptum = 'ab'; + this.addatur(praevium); + } + break; + case 'ē': + if (verbum.scriptum.startsWithVowel()) { + this.removeatur(praevium.unicum); + praevium.scriptum = 'ex'; + this.addatur(praevium); + } + break; + case 'ab': + if (verbum.scriptum.startsWithVowel()) { + this.removeatur(praevium.unicum); + praevium.scriptum = 'ā'; + this.addatur(praevium); + } + break; + case 'ex': + if (verbum.scriptum.startsWithVowel()) { + this.removeatur(praevium.unicum); + praevium.scriptum = 'ē'; + this.addatur(praevium); + } + break; + } + } + + this.veliferum(); + if (this.utendaU) { + if ([ + 'Ū', 'U', 'ū', 'u' + ].some(littera => verbum.scriptum.includes(littera))) { + verbum.scriptum = verbum.scriptum.replace('Ū', 'V') + verbum.scriptum = verbum.scriptum.replace('U', 'V') + verbum.scriptum = verbum.scriptum.replace('ū', 'v') + verbum.scriptum = verbum.scriptum.replace('u', 'v') + } + } + + if (!this.apices) { + verbum.scriptum = verbum.scriptum.removeMacra(); + } + + this._verba.push(verbum); + } + + loquitur(unicum: symbol): boolean { + return this.verba.some(verbum => verbum.unicum === unicum); + } + + removeatur (unicum: symbol): string { + this._verba = this._verba.filter(verba => verba.unicum !== unicum); + return this.scribantur(); + } + + scribantur (): string { + this.veliferum(); + const locutio: string = this.verba.map(verba => verba.scriptum) + .join(this.separator); + if (this.magnas) { + return locutio.toUpperCase(); + } else { + return locutio.capitalize(); + } + } +} diff --git a/src/miscella/numeral.ts b/src/miscella/numeral.ts new file mode 100644 index 0000000..3962f2c --- /dev/null +++ b/src/miscella/numeral.ts @@ -0,0 +1,84 @@ +import RomanNumeral from 'js-roman-numerals'; + +type Par = { + anglicus: number, + latinum: string; +}; + +export default class Numeral { + static minimus: Par = { + anglicus: 0.0, + latinum: 'N' + }; + + static maximus: Par = { + anglicus: 39993999.0 + (11.0 / 12.0), + latinum: '|MMMCMXCIX|MMMCMXCIXS×' + }; + + static fracti (): Map { + const numeri: Map = new Map; + numeri.set(1, '·'); + numeri.set(2, ':'); + numeri.set(3, '∴'); + numeri.set(4, '::'); + numeri.set(5, '×'); + numeri.set(6, 'S'); + numeri.set(7, 'S·'); + numeri.set(8, 'S:'); + numeri.set(9, 'S∴'); + numeri.set(10, 'S::'); + numeri.set(11, 'S×'); + return numeri; + } + + static convertibilis (anglicus: number): boolean { + return [ + anglicus >= Numeral.minimus.anglicus, + anglicus <= Numeral.maximus.anglicus + ].all(); + } + + static romanus (anglicus: number): string { + if (this.convertibilis(anglicus)) { + if (anglicus === Numeral.minimus.anglicus) { + return Numeral.minimus.latinum; + } else if (Number.isInteger(anglicus)) { + if (anglicus >= 4000) { + const inferior: number = anglicus % 4000; + const superior: number = (anglicus - inferior) / 1000; + return `|${new RomanNumeral(superior)}|${new RomanNumeral(inferior)}`; + } else { + return new RomanNumeral(anglicus).toString(); + } + } else { + const integer: number = Math.floor(anglicus); + const fractus: number = 12 * (anglicus - integer); + const fractum: string | undefined = this.fracti().get(fractus); + return fractum ? this.romanus(integer).concat(fractum) : ''; + } + } else { + throw new Error(`Iacta interfuturu'st valor: ${anglicus}`); + } + } + + static anglicus (romanus: string): number { + const fractus: string = [ + ...this.fracti().values() + ].first(valor => romanus.includes(valor))[0]; + if (fractus) { + const numerator: number = [ + ...this.fracti().entries() + ].first(valor => valor[ 1 ] === fractus)[0]; + romanus = romanus.replace(fractus, ''); + return this.anglicus(romanus) + (numerator / 12.0); + } else if (romanus === 'N') { + return 0; + } else if (romanus.startsWith('|')) { + const [ _, superior, inferior ] = romanus.split('|'); + return (10 * this.anglicus(superior)) + this.anglicus(inferior); + } else { + return new RomanNumeral(romanus).toInt(); + } + } +} diff --git a/src/miscella/nuntius.ts b/src/miscella/nuntius.ts new file mode 100644 index 0000000..4c68bd3 --- /dev/null +++ b/src/miscella/nuntius.ts @@ -0,0 +1,251 @@ +import winston from 'winston'; +import DailyRotateFile from 'winston-daily-rotate-file'; +import { Mensa } from './enumerationes'; +import Numeral from './numeral'; + + +const scribatur = (parametra: { + nomen?: string, + res: { + level: string, + message: string; + }; +}): string => { + if (parametra.nomen) { + return `${parametra.nomen} @${Temporis.nunc()} <${parametra.res.level}> ${parametra.res.message}`; + } else { + return `@${Temporis.nunc()} <${parametra.res.level}> ${parametra.res.message}`; + } +}; + +type Parametra = { + nomen?: string, + nuntium?: string, + error?: Error; +} + +export default class Nuntius implements Disposable { + static morior (parametra: Parametra): void { + this.timeo(parametra); + process.abort(); + } + + static timeo (parametra: Parametra): void { + using nuntius: Nuntius = new Nuntius(parametra.nomen); + nuntius.nuntio({ + error: parametra.error + }); + } + + static moneo (parametra: Parametra): void { + using nuntius: Nuntius = new Nuntius(parametra.nomen); + nuntius.nuntio({ + gradus: 'warn', + nuntium: parametra.nuntium + }); + } + + static noto (parametra: Parametra): void { + using nuntius: Nuntius = new Nuntius(parametra.nomen); + nuntius.nuntio({ + gradus: 'info', + nuntium: parametra.nuntium + }); + } + + static certioro (parametra: Parametra): void { + using nuntius: Nuntius = new Nuntius(parametra.nomen); + nuntius.nuntio({ + gradus: 'http', + nuntium: parametra.nuntium + }); + } + + static garrio (parametra: Parametra): void { + using nuntius: Nuntius = new Nuntius(parametra.nomen); + nuntius.nuntio({ + gradus: 'verbose', + nuntium: parametra.nuntium + }); + } + + static plusGarrio (parametra: Parametra): void { + using nuntius: Nuntius = new Nuntius(parametra.nomen); + nuntius.nuntio({ + gradus: 'debug', + nuntium: parametra.nuntium + }); + } + + static plurimumGarrio (parametra: Parametra): void { + using nuntius: Nuntius = new Nuntius(parametra.nomen); + nuntius.nuntio({ + gradus: 'silly', + nuntium: parametra.nuntium + }); + } + + static factum(nomen: string): any { + return function(constr: Hoc) { + return class extends constr { + constructor(...parametra: any[]) { + super(...parametra); + + Nuntius.plusGarrio({ + nomen: nomen, + nuntium: 'Fit' + }); + } + } + } + } + + static modus(nomen?: string) { + return function(modus: any, contextus: ClassMethodDecoratorContext) { + return function (...parametra: any[]) { + Nuntius.plusGarrio({ + nomen: nomen, + nuntium: `Initu'st modus ${contextus.name.toString()}` + }); + + const illud = modus(parametra); + + Nuntius.plusGarrio({ + nomen: nomen, + nuntium: `Exitu'st modus ${contextus.name.toString()}` + }); + + return illud; + } + } + } + + static futurus(nomen?: string) { + return function(modus: any, contextus: ClassMethodDecoratorContext) { + return async function (...parametra: any[]) { + Nuntius.plusGarrio({ + nomen: nomen, + nuntium: `Initu'st modus ${contextus.name.toString()}` + }); + + const illud = await modus(parametra); + + Nuntius.plusGarrio({ + nomen: nomen, + nuntium: `Exitu'st modus ${contextus.name.toString()}` + }); + + return illud; + } + } + } + + static finitus(nomen?: string) { + return function(modus: any, contextus: ClassMethodDecoratorContext) { + return function (...parametra: any[]) { + modus(parametra); + + Nuntius.plusGarrio({ + nomen: nomen, + nuntium: "Finitu'st" + }); + } + } + } + + private readonly _nuntiator: winston.Logger; + private readonly _mundusEvolendum: boolean = true; + private readonly _nomen?: string; + + private constructor (nomen?: string) { + this._nomen = nomen; + let navigium, forma: any; + if (this._mundusEvolendum) { + forma = winston.format.combine( + winston.format.align(), + winston.format.cli(), + winston.format.colorize(), + winston.format.prettyPrint(), + winston.format.printf(res => scribatur({ + nomen: this._nomen, + res: res + })) + ); + + navigium = new winston.transports.Console({ + format: forma + }); + } else { + forma = winston.format.combine( + winston.format.align(), + winston.format.uncolorize(), + winston.format.simple(), + winston.format.printf(res => scribatur({ + nomen: this._nomen, + res: res + })) + ); + + navigium = new DailyRotateFile({ + datePattern: '', + dirname: '../nuntia', + filename: `StructorVerborum${Temporis.hodie()}.log)`, + frequency: '1d', + maxSize: '20m', + maxFiles: '30d', + zippedArchive: true + }); + + // navigium.on('new', (hoc: string) => { }); + // navigium.on('rotate', (illud: string, hoc: string) => { }); + // navigium.on('archive', (tabularium: string) => { }); + // navigium.on('logRemoved', (delendum: string) => { }); + } + + this._nuntiator = winston.createLogger({ + exitOnError: this._mundusEvolendum, + format: forma, + level: this._mundusEvolendum ? 'debug' : 'error', + transports: [ navigium ] + }); + } + + nuntio (parametra: { + gradus?: string, + nuntium?: string, + error?: Error; + }): void { + if (parametra.error) { + this._nuntiator.error(parametra.error); + } else if (parametra.gradus) { + this._nuntiator.log(parametra.gradus, parametra.nuntium); + } + } + + [ Symbol.dispose ] (): void { + this._nuntiator.close(); + this._nuntiator.destroy(); + } +} + +class Temporis { + static hodie (): string { + const hodie: Date = new Date; + return [ + Numeral.romanus(hodie.getUTCDay()), + Mensa[ hodie.getUTCMonth() ], + Numeral.romanus(hodie.getUTCFullYear()) + ].join(''); + } + + static nunc (): string { + const nunc: Date = new Date; + return [ + nunc.getUTCHours(), + nunc.getUTCMinutes(), + nunc.getUTCSeconds(), + nunc.getUTCMilliseconds() + ].map(numerus => Numeral.romanus(numerus)) + .join(':'); + } +} diff --git a/src/miscella/versiones.ts b/src/miscella/versiones.ts new file mode 100644 index 0000000..14f4a54 --- /dev/null +++ b/src/miscella/versiones.ts @@ -0,0 +1,146 @@ +export const Nominunm: string[] = [ + 'prima', + 'prima//singularis', + 'prima//pluralis', + 'secundaMasculina', + 'secundaNeutra', + 'secundaMasculina//singularis', + 'secundaNeutra//singularis', + 'secundaMasculina//pluralis', + 'secundaNeutra//pluralis', + 'tertiaAnimata', + 'tertiaNeutra', + 'tertiaAnimata//singularis', + 'tertiaNeutra//singularis', + 'tertiaAnimata//pluralis', + 'tertiaNeutra//pluralis', + 'quarta', + 'quartaVaria', + 'quinta', + 'secundaMasculina/nominativusDirectus', + 'secundaMasculina/cumLitteraR', + 'secundaMasculina/nominativusDirectus/singularis', + 'secundaMasculina/cumLitteraR/singularis', + 'secundaMasculina/nominativusDirectus/pluralis', + 'secundaMasculina/cumLitteraR/pluralis', + 'tertiaAnimata/cumGenitivoVario', + 'tertiaAnimata/cumAblativoVario', + 'tertiaAnimata/cumGenitivoAblativoqueVario', + 'tertiaAnimata/cumGenitivoVario/singularis', + 'tertiaAnimata/cumAblativoVario/singularis', + 'tertiaAnimata/cumGenitivoAblativoqueVario/singularis', + 'tertiaAnimata/cumGenitivoVario/pluralis', + 'tertiaAnimata/cumAblativoVario/pluralis', + 'tertiaAnimata/cumGenitivoAblativoqueVario/pluralis', + 'tertiaNeutra/cumGenitivoVario', + 'tertiaNeutra/cumAblativoVario', + 'tertiaNeutra/cumGenitivoAblativoqueVario', + 'tertiaNeutra/cumTruncoVario', + 'tertiaNeutra/cumGenitivoVario/singularis', + 'tertiaNeutra/cumAblativoVario/singularis', + 'tertiaNeutra/cumGenitivoAblativoqueVario/singularis', + 'tertiaNeutra/cumTruncoVario/singularis', + 'tertiaNeutra/cumGenitivoVario/pluralis', + 'tertiaNeutra/cumAblativoVario/pluralis', + 'tertiaNeutra/cumGenitivoAblativoqueVario/pluralis', + 'tertiaNeutra/cumTruncoVario/pluralis' +]; + +export const NominumFactorum: string[] = [ + 'prima', + 'secunda', + 'tertia', + 'tertiaVaria', + 'quarta', + 'prima/prona', + 'secunda/prona', + 'tertia/prona', + 'tertiaVaria/prona', + 'quarta/prona' +]; + +export const Adiectivorum: string[] = [ + 'positivaAutPrimaAutSecunda', + 'positivaAutPrimaAutSecunda//pluralis', + 'positivaAutPrimaAutSecunda/nominativusDirectus', + 'positivaAutPrimaAutSecunda/nominativusDirectus/pluralis', + 'positivaAutPrimaAutSecunda/cumLitteraR', + 'positivaAutPrimaAutSecunda/cumLitteraR/pluralis', + 'positivaTertia', + 'positivaTertia//pluralis', + 'positivaTertia/cumGenitivoVario', + 'positivaTertia/cumGenitivoVario/pluralis', + 'positivaTertia/cumAblativoVario', + 'positivaTertia/cumAblativoVario/pluralis', + 'positivaTertia/cumGenitivoAblativoqueVario', + 'positivaTertia/cumGenitivoAblativoqueVario/pluralis', + 'positivaTertia/cumTruncoVario', + 'positivaTertia/cumTruncoVario/pluralis', + 'positivaTertia/nominativusUnigener', + 'positivaTertia/nominativusUnigener/pluralis', + 'positivaTertia/nominativusUnigenerCumGenitivoVario', + 'positivaTertia/nominativusUnigenerCumGenitivoVario/pluralis', + 'positivaTertia/nominativusUnigenerCumAblativoVario', + 'positivaTertia/nominativusUnigenerCumAblativoVario/pluralis', + 'positivaTertia/nominativusUnigenerCumGenitivoAblativoqueVario', + 'positivaTertia/nominativusUnigenerCumGenitivoAblativoqueVario/pluralis', + 'positivaTertia/nominativusUnigenerCumTruncoVario', + 'positivaTertia/nominativusUnigenerCumTruncoVario/pluralis', +]; + +export const Incomparabilium: string[] = [ + 'autPrimaAutSecunda', + 'autPrimaAutSecunda//pluralis', + 'autPrimaAutSecunda/nominativusDirectus', + 'autPrimaAutSecunda/cumLitteraR', + 'tertia', + 'tertia/cumGenitivoVario', + 'tertia/cumAblativoVario', + 'tertia/cumGenitivoAblativoqueVario', + 'tertia/cumTruncoVario', + 'tertia/nominativusUnigener', + 'tertia/nominativusUnigener/pluralis', + 'tertia/nominativusUnigenerCumGenitivoVario', + 'tertia/nominativusUnigenerCumGenitivoqueVario/pluralis', + 'tertia/nominativusUnigenerCumAblativoVario', + 'tertia/nominativusUnigenerCumAblativoVario/pluralis', + 'tertia/nominativusUnigenerCumGenitivoAblativoqueVario', + 'tertia/nominativusUnigenerCumGenitivoAblativoqueVario/pluralis', + 'tertia/nominativusUnigenerCumTruncoVario', + 'tertia/nominativusUnigenerCumTruncoVario/pluralis', + 'pronominalis', + 'pronominalis/nominativusDirectus', + 'pronominalis/cumLitteraR' +]; + +export const Actuum: string[] = [ + 'prima', + 'secunda', + 'tertia', + 'tertia//perfecta', + 'tertiaVaria', + 'quarta', + 'quarta//perfecta', + 'tertia/cumImperativoBrevi', + 'tertiaVaria/cumImperativoBrevi', + 'prima//deponens', + 'secunda//deponens', + 'tertia//peponens', + 'quarta//peponens', + 'prima//semideponens', + 'secunda//semideponens', + 'tertia//semideponens', + 'prima//semideponensActiva', + 'secunda//semideponensActiva', + 'tertia//semideponensActiva', + 'secunda//impersonalis', + 'tertia//impersonalis', + 'prima//impersonalis/semideponens', + 'secunda//impersonalis/semideponens', + 'tertia//impersonalis/semideponens', + 'prima//impersonalis/semideponensActiva', + 'secunda//impersonalis/semideponensActiva', + 'tertia//impersonalis/semideponensActiva', + 'secunda//impersonalis/passivo', + 'tertia//impersonalis/passivo' +]; diff --git a/src/praebeunda/agenda.ts b/src/praebeunda/agenda.ts new file mode 100644 index 0000000..27ffd93 --- /dev/null +++ b/src/praebeunda/agenda.ts @@ -0,0 +1,402 @@ +import * as Interfecta from './interfecta'; +import Structor from './structor'; +import * as Verba from './verba'; +import Adiectiva from '../anomala/adiectiva'; +import Nomina from '../anomala/nomina'; +import LectorVerbalis from '../lectores/verbalis'; +import Dictionarium from '../miscella/dictionarium'; +import Numeral from '../miscella/numeral'; +import PutatorActus from '../putatores/actus'; +import PutatorAdiectivi from '../putatores/adiectivi'; +import PutatorIncomparabilis from '../putatores/incomparabilis'; +import PutatorNominis from '../putatores/nominis'; +import PutatorNominisFacti from '../putatores/nominisFacti'; +import TabulaAdverbii from '../tabulae/adverbii'; +import TabulaNumeraminis from '../tabulae/numeraminis'; +import Tabula from '../tabulae/tabula'; + +export type Agendum = Omit; +export type Percolamen = Omit; +export type Positor = ((agendum: Agendum) => Hoc); + +export class ActusAgendus implements Interfecta.Faciendum, Interfecta.Lectum { + versio: string = ''; + infinitivum: string = ''; + perfectum: string = ''; + supinum: string = ''; + + putetur (): Tabula { + return PutatorActus.se.ipse().putetur(this); + } + + async nomen (): Promise | null> { + using nomina: Nomina = Nomina.se.ipse(); + if ((await nomina.omnia()).includes(this.infinitivum)) { + return await nomina.feratur(this.infinitivum) ?? null; + } else { + const versioNova: string = this.versio.split('/').first() + .concat(!!this.supinum?.trim() ? '' : '//prona'); + const radix: string = this.infinitivum.chop(3); + let suffixumGeriundii: string; + switch (this.versio.split('/').first()) { + case 'prima': + suffixumGeriundii = 'andum'; + break; + case 'secunda': + case 'tertia': + suffixumGeriundii = 'endum'; + break; + case 'tertiaVaria': + case 'quarta': + suffixumGeriundii = 'iendum'; + break; + } + + return new Structor(() => new NomenFactum) + .ponatur(nomen => nomen.infinitivum = this.infinitivum) + .ponatur(nomen => nomen.gerundium = radix.concat(suffixumGeriundii)) + .ponatur(nomen => nomen.supinum = this.supinum) + .ponatur(nomen => nomen.versio = versioNova) + .struatur(); + } + } + + actor(genus: string): NomenAgendum | null { + const structor: Structor = new Structor(() => new NomenAgendum) + .ponatur(nomen => nomen.versio = 'tertiaAnimata'); + switch(genus) { + case 'masculinum': + structor.ponatur(nomen => nomen.nominativum = this.supinum.replace('um$', 'or')) + .ponatur(nomen => nomen.genitivum = this.supinum.replace('um$', 'ōris')); + break; + case 'femininum': + structor.ponatur(nomen => nomen.nominativum = this.supinum.replace('t?um$', 'trīx')) + .ponatur(nomen => nomen.genitivum = this.supinum.replace('t?um$', 'trīcis')); + break; + default: + return null; + } + + return structor.struatur(); + } +} + +export class AdverbiumAgendum implements Interfecta.Faciendum, Interfecta.Lectum { + versio: string = ''; + positivum: string = ''; + comparativum: string = ''; + superlativum: string = ''; + + putetur (): Tabula | null { + return new TabulaAdverbii(this); + } +} + +export class NomenAgendum implements Interfecta.Faciendum, Interfecta.Lectum { + versio: string = ''; + nominativum: string = ''; + genitivum: string = ''; + + putetur (): Tabula { + return PutatorNominis.se.ipse().putetur(this); + } +} + +export class NomenFactum implements Interfecta.Faciendum, Interfecta.Lectum { + versio: string = ''; + infinitivum: string = ''; + gerundium: string = ''; + supinum: string = ''; + + putetur (): Tabula { + return PutatorNominisFacti.se.ipse().putetur(this); + } + + async actus (): Promise | null> { + const dictionarium: Dictionarium = Dictionarium.se.ipse(); + return (await dictionarium.referatur({ + categoria: 'actus', + scriptum: this.infinitivum + }))?.referendum as ActusAgendus; + } +} + +export class AdiectivumAgendum implements Interfecta.Faciendum, Interfecta.Lectum { + versio: string = ''; + positivum: string = ''; + comparativum: string = ''; + superlativum: string = ''; + + putetur (): Tabula { + return PutatorAdiectivi.se.ipse().putetur(this); + } + + async probetur (colamen: { + gradus: string, + genus: string; + }): Promise { + let versioNova: string; + if (colamen.gradus === 'comparativus') { + versioNova = 'generandaTertiae'; + } else if (colamen.gradus === 'superlativus') { + versioNova = 'generanda'; + } else { + switch (this.versio) { + case 'positivaAutPrimaAutSecunda': + versioNova = 'generanda'; + break; + case 'positivaAutPrimaAutSecunda/nominativusDirectus': + versioNova = 'secundaMasculina/nominativusDirectus'; + break; + case 'positivaAutPrimaAutSecunda//pluralis': + versioNova = 'generanda//pluralis'; + break; + case 'positivaAutPrimaAutSecunda/nominativusDirectus/pluralis': + versioNova = 'secundaMasculina/nominativusDirectus/pluralis'; + break; + case 'positivaAutPrimaAutSecunda/cumLitteraR': + versioNova = 'secundaMasculina/cumLitteraR'; + break; + case 'positivaAutPrimaAutSecunda/cumLitteraR/pluralis': + versioNova = 'secundaMasculina/cumLitteraR/pluralis'; + break; + case 'positivaTertia': + case 'positivaTertia/nominativusUnigener': + versioNova = 'generandaTertiae'; + break; + case 'positivaTertia//pluralis': + case 'positivaTertia/nominativusUnigener/pluralis': + versioNova = 'generandaTertiae//pluralis'; + break; + case 'positivaTertia/cumGenitivoVario': + case 'positivaTertia/nominativusUnigenerCumGenitivoVario': + versioNova = 'generandaTertiae/cumGenitivoVario'; + break; + case 'positivaTertia/cumGenitivoVario/pluralis': + case 'positivaTertia/nominativusUnigenerCumGenitivoVario/pluralis': + versioNova = 'generandaTertiae/cumGenitivoVario/pluralis'; + break; + case 'positivaTertia/cumAblativoVario': + case 'positivaTertia/nominativusUnigenerCumAblativoVario': + versioNova = 'generandaTertiae/cumAblativoVario'; + break; + case 'positivaTertia/cumAblativoVario/pluralis': + case 'positivaTertia/nominativusUnigenerCumAblativoVario/pluralis': + versioNova = 'generandaTertiae/cumAblativoVario/pluralis'; + break; + case 'positivaTertia/cumGenitivoAblativoqueVario': + case 'positivaTertia/nominativusUnigenerCumGenitivoAblativoqueVario': + versioNova = 'generandaTertiae/cumGenitivoAblativoqueVario'; + break; + case 'positivaTertia/cumGenitivoAblativoVario/pluralis': + case 'positivaTertia/nominativusUnigenerCumGenitivoAblativoqueVario/pluralis': + versioNova = 'generandaTertiae/cumGenitivoAblativoqueVario/pluralis'; + break; + case 'positivaTertia/cumTruncoVario': + case 'positivaTertia/nominativusUnigenerCumTruncoVario': + versioNova = 'generandaTertiae/cumTruncoVario'; + break; + case 'positivaTertia/cumTruncoVario/pluralis': + case 'positivaTertia/nominativusUnigenerCumTruncoVario/pluralis': + versioNova = 'generandaTertiae/cumTruncoVario/pluralis'; + break; + default: + return null; + } + } + + switch (colamen.genus) { + case 'neutrum': + versioNova = versioNova.replace('generandaTertiae', 'tertiaNeutra') + .replace('generanda', 'secundaNeutra'); + break; + case 'masculinum': + versioNova = versioNova.replace('generandaTertiae', 'tertiaAnimata') + .replace('generanda', 'secundaMasculina'); + break; + case 'femininimum': + versioNova = versioNova.replace('generandaTertiae', 'tertiaAnimata') + .replace('generanda', 'prima'); + break; + default: + return null; + } + + const tabula: Tabula = this.putetur(); + if (tabula) { + const adiectiva: Verba.Adiectivum[] = await tabula?.tabulentur(); + + const nominativus: string = adiectiva.first(adiectivum => [ + adiectivum.gradus = colamen.gradus, + adiectivum.genus = colamen.genus, + adiectivum.numeralis = 'singularis', + adiectivum.casus = 'nominativus' + ].all()).scriptum; + + const genitivus: string = adiectiva.first(adiectivum => [ + adiectivum.gradus = colamen.gradus, + adiectivum.genus = colamen.genus, + adiectivum.numeralis = 'singularis', + adiectivum.casus = 'genitivus' + ].all()).scriptum; + + return new Structor(() => new NomenAgendum) + .ponatur(nomen => nomen.nominativum = nominativus) + .ponatur(nomen => nomen.genitivum = genitivus) + .ponatur(nomen => nomen.versio = versioNova) + .struatur(); + } else { + return null; + } + } +} + +export class Incomparabile implements Interfecta.Faciendum, Interfecta.Lectum { + versio: string = ''; + nominativum: string = ''; + genitivum: string = ''; + + putetur (): Tabula { + return PutatorIncomparabilis.se.ipse().putetur(this); + } + + probetur (genus: string): NomenAgendum | null { + let versioNova: string; + + switch (this.versio) { + case 'autPrimaAutSecunda': + versioNova = 'generanda'; + break; + case 'autPrimaAutSecunda//pluralis': + versioNova = 'generanda//plualis'; + break; + case 'autPrimaAutSecunda/nominativusDirectus': + versioNova = 'secundaMasculina/nominativusDirectus'; + break; + case 'autPrimaAutSecunda/cumLitteraR': + versioNova = 'secundaMasculina/cumLitteraR'; + break; + case 'tertia': + case 'tertia/nominativusUnigener': + versioNova = 'generandaTertiae'; + break; + case 'tertia/cumGenitivoVario': + case 'tertia/nominativusUnigenerCumGenitivoVario': + versioNova = 'generandaTertiae/cumGenitivoVario'; + break; + case 'tertia/cumAblativoVario': + case 'tertia/nominativusUnigenerCumAblativoVario': + versioNova = 'generandaTertiae/cumAblativoVario'; + break; + case 'tertia/cumGenitivoAblativoVario': + case 'tertia/nominativusUnigenerCumGenitivoAblativoqueVario': + versioNova = 'generandaTertiae/cumGenitivoAblativoVario'; + break; + case 'tertia/cumTruncoVario': + case 'tertia/nominativusUnigenerCumTruncoVario': + versioNova = 'generandaTertiae/cumTruncoVario'; + break; + case 'tertia/nominativusUnigener/pluralis': + versioNova = 'generandaTertiae//pluralis'; + break; + case 'tertia/nominativusUnigenerCumGenitivoVario/pluralis': + versioNova = 'generandaTertiae/cumGenitivoVario/pluralis'; + break; + case 'tertia/nominativusUnigenerCumAblativoVario/pluralis': + versioNova = 'generandaTertiae/cumAblativoVario/pluralis'; + break; + case 'tertia/nominativusUnigenerCumGenitivoAblativoVario/pluralis': + versioNova = 'generandaTertiae/cumGenitivoAblativoqueVario/pluralis'; + break; + case 'tertia/nominativusUnigenerCumTruncoVario/pluralis': + versioNova = 'generandaTertiae/cumTruncoVario/pluralis'; + break; + default: + return null; + } + + switch (genus) { + case 'neutrum': + versioNova.replace('generandaTertae', 'tertiaNeutra') + .replace('generanda', 'secundaNeutra'); + break; + case 'masculinum': + versioNova.replace('generandaTertae', 'tertiaAnimata') + .replace('generanda', 'secundaMasculina'); + break; + case 'femininum': + versioNova.replace('generandaTertae', 'tertiaAnimata') + .replace('generanda', 'prima'); + break; + default: + return null; + } + + return new Structor(() => new NomenAgendum) + .ponatur(nomen => nomen.nominativum = this.nominativum) + .ponatur(nomen => nomen.genitivum = this.genitivum) + .ponatur(nomen => nomen.versio = versioNova) + .struatur(); + } +} + +export class NumeramenAgendum implements Interfecta.Faciendum, Interfecta.Lectum { + numerus: string = ''; + ordinale: string = ''; + cardinale: string = ''; + adverbium: string = ''; + multiplicativum: string = ''; + distributivum: string = ''; + fractionale: string = ''; + + putetur (): Tabula { + return new TabulaNumeraminis(this); + } + + async referatur (numerium: string): Promise { + using adiectiva: Adiectiva = Adiectiva.se.ipse(); + const lectorAdiectivum: LectorVerbalis = LectorVerbalis.Incomparabilium.ipse(); + switch (numerium) { + case 'adverbium': + const lectorAdverbiorum: LectorVerbalis = LectorVerbalis.Adverbiorum.ipse(); + return await lectorAdverbiorum.legatur(this.adverbium); + case 'fractionale': + using nomina: Nomina = Nomina.se.ipse(); + if ((await nomina.omnia()).includes(this.fractionale)) { + return await nomina.feratur(this.fractionale) ?? null; + } else { + const lectorNominum: LectorVerbalis = LectorVerbalis.Nominum.ipse(); + return await lectorNominum.legatur(this.fractionale); + } + case 'numerus': + const anglicus: number = Numeral.anglicus(this.numerus); + return anglicus === null ? null : Verba.Numerus.numerator(anglicus); + case 'ordinale': + if ((await adiectiva.omnia()).includes(this.ordinale)) { + return await adiectiva.feratur(this.ordinale) ?? null; + } else { + return await lectorAdiectivum.legatur(this.ordinale); + } + case 'cardinale': + if ((await adiectiva.omnia()).includes(this.cardinale)) { + return await adiectiva.feratur(this.cardinale) ?? null; + } else { + return await lectorAdiectivum.legatur(this.cardinale); + } + case 'multiplicativum': + if ((await adiectiva.omnia()).includes(this.multiplicativum)) { + return await adiectiva.feratur(this.multiplicativum) ?? null; + } else { + return await lectorAdiectivum.legatur(this.multiplicativum) ?? null; + } + case 'distributivum': + if ((await adiectiva.omnia()).includes(this.distributivum)) { + return await adiectiva.feratur(this.ordinale) ?? null; + } else { + return await lectorAdiectivum.legatur(this.distributivum) ?? null; + } + default: + return null; + } + } +} diff --git a/src/praebeunda/interfecta.ts b/src/praebeunda/interfecta.ts new file mode 100644 index 0000000..0cacb0b --- /dev/null +++ b/src/praebeunda/interfecta.ts @@ -0,0 +1,8 @@ +import { Multiplex } from './verba'; +import Tabula from '../tabulae/tabula'; + +export interface Referendum { } +export interface Lectum extends Referendum { } +export interface Faciendum extends Referendum { + putetur (): Tabula | null; +} diff --git a/src/praebeunda/structor.ts b/src/praebeunda/structor.ts new file mode 100644 index 0000000..bab7665 --- /dev/null +++ b/src/praebeunda/structor.ts @@ -0,0 +1,22 @@ +type Generator = () => Hoc; +type Actio = (hoc: Hoc) => void; + +export default class Structor { + private readonly _actiones: Actio[] = []; + private readonly _generator: Generator; + + constructor (generator: Generator) { + this._generator = generator; + } + + ponatur (actio: Actio): Structor { + this._actiones.push(actio); + return this; + } + + struatur (): Hoc { + const hoc : Hoc = this._generator(); + this._actiones.forEach(actio => actio(hoc)); + return hoc; + } +} diff --git a/src/praebeunda/verba.ts b/src/praebeunda/verba.ts new file mode 100644 index 0000000..6d3b8bd --- /dev/null +++ b/src/praebeunda/verba.ts @@ -0,0 +1,531 @@ +import Structor from './structor'; +import LectorVerbalis from '../lectores/verbalis'; +import * as Enumerationes from '../miscella/enumerationes'; +import Numeral from '../miscella/numeral'; +import { + AdiectivumAgendum, + NumeramenAgendum, + type Agendum, + type Positor +} from './agenda'; + +export class Verbum { + static readonly Errator: ((exemplar: string, res: string) => Error) = + (exemplar: string, res: string) => new Error([ "Malu'st", exemplar, res ].join(' ')); + readonly unicum: symbol = Symbol(); + categoria: string = ''; + protected _scriptum: string = ''; + + get scriptum (): string { + return this._scriptum; + } + + set scriptum (valor: string) { + if (!!valor.trim()) { + this._scriptum = valor; + } else { + throw Verbum.Errator('scriptum', valor); + } + } + + paratumne(): boolean { + return !!this.scriptum; + } +} + +export class Numerus extends Verbum { + override categoria: string = 'numerus'; + override _scriptum: string = this.latinum(); + private _anglicus: number = -1; + + private latinum (): string { + return Numeral.romanus(this._anglicus); + } + + get anglicus (): number { + return this._anglicus; + } + + set anglicus (valor: number) { + if (Numeral.convertibilis(valor)) { + this._anglicus = valor; + } else { + throw Numerus.Errator('anclicus', valor.toString()); + } + } + + static readonly numerator: ((anglicus: number) => Numerus) = (anglicus: number): Numerus => { + return new Structor(() => new Numerus) + .ponatur(numerus => numerus.anglicus = anglicus) + .struatur(); + }; + + async numeramen (): Promise { + const lector: LectorVerbalis = LectorVerbalis.Numeraminum.ipse(); + return await lector.legatur(this.scriptum); + } +} + +export abstract class Multiplex extends Verbum { + static colamina(categoria: string): string[] { + switch(categoria) { + case 'actus': + return [ 'modus', 'vox', 'tempus', 'numeralis', 'persona' ]; + case 'adiectivum': + return [ 'gradus', 'genus', 'numeralis', 'casus' ]; + case 'adverbium': + return [ 'gradus' ]; + case 'nomen': + return [ 'factum', 'numeralis', 'casus' ]; + case 'numeramen': + return [ 'numerium' ]; + case 'pronomen': + return [ 'genus', 'numeralis', 'casus' ]; + default: + return [ ]; + } + } + + private _encliticum: string = Enumerationes.Encliticum.Nolens; + + abstract valores(): string[]; + + get encliticum (): string { + return this._encliticum; + } + + set encliticum (valor: Enumerationes.Encliticum) { + this._encliticum = valor; + + if (valor) { + this.scriptum = this.scriptum.concat(valor); + } + } +} + +export class Actus extends Multiplex { + override categoria: string = 'actus'; + private _modus: string = ''; + private _vox: string = ''; + private _tempus: string = ''; + private _numeralis: string = ''; + private _persona: string = ''; + + get modus (): string { + return this._modus; + } + + get vox (): string { + return this._vox; + } + + get tempus (): string { + return this._tempus; + } + + get numeralis (): string { + return this._numeralis; + } + + get persona (): string { + return this._persona; + } + + set modus (valor: string) { + valor = valor.toLowerCase(); + + if (Enumerationes.modi.includes(valor)) { + this._modus = valor; + } else { + throw Actus.Errator('modus', valor); + } + } + + set vox (valor: string) { + valor = valor.toLowerCase(); + + if ([ + !(valor), + Enumerationes.voces.includes(valor) + ].any()) { + this._vox = valor ?? ''; + } else { + throw Actus.Errator('vox', valor); + } + } + + set tempus (valor: string) { + valor = valor.toLowerCase(); + + if ([ + !(valor), + Enumerationes.tempora.includes(valor) + ].any()) { + this._tempus = valor ?? ''; + } else { + throw Actus.Errator('tempus', valor); + } + } + + set numeralis (valor: string) { + valor = valor.toLowerCase(); + + if ([ + !(valor), + Enumerationes.numerales.includes(valor) + ].any()) { + this._numeralis = valor ?? ''; + } else { + throw Actus.Errator('numeralis', valor); + } + } + + set persona (valor: string) { + valor = valor.toLowerCase(); + + if ([ + !(valor), + Enumerationes.personae.includes(valor) + ].any()) { + this._persona = valor ?? ''; + } else { + throw Actus.Errator('persona', valor); + } + } + + valores(): string[] { + return [ this.modus, this.vox, this.tempus, this.numeralis, this.persona ]; + } + + override paratumne(): boolean { + return this.modus !== 'participalis' && super.paratumne(); + } + + static readonly positor: Positor = (istud: Agendum): Actus => { + return new Structor(() => new Actus) + .ponatur(actus => actus.modus = istud.modus) + .ponatur(actus => actus.vox = istud.vox ?? '') + .ponatur(actus => actus.tempus = istud.tempus ?? '') + .ponatur(actus => actus.numeralis = istud.numeralis ?? '') + .ponatur(actus => actus.persona = istud.persona ?? '') + .ponatur(actus => actus.scriptum = istud.scriptum) + .struatur(); + }; + + async participialis (): Promise { + if (this.modus === 'participialis') { + if (this.tempus === 'praesens') { + const structor: Structor = new Structor(() => new AdiectivumAgendum) + .ponatur(adiectivum => adiectivum.versio = 'positivusTertia/cumTruncoVario') + .ponatur(adiectivum => adiectivum.positivum = this.scriptum); + if (this.scriptum.slice(-3) === 'āre') { + structor.ponatur(adiectivum => adiectivum.comparativum = + this.scriptum.replace('āns$', 'antior')); + structor.ponatur(adiectivum => adiectivum.superlativum = + this.scriptum.replace('āns$', 'antissimum')); + } else { + structor.ponatur(adiectivum => adiectivum.comparativum = + this.scriptum.replace('ēns$', 'entior')); + structor.ponatur(adiectivum => adiectivum.superlativum = + this.scriptum.replace('ēns$', 'entissimum')); + } + + return structor.struatur(); + } else { + return new Structor(() => new AdiectivumAgendum) + .ponatur(adiectivum => adiectivum.versio = 'postivusAutPrimaAutSecunda') + .ponatur(adiectivum => adiectivum.positivum = this.scriptum) + .ponatur(adiectivum => adiectivum.comparativum = + this.scriptum.replace('um$', 'ius')) + .ponatur(adiectivum => adiectivum.comparativum = + this.scriptum.replace('um$', 'issimum')) + .struatur(); + } + } else { + throw Actus.Errator('modus', this.modus); + } + } +} + +export class Adverbium extends Multiplex { + override categoria: string = 'adverbium'; + private _gradus: string = ''; + + get gradus (): string { + return this._gradus; + } + + set gradus (valor: string) { + valor = valor.toLowerCase(); + + if (Enumerationes.gradi.includes(valor)) { + this._gradus = valor; + } else { + throw Adverbium.Errator('gradus', valor); + } + } + + valores(): string[] { + return [ this.gradus ]; + } + + static readonly positor: Positor = (istud: Agendum): Adverbium => + new Structor(() => new Adverbium) + .ponatur(adverbium => adverbium.gradus = istud.gradus ?? '') + .ponatur(adverbium => adverbium.scriptum = istud.scriptum) + .struatur(); +} + +export class Nomen extends Multiplex { + override categoria: string = 'nomen'; + private _factum: string = ''; + private _numeralis: string = ''; + private _casus: string = 'derectus'; + + get factum (): string { + return this._factum; + } + + get numeralis (): string { + return this._numeralis; + } + + get casus (): string { + return this._casus; + } + + set factum (valor: string) { + valor = valor.toLowerCase(); + + if ([ + !(valor), + Enumerationes.facta.includes(valor) + ].any()) { + this._factum = valor ?? ''; + } else { + throw Nomen.Errator('factum', valor); + } + } + + set numeralis (valor: string) { + valor = valor.toLowerCase(); + + if ([ + !(valor), + Enumerationes.numerales.includes(valor) + ].any()) { + this._numeralis = valor ?? ''; + } else { + throw Nomen.Errator('numeralis', valor); + } + } + + set casus (valor: string) { + valor = valor.toLowerCase(); + + if (Enumerationes.casus.includes(valor)) { + this._casus = valor ?? ''; + } else { + throw Nomen.Errator('casus', valor); + } + } + + valores(): string[] { + return [ this.factum, this.numeralis, this.casus ]; + } + + static readonly positor: Positor = (istud: Agendum): Nomen => + new Structor(() => new Nomen) + .ponatur(nomen => nomen.numeralis = istud.numeralis ?? '') + .ponatur(nomen => nomen.casus = istud.casus ?? '') + .ponatur(nomen => nomen.scriptum = istud.scriptum) + .struatur(); +} + +export class Pronomen extends Multiplex { + override categoria: string = 'pronomen'; + private _genus: string = ''; + private _numeralis: string = ''; + private _casus: string = 'derectus'; + + get genus (): string { + return this._genus; + } + + get numeralis (): string { + return this._numeralis; + } + + get casus (): string { + return this._casus; + } + + set genus (valor: string) { + valor = valor.toLowerCase(); + + if ([ + !(valor), + Enumerationes.genera.includes(valor) + ].any()) { + this._genus = valor ?? ''; + } else { + throw Pronomen.Errator('genus', valor); + } + } + + set numeralis (valor: string) { + valor = valor.toLowerCase(); + + if ([ + !(valor), + Enumerationes.numerales.includes(valor) + ].any()) { + this._numeralis = valor ?? ''; + } else { + throw Pronomen.Errator('numeralis', valor); + } + } + + set casus (valor: string) { + valor = valor.toLowerCase(); + + if (Enumerationes.casus.includes(valor)) { + this._casus = valor ?? ''; + } else { + throw Pronomen.Errator('casus', valor); + } + } + + valores(): string[] { + return [ this.genus, this.numeralis, this.casus ]; + } + + static readonly positor: Positor = (istud: Agendum): Pronomen => { + if (!istud.casus || istud.casus === 'Derectus') { + throw this.Errator('casus', istud.casus); + } else { + return new Structor(() => new Pronomen) + .ponatur(pronomen => pronomen.casus = istud.casus) + .ponatur(pronomen => pronomen.genus = istud.genus ?? '') + .ponatur(pronomen => pronomen.numeralis = istud.numeralis ?? '') + .ponatur(pronomen => pronomen.scriptum = istud.scriptum) + .struatur(); + } + }; +} + +export class Adiectivum extends Multiplex { + override categoria: string = 'adiectivum'; + private _gradus: string = ''; + private _genus: string = ''; + private _numeralis: string = ''; + private _casus: string = 'derectus'; + + get gradus (): string { + return this._gradus; + } + + get genus (): string { + return this._genus; + } + + get numeralis (): string { + return this._numeralis; + } + + get casus (): string { + return this._casus; + } + + set gradus (valor: string) { + valor = valor.toLowerCase(); + + if (Enumerationes.gradi.includes(valor)) { + this._gradus = valor; + } else { + throw Adiectivum.Errator('gradus', valor); + } + } + + set genus (valor: string) { + valor = valor.toLowerCase(); + + if ([ + !(valor), + Enumerationes.genera.includes(valor) + ].any()) { + this._genus = valor ?? ''; + } else { + throw Adiectivum.Errator('genus', valor); + } + } + + set numeralis (valor: string) { + valor = valor.toLowerCase(); + + if ([ + !(valor), + Enumerationes.numerales.includes(valor) + ].any()) { + this._numeralis = valor ?? ''; + } else { + throw Adiectivum.Errator('numeralis', valor); + } + } + + set casus (valor: string) { + valor = valor.toLowerCase(); + + if (Enumerationes.casus.includes(valor)) { + this._casus = valor; + } else { + throw Adiectivum.Errator('casus', valor); + } + } + + valores(): string[] { + return [ this.gradus, this.genus, this.numeralis, this.casus ]; + } + + static readonly positor: Positor = (istud: Agendum): Adiectivum => + new Structor(() => new Adiectivum) + .ponatur(adiectivum => adiectivum.gradus = istud.gradus ?? '') + .ponatur(adiectivum => adiectivum.genus = istud.genus ?? '') + .ponatur(adiectivum => adiectivum.numeralis = istud.numeralis ?? '') + .ponatur(adiectivum => adiectivum.casus = istud.casus ?? '') + .ponatur(adiectivum => adiectivum.scriptum = istud.scriptum) + .struatur(); +} + +export class Numeramen extends Multiplex { + override categoria: string = 'numeramen'; + private _numerium: string = ''; + + get numerium (): string { + return this._numerium; + } + + set numerium (valor: string) { + valor = valor.toLowerCase(); + + if (Enumerationes.numeria.includes(valor)) { + this.numerium = valor; + } else { + throw Numeramen.Errator('casus', valor); + } + } + + valores(): string[] { + return [ this.numerium ]; + } + + override paratumne(): boolean { + return false; + } + + static readonly positor: Positor = (istud: Agendum): Numeramen => + new Structor(() => new Numeramen) + .ponatur(numeramen => numeramen.numerium = istud.numerium) + .ponatur(numeramen => numeramen.scriptum = istud.scriptum) + .struatur(); +} diff --git a/src/putatores/actus.ts b/src/putatores/actus.ts new file mode 100644 index 0000000..02948a0 --- /dev/null +++ b/src/putatores/actus.ts @@ -0,0 +1,199 @@ +import Ignavum from '../miscella/ignavum'; +import Nuntius from '../miscella/nuntius'; +import { ActusAgendus } from '../praebeunda/agenda'; +import { Actus } from '../praebeunda/verba'; +import TabulaDeponens from '../tabulae/defectae/deponens'; +import TabulaImpersonalis from '../tabulae/defectae/impersonalis'; +import TabulaPerfecta from '../tabulae/defectae/perfecta'; +import TabulaRecta from '../tabulae/recta'; +import Tabula from '../tabulae/tabula'; +import TabulaVicaria from '../tabulae/vicaria'; +import type { Putaturum, Radicator } from './putaturum'; + +type Percolamen = { + modus: string, + vox: string, + tempus: string, + numeralis: string, + persona: string; +}; + +@Nuntius.factum('PutatorActus') +export default class PutatorActus implements Putaturum { + static se: Ignavum = new Ignavum(() => new PutatorActus()); + + private radicetur (versio: string): Radicator { + switch (versio) { + case 'prima': + case 'secunda': + case 'secunda/impersonalis': + case 'secunda/impersonalis/passivo': + case 'secunda//impersonalis': + case 'secunda//impersonalis/passivo': + case 'quarta/perfecta': + case 'quarta//perfecta': + case 'tertia/perfecta': + case 'tertia//perfecta': + return (actus: ActusAgendus, colamen: Percolamen): string => actus.perfectum.chop(4); + case 'quartus': + return (actus: ActusAgendus, colamen: Percolamen): string => { + switch (true) { + case [ + colamen.modus === 'participalis', + colamen.vox === 'passiva', + colamen.tempus === 'futurum' + ].all(): + return actus.supinum.chop(2); + case [ 'perfectum', 'plusquamperfectum', 'exigendum' ].includes(colamen.tempus): + return actus.perfectum.chop(4); + default: + return actus.infinitivum.chop(3); + } + }; + case 'tertia': + case 'tertiaVaria': + case 'tertia/impersonalis': + case 'tertia/impersonalis/passivo': + case 'tertia//impersonalis': + case 'tertia//impersonalis/passivo': + return (actus: ActusAgendus, colamen: Percolamen): string => { + switch (true) { + case [ + colamen.modus === 'participalis', + colamen.vox === 'passiva', + colamen.tempus === 'futurum' + ].all(): + return actus.supinum.chop(2); + case [ + 'perfectum', 'plusquamperfectum', 'exigendum' + ].includes(colamen.tempus): + return actus.perfectum.chop(4); + default: + return actus.infinitivum.chop(1); + } + }; + case 'prima/deponens': + case 'prima//deponens': + case 'secunda/deponens': + case 'secunda//deponens': + case 'tertia/peponens': + case 'tertia//peponens': + case 'quarta/peponens': + case 'quarta//peponens': + case 'prima/semideponens': + case 'prima//semideponens': + case 'secunda/semideponens': + case 'secunda//semideponens': + case 'tertia/semideponens': + case 'tertia//semideponens': + case 'prima/impersonalis/semideponens': + case 'prima//impersonalis/semideponens': + case 'secunda/impersonalis/semideponens': + case 'secunda//impersonalis/semideponens': + case 'tertia/impersonalis/semideponens': + case 'tertia//impersonalis/semideponens': + return (actus: ActusAgendus, colamen: Percolamen): string => { + switch (true) { + case [ + colamen.modus === 'participalis', + colamen.tempus === 'futurum', + colamen.vox === 'activa' + ].all(): + return actus.supinum.chop(2); + case [ + colamen.modus === 'participalis', + colamen.tempus === 'perfectum', + colamen.vox === 'passiva' + ].all(): + return actus.supinum.chop(2); + default: + return actus.infinitivum.chop(3); + } + }; + case 'prima/semideponensActiva': + case 'prima//semideponensActiva': + case 'secunda/semideponensActiva': + case 'secunda//semideponensActiva': + case 'tertia/semideponensActiva': + case 'tertia//semideponensActiva': + return (actus: ActusAgendus, colamen: Percolamen): string => actus.infinitivum.chop(3); + case 'prima/impersonalis/semideponensActiva': + case 'prima//impersonalis/semideponensActiva': + case 'secunda/impersonalis/semideponensActiva': + case 'secunda//impersonalis/semideponensActiva': + case 'tertia/impersonalis/semideponensActiva': + case 'tertia//impersonalis/semideponensActiva': + return (actus: ActusAgendus, colamen: Percolamen): string => { + switch (true) { + case [ + colamen.modus === 'infintivus', + colamen.tempus === 'perfectum', + colamen.vox === 'passiva' + ].all(): + return actus.perfectum; + default: + return actus.infinitivum.chop(3); + } + }; + default: + throw Actus.Errator('versio', versio); + } + } + + @Nuntius.modus('PutatorActus') + putetur (agendus: ActusAgendus): Tabula { + const [ fundamen, vices, defectus, defectusSecundus ] = agendus.versio.split('/'); + if (defectus) { + agendus.versio = [ fundamen, vices ].join('/'); + switch (defectus) { + case 'deponens': + case 'semideponens': + case 'semideponensActiva': + return new TabulaDeponens({ + relata: new Ignavum(() => this.putetur(agendus)), + ut: defectus + }); + case 'impersonalis': + return new TabulaImpersonalis({ + relata: new Ignavum(() => this.putetur(agendus)), + et: defectusSecundus + }); + case 'perfectus': + return new TabulaPerfecta(new Ignavum(() => this.putetur(agendus))); + default: + throw Actus.Errator('versio', agendus.versio); + } + } else if (vices) { + agendus.versio = fundamen; + if (vices === 'cumImperativoBrevi') { + return new TabulaVicaria({ + hoc: agendus, prima: { + scapum: '/res/vices/actus', + via: [ fundamen, vices ].join('/') + }, secunda: { + scapum: '/res/tabula/actus', + via: fundamen + }, positor: Actus.positor, + radicator: this.radicetur(fundamen) + }); + } else { + throw Actus.Errator('versio', agendus.versio); + } + } else { + if ([ + 'prima', 'secunda', 'tertia', 'tertiaVaria', 'quarta' + ].includes(fundamen)) { + agendus.versio = fundamen; + return new TabulaRecta({ + radicator: this.radicetur(agendus.versio), + scapum: '/res/tabula/actus', + positor: Actus.positor, + via: agendus.versio, + hoc: agendus + }); + } else { + throw Actus.Errator('versio', agendus.versio); + } + } + } +} diff --git a/src/putatores/adiectivi.ts b/src/putatores/adiectivi.ts new file mode 100644 index 0000000..8c02594 --- /dev/null +++ b/src/putatores/adiectivi.ts @@ -0,0 +1,180 @@ +import Ignavum from '../miscella/ignavum'; +import Nuntius from '../miscella/nuntius'; +import { AdiectivumAgendum } from '../praebeunda/agenda'; +import Structor from '../praebeunda/structor'; +import { Adiectivum } from '../praebeunda/verba'; +import TabulaAdiectiviNumeralis from '../tabulae/defectae/numeralis/adiectivi'; +import TabulaInflexibilis from '../tabulae/inflexibilis'; +import TabulaRecta from '../tabulae/recta'; +import Tabula from '../tabulae/tabula'; +import TabulaVicaria from '../tabulae/vicaria'; +import type { Putaturum, Radicator } from './putaturum'; + +type Percolamen = { + gradus: string, + genus: string, + numeralis: string, + casus: string; +}; + +@Nuntius.factum('PutatorAdiectivi') +export default class PutatorAdiectivi implements Putaturum { + static se: Ignavum = new Ignavum(() => new PutatorAdiectivi()); + + radicetur (versio: string): Radicator { + switch (versio) { + case 'positivaAutPrimaAutSecunda': + return (adiectivum: AdiectivumAgendum, colamen: Percolamen): string => { + switch (colamen.gradus) { + case 'positivus': + return adiectivum.positivum.chop(2); + case 'comparativus': + return adiectivum.comparativum.chop(3); + case 'superlativus': + return adiectivum.superlativum.chop(2); + default: + return ''; + } + }; + case 'positivaAutPrimaAutSecunda/nominativusDirectus': + return (adiectivum: AdiectivumAgendum, colamen: Percolamen): string => adiectivum.positivum; + case 'positivaAutPrimaAutSecunda/cumLitteraR': + return (adiectivum: AdiectivumAgendum, colamen: Percolamen): string => { + switch (colamen.gradus) { + case 'positivus': + if ([ + colamen.genus === 'masculinum', + colamen.numeralis === 'singularis', + [ 'nominativus', 'vocativus' ].includes(colamen.casus) + ].all()) { + return adiectivum.positivum; + } else { + return adiectivum.positivum.chop(1); + } + case 'comparativus': + return adiectivum.comparativum.chop(3); + case 'superlativus': + return adiectivum.superlativum.chop(2); + default: + return ''; + } + }; + case 'positivaTertia': + case 'positivaTertia/cumGenitivoVario': + case 'positivaTertia/cumGenitivoVario/pluralis': + case 'positivaTertia/cumAblativoVario': + case 'positivaTertia/cumAblativoVario/pluralis': + case 'positivaTertia/cumGenitivoAblativoVario': + case 'positivaTertia/cumGenitivoAblativoVario/pluralis': + case 'positivaTertia/cumTruncoVario': + case 'positivaTertia/cumTruncoVario/pluralis': + return (adiectivum: AdiectivumAgendum, colamen: Percolamen): string => { + switch (colamen.gradus) { + case 'positivus': + switch (true) { + case [ + colamen.genus === 'neutrum', + colamen.numeralis === 'singularis', + colamen.casus === 'accusativus' + ].all(): + return adiectivum.positivum; + default: + return adiectivum.comparativum.chop(3); + } + case 'comparativus': + return adiectivum.comparativum.chop(3); + case 'superlativus': + return adiectivum.superlativum.chop(2); + default: + return ''; + } + }; + case 'positivaTertia/nominativusUnigener': + case 'positivaTertia/nominativusUnigenerCumGenitivoVario': + case 'positivaTertia/nominativusUnigenerCumAblativoVario': + case 'positivaTertia/nominativusUnigenerCumGenitivoAblativoqueVario': + case 'positivaTertia/nominativusUnigenerCumTruncoVario': + return (adiectivum: AdiectivumAgendum, colamen: Percolamen): string => { + switch (colamen.gradus) { + case 'positivus': + switch (true) { + case [ + colamen.genus === 'neutrum', + colamen.numeralis === 'singularis', + colamen.casus === 'accusativus' + ].all(): + return adiectivum.positivum; + case [ + colamen.numeralis === 'singularis', + [ 'nominativus', 'vocativus' ].includes(colamen.casus) + ].all(): + return adiectivum.positivum; + default: + return adiectivum.comparativum.chop(3); + } + case 'comparativus': + return adiectivum.comparativum.chop(3); + case 'superlativus': + return adiectivum.superlativum.chop(2); + default: + return ''; + } + }; + default: + throw Adiectivum.Errator('versio', versio); + } + } + + @Nuntius.modus('PutatorAdiectivi') + putetur (agendum: AdiectivumAgendum): Tabula { + let [ fundamen, vices, defectus ] = agendum.versio.split('/'); + if ([ + 'singularis', + 'pluralis' + ].includes(defectus)) { + agendum.versio = [ fundamen, vices ].join('/'); + return new TabulaAdiectiviNumeralis({ + relata: new Ignavum(() => this.putetur(agendum)), + numeralis: defectus + }); + } else if ([ + 'nominativusDirectus', 'cumLitteraR', 'nominativusUnigener', + 'cumGenitivoVario', 'cumAblativoVario', 'cumGenitivoAblativoqueVario', 'cumTruncoVario', + 'nominativusUnigenerCumGenitivoVario', 'nominativusUnigenerCumAblativoVario', + 'nominativusUnigenerCumGenitivoAblativoqueVario', 'nominativusUnigenerCumTruncoVario' + ].includes(vices)) { + if (vices === 'cumLitteraR') { + vices = 'nominativusDirectus'; + } + + return new TabulaVicaria({ + hoc: agendum, prima: { + scapum: '/res/vices/adiectiva', + via: agendum.versio + }, secunda: { + scapum: '/res/tabula/adiectiva', + via: fundamen + }, positor: Adiectivum.positor, + radicator: this.radicetur(agendum.versio) + }); + } else if ([ + 'positivaAutPrimaAutSecunda', + 'positivaTertia' + ].includes(fundamen)) { + return new TabulaRecta({ + scapum: '/res/tabula/adiectiva', + hoc: agendum, via: agendum.versio, + positor: Adiectivum.positor, + radicator: this.radicetur(agendum.versio) + }); + } else if (fundamen === 'indeclinabilis') { + return new TabulaInflexibilis({ + factor: (hoc: AdiectivumAgendum) => new Structor(() => new Adiectivum) + .ponatur(adiectivum => adiectivum.scriptum = hoc.positivum) + .struatur(), hoc: agendum + }); + } else { + throw Adiectivum.Errator('versio', agendum.versio); + } + } +} diff --git a/src/putatores/incomparabilis.ts b/src/putatores/incomparabilis.ts new file mode 100644 index 0000000..0d08960 --- /dev/null +++ b/src/putatores/incomparabilis.ts @@ -0,0 +1,131 @@ +import Ignavum from '../miscella/ignavum'; +import Nuntius from '../miscella/nuntius'; +import { Incomparabile } from '../praebeunda/agenda'; +import { Adiectivum } from '../praebeunda/verba'; +import TabulaAdiectiviNumeralis from '../tabulae/defectae/numeralis/adiectivi'; +import TabulaRecta from '../tabulae/recta'; +import Tabula from '../tabulae/tabula'; +import TabulaVicaria from '../tabulae/vicaria'; +import type { Putaturum, Radicator } from './putaturum'; + +type Percolamen = { + genus: string, + numeralis: string, + casus: string; +}; + +@Nuntius.factum('PutatorIncomparabilis') +export default class PutatorIncomparabilis implements Putaturum { + static se: Ignavum = new Ignavum(() => new PutatorIncomparabilis()); + + radicetur (versio: string): Radicator { + switch (versio) { + case 'autPrimaAutSecunda': + case 'pronominalis': + return (adiectivum: Incomparabile, colamen: Percolamen): string => adiectivum.nominativum.chop(2); + case 'autPrimaAutSecunda/nominativusDirectus': + case 'pronominalis/nominativusDirectus': + return (adiectivum: Incomparabile, colamen: Percolamen): string => adiectivum.nominativum; + case 'autPrimaAutSecunda/cumLitteraR': + case 'pronominalis/cumLitteraR': + return (adiectivum: Incomparabile, colamen: Percolamen): string => { + if ([ + colamen.genus === 'masculinum', + colamen.numeralis === 'singularis', + [ 'nominativus', 'vocativus' ].includes(colamen.casus) + ].all()) { + return adiectivum.nominativum; + } else { + return adiectivum.genitivum.chop(1); + } + }; + case 'tertia': + case 'tertia/cumGenitivoVario': + case 'tertia/cumAblativoVario': + case 'tertia/cumGenitivoAblativoqueVario': + case 'tertia/cumTruncoVario': + return (adiectivum: Incomparabile, colamen: Percolamen): string => { + switch (true) { + case [ + [ 'masculinum', 'femininum' ].includes(colamen.genus), + [ 'nominativus', 'vocativus' ].includes(colamen.casus), + colamen.numeralis === 'singularis' + ].all(): + return adiectivum.nominativum; + default: + return adiectivum.genitivum.chop(2); + } + }; + case 'tertia/nominativusUnigener': + case 'tertia/nominativusUnigenerCumGenitivoVario': + case 'tertia/nominativusUnigenerCumAblativoVario': + case 'tertia/nominativusUnigenerCumGenitivoAblativoqueVario': + case 'tertia/nominativusUnigenerCumTruncoVario': + return (adiectivum: Incomparabile, colamen: Percolamen): string => { + switch (true) { + case [ + [ 'nominativus', 'vocativus' ].includes(colamen.casus), + colamen.numeralis === 'singularis' + ].all(): + return adiectivum.nominativum; + case [ + colamen.genus === 'neutrum', + colamen.casus === 'accusativus', + colamen.numeralis === 'singularis' + ].all(): + return adiectivum.nominativum; + default: + return adiectivum.genitivum.chop(2); + } + }; + default: + throw Adiectivum.Errator('versio', versio); + } + } + + @Nuntius.modus('PutatorIncomparabilis') + putetur (agendum: Incomparabile): Tabula { + let [ fundamen, vices, defectus ] = agendum.versio.split('/'); + if ([ + 'singularis', + 'pluralis' + ].includes(defectus)) { + agendum.versio = [ fundamen, vices ].join('/'); + return new TabulaAdiectiviNumeralis({ + relata: new Ignavum(() => this.putetur(agendum)), + numeralis: defectus + }); + } else if ([ + 'nominativusDirectus', 'cumLitteraR', 'nominativusUnigener', + 'cumGenitivoVario', 'cumAblativoVario', 'cumGenitivoAblativoqueVario', 'cumTruncoVario', + 'nominativusUnigenerCumGenitivoVario', 'nominativusUnigenerCumAblativoVario', + 'nominativusUnigenerCumGenitivoAblativoqueVario', 'nominativusUnigenerCumTruncoVario' + ].includes(vices)) { + if (vices === 'cumLitteraR') { + vices = 'nominativusDirectus'; + } + + return new TabulaVicaria({ + hoc: agendum, prima: { + scapum: '/res/vices/adiectiva/incomparabilia', + via: agendum.versio + }, secunda: { + scapum: '/res/tabula/adiectiva/incomparabilia', + via: fundamen + }, positor: Adiectivum.positor, + radicator: this.radicetur(agendum.versio) + }); + } else if ([ + 'autPrimaAutSecunda', 'tertia', 'pronominalis' + ].includes(fundamen)) { + return new TabulaRecta({ + scapum: '/res/tabula/adiectiva/incomparabilia', + hoc: agendum, via: agendum.versio, + positor: Adiectivum.positor, + radicator: this.radicetur(agendum.versio) + }); + } else { + throw Adiectivum.Errator('versio', agendum.versio); + } + } +} diff --git a/src/putatores/nominis.ts b/src/putatores/nominis.ts new file mode 100644 index 0000000..d139536 --- /dev/null +++ b/src/putatores/nominis.ts @@ -0,0 +1,136 @@ +import Ignavum from '../miscella/ignavum'; +import Nuntius from '../miscella/nuntius'; +import { NomenAgendum } from '../praebeunda/agenda'; +import Structor from '../praebeunda/structor'; +import { Nomen } from '../praebeunda/verba'; +import TabulaNominisNumeralis from '../tabulae/defectae/numeralis/nominis'; +import TabulaInflexibilis from '../tabulae/inflexibilis'; +import TabulaRecta from '../tabulae/recta'; +import Tabula from '../tabulae/tabula'; +import TabulaVicaria from '../tabulae/vicaria'; +import type { Putaturum, Radicator } from './putaturum'; + +type Percolamen = { + numeralis: string, + casus: string; +}; + +@Nuntius.factum('PutatorNominis') +export default class PutatorNominis implements Putaturum { + static se: Ignavum = new Ignavum(() => new PutatorNominis()); + + radicetur (versio: string): Radicator { + switch (versio) { + case 'quarta': + case 'quinta': + case 'secundaMasculina': + case 'secundaNeutra': + return (nomen: NomenAgendum, colamen: Percolamen): string => nomen.nominativum.chop(2); + case 'primus': + case 'quartaVaria': + return (nomen: NomenAgendum, colamen: Percolamen): string => nomen.genitivum.chop(1); + case 'secundaMasculina/nominativusDirectus': + return (nomen: NomenAgendum, colamen: Percolamen): string => nomen.nominativum; + case 'secundaMasculina/cumLitteraR': + return (nomen: NomenAgendum, colamen: Percolamen): string => { + if ([ + colamen.numeralis === 'singularis', + [ 'nominativus', 'vocativus' ].includes(colamen.casus) + ].all()) { + return nomen.nominativum; + } else { + return nomen.genitivum.chop(1); + } + }; + case 'tertiaAnimata': + case 'tertiaAnimata/cumGenitivoVario': + case 'tertiaAnimata/cumAblativoVario': + case 'tertiaAnimata/cumGenitivoAblativoqueVario': + return (nomen: NomenAgendum, colamen: Percolamen): string => { + if ([ + colamen.numeralis === 'singularis', + [ 'nominativus', 'vocativus' ].includes(colamen.casus) + ].all()) { + return nomen.nominativum; + } else { + return nomen.genitivum.chop(2); + } + }; + case 'tertiaNeutra': + case 'tertiaNeutra/cumGenitivoVario': + case 'tertiaNeutra/cumAblativoVario': + case 'tertiaNeutra/cumGenitivoAblativoqueVario': + case 'tertiaNeutra/cumTruncoVario': + return (nomen: NomenAgendum, colamen: Percolamen): string => { + if ([ + colamen.numeralis === 'singularis', + [ 'nominativus', 'accusativus', 'vocativus' ].includes(colamen.casus) + ].all()) { + return nomen.nominativum; + } else { + return nomen.genitivum.chop(2); + } + }; + default: + throw Nomen.Errator('versio', versio); + } + } + + @Nuntius.modus('PutatorNominis') + putetur (agendum: NomenAgendum): Tabula { + let [ fundamen, vices, defectus ] = agendum.versio.split('/'); + if ([ + 'singularis', 'pluralis' + ].includes(defectus)) { + agendum.versio = [ fundamen, vices ].join('/'); + return new TabulaNominisNumeralis({ + relata: new Ignavum(() => this.putetur(agendum)), + numeralis: defectus + }); + } else if ([ + 'nominativusDirectus', 'cumLitteraR', 'nominativusUnigener', + 'cumGenitivoVario', 'cumAblativoVario', 'cumGenitivoAblativoqueVario', 'cumTruncoVario', + 'nominativusUnigenerCumGenitivoVario', 'nominativusUnigenerCumAblativoVario', + 'nominativusUnigenerCumGenitivoAblativoqueVario', 'nominativusUnigenerCumTruncoVario' + ].includes(vices)) { + if (vices === 'cumLitteraR') { + vices = 'nominativusDirectus'; + } + + return new TabulaVicaria({ + hoc: agendum, prima: { + scapum: '/res/vices/nomina', + via: agendum.versio + }, secunda: { + scapum: '/res/tabula/nomina', + via: fundamen + }, positor: Nomen.positor, + radicator: this.radicetur(agendum.versio) + }); + } else if ([ + 'prima', + 'secundaMasculina', + 'secundaNeutra', + 'tertiaAnimata', + 'tertiaNeutra', + 'quarta', + 'quartaVaria', + 'quinta' + ].includes(fundamen)) { + return new TabulaRecta({ + scapum: '/res/tabula/nomina', + via: agendum.versio, hoc: agendum, + positor: Nomen.positor, + radicator: this.radicetur(agendum.versio) + }); + } else if (fundamen === 'indeclinabilis') { + return new TabulaInflexibilis({ + factor: (hoc: NomenAgendum) => new Structor(() => new Nomen) + .ponatur(nomen => nomen.scriptum = hoc.nominativum) + .struatur(), hoc: agendum + }); + } else { + throw Nomen.Errator('versio', agendum.versio); + } + } +} diff --git a/src/putatores/nominisFacti.ts b/src/putatores/nominisFacti.ts new file mode 100644 index 0000000..31cd5c7 --- /dev/null +++ b/src/putatores/nominisFacti.ts @@ -0,0 +1,51 @@ +import Ignavum from '../miscella/ignavum'; +import Nuntius from '../miscella/nuntius'; +import { NomenFactum } from '../praebeunda/agenda'; +import { Nomen } from '../praebeunda/verba'; +import TabulaProna from '../tabulae/defectae/prona'; +import TabulaRecta from '../tabulae/recta'; +import Tabula from '../tabulae/tabula'; +import { type Putaturum } from './putaturum'; + +type Percolamen = { + factum: string, + casus: string; +}; + +@Nuntius.factum('PutatorNominisFacti') +export default class PutatorNominisFacti implements Putaturum { + static se: Ignavum = new Ignavum(() => new PutatorNominisFacti()); + + @Nuntius.modus('PutatorNominisFacti') + putetur (agendum: NomenFactum): Tabula { + const [ versio, pronus ] = agendum.versio.split('/'); + if (pronus === 'prona') { + agendum.versio = versio; + return new TabulaProna(new Ignavum(() => + this.putetur(agendum))); + } else if ([ + 'prima', 'secunda', 'tertia', + 'tertiaVaria', 'quarta' + ].includes(versio)) { + return new TabulaRecta({ + scapum: '/res/tabula/nomina/facta', + hoc: agendum, via: versio, + positor: Nomen.positor, + radicator: (nomen: NomenFactum, colamen: Percolamen) => { + switch (colamen.factum) { + case 'supinum': + return nomen.supinum.chop(2); + case 'gerundium': + return nomen.gerundium.chop(2); + case 'infinitivum': + return nomen.infinitivum.chop(3); + default: + return ''; + } + } + }); + } else { + throw Nomen.Errator('versio', agendum.versio); + } + } +} diff --git a/src/putatores/putaturum.ts b/src/putatores/putaturum.ts new file mode 100644 index 0000000..1c6b27e --- /dev/null +++ b/src/putatores/putaturum.ts @@ -0,0 +1,10 @@ +import { Multiplex } from '../praebeunda/verba'; +import Tabula from '../tabulae/tabula'; +import { type Percolamen } from '../praebeunda/agenda'; +import { type Faciendum } from '../praebeunda/interfecta'; + +export type Radicator = (hoc: Hoc, percolamen: Percolamen) => string; + +export interface Putaturum, Illud extends Multiplex> { + putetur (hoc: Hoc): Tabula; +} diff --git a/src/scriptura/gustularium.ts b/src/scriptura/gustularium.ts new file mode 100644 index 0000000..0b2a998 --- /dev/null +++ b/src/scriptura/gustularium.ts @@ -0,0 +1,21 @@ +type Optanda = { + nuntium?: string; + vita?: number; + color?: string; +}; + +export default class Gustularium { + readonly nuntium: string; + readonly vita: number; + readonly color: string; + readonly visibile: boolean; + + constructor (optanda: Optanda) { + const make_color = require('@types/pleasej').make_color; + + this.nuntium = optanda.nuntium ?? ''; + this.vita = optanda.vita ?? 0; + this.color = optanda.color ?? make_color(); + this.visibile = !!optanda.vita && (optanda.vita > 0); + } +} diff --git a/src/scriptura/nuntiator.ts b/src/scriptura/nuntiator.ts new file mode 100644 index 0000000..0c370c6 --- /dev/null +++ b/src/scriptura/nuntiator.ts @@ -0,0 +1,20 @@ +import Gustularium from './gustularium'; + +type Optanda = { + valor?: T, + nuntium: Gustularium; +}; + +export default class Nuntiator { + readonly valor?: T; + readonly nuntium: Gustularium; + + constructor (optanda: Optanda) { + this.valor = optanda.valor; + this.nuntium = optanda.nuntium; + } + + successum (): boolean { + return this.valor ? true : false; + } +} diff --git a/src/scriptura/referre.ts b/src/scriptura/referre.ts new file mode 100644 index 0000000..c9594fe --- /dev/null +++ b/src/scriptura/referre.ts @@ -0,0 +1,23 @@ +import Gustularium from './gustularium'; + +export function referretne (): boolean { + return !!navigator.clipboard; +} +export async function referatur (valor?: string): Promise { + if (valor) { + if (referretne()) { + await navigator.clipboard.writeText(valor); + return new Gustularium({ + nuntium: 'Locutio referatur', + vita: 3000, color: 'green' + }); + } else { + return new Gustularium({ + nuntium: 'Modus referendum non fert', + vita: 3000, color: 'red' + }); + } + } else { + return new Gustularium({}); + } +} diff --git a/src/scriptura/transducere.ts b/src/scriptura/transducere.ts new file mode 100644 index 0000000..9e5026c --- /dev/null +++ b/src/scriptura/transducere.ts @@ -0,0 +1,19 @@ +import { NewTabOpener } from 'new-tab-opener'; + +export function transduceretne (): boolean { + try { + return !!(new Blob); + } catch { + return false; + } +} + +export function transducatur (locutio: string): void { + if (transduceretne()) { + new NewTabOpener().open(URL.createObjectURL(new Blob( + [ locutio ], { + type: 'text/plain;charset=utf-8' + } + ))); + } +} diff --git a/src/tabulae/adverbii.ts b/src/tabulae/adverbii.ts new file mode 100644 index 0000000..b37fc17 --- /dev/null +++ b/src/tabulae/adverbii.ts @@ -0,0 +1,40 @@ +import Tabula from './tabula'; +import { gradi } from '../miscella/enumerationes'; +import Nuntius from '../miscella/nuntius'; +import { AdverbiumAgendum } from '../praebeunda/agenda'; +import { Adverbium } from '../praebeunda/verba'; + +@Nuntius.factum('TabulaAdverbii') +export default class TabulaAdverbii extends Tabula { + private readonly _agendum: AdverbiumAgendum; + + constructor (agendum: AdverbiumAgendum) { + super(); + this._agendum = agendum; + } + + @Nuntius.futurus('TabulaAdverbii') + async plenetur (): Promise { + gradi.forEach(gradus => { + let scriptum: string = ''; + switch (gradus) { + case 'positivus': + scriptum = this._agendum.positivum; + break; + case 'comparativus': + scriptum = this._agendum.comparativum; + break; + case 'superlativus': + scriptum = this._agendum.superlativum; + break; + } + + if (scriptum) { + this.tabula.push(Object.assign({}, { + gradus: gradus, + scriptum: scriptum + }) as any); + } + }); + } +} diff --git a/src/tabulae/bifissa.ts b/src/tabulae/bifissa.ts new file mode 100644 index 0000000..9b4f07d --- /dev/null +++ b/src/tabulae/bifissa.ts @@ -0,0 +1,37 @@ +import Tabula from './tabula'; +import Nuntius from '../miscella/nuntius'; +import { NomenAgendum } from '../praebeunda/agenda'; +import { Nomen } from '../praebeunda/verba'; + +type Optanda = { + singularis: NomenAgendum, + pluralis: NomenAgendum; +}; + +@Nuntius.factum('TabulaBifissa') +export default class TabulaBifissa extends Tabula { + private readonly _: Optanda; + constructor (optanda: Optanda) { + super(); + this._ = optanda; + } + + @Nuntius.futurus('TabulaBifissa') + async plenetur (): Promise { + [ + { + numeralis: 'singularis', + agendum: this._.singularis + }, { + numeralis: 'pluralis', + agendum: this._.pluralis + } + ].forEach(async res => { + const tabula: Tabula | null = res.agendum.putetur(); + if (tabula) { + (await tabula.tabulentur()).filter(nomen => nomen.numeralis === res.numeralis) + .forEach(nomen => this.tabula.push(nomen)); + } + }); + } +} diff --git a/src/tabulae/collata.ts b/src/tabulae/collata.ts new file mode 100644 index 0000000..55e4ad0 --- /dev/null +++ b/src/tabulae/collata.ts @@ -0,0 +1,33 @@ +import deepEqual from 'deep-equal'; +import Tabula from './tabula'; +import Ignavum from '../miscella/ignavum'; +import Nuntius from '../miscella/nuntius'; +import { Multiplex } from '../praebeunda/verba'; +import { type Agendum } from '../praebeunda/agenda'; + +export function valedictor (hoc: Hoc): Agendum { + const { scriptum: scriptum, categoria: categoria, ...valores } = hoc; + return valores as any; +} + +@Nuntius.factum('TabulaCollata') +export default class TabulaCollata extends Tabula { + private readonly _relatae: Ignavum>[]; + + constructor (...relatae: Ignavum>[]) { + super(); + this._relatae = relatae; + } + + @Nuntius.futurus('TabulaCollata') + async plenetur (): Promise { + this._relatae.forEach(async res => { + const ulla: Tabula = res.ipse(); + (await ulla.tabulentur()).forEach(hoc => { + if (this.tabula.none(illud => deepEqual(valedictor(hoc), valedictor(illud)))) { + this.tabula.push(hoc); + } + }); + }); + } +} diff --git a/src/tabulae/coniuncta.ts b/src/tabulae/coniuncta.ts new file mode 100644 index 0000000..9001488 --- /dev/null +++ b/src/tabulae/coniuncta.ts @@ -0,0 +1,52 @@ +import deepEqual from 'deep-equal'; +import { valedictor } from './collata'; +import Tabula from './tabula'; +import Ignavum from '../miscella/ignavum'; +import Nuntius from '../miscella/nuntius'; +import { Multiplex } from '../praebeunda/verba'; +import { type Positor } from '../praebeunda/agenda'; + +type Optanda = { + prima: Ignavum>, + secunda: Ignavum>, + positor: Positor; +}; + +@Nuntius.factum('TabulaConiuncta') +export default class TabulaConiuncta extends Tabula { + private readonly _: Optanda; + + constructor (optanda: Optanda) { + super(); + this._ = optanda; + } + + @Nuntius.futurus('TabulaConiuncta') + async plenetur (): Promise { + const prima: Tabula = this._.prima.ipse(); + const secunda: Tabula = this._.prima.ipse(); + + const areSetsEqual: ((prima: Set, secunda: Set) => boolean) = + (await import('@neoncitylights/sets')).areSetsEqual; + + const tabulaPrima: Hoc[] = await prima.tabulentur(); + const tabulaSecunda: Hoc[] = await secunda.tabulentur(); + + if (areSetsEqual( + new Set(tabulaPrima.map(valedictor)), + new Set((tabulaSecunda.map(valedictor)))) + ) { + tabulaPrima.forEach(async primum => { + const secundum: Hoc = tabulaSecunda.first(hoc => deepEqual(valedictor(hoc), valedictor(primum))); + if (secundum) { + primum.scriptum = primum.scriptum.concat(secundum.scriptum); + this.tabula.push(primum); + } else { + throw new Error("Inflexionis tabulae malae'st"); + } + }); + } else { + throw new Error("Inflexionis tabulae malae'st"); + } + } +} diff --git a/src/tabulae/defectae/defecta.ts b/src/tabulae/defectae/defecta.ts new file mode 100644 index 0000000..b2dde9e --- /dev/null +++ b/src/tabulae/defectae/defecta.ts @@ -0,0 +1,32 @@ +import Ignavum from '../../miscella/ignavum'; +import Nuntius from '../../miscella/nuntius'; +import { Multiplex } from '../../praebeunda/verba'; +import Tabula from '../tabula'; +import { type Percolamen } from '../../praebeunda/agenda'; + +@Nuntius.factum('TabulaDefecta') +export default abstract class TabulaDefecta extends Tabula { + private readonly _relata: Ignavum>; + + protected abstract referatur (colamen: Percolamen): Percolamen | null; + + constructor (relata: Ignavum>) { + super(); + this._relata = relata; + } + + @Nuntius.futurus('TabulaDefecta') + async plenetur (): Promise { + const relata: Tabula = this._relata.ipse(); + (await relata.tabulentur()).forEach(hoc => { + const { scriptum, categoria, ...ista } = hoc; + const illa: Percolamen | null = this.referatur(ista as any); + if (illa) { + this.tabula.push({ + ...illa, + scriptum, categoria + } as Hoc); + } + }); + } +} diff --git a/src/tabulae/defectae/deponens.ts b/src/tabulae/defectae/deponens.ts new file mode 100644 index 0000000..3e4d47e --- /dev/null +++ b/src/tabulae/defectae/deponens.ts @@ -0,0 +1,124 @@ +import TabulaDefecta from './defecta'; +import { numerales, personae, tempora } from '../../miscella/enumerationes'; +import Ignavum from '../../miscella/ignavum'; +import { Actus } from '../../praebeunda/verba'; +import Tabula from '../tabula'; +import { type Percolamen } from '../../praebeunda/agenda'; + +type Optanda = { + relata: Ignavum>, + ut: string; +}; + +export default class TabulaDeponens extends TabulaDefecta { + static apponatur (ut: string): Percolamen[] { + const colamina: Percolamen[] = [ + { modus: 'infinitivus' } as Percolamen + ]; + + switch (ut) { + case 'semideponens': + [ + 'praesens', 'futurum', 'perfectum' + ].map(tempus => { + colamina.push({ + modus: 'participalis', + tempus: tempus + } as Percolamen); + }); + break; + case 'semideponensActiva': + colamina.push({ + modus: 'participalis', + tempus: 'futurum' + } as Percolamen); + break; + default: + [ + 'futurum', 'perfectum' + ].map(tempus => { + colamina.push({ + modus: 'participalis', + tempus: tempus + } as Percolamen); + }); + break; + } + + [ + 'praesens', 'futurum' + ].forEach(tempus => { + numerales.forEach(numeralis => { + colamina.push({ + modus: 'imperativus', + tempus: tempus, + numeralis: numeralis + } as Percolamen); + }) + }); + + [ + 'indicativus', 'subiunctivus' + ].forEach(modus => { + tempora.forEach(tempus => { + if ([ + modus === 'infinitiuvs', [ + 'praesens', 'infectum' + ].includes(tempus) + ].all()) { + numerales.forEach(numeralis => { + personae.forEach(persona => { + colamina.push({ + modus: modus, + tempus: tempus, + numeralis: numeralis, + persona: persona + } as Percolamen); + }); + }); + } + }); + }); + + return colamina; + } + + private readonly _ut: string; + + constructor (optanda: Optanda) { + super(optanda.relata); + this._ut = optanda.ut; + } + + protected referatur (colamen: Percolamen): Percolamen | null { + switch (this._ut) { + case 'semideponens': + if (colamen.modus === 'particpalis') { + colamen.vox = ''; + } else if (colamen.vox === 'passiva') { + return null; + } + case 'semideponensActiva': + if ([ + colamen.modus === 'participalis', + colamen.tempus === 'futurum', + colamen.vox === 'passiva' + ].any()) { + colamen.vox = ''; + } else if (colamen.vox === 'passiva') { + return null; + } + default: + if ([ + colamen.modus === 'participalis', + colamen.vox === 'passiva' + ].any()) { + colamen.vox = ''; + } else { + return null; + } + } + + return colamen; + } +} diff --git a/src/tabulae/defectae/impersonalis.ts b/src/tabulae/defectae/impersonalis.ts new file mode 100644 index 0000000..8630695 --- /dev/null +++ b/src/tabulae/defectae/impersonalis.ts @@ -0,0 +1,148 @@ +import TabulaDefecta from './defecta'; +import { + numerales, + personae, + tempora, + voces + } from '../../miscella/enumerationes'; +import Ignavum from '../../miscella/ignavum'; +import { Actus } from '../../praebeunda/verba'; +import Tabula from '../tabula'; +import { type Percolamen } from '../../praebeunda/agenda'; + +type Optanda = { + relata: Ignavum>, + et: string; +}; + +export default class TabulaImpersonalis extends TabulaDefecta { + static apponatur (et: string): Percolamen[] { + const colamina: Percolamen[] = [ + 'praesens', 'perfectum' + ].map(tempus => { + return { + modus: 'infinitivus', + tempus: tempus + } as Percolamen; + }); + + [ + 'praesens', 'futurum', 'perfectum' + ].forEach(tempus => { + colamina.push({ + modus: 'participalis', + tempus: tempus + } as Percolamen); + + if (tempus !== 'perfectum') { + colamina.push({ + modus: 'imperativus', + tempus: tempus + } as Percolamen); + } + }); + + if (et === 'passivo') { + [ + 'indicativus', 'subiunctivus' + ].forEach(modus => { + tempora.forEach(tempus => { + if ([ + modus === 'infinitiuvs', [ + 'praesens', 'infectum', 'perfectum', 'plusquamperfectum' + ].includes(tempus) + ].all()) { + numerales.forEach(numeralis => { + personae.forEach(persona => { + colamina.push({ + modus: modus, + vox: 'activa', + tempus: tempus, + numeralis: numeralis, + persona: persona + } as Percolamen); + }); + }); + + colamina.push({ + modus: modus, + vox: 'passiva', + tempus: tempus + } as Percolamen); + } + }); + }); + } else { + [ + 'indicativus', 'subiunctivus' + ].forEach(modus => { + voces.forEach(vox => { + tempora.forEach(tempus => { + if ([ + modus === 'infinitiuvs', [ + 'praesens', 'infectum', 'perfectum', 'plusquamperfectum', + !et.includes('semideponens'), + ![ 'perfectum', 'plusquamperfectum' ].includes(tempus) + ].includes(tempus) + ].all()) { + colamina.push({ + modus: modus, + vox: vox, + tempus: tempus + } as Percolamen); + } + }); + }); + }); + } + + return colamina; + } + + private readonly _et: string; + + constructor (optanda: Optanda) { + super(optanda.relata); + this._et = optanda.et; + } + + protected referatur (colamen: Percolamen): Percolamen | null { + if (this._et === 'semideponens') { + if (colamen.modus === 'particpalis') { + colamen.vox = ''; + } else if (colamen.vox === 'passiva') { + return null; + } + } else if (this._et === 'semideponensActiva') { + if (colamen.vox === 'passiva') { + switch (true) { + case [ + colamen.modus === 'participalis', + colamen.tempus === 'futurum', + ].any(): + colamen.vox = ''; + break; + default: + return null; + } + } + } + + if ([ + this._et === 'passivo', + colamen.vox === 'activa' + ].all()) { + return colamen; + } else { + return [ + colamen.numeralis === 'pluralis', + colamen.persona === 'prima', + colamen.persona === 'secunda' + ].any() ? null : { + ...colamen, + numeralis: '', + persona: '' + }; + } + } +} diff --git a/src/tabulae/defectae/numeralis/adiectivi.ts b/src/tabulae/defectae/numeralis/adiectivi.ts new file mode 100644 index 0000000..f217142 --- /dev/null +++ b/src/tabulae/defectae/numeralis/adiectivi.ts @@ -0,0 +1,41 @@ +import { casus, genera, gradi } from '../../../miscella/enumerationes'; +import Ignavum from '../../../miscella/ignavum'; +import { Adiectivum } from '../../../praebeunda/verba'; +import Tabula from '../../tabula'; +import TabulaDefecta from '../defecta'; +import { type Percolamen } from '../../../praebeunda/agenda'; + +type Optanda = { + relata: Ignavum>, + numeralis: string; +}; + +export default class TabulaAdiectiviNumeralis extends TabulaDefecta { + static apponatur (): Percolamen[] { + return gradi.map(gradus => { + return genera.map(genus => { + return casus.map(casus => { + return { + gradus: gradus, + genus: genus, + casus: casus + } as Percolamen; + }); + }).flat(); + }).flat(); + } + + private readonly _numeralis: string; + + constructor (optanda: Optanda) { + super(optanda.relata); + this._numeralis = optanda.numeralis; + } + + protected referatur (colamen: Percolamen): Percolamen | null { + return colamen.numeralis === this._numeralis ? { + ...colamen, + numeralis: '' + } : null; + } +} diff --git a/src/tabulae/defectae/numeralis/nominis.ts b/src/tabulae/defectae/numeralis/nominis.ts new file mode 100644 index 0000000..e15fac4 --- /dev/null +++ b/src/tabulae/defectae/numeralis/nominis.ts @@ -0,0 +1,35 @@ +import { casus } from '../../../miscella/enumerationes'; +import Ignavum from '../../../miscella/ignavum'; +import { Nomen } from '../../../praebeunda/verba'; +import Tabula from '../../tabula'; +import TabulaDefecta from '../defecta'; +import { type Percolamen } from '../../../praebeunda/agenda'; + +type Optanda = { + relata: Ignavum>, + numeralis: string; +}; + +export default class TabulaNominisNumeralis extends TabulaDefecta { + static apponatur (): Percolamen[] { + return casus.map(casus => { + return { + casus: casus + } as Percolamen; + }); + } + + private readonly _numeralis: string; + + constructor (optanda: Optanda) { + super(optanda.relata); + this._numeralis = optanda.numeralis; + } + + protected referatur (colamen: Percolamen): Percolamen | null { + return colamen.numeralis === this._numeralis ? { + ...colamen, + numeralis: '' + } : null; + } +} diff --git a/src/tabulae/defectae/perfecta.ts b/src/tabulae/defectae/perfecta.ts new file mode 100644 index 0000000..7790ce4 --- /dev/null +++ b/src/tabulae/defectae/perfecta.ts @@ -0,0 +1,72 @@ +import TabulaDefecta from './defecta'; +import { numerales, personae, tempora } from '../../miscella/enumerationes'; +import { Actus } from '../../praebeunda/verba'; +import { type Percolamen } from '../../praebeunda/agenda'; + +export default class TabulaPerfecta extends TabulaDefecta { + static apponatur (): Percolamen[] { + const colamina: Percolamen[] = [ + { modus: 'infinitivus' } as Percolamen + ]; + + [ + 'indicativus', 'subiunctivus' + ].forEach(modus => { + tempora.forEach(tempus => { + if ([ + modus === 'infinitiuvs', [ + 'praesens', 'infectum' + ].includes(tempus) + ].all()) { + numerales.forEach(numeralis => { + personae.forEach(persona => { + colamina.push({ + modus: modus, + tempus: tempus, + numeralis: numeralis, + persona: persona + } as Percolamen); + }); + }); + } + }); + }); + + return colamina; + } + + protected referatur (colamen: Percolamen): Percolamen | null { + switch (colamen.modus) { + case 'infinitivus': + if ([ + colamen.vox === 'activa', + colamen.tempus === 'perfectum' + ].all()) { + colamen.vox = ''; + colamen.tempus = ''; + } else { + return null; + } + break; + case 'indicativus': + case 'subiunctivus': + switch (colamen.tempus) { + case 'perfectum': + colamen.tempus = 'praesens'; + break; + case 'plusquamperfectum': + colamen.tempus = 'infectum'; + break; + case 'exigendum': + colamen.tempus = 'futurum'; + break; + default: + return null; + } + default: + return null; + } + + return colamen; + } +} diff --git a/src/tabulae/defectae/prona.ts b/src/tabulae/defectae/prona.ts new file mode 100644 index 0000000..69e1423 --- /dev/null +++ b/src/tabulae/defectae/prona.ts @@ -0,0 +1,39 @@ +import TabulaDefecta from './defecta'; +import Ignavum from '../../miscella/ignavum'; +import { Nomen } from '../../praebeunda/verba'; +import Tabula from '../tabula'; +import { type Percolamen } from '../../praebeunda/agenda'; + +export default class TabulaProna extends TabulaDefecta { + static apponatur (): Percolamen[] { + const colamina: Percolamen[] = [ + { + factum: 'infinitivum', + numeralis: '', + casus: '' + } as Percolamen + ]; + + [ + 'genitivus', + 'dativus', + 'accusativus', + 'ablativus' + ].forEach(casus => { + colamina.push({ + factum: 'gerundium', + casus: casus + } as Percolamen); + }); + + return colamina; + } + + constructor (relata: Ignavum>) { + super(relata); + } + + referatur (colamen: Percolamen): Percolamen | null { + return colamen.factum === 'supinum' ? null : colamen; + } +} diff --git a/src/tabulae/fissa.ts b/src/tabulae/fissa.ts new file mode 100644 index 0000000..89efcef --- /dev/null +++ b/src/tabulae/fissa.ts @@ -0,0 +1,33 @@ +import deepEqual from 'deep-equal'; +import { valedictor } from './collata'; +import Tabula from './tabula'; +import Ignavum from '../miscella/ignavum'; +import Nuntius from '../miscella/nuntius'; +import { Multiplex } from '../praebeunda/verba'; +import { type Percolamen } from '../praebeunda/agenda'; + +type Optanda = { + relata: Ignavum>, + tabula: Percolamen[]; +}; + +@Nuntius.factum('TabulaFissa') +export default class TabulaFissa extends Tabula { + private readonly _: Optanda; + + constructor (optanda: Optanda) { + super(); + this._ = optanda; + } + + @Nuntius.futurus('TabulaFissa') + async plenetur (): Promise { + const haec: Hoc[] = await this._.relata.ipse().tabulentur(); + this._.tabula.forEach(async colamen => { + const hoc: Hoc = haec.first(hoc => deepEqual(colamen, valedictor(hoc))); + if (hoc) { + this.tabula.push(hoc); + } + }); + } +} diff --git a/src/tabulae/inflexibilis.ts b/src/tabulae/inflexibilis.ts new file mode 100644 index 0000000..bbf4d08 --- /dev/null +++ b/src/tabulae/inflexibilis.ts @@ -0,0 +1,26 @@ +import Tabula from './tabula'; +import Nuntius from '../miscella/nuntius'; +import { Multiplex } from '../praebeunda/verba'; +import { type Faciendum } from '../praebeunda/interfecta'; + +type Factor = ((hoc: Hoc) => Illud); + +type Optanda = { + factor: Factor, + hoc: Hoc; +}; + +@Nuntius.factum('TabulaInflexibilis') +export default class TabulaInflexibilis, Illud extends Multiplex> extends Tabula { + private readonly _: Optanda; + + constructor (optanda: Optanda) { + super(); + this._ = optanda; + } + + @Nuntius.futurus('TabulaInflexibilis') + async plenetur (): Promise { + this.tabula.push(this._.factor(this._.hoc)); + } +} diff --git a/src/tabulae/numeraminis.ts b/src/tabulae/numeraminis.ts new file mode 100644 index 0000000..1c4284a --- /dev/null +++ b/src/tabulae/numeraminis.ts @@ -0,0 +1,53 @@ +import Tabula from './tabula'; +import { numeria } from '../miscella/enumerationes'; +import Nuntius from '../miscella/nuntius'; +import { NumeramenAgendum } from '../praebeunda/agenda'; +import { Numeramen } from '../praebeunda/verba'; + +@Nuntius.factum('TabulaNumeraminis') +export default class TabulaNumeraminis extends Tabula { + private readonly _agendum: NumeramenAgendum; + + constructor (agendum: NumeramenAgendum) { + super(); + this._agendum = agendum; + } + + @Nuntius.futurus('TabulaNumeraminis') + async plenetur (): Promise { + numeria.forEach(numerium => { + let scriptum: string = ''; + switch (numerium) { + case 'numerus': + scriptum = this._agendum.numerus; + break; + case 'ordinale': + scriptum = this._agendum.ordinale; + break; + case 'cardinale': + scriptum = this._agendum.cardinale; + break; + case 'adverbium': + scriptum = this._agendum.adverbium; + break; + case 'multiplicativum': + scriptum = this._agendum.multiplicativum; + break; + case 'distributivum': + scriptum = this._agendum.distributivum; + break; + case 'fractionale': + scriptum = this._agendum.fractionale; + break; + } + + + if (scriptum) { + this.tabula.push(Object.assign({}, { + numerium: numerium, + scriptum: scriptum + } as any)); + } + }); + } +} diff --git a/src/tabulae/recta.ts b/src/tabulae/recta.ts new file mode 100644 index 0000000..00fccfe --- /dev/null +++ b/src/tabulae/recta.ts @@ -0,0 +1,42 @@ +import TabulaScapalis from './scapalis'; +import Tabula from './tabula'; +import Nuntius from '../miscella/nuntius'; +import { Multiplex } from '../praebeunda/verba'; +import type { Percolamen, Positor } from '../praebeunda/agenda'; +import { type Faciendum } from '../praebeunda/interfecta'; + +type Radicator = (hoc: Hoc, colamen: Percolamen) => string; + +type Optanda, Illud extends Multiplex> = { + radicator: Radicator; + positor: Positor, + scapum?: string, + via: string, + hoc: Hoc; +}; + +@Nuntius.factum('TabulaRecta') +export default class TabulaRecta, Illud extends Multiplex> extends Tabula { + private readonly _: Optanda; + + constructor (optanda: Optanda) { + super(); + this._ = optanda; + } + + @Nuntius.futurus('TabulaRecta') + async plenetur (): Promise { + const scapalis: TabulaScapalis = new TabulaScapalis({ + positor: this._.positor, + scapum: this._.scapum, + via: this._.via + }); + + this.tabula = (await scapalis.tabulentur()).map(illud => { + let { scriptum, categoria, ...valores } = illud; + illud.scriptum = this._.radicator(this._.hoc, valores as any) + .concat(scriptum); + return illud; + }); + } +} diff --git a/src/tabulae/rescriptae/circumfixa.ts b/src/tabulae/rescriptae/circumfixa.ts new file mode 100644 index 0000000..57045bf --- /dev/null +++ b/src/tabulae/rescriptae/circumfixa.ts @@ -0,0 +1,22 @@ +import TabulaRescripta from './rescripta'; +import Ignavum from '../../miscella/ignavum'; +import { Multiplex } from '../../praebeunda/verba'; +import Tabula from '../tabula'; + +type Optanda = { + relata: Ignavum>, + praefixum: string, + suffixum: string; +}; + +export default class TabulaCircumfixa extends TabulaRescripta { + constructor (optanda: Optanda) { + super({ + relata: optanda.relata, + rescriptor: (scriptum: string): string => [ + optanda.praefixum, + optanda.suffixum + ].join(scriptum) + }); + } +} diff --git a/src/tabulae/rescriptae/praefixa.ts b/src/tabulae/rescriptae/praefixa.ts new file mode 100644 index 0000000..1659cf3 --- /dev/null +++ b/src/tabulae/rescriptae/praefixa.ts @@ -0,0 +1,18 @@ +import TabulaRescripta from './rescripta'; +import Ignavum from '../../miscella/ignavum'; +import { Multiplex } from '../../praebeunda/verba'; +import Tabula from '../tabula'; + +type Optanda = { + relata: Ignavum>, + praefixum: string; +}; + +export default class TabulaPraefixa extends TabulaRescripta { + constructor (optanda: Optanda) { + super({ + relata: optanda.relata, + rescriptor: (scriptum: string): string => optanda.praefixum.concat(scriptum) + }); + } +} diff --git a/src/tabulae/rescriptae/rescripta.ts b/src/tabulae/rescriptae/rescripta.ts new file mode 100644 index 0000000..8e1460e --- /dev/null +++ b/src/tabulae/rescriptae/rescripta.ts @@ -0,0 +1,30 @@ +import Ignavum from '../../miscella/ignavum'; +import Nuntius from '../../miscella/nuntius'; +import { Multiplex } from '../../praebeunda/verba'; +import Tabula from '../tabula'; + +type Rescriptor = (scriptum: string) => string; + +type Optanda = { + relata: Ignavum>, + rescriptor: Rescriptor; +}; + +@Nuntius.factum('TabulaRescripta') +export default class TabulaRescripta extends Tabula { + private readonly _: Optanda; + + constructor (optanda: Optanda) { + super(); + this._ = optanda; + } + + @Nuntius.futurus('TabulaRescripta') + async plenetur (): Promise { + const relata: Tabula = this._.relata.ipse(); + this.tabula = (await relata.tabulentur()).map(hoc => { + hoc.scriptum = this._.rescriptor(hoc.scriptum); + return hoc; + }); + } +} diff --git a/src/tabulae/rescriptae/suffixa.ts b/src/tabulae/rescriptae/suffixa.ts new file mode 100644 index 0000000..7d4beca --- /dev/null +++ b/src/tabulae/rescriptae/suffixa.ts @@ -0,0 +1,18 @@ +import TabulaRescripta from './rescripta'; +import Ignavum from '../../miscella/ignavum'; +import { Multiplex } from '../../praebeunda/verba'; +import Tabula from '../tabula'; + +type Optanda = { + relata: Ignavum>, + suffixum: string; +}; + +export default class TabulaSuffixa extends TabulaRescripta { + constructor (optanda: Optanda) { + super({ + relata: optanda.relata, + rescriptor: (scriptum: string): string => scriptum.concat(optanda.suffixum) + }); + } +} diff --git a/src/tabulae/scapalis.ts b/src/tabulae/scapalis.ts new file mode 100644 index 0000000..dcd822e --- /dev/null +++ b/src/tabulae/scapalis.ts @@ -0,0 +1,30 @@ +import Tabula from './tabula'; +import Lector, { LectorAgendorum } from '../lectores/lector'; +import Nuntius from '../miscella/nuntius'; +import { Multiplex } from '../praebeunda/verba'; +import type { Agendum, Positor } from '../praebeunda/agenda'; + +type Optanda = { + positor: Positor, + scapum?: string, + via: string; +}; + +@Nuntius.factum('TabulaScapalis') +export default class TabulaScapalis extends Tabula { + private readonly _: Optanda; + + constructor (optanda: Optanda) { + super(); + this._ = optanda; + } + + @Nuntius.futurus('TabulaScapalis') + async plenetur (): Promise { + const lector: Lector[]> = LectorAgendorum(this._.scapum); + const agenda: Agendum[] | null = await lector.legatur(this._.via); + if (agenda) { + this.tabula = agenda.map(agendum => this._.positor(agendum)); + } + } +} diff --git a/src/tabulae/tabula.ts b/src/tabulae/tabula.ts new file mode 100644 index 0000000..dbdfe2e --- /dev/null +++ b/src/tabulae/tabula.ts @@ -0,0 +1,20 @@ +import { Multiplex } from '../praebeunda/verba'; + +export default abstract class Tabula { + private _vacua: boolean; + protected tabula: Hoc[]; + protected abstract plenetur (): Promise; + + constructor () { + this.tabula = []; + this._vacua = true; + } + + async tabulentur (): Promise { + if (this._vacua) { + await this.plenetur().then(() => this._vacua = false); + } + + return this.tabula; + } +} diff --git a/src/tabulae/vicaria.ts b/src/tabulae/vicaria.ts new file mode 100644 index 0000000..5c31399 --- /dev/null +++ b/src/tabulae/vicaria.ts @@ -0,0 +1,55 @@ +import TabulaRecta from './recta'; +import Tabula from './tabula'; +import Nuntius from '../miscella/nuntius'; +import { Multiplex } from '../praebeunda/verba'; +import { type Positor } from '../praebeunda/agenda'; +import { type Faciendum } from '../praebeunda/interfecta'; +import { type Radicator } from '../putatores/putaturum'; + +type Optanda, Illud extends Multiplex> = { + prima: { + scapum?: string, + via: string; + }, secunda: { + scapum?: string, + via: string; + }, radicator: Radicator, + positor: Positor, + hoc: Hoc; +}; + +@Nuntius.factum('TabulaVicaria') +export default class TabulaVicaria, Illud extends Multiplex> extends Tabula { + private readonly _: Optanda; + + constructor (optanda: Optanda) { + super(); + this._ = optanda; + } + + @Nuntius.futurus('TabulaVicaria') + async plenetur (): Promise { + const prima: TabulaRecta = new TabulaRecta({ + radicator: this._.radicator, + positor: this._.positor, + scapum: this._.prima.scapum, + via: this._.prima.via, + hoc: this._.hoc + }); + + const secunda: TabulaRecta = new TabulaRecta({ + radicator: this._.radicator, + positor: this._.positor, + scapum: this._.secunda.scapum, + via: this._.secunda.via, + hoc: this._.hoc + }); + + this.tabula = [ + ...new Set([ + ...(await prima.tabulentur()), + ...(await secunda.tabulentur()) + ]) + ]; + } +} diff --git a/tsconfig.app.json b/tsconfig.app.json new file mode 100644 index 0000000..e14c754 --- /dev/null +++ b/tsconfig.app.json @@ -0,0 +1,14 @@ +{ + "extends": "@vue/tsconfig/tsconfig.dom.json", + "include": ["env.d.ts", "src/**/*", "src/**/*.vue"], + "exclude": ["src/**/__tests__/*"], + "compilerOptions": { + "composite": true, + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } + } +} diff --git a/tsconfig.debug.json b/tsconfig.debug.json new file mode 100644 index 0000000..b9abe78 --- /dev/null +++ b/tsconfig.debug.json @@ -0,0 +1,6 @@ +{ + "compilerOptions": { + "extendedDiagnostics": true, + "generateCpuProfile": "structorverborum.cpuprofile" + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..1e3d0d3 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,55 @@ +{ + "extends": "./tsconfig.debug", + "compileOnSave": true, + "compilerOptions": { + "allowArbitraryExtensions": true, + "allowImportingTsExtensions": true, + "allowJs": true, + "allowSyntheticDefaultImports": true, + "alwaysStrict": true, + "assumeChangesOnlyAffectDirectDependencies": true, + "baseUrl": "./src/facies", + "composite": true, + "declaration": true, + "downlevelIteration": true, + "emitDeclarationOnly": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "forceConsistentCasingInFileNames": true, + "importHelpers": true, + "lib": [ "dom" ], + "module": "NodeNext", + "moduleDetection": "auto", + "moduleResolution": "NodeNext", + "newLine": "lf", + "noErrorTruncation": true, + "noImplicitAny": true, + "noImplicitOverride": true, + "noImplicitReturns": true, + "noEmitOnError": true, + "removeComments": true, + "noPropertyAccessFromIndexSignature": true, + "noUncheckedIndexedAccess": true, + "noUnusedLocals": true, + "outDir": "./wwwroot/js", + "paths": { + "facies": [ "./src/facies/*.vue" ], + "figura": [ "src/figura.ts" ], + "scriptura": [ "./src/scriptura/*.ts" ] + }, + "sourceMap": true, + "target": "ES2022" + }, + "files": [], + "references": [ + { + "path": "./tsconfig.node.json" + }, + { + "path": "./tsconfig.app.json" + }, + { + "path": "./tsconfig.vitest.json" + } + ] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..f094063 --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,19 @@ +{ + "extends": "@tsconfig/node20/tsconfig.json", + "include": [ + "vite.config.*", + "vitest.config.*", + "cypress.config.*", + "nightwatch.conf.*", + "playwright.config.*" + ], + "compilerOptions": { + "composite": true, + "noEmit": true, + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + + "module": "ESNext", + "moduleResolution": "Bundler", + "types": ["node"] + } +} diff --git a/tsconfig.release.json b/tsconfig.release.json new file mode 100644 index 0000000..a63d6b7 --- /dev/null +++ b/tsconfig.release.json @@ -0,0 +1,5 @@ +{ + "compilerOptions": { + "extendedDiagnostics": false + } +} diff --git a/tsconfig.vitest.json b/tsconfig.vitest.json new file mode 100644 index 0000000..571995d --- /dev/null +++ b/tsconfig.vitest.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig.app.json", + "exclude": [], + "compilerOptions": { + "composite": true, + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.vitest.tsbuildinfo", + + "lib": [], + "types": ["node", "jsdom"] + } +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..01f6c2c --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,20 @@ +import { fileURLToPath, URL } from 'node:url' + +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' +import vueJsx from '@vitejs/plugin-vue-jsx' +import VueDevTools from 'vite-plugin-vue-devtools' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [ + vue(), + vueJsx(), + VueDevTools(), + ], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)) + } + } +}) diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 0000000..4b1c897 --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,14 @@ +import { fileURLToPath } from 'node:url' +import { mergeConfig, defineConfig, configDefaults } from 'vitest/config' +import viteConfig from './vite.config' + +export default mergeConfig( + viteConfig, + defineConfig({ + test: { + environment: 'jsdom', + exclude: [...configDefaults.exclude, 'e2e/**'], + root: fileURLToPath(new URL('./', import.meta.url)) + } + }) +)