From 3a0a55362fd98c74bfb14df320bcacafd0c57835 Mon Sep 17 00:00:00 2001 From: jelemux Date: Mon, 19 Oct 2020 22:46:45 +0200 Subject: break things down into their most basic parts --- Cargo.toml | 5 +- demo.pdf | 2948 ++++++++++++++++++++++++++++++++++++++++++++++++ excluded/model.rs | 88 ++ excluded/validation.rs | 37 + src/lib.rs | 2 - src/model.rs | 76 -- src/pdfgen.rs | 5 +- src/validation.rs | 37 - src/view.rs | 72 +- 9 files changed, 3093 insertions(+), 177 deletions(-) create mode 100644 demo.pdf create mode 100644 excluded/model.rs create mode 100644 excluded/validation.rs delete mode 100644 src/model.rs delete mode 100644 src/validation.rs diff --git a/Cargo.toml b/Cargo.toml index 2eaf0bf..2727e08 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,8 @@ edition = "2018" crate-type = ["cdylib", "rlib"] [dependencies] -yew = "0.17.3" # react-like frontend framework +yew = "0.17.4" # react-like frontend framework wasm-bindgen = "0.2.68" # enables interaction with js chrono = "0.4.19" # date & time -genpdf = { path = "../genpdf-rs" } # pdf generation \ No newline at end of file +genpdf = { path = "../genpdf-rs" } # pdf generation +js-sys = "0.3.45" # raw bindings to js global apis \ No newline at end of file diff --git a/demo.pdf b/demo.pdf new file mode 100644 index 0000000..1b6a4ad --- /dev/null +++ b/demo.pdf @@ -0,0 +1,2948 @@ +%PDF-1.3 +1 0 obj<>endobj +2 0 obj<>endobj +3 0 obj<>endobj +4 0 obj<>endobj +5 0 obj<>endobj +6 0 obj<>endobj +7 0 obj<>endobj +8 0 obj<>endobj +9 0 obj<>endobj +10 0 obj<>endobj +11 0 obj<>>>endobj +12 0 obj[/View/Design]endobj +13 0 obj<>endobj +14 0 obj<>endobj +15 0 obj<>endobj +16 0 obj<>endobj +17 0 obj<>/Font 16 0 R>>endobj +18 0 obj<>stream +/OC /MC0 BDC +q +BT +10 TL +182.08 791.20 Td +/Helvetica-Bold 20 Tf +<67656E70646620> Tj +/Helvetica-Bold 20 Tf +<44656D6F20> Tj +/Helvetica-Bold 20 Tf +<446F63756D656E74> Tj +ET +BT +6 TL +28.35 745.52 Td +/Helvetica 12 Tf +<5468697320> Tj +/Helvetica 12 Tf +<646F63756D656E7420> Tj +/Helvetica 12 Tf +<64656D6F6E7374726174657320> Tj +/Helvetica 12 Tf +<686F7720> Tj +/Helvetica 12 Tf +<74686520> Tj +/Helvetica 12 Tf +<67656E70646620> Tj +/Helvetica 12 Tf +<637261746520> Tj +/Helvetica 12 Tf +<67656E65726174657320> Tj +/Helvetica 12 Tf +<50444620> Tj +/Helvetica 12 Tf +<646F63756D656E74732E20> Tj +/Helvetica 12 Tf +<43757272656E746C792C20> Tj +/Helvetica 12 Tf +<67656E70646620> Tj +ET +BT +6 TL +28.35 728.27 Td +/Helvetica 12 Tf +<737570706F72747320> Tj +/Helvetica 12 Tf +<746865736520> Tj +/Helvetica 12 Tf +<656C656D656E74733A> Tj +ET +BT +6 TL +56.69 711.02 Td +/Courier-Bold 12 Tf +<54657874> Tj +/Helvetica 12 Tf +<2C20> Tj +/Helvetica 12 Tf +<6120> Tj +/Helvetica 12 Tf +<73696E676C6520> Tj +/Helvetica 12 Tf +<6C696E6520> Tj +/Helvetica 12 Tf +<6F6620> Tj +/Helvetica 12 Tf +<666F726D617474656420> Tj +/Helvetica 12 Tf +<7465787420> Tj +/Helvetica 12 Tf +<776974686F757420> Tj +/Helvetica 12 Tf +<7772617070696E672E> Tj +ET +BT +6 TL +44.35 711.02 Td +/Helvetica 12 Tf +<96> Tj +ET +BT +6 TL +56.69 693.77 Td +/Courier-Bold 12 Tf +<506172616772617068> Tj +/Helvetica 12 Tf +<2C20> Tj +/Helvetica 12 Tf +<6F6E6520> Tj +/Helvetica 12 Tf +<6F7220> Tj +/Helvetica 12 Tf +<6D6F726520> Tj +/Helvetica 12 Tf +<6C696E657320> Tj +/Helvetica 12 Tf +<6F6620> Tj +/Helvetica 12 Tf +<666F726D617474656420> Tj +/Helvetica 12 Tf +<7465787420> Tj +/Helvetica 12 Tf +<7769746820> Tj +/Helvetica 12 Tf +<7772617070696E6720> Tj +/Helvetica 12 Tf +<616E6420> Tj +/Helvetica 12 Tf +<616E20> Tj +/Helvetica 12 Tf +<616C69676E6D656E7420> Tj +/Helvetica 12 Tf +<286C6566742C20> Tj +/Helvetica 12 Tf +<63656E7465722C20> Tj +ET +BT +6 TL +56.69 676.52 Td +/Helvetica 12 Tf +<7269676874292E> Tj +ET +BT +6 TL +44.35 693.77 Td +/Helvetica 12 Tf +<96> Tj +ET +BT +6 TL +56.69 659.27 Td +/Courier-Bold 12 Tf +<4672616D6564456C656D656E74> Tj +/Helvetica 12 Tf +<2C20> Tj +/Helvetica 12 Tf +<6120> Tj +/Helvetica 12 Tf +<6672616D6520> Tj +/Helvetica 12 Tf +<647261776E20> Tj +/Helvetica 12 Tf +<61726F756E6420> Tj +/Helvetica 12 Tf +<6F7468657220> Tj +/Helvetica 12 Tf +<656C656D656E74732E> Tj +ET +BT +6 TL +44.35 659.27 Td +/Helvetica 12 Tf +<96> Tj +ET +BT +6 TL +56.69 642.03 Td +/Courier-Bold 12 Tf +<506164646564456C656D656E74> Tj +/Helvetica 12 Tf +<2C20> Tj +/Helvetica 12 Tf +<616E20> Tj +/Helvetica 12 Tf +<656C656D656E7420> Tj +/Helvetica 12 Tf +<7769746820> Tj +/Helvetica 12 Tf +<616E20> Tj +/Helvetica 12 Tf +<6164646974696F6E616C20> Tj +/Helvetica 12 Tf +<70616464696E672E> Tj +ET +BT +6 TL +44.35 642.03 Td +/Helvetica 12 Tf +<96> Tj +ET +BT +6 TL +56.69 624.78 Td +/Courier-Bold 12 Tf +<5374796C6564456C656D656E74> Tj +/Helvetica 12 Tf +<2C20> Tj +/Helvetica 12 Tf +<616E20> Tj +/Helvetica 12 Tf +<656C656D656E7420> Tj +/Helvetica 12 Tf +<7769746820> Tj +/Helvetica 12 Tf +<6E657720> Tj +/Helvetica 12 Tf +<64656661756C7420> Tj +/Helvetica 12 Tf +<7374796C652E> Tj +ET +BT +6 TL +44.35 624.78 Td +/Helvetica 12 Tf +<96> Tj +ET +BT +6 TL +56.69 607.53 Td +/Courier-Bold 12 Tf +<556E6F7264657265644C697374> Tj +/Helvetica 12 Tf +<2C20> Tj +/Helvetica 12 Tf +<616E20> Tj +/Helvetica 12 Tf +<756E6F72646572656420> Tj +/Helvetica 12 Tf +<6C69737420> Tj +/Helvetica 12 Tf +<6F6620> Tj +/Helvetica 12 Tf +<62756C6C657420> Tj +/Helvetica 12 Tf +<706F696E74732E> Tj +ET +BT +6 TL +44.35 607.53 Td +/Helvetica 12 Tf +<96> Tj +ET +BT +6 TL +56.69 590.28 Td +/Courier-Bold 12 Tf +<4F7264657265644C697374> Tj +/Helvetica 12 Tf +<2C20> Tj +/Helvetica 12 Tf +<616E20> Tj +/Helvetica 12 Tf +<6F72646572656420> Tj +/Helvetica 12 Tf +<6C69737420> Tj +/Helvetica 12 Tf +<6F6620> Tj +/Helvetica 12 Tf +<62756C6C657420> Tj +/Helvetica 12 Tf +<706F696E74732E> Tj +ET +BT +6 TL +85.04 573.03 Td +/Helvetica 12 Tf +<4A75737420> Tj +/Helvetica 12 Tf +<6C696B6520> Tj +/Helvetica 12 Tf +<746869732E> Tj +ET +BT +6 TL +69.36 573.03 Td +/Helvetica 12 Tf +<312E> Tj +ET +BT +6 TL +85.04 555.78 Td +/Helvetica 12 Tf +<416E6420> Tj +/Helvetica 12 Tf +<746869732E> Tj +ET +BT +6 TL +69.36 555.78 Td +/Helvetica 12 Tf +<322E> Tj +ET +BT +6 TL +44.35 590.28 Td +/Helvetica 12 Tf +<96> Tj +ET +BT +6 TL +56.69 538.53 Td +/Courier-Bold 12 Tf +<42756C6C6574506F696E74> Tj +/Helvetica 12 Tf +<2C20> Tj +/Helvetica 12 Tf +<616E20> Tj +/Helvetica 12 Tf +<656C656D656E7420> Tj +/Helvetica 12 Tf +<7769746820> Tj +/Helvetica 12 Tf +<6120> Tj +/Helvetica 12 Tf +<62756C6C657420> Tj +/Helvetica 12 Tf +<706F696E742C20> Tj +/Helvetica 12 Tf +<6A75737420> Tj +/Helvetica 12 Tf +<6C696B6520> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<7468697320> Tj +/Helvetica 12 Tf +<6C6973742E> Tj +ET +BT +6 TL +85.04 521.29 Td +/Helvetica 12 Tf +<4F6620> Tj +/Helvetica 12 Tf +<636F757273652C20> Tj +/Helvetica 12 Tf +<6C6973747320> Tj +/Helvetica 12 Tf +<63616E20> Tj +/Helvetica 12 Tf +<616C736F20> Tj +/Helvetica 12 Tf +<626520> Tj +/Helvetica 12 Tf +<6E65737465642E> Tj +ET +BT +6 TL +72.70 521.29 Td +/Helvetica 12 Tf +<96> Tj +ET +BT +6 TL +85.04 504.04 Td +/Helvetica 12 Tf +<416E6420> Tj +/Helvetica 12 Tf +<796F7520> Tj +/Helvetica 12 Tf +<63616E20> Tj +/Helvetica 12 Tf +<6368616E676520> Tj +/Helvetica 12 Tf +<74686520> Tj +/Helvetica 12 Tf +<62756C6C657420> Tj +/Helvetica 12 Tf +<73796D626F6C2E> Tj +ET +BT +6 TL +75.17 504.04 Td +/Helvetica 12 Tf +<7F> Tj +ET +BT +6 TL +44.35 538.53 Td +/Helvetica 12 Tf +<96> Tj +ET +BT +6 TL +56.69 486.79 Td +/Courier-Bold 12 Tf +<4C696E6561724C61796F7574> Tj +/Helvetica 12 Tf +<2C20> Tj +/Helvetica 12 Tf +<6120> Tj +/Helvetica 12 Tf +<636F6E7461696E657220> Tj +/Helvetica 12 Tf +<7468617420> Tj +/Helvetica 12 Tf +<766572746963616C6C7920> Tj +/Helvetica 12 Tf +<737461636B7320> Tj +/Helvetica 12 Tf +<69747320> Tj +/Helvetica 12 Tf +<656C656D656E74732E20> Tj +/Helvetica 12 Tf +<54686520> Tj +/Helvetica 12 Tf +<726F6F7420> Tj +/Helvetica 12 Tf +<656C656D656E7420> Tj +/Helvetica 12 Tf +<6F6620> Tj +/Helvetica 12 Tf +<6120> Tj +/Helvetica 12 Tf +<646F63752D> Tj +ET +BT +6 TL +56.69 469.54 Td +/Helvetica 12 Tf +<6D656E7420> Tj +/Helvetica 12 Tf +<697320> Tj +/Helvetica 12 Tf +<616C7761797320> Tj +/Helvetica 12 Tf +<6120> Tj +/Helvetica 12 Tf +<4C696E6561724C61796F75742E> Tj +ET +BT +6 TL +44.35 486.79 Td +/Helvetica 12 Tf +<96> Tj +ET +BT +6 TL +56.69 452.29 Td +/Courier-Bold 12 Tf +<5461626C654C61796F7574> Tj +/Helvetica 12 Tf +<2C20> Tj +/Helvetica 12 Tf +<6120> Tj +/Helvetica 12 Tf +<636F6E7461696E657220> Tj +/Helvetica 12 Tf +<7468617420> Tj +/Helvetica 12 Tf +<617272616E67657320> Tj +/Helvetica 12 Tf +<69747320> Tj +/Helvetica 12 Tf +<656C656D656E747320> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<726F777320> Tj +/Helvetica 12 Tf +<616E6420> Tj +/Helvetica 12 Tf +<636F6C756D6E732E> Tj +ET +BT +6 TL +44.35 452.29 Td +/Helvetica 12 Tf +<96> Tj +ET +BT +6 TL +56.69 435.04 Td +/Helvetica 12 Tf +<416E6420> Tj +/Helvetica 12 Tf +<736F6D6520> Tj +/Helvetica 12 Tf +<6D6F726520> Tj +/Helvetica 12 Tf +<7574696C69747920> Tj +/Helvetica 12 Tf +<656C656D656E747320> Tj +/Helvetica 12 Tf +<85> Tj +ET +BT +6 TL +44.35 435.04 Td +/Helvetica 12 Tf +<96> Tj +ET +BT +6 TL +28.35 391.92 Td +/Helvetica 12 Tf +<596F7520> Tj +/Helvetica 12 Tf +<616C726561647920> Tj +/Helvetica 12 Tf +<73617720> Tj +/Helvetica 12 Tf +<6C6973747320> Tj +/Helvetica 12 Tf +<616E6420> Tj +/Helvetica 12 Tf +<666F726D617474656420> Tj +/Helvetica 12 Tf +<63656E746572656420> Tj +/Helvetica 12 Tf +<746578742E20> Tj +/Helvetica 12 Tf +<4865726520> Tj +/Helvetica 12 Tf +<61726520> Tj +/Helvetica 12 Tf +<736F6D6520> Tj +/Helvetica 12 Tf +<6F7468657220> Tj +/Helvetica 12 Tf +<6578616D706C65733A> Tj +ET +BT +6 TL +436.87 374.67 Td +/Helvetica 12 Tf +<5468697320> Tj +/Helvetica 12 Tf +<697320> Tj +/Helvetica 12 Tf +<72696768742D616C69676E656420> Tj +/Helvetica 12 Tf +<746578742E> Tj +ET +BT +6 TL +31.18 357.42 Td +1.00 0.00 0.00 rg +/Helvetica 12 Tf +<416E6420> Tj +1.00 0.00 0.00 rg +/Helvetica 12 Tf +<7468697320> Tj +1.00 0.00 0.00 rg +/Helvetica 12 Tf +<70617261677261706820> Tj +1.00 0.00 0.00 rg +/Helvetica 12 Tf +<68617320> Tj +1.00 0.00 0.00 rg +/Helvetica 12 Tf +<6120> Tj +1.00 0.00 0.00 rg +/Helvetica 12 Tf +<6672616D6520> Tj +1.00 0.00 0.00 rg +/Helvetica 12 Tf +<647261776E20> Tj +1.00 0.00 0.00 rg +/Helvetica 12 Tf +<61726F756E6420> Tj +1.00 0.00 0.00 rg +/Helvetica 12 Tf +<697420> Tj +1.00 0.00 0.00 rg +/Helvetica 12 Tf +<616E6420> Tj +1.00 0.00 0.00 rg +/Helvetica 12 Tf +<697320> Tj +1.00 0.00 0.00 rg +/Helvetica 12 Tf +<636F6C6F7265642E> Tj +0.00 0.00 0.00 rg +ET +1.00 0.00 0.00 RG +28.35 370.83 m +28.35 353.58 l +S +0.00 0.00 0.00 RG +1.00 0.00 0.00 RG +566.93 370.83 m +566.93 353.58 l +S +0.00 0.00 0.00 RG +1.00 0.00 0.00 RG +28.35 370.83 m +566.93 370.83 l +S +0.00 0.00 0.00 RG +1.00 0.00 0.00 RG +28.35 353.58 m +566.93 353.58 l +S +0.00 0.00 0.00 RG +BT +5 TL +28.35 339.99 Td +/Courier 12 Tf +<596F7520> Tj +/Courier 12 Tf +<63616E20> Tj +/Courier 12 Tf +<616C736F20> Tj +/Courier 12 Tf +<75736520> Tj +/Courier 12 Tf +<6F7468657220> Tj +/Courier 12 Tf +<666F6E747320> Tj +/Courier 12 Tf +<696620> Tj +/Courier 12 Tf +<796F7520> Tj +/Courier 12 Tf +<77616E7420> Tj +/Courier 12 Tf +<746F2E> Tj +ET +BT +8 TL +28.35 318.71 Td +/Helvetica 16 Tf +<596F7520> Tj +/Helvetica 16 Tf +<63616E20> Tj +/Helvetica 16 Tf +<616C736F20> Tj +1.00 0.00 0.00 rg +/Helvetica 16 Tf +<636F6D62696E6520> Tj +0.00 0.00 1.00 rg +/Helvetica-Oblique 16 Tf +<6D756C7469706C6520> Tj +0.00 0.00 0.00 rg +/Courier-Bold 16 Tf +<666F726D617473> Tj +/Helvetica 16 Tf +<20> Tj +/Helvetica 16 Tf +<696E20> Tj +/Helvetica 16 Tf +<6F6E6520> Tj +/Helvetica 16 Tf +<7061726167726170682E> Tj +ET +BT +6 TL +28.35 274.31 Td +/Helvetica 12 Tf +<4865726520> Tj +/Helvetica 12 Tf +<697320> Tj +/Helvetica 12 Tf +<616E20> Tj +/Helvetica 12 Tf +<6578616D706C6520> Tj +/Helvetica 12 Tf +<7461626C653A> Tj +ET +BT +6 TL +31.18 254.23 Td +/Helvetica-Bold 12 Tf +<48656164657220> Tj +/Helvetica-Bold 12 Tf +<31> Tj +ET +BT +6 TL +210.71 254.23 Td +/Helvetica 12 Tf +<56616C756520> Tj +/Helvetica 12 Tf +<32> Tj +ET +207.87 270.47 m +207.87 247.55 l +S +28.35 247.55 m +207.87 247.55 l +S +207.87 270.47 m +207.87 247.55 l +S +207.87 247.55 m +566.93 247.55 l +S +BT +6 TL +31.18 231.31 Td +/Helvetica-Bold 12 Tf +<48656164657220> Tj +/Helvetica-Bold 12 Tf +<32> Tj +ET +BT +6 TL +210.71 231.31 Td +/Helvetica 12 Tf +<4120> Tj +/Helvetica 12 Tf +<6C6F6E6720> Tj +/Helvetica 12 Tf +<70617261677261706820> Tj +/Helvetica 12 Tf +<746F20> Tj +/Helvetica 12 Tf +<64656D6F6E73747261746520> Tj +/Helvetica 12 Tf +<686F7720> Tj +/Helvetica 12 Tf +<7772617070696E6720> Tj +/Helvetica 12 Tf +<776F726B7320> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<7461626C65732E20> Tj +/Helvetica 12 Tf +<20> Tj +ET +BT +6 TL +210.71 214.06 Td +/Helvetica 12 Tf +<4E6963652C20> Tj +/Helvetica 12 Tf +<72696768743F> Tj +ET +207.87 247.55 m +207.87 207.39 l +S +28.35 247.55 m +207.87 247.55 l +S +28.35 207.39 m +207.87 207.39 l +S +207.87 247.55 m +207.87 207.39 l +S +207.87 247.55 m +566.93 247.55 l +S +207.87 207.39 m +566.93 207.39 l +S +BT +6 TL +31.18 191.15 Td +/Helvetica-Bold 12 Tf +<48656164657220> Tj +/Helvetica-Bold 12 Tf +<33> Tj +ET +BT +6 TL +210.71 191.15 Td +/Helvetica 12 Tf +<4F6620> Tj +/Helvetica 12 Tf +<636F757273652C20> Tj +/Helvetica 12 Tf +<796F7520> Tj +/Helvetica 12 Tf +<63616E20> Tj +/Helvetica 12 Tf +<75736520> Tj +/Helvetica 12 Tf +<616C6C20> Tj +/Helvetica 12 Tf +<6F7468657220> Tj +/Helvetica 12 Tf +<656C656D656E747320> Tj +/Helvetica 12 Tf +<696E7369646520> Tj +/Helvetica 12 Tf +<6120> Tj +/Helvetica 12 Tf +<7461626C652E> Tj +ET +BT +6 TL +239.06 173.90 Td +/Helvetica 12 Tf +<4576656E20> Tj +/Helvetica 12 Tf +<6C6973747321> Tj +ET +BT +6 TL +226.71 173.90 Td +/Helvetica 12 Tf +<96> Tj +ET +BT +6 TL +241.89 156.65 Td +/Helvetica 12 Tf +<416E6420> Tj +/Helvetica 12 Tf +<6672616D657321> Tj +ET +239.06 170.05 m +239.06 152.81 l +S +564.09 170.05 m +564.09 152.81 l +S +239.06 170.05 m +564.09 170.05 l +S +239.06 152.81 m +564.09 152.81 l +S +BT +6 TL +226.71 156.65 Td +/Helvetica 12 Tf +<96> Tj +ET +207.87 207.39 m +207.87 149.97 l +S +28.35 207.39 m +207.87 207.39 l +S +207.87 207.39 m +207.87 149.97 l +S +207.87 207.39 m +566.93 207.39 l +S +BT +6 TL +28.35 110.69 Td +/Helvetica 12 Tf +<4E6F7720> Tj +/Helvetica 12 Tf +<6C6574927320> Tj +/Helvetica 12 Tf +<7072696E7420> Tj +/Helvetica 12 Tf +<6120> Tj +/Helvetica 12 Tf +<6C6F6E6720> Tj +/Helvetica 12 Tf +<7461626C6520> Tj +/Helvetica 12 Tf +<746F20> Tj +/Helvetica 12 Tf +<64656D6F6E73747261746520> Tj +/Helvetica 12 Tf +<686F7720> Tj +/Helvetica 12 Tf +<7061676520> Tj +/Helvetica 12 Tf +<7772617070696E6720> Tj +/Helvetica 12 Tf +<776F726B733A> Tj +ET +BT +6 TL +31.18 90.61 Td +/Helvetica-Bold 12 Tf +<496E646578> Tj +ET +BT +6 TL +120.94 90.61 Td +/Helvetica-Bold 12 Tf +<54657874> Tj +ET +28.35 106.85 m +28.35 83.93 l +S +118.11 106.85 m +118.11 83.93 l +S +28.35 106.85 m +118.11 106.85 l +S +28.35 83.93 m +118.11 83.93 l +S +118.11 106.85 m +118.11 83.93 l +S +566.93 106.85 m +566.93 83.93 l +S +118.11 106.85 m +566.93 106.85 l +S +118.11 83.93 m +566.93 83.93 l +S +BT +6 TL +31.18 67.69 Td +/Helvetica 12 Tf +<2330> Tj +ET +BT +6 TL +120.94 67.69 Td +/Helvetica 12 Tf +<4C6F72656D20> Tj +/Helvetica 12 Tf +<697073756D20> Tj +/Helvetica 12 Tf +<646F6C6F7220> Tj +/Helvetica 12 Tf +<73697420> Tj +/Helvetica 12 Tf +<616D65742C20> Tj +/Helvetica 12 Tf +<636F6E736563746574757220> Tj +/Helvetica 12 Tf +<61646970697363696E6720> Tj +/Helvetica 12 Tf +<656C69742C20> Tj +/Helvetica 12 Tf +<73656420> Tj +/Helvetica 12 Tf +<646F20> Tj +/Helvetica 12 Tf +<656975736D6F6420> Tj +/Helvetica 12 Tf +<74656D706F7220> Tj +/Helvetica 12 Tf +<696E2D> Tj +ET +BT +6 TL +120.94 50.44 Td +/Helvetica 12 Tf +<6369646964756E7420> Tj +/Helvetica 12 Tf +<757420> Tj +/Helvetica 12 Tf +<6C61626F726520> Tj +/Helvetica 12 Tf +<657420> Tj +/Helvetica 12 Tf +<646F6C6F726520> Tj +/Helvetica 12 Tf +<6D61676E6120> Tj +/Helvetica 12 Tf +<616C697175612E20> Tj +/Helvetica 12 Tf +<557420> Tj +/Helvetica 12 Tf +<656E696D20> Tj +/Helvetica 12 Tf +<616420> Tj +/Helvetica 12 Tf +<6D696E696D20> Tj +/Helvetica 12 Tf +<76656E69616D2C20> Tj +/Helvetica 12 Tf +<7175697320> Tj +/Helvetica 12 Tf +<6E6F732D> Tj +ET +BT +6 TL +120.94 33.19 Td +/Helvetica 12 Tf +<7472756420> Tj +/Helvetica 12 Tf +<657865726369746174696F6E20> Tj +/Helvetica 12 Tf +<756C6C616D636F20> Tj +/Helvetica 12 Tf +<6C61626F72697320> Tj +/Helvetica 12 Tf +<6E69736920> Tj +/Helvetica 12 Tf +<757420> Tj +/Helvetica 12 Tf +<616C697175697020> Tj +/Helvetica 12 Tf +<657820> Tj +/Helvetica 12 Tf +<656120> Tj +/Helvetica 12 Tf +<636F6D6D6F646F20> Tj +/Helvetica 12 Tf +<636F6E7365717561742E20> Tj +/Helvetica 12 Tf +<4475697320> Tj +ET +28.35 83.93 m +28.35 26.52 l +S +118.11 83.93 m +118.11 26.52 l +S +28.35 83.93 m +118.11 83.93 l +S +118.11 83.93 m +118.11 26.52 l +S +566.93 83.93 m +566.93 26.52 l +S +118.11 83.93 m +566.93 83.93 l +S +Q +EMC +endstream endobj +19 0 obj<>endobj +20 0 obj<>/Font 16 0 R>>endobj +21 0 obj<>stream +/OC /MC0 BDC +q +BT +6 TL +120.94 797.30 Td +/Helvetica 12 Tf +<746520> Tj +/Helvetica 12 Tf +<697275726520> Tj +/Helvetica 12 Tf +<646F6C6F7220> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<726570726568656E646572697420> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<766F6C75707461746520> Tj +/Helvetica 12 Tf +<76656C697420> Tj +/Helvetica 12 Tf +<6573736520> Tj +/Helvetica 12 Tf +<63696C6C756D20> Tj +/Helvetica 12 Tf +<646F6C6F726520> Tj +/Helvetica 12 Tf +<657520> Tj +/Helvetica 12 Tf +<66756769617420> Tj +/Helvetica 12 Tf +<6E756C6C6120> Tj +ET +BT +6 TL +120.94 780.05 Td +/Helvetica 12 Tf +<70617269617475722E20> Tj +/Helvetica 12 Tf +<45786365707465757220> Tj +/Helvetica 12 Tf +<73696E7420> Tj +/Helvetica 12 Tf +<6F6363616563617420> Tj +/Helvetica 12 Tf +<63757069646174617420> Tj +/Helvetica 12 Tf +<6E6F6E20> Tj +/Helvetica 12 Tf +<70726F6964656E742C20> Tj +/Helvetica 12 Tf +<73756E7420> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<63756C706120> Tj +/Helvetica 12 Tf +<71756920> Tj +/Helvetica 12 Tf +<6F66666963696120> Tj +ET +BT +6 TL +120.94 762.81 Td +/Helvetica 12 Tf +<6465736572756E7420> Tj +/Helvetica 12 Tf +<6D6F6C6C697420> Tj +/Helvetica 12 Tf +<616E696D20> Tj +/Helvetica 12 Tf +<696420> Tj +/Helvetica 12 Tf +<65737420> Tj +/Helvetica 12 Tf +<6C61626F72756D2E> Tj +ET +28.35 813.54 m +28.35 756.13 l +S +118.11 813.54 m +118.11 756.13 l +S +28.35 756.13 m +118.11 756.13 l +S +118.11 813.54 m +118.11 756.13 l +S +566.93 813.54 m +566.93 756.13 l +S +118.11 756.13 m +566.93 756.13 l +S +BT +6 TL +31.18 739.89 Td +/Helvetica 12 Tf +<2331> Tj +ET +BT +6 TL +120.94 739.89 Td +/Helvetica 12 Tf +<4C6F72656D20> Tj +/Helvetica 12 Tf +<697073756D20> Tj +/Helvetica 12 Tf +<646F6C6F7220> Tj +/Helvetica 12 Tf +<73697420> Tj +/Helvetica 12 Tf +<616D65742C20> Tj +/Helvetica 12 Tf +<636F6E736563746574757220> Tj +/Helvetica 12 Tf +<61646970697363696E6720> Tj +/Helvetica 12 Tf +<656C69742C20> Tj +/Helvetica 12 Tf +<73656420> Tj +/Helvetica 12 Tf +<646F20> Tj +/Helvetica 12 Tf +<656975736D6F6420> Tj +/Helvetica 12 Tf +<74656D706F7220> Tj +/Helvetica 12 Tf +<696E2D> Tj +ET +BT +6 TL +120.94 722.64 Td +/Helvetica 12 Tf +<6369646964756E7420> Tj +/Helvetica 12 Tf +<757420> Tj +/Helvetica 12 Tf +<6C61626F726520> Tj +/Helvetica 12 Tf +<657420> Tj +/Helvetica 12 Tf +<646F6C6F726520> Tj +/Helvetica 12 Tf +<6D61676E6120> Tj +/Helvetica 12 Tf +<616C697175612E20> Tj +/Helvetica 12 Tf +<557420> Tj +/Helvetica 12 Tf +<656E696D20> Tj +/Helvetica 12 Tf +<616420> Tj +/Helvetica 12 Tf +<6D696E696D20> Tj +/Helvetica 12 Tf +<76656E69616D2C20> Tj +/Helvetica 12 Tf +<7175697320> Tj +/Helvetica 12 Tf +<6E6F732D> Tj +ET +BT +6 TL +120.94 705.39 Td +/Helvetica 12 Tf +<7472756420> Tj +/Helvetica 12 Tf +<657865726369746174696F6E20> Tj +/Helvetica 12 Tf +<756C6C616D636F20> Tj +/Helvetica 12 Tf +<6C61626F72697320> Tj +/Helvetica 12 Tf +<6E69736920> Tj +/Helvetica 12 Tf +<757420> Tj +/Helvetica 12 Tf +<616C697175697020> Tj +/Helvetica 12 Tf +<657820> Tj +/Helvetica 12 Tf +<656120> Tj +/Helvetica 12 Tf +<636F6D6D6F646F20> Tj +/Helvetica 12 Tf +<636F6E7365717561742E20> Tj +/Helvetica 12 Tf +<4475697320> Tj +ET +BT +6 TL +120.94 688.14 Td +/Helvetica 12 Tf +<6175746520> Tj +/Helvetica 12 Tf +<697275726520> Tj +/Helvetica 12 Tf +<646F6C6F7220> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<726570726568656E646572697420> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<766F6C75707461746520> Tj +/Helvetica 12 Tf +<76656C697420> Tj +/Helvetica 12 Tf +<6573736520> Tj +/Helvetica 12 Tf +<63696C6C756D20> Tj +/Helvetica 12 Tf +<646F6C6F726520> Tj +/Helvetica 12 Tf +<657520> Tj +/Helvetica 12 Tf +<66756769617420> Tj +/Helvetica 12 Tf +<6E756C6C6120> Tj +ET +BT +6 TL +120.94 670.89 Td +/Helvetica 12 Tf +<70617269617475722E20> Tj +/Helvetica 12 Tf +<45786365707465757220> Tj +/Helvetica 12 Tf +<73696E7420> Tj +/Helvetica 12 Tf +<6F6363616563617420> Tj +/Helvetica 12 Tf +<63757069646174617420> Tj +/Helvetica 12 Tf +<6E6F6E20> Tj +/Helvetica 12 Tf +<70726F6964656E742C20> Tj +/Helvetica 12 Tf +<73756E7420> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<63756C706120> Tj +/Helvetica 12 Tf +<71756920> Tj +/Helvetica 12 Tf +<6F66666963696120> Tj +ET +BT +6 TL +120.94 653.64 Td +/Helvetica 12 Tf +<6465736572756E7420> Tj +/Helvetica 12 Tf +<6D6F6C6C697420> Tj +/Helvetica 12 Tf +<616E696D20> Tj +/Helvetica 12 Tf +<696420> Tj +/Helvetica 12 Tf +<65737420> Tj +/Helvetica 12 Tf +<6C61626F72756D2E> Tj +ET +28.35 756.13 m +28.35 646.97 l +S +118.11 756.13 m +118.11 646.97 l +S +28.35 756.13 m +118.11 756.13 l +S +28.35 646.97 m +118.11 646.97 l +S +118.11 756.13 m +118.11 646.97 l +S +566.93 756.13 m +566.93 646.97 l +S +118.11 756.13 m +566.93 756.13 l +S +118.11 646.97 m +566.93 646.97 l +S +BT +6 TL +31.18 630.73 Td +/Helvetica 12 Tf +<2332> Tj +ET +BT +6 TL +120.94 630.73 Td +/Helvetica 12 Tf +<4C6F72656D20> Tj +/Helvetica 12 Tf +<697073756D20> Tj +/Helvetica 12 Tf +<646F6C6F7220> Tj +/Helvetica 12 Tf +<73697420> Tj +/Helvetica 12 Tf +<616D65742C20> Tj +/Helvetica 12 Tf +<636F6E736563746574757220> Tj +/Helvetica 12 Tf +<61646970697363696E6720> Tj +/Helvetica 12 Tf +<656C69742C20> Tj +/Helvetica 12 Tf +<73656420> Tj +/Helvetica 12 Tf +<646F20> Tj +/Helvetica 12 Tf +<656975736D6F6420> Tj +/Helvetica 12 Tf +<74656D706F7220> Tj +/Helvetica 12 Tf +<696E2D> Tj +ET +BT +6 TL +120.94 613.48 Td +/Helvetica 12 Tf +<6369646964756E7420> Tj +/Helvetica 12 Tf +<757420> Tj +/Helvetica 12 Tf +<6C61626F726520> Tj +/Helvetica 12 Tf +<657420> Tj +/Helvetica 12 Tf +<646F6C6F726520> Tj +/Helvetica 12 Tf +<6D61676E6120> Tj +/Helvetica 12 Tf +<616C697175612E20> Tj +/Helvetica 12 Tf +<557420> Tj +/Helvetica 12 Tf +<656E696D20> Tj +/Helvetica 12 Tf +<616420> Tj +/Helvetica 12 Tf +<6D696E696D20> Tj +/Helvetica 12 Tf +<76656E69616D2C20> Tj +/Helvetica 12 Tf +<7175697320> Tj +/Helvetica 12 Tf +<6E6F732D> Tj +ET +BT +6 TL +120.94 596.23 Td +/Helvetica 12 Tf +<7472756420> Tj +/Helvetica 12 Tf +<657865726369746174696F6E20> Tj +/Helvetica 12 Tf +<756C6C616D636F20> Tj +/Helvetica 12 Tf +<6C61626F72697320> Tj +/Helvetica 12 Tf +<6E69736920> Tj +/Helvetica 12 Tf +<757420> Tj +/Helvetica 12 Tf +<616C697175697020> Tj +/Helvetica 12 Tf +<657820> Tj +/Helvetica 12 Tf +<656120> Tj +/Helvetica 12 Tf +<636F6D6D6F646F20> Tj +/Helvetica 12 Tf +<636F6E7365717561742E20> Tj +/Helvetica 12 Tf +<4475697320> Tj +ET +BT +6 TL +120.94 578.98 Td +/Helvetica 12 Tf +<6175746520> Tj +/Helvetica 12 Tf +<697275726520> Tj +/Helvetica 12 Tf +<646F6C6F7220> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<726570726568656E646572697420> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<766F6C75707461746520> Tj +/Helvetica 12 Tf +<76656C697420> Tj +/Helvetica 12 Tf +<6573736520> Tj +/Helvetica 12 Tf +<63696C6C756D20> Tj +/Helvetica 12 Tf +<646F6C6F726520> Tj +/Helvetica 12 Tf +<657520> Tj +/Helvetica 12 Tf +<66756769617420> Tj +/Helvetica 12 Tf +<6E756C6C6120> Tj +ET +BT +6 TL +120.94 561.73 Td +/Helvetica 12 Tf +<70617269617475722E20> Tj +/Helvetica 12 Tf +<45786365707465757220> Tj +/Helvetica 12 Tf +<73696E7420> Tj +/Helvetica 12 Tf +<6F6363616563617420> Tj +/Helvetica 12 Tf +<63757069646174617420> Tj +/Helvetica 12 Tf +<6E6F6E20> Tj +/Helvetica 12 Tf +<70726F6964656E742C20> Tj +/Helvetica 12 Tf +<73756E7420> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<63756C706120> Tj +/Helvetica 12 Tf +<71756920> Tj +/Helvetica 12 Tf +<6F66666963696120> Tj +ET +BT +6 TL +120.94 544.48 Td +/Helvetica 12 Tf +<6465736572756E7420> Tj +/Helvetica 12 Tf +<6D6F6C6C697420> Tj +/Helvetica 12 Tf +<616E696D20> Tj +/Helvetica 12 Tf +<696420> Tj +/Helvetica 12 Tf +<65737420> Tj +/Helvetica 12 Tf +<6C61626F72756D2E> Tj +ET +28.35 646.97 m +28.35 537.81 l +S +118.11 646.97 m +118.11 537.81 l +S +28.35 646.97 m +118.11 646.97 l +S +28.35 537.81 m +118.11 537.81 l +S +118.11 646.97 m +118.11 537.81 l +S +566.93 646.97 m +566.93 537.81 l +S +118.11 646.97 m +566.93 646.97 l +S +118.11 537.81 m +566.93 537.81 l +S +BT +6 TL +31.18 521.57 Td +/Helvetica 12 Tf +<2333> Tj +ET +BT +6 TL +120.94 521.57 Td +/Helvetica 12 Tf +<4C6F72656D20> Tj +/Helvetica 12 Tf +<697073756D20> Tj +/Helvetica 12 Tf +<646F6C6F7220> Tj +/Helvetica 12 Tf +<73697420> Tj +/Helvetica 12 Tf +<616D65742C20> Tj +/Helvetica 12 Tf +<636F6E736563746574757220> Tj +/Helvetica 12 Tf +<61646970697363696E6720> Tj +/Helvetica 12 Tf +<656C69742C20> Tj +/Helvetica 12 Tf +<73656420> Tj +/Helvetica 12 Tf +<646F20> Tj +/Helvetica 12 Tf +<656975736D6F6420> Tj +/Helvetica 12 Tf +<74656D706F7220> Tj +/Helvetica 12 Tf +<696E2D> Tj +ET +BT +6 TL +120.94 504.32 Td +/Helvetica 12 Tf +<6369646964756E7420> Tj +/Helvetica 12 Tf +<757420> Tj +/Helvetica 12 Tf +<6C61626F726520> Tj +/Helvetica 12 Tf +<657420> Tj +/Helvetica 12 Tf +<646F6C6F726520> Tj +/Helvetica 12 Tf +<6D61676E6120> Tj +/Helvetica 12 Tf +<616C697175612E20> Tj +/Helvetica 12 Tf +<557420> Tj +/Helvetica 12 Tf +<656E696D20> Tj +/Helvetica 12 Tf +<616420> Tj +/Helvetica 12 Tf +<6D696E696D20> Tj +/Helvetica 12 Tf +<76656E69616D2C20> Tj +/Helvetica 12 Tf +<7175697320> Tj +/Helvetica 12 Tf +<6E6F732D> Tj +ET +BT +6 TL +120.94 487.07 Td +/Helvetica 12 Tf +<7472756420> Tj +/Helvetica 12 Tf +<657865726369746174696F6E20> Tj +/Helvetica 12 Tf +<756C6C616D636F20> Tj +/Helvetica 12 Tf +<6C61626F72697320> Tj +/Helvetica 12 Tf +<6E69736920> Tj +/Helvetica 12 Tf +<757420> Tj +/Helvetica 12 Tf +<616C697175697020> Tj +/Helvetica 12 Tf +<657820> Tj +/Helvetica 12 Tf +<656120> Tj +/Helvetica 12 Tf +<636F6D6D6F646F20> Tj +/Helvetica 12 Tf +<636F6E7365717561742E20> Tj +/Helvetica 12 Tf +<4475697320> Tj +ET +BT +6 TL +120.94 469.82 Td +/Helvetica 12 Tf +<6175746520> Tj +/Helvetica 12 Tf +<697275726520> Tj +/Helvetica 12 Tf +<646F6C6F7220> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<726570726568656E646572697420> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<766F6C75707461746520> Tj +/Helvetica 12 Tf +<76656C697420> Tj +/Helvetica 12 Tf +<6573736520> Tj +/Helvetica 12 Tf +<63696C6C756D20> Tj +/Helvetica 12 Tf +<646F6C6F726520> Tj +/Helvetica 12 Tf +<657520> Tj +/Helvetica 12 Tf +<66756769617420> Tj +/Helvetica 12 Tf +<6E756C6C6120> Tj +ET +BT +6 TL +120.94 452.57 Td +/Helvetica 12 Tf +<70617269617475722E20> Tj +/Helvetica 12 Tf +<45786365707465757220> Tj +/Helvetica 12 Tf +<73696E7420> Tj +/Helvetica 12 Tf +<6F6363616563617420> Tj +/Helvetica 12 Tf +<63757069646174617420> Tj +/Helvetica 12 Tf +<6E6F6E20> Tj +/Helvetica 12 Tf +<70726F6964656E742C20> Tj +/Helvetica 12 Tf +<73756E7420> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<63756C706120> Tj +/Helvetica 12 Tf +<71756920> Tj +/Helvetica 12 Tf +<6F66666963696120> Tj +ET +BT +6 TL +120.94 435.32 Td +/Helvetica 12 Tf +<6465736572756E7420> Tj +/Helvetica 12 Tf +<6D6F6C6C697420> Tj +/Helvetica 12 Tf +<616E696D20> Tj +/Helvetica 12 Tf +<696420> Tj +/Helvetica 12 Tf +<65737420> Tj +/Helvetica 12 Tf +<6C61626F72756D2E> Tj +ET +28.35 537.81 m +28.35 428.65 l +S +118.11 537.81 m +118.11 428.65 l +S +28.35 537.81 m +118.11 537.81 l +S +28.35 428.65 m +118.11 428.65 l +S +118.11 537.81 m +118.11 428.65 l +S +566.93 537.81 m +566.93 428.65 l +S +118.11 537.81 m +566.93 537.81 l +S +118.11 428.65 m +566.93 428.65 l +S +BT +6 TL +31.18 412.41 Td +/Helvetica 12 Tf +<2334> Tj +ET +BT +6 TL +120.94 412.41 Td +/Helvetica 12 Tf +<4C6F72656D20> Tj +/Helvetica 12 Tf +<697073756D20> Tj +/Helvetica 12 Tf +<646F6C6F7220> Tj +/Helvetica 12 Tf +<73697420> Tj +/Helvetica 12 Tf +<616D65742C20> Tj +/Helvetica 12 Tf +<636F6E736563746574757220> Tj +/Helvetica 12 Tf +<61646970697363696E6720> Tj +/Helvetica 12 Tf +<656C69742C20> Tj +/Helvetica 12 Tf +<73656420> Tj +/Helvetica 12 Tf +<646F20> Tj +/Helvetica 12 Tf +<656975736D6F6420> Tj +/Helvetica 12 Tf +<74656D706F7220> Tj +/Helvetica 12 Tf +<696E2D> Tj +ET +BT +6 TL +120.94 395.16 Td +/Helvetica 12 Tf +<6369646964756E7420> Tj +/Helvetica 12 Tf +<757420> Tj +/Helvetica 12 Tf +<6C61626F726520> Tj +/Helvetica 12 Tf +<657420> Tj +/Helvetica 12 Tf +<646F6C6F726520> Tj +/Helvetica 12 Tf +<6D61676E6120> Tj +/Helvetica 12 Tf +<616C697175612E20> Tj +/Helvetica 12 Tf +<557420> Tj +/Helvetica 12 Tf +<656E696D20> Tj +/Helvetica 12 Tf +<616420> Tj +/Helvetica 12 Tf +<6D696E696D20> Tj +/Helvetica 12 Tf +<76656E69616D2C20> Tj +/Helvetica 12 Tf +<7175697320> Tj +/Helvetica 12 Tf +<6E6F732D> Tj +ET +BT +6 TL +120.94 377.91 Td +/Helvetica 12 Tf +<7472756420> Tj +/Helvetica 12 Tf +<657865726369746174696F6E20> Tj +/Helvetica 12 Tf +<756C6C616D636F20> Tj +/Helvetica 12 Tf +<6C61626F72697320> Tj +/Helvetica 12 Tf +<6E69736920> Tj +/Helvetica 12 Tf +<757420> Tj +/Helvetica 12 Tf +<616C697175697020> Tj +/Helvetica 12 Tf +<657820> Tj +/Helvetica 12 Tf +<656120> Tj +/Helvetica 12 Tf +<636F6D6D6F646F20> Tj +/Helvetica 12 Tf +<636F6E7365717561742E20> Tj +/Helvetica 12 Tf +<4475697320> Tj +ET +BT +6 TL +120.94 360.66 Td +/Helvetica 12 Tf +<6175746520> Tj +/Helvetica 12 Tf +<697275726520> Tj +/Helvetica 12 Tf +<646F6C6F7220> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<726570726568656E646572697420> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<766F6C75707461746520> Tj +/Helvetica 12 Tf +<76656C697420> Tj +/Helvetica 12 Tf +<6573736520> Tj +/Helvetica 12 Tf +<63696C6C756D20> Tj +/Helvetica 12 Tf +<646F6C6F726520> Tj +/Helvetica 12 Tf +<657520> Tj +/Helvetica 12 Tf +<66756769617420> Tj +/Helvetica 12 Tf +<6E756C6C6120> Tj +ET +BT +6 TL +120.94 343.41 Td +/Helvetica 12 Tf +<70617269617475722E20> Tj +/Helvetica 12 Tf +<45786365707465757220> Tj +/Helvetica 12 Tf +<73696E7420> Tj +/Helvetica 12 Tf +<6F6363616563617420> Tj +/Helvetica 12 Tf +<63757069646174617420> Tj +/Helvetica 12 Tf +<6E6F6E20> Tj +/Helvetica 12 Tf +<70726F6964656E742C20> Tj +/Helvetica 12 Tf +<73756E7420> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<63756C706120> Tj +/Helvetica 12 Tf +<71756920> Tj +/Helvetica 12 Tf +<6F66666963696120> Tj +ET +BT +6 TL +120.94 326.16 Td +/Helvetica 12 Tf +<6465736572756E7420> Tj +/Helvetica 12 Tf +<6D6F6C6C697420> Tj +/Helvetica 12 Tf +<616E696D20> Tj +/Helvetica 12 Tf +<696420> Tj +/Helvetica 12 Tf +<65737420> Tj +/Helvetica 12 Tf +<6C61626F72756D2E> Tj +ET +28.35 428.65 m +28.35 319.49 l +S +118.11 428.65 m +118.11 319.49 l +S +28.35 428.65 m +118.11 428.65 l +S +28.35 319.49 m +118.11 319.49 l +S +118.11 428.65 m +118.11 319.49 l +S +566.93 428.65 m +566.93 319.49 l +S +118.11 428.65 m +566.93 428.65 l +S +118.11 319.49 m +566.93 319.49 l +S +BT +6 TL +31.18 303.25 Td +/Helvetica 12 Tf +<2335> Tj +ET +BT +6 TL +120.94 303.25 Td +/Helvetica 12 Tf +<4C6F72656D20> Tj +/Helvetica 12 Tf +<697073756D20> Tj +/Helvetica 12 Tf +<646F6C6F7220> Tj +/Helvetica 12 Tf +<73697420> Tj +/Helvetica 12 Tf +<616D65742C20> Tj +/Helvetica 12 Tf +<636F6E736563746574757220> Tj +/Helvetica 12 Tf +<61646970697363696E6720> Tj +/Helvetica 12 Tf +<656C69742C20> Tj +/Helvetica 12 Tf +<73656420> Tj +/Helvetica 12 Tf +<646F20> Tj +/Helvetica 12 Tf +<656975736D6F6420> Tj +/Helvetica 12 Tf +<74656D706F7220> Tj +/Helvetica 12 Tf +<696E2D> Tj +ET +BT +6 TL +120.94 286.00 Td +/Helvetica 12 Tf +<6369646964756E7420> Tj +/Helvetica 12 Tf +<757420> Tj +/Helvetica 12 Tf +<6C61626F726520> Tj +/Helvetica 12 Tf +<657420> Tj +/Helvetica 12 Tf +<646F6C6F726520> Tj +/Helvetica 12 Tf +<6D61676E6120> Tj +/Helvetica 12 Tf +<616C697175612E20> Tj +/Helvetica 12 Tf +<557420> Tj +/Helvetica 12 Tf +<656E696D20> Tj +/Helvetica 12 Tf +<616420> Tj +/Helvetica 12 Tf +<6D696E696D20> Tj +/Helvetica 12 Tf +<76656E69616D2C20> Tj +/Helvetica 12 Tf +<7175697320> Tj +/Helvetica 12 Tf +<6E6F732D> Tj +ET +BT +6 TL +120.94 268.75 Td +/Helvetica 12 Tf +<7472756420> Tj +/Helvetica 12 Tf +<657865726369746174696F6E20> Tj +/Helvetica 12 Tf +<756C6C616D636F20> Tj +/Helvetica 12 Tf +<6C61626F72697320> Tj +/Helvetica 12 Tf +<6E69736920> Tj +/Helvetica 12 Tf +<757420> Tj +/Helvetica 12 Tf +<616C697175697020> Tj +/Helvetica 12 Tf +<657820> Tj +/Helvetica 12 Tf +<656120> Tj +/Helvetica 12 Tf +<636F6D6D6F646F20> Tj +/Helvetica 12 Tf +<636F6E7365717561742E20> Tj +/Helvetica 12 Tf +<4475697320> Tj +ET +BT +6 TL +120.94 251.50 Td +/Helvetica 12 Tf +<6175746520> Tj +/Helvetica 12 Tf +<697275726520> Tj +/Helvetica 12 Tf +<646F6C6F7220> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<726570726568656E646572697420> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<766F6C75707461746520> Tj +/Helvetica 12 Tf +<76656C697420> Tj +/Helvetica 12 Tf +<6573736520> Tj +/Helvetica 12 Tf +<63696C6C756D20> Tj +/Helvetica 12 Tf +<646F6C6F726520> Tj +/Helvetica 12 Tf +<657520> Tj +/Helvetica 12 Tf +<66756769617420> Tj +/Helvetica 12 Tf +<6E756C6C6120> Tj +ET +BT +6 TL +120.94 234.25 Td +/Helvetica 12 Tf +<70617269617475722E20> Tj +/Helvetica 12 Tf +<45786365707465757220> Tj +/Helvetica 12 Tf +<73696E7420> Tj +/Helvetica 12 Tf +<6F6363616563617420> Tj +/Helvetica 12 Tf +<63757069646174617420> Tj +/Helvetica 12 Tf +<6E6F6E20> Tj +/Helvetica 12 Tf +<70726F6964656E742C20> Tj +/Helvetica 12 Tf +<73756E7420> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<63756C706120> Tj +/Helvetica 12 Tf +<71756920> Tj +/Helvetica 12 Tf +<6F66666963696120> Tj +ET +BT +6 TL +120.94 217.00 Td +/Helvetica 12 Tf +<6465736572756E7420> Tj +/Helvetica 12 Tf +<6D6F6C6C697420> Tj +/Helvetica 12 Tf +<616E696D20> Tj +/Helvetica 12 Tf +<696420> Tj +/Helvetica 12 Tf +<65737420> Tj +/Helvetica 12 Tf +<6C61626F72756D2E> Tj +ET +28.35 319.49 m +28.35 210.33 l +S +118.11 319.49 m +118.11 210.33 l +S +28.35 319.49 m +118.11 319.49 l +S +28.35 210.33 m +118.11 210.33 l +S +118.11 319.49 m +118.11 210.33 l +S +566.93 319.49 m +566.93 210.33 l +S +118.11 319.49 m +566.93 319.49 l +S +118.11 210.33 m +566.93 210.33 l +S +BT +6 TL +31.18 194.08 Td +/Helvetica 12 Tf +<2336> Tj +ET +BT +6 TL +120.94 194.08 Td +/Helvetica 12 Tf +<4C6F72656D20> Tj +/Helvetica 12 Tf +<697073756D20> Tj +/Helvetica 12 Tf +<646F6C6F7220> Tj +/Helvetica 12 Tf +<73697420> Tj +/Helvetica 12 Tf +<616D65742C20> Tj +/Helvetica 12 Tf +<636F6E736563746574757220> Tj +/Helvetica 12 Tf +<61646970697363696E6720> Tj +/Helvetica 12 Tf +<656C69742C20> Tj +/Helvetica 12 Tf +<73656420> Tj +/Helvetica 12 Tf +<646F20> Tj +/Helvetica 12 Tf +<656975736D6F6420> Tj +/Helvetica 12 Tf +<74656D706F7220> Tj +/Helvetica 12 Tf +<696E2D> Tj +ET +BT +6 TL +120.94 176.84 Td +/Helvetica 12 Tf +<6369646964756E7420> Tj +/Helvetica 12 Tf +<757420> Tj +/Helvetica 12 Tf +<6C61626F726520> Tj +/Helvetica 12 Tf +<657420> Tj +/Helvetica 12 Tf +<646F6C6F726520> Tj +/Helvetica 12 Tf +<6D61676E6120> Tj +/Helvetica 12 Tf +<616C697175612E20> Tj +/Helvetica 12 Tf +<557420> Tj +/Helvetica 12 Tf +<656E696D20> Tj +/Helvetica 12 Tf +<616420> Tj +/Helvetica 12 Tf +<6D696E696D20> Tj +/Helvetica 12 Tf +<76656E69616D2C20> Tj +/Helvetica 12 Tf +<7175697320> Tj +/Helvetica 12 Tf +<6E6F732D> Tj +ET +BT +6 TL +120.94 159.59 Td +/Helvetica 12 Tf +<7472756420> Tj +/Helvetica 12 Tf +<657865726369746174696F6E20> Tj +/Helvetica 12 Tf +<756C6C616D636F20> Tj +/Helvetica 12 Tf +<6C61626F72697320> Tj +/Helvetica 12 Tf +<6E69736920> Tj +/Helvetica 12 Tf +<757420> Tj +/Helvetica 12 Tf +<616C697175697020> Tj +/Helvetica 12 Tf +<657820> Tj +/Helvetica 12 Tf +<656120> Tj +/Helvetica 12 Tf +<636F6D6D6F646F20> Tj +/Helvetica 12 Tf +<636F6E7365717561742E20> Tj +/Helvetica 12 Tf +<4475697320> Tj +ET +BT +6 TL +120.94 142.34 Td +/Helvetica 12 Tf +<6175746520> Tj +/Helvetica 12 Tf +<697275726520> Tj +/Helvetica 12 Tf +<646F6C6F7220> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<726570726568656E646572697420> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<766F6C75707461746520> Tj +/Helvetica 12 Tf +<76656C697420> Tj +/Helvetica 12 Tf +<6573736520> Tj +/Helvetica 12 Tf +<63696C6C756D20> Tj +/Helvetica 12 Tf +<646F6C6F726520> Tj +/Helvetica 12 Tf +<657520> Tj +/Helvetica 12 Tf +<66756769617420> Tj +/Helvetica 12 Tf +<6E756C6C6120> Tj +ET +BT +6 TL +120.94 125.09 Td +/Helvetica 12 Tf +<70617269617475722E20> Tj +/Helvetica 12 Tf +<45786365707465757220> Tj +/Helvetica 12 Tf +<73696E7420> Tj +/Helvetica 12 Tf +<6F6363616563617420> Tj +/Helvetica 12 Tf +<63757069646174617420> Tj +/Helvetica 12 Tf +<6E6F6E20> Tj +/Helvetica 12 Tf +<70726F6964656E742C20> Tj +/Helvetica 12 Tf +<73756E7420> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<63756C706120> Tj +/Helvetica 12 Tf +<71756920> Tj +/Helvetica 12 Tf +<6F66666963696120> Tj +ET +BT +6 TL +120.94 107.84 Td +/Helvetica 12 Tf +<6465736572756E7420> Tj +/Helvetica 12 Tf +<6D6F6C6C697420> Tj +/Helvetica 12 Tf +<616E696D20> Tj +/Helvetica 12 Tf +<696420> Tj +/Helvetica 12 Tf +<65737420> Tj +/Helvetica 12 Tf +<6C61626F72756D2E> Tj +ET +28.35 210.33 m +28.35 101.16 l +S +118.11 210.33 m +118.11 101.16 l +S +28.35 210.33 m +118.11 210.33 l +S +28.35 101.16 m +118.11 101.16 l +S +118.11 210.33 m +118.11 101.16 l +S +566.93 210.33 m +566.93 101.16 l +S +118.11 210.33 m +566.93 210.33 l +S +118.11 101.16 m +566.93 101.16 l +S +BT +6 TL +31.18 84.92 Td +/Helvetica 12 Tf +<2337> Tj +ET +BT +6 TL +120.94 84.92 Td +/Helvetica 12 Tf +<4C6F72656D20> Tj +/Helvetica 12 Tf +<697073756D20> Tj +/Helvetica 12 Tf +<646F6C6F7220> Tj +/Helvetica 12 Tf +<73697420> Tj +/Helvetica 12 Tf +<616D65742C20> Tj +/Helvetica 12 Tf +<636F6E736563746574757220> Tj +/Helvetica 12 Tf +<61646970697363696E6720> Tj +/Helvetica 12 Tf +<656C69742C20> Tj +/Helvetica 12 Tf +<73656420> Tj +/Helvetica 12 Tf +<646F20> Tj +/Helvetica 12 Tf +<656975736D6F6420> Tj +/Helvetica 12 Tf +<74656D706F7220> Tj +/Helvetica 12 Tf +<696E2D> Tj +ET +BT +6 TL +120.94 67.68 Td +/Helvetica 12 Tf +<6369646964756E7420> Tj +/Helvetica 12 Tf +<757420> Tj +/Helvetica 12 Tf +<6C61626F726520> Tj +/Helvetica 12 Tf +<657420> Tj +/Helvetica 12 Tf +<646F6C6F726520> Tj +/Helvetica 12 Tf +<6D61676E6120> Tj +/Helvetica 12 Tf +<616C697175612E20> Tj +/Helvetica 12 Tf +<557420> Tj +/Helvetica 12 Tf +<656E696D20> Tj +/Helvetica 12 Tf +<616420> Tj +/Helvetica 12 Tf +<6D696E696D20> Tj +/Helvetica 12 Tf +<76656E69616D2C20> Tj +/Helvetica 12 Tf +<7175697320> Tj +/Helvetica 12 Tf +<6E6F732D> Tj +ET +BT +6 TL +120.94 50.43 Td +/Helvetica 12 Tf +<7472756420> Tj +/Helvetica 12 Tf +<657865726369746174696F6E20> Tj +/Helvetica 12 Tf +<756C6C616D636F20> Tj +/Helvetica 12 Tf +<6C61626F72697320> Tj +/Helvetica 12 Tf +<6E69736920> Tj +/Helvetica 12 Tf +<757420> Tj +/Helvetica 12 Tf +<616C697175697020> Tj +/Helvetica 12 Tf +<657820> Tj +/Helvetica 12 Tf +<656120> Tj +/Helvetica 12 Tf +<636F6D6D6F646F20> Tj +/Helvetica 12 Tf +<636F6E7365717561742E20> Tj +/Helvetica 12 Tf +<4475697320> Tj +ET +BT +6 TL +120.94 33.18 Td +/Helvetica 12 Tf +<6175746520> Tj +/Helvetica 12 Tf +<697275726520> Tj +/Helvetica 12 Tf +<646F6C6F7220> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<726570726568656E646572697420> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<766F6C75707461746520> Tj +/Helvetica 12 Tf +<76656C697420> Tj +/Helvetica 12 Tf +<6573736520> Tj +/Helvetica 12 Tf +<63696C6C756D20> Tj +/Helvetica 12 Tf +<646F6C6F726520> Tj +/Helvetica 12 Tf +<657520> Tj +/Helvetica 12 Tf +<66756769617420> Tj +/Helvetica 12 Tf +<6E756C6C6120> Tj +ET +28.35 101.16 m +28.35 26.50 l +S +118.11 101.16 m +118.11 26.50 l +S +28.35 101.16 m +118.11 101.16 l +S +118.11 101.16 m +118.11 26.50 l +S +566.93 101.16 m +566.93 26.50 l +S +118.11 101.16 m +566.93 101.16 l +S +Q +EMC +endstream endobj +22 0 obj<>endobj +23 0 obj<>/Font 16 0 R>>endobj +24 0 obj<>stream +/OC /MC0 BDC +q +BT +6 TL +120.94 797.30 Td +/Helvetica 12 Tf +<7269617475722E20> Tj +/Helvetica 12 Tf +<45786365707465757220> Tj +/Helvetica 12 Tf +<73696E7420> Tj +/Helvetica 12 Tf +<6F6363616563617420> Tj +/Helvetica 12 Tf +<63757069646174617420> Tj +/Helvetica 12 Tf +<6E6F6E20> Tj +/Helvetica 12 Tf +<70726F6964656E742C20> Tj +/Helvetica 12 Tf +<73756E7420> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<63756C706120> Tj +/Helvetica 12 Tf +<71756920> Tj +/Helvetica 12 Tf +<6F66666963696120> Tj +/Helvetica 12 Tf +<64652D> Tj +ET +BT +6 TL +120.94 780.05 Td +/Helvetica 12 Tf +<736572756E7420> Tj +/Helvetica 12 Tf +<6D6F6C6C697420> Tj +/Helvetica 12 Tf +<616E696D20> Tj +/Helvetica 12 Tf +<696420> Tj +/Helvetica 12 Tf +<65737420> Tj +/Helvetica 12 Tf +<6C61626F72756D2E> Tj +ET +28.35 813.54 m +28.35 773.38 l +S +118.11 813.54 m +118.11 773.38 l +S +28.35 773.38 m +118.11 773.38 l +S +118.11 813.54 m +118.11 773.38 l +S +566.93 813.54 m +566.93 773.38 l +S +118.11 773.38 m +566.93 773.38 l +S +BT +6 TL +31.18 757.14 Td +/Helvetica 12 Tf +<2338> Tj +ET +BT +6 TL +120.94 757.14 Td +/Helvetica 12 Tf +<4C6F72656D20> Tj +/Helvetica 12 Tf +<697073756D20> Tj +/Helvetica 12 Tf +<646F6C6F7220> Tj +/Helvetica 12 Tf +<73697420> Tj +/Helvetica 12 Tf +<616D65742C20> Tj +/Helvetica 12 Tf +<636F6E736563746574757220> Tj +/Helvetica 12 Tf +<61646970697363696E6720> Tj +/Helvetica 12 Tf +<656C69742C20> Tj +/Helvetica 12 Tf +<73656420> Tj +/Helvetica 12 Tf +<646F20> Tj +/Helvetica 12 Tf +<656975736D6F6420> Tj +/Helvetica 12 Tf +<74656D706F7220> Tj +/Helvetica 12 Tf +<696E2D> Tj +ET +BT +6 TL +120.94 739.89 Td +/Helvetica 12 Tf +<6369646964756E7420> Tj +/Helvetica 12 Tf +<757420> Tj +/Helvetica 12 Tf +<6C61626F726520> Tj +/Helvetica 12 Tf +<657420> Tj +/Helvetica 12 Tf +<646F6C6F726520> Tj +/Helvetica 12 Tf +<6D61676E6120> Tj +/Helvetica 12 Tf +<616C697175612E20> Tj +/Helvetica 12 Tf +<557420> Tj +/Helvetica 12 Tf +<656E696D20> Tj +/Helvetica 12 Tf +<616420> Tj +/Helvetica 12 Tf +<6D696E696D20> Tj +/Helvetica 12 Tf +<76656E69616D2C20> Tj +/Helvetica 12 Tf +<7175697320> Tj +/Helvetica 12 Tf +<6E6F732D> Tj +ET +BT +6 TL +120.94 722.64 Td +/Helvetica 12 Tf +<7472756420> Tj +/Helvetica 12 Tf +<657865726369746174696F6E20> Tj +/Helvetica 12 Tf +<756C6C616D636F20> Tj +/Helvetica 12 Tf +<6C61626F72697320> Tj +/Helvetica 12 Tf +<6E69736920> Tj +/Helvetica 12 Tf +<757420> Tj +/Helvetica 12 Tf +<616C697175697020> Tj +/Helvetica 12 Tf +<657820> Tj +/Helvetica 12 Tf +<656120> Tj +/Helvetica 12 Tf +<636F6D6D6F646F20> Tj +/Helvetica 12 Tf +<636F6E7365717561742E20> Tj +/Helvetica 12 Tf +<4475697320> Tj +ET +BT +6 TL +120.94 705.39 Td +/Helvetica 12 Tf +<6175746520> Tj +/Helvetica 12 Tf +<697275726520> Tj +/Helvetica 12 Tf +<646F6C6F7220> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<726570726568656E646572697420> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<766F6C75707461746520> Tj +/Helvetica 12 Tf +<76656C697420> Tj +/Helvetica 12 Tf +<6573736520> Tj +/Helvetica 12 Tf +<63696C6C756D20> Tj +/Helvetica 12 Tf +<646F6C6F726520> Tj +/Helvetica 12 Tf +<657520> Tj +/Helvetica 12 Tf +<66756769617420> Tj +/Helvetica 12 Tf +<6E756C6C6120> Tj +ET +BT +6 TL +120.94 688.14 Td +/Helvetica 12 Tf +<70617269617475722E20> Tj +/Helvetica 12 Tf +<45786365707465757220> Tj +/Helvetica 12 Tf +<73696E7420> Tj +/Helvetica 12 Tf +<6F6363616563617420> Tj +/Helvetica 12 Tf +<63757069646174617420> Tj +/Helvetica 12 Tf +<6E6F6E20> Tj +/Helvetica 12 Tf +<70726F6964656E742C20> Tj +/Helvetica 12 Tf +<73756E7420> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<63756C706120> Tj +/Helvetica 12 Tf +<71756920> Tj +/Helvetica 12 Tf +<6F66666963696120> Tj +ET +BT +6 TL +120.94 670.89 Td +/Helvetica 12 Tf +<6465736572756E7420> Tj +/Helvetica 12 Tf +<6D6F6C6C697420> Tj +/Helvetica 12 Tf +<616E696D20> Tj +/Helvetica 12 Tf +<696420> Tj +/Helvetica 12 Tf +<65737420> Tj +/Helvetica 12 Tf +<6C61626F72756D2E> Tj +ET +28.35 773.38 m +28.35 664.22 l +S +118.11 773.38 m +118.11 664.22 l +S +28.35 773.38 m +118.11 773.38 l +S +28.35 664.22 m +118.11 664.22 l +S +118.11 773.38 m +118.11 664.22 l +S +566.93 773.38 m +566.93 664.22 l +S +118.11 773.38 m +566.93 773.38 l +S +118.11 664.22 m +566.93 664.22 l +S +BT +6 TL +31.18 647.98 Td +/Helvetica 12 Tf +<2339> Tj +ET +BT +6 TL +120.94 647.98 Td +/Helvetica 12 Tf +<4C6F72656D20> Tj +/Helvetica 12 Tf +<697073756D20> Tj +/Helvetica 12 Tf +<646F6C6F7220> Tj +/Helvetica 12 Tf +<73697420> Tj +/Helvetica 12 Tf +<616D65742C20> Tj +/Helvetica 12 Tf +<636F6E736563746574757220> Tj +/Helvetica 12 Tf +<61646970697363696E6720> Tj +/Helvetica 12 Tf +<656C69742C20> Tj +/Helvetica 12 Tf +<73656420> Tj +/Helvetica 12 Tf +<646F20> Tj +/Helvetica 12 Tf +<656975736D6F6420> Tj +/Helvetica 12 Tf +<74656D706F7220> Tj +/Helvetica 12 Tf +<696E2D> Tj +ET +BT +6 TL +120.94 630.73 Td +/Helvetica 12 Tf +<6369646964756E7420> Tj +/Helvetica 12 Tf +<757420> Tj +/Helvetica 12 Tf +<6C61626F726520> Tj +/Helvetica 12 Tf +<657420> Tj +/Helvetica 12 Tf +<646F6C6F726520> Tj +/Helvetica 12 Tf +<6D61676E6120> Tj +/Helvetica 12 Tf +<616C697175612E20> Tj +/Helvetica 12 Tf +<557420> Tj +/Helvetica 12 Tf +<656E696D20> Tj +/Helvetica 12 Tf +<616420> Tj +/Helvetica 12 Tf +<6D696E696D20> Tj +/Helvetica 12 Tf +<76656E69616D2C20> Tj +/Helvetica 12 Tf +<7175697320> Tj +/Helvetica 12 Tf +<6E6F732D> Tj +ET +BT +6 TL +120.94 613.48 Td +/Helvetica 12 Tf +<7472756420> Tj +/Helvetica 12 Tf +<657865726369746174696F6E20> Tj +/Helvetica 12 Tf +<756C6C616D636F20> Tj +/Helvetica 12 Tf +<6C61626F72697320> Tj +/Helvetica 12 Tf +<6E69736920> Tj +/Helvetica 12 Tf +<757420> Tj +/Helvetica 12 Tf +<616C697175697020> Tj +/Helvetica 12 Tf +<657820> Tj +/Helvetica 12 Tf +<656120> Tj +/Helvetica 12 Tf +<636F6D6D6F646F20> Tj +/Helvetica 12 Tf +<636F6E7365717561742E20> Tj +/Helvetica 12 Tf +<4475697320> Tj +ET +BT +6 TL +120.94 596.23 Td +/Helvetica 12 Tf +<6175746520> Tj +/Helvetica 12 Tf +<697275726520> Tj +/Helvetica 12 Tf +<646F6C6F7220> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<726570726568656E646572697420> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<766F6C75707461746520> Tj +/Helvetica 12 Tf +<76656C697420> Tj +/Helvetica 12 Tf +<6573736520> Tj +/Helvetica 12 Tf +<63696C6C756D20> Tj +/Helvetica 12 Tf +<646F6C6F726520> Tj +/Helvetica 12 Tf +<657520> Tj +/Helvetica 12 Tf +<66756769617420> Tj +/Helvetica 12 Tf +<6E756C6C6120> Tj +ET +BT +6 TL +120.94 578.98 Td +/Helvetica 12 Tf +<70617269617475722E20> Tj +/Helvetica 12 Tf +<45786365707465757220> Tj +/Helvetica 12 Tf +<73696E7420> Tj +/Helvetica 12 Tf +<6F6363616563617420> Tj +/Helvetica 12 Tf +<63757069646174617420> Tj +/Helvetica 12 Tf +<6E6F6E20> Tj +/Helvetica 12 Tf +<70726F6964656E742C20> Tj +/Helvetica 12 Tf +<73756E7420> Tj +/Helvetica 12 Tf +<696E20> Tj +/Helvetica 12 Tf +<63756C706120> Tj +/Helvetica 12 Tf +<71756920> Tj +/Helvetica 12 Tf +<6F66666963696120> Tj +ET +BT +6 TL +120.94 561.73 Td +/Helvetica 12 Tf +<6465736572756E7420> Tj +/Helvetica 12 Tf +<6D6F6C6C697420> Tj +/Helvetica 12 Tf +<616E696D20> Tj +/Helvetica 12 Tf +<696420> Tj +/Helvetica 12 Tf +<65737420> Tj +/Helvetica 12 Tf +<6C61626F72756D2E> Tj +ET +28.35 664.22 m +28.35 555.06 l +S +118.11 664.22 m +118.11 555.06 l +S +28.35 664.22 m +118.11 664.22 l +S +28.35 555.06 m +118.11 555.06 l +S +118.11 664.22 m +118.11 555.06 l +S +566.93 664.22 m +566.93 555.06 l +S +118.11 664.22 m +566.93 664.22 l +S +118.11 555.06 m +566.93 555.06 l +S +Q +EMC +endstream endobj +25 0 obj<>endobj +26 0 obj<>>>>>endobj +xref +0 27 +0000000000 65535 f +0000000009 00000 n +0000000095 00000 n +0000000186 00000 n +0000000280 00000 n +0000000378 00000 n +0000000462 00000 n +0000000551 00000 n +0000000643 00000 n +0000000739 00000 n +0000000803 00000 n +0000000953 00000 n +0000001045 00000 n +0000001074 00000 n +0000001143 00000 n +0000001212 00000 n +0000001281 00000 n +0000001470 00000 n +0000001527 00000 n +0000015650 00000 n +0000015816 00000 n +0000015873 00000 n +0000037709 00000 n +0000037875 00000 n +0000037932 00000 n +0000044967 00000 n +0000045133 00000 n +trailer +<> +startxref +45326 +%%EOF \ No newline at end of file diff --git a/excluded/model.rs b/excluded/model.rs new file mode 100644 index 0000000..39e4c96 --- /dev/null +++ b/excluded/model.rs @@ -0,0 +1,88 @@ +use chrono::NaiveDateTime; +use crate::validation::{self, *}; + +pub struct BCard { + pub name: Option, + pub nickname: Option, + pub label: Option>, + pub address: Option>, + pub emails: Option>>, + pub title: Option, + pub role: Option, + pub organization: Option, + pub urls: Option>>, + pub telephones: Option>>, + pub revision: Option, +} + +impl BCard { + pub fn new() -> Self { + Self { + name: None, + nickname: None, + label: None, + address: None, + emails: None, + title: None, + role: None, + organization: None, + urls: None, + telephones: None, + revision: None, + } + } +} + +impl Validation for BCard { + fn validate(&self) -> Result<(), ValidationError> { + let mut result = Ok(()); + result = match &self.name { + Some(n) => validation::add_results(result, n.validate()), + None => Err( ValidationError{ messages: vec![String::from("Name cannot be empty")] } ), + }; + // TODO add some more validation + result + } +} + +pub struct Name { + pub prefix: Option, + pub first_name: Option, + pub middle_name: Option, + pub family_name: Option, + pub suffix: Option, +} + +impl Name { + pub fn new() -> Self { + Self { + prefix: None, + first_name: None, + middle_name: None, + family_name: None, + suffix: None, + } + } +} + +impl Validation for Name { + fn validate(&self) -> std::result::Result<(), ValidationError> { todo!() } +} + +pub enum WorkHomeType { + Home, + Work, +} + +pub struct TypedProperty { + pub p_type: Option, + pub value: T, +} + +pub struct Address { + pub street: Option, + pub city: Option, + pub locality: Option, + pub postal_code: Option, + pub country: Option, +} \ No newline at end of file diff --git a/excluded/validation.rs b/excluded/validation.rs new file mode 100644 index 0000000..6258dcf --- /dev/null +++ b/excluded/validation.rs @@ -0,0 +1,37 @@ + + +pub trait Validation { + fn validate(&self) -> Result<(), ValidationError>; +} + +#[derive(Debug)] +pub struct ValidationError { + pub messages: Vec, +} + +impl std::fmt::Display for ValidationError { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + for msg in &self.messages { + write!(f, "{}\n", msg)?; + } + Ok(()) + } +} + +impl std::error::Error for ValidationError { } + +pub fn add_results(first: Result<(), ValidationError>, second: Result<(), ValidationError>) -> Result<(), ValidationError> { + if first.is_ok() && second.is_ok() { + Ok(()) + } else if first.is_ok() && second.is_err() { + second + } else if first.is_err() && second.is_ok() { + first + } else { + let mut first = first.err().unwrap(); + let mut second = second.err().unwrap(); + first.messages.append(&mut second.messages); + + Err( ValidationError{ messages: first.messages } ) + } +} \ No newline at end of file diff --git a/src/lib.rs b/src/lib.rs index 0b497a1..2e54410 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,4 +1,2 @@ mod view; -mod model; -mod validation; mod pdfgen; \ No newline at end of file diff --git a/src/model.rs b/src/model.rs deleted file mode 100644 index cac0820..0000000 --- a/src/model.rs +++ /dev/null @@ -1,76 +0,0 @@ -use chrono::NaiveDateTime; -use crate::validation::{self, *}; - -pub struct BCard { - name: Option, - nickname: Option, - label: Option>, - address: Option>, - emails: Option>>, - title: Option, - role: Option, - organization: Option, - urls: Option>>, - telephones: Option>>, - revision: Option, -} - -impl BCard { - fn new() -> Self { - Self { - name: None, - nickname: None, - label: None, - address: None, - emails: None, - title: None, - role: None, - organization: None, - urls: None, - telephones: None, - revision: None, - } - } -} - -impl Validation for BCard { - fn validate(&self) -> Result<(), ValidationError> { - let mut result = Ok(()); - result = match &self.name { - Some(n) => validation::add_results(result, n.validate()), - None => Err( ValidationError{ messages: vec![String::from("Name cannot be empty")] } ), - }; - // TODO add some more validation - result - } -} - -pub struct Name { - prefix: Option, - first_name: Option, - middle_name: Option, - family_name: Option, - suffix: Option, -} - -impl Validation for Name { - fn validate(&self) -> std::result::Result<(), ValidationError> { todo!() } -} - -pub enum WorkHomeType { - Home, - Work, -} - -pub struct TypedProperty { - p_type: Option, - value: T, -} - -pub struct Address { - street: Option, - city: Option, - locality: Option, - postal_code: Option, - country: Option, -} \ No newline at end of file diff --git a/src/pdfgen.rs b/src/pdfgen.rs index b8c7f7d..410bb99 100644 --- a/src/pdfgen.rs +++ b/src/pdfgen.rs @@ -1,8 +1,7 @@ use genpdf::Element as _; use genpdf::{elements, style, fonts}; -use crate::model::BCard; -pub fn genpdf(bcard: BCard) -> Vec { +pub fn genpdf() -> Vec { let regular_bytes = include_bytes!("../fonts/fira-sans.regular.ttf"); let regular_font_data = fonts::FontData::new(regular_bytes.to_vec(), None).expect("font data should be correct"); @@ -43,6 +42,6 @@ pub fn genpdf(bcard: BCard) -> Vec { // TODO fill doc with real data let mut buf: Vec = Vec::new(); - doc.render(&mut buf); + doc.render(&mut buf).expect("should render pdf"); buf } \ No newline at end of file diff --git a/src/validation.rs b/src/validation.rs deleted file mode 100644 index 715b472..0000000 --- a/src/validation.rs +++ /dev/null @@ -1,37 +0,0 @@ - - -pub trait Validation { - fn validate(&self) -> Result<(), ValidationError>; -} - -#[derive(Debug)] -pub struct ValidationError { - messages: Vec, -} - -impl std::fmt::Display for ValidationError { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - for msg in &self.messages { - write!(f, "{}\n", msg)?; - } - Ok(()) - } -} - -impl std::error::Error for ValidationError { } - -pub fn add_results(first: Result<(), ValidationError>, second: Result<(), ValidationError>) -> Result<(), ValidationError> { - if first.is_ok() && second.is_ok() { - Ok(()) - } else if first.is_ok() && second.is_err() { - second - } else if first.is_err() && second.is_ok() { - first - } else { - let mut first = first.err().unwrap(); - let mut second = second.err().unwrap(); - first.messages.append(&mut second.messages); - - Err( ValidationError{ messages: first.messages } ) - } -} \ No newline at end of file diff --git a/src/view.rs b/src/view.rs index 81634ed..9b95691 100644 --- a/src/view.rs +++ b/src/view.rs @@ -1,83 +1,41 @@ -use crate::model::BCard; +use crate::pdfgen; use wasm_bindgen::prelude::*; +use js_sys; use yew::prelude::*; struct Form { - link: ComponentLink, - bcard: BCard, } -impl Component for Form { // probably not necessary but who knows +impl Component for Form { type Message = (); type Properties = (); - fn create(_: Self::Properties, link: ComponentLink) -> Self { - Self { link } + fn create(_props: Self::Properties, _link: ComponentLink) -> Self { + Self { } } - fn update(&mut self, _: Self::Message) -> ShouldRender { + fn update(&mut self, _msg: Self::Message) -> ShouldRender { false } - fn change(&mut self, _: Self::Properties) -> ShouldRender { - false - } - - fn view(&self) -> Html { - html! { - - } - } -} - -// example - -struct Model { - link: ComponentLink, - value: i64, -} - -enum Msg { - AddOne, - Input(BCard), -} - -impl Component for Model { - type Message = Msg; - type Properties = (); - - fn create(_: Self::Properties, link: ComponentLink) -> Self { - Self { - link, - value: 0, - } - } - - fn update(&mut self, msg: Self::Message) -> ShouldRender { - match msg { - Msg::AddOne => self.value += 1 - } - true - } - fn change(&mut self, _props: Self::Properties) -> ShouldRender { - // Should only return "true" if new properties are different to - // previously received properties. - // This component has no properties so we will always return "false". false } fn view(&self) -> Html { - html! { -
- -

{ self.value }

-
+ let pdf_raw = /*include_bytes!("../demo.pdf"); // this works */pdfgen::genpdf(); // this doesn't work + let pdf = std::str::from_utf8(&pdf_raw).expect("should be able to convert to string"); + let uri_component: String = js_sys::encode_uri_component(pdf).into(); + let href = format!{"data:application/pdf;charset=utf-8,{}", uri_component }; + html!{ + + { "Download PDF" } + } } } #[wasm_bindgen(start)] pub fn run_app() { - App::::new().mount_to_body(); + App::
::new().mount_to_body(); } \ No newline at end of file -- cgit v1.2.3