diff options
author | jelemux <jeremias.weber@protonmail.com> | 2020-10-21 22:01:59 +0200 |
---|---|---|
committer | jelemux <jeremias.weber@protonmail.com> | 2020-10-21 22:01:59 +0200 |
commit | 10eb0e8cff7f0bc6b61a77a179fec55ee1dfe929 (patch) | |
tree | 7c3c3b4ed11e723fb5c55091af7d33440783f52b | |
parent | f267433455dbc69e771b06dd7c433c90ad978d33 (diff) | |
download | wasm-card-10eb0e8cff7f0bc6b61a77a179fec55ee1dfe929.tar.gz wasm-card-10eb0e8cff7f0bc6b61a77a179fec55ee1dfe929.tar.bz2 |
basic prototype with vcard and pdf generation
-rw-r--r-- | Cargo.toml | 19 | ||||
-rw-r--r-- | demo.pdf | 2948 | ||||
-rw-r--r-- | excluded/validation.rs | 37 | ||||
-rw-r--r-- | src/view.rs | 110 | ||||
-rw-r--r-- | static/index.html | 6 |
5 files changed, 119 insertions, 3001 deletions
@@ -10,11 +10,16 @@ edition = "2018" crate-type = ["cdylib", "rlib"] [dependencies] -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 -js-sys = "0.3.45" # raw bindings to js global apis +yew = "0.17.4" +wasm-bindgen = "0.2.68" +genpdf = { path = "../genpdf-rs" } +js-sys = "0.3.45" printpdf = "0.3.3" -web-sys = "0.3.45" -base64 = "0.13.0"
\ No newline at end of file +base64 = "0.13.0" +vcard = "0.4.7" +console_error_panic_hook = "0.1.6" + +[dependencies.chrono] +version = "0.4.19" +default-features = false +features = ["wasmbind", "js-sys"]
\ No newline at end of file diff --git a/demo.pdf b/demo.pdf deleted file mode 100644 index 1b6a4ad..0000000 --- a/demo.pdf +++ /dev/null @@ -1,2948 +0,0 @@ -%PDF-1.3 -1 0 obj<</Type/Font/Subtype/Type1/BaseFont/Helvetica/Encoding/WinAnsiEncoding>>endobj -2 0 obj<</Type/Font/Subtype/Type1/BaseFont/Helvetica-Bold/Encoding/WinAnsiEncoding>>endobj -3 0 obj<</Type/Font/Subtype/Type1/BaseFont/Helvetica-Oblique/Encoding/WinAnsiEncoding>>endobj -4 0 obj<</Type/Font/Subtype/Type1/BaseFont/Helvetica-BoldOblique/Encoding/WinAnsiEncoding>>endobj -5 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier/Encoding/WinAnsiEncoding>>endobj -6 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier-Bold/Encoding/WinAnsiEncoding>>endobj -7 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier-Oblique/Encoding/WinAnsiEncoding>>endobj -8 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier-BoldOblique/Encoding/WinAnsiEncoding>>endobj -9 0 obj<</Type/Pages/Count 3/Kids[19 0 R 22 0 R 25 0 R]>>endobj -10 0 obj<</Trapped/False/CreationDate(D:20201018111052+00'00')/ModDate(D:20201018111052+00'00')/GTS_PDFXVersion()/Title(genpdf Demo Document)>>endobj -11 0 obj<</Type/OCG/CreatorInfo<</Creator(Adobe Illustrator 14.0)/Subtype/Artwork>>>>endobj -12 0 obj[/View/Design]endobj -13 0 obj<</Type/OCG/Name(Layer 1)/Intent 12 0 R/Usage 11 0 R>>endobj -14 0 obj<</Type/OCG/Name(Layer 1)/Intent 12 0 R/Usage 11 0 R>>endobj -15 0 obj<</Type/OCG/Name(Layer 1)/Intent 12 0 R/Usage 11 0 R>>endobj -16 0 obj<</Courier 5 0 R/Helvetica-BoldOblique 4 0 R/Helvetica-Bold 2 0 R/Courier-Oblique 7 0 R/Helvetica-Oblique 3 0 R/Courier-Bold 6 0 R/Courier-BoldOblique 8 0 R/Helvetica 1 0 R>>endobj -17 0 obj<</Properties<</MC0 13 0 R>>/Font 16 0 R>>endobj -18 0 obj<</Length 14074>>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<</Type/Page/Rotate 0/MediaBox[0 0 595.28 841.89]/TrimBox[0 0 595.28 841.89]/CropBox[0 0 595.28 841.89]/Parent 9 0 R/Resources 17 0 R/Contents 18 0 R>>endobj -20 0 obj<</Properties<</MC0 14 0 R>>/Font 16 0 R>>endobj -21 0 obj<</Length 21787>>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<</Type/Page/Rotate 0/MediaBox[0 0 595.28 841.89]/TrimBox[0 0 595.28 841.89]/CropBox[0 0 595.28 841.89]/Parent 9 0 R/Resources 20 0 R/Contents 21 0 R>>endobj -23 0 obj<</Properties<</MC0 15 0 R>>/Font 16 0 R>>endobj -24 0 obj<</Length 6987>>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<</Type/Page/Rotate 0/MediaBox[0 0 595.28 841.89]/TrimBox[0 0 595.28 841.89]/CropBox[0 0 595.28 841.89]/Parent 9 0 R/Resources 23 0 R/Contents 24 0 R>>endobj -26 0 obj<</Type/Catalog/PageLayout/OneColumn/PageMode/Use0/Pages 9 0 R/OCProperties<</OCGs[13 0 R 14 0 R 15 0 R]/D<</Order[13 0 R 14 0 R 15 0 R]/RBGroups[]/ON[13 0 R 14 0 R 15 0 R]>>>>>>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 -<</Root 26 0 R/Info 10 0 R/ID[(HEIGIDGCBAAHFGBHAEFHCBHGAJHCJDHF)(HAGDGDAHDEGHBCFAHHDBHFHBEGCFIFGC)]/Size 27>> -startxref -45326 -%%EOF
\ No newline at end of file diff --git a/excluded/validation.rs b/excluded/validation.rs deleted file mode 100644 index 6258dcf..0000000 --- a/excluded/validation.rs +++ /dev/null @@ -1,37 +0,0 @@ - - -pub trait Validation { - fn validate(&self) -> Result<(), ValidationError>; -} - -#[derive(Debug)] -pub struct ValidationError { - pub messages: Vec<String>, -} - -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 38cfa58..6953496 100644 --- a/src/view.rs +++ b/src/view.rs @@ -1,21 +1,49 @@ +extern crate console_error_panic_hook; use crate::pdfgen; use wasm_bindgen::prelude::*; use js_sys; use yew::prelude::*; +use vcard::{VCard, VCardError}; +use std::panic; -struct Form { +fn init() { + panic::set_hook(Box::new(console_error_panic_hook::hook)); +} + +pub struct Form { + link: ComponentLink<Self>, + error: Option<String>, + formatted_name: String, + generated_vcard: Option<String>, +} + +pub enum Msg { + UpdateFormattedName(String), + GenerateVCard, + Nope, } impl Component for Form { - type Message = (); + type Message = Msg; type Properties = (); - fn create(_props: Self::Properties, _link: ComponentLink<Self>) -> Self { - Self { } + fn create(_props: Self::Properties, link: ComponentLink<Self>) -> Self { + Self { link, error: None, formatted_name: String::new(), generated_vcard: None } } - fn update(&mut self, _msg: Self::Message) -> ShouldRender { - false + fn update(&mut self, msg: Self::Message) -> ShouldRender { + match msg { + Msg::UpdateFormattedName(value) => self.formatted_name = String::from(value), + Msg::GenerateVCard => { + match self.generate_vcard() { + Ok(vcard) => self.generated_vcard = Some(vcard.to_string()), + Err(VCardError::FormatError(err)) => self.error = Some(err.to_string()), + Err(VCardError::EmptyFormatName) => self.error = Some(String::from("A VCard should have at least one formatted name.")), + }; + } + Msg::Nope => (), + }; + true } fn change(&mut self, _props: Self::Properties) -> ShouldRender { @@ -23,19 +51,87 @@ impl Component for Form { } fn view(&self) -> Html { + + let raw = pdfgen::genpdf(); + let data = base64::encode(&raw); + let uri_component: String = js_sys::encode_uri_component(&data).into(); + let href = format!{"data:application/pdf;base64,{}", uri_component }; + + let formatted_name_input = self.link.callback(|e: ChangeData| + match e { + ChangeData::Value(v) => Msg::UpdateFormattedName(v), + _ => Msg::Nope, + } + ); + + html!{ + <div id="form" > + { self.render_error() } + <label for="formatted_name">{ "Formatted Name" }</label> + <input type="text" id="formatted_name" onchange=formatted_name_input/> + <input id="prefix"/> + <input id="first_name"/> + <input id="middle_name"/> + <input id="last_name"/> + <input id="suffix"/> + <button id="generate-vcard" class="button primary small" onclick=self.link.callback(|_| Msg::GenerateVCard)>{ "Generate VCard" }</button> + + { self.render_pdf() } { self.render_vcard() } + </div> + } + } +} + +impl Form { + fn generate_vcard(&self) -> Result<VCard, VCardError> { + match VCard::from_formatted_name_str(&self.formatted_name) { + Ok(vcard) => Ok(vcard), + Err(err) => Err(err), + } + } + fn render_error(&self) -> Html { + if self.error.is_some() { + html!{ + <div class="alert danger"> + <p>{ self.error.as_ref().unwrap() }</p> + </div> + } + } else { + html!{} + } + } + fn render_pdf(&self) -> Html { let raw = pdfgen::genpdf(); let data = base64::encode(&raw); let uri_component: String = js_sys::encode_uri_component(&data).into(); let href = format!{"data:application/pdf;base64,{}", uri_component }; + html!{ - <a href=href download="demo.pdf" > + <a href=href download="demo.pdf" class="button success small" > { "Download PDF" } </a> } } + fn render_vcard(&self) -> Html { + if self.generated_vcard.is_some() { + let data = base64::encode(self.generated_vcard.as_ref().unwrap()); + let uri_component: String = js_sys::encode_uri_component(&data).into(); + let href = format!("data:text/vcard;base64,{}", uri_component); + + html!{ + <a href=href download=format!("{}.vcs",self.formatted_name) class="button success small"> + { "Download vCard" } + </a> + } + } else { + html!{} + } + } } + #[wasm_bindgen(start)] pub fn run_app() { + init(); App::<Form>::new().mount_to_body(); }
\ No newline at end of file diff --git a/static/index.html b/static/index.html index b0f1634..e9d3a0e 100644 --- a/static/index.html +++ b/static/index.html @@ -2,10 +2,12 @@ <html lang="en"> <head> <meta charset="utf-8"> + <style type="text/css">@import url(http://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700);a{font-size:.95em;text-decoration:none;color:#5f90b0}a:hover{color:#406882}*{margin:0;padding:0;font-family:"Source Sans Pro",sans-serif}.container{width:1000px;margin:0 auto}.pull-left{float:left}.pull-right{float:right}.row{min-height:2em;line-height:2em;width:100%}.span{float:left;display:inline;min-height:1em;margin:0 2% 20px 2%}.span:first-child{margin-left:0}.span:last-child{margin-right:0}.one{width:8%}.two{width:16%}.three{width:24%}.four{width:32%}.five{width:40%}.six{width:48%}.seven{width:56%}.eight{width:64%}.nine{width:72%}.ten{width:80%}.eleven{width:88%}.twelve{width:100%}.container:after{content:"\0020";display:block;height:0;clear:both;visibility:hidden}.row:before,.row:after{content:'\0020';display:block;overflow:hidden;visibility:hidden;width:0;height:0}.row:after{clear:both}.row{zoom:1}h1,h2,h3,h4,h5,h6{font-weight:500}h1{font-size:3.5em}h2{font-size:2.5em}h3{font-size:2em}h4{font-size:1.5em}h5{font-size:1em}h6{font-size:.8em}.table{width:100%;border-spacing:0;border-collapse:collapse;text-align:left}.table th,.table td{border-bottom:2px #d1d1d1 solid;padding:8px 12px}.table td{border-bottom:1px #d4d4d4 solid}.table.table-striped tbody tr:nth-child(2n+1){background-color:#f3f3f3}.table.table-bordered{border:1px #CCC solid}.table.table-bordered td,.table.table-bordered th{border:1px #CCC solid}.button{border:0;border-radius:4px;outline:0;cursor:pointer;}.button.small{padding:7px 20px;font-size:.95em}.button.large{padding:15px 45px;font-size:1.1em}.button.primary{color:#FFF;background:#5f90b0}.button.primary:hover{background:#5589ab}.button.success{color:#FFF;background:#4daf7c}.button.success:hover{background:#48a474}.button.danger{color:#FFF;background:#e6623c}.button.danger:hover{background:#e4572e}.navbar{background:#FFF;padding:10px;margin-bottom:10px;border-bottom:1px #DDD solid;height:30px}.navbar h4{color:#191919;font-weight:200}.navbar li{display:inline-block;padding:.3em 15px 0 0}.navbar li:last-child{padding-right:0}.navbar.fixed{position:fixed;left:0;right:0;top:0}.alert{padding:15px;margin:10px 0;border-radius:3px}.alert.primary{background:#e8eff3;border:1px #c5d7e3 solid}.alert.success{background:#daeee4;border:1px #b6dfca solid}.alert.danger{background:#fdf4f1;border:1px #f7cfc4 solid}@media only screen and (min-width: 768px) and (max-width: 999px){.container{width:768px}}@media only screen and (max-width: 767px){.container{width:300px}.container .table{width:100%;display:block;overflow:auto}}@media only screen and (min-width: 480px) and (max-width: 767px){.container{width:420px}.container .table{display:table}}</style> <title>BCard Wasm Web App</title> <script type="module"> - import init from "../pkg/bcard_wasm_webapp.js" - init() + Error.stackTraceLimit = Infinity; + import init from "../pkg/bcard_wasm_webapp.js"; + init(); </script> </head> <body> |