├── .gitignore
├── LICENSE.txt
├── README.md
├── images
├── S01200HQT173.jpg
├── S01200HQU10E.JPG
└── S01200HQU351.jpg
├── json
├── S01200HQT173.jpg.json
├── S01200HQU10E.JPG.json
├── S01200HQU10E.json
├── S01200HQU351.jpg.json
└── S01200HQU351.json
├── kotlin
├── build.gradle
├── gradlew
├── gradlew.bat
├── settings.gradle
└── src
│ ├── main
│ └── kotlin
│ │ └── com
│ │ └── google
│ │ └── vision
│ │ └── linesegmentation
│ │ └── GoogleVisionLineSegmentationParser.kt
│ └── test
│ ├── kotlin
│ └── com
│ │ └── google
│ │ └── vision
│ │ └── linesegmentation
│ │ └── GoogleVisionLineSegmentationParserTest.kt
│ └── resources
│ └── S01200HQT173.jpg.json
└── nodejs
├── ReadME.MD
├── coordinatesHelper.js
├── index.js
├── package.json
└── test
├── coordinatesHelper.test.js
└── index.test.js
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | package-lock\.json
3 |
4 | test-report\.xml
5 | *.iml
6 | kotlin/build
7 | kotlin/.gradle
--------------------------------------------------------------------------------
/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "[]"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright [yyyy] [name of copyright owner]
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | [](https://github.com/sshniro/line-segmentation-algorithm-to-gcp-vision/blob/master/LICENSE)
2 | [](https://travis-ci.com/sshniro/line-segmentation-algorithm-to-gcp-vision)
3 | # Introduction
4 |
5 | Google Vision provides 2 options for optical character recognition(OCR).
6 |
7 | ````
8 | - Option 1: TEXT_DETECTION - Words with coordinates
9 | - Option 2: DOCUMENT_TEXT_DETECTION - OCR on dense text to extract lines and paragraph information
10 | ````
11 |
12 | The second option is suitable for data extraction from articles (Dense Text such as News Papers/Books). This option has an
13 | intelligent segmentation method to merge words which are nearby and form lines and paragraphs.
14 |
15 | This feature is not desirable for images with sparse text content such as retail invoices, where the data relevant to the same line
16 | resides in two corners (A huge gap/whitespace between the product name and price). For these images the OCR segments the
17 | lines in a different order. If the distance of two words in a single line is too far apart then google vision identifies
18 | them as two separate paragraphs/lines.
19 |
20 | The below images shows the sample output for a typical invoice from google vision.
21 |
22 |
23 |
24 | This behaviour creates a problem in information extraction scenarios. For example, to extract a price of a product from a
25 | retail invoice the system needs to find a way to match the words in the same line. The algorithm proposed below performs
26 | line segmentation based on characters polygon coordinates for data extraction.
27 |
28 | ## Usage Guide
29 |
30 | Usage instruction for each programing language is located in the ReadMe files inside the relevant folders.
31 |
32 | ### Proposed Algorithm
33 |
34 | The implemented algorithm runs in two stages
35 |
36 | - Stage 1 - Groups nearby words to generate a longer strip of line
37 | - Stage 2 - Connects words which are far apart using the bounding polygon approach
38 |
39 |
40 |
41 |
42 | ## Explanation.
43 |
44 | Stage one helps to reduce the computations needed for the second phase of the algorithm. In the first phase the algorithms
45 | tries to merge words/characters which are very near. Stage 1 should be completed because for price related text like $3.40 is presented as 2 words by
46 | Google Vision (word 1: `$3.` word 2:`,40`). The first stage helps to concat nearby characters to form a text-block/word.
47 | This step helps reduces the computation needed for the second phase.
48 |
49 | The stage 2 algorithm draws an imaginary bounding polygon (with a threshold) over the words and computes the
50 | words which belongs to each line.
51 |
52 | ## Issues.
53 |
54 | The algorithm successfully works for most of the slanted and slightly crumpled images. But it will fail to highly
55 | crumpled or folded images.
56 |
57 | ## Test
58 | ##### Node JS
59 |
60 | - cd nodejs
61 | - npm install
62 | - npm test
63 |
64 |
65 | ## Future Work
66 |
67 | Try to implement the water-flow algorithm for line segmentation and measure accuracies with bounding polygon approach.
68 |
69 |
70 |
--------------------------------------------------------------------------------
/images/S01200HQT173.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sshniro/line-segmentation-algorithm-to-gcp-vision/b6e466ba6a19f08431d519f5419b7884011b15b1/images/S01200HQT173.jpg
--------------------------------------------------------------------------------
/images/S01200HQU10E.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sshniro/line-segmentation-algorithm-to-gcp-vision/b6e466ba6a19f08431d519f5419b7884011b15b1/images/S01200HQU10E.JPG
--------------------------------------------------------------------------------
/images/S01200HQU351.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sshniro/line-segmentation-algorithm-to-gcp-vision/b6e466ba6a19f08431d519f5419b7884011b15b1/images/S01200HQU351.jpg
--------------------------------------------------------------------------------
/json/S01200HQU10E.json:
--------------------------------------------------------------------------------
1 | {"id":"S01200HQU10E.JPG","lines":["SAVINGS","PASTA 2 FDR \u20AC3.5 -o . 50","FAR] Y FOOD 3 FOR 2 C\/F -3.00","SUPER RICE 3 FOR \u20AC2","GUARANTEE -1.15","SAVINGS -5.08","TCTAL TO PAY","CCUPON Rd .00","MasterCard SALE .89","AID AOD00000041010","NUMBER ICC","PAN NO 01","AUTH CODE 41327","MERCHANT \u20141810241","-","START : 04\/14 EXPIRY : 06\/17","Cardhol der PIN Veri f i ed","CHANGE DUE co , 00","TESCO","ex tra","ABERDEEN 0345 6\/78993","FOR LIFE *","2) co. 10 STELLA \u20AC7.00 FRENCH FRIES \u20AC2, 50 ROLL \u20AC3.00 STICKS \u20AC3.00 PIZZA \u20AC1.25 CHICKEN PIZZA .25","SAUSAGE El .65 SKINS .00 CHICKEN .50 FRESH El .00 EBEADED VROOM \u20AC2.50 BEEF RAVIOLI","VCII.JRY RICE","EEEF RAVIOLI","RICE \u20AC0.81","MAYONNAISE \u20AC2.69","SAVCURY RICE co .81","FOOD ea. 50","KITCHEN FOIL o .00","CAT FOOD \u20AC3.50","CFEETING CARD É3.oo","PASTA 2 FDR \u20AC3.5 -o . 50","FAR] Y FOOD 3 FOR 2 C\/F -3.00","GUARANTEE -1.15","SAVINGS -5.08","CCUPON Rd .00",". 97","MasterCard SALE .89","NUMBER ICC","CHANGE DUE co , 00","CLUBCARD STATEMENT","CLUECARD NUMBER xxxxxxxxxxxxxx4617","QUALIFYING SPEND $50.04","P)INIS THIS VISIT 50","UP TO 08\/11\/16 132","Brand","Guarantee","QUALIFYING SPEND $50.04","P)INIS THIS VISIT 50","UP TO 08\/11\/16 132","off today shop","found your branded basket cheaper elsewhere so we've already taken the","diffepence off before you paid.","Brand Guarantee instantly matches"]}
--------------------------------------------------------------------------------
/json/S01200HQU351.jpg.json:
--------------------------------------------------------------------------------
1 | [{"responses":[{"faceAnnotations":[],"landmarkAnnotations":[],"logoAnnotations":[],"labelAnnotations":[],"textAnnotations":[{"mid":"","locale":"en","description":"Sainsbury's\nêive well for less\nBRACKNELL01344 489992\nSainsbury's Supermarkets Ltd\n33 Holborn London EC1N 2HT\nwww, sainsburys.co.uk\nVat Number 660 4548 36\nSOWN & GROWN MUESLI\nSOWN & GROWN MUESLI\nBASICS TOM KETCHUP\n£0.66\n£0.66\n£0.30\n3 BALANCE DUE\n£1.62\n£10.00\nCASH\nCHANGE\n£8.38\nRKWKRKxxxxxxxxxxxxx\nWITH NECTAR YOU WOULD HAVE EARNED:\nPOINTS\nREGISTER AT www.nectar.com\nKKRWEEKKKKKKX*Xxxxxxxxxxxxxx\nC9063 #0014 9:30:12 9N0V2016\nS00650 R063\nThank you for your visit. Please let us\nknow how we did at tellsainsburys.co.uk\n","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":79,"y":179},{"x":1242,"y":179},{"x":1242,"y":1989},{"x":79,"y":1989}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"Sainsbury's","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":308,"y":179},{"x":1107,"y":179},{"x":1107,"y":271},{"x":308,"y":271}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"êive","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":334,"y":275},{"x":503,"y":275},{"x":503,"y":396},{"x":334,"y":396}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"well","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":546,"y":275},{"x":726,"y":275},{"x":726,"y":396},{"x":546,"y":396}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"for","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":769,"y":275},{"x":867,"y":275},{"x":867,"y":396},{"x":769,"y":396}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"less","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":911,"y":275},{"x":1050,"y":275},{"x":1050,"y":396},{"x":911,"y":396}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"BRACKNELL01344","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":356,"y":437},{"x":850,"y":437},{"x":850,"y":502},{"x":356,"y":502}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"489992","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":875,"y":437},{"x":1062,"y":437},{"x":1062,"y":502},{"x":875,"y":502}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"Sainsbury's","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":302,"y":558},{"x":620,"y":558},{"x":620,"y":614},{"x":302,"y":614}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"Supermarkets","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":654,"y":560},{"x":1002,"y":560},{"x":1002,"y":613},{"x":654,"y":613}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"Ltd","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":1032,"y":558},{"x":1119,"y":558},{"x":1119,"y":607},{"x":1032,"y":607}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"33","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":332,"y":623},{"x":387,"y":623},{"x":387,"y":672},{"x":332,"y":672}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"Holborn","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":418,"y":621},{"x":620,"y":621},{"x":620,"y":671},{"x":418,"y":671}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"London","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":651,"y":621},{"x":825,"y":621},{"x":825,"y":670},{"x":651,"y":670}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"EC1N","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":856,"y":618},{"x":972,"y":618},{"x":972,"y":667},{"x":856,"y":667}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"2HT","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":1003,"y":618},{"x":1085,"y":618},{"x":1085,"y":666},{"x":1003,"y":666}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"www,","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":422,"y":696},{"x":524,"y":696},{"x":524,"y":728},{"x":422,"y":728}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"sainsburys.co.uk","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":537,"y":680},{"x":998,"y":680},{"x":998,"y":731},{"x":537,"y":731}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"Vat","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":360,"y":735},{"x":442,"y":735},{"x":442,"y":797},{"x":360,"y":797}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"Number","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":464,"y":735},{"x":633,"y":735},{"x":633,"y":797},{"x":464,"y":797}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"660","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":710,"y":735},{"x":815,"y":735},{"x":815,"y":797},{"x":710,"y":797}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"4548","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":847,"y":735},{"x":962,"y":735},{"x":962,"y":797},{"x":847,"y":797}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"36","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":996,"y":735},{"x":1047,"y":735},{"x":1047,"y":797},{"x":996,"y":797}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"SOWN","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":129,"y":861},{"x":244,"y":861},{"x":244,"y":906},{"x":129,"y":906}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"&","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":275,"y":860},{"x":302,"y":860},{"x":302,"y":906},{"x":275,"y":906}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"GROWN","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":334,"y":860},{"x":477,"y":860},{"x":477,"y":905},{"x":334,"y":905}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"MUESLI","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":507,"y":856},{"x":676,"y":856},{"x":676,"y":905},{"x":507,"y":905}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"SOWN","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":130,"y":918},{"x":246,"y":918},{"x":246,"y":964},{"x":130,"y":964}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"&","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":277,"y":918},{"x":304,"y":918},{"x":304,"y":964},{"x":277,"y":964}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"GROWN","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":334,"y":918},{"x":478,"y":918},{"x":478,"y":963},{"x":334,"y":963}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"MUESLI","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":508,"y":915},{"x":676,"y":915},{"x":676,"y":965},{"x":508,"y":965}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"BASICS","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":130,"y":974},{"x":304,"y":974},{"x":304,"y":1025},{"x":130,"y":1025}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"TOM","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":337,"y":974},{"x":420,"y":974},{"x":420,"y":1022},{"x":337,"y":1022}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"KETCHUP","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":450,"y":973},{"x":649,"y":973},{"x":649,"y":1023},{"x":450,"y":1023}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"£0.66","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":970,"y":856},{"x":1113,"y":850},{"x":1115,"y":898},{"x":972,"y":904}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"£0.66","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":970,"y":915},{"x":1110,"y":908},{"x":1112,"y":956},{"x":972,"y":963}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"£0.30","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":971,"y":970},{"x":1114,"y":970},{"x":1114,"y":1018},{"x":971,"y":1018}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"3","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":132,"y":1083},{"x":151,"y":1083},{"x":152,"y":1150},{"x":133,"y":1150}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"BALANCE","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":177,"y":1083},{"x":387,"y":1081},{"x":388,"y":1148},{"x":178,"y":1150}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"DUE","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":412,"y":1080},{"x":493,"y":1079},{"x":494,"y":1146},{"x":413,"y":1147}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"£1.62","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":970,"y":1089},{"x":1113,"y":1088},{"x":1113,"y":1133},{"x":970,"y":1134}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"£10.00","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":940,"y":1145},{"x":1111,"y":1145},{"x":1111,"y":1193},{"x":940,"y":1193}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"CASH","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":192,"y":1152},{"x":306,"y":1147},{"x":308,"y":1194},{"x":194,"y":1199}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"CHANGE","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":196,"y":1265},{"x":361,"y":1265},{"x":361,"y":1309},{"x":196,"y":1309}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"£8.38","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":969,"y":1254},{"x":1109,"y":1260},{"x":1107,"y":1310},{"x":967,"y":1304}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"RKWKRKxxxxxxxxxxxxx","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":80,"y":1328},{"x":1211,"y":1324},{"x":1211,"y":1359},{"x":80,"y":1363}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"WITH","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":80,"y":1380},{"x":193,"y":1380},{"x":193,"y":1428},{"x":80,"y":1428}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"NECTAR","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":225,"y":1375},{"x":395,"y":1375},{"x":395,"y":1425},{"x":225,"y":1425}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"YOU","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":426,"y":1376},{"x":512,"y":1376},{"x":512,"y":1421},{"x":426,"y":1421}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"WOULD","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":539,"y":1375},{"x":682,"y":1375},{"x":682,"y":1421},{"x":539,"y":1421}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"HAVE","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":711,"y":1374},{"x":823,"y":1374},{"x":823,"y":1420},{"x":711,"y":1420}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"EARNED:","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":851,"y":1374},{"x":1040,"y":1374},{"x":1040,"y":1420},{"x":851,"y":1420}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"POINTS","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":79,"y":1437},{"x":251,"y":1436},{"x":251,"y":1481},{"x":79,"y":1482}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"REGISTER","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":80,"y":1489},{"x":310,"y":1489},{"x":310,"y":1540},{"x":80,"y":1540}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"AT","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":341,"y":1488},{"x":392,"y":1488},{"x":392,"y":1534},{"x":341,"y":1534}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"www.nectar.com","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":426,"y":1493},{"x":822,"y":1493},{"x":822,"y":1533},{"x":426,"y":1533}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"KKRWEEKKKKKKX*Xxxxxxxxxxxxxx","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":84,"y":1559},{"x":1208,"y":1549},{"x":1208,"y":1580},{"x":84,"y":1590}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"C9063","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":84,"y":1718},{"x":224,"y":1716},{"x":225,"y":1764},{"x":85,"y":1766}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"#","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":342,"y":1716},{"x":367,"y":1716},{"x":368,"y":1758},{"x":343,"y":1758}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"0014","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":370,"y":1712},{"x":481,"y":1711},{"x":482,"y":1756},{"x":371,"y":1757}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"9:30:12","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":625,"y":1709},{"x":820,"y":1707},{"x":821,"y":1755},{"x":626,"y":1757}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"9N0V2016","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":964,"y":1709},{"x":1187,"y":1706},{"x":1188,"y":1755},{"x":965,"y":1758}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"S00650","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":429,"y":1765},{"x":595,"y":1763},{"x":595,"y":1811},{"x":429,"y":1813}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"R063","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":708,"y":1765},{"x":819,"y":1764},{"x":819,"y":1809},{"x":708,"y":1810}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"Thank","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":143,"y":1884},{"x":282,"y":1884},{"x":282,"y":1930},{"x":143,"y":1930}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"you","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":313,"y":1890},{"x":397,"y":1890},{"x":397,"y":1930},{"x":313,"y":1930}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"for","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":429,"y":1876},{"x":511,"y":1876},{"x":511,"y":1924},{"x":429,"y":1924}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"your","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":541,"y":1885},{"x":651,"y":1885},{"x":651,"y":1928},{"x":541,"y":1928}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"visit.","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":682,"y":1876},{"x":838,"y":1876},{"x":838,"y":1922},{"x":682,"y":1922}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"Please","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":877,"y":1874},{"x":1045,"y":1874},{"x":1045,"y":1920},{"x":877,"y":1920}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"let","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":1079,"y":1874},{"x":1154,"y":1874},{"x":1154,"y":1920},{"x":1079,"y":1920}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"us","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":1187,"y":1889},{"x":1242,"y":1889},{"x":1242,"y":1923},{"x":1187,"y":1923}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"know","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":143,"y":1946},{"x":256,"y":1946},{"x":256,"y":1989},{"x":143,"y":1989}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"how","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":286,"y":1938},{"x":370,"y":1938},{"x":370,"y":1983},{"x":286,"y":1983}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"we","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":399,"y":1943},{"x":454,"y":1943},{"x":454,"y":1978},{"x":399,"y":1978}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"did","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":484,"y":1933},{"x":567,"y":1933},{"x":567,"y":1978},{"x":484,"y":1978}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"at","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":598,"y":1938},{"x":648,"y":1938},{"x":648,"y":1977},{"x":598,"y":1977}]},"locations":[],"properties":[]},{"mid":"","locale":"","description":"tellsainsburys.co.uk","score":0,"confidence":0,"topicality":0,"boundingPoly":{"vertices":[{"x":682,"y":1932},{"x":1241,"y":1932},{"x":1241,"y":1981},{"x":682,"y":1981}]},"locations":[],"properties":[]}],"fullTextAnnotation":{"pages":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"width":1455,"height":2592,"blocks":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":308,"y":179},{"x":1107,"y":179},{"x":1107,"y":271},{"x":308,"y":271}]},"paragraphs":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":308,"y":179},{"x":1107,"y":179},{"x":1107,"y":271},{"x":308,"y":271}]},"words":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":308,"y":179},{"x":1107,"y":179},{"x":1107,"y":271},{"x":308,"y":271}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":308,"y":184},{"x":395,"y":184},{"x":395,"y":267},{"x":308,"y":267}]},"text":"S"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":401,"y":202},{"x":480,"y":202},{"x":480,"y":265},{"x":401,"y":265}]},"text":"a"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":489,"y":184},{"x":519,"y":184},{"x":519,"y":262},{"x":489,"y":262}]},"text":"i"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":530,"y":202},{"x":613,"y":202},{"x":613,"y":262},{"x":530,"y":262}]},"text":"n"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":620,"y":199},{"x":687,"y":199},{"x":687,"y":259},{"x":620,"y":259}]},"text":"s"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":696,"y":182},{"x":779,"y":182},{"x":779,"y":260},{"x":696,"y":260}]},"text":"b"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":783,"y":197},{"x":866,"y":197},{"x":866,"y":260},{"x":783,"y":260}]},"text":"u"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":875,"y":197},{"x":937,"y":197},{"x":937,"y":260},{"x":875,"y":260}]},"text":"r"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":936,"y":197},{"x":1022,"y":197},{"x":1022,"y":271},{"x":936,"y":271}]},"text":"y"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1026,"y":179},{"x":1066,"y":179},{"x":1066,"y":259},{"x":1026,"y":259}]},"text":"'"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":1068,"y":179},{"x":1108,"y":179},{"x":1108,"y":259},{"x":1068,"y":259}]},"text":"s"}]}]}],"blockType":"TEXT"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":334,"y":275},{"x":1050,"y":275},{"x":1050,"y":396},{"x":334,"y":396}]},"paragraphs":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":334,"y":275},{"x":1050,"y":275},{"x":1050,"y":396},{"x":334,"y":396}]},"words":[{"property":{"detectedLanguages":[{"languageCode":"sq","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":334,"y":275},{"x":503,"y":275},{"x":503,"y":396},{"x":334,"y":396}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":334,"y":275},{"x":380,"y":275},{"x":380,"y":396},{"x":334,"y":396}]},"text":"ê"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":382,"y":275},{"x":402,"y":275},{"x":402,"y":396},{"x":382,"y":396}]},"text":"i"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":403,"y":275},{"x":462,"y":275},{"x":462,"y":396},{"x":403,"y":396}]},"text":"v"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":464,"y":275},{"x":503,"y":275},{"x":503,"y":396},{"x":464,"y":396}]},"text":"e"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":546,"y":275},{"x":726,"y":275},{"x":726,"y":396},{"x":546,"y":396}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":546,"y":275},{"x":605,"y":275},{"x":605,"y":396},{"x":546,"y":396}]},"text":"w"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":607,"y":275},{"x":644,"y":275},{"x":644,"y":396},{"x":607,"y":396}]},"text":"e"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":646,"y":275},{"x":685,"y":275},{"x":685,"y":396},{"x":646,"y":396}]},"text":"l"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":687,"y":275},{"x":727,"y":275},{"x":727,"y":396},{"x":687,"y":396}]},"text":"l"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":769,"y":275},{"x":867,"y":275},{"x":867,"y":396},{"x":769,"y":396}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":769,"y":275},{"x":787,"y":275},{"x":787,"y":396},{"x":769,"y":396}]},"text":"f"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":789,"y":275},{"x":828,"y":275},{"x":828,"y":396},{"x":789,"y":396}]},"text":"o"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":830,"y":275},{"x":867,"y":275},{"x":867,"y":396},{"x":830,"y":396}]},"text":"r"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":911,"y":275},{"x":1050,"y":275},{"x":1050,"y":396},{"x":911,"y":396}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":911,"y":275},{"x":928,"y":275},{"x":928,"y":396},{"x":911,"y":396}]},"text":"l"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":930,"y":275},{"x":971,"y":275},{"x":971,"y":396},{"x":930,"y":396}]},"text":"e"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":973,"y":275},{"x":1010,"y":275},{"x":1010,"y":396},{"x":973,"y":396}]},"text":"s"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":1012,"y":275},{"x":1049,"y":275},{"x":1049,"y":396},{"x":1012,"y":396}]},"text":"s"}]}]}],"blockType":"TEXT"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":356,"y":437},{"x":1062,"y":437},{"x":1062,"y":502},{"x":356,"y":502}]},"paragraphs":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":356,"y":437},{"x":1062,"y":437},{"x":1062,"y":502},{"x":356,"y":502}]},"words":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":356,"y":437},{"x":850,"y":437},{"x":850,"y":502},{"x":356,"y":502}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":356,"y":437},{"x":374,"y":437},{"x":374,"y":502},{"x":356,"y":502}]},"text":"B"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":377,"y":437},{"x":409,"y":437},{"x":409,"y":502},{"x":377,"y":502}]},"text":"R"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":411,"y":437},{"x":442,"y":437},{"x":442,"y":502},{"x":411,"y":502}]},"text":"A"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":444,"y":437},{"x":465,"y":437},{"x":465,"y":502},{"x":444,"y":502}]},"text":"C"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":467,"y":437},{"x":497,"y":437},{"x":497,"y":502},{"x":467,"y":502}]},"text":"K"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":498,"y":437},{"x":530,"y":437},{"x":530,"y":502},{"x":498,"y":502}]},"text":"N"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":532,"y":437},{"x":553,"y":437},{"x":553,"y":502},{"x":532,"y":502}]},"text":"E"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":555,"y":437},{"x":575,"y":437},{"x":575,"y":502},{"x":555,"y":502}]},"text":"L"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":577,"y":437},{"x":608,"y":437},{"x":608,"y":502},{"x":577,"y":502}]},"text":"L"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":610,"y":437},{"x":730,"y":437},{"x":730,"y":502},{"x":610,"y":502}]},"text":"0"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":731,"y":437},{"x":762,"y":437},{"x":762,"y":502},{"x":731,"y":502}]},"text":"1"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":764,"y":437},{"x":796,"y":437},{"x":796,"y":502},{"x":764,"y":502}]},"text":"3"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":798,"y":437},{"x":819,"y":437},{"x":819,"y":502},{"x":798,"y":502}]},"text":"4"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":821,"y":437},{"x":851,"y":437},{"x":851,"y":502},{"x":821,"y":502}]},"text":"4"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":875,"y":437},{"x":1062,"y":437},{"x":1062,"y":502},{"x":875,"y":502}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":875,"y":437},{"x":906,"y":437},{"x":906,"y":502},{"x":875,"y":502}]},"text":"4"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":908,"y":437},{"x":940,"y":437},{"x":940,"y":502},{"x":908,"y":502}]},"text":"8"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":942,"y":437},{"x":972,"y":437},{"x":972,"y":502},{"x":942,"y":502}]},"text":"9"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":974,"y":437},{"x":995,"y":437},{"x":995,"y":502},{"x":974,"y":502}]},"text":"9"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":997,"y":437},{"x":1028,"y":437},{"x":1028,"y":502},{"x":997,"y":502}]},"text":"9"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":1030,"y":437},{"x":1062,"y":437},{"x":1062,"y":502},{"x":1030,"y":502}]},"text":"2"}]}]}],"blockType":"TEXT"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":302,"y":558},{"x":1119,"y":558},{"x":1119,"y":797},{"x":302,"y":797}]},"paragraphs":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":302,"y":558},{"x":1119,"y":558},{"x":1119,"y":797},{"x":302,"y":797}]},"words":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":302,"y":558},{"x":620,"y":558},{"x":620,"y":614},{"x":302,"y":614}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":302,"y":563},{"x":327,"y":563},{"x":327,"y":613},{"x":302,"y":613}]},"text":"S"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":329,"y":563},{"x":351,"y":563},{"x":351,"y":613},{"x":329,"y":613}]},"text":"a"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":353,"y":563},{"x":377,"y":563},{"x":377,"y":613},{"x":353,"y":613}]},"text":"i"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":389,"y":574},{"x":416,"y":574},{"x":416,"y":613},{"x":389,"y":613}]},"text":"n"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":418,"y":575},{"x":445,"y":575},{"x":445,"y":609},{"x":418,"y":609}]},"text":"s"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":448,"y":564},{"x":475,"y":564},{"x":475,"y":612},{"x":448,"y":612}]},"text":"b"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":477,"y":573},{"x":504,"y":573},{"x":504,"y":609},{"x":477,"y":609}]},"text":"u"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":506,"y":573},{"x":532,"y":573},{"x":532,"y":609},{"x":506,"y":609}]},"text":"r"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":535,"y":573},{"x":562,"y":573},{"x":562,"y":614},{"x":535,"y":614}]},"text":"y"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":575,"y":558},{"x":596,"y":558},{"x":596,"y":609},{"x":575,"y":609}]},"text":"'"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":598,"y":558},{"x":620,"y":558},{"x":620,"y":609},{"x":598,"y":609}]},"text":"s"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":654,"y":560},{"x":1002,"y":560},{"x":1002,"y":613},{"x":654,"y":613}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":654,"y":560},{"x":681,"y":560},{"x":681,"y":608},{"x":654,"y":608}]},"text":"S"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":683,"y":560},{"x":710,"y":560},{"x":710,"y":608},{"x":683,"y":608}]},"text":"u"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":712,"y":572},{"x":739,"y":572},{"x":739,"y":613},{"x":712,"y":613}]},"text":"p"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":741,"y":574},{"x":768,"y":574},{"x":768,"y":606},{"x":741,"y":606}]},"text":"e"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":770,"y":572},{"x":796,"y":572},{"x":796,"y":607},{"x":770,"y":607}]},"text":"r"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":799,"y":572},{"x":826,"y":572},{"x":826,"y":604},{"x":799,"y":604}]},"text":"m"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":828,"y":572},{"x":855,"y":572},{"x":855,"y":604},{"x":828,"y":604}]},"text":"a"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":858,"y":572},{"x":885,"y":572},{"x":885,"y":604},{"x":858,"y":604}]},"text":"r"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":887,"y":563},{"x":914,"y":563},{"x":914,"y":607},{"x":887,"y":607}]},"text":"k"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":916,"y":563},{"x":943,"y":563},{"x":943,"y":607},{"x":916,"y":607}]},"text":"e"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":947,"y":563},{"x":968,"y":563},{"x":968,"y":607},{"x":947,"y":607}]},"text":"t"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":975,"y":569},{"x":1001,"y":569},{"x":1001,"y":606},{"x":975,"y":606}]},"text":"s"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1032,"y":558},{"x":1119,"y":558},{"x":1119,"y":607},{"x":1032,"y":607}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1032,"y":560},{"x":1059,"y":560},{"x":1059,"y":606},{"x":1032,"y":606}]},"text":"L"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1061,"y":560},{"x":1087,"y":560},{"x":1087,"y":606},{"x":1061,"y":606}]},"text":"t"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":1092,"y":558},{"x":1119,"y":558},{"x":1119,"y":607},{"x":1092,"y":607}]},"text":"d"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":332,"y":623},{"x":387,"y":623},{"x":387,"y":672},{"x":332,"y":672}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":332,"y":625},{"x":358,"y":625},{"x":358,"y":673},{"x":332,"y":673}]},"text":"3"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":361,"y":623},{"x":387,"y":623},{"x":387,"y":672},{"x":361,"y":672}]},"text":"3"}]},{"property":{"detectedLanguages":[{"languageCode":"br","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":418,"y":621},{"x":620,"y":621},{"x":620,"y":671},{"x":418,"y":671}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":418,"y":625},{"x":445,"y":625},{"x":445,"y":671},{"x":418,"y":671}]},"text":"H"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":448,"y":625},{"x":475,"y":625},{"x":475,"y":671},{"x":448,"y":671}]},"text":"o"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":483,"y":621},{"x":494,"y":621},{"x":494,"y":671},{"x":483,"y":671}]},"text":"l"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":506,"y":623},{"x":533,"y":623},{"x":533,"y":671},{"x":506,"y":671}]},"text":"b"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":536,"y":636},{"x":562,"y":636},{"x":562,"y":667},{"x":536,"y":667}]},"text":"o"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":564,"y":635},{"x":591,"y":635},{"x":591,"y":670},{"x":564,"y":670}]},"text":"r"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":593,"y":635},{"x":620,"y":635},{"x":620,"y":670},{"x":593,"y":670}]},"text":"n"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":651,"y":621},{"x":825,"y":621},{"x":825,"y":670},{"x":651,"y":670}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":651,"y":621},{"x":678,"y":621},{"x":678,"y":670},{"x":651,"y":670}]},"text":"L"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":680,"y":621},{"x":709,"y":621},{"x":709,"y":670},{"x":680,"y":670}]},"text":"o"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":711,"y":631},{"x":738,"y":631},{"x":738,"y":667},{"x":711,"y":667}]},"text":"n"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":740,"y":621},{"x":767,"y":621},{"x":767,"y":667},{"x":740,"y":667}]},"text":"d"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":769,"y":632},{"x":796,"y":632},{"x":796,"y":666},{"x":769,"y":666}]},"text":"o"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":798,"y":631},{"x":825,"y":631},{"x":825,"y":666},{"x":798,"y":666}]},"text":"n"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":856,"y":618},{"x":972,"y":618},{"x":972,"y":667},{"x":856,"y":667}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":856,"y":618},{"x":885,"y":618},{"x":885,"y":667},{"x":856,"y":667}]},"text":"E"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":887,"y":618},{"x":912,"y":618},{"x":912,"y":667},{"x":887,"y":667}]},"text":"C"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":920,"y":620},{"x":940,"y":620},{"x":940,"y":668},{"x":920,"y":668}]},"text":"1"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":945,"y":618},{"x":972,"y":618},{"x":972,"y":666},{"x":945,"y":666}]},"text":"N"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1003,"y":618},{"x":1085,"y":618},{"x":1085,"y":666},{"x":1003,"y":666}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1003,"y":618},{"x":1030,"y":618},{"x":1030,"y":666},{"x":1003,"y":666}]},"text":"2"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1032,"y":618},{"x":1061,"y":618},{"x":1061,"y":666},{"x":1032,"y":666}]},"text":"H"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":1063,"y":618},{"x":1085,"y":618},{"x":1085,"y":666},{"x":1063,"y":666}]},"text":"T"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":422,"y":696},{"x":524,"y":696},{"x":524,"y":728},{"x":422,"y":728}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":422,"y":697},{"x":446,"y":697},{"x":446,"y":728},{"x":422,"y":728}]},"text":"w"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":450,"y":696},{"x":475,"y":696},{"x":475,"y":728},{"x":450,"y":728}]},"text":"w"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":479,"y":696},{"x":500,"y":696},{"x":500,"y":728},{"x":479,"y":728}]},"text":"w"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":502,"y":696},{"x":524,"y":696},{"x":524,"y":728},{"x":502,"y":728}]},"text":","}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":537,"y":680},{"x":998,"y":680},{"x":998,"y":731},{"x":537,"y":731}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":537,"y":693},{"x":563,"y":693},{"x":563,"y":728},{"x":537,"y":728}]},"text":"s"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":565,"y":693},{"x":591,"y":693},{"x":591,"y":728},{"x":565,"y":728}]},"text":"a"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":602,"y":687},{"x":609,"y":687},{"x":609,"y":730},{"x":602,"y":730}]},"text":"i"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":625,"y":693},{"x":651,"y":693},{"x":651,"y":727},{"x":625,"y":727}]},"text":"n"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":655,"y":693},{"x":679,"y":693},{"x":679,"y":725},{"x":655,"y":725}]},"text":"s"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":683,"y":682},{"x":708,"y":682},{"x":708,"y":727},{"x":683,"y":727}]},"text":"b"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":712,"y":692},{"x":738,"y":692},{"x":738,"y":726},{"x":712,"y":726}]},"text":"u"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":741,"y":692},{"x":766,"y":692},{"x":766,"y":727},{"x":741,"y":727}]},"text":"r"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":772,"y":692},{"x":796,"y":692},{"x":796,"y":732},{"x":772,"y":732}]},"text":"y"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":799,"y":692},{"x":821,"y":692},{"x":821,"y":726},{"x":799,"y":726}]},"text":"s"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":823,"y":692},{"x":844,"y":692},{"x":844,"y":726},{"x":823,"y":726}]},"text":"."},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":859,"y":692},{"x":884,"y":692},{"x":884,"y":724},{"x":859,"y":724}]},"text":"c"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":888,"y":691},{"x":909,"y":691},{"x":909,"y":725},{"x":888,"y":725}]},"text":"o"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":911,"y":691},{"x":933,"y":691},{"x":933,"y":725},{"x":911,"y":725}]},"text":"."},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":945,"y":691},{"x":971,"y":691},{"x":971,"y":725},{"x":945,"y":725}]},"text":"u"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":974,"y":680},{"x":999,"y":680},{"x":999,"y":724},{"x":974,"y":724}]},"text":"k"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":360,"y":735},{"x":442,"y":735},{"x":442,"y":797},{"x":360,"y":797}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":360,"y":735},{"x":377,"y":735},{"x":377,"y":797},{"x":360,"y":797}]},"text":"V"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":379,"y":735},{"x":409,"y":735},{"x":409,"y":797},{"x":379,"y":797}]},"text":"a"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":411,"y":735},{"x":442,"y":735},{"x":442,"y":797},{"x":411,"y":797}]},"text":"t"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":464,"y":735},{"x":633,"y":735},{"x":633,"y":797},{"x":464,"y":797}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":464,"y":735},{"x":505,"y":735},{"x":505,"y":797},{"x":464,"y":797}]},"text":"N"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":507,"y":735},{"x":527,"y":735},{"x":527,"y":797},{"x":507,"y":797}]},"text":"u"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":529,"y":735},{"x":559,"y":735},{"x":559,"y":797},{"x":529,"y":797}]},"text":"m"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":560,"y":735},{"x":580,"y":735},{"x":580,"y":797},{"x":560,"y":797}]},"text":"b"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":582,"y":735},{"x":612,"y":735},{"x":612,"y":797},{"x":582,"y":797}]},"text":"e"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":613,"y":735},{"x":633,"y":735},{"x":633,"y":797},{"x":613,"y":797}]},"text":"r"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":710,"y":735},{"x":815,"y":735},{"x":815,"y":797},{"x":710,"y":797}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":710,"y":735},{"x":761,"y":735},{"x":761,"y":797},{"x":710,"y":797}]},"text":"6"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":763,"y":735},{"x":793,"y":735},{"x":793,"y":797},{"x":763,"y":797}]},"text":"6"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":794,"y":735},{"x":814,"y":735},{"x":814,"y":797},{"x":794,"y":797}]},"text":"0"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":847,"y":735},{"x":962,"y":735},{"x":962,"y":797},{"x":847,"y":797}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":847,"y":735},{"x":877,"y":735},{"x":877,"y":797},{"x":847,"y":797}]},"text":"4"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":879,"y":735},{"x":909,"y":735},{"x":909,"y":797},{"x":879,"y":797}]},"text":"5"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":911,"y":735},{"x":931,"y":735},{"x":931,"y":797},{"x":911,"y":797}]},"text":"4"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":932,"y":735},{"x":962,"y":735},{"x":962,"y":797},{"x":932,"y":797}]},"text":"8"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":996,"y":735},{"x":1047,"y":735},{"x":1047,"y":797},{"x":996,"y":797}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":996,"y":735},{"x":1027,"y":735},{"x":1027,"y":797},{"x":996,"y":797}]},"text":"3"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":1028,"y":735},{"x":1046,"y":735},{"x":1046,"y":797},{"x":1028,"y":797}]},"text":"6"}]}]}],"blockType":"TEXT"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":129,"y":856},{"x":677,"y":856},{"x":677,"y":1025},{"x":129,"y":1025}]},"paragraphs":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":129,"y":856},{"x":677,"y":856},{"x":677,"y":1025},{"x":129,"y":1025}]},"words":[{"property":{"detectedLanguages":[{"languageCode":"pl","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":129,"y":861},{"x":244,"y":861},{"x":244,"y":906},{"x":129,"y":906}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":129,"y":861},{"x":155,"y":861},{"x":155,"y":905},{"x":129,"y":905}]},"text":"S"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":156,"y":861},{"x":183,"y":861},{"x":183,"y":905},{"x":156,"y":905}]},"text":"O"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":186,"y":861},{"x":213,"y":861},{"x":213,"y":906},{"x":186,"y":906}]},"text":"W"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":215,"y":861},{"x":244,"y":861},{"x":244,"y":906},{"x":215,"y":906}]},"text":"N"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":275,"y":860},{"x":302,"y":860},{"x":302,"y":906},{"x":275,"y":906}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":275,"y":860},{"x":302,"y":860},{"x":302,"y":906},{"x":275,"y":906}]},"text":"&"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":334,"y":860},{"x":477,"y":860},{"x":477,"y":905},{"x":334,"y":905}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":334,"y":861},{"x":361,"y":861},{"x":361,"y":905},{"x":334,"y":905}]},"text":"G"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":363,"y":860},{"x":390,"y":860},{"x":390,"y":904},{"x":363,"y":904}]},"text":"R"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":392,"y":860},{"x":419,"y":860},{"x":419,"y":904},{"x":392,"y":904}]},"text":"O"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":421,"y":861},{"x":447,"y":861},{"x":447,"y":904},{"x":421,"y":904}]},"text":"W"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":449,"y":861},{"x":476,"y":861},{"x":476,"y":904},{"x":449,"y":904}]},"text":"N"}]},{"property":{"detectedLanguages":[{"languageCode":"hr","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":507,"y":856},{"x":676,"y":856},{"x":676,"y":905},{"x":507,"y":905}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":507,"y":860},{"x":536,"y":860},{"x":536,"y":904},{"x":507,"y":904}]},"text":"M"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":537,"y":860},{"x":563,"y":860},{"x":563,"y":903},{"x":537,"y":903}]},"text":"U"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":565,"y":858},{"x":592,"y":858},{"x":592,"y":906},{"x":565,"y":906}]},"text":"E"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":594,"y":858},{"x":620,"y":858},{"x":620,"y":906},{"x":594,"y":906}]},"text":"S"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":623,"y":858},{"x":648,"y":858},{"x":648,"y":906},{"x":623,"y":906}]},"text":"L"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":654,"y":856},{"x":676,"y":856},{"x":676,"y":905},{"x":654,"y":905}]},"text":"I"}]},{"property":{"detectedLanguages":[{"languageCode":"pl","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":130,"y":918},{"x":246,"y":918},{"x":246,"y":964},{"x":130,"y":964}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":130,"y":918},{"x":156,"y":918},{"x":156,"y":964},{"x":130,"y":964}]},"text":"S"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":158,"y":918},{"x":187,"y":918},{"x":187,"y":964},{"x":158,"y":964}]},"text":"O"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":188,"y":918},{"x":215,"y":918},{"x":215,"y":964},{"x":188,"y":964}]},"text":"W"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":217,"y":918},{"x":246,"y":918},{"x":246,"y":964},{"x":217,"y":964}]},"text":"N"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":277,"y":918},{"x":304,"y":918},{"x":304,"y":964},{"x":277,"y":964}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":277,"y":918},{"x":304,"y":918},{"x":304,"y":964},{"x":277,"y":964}]},"text":"&"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":334,"y":918},{"x":478,"y":918},{"x":478,"y":963},{"x":334,"y":963}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":334,"y":918},{"x":363,"y":918},{"x":363,"y":963},{"x":334,"y":963}]},"text":"G"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":364,"y":918},{"x":390,"y":918},{"x":390,"y":963},{"x":364,"y":963}]},"text":"R"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":392,"y":918},{"x":421,"y":918},{"x":421,"y":963},{"x":392,"y":963}]},"text":"O"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":422,"y":918},{"x":448,"y":918},{"x":448,"y":962},{"x":422,"y":962}]},"text":"W"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":450,"y":918},{"x":477,"y":918},{"x":477,"y":962},{"x":450,"y":962}]},"text":"N"}]},{"property":{"detectedLanguages":[{"languageCode":"hr","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":508,"y":915},{"x":676,"y":915},{"x":676,"y":965},{"x":508,"y":965}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":508,"y":917},{"x":535,"y":917},{"x":535,"y":962},{"x":508,"y":962}]},"text":"M"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":536,"y":918},{"x":565,"y":918},{"x":565,"y":961},{"x":536,"y":961}]},"text":"U"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":566,"y":916},{"x":592,"y":916},{"x":592,"y":964},{"x":566,"y":964}]},"text":"E"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":594,"y":916},{"x":621,"y":916},{"x":621,"y":964},{"x":594,"y":964}]},"text":"S"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":623,"y":917},{"x":649,"y":917},{"x":649,"y":963},{"x":623,"y":963}]},"text":"L"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":654,"y":915},{"x":676,"y":915},{"x":676,"y":965},{"x":654,"y":965}]},"text":"I"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":130,"y":974},{"x":304,"y":974},{"x":304,"y":1025},{"x":130,"y":1025}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":130,"y":975},{"x":156,"y":975},{"x":156,"y":1025},{"x":130,"y":1025}]},"text":"B"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":160,"y":975},{"x":186,"y":975},{"x":186,"y":1023},{"x":160,"y":1023}]},"text":"A"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":188,"y":975},{"x":215,"y":975},{"x":215,"y":1023},{"x":188,"y":1023}]},"text":"S"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":218,"y":974},{"x":239,"y":974},{"x":239,"y":1025},{"x":218,"y":1025}]},"text":"I"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":246,"y":975},{"x":273,"y":975},{"x":273,"y":1023},{"x":246,"y":1023}]},"text":"C"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":278,"y":975},{"x":304,"y":975},{"x":304,"y":1021},{"x":278,"y":1021}]},"text":"S"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":337,"y":974},{"x":420,"y":974},{"x":420,"y":1022},{"x":337,"y":1022}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":337,"y":974},{"x":363,"y":974},{"x":363,"y":1022},{"x":337,"y":1022}]},"text":"T"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":365,"y":974},{"x":391,"y":974},{"x":391,"y":1022},{"x":365,"y":1022}]},"text":"O"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":392,"y":975},{"x":421,"y":975},{"x":421,"y":1021},{"x":392,"y":1021}]},"text":"M"}]},{"property":{"detectedLanguages":[{"languageCode":"ms","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":450,"y":973},{"x":649,"y":973},{"x":649,"y":1023},{"x":450,"y":1023}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":450,"y":973},{"x":476,"y":973},{"x":476,"y":1023},{"x":450,"y":1023}]},"text":"K"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":478,"y":973},{"x":505,"y":973},{"x":505,"y":1023},{"x":478,"y":1023}]},"text":"E"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":511,"y":973},{"x":529,"y":973},{"x":529,"y":1022},{"x":511,"y":1022}]},"text":"T"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":536,"y":975},{"x":565,"y":975},{"x":565,"y":1020},{"x":536,"y":1020}]},"text":"C"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":566,"y":975},{"x":593,"y":975},{"x":593,"y":1020},{"x":566,"y":1020}]},"text":"H"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":594,"y":974},{"x":620,"y":974},{"x":620,"y":1020},{"x":594,"y":1020}]},"text":"U"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":622,"y":973},{"x":649,"y":973},{"x":649,"y":1019},{"x":622,"y":1019}]},"text":"P"}]}]}],"blockType":"TEXT"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":970,"y":850},{"x":1116,"y":850},{"x":1116,"y":1018},{"x":970,"y":1018}]},"paragraphs":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":970,"y":850},{"x":1116,"y":850},{"x":1116,"y":1018},{"x":970,"y":1018}]},"words":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":970,"y":856},{"x":1113,"y":850},{"x":1115,"y":898},{"x":972,"y":904}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":970,"y":856},{"x":996,"y":855},{"x":998,"y":900},{"x":972,"y":901}]},"text":"£"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":998,"y":855},{"x":1027,"y":854},{"x":1029,"y":901},{"x":1000,"y":902}]},"text":"0"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1039,"y":890},{"x":1046,"y":890},{"x":1046,"y":901},{"x":1039,"y":901}]},"text":"."},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1058,"y":854},{"x":1084,"y":853},{"x":1086,"y":898},{"x":1060,"y":899}]},"text":"6"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":1085,"y":855},{"x":1113,"y":854},{"x":1115,"y":898},{"x":1087,"y":899}]},"text":"6"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":970,"y":915},{"x":1110,"y":908},{"x":1112,"y":956},{"x":972,"y":963}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":970,"y":915},{"x":995,"y":914},{"x":997,"y":957},{"x":972,"y":958}]},"text":"£"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":998,"y":913},{"x":1026,"y":912},{"x":1028,"y":957},{"x":1000,"y":958}]},"text":"0"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1037,"y":947},{"x":1044,"y":947},{"x":1044,"y":957},{"x":1037,"y":957}]},"text":"."},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1056,"y":913},{"x":1082,"y":912},{"x":1084,"y":956},{"x":1058,"y":957}]},"text":"6"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":1085,"y":913},{"x":1110,"y":912},{"x":1112,"y":956},{"x":1087,"y":957}]},"text":"6"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":971,"y":970},{"x":1114,"y":970},{"x":1114,"y":1018},{"x":971,"y":1018}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":971,"y":971},{"x":996,"y":971},{"x":996,"y":1017},{"x":971,"y":1017}]},"text":"£"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":999,"y":971},{"x":1025,"y":971},{"x":1025,"y":1017},{"x":999,"y":1017}]},"text":"0"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1039,"y":1006},{"x":1046,"y":1006},{"x":1046,"y":1018},{"x":1039,"y":1018}]},"text":"."},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1058,"y":971},{"x":1084,"y":971},{"x":1084,"y":1016},{"x":1058,"y":1016}]},"text":"3"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":1087,"y":970},{"x":1114,"y":970},{"x":1114,"y":1016},{"x":1087,"y":1016}]},"text":"0"}]}]}],"blockType":"TEXT"},{"property":{"detectedLanguages":[{"languageCode":"it","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":132,"y":1079},{"x":493,"y":1079},{"x":493,"y":1151},{"x":132,"y":1151}]},"paragraphs":[{"property":{"detectedLanguages":[{"languageCode":"it","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":132,"y":1079},{"x":493,"y":1079},{"x":493,"y":1151},{"x":132,"y":1151}]},"words":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":132,"y":1083},{"x":151,"y":1083},{"x":152,"y":1150},{"x":133,"y":1150}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":132,"y":1083},{"x":151,"y":1083},{"x":152,"y":1150},{"x":133,"y":1150}]},"text":"3"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":177,"y":1083},{"x":387,"y":1081},{"x":388,"y":1148},{"x":178,"y":1150}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":177,"y":1083},{"x":211,"y":1083},{"x":212,"y":1150},{"x":178,"y":1150}]},"text":"B"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":213,"y":1082},{"x":244,"y":1082},{"x":245,"y":1149},{"x":214,"y":1149}]},"text":"A"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":248,"y":1082},{"x":258,"y":1082},{"x":259,"y":1149},{"x":249,"y":1149}]},"text":"L"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":260,"y":1082},{"x":304,"y":1082},{"x":305,"y":1149},{"x":261,"y":1149}]},"text":"A"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":307,"y":1082},{"x":328,"y":1082},{"x":329,"y":1149},{"x":308,"y":1149}]},"text":"N"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":331,"y":1082},{"x":352,"y":1082},{"x":353,"y":1149},{"x":332,"y":1149}]},"text":"C"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":355,"y":1082},{"x":386,"y":1082},{"x":387,"y":1149},{"x":356,"y":1149}]},"text":"E"}]},{"property":{"detectedLanguages":[{"languageCode":"it","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":412,"y":1080},{"x":493,"y":1079},{"x":494,"y":1146},{"x":413,"y":1147}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":412,"y":1080},{"x":446,"y":1080},{"x":447,"y":1147},{"x":413,"y":1147}]},"text":"D"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":449,"y":1080},{"x":470,"y":1080},{"x":471,"y":1147},{"x":450,"y":1147}]},"text":"U"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":473,"y":1080},{"x":493,"y":1080},{"x":494,"y":1147},{"x":474,"y":1147}]},"text":"E"}]}]}],"blockType":"TEXT"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":940,"y":1088},{"x":1114,"y":1088},{"x":1114,"y":1194},{"x":940,"y":1194}]},"paragraphs":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":940,"y":1088},{"x":1114,"y":1088},{"x":1114,"y":1194},{"x":940,"y":1194}]},"words":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":970,"y":1089},{"x":1113,"y":1088},{"x":1113,"y":1133},{"x":970,"y":1134}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":970,"y":1089},{"x":994,"y":1089},{"x":994,"y":1134},{"x":970,"y":1134}]},"text":"£"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":997,"y":1089},{"x":1022,"y":1089},{"x":1022,"y":1134},{"x":997,"y":1134}]},"text":"1"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1036,"y":1123},{"x":1045,"y":1123},{"x":1045,"y":1134},{"x":1036,"y":1134}]},"text":"."},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1055,"y":1088},{"x":1081,"y":1088},{"x":1081,"y":1132},{"x":1055,"y":1132}]},"text":"6"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":1084,"y":1088},{"x":1113,"y":1088},{"x":1113,"y":1133},{"x":1084,"y":1133}]},"text":"2"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":940,"y":1145},{"x":1111,"y":1145},{"x":1111,"y":1193},{"x":940,"y":1193}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":940,"y":1146},{"x":964,"y":1146},{"x":964,"y":1193},{"x":940,"y":1193}]},"text":"£"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":966,"y":1146},{"x":990,"y":1146},{"x":990,"y":1193},{"x":966,"y":1193}]},"text":"1"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":997,"y":1145},{"x":1023,"y":1145},{"x":1023,"y":1190},{"x":997,"y":1190}]},"text":"0"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1035,"y":1182},{"x":1042,"y":1182},{"x":1042,"y":1191},{"x":1035,"y":1191}]},"text":"."},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1054,"y":1146},{"x":1082,"y":1146},{"x":1082,"y":1190},{"x":1054,"y":1190}]},"text":"0"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":1083,"y":1146},{"x":1111,"y":1146},{"x":1111,"y":1190},{"x":1083,"y":1190}]},"text":"0"}]}]}],"blockType":"TEXT"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":192,"y":1147},{"x":309,"y":1147},{"x":309,"y":1200},{"x":192,"y":1200}]},"paragraphs":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":192,"y":1147},{"x":309,"y":1147},{"x":309,"y":1200},{"x":192,"y":1200}]},"words":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":192,"y":1152},{"x":306,"y":1147},{"x":308,"y":1194},{"x":194,"y":1199}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":192,"y":1152},{"x":218,"y":1151},{"x":220,"y":1196},{"x":194,"y":1197}]},"text":"C"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":221,"y":1151},{"x":246,"y":1150},{"x":248,"y":1195},{"x":223,"y":1196}]},"text":"A"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":250,"y":1152},{"x":276,"y":1151},{"x":278,"y":1195},{"x":252,"y":1196}]},"text":"S"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":279,"y":1151},{"x":305,"y":1150},{"x":307,"y":1194},{"x":281,"y":1195}]},"text":"H"}]}]}],"blockType":"TEXT"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":196,"y":1265},{"x":361,"y":1265},{"x":361,"y":1309},{"x":196,"y":1309}]},"paragraphs":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":196,"y":1265},{"x":361,"y":1265},{"x":361,"y":1309},{"x":196,"y":1309}]},"words":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":196,"y":1265},{"x":361,"y":1265},{"x":361,"y":1309},{"x":196,"y":1309}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":196,"y":1268},{"x":222,"y":1268},{"x":222,"y":1309},{"x":196,"y":1309}]},"text":"C"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":224,"y":1268},{"x":251,"y":1268},{"x":251,"y":1309},{"x":224,"y":1309}]},"text":"H"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":254,"y":1268},{"x":278,"y":1268},{"x":278,"y":1308},{"x":254,"y":1308}]},"text":"A"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":280,"y":1266},{"x":307,"y":1266},{"x":307,"y":1307},{"x":280,"y":1307}]},"text":"N"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":310,"y":1266},{"x":336,"y":1266},{"x":336,"y":1307},{"x":310,"y":1307}]},"text":"G"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":339,"y":1265},{"x":361,"y":1265},{"x":361,"y":1309},{"x":339,"y":1309}]},"text":"E"}]}]}],"blockType":"TEXT"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":966,"y":1254},{"x":1110,"y":1254},{"x":1110,"y":1310},{"x":966,"y":1310}]},"paragraphs":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":966,"y":1254},{"x":1110,"y":1254},{"x":1110,"y":1310},{"x":966,"y":1310}]},"words":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":969,"y":1254},{"x":1109,"y":1260},{"x":1107,"y":1310},{"x":967,"y":1304}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":969,"y":1259},{"x":993,"y":1260},{"x":991,"y":1305},{"x":967,"y":1304}]},"text":"£"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":998,"y":1259},{"x":1023,"y":1260},{"x":1021,"y":1305},{"x":996,"y":1304}]},"text":"8"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1035,"y":1293},{"x":1042,"y":1293},{"x":1042,"y":1305},{"x":1035,"y":1305}]},"text":"."},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1055,"y":1260},{"x":1080,"y":1261},{"x":1078,"y":1304},{"x":1053,"y":1303}]},"text":"3"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":1083,"y":1259},{"x":1109,"y":1260},{"x":1107,"y":1305},{"x":1081,"y":1304}]},"text":"8"}]}]}],"blockType":"TEXT"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":79,"y":1325},{"x":1212,"y":1325},{"x":1212,"y":1592},{"x":79,"y":1592}]},"paragraphs":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":79,"y":1325},{"x":1212,"y":1325},{"x":1212,"y":1592},{"x":79,"y":1592}]},"words":[{"property":{"detectedLanguages":[{"languageCode":"nl","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":80,"y":1328},{"x":1211,"y":1324},{"x":1211,"y":1359},{"x":80,"y":1363}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":80,"y":1328},{"x":95,"y":1328},{"x":95,"y":1363},{"x":80,"y":1363}]},"text":"R"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":98,"y":1328},{"x":152,"y":1328},{"x":152,"y":1363},{"x":98,"y":1363}]},"text":"K"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":155,"y":1328},{"x":242,"y":1328},{"x":242,"y":1363},{"x":155,"y":1363}]},"text":"W"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":245,"y":1328},{"x":268,"y":1328},{"x":268,"y":1363},{"x":245,"y":1363}]},"text":"K"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":270,"y":1328},{"x":324,"y":1328},{"x":324,"y":1363},{"x":270,"y":1363}]},"text":"R"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":327,"y":1327},{"x":496,"y":1326},{"x":496,"y":1361},{"x":327,"y":1362}]},"text":"K"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":499,"y":1327},{"x":867,"y":1326},{"x":867,"y":1361},{"x":499,"y":1362}]},"text":"x"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":870,"y":1326},{"x":899,"y":1326},{"x":899,"y":1361},{"x":870,"y":1361}]},"text":"x"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":902,"y":1326},{"x":925,"y":1326},{"x":925,"y":1361},{"x":902,"y":1361}]},"text":"x"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":927,"y":1326},{"x":956,"y":1326},{"x":956,"y":1361},{"x":927,"y":1361}]},"text":"x"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":959,"y":1326},{"x":982,"y":1326},{"x":982,"y":1361},{"x":959,"y":1361}]},"text":"x"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":984,"y":1326},{"x":1014,"y":1326},{"x":1014,"y":1361},{"x":984,"y":1361}]},"text":"x"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1017,"y":1326},{"x":1040,"y":1326},{"x":1040,"y":1361},{"x":1017,"y":1361}]},"text":"x"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1042,"y":1326},{"x":1071,"y":1326},{"x":1071,"y":1361},{"x":1042,"y":1361}]},"text":"x"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1074,"y":1325},{"x":1097,"y":1325},{"x":1097,"y":1360},{"x":1074,"y":1360}]},"text":"x"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1099,"y":1325},{"x":1122,"y":1325},{"x":1122,"y":1360},{"x":1099,"y":1360}]},"text":"x"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1125,"y":1325},{"x":1154,"y":1325},{"x":1154,"y":1360},{"x":1125,"y":1360}]},"text":"x"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1156,"y":1325},{"x":1186,"y":1325},{"x":1186,"y":1360},{"x":1156,"y":1360}]},"text":"x"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":1189,"y":1325},{"x":1212,"y":1325},{"x":1212,"y":1360},{"x":1189,"y":1360}]},"text":"x"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":80,"y":1380},{"x":193,"y":1380},{"x":193,"y":1428},{"x":80,"y":1428}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":80,"y":1380},{"x":105,"y":1380},{"x":105,"y":1428},{"x":80,"y":1428}]},"text":"W"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":107,"y":1380},{"x":132,"y":1380},{"x":132,"y":1428},{"x":107,"y":1428}]},"text":"I"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":139,"y":1380},{"x":165,"y":1380},{"x":165,"y":1423},{"x":139,"y":1423}]},"text":"T"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":167,"y":1380},{"x":194,"y":1380},{"x":194,"y":1423},{"x":167,"y":1423}]},"text":"H"}]},{"property":{"detectedLanguages":[{"languageCode":"es","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":225,"y":1375},{"x":395,"y":1375},{"x":395,"y":1425},{"x":225,"y":1425}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":225,"y":1380},{"x":254,"y":1380},{"x":254,"y":1425},{"x":225,"y":1425}]},"text":"N"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":253,"y":1376},{"x":280,"y":1376},{"x":280,"y":1425},{"x":253,"y":1425}]},"text":"E"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":282,"y":1376},{"x":309,"y":1376},{"x":309,"y":1425},{"x":282,"y":1425}]},"text":"C"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":313,"y":1376},{"x":339,"y":1376},{"x":339,"y":1422},{"x":313,"y":1422}]},"text":"T"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":341,"y":1376},{"x":367,"y":1376},{"x":367,"y":1422},{"x":341,"y":1422}]},"text":"A"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":369,"y":1375},{"x":395,"y":1375},{"x":395,"y":1421},{"x":369,"y":1421}]},"text":"R"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":426,"y":1376},{"x":512,"y":1376},{"x":512,"y":1421},{"x":426,"y":1421}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":426,"y":1378},{"x":451,"y":1378},{"x":451,"y":1421},{"x":426,"y":1421}]},"text":"Y"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":454,"y":1376},{"x":481,"y":1376},{"x":481,"y":1421},{"x":454,"y":1421}]},"text":"O"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":480,"y":1376},{"x":511,"y":1376},{"x":511,"y":1421},{"x":480,"y":1421}]},"text":"U"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":539,"y":1375},{"x":682,"y":1375},{"x":682,"y":1421},{"x":539,"y":1421}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":539,"y":1376},{"x":566,"y":1376},{"x":566,"y":1420},{"x":539,"y":1420}]},"text":"W"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":568,"y":1376},{"x":595,"y":1376},{"x":595,"y":1420},{"x":568,"y":1420}]},"text":"O"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":594,"y":1376},{"x":625,"y":1376},{"x":625,"y":1420},{"x":594,"y":1420}]},"text":"U"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":625,"y":1375},{"x":652,"y":1375},{"x":652,"y":1421},{"x":625,"y":1421}]},"text":"L"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":654,"y":1375},{"x":681,"y":1375},{"x":681,"y":1421},{"x":654,"y":1421}]},"text":"D"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":711,"y":1374},{"x":823,"y":1374},{"x":823,"y":1420},{"x":711,"y":1420}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":711,"y":1375},{"x":737,"y":1375},{"x":737,"y":1420},{"x":711,"y":1420}]},"text":"H"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":739,"y":1375},{"x":765,"y":1375},{"x":765,"y":1420},{"x":739,"y":1420}]},"text":"A"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":768,"y":1374},{"x":794,"y":1374},{"x":794,"y":1420},{"x":768,"y":1420}]},"text":"V"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":796,"y":1374},{"x":823,"y":1374},{"x":823,"y":1420},{"x":796,"y":1420}]},"text":"E"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":851,"y":1374},{"x":1040,"y":1374},{"x":1040,"y":1420},{"x":851,"y":1420}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":851,"y":1374},{"x":878,"y":1374},{"x":878,"y":1420},{"x":851,"y":1420}]},"text":"E"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":880,"y":1374},{"x":907,"y":1374},{"x":907,"y":1420},{"x":880,"y":1420}]},"text":"A"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":909,"y":1374},{"x":934,"y":1374},{"x":934,"y":1419},{"x":909,"y":1419}]},"text":"R"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":939,"y":1374},{"x":964,"y":1374},{"x":964,"y":1419},{"x":939,"y":1419}]},"text":"N"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":965,"y":1374},{"x":991,"y":1374},{"x":991,"y":1419},{"x":965,"y":1419}]},"text":"E"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":994,"y":1374},{"x":1021,"y":1374},{"x":1021,"y":1419},{"x":994,"y":1419}]},"text":"D"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":1032,"y":1389},{"x":1040,"y":1389},{"x":1040,"y":1420},{"x":1032,"y":1420}]},"text":":"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":79,"y":1437},{"x":251,"y":1436},{"x":251,"y":1481},{"x":79,"y":1482}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":79,"y":1439},{"x":105,"y":1439},{"x":105,"y":1483},{"x":79,"y":1483}]},"text":"P"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":108,"y":1440},{"x":136,"y":1440},{"x":136,"y":1483},{"x":108,"y":1483}]},"text":"O"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":140,"y":1437},{"x":166,"y":1437},{"x":166,"y":1482},{"x":140,"y":1482}]},"text":"I"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":169,"y":1437},{"x":194,"y":1437},{"x":194,"y":1482},{"x":169,"y":1482}]},"text":"N"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":199,"y":1436},{"x":223,"y":1436},{"x":223,"y":1479},{"x":199,"y":1479}]},"text":"T"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":226,"y":1436},{"x":251,"y":1436},{"x":251,"y":1479},{"x":226,"y":1479}]},"text":"S"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":80,"y":1489},{"x":310,"y":1489},{"x":310,"y":1540},{"x":80,"y":1540}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":80,"y":1494},{"x":105,"y":1494},{"x":105,"y":1540},{"x":80,"y":1540}]},"text":"R"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":107,"y":1494},{"x":134,"y":1494},{"x":134,"y":1540},{"x":107,"y":1540}]},"text":"E"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":137,"y":1494},{"x":166,"y":1494},{"x":166,"y":1538},{"x":137,"y":1538}]},"text":"G"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":169,"y":1493},{"x":195,"y":1493},{"x":195,"y":1539},{"x":169,"y":1539}]},"text":"I"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":197,"y":1493},{"x":224,"y":1493},{"x":224,"y":1539},{"x":197,"y":1539}]},"text":"S"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":227,"y":1490},{"x":248,"y":1490},{"x":248,"y":1535},{"x":227,"y":1535}]},"text":"T"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":255,"y":1489},{"x":281,"y":1489},{"x":281,"y":1538},{"x":255,"y":1538}]},"text":"E"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":283,"y":1489},{"x":310,"y":1489},{"x":310,"y":1538},{"x":283,"y":1538}]},"text":"R"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":341,"y":1488},{"x":392,"y":1488},{"x":392,"y":1534},{"x":341,"y":1534}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":341,"y":1490},{"x":368,"y":1490},{"x":368,"y":1534},{"x":341,"y":1534}]},"text":"A"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":370,"y":1488},{"x":392,"y":1488},{"x":392,"y":1533},{"x":370,"y":1533}]},"text":"T"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":426,"y":1493},{"x":822,"y":1493},{"x":822,"y":1533},{"x":426,"y":1533}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":426,"y":1502},{"x":453,"y":1502},{"x":453,"y":1533},{"x":426,"y":1533}]},"text":"w"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":454,"y":1503},{"x":483,"y":1503},{"x":483,"y":1533},{"x":454,"y":1533}]},"text":"w"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":483,"y":1502},{"x":505,"y":1502},{"x":505,"y":1533},{"x":483,"y":1533}]},"text":"w"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":507,"y":1502},{"x":529,"y":1502},{"x":529,"y":1533},{"x":507,"y":1533}]},"text":"."},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":539,"y":1498},{"x":568,"y":1498},{"x":568,"y":1532},{"x":539,"y":1532}]},"text":"n"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":568,"y":1498},{"x":594,"y":1498},{"x":594,"y":1533},{"x":568,"y":1533}]},"text":"e"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":596,"y":1498},{"x":622,"y":1498},{"x":622,"y":1533},{"x":596,"y":1533}]},"text":"c"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":629,"y":1493},{"x":649,"y":1493},{"x":649,"y":1533},{"x":629,"y":1533}]},"text":"t"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":654,"y":1498},{"x":680,"y":1498},{"x":680,"y":1533},{"x":654,"y":1533}]},"text":"a"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":682,"y":1497},{"x":704,"y":1497},{"x":704,"y":1533},{"x":682,"y":1533}]},"text":"r"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":706,"y":1497},{"x":727,"y":1497},{"x":727,"y":1533},{"x":706,"y":1533}]},"text":"."},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":737,"y":1497},{"x":763,"y":1497},{"x":763,"y":1532},{"x":737,"y":1532}]},"text":"c"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":766,"y":1498},{"x":793,"y":1498},{"x":793,"y":1532},{"x":766,"y":1532}]},"text":"o"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":794,"y":1498},{"x":821,"y":1498},{"x":821,"y":1532},{"x":794,"y":1532}]},"text":"m"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":84,"y":1559},{"x":1208,"y":1549},{"x":1208,"y":1580},{"x":84,"y":1590}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":84,"y":1559},{"x":96,"y":1559},{"x":96,"y":1590},{"x":84,"y":1590}]},"text":"K"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":99,"y":1559},{"x":244,"y":1558},{"x":244,"y":1589},{"x":99,"y":1590}]},"text":"K"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":248,"y":1557},{"x":273,"y":1557},{"x":273,"y":1588},{"x":248,"y":1588}]},"text":"R"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":275,"y":1557},{"x":301,"y":1557},{"x":301,"y":1588},{"x":275,"y":1588}]},"text":"W"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":305,"y":1556},{"x":330,"y":1556},{"x":330,"y":1587},{"x":305,"y":1587}]},"text":"E"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":332,"y":1556},{"x":386,"y":1556},{"x":386,"y":1586},{"x":332,"y":1587}]},"text":"E"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":389,"y":1556},{"x":414,"y":1556},{"x":414,"y":1587},{"x":389,"y":1587}]},"text":"K"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":417,"y":1556},{"x":443,"y":1556},{"x":443,"y":1587},{"x":417,"y":1587}]},"text":"K"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":446,"y":1555},{"x":528,"y":1554},{"x":528,"y":1585},{"x":446,"y":1586}]},"text":"K"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":531,"y":1555},{"x":556,"y":1555},{"x":556,"y":1586},{"x":531,"y":1586}]},"text":"K"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":559,"y":1555},{"x":641,"y":1554},{"x":641,"y":1585},{"x":559,"y":1586}]},"text":"K"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":644,"y":1554},{"x":670,"y":1554},{"x":670,"y":1585},{"x":644,"y":1585}]},"text":"K"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":673,"y":1554},{"x":727,"y":1554},{"x":727,"y":1584},{"x":673,"y":1585}]},"text":"X"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":730,"y":1552},{"x":755,"y":1552},{"x":755,"y":1583},{"x":730,"y":1583}]},"text":"*"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":758,"y":1552},{"x":783,"y":1552},{"x":783,"y":1583},{"x":758,"y":1583}]},"text":"X"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":785,"y":1552},{"x":868,"y":1551},{"x":868,"y":1582},{"x":785,"y":1583}]},"text":"x"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":872,"y":1551},{"x":897,"y":1551},{"x":897,"y":1582},{"x":872,"y":1582}]},"text":"x"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":899,"y":1551},{"x":924,"y":1551},{"x":924,"y":1582},{"x":899,"y":1582}]},"text":"x"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":927,"y":1551},{"x":953,"y":1551},{"x":953,"y":1582},{"x":927,"y":1582}]},"text":"x"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":956,"y":1551},{"x":981,"y":1551},{"x":981,"y":1582},{"x":956,"y":1582}]},"text":"x"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":984,"y":1550},{"x":1010,"y":1550},{"x":1010,"y":1581},{"x":984,"y":1581}]},"text":"x"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1013,"y":1550},{"x":1038,"y":1550},{"x":1038,"y":1581},{"x":1013,"y":1581}]},"text":"x"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1041,"y":1550},{"x":1066,"y":1550},{"x":1066,"y":1581},{"x":1041,"y":1581}]},"text":"x"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1069,"y":1550},{"x":1095,"y":1550},{"x":1095,"y":1581},{"x":1069,"y":1581}]},"text":"x"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1098,"y":1550},{"x":1123,"y":1550},{"x":1123,"y":1581},{"x":1098,"y":1581}]},"text":"x"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1126,"y":1549},{"x":1152,"y":1549},{"x":1152,"y":1580},{"x":1126,"y":1580}]},"text":"x"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1155,"y":1549},{"x":1180,"y":1549},{"x":1180,"y":1580},{"x":1155,"y":1580}]},"text":"x"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":1183,"y":1549},{"x":1208,"y":1549},{"x":1208,"y":1580},{"x":1183,"y":1580}]},"text":"x"}]}]}],"blockType":"TEXT"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":84,"y":1707},{"x":1187,"y":1707},{"x":1187,"y":1814},{"x":84,"y":1814}]},"paragraphs":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":84,"y":1707},{"x":1187,"y":1707},{"x":1187,"y":1814},{"x":84,"y":1814}]},"words":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":84,"y":1718},{"x":224,"y":1716},{"x":225,"y":1764},{"x":85,"y":1766}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":84,"y":1721},{"x":110,"y":1721},{"x":111,"y":1766},{"x":85,"y":1766}]},"text":"C"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":113,"y":1721},{"x":137,"y":1721},{"x":138,"y":1766},{"x":114,"y":1766}]},"text":"9"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":140,"y":1718},{"x":166,"y":1718},{"x":167,"y":1763},{"x":141,"y":1763}]},"text":"0"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":169,"y":1718},{"x":195,"y":1718},{"x":196,"y":1763},{"x":170,"y":1763}]},"text":"6"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":198,"y":1717},{"x":224,"y":1717},{"x":225,"y":1762},{"x":199,"y":1762}]},"text":"3"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":342,"y":1716},{"x":367,"y":1716},{"x":368,"y":1758},{"x":343,"y":1758}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":342,"y":1716},{"x":367,"y":1716},{"x":368,"y":1758},{"x":343,"y":1758}]},"text":"#"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":370,"y":1712},{"x":481,"y":1711},{"x":482,"y":1756},{"x":371,"y":1757}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":370,"y":1712},{"x":396,"y":1712},{"x":397,"y":1757},{"x":371,"y":1757}]},"text":"0"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":398,"y":1712},{"x":421,"y":1712},{"x":422,"y":1757},{"x":399,"y":1757}]},"text":"0"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":423,"y":1712},{"x":448,"y":1712},{"x":449,"y":1757},{"x":424,"y":1757}]},"text":"1"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":455,"y":1711},{"x":481,"y":1711},{"x":482,"y":1754},{"x":456,"y":1754}]},"text":"4"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":625,"y":1709},{"x":820,"y":1707},{"x":821,"y":1755},{"x":626,"y":1757}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":625,"y":1709},{"x":651,"y":1709},{"x":652,"y":1754},{"x":626,"y":1754}]},"text":"9"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":660,"y":1711},{"x":681,"y":1711},{"x":682,"y":1754},{"x":661,"y":1754}]},"text":":"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":684,"y":1711},{"x":707,"y":1711},{"x":708,"y":1754},{"x":685,"y":1754}]},"text":"3"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":710,"y":1708},{"x":736,"y":1708},{"x":737,"y":1753},{"x":711,"y":1753}]},"text":"0"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":746,"y":1712},{"x":766,"y":1712},{"x":767,"y":1756},{"x":747,"y":1756}]},"text":":"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":769,"y":1711},{"x":788,"y":1711},{"x":789,"y":1755},{"x":770,"y":1755}]},"text":"1"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":796,"y":1709},{"x":820,"y":1709},{"x":821,"y":1754},{"x":797,"y":1754}]},"text":"2"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":964,"y":1709},{"x":1187,"y":1706},{"x":1188,"y":1755},{"x":965,"y":1758}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":964,"y":1709},{"x":988,"y":1709},{"x":989,"y":1753},{"x":965,"y":1753}]},"text":"9"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":990,"y":1709},{"x":1015,"y":1709},{"x":1016,"y":1752},{"x":991,"y":1752}]},"text":"N"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1018,"y":1709},{"x":1044,"y":1709},{"x":1045,"y":1752},{"x":1019,"y":1752}]},"text":"0"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1047,"y":1711},{"x":1073,"y":1711},{"x":1074,"y":1755},{"x":1048,"y":1755}]},"text":"V"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1077,"y":1711},{"x":1102,"y":1711},{"x":1103,"y":1755},{"x":1078,"y":1755}]},"text":"2"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1104,"y":1709},{"x":1129,"y":1709},{"x":1130,"y":1753},{"x":1105,"y":1753}]},"text":"0"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1135,"y":1712},{"x":1159,"y":1712},{"x":1160,"y":1756},{"x":1136,"y":1756}]},"text":"1"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":1161,"y":1712},{"x":1186,"y":1712},{"x":1187,"y":1756},{"x":1162,"y":1756}]},"text":"6"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":429,"y":1765},{"x":595,"y":1763},{"x":595,"y":1811},{"x":429,"y":1813}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":429,"y":1768},{"x":454,"y":1768},{"x":454,"y":1812},{"x":429,"y":1812}]},"text":"S"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":455,"y":1768},{"x":483,"y":1768},{"x":483,"y":1813},{"x":455,"y":1813}]},"text":"0"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":483,"y":1768},{"x":511,"y":1768},{"x":511,"y":1812},{"x":483,"y":1812}]},"text":"0"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":512,"y":1766},{"x":537,"y":1766},{"x":537,"y":1810},{"x":512,"y":1810}]},"text":"6"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":540,"y":1764},{"x":566,"y":1764},{"x":566,"y":1811},{"x":540,"y":1811}]},"text":"5"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":569,"y":1764},{"x":594,"y":1764},{"x":594,"y":1811},{"x":569,"y":1811}]},"text":"0"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":708,"y":1765},{"x":819,"y":1764},{"x":819,"y":1809},{"x":708,"y":1810}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":708,"y":1765},{"x":736,"y":1765},{"x":736,"y":1809},{"x":708,"y":1809}]},"text":"R"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":737,"y":1765},{"x":762,"y":1765},{"x":762,"y":1810},{"x":737,"y":1810}]},"text":"0"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":765,"y":1765},{"x":791,"y":1765},{"x":791,"y":1809},{"x":765,"y":1809}]},"text":"6"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":794,"y":1765},{"x":819,"y":1765},{"x":819,"y":1809},{"x":794,"y":1809}]},"text":"3"}]}]}],"blockType":"TEXT"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":143,"y":1874},{"x":1242,"y":1874},{"x":1242,"y":1989},{"x":143,"y":1989}]},"paragraphs":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":143,"y":1874},{"x":1242,"y":1874},{"x":1242,"y":1989},{"x":143,"y":1989}]},"words":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":143,"y":1884},{"x":282,"y":1884},{"x":282,"y":1930},{"x":143,"y":1930}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":143,"y":1885},{"x":170,"y":1885},{"x":170,"y":1930},{"x":143,"y":1930}]},"text":"T"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":172,"y":1885},{"x":199,"y":1885},{"x":199,"y":1930},{"x":172,"y":1930}]},"text":"h"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":201,"y":1895},{"x":228,"y":1895},{"x":228,"y":1930},{"x":201,"y":1930}]},"text":"a"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":229,"y":1894},{"x":256,"y":1894},{"x":256,"y":1929},{"x":229,"y":1929}]},"text":"n"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":255,"y":1884},{"x":281,"y":1884},{"x":281,"y":1929},{"x":255,"y":1929}]},"text":"k"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":313,"y":1890},{"x":397,"y":1890},{"x":397,"y":1930},{"x":313,"y":1930}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":313,"y":1892},{"x":342,"y":1892},{"x":342,"y":1931},{"x":313,"y":1931}]},"text":"y"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":344,"y":1892},{"x":371,"y":1892},{"x":371,"y":1926},{"x":344,"y":1926}]},"text":"o"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":370,"y":1890},{"x":397,"y":1890},{"x":397,"y":1925},{"x":370,"y":1925}]},"text":"u"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":429,"y":1876},{"x":511,"y":1876},{"x":511,"y":1924},{"x":429,"y":1924}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":429,"y":1876},{"x":453,"y":1876},{"x":453,"y":1924},{"x":429,"y":1924}]},"text":"f"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":456,"y":1889},{"x":482,"y":1889},{"x":482,"y":1923},{"x":456,"y":1923}]},"text":"o"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":483,"y":1888},{"x":510,"y":1888},{"x":510,"y":1924},{"x":483,"y":1924}]},"text":"r"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":541,"y":1885},{"x":651,"y":1885},{"x":651,"y":1928},{"x":541,"y":1928}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":541,"y":1889},{"x":566,"y":1889},{"x":566,"y":1928},{"x":541,"y":1928}]},"text":"y"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":568,"y":1888},{"x":595,"y":1888},{"x":595,"y":1920},{"x":568,"y":1920}]},"text":"o"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":596,"y":1889},{"x":623,"y":1889},{"x":623,"y":1923},{"x":596,"y":1923}]},"text":"u"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":623,"y":1885},{"x":650,"y":1885},{"x":650,"y":1919},{"x":623,"y":1919}]},"text":"r"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":682,"y":1876},{"x":838,"y":1876},{"x":838,"y":1922},{"x":682,"y":1922}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":682,"y":1888},{"x":707,"y":1888},{"x":707,"y":1920},{"x":682,"y":1920}]},"text":"v"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":715,"y":1876},{"x":726,"y":1876},{"x":726,"y":1920},{"x":715,"y":1920}]},"text":"i"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":737,"y":1876},{"x":757,"y":1876},{"x":757,"y":1920},{"x":737,"y":1920}]},"text":"s"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":759,"y":1876},{"x":780,"y":1876},{"x":780,"y":1920},{"x":759,"y":1920}]},"text":"i"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":796,"y":1880},{"x":818,"y":1880},{"x":818,"y":1923},{"x":796,"y":1923}]},"text":"t"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":830,"y":1911},{"x":838,"y":1911},{"x":838,"y":1923},{"x":830,"y":1923}]},"text":"."}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":877,"y":1874},{"x":1045,"y":1874},{"x":1045,"y":1920},{"x":877,"y":1920}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":877,"y":1874},{"x":904,"y":1874},{"x":904,"y":1919},{"x":877,"y":1919}]},"text":"P"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":911,"y":1874},{"x":922,"y":1874},{"x":922,"y":1920},{"x":911,"y":1920}]},"text":"l"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":932,"y":1885},{"x":959,"y":1885},{"x":959,"y":1920},{"x":932,"y":1920}]},"text":"e"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":961,"y":1885},{"x":987,"y":1885},{"x":987,"y":1920},{"x":961,"y":1920}]},"text":"a"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":992,"y":1888},{"x":1016,"y":1888},{"x":1016,"y":1919},{"x":992,"y":1919}]},"text":"s"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":1018,"y":1888},{"x":1044,"y":1888},{"x":1044,"y":1920},{"x":1018,"y":1920}]},"text":"e"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1079,"y":1874},{"x":1154,"y":1874},{"x":1154,"y":1920},{"x":1079,"y":1920}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1079,"y":1874},{"x":1090,"y":1874},{"x":1090,"y":1920},{"x":1079,"y":1920}]},"text":"l"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1102,"y":1888},{"x":1129,"y":1888},{"x":1129,"y":1919},{"x":1102,"y":1919}]},"text":"e"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":1132,"y":1880},{"x":1154,"y":1880},{"x":1154,"y":1920},{"x":1132,"y":1920}]},"text":"t"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1187,"y":1889},{"x":1242,"y":1889},{"x":1242,"y":1923},{"x":1187,"y":1923}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1187,"y":1889},{"x":1214,"y":1889},{"x":1214,"y":1923},{"x":1187,"y":1923}]},"text":"u"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":1216,"y":1889},{"x":1242,"y":1889},{"x":1242,"y":1920},{"x":1216,"y":1920}]},"text":"s"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":143,"y":1946},{"x":256,"y":1946},{"x":256,"y":1989},{"x":143,"y":1989}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":143,"y":1946},{"x":167,"y":1946},{"x":167,"y":1989},{"x":143,"y":1989}]},"text":"k"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":172,"y":1954},{"x":198,"y":1954},{"x":198,"y":1988},{"x":172,"y":1988}]},"text":"n"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":199,"y":1954},{"x":226,"y":1954},{"x":226,"y":1986},{"x":199,"y":1986}]},"text":"o"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":229,"y":1951},{"x":256,"y":1951},{"x":256,"y":1985},{"x":229,"y":1985}]},"text":"w"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":286,"y":1938},{"x":370,"y":1938},{"x":370,"y":1983},{"x":286,"y":1983}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":286,"y":1938},{"x":315,"y":1938},{"x":315,"y":1983},{"x":286,"y":1983}]},"text":"h"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":316,"y":1949},{"x":341,"y":1949},{"x":341,"y":1981},{"x":316,"y":1981}]},"text":"o"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":344,"y":1949},{"x":370,"y":1949},{"x":370,"y":1981},{"x":344,"y":1981}]},"text":"w"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":399,"y":1943},{"x":454,"y":1943},{"x":454,"y":1978},{"x":399,"y":1978}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":399,"y":1946},{"x":428,"y":1946},{"x":428,"y":1978},{"x":399,"y":1978}]},"text":"w"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":427,"y":1943},{"x":454,"y":1943},{"x":454,"y":1978},{"x":427,"y":1978}]},"text":"e"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":484,"y":1933},{"x":567,"y":1933},{"x":567,"y":1978},{"x":484,"y":1978}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":484,"y":1933},{"x":506,"y":1933},{"x":506,"y":1978},{"x":484,"y":1978}]},"text":"d"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":508,"y":1933},{"x":529,"y":1933},{"x":529,"y":1978},{"x":508,"y":1978}]},"text":"i"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":540,"y":1933},{"x":567,"y":1933},{"x":567,"y":1977},{"x":540,"y":1977}]},"text":"d"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":598,"y":1938},{"x":648,"y":1938},{"x":648,"y":1977},{"x":598,"y":1977}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":598,"y":1938},{"x":622,"y":1938},{"x":622,"y":1977},{"x":598,"y":1977}]},"text":"a"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":623,"y":1938},{"x":648,"y":1938},{"x":648,"y":1977},{"x":623,"y":1977}]},"text":"t"}]},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":682,"y":1932},{"x":1241,"y":1932},{"x":1241,"y":1981},{"x":682,"y":1981}]},"symbols":[{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":682,"y":1936},{"x":704,"y":1936},{"x":704,"y":1977},{"x":682,"y":1977}]},"text":"t"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":710,"y":1941},{"x":735,"y":1941},{"x":735,"y":1976},{"x":710,"y":1976}]},"text":"e"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":742,"y":1932},{"x":766,"y":1932},{"x":766,"y":1977},{"x":742,"y":1977}]},"text":"l"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":768,"y":1932},{"x":794,"y":1932},{"x":794,"y":1977},{"x":768,"y":1977}]},"text":"l"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":796,"y":1932},{"x":820,"y":1932},{"x":820,"y":1977},{"x":796,"y":1977}]},"text":"s"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":823,"y":1941},{"x":848,"y":1941},{"x":848,"y":1977},{"x":823,"y":1977}]},"text":"a"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":855,"y":1932},{"x":865,"y":1932},{"x":865,"y":1977},{"x":855,"y":1977}]},"text":"i"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":878,"y":1942},{"x":905,"y":1942},{"x":905,"y":1976},{"x":878,"y":1976}]},"text":"n"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":907,"y":1942},{"x":931,"y":1942},{"x":931,"y":1976},{"x":907,"y":1976}]},"text":"s"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":934,"y":1932},{"x":960,"y":1932},{"x":960,"y":1976},{"x":934,"y":1976}]},"text":"b"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":961,"y":1942},{"x":986,"y":1942},{"x":986,"y":1976},{"x":961,"y":1976}]},"text":"u"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":988,"y":1942},{"x":1015,"y":1942},{"x":1015,"y":1976},{"x":988,"y":1976}]},"text":"r"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1017,"y":1942},{"x":1044,"y":1942},{"x":1044,"y":1981},{"x":1017,"y":1981}]},"text":"y"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1046,"y":1942},{"x":1072,"y":1942},{"x":1072,"y":1976},{"x":1046,"y":1976}]},"text":"s"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1083,"y":1942},{"x":1105,"y":1942},{"x":1105,"y":1976},{"x":1083,"y":1976}]},"text":"."},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1107,"y":1942},{"x":1128,"y":1942},{"x":1128,"y":1976},{"x":1107,"y":1976}]},"text":"c"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1130,"y":1942},{"x":1152,"y":1942},{"x":1152,"y":1976},{"x":1130,"y":1976}]},"text":"o"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1154,"y":1942},{"x":1175,"y":1942},{"x":1175,"y":1976},{"x":1154,"y":1976}]},"text":"."},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":null},"boundingBox":{"vertices":[{"x":1185,"y":1943},{"x":1212,"y":1943},{"x":1212,"y":1977},{"x":1185,"y":1977}]},"text":"u"},{"property":{"detectedLanguages":[{"languageCode":"en","confidence":0}],"detectedBreak":{"type":"EOL_SURE_SPACE","isPrefix":false}},"boundingBox":{"vertices":[{"x":1214,"y":1933},{"x":1240,"y":1933},{"x":1240,"y":1977},{"x":1214,"y":1977}]},"text":"k"}]}]}],"blockType":"TEXT"}]}],"text":"Sainsbury's\nêive well for less\nBRACKNELL01344 489992\nSainsbury's Supermarkets Ltd\n33 Holborn London EC1N 2HT\nwww, sainsburys.co.uk\nVat Number 660 4548 36\nSOWN & GROWN MUESLI\nSOWN & GROWN MUESLI\nBASICS TOM KETCHUP\n£0.66\n£0.66\n£0.30\n3 BALANCE DUE\n£1.62\n£10.00\nCASH\nCHANGE\n£8.38\nRKWKRKxxxxxxxxxxxxx\nWITH NECTAR YOU WOULD HAVE EARNED:\nPOINTS\nREGISTER AT www.nectar.com\nKKRWEEKKKKKKX*Xxxxxxxxxxxxxx\nC9063 #0014 9:30:12 9N0V2016\nS00650 R063\nThank you for your visit. Please let us\nknow how we did at tellsainsburys.co.uk\n"},"safeSearchAnnotation":null,"imagePropertiesAnnotation":null,"cropHintsAnnotation":null,"webDetection":null,"error":null}]}]
2 |
--------------------------------------------------------------------------------
/json/S01200HQU351.json:
--------------------------------------------------------------------------------
1 | {"id":"S01200HQU351.jpg","lines":["SainsburyS",", 01044 489992","Supormarkets Ltd","ECIN 2HT","www noburys uk",", 660 36 Vot Numt)or","sowN GROWN MUESLI .66","SOWN g GROWN MUESLI co .66","BASICS IOM KETCHUP co .30","CASH CIO .00","CHANGE Ed .38","sowN GROWN MUESLI .66","SOWN g GROWN MUESLI co .66","BASICS IOM KETCHUP co .30",".62","CASH CIO .00","CHANGE Ed .38","WITH NECTAR you WOULD HAVE EARNED:","1 POINTS","REGISTER AT www.nectar.com","C9063 9NOV2016 R063","Thank you for your visit, Please let us tel Isai nsburys.","know how we did at tel Isai nsburys. co. uk","C9063 9NOV2016","C9063 R063","Thank you for your visit, Please let us","Thank you know how we did at tel Isai nsburys. co. uk"]}
--------------------------------------------------------------------------------
/kotlin/build.gradle:
--------------------------------------------------------------------------------
1 | /*
2 | * This file was generated by the Gradle 'init' task.
3 | *
4 | * This generated file contains a sample Kotlin library project to get you started.
5 | */
6 |
7 | plugins {
8 | // Apply the Kotlin JVM plugin to add support for Kotlin.
9 | id 'org.jetbrains.kotlin.jvm' version '1.3.72'
10 |
11 | // Apply the java-library plugin for API and implementation separation.
12 | id 'java-library'
13 | }
14 |
15 | repositories {
16 | // Use jcenter for resolving dependencies.
17 | // You can declare any Maven/Ivy/file repository here.
18 | jcenter()
19 | }
20 |
21 | dependencies {
22 | // Align versions of all Kotlin components
23 | implementation platform('org.jetbrains.kotlin:kotlin-bom')
24 |
25 | // Use the Kotlin JDK 8 standard library.
26 | implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
27 | compile 'com.google.cloud:google-cloud-vision:1.99.3'
28 | implementation 'com.google.code.gson:gson:2.8.6'
29 | // Use the Kotlin test library.
30 | testImplementation 'org.jetbrains.kotlin:kotlin-test'
31 |
32 | // Use the Kotlin JUnit integration.
33 | testImplementation 'org.jetbrains.kotlin:kotlin-test-junit'
34 | }
35 |
--------------------------------------------------------------------------------
/kotlin/gradlew:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 |
3 | #
4 | # Copyright 2015 the original author or authors.
5 | #
6 | # Licensed under the Apache License, Version 2.0 (the "License");
7 | # you may not use this file except in compliance with the License.
8 | # You may obtain a copy of the License at
9 | #
10 | # https://www.apache.org/licenses/LICENSE-2.0
11 | #
12 | # Unless required by applicable law or agreed to in writing, software
13 | # distributed under the License is distributed on an "AS IS" BASIS,
14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | # See the License for the specific language governing permissions and
16 | # limitations under the License.
17 | #
18 |
19 | ##############################################################################
20 | ##
21 | ## Gradle start up script for UN*X
22 | ##
23 | ##############################################################################
24 |
25 | # Attempt to set APP_HOME
26 | # Resolve links: $0 may be a link
27 | PRG="$0"
28 | # Need this for relative symlinks.
29 | while [ -h "$PRG" ] ; do
30 | ls=`ls -ld "$PRG"`
31 | link=`expr "$ls" : '.*-> \(.*\)$'`
32 | if expr "$link" : '/.*' > /dev/null; then
33 | PRG="$link"
34 | else
35 | PRG=`dirname "$PRG"`"/$link"
36 | fi
37 | done
38 | SAVED="`pwd`"
39 | cd "`dirname \"$PRG\"`/" >/dev/null
40 | APP_HOME="`pwd -P`"
41 | cd "$SAVED" >/dev/null
42 |
43 | APP_NAME="Gradle"
44 | APP_BASE_NAME=`basename "$0"`
45 |
46 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
47 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
48 |
49 | # Use the maximum available, or set MAX_FD != -1 to use that value.
50 | MAX_FD="maximum"
51 |
52 | warn () {
53 | echo "$*"
54 | }
55 |
56 | die () {
57 | echo
58 | echo "$*"
59 | echo
60 | exit 1
61 | }
62 |
63 | # OS specific support (must be 'true' or 'false').
64 | cygwin=false
65 | msys=false
66 | darwin=false
67 | nonstop=false
68 | case "`uname`" in
69 | CYGWIN* )
70 | cygwin=true
71 | ;;
72 | Darwin* )
73 | darwin=true
74 | ;;
75 | MINGW* )
76 | msys=true
77 | ;;
78 | NONSTOP* )
79 | nonstop=true
80 | ;;
81 | esac
82 |
83 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
84 |
85 |
86 | # Determine the Java command to use to start the JVM.
87 | if [ -n "$JAVA_HOME" ] ; then
88 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
89 | # IBM's JDK on AIX uses strange locations for the executables
90 | JAVACMD="$JAVA_HOME/jre/sh/java"
91 | else
92 | JAVACMD="$JAVA_HOME/bin/java"
93 | fi
94 | if [ ! -x "$JAVACMD" ] ; then
95 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
96 |
97 | Please set the JAVA_HOME variable in your environment to match the
98 | location of your Java installation."
99 | fi
100 | else
101 | JAVACMD="java"
102 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
103 |
104 | Please set the JAVA_HOME variable in your environment to match the
105 | location of your Java installation."
106 | fi
107 |
108 | # Increase the maximum file descriptors if we can.
109 | if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
110 | MAX_FD_LIMIT=`ulimit -H -n`
111 | if [ $? -eq 0 ] ; then
112 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
113 | MAX_FD="$MAX_FD_LIMIT"
114 | fi
115 | ulimit -n $MAX_FD
116 | if [ $? -ne 0 ] ; then
117 | warn "Could not set maximum file descriptor limit: $MAX_FD"
118 | fi
119 | else
120 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
121 | fi
122 | fi
123 |
124 | # For Darwin, add options to specify how the application appears in the dock
125 | if $darwin; then
126 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
127 | fi
128 |
129 | # For Cygwin or MSYS, switch paths to Windows format before running java
130 | if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
131 | APP_HOME=`cygpath --path --mixed "$APP_HOME"`
132 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
133 |
134 | JAVACMD=`cygpath --unix "$JAVACMD"`
135 |
136 | # We build the pattern for arguments to be converted via cygpath
137 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
138 | SEP=""
139 | for dir in $ROOTDIRSRAW ; do
140 | ROOTDIRS="$ROOTDIRS$SEP$dir"
141 | SEP="|"
142 | done
143 | OURCYGPATTERN="(^($ROOTDIRS))"
144 | # Add a user-defined pattern to the cygpath arguments
145 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then
146 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
147 | fi
148 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
149 | i=0
150 | for arg in "$@" ; do
151 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
152 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
153 |
154 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
155 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
156 | else
157 | eval `echo args$i`="\"$arg\""
158 | fi
159 | i=`expr $i + 1`
160 | done
161 | case $i in
162 | 0) set -- ;;
163 | 1) set -- "$args0" ;;
164 | 2) set -- "$args0" "$args1" ;;
165 | 3) set -- "$args0" "$args1" "$args2" ;;
166 | 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
167 | 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
168 | 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
169 | 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
170 | 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
171 | 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
172 | esac
173 | fi
174 |
175 | # Escape application args
176 | save () {
177 | for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
178 | echo " "
179 | }
180 | APP_ARGS=`save "$@"`
181 |
182 | # Collect all arguments for the java command, following the shell quoting and substitution rules
183 | eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
184 |
185 | exec "$JAVACMD" "$@"
186 |
--------------------------------------------------------------------------------
/kotlin/gradlew.bat:
--------------------------------------------------------------------------------
1 | @rem
2 | @rem Copyright 2015 the original author or authors.
3 | @rem
4 | @rem Licensed under the Apache License, Version 2.0 (the "License");
5 | @rem you may not use this file except in compliance with the License.
6 | @rem You may obtain a copy of the License at
7 | @rem
8 | @rem https://www.apache.org/licenses/LICENSE-2.0
9 | @rem
10 | @rem Unless required by applicable law or agreed to in writing, software
11 | @rem distributed under the License is distributed on an "AS IS" BASIS,
12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | @rem See the License for the specific language governing permissions and
14 | @rem limitations under the License.
15 | @rem
16 |
17 | @if "%DEBUG%" == "" @echo off
18 | @rem ##########################################################################
19 | @rem
20 | @rem Gradle startup script for Windows
21 | @rem
22 | @rem ##########################################################################
23 |
24 | @rem Set local scope for the variables with windows NT shell
25 | if "%OS%"=="Windows_NT" setlocal
26 |
27 | set DIRNAME=%~dp0
28 | if "%DIRNAME%" == "" set DIRNAME=.
29 | set APP_BASE_NAME=%~n0
30 | set APP_HOME=%DIRNAME%
31 |
32 | @rem Resolve any "." and ".." in APP_HOME to make it shorter.
33 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
34 |
35 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
36 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
37 |
38 | @rem Find java.exe
39 | if defined JAVA_HOME goto findJavaFromJavaHome
40 |
41 | set JAVA_EXE=java.exe
42 | %JAVA_EXE% -version >NUL 2>&1
43 | if "%ERRORLEVEL%" == "0" goto init
44 |
45 | echo.
46 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
47 | echo.
48 | echo Please set the JAVA_HOME variable in your environment to match the
49 | echo location of your Java installation.
50 |
51 | goto fail
52 |
53 | :findJavaFromJavaHome
54 | set JAVA_HOME=%JAVA_HOME:"=%
55 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
56 |
57 | if exist "%JAVA_EXE%" goto init
58 |
59 | echo.
60 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
61 | echo.
62 | echo Please set the JAVA_HOME variable in your environment to match the
63 | echo location of your Java installation.
64 |
65 | goto fail
66 |
67 | :init
68 | @rem Get command-line arguments, handling Windows variants
69 |
70 | if not "%OS%" == "Windows_NT" goto win9xME_args
71 |
72 | :win9xME_args
73 | @rem Slurp the command line arguments.
74 | set CMD_LINE_ARGS=
75 | set _SKIP=2
76 |
77 | :win9xME_args_slurp
78 | if "x%~1" == "x" goto execute
79 |
80 | set CMD_LINE_ARGS=%*
81 |
82 | :execute
83 | @rem Setup the command line
84 |
85 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
86 |
87 |
88 | @rem Execute Gradle
89 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
90 |
91 | :end
92 | @rem End local scope for the variables with windows NT shell
93 | if "%ERRORLEVEL%"=="0" goto mainEnd
94 |
95 | :fail
96 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
97 | rem the _cmd.exe /c_ return code!
98 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
99 | exit /b 1
100 |
101 | :mainEnd
102 | if "%OS%"=="Windows_NT" endlocal
103 |
104 | :omega
105 |
--------------------------------------------------------------------------------
/kotlin/settings.gradle:
--------------------------------------------------------------------------------
1 | /*
2 | * This file was generated by the Gradle 'init' task.
3 | *
4 | * The settings file is used to specify which projects to include in your build.
5 | *
6 | * Detailed information about configuring a multi-project build in Gradle can be found
7 | * in the user manual at https://docs.gradle.org/6.5.1/userguide/multi_project_builds.html
8 | */
9 |
10 | rootProject.name = 'line-segmentation-algorithm-to-gcp-vision'
11 |
--------------------------------------------------------------------------------
/kotlin/src/main/kotlin/com/google/vision/linesegmentation/GoogleVisionLineSegmentationParser.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * This Kotlin source file was generated by the Gradle 'init' task.
3 | */
4 | package com.google.vision.linesegmentation
5 |
6 | import com.google.cloud.vision.v1.AnnotateImageResponse
7 | import com.google.cloud.vision.v1.BoundingPoly
8 | import com.google.cloud.vision.v1.EntityAnnotation
9 | import com.google.cloud.vision.v1.Vertex
10 | import com.google.gson.Gson
11 | import java.awt.Polygon
12 | import kotlin.math.round
13 |
14 | class GoogleVisionLineSegmentationParser {
15 | /**
16 | * GCP Vision groups several nearby words to appropriate lines
17 | * But will not group words that are too far away
18 | * This function combines nearby words and create a combined bounding polygon
19 | */
20 | @Suppress("UNCHECKED_CAST")
21 | fun initLineSegmentation(data: AnnotateImageResponse): List {
22 | val yMax = getYMax(data.getTextAnnotations(0))
23 |
24 | val newData = invertAxis(data, yMax)
25 | // The first index refers to the auto identified words which belongs to a sings line
26 | var lines = newData.textAnnotationsList[0].description.split('\n').toMutableList()
27 | // gcp vision full text
28 | var rawText = (deepCopy(newData) as AnnotateImageResponse).textAnnotationsList
29 |
30 | // reverse to use lifo, because array.shift() will consume 0(n)
31 | lines = lines.reversed().toMutableList()
32 | rawText = rawText.reversed().toMutableList()
33 | //to remove the zeroth element which gives the total summary of the text
34 | rawText.removeAt(rawText.size - 1)
35 |
36 | val mergedArray = getMergedLines(lines, rawText);
37 | val entityToMetadata = getBoundingPolygon(mergedArray);
38 |
39 | combineBoundingPolygon(entityToMetadata);
40 | return constructLineWithBoundingPolygon(entityToMetadata);
41 | }
42 |
43 | // TODO implement the line ordering for multiple words
44 | protected fun constructLineWithBoundingPolygon(entityToMetadata: List>): List {
45 | var finalArray = ArrayList();
46 | entityToMetadata.forEachIndexed { index, it ->
47 | if (!it.second.matched) {
48 | if (it.second.match.size == 0) {
49 | finalArray.add(it.first.description)
50 | } else {
51 | // arrangeWordsInOrder(mergedArray, i);
52 | // let index = mergedArray[i]['match'][0]['matchLineNum'];
53 | // let secondPart = mergedArray[index].description;
54 | // finalArray.push(mergedArray[i].description + ' ' +secondPart);
55 | finalArray.add(arrangeWordsInOrder(entityToMetadata, index));
56 | }
57 | }
58 | }
59 | return finalArray;
60 | }
61 |
62 | private fun getMergedLines(lines: MutableList, rawText: MutableList): List {
63 | val mergedArray = ArrayList();
64 | while (lines.size != 1) {
65 | var l = lines.removeAt(lines.size - 1);
66 | val l1 = l
67 | var status = true;
68 | var mergedElement: EntityAnnotation? = null
69 |
70 | while (true) {
71 | if (rawText.isEmpty()) {
72 | break;
73 | }
74 | val wElement = rawText.removeAt(rawText.size - 1);
75 | val w = wElement.description;
76 |
77 | val index = l.indexOf(w);
78 |
79 | l = l.substring(index + w.length);
80 |
81 | if (status) {
82 | status = false;
83 | // set starting coordinates
84 | mergedElement = wElement;
85 | }
86 | if (l == "") {
87 | val newElement = EntityAnnotation.newBuilder().mergeFrom(mergedElement)
88 | .setDescription(l1)
89 | .setBoundingPoly(BoundingPoly.newBuilder().mergeFrom(mergedElement!!.boundingPoly).clearVertices()
90 | .addVertices(0, mergedElement.boundingPoly.verticesList[0])
91 | .addVertices(1, wElement.boundingPoly.verticesList[1])
92 | .addVertices(2, wElement.boundingPoly.verticesList[2])
93 | .addVertices(3, mergedElement.boundingPoly.verticesList[3]).build()).build()
94 | mergedArray.add(newElement);
95 | break;
96 | }
97 | }
98 | }
99 | return mergedArray;
100 | }
101 |
102 | private fun arrangeWordsInOrder(entityToMetadata: List>, k: Int): String {
103 | var mergedLine = "";
104 | var line = entityToMetadata[k].second.match;
105 |
106 | line.forEach {
107 | val index = it.matchLineNum;
108 | val matchedWordForLine = entityToMetadata[index].first.description;
109 |
110 | val mainX = entityToMetadata[k].first.boundingPoly.verticesList[0].x;
111 | val compareX = entityToMetadata[index].first.boundingPoly.verticesList[0].x;
112 |
113 | if (compareX > mainX) {
114 | mergedLine = entityToMetadata[k].first.description + ' ' + matchedWordForLine;
115 | } else {
116 | mergedLine = matchedWordForLine + ' ' + entityToMetadata[k].first.description;
117 | }
118 | }
119 | return mergedLine;
120 | }
121 |
122 | /**
123 | * @Method computes the maximum y coordinate from the identified text blob
124 | * @param data
125 | * @returns {*}
126 | */
127 | fun getYMax(data: EntityAnnotation): Int {
128 | return data.boundingPoly.verticesList.maxBy { it.y }!!.y
129 | }
130 |
131 | /**
132 | * @Method inverts the y axis coordinates for easier computation
133 | * as the google vision starts the y axis from the bottom
134 | * @param data
135 | * @param yMax
136 | * @returns {*}
137 | */
138 | private fun invertAxis(data: AnnotateImageResponse, yMax: Int): AnnotateImageResponse {
139 | //TODO Don't think this is needed
140 | //data = fillMissingValues(data);
141 | val newEntities = ArrayList()
142 | newEntities.add(data.textAnnotationsList[0])
143 | for (i in 1 until data.textAnnotationsList.size) {
144 | val vertexList = ArrayList()
145 | data.textAnnotationsList[i].boundingPoly.verticesList.forEach {
146 | vertexList.add(Vertex.newBuilder().mergeFrom(it).clearY().setY(yMax - it.y).build())
147 | }
148 | val entityBuilder = EntityAnnotation.newBuilder().mergeFrom(data.textAnnotationsList[i])
149 | entityBuilder.boundingPoly = entityBuilder.boundingPolyBuilder.clearVertices().addAllVertices(vertexList).build()
150 | val newEntity = entityBuilder.build()
151 | newEntities.add(newEntity)
152 | }
153 | val responseBuilder = AnnotateImageResponse.newBuilder().mergeFrom(data)
154 | responseBuilder.clearTextAnnotations()
155 | responseBuilder.addAllTextAnnotations(newEntities)
156 | return responseBuilder.build()
157 | }
158 |
159 |
160 | /**
161 | *
162 | * @param mergedArray
163 | */
164 | private fun getBoundingPolygon(mergedArray: List): List> {
165 | val entityAnnotationToMetadata = ArrayList>()
166 | mergedArray.forEachIndexed { index, it ->
167 | var arr = ArrayList();
168 | // calculate line height
169 | val h1 = it.boundingPoly.verticesList[0].y - it.boundingPoly.verticesList[3].y;
170 | val h2 = it.boundingPoly.verticesList[1].y - it.boundingPoly.verticesList[2].y;
171 | var h = h1;
172 | if (h2 > h1) {
173 | h = h2
174 | }
175 | val avgHeight = h * 0.6;
176 |
177 | arr.add(it.boundingPoly.verticesList[1]);
178 | arr.add(it.boundingPoly.verticesList[0]);
179 | val line1 = getRectangle(arr, avgHeight, true);
180 |
181 | arr = ArrayList();
182 | arr.add(it.boundingPoly.verticesList[2]);
183 | arr.add(it.boundingPoly.verticesList[3]);
184 | val line2 = getRectangle(arr, avgHeight, false);
185 |
186 | entityAnnotationToMetadata.add(Pair(it, EntityMetadata(createPolygon(line1, line2), index, ArrayList(), false)))
187 | }
188 | return entityAnnotationToMetadata
189 | }
190 |
191 | private fun combineBoundingPolygon(entityToMetadata: List>) {
192 | // select one word from the array
193 | entityToMetadata.forEachIndexed { index1, it ->
194 | val bigBB = it.second.bigBB;
195 | // iterate through all the array to find the match
196 | for (index2 in index1 until entityToMetadata.size) {
197 | val k = entityToMetadata[index2]
198 | // Do not compare with the own bounding box and which was not matched with a line
199 | if (index1 != index2 && !k.second.matched) {
200 | var insideCount = 0;
201 | k.first.boundingPoly.verticesList.forEach { coordinate ->
202 | if (bigBB.contains(coordinate.x, coordinate.y)) {
203 | insideCount += 1;
204 | }
205 | }
206 | // all four point were inside the big bb
207 | if (insideCount == 4) {
208 | it.second.match.add(Match(insideCount, index2))
209 | k.second.matched = true;
210 | }
211 |
212 | }
213 | }
214 | }
215 | }
216 |
217 | private fun getRectangle(v: MutableList, avgHeight: Double, isAdd: Boolean): Rectangle {
218 | val firstCandidate: Double
219 | val secondCandidate: Double
220 | if (isAdd) {
221 | secondCandidate = v[1].y + avgHeight
222 | firstCandidate = v[0].y + avgHeight
223 | } else {
224 | secondCandidate = v[1].y - avgHeight
225 | firstCandidate = v[0].y - avgHeight
226 | }
227 |
228 | val yDiff = (secondCandidate - firstCandidate);
229 | val xDiff = (v[1].x - v[0].x);
230 |
231 | val gradient = yDiff / xDiff;
232 |
233 | val xThreshMin = 1;
234 | val xThreshMax = 2000;
235 |
236 | var yMin: Double
237 | var yMax: Double
238 | if (gradient == 0.0) {
239 | // extend the line
240 | yMin = firstCandidate;
241 | yMax = firstCandidate;
242 | } else {
243 | yMin = (firstCandidate) - (gradient * (v[0].x - xThreshMin));
244 | yMax = (firstCandidate) + (gradient * (xThreshMax - v[0].x));
245 | }
246 | yMin = round(yMin);
247 | yMax = round(yMax);
248 | return Rectangle(xThreshMin, xThreshMax, yMin, yMax)
249 | }
250 |
251 | private fun createPolygon(line1: Rectangle, line2: Rectangle): Polygon {
252 | val polygon = Polygon()
253 | polygon.addPoint(line1.xMin, round(line1.yMin).toInt())
254 | polygon.addPoint(line1.xMax, round(line1.yMax).toInt())
255 | polygon.addPoint(line2.xMax, round(line2.yMax).toInt())
256 | polygon.addPoint(line2.xMin, round(line2.yMin).toInt())
257 | return polygon
258 | }
259 |
260 | private fun deepCopy(t: Any): Any {
261 | val serializedObj = Gson().toJson(t);
262 | return Gson().fromJson(serializedObj, AnnotateImageResponse::class.java)
263 | }
264 |
265 | data class Rectangle(
266 | val xMin: Int,
267 | val xMax: Int,
268 | val yMin: Double,
269 | val yMax: Double
270 | )
271 |
272 | data class EntityMetadata(
273 | val bigBB: Polygon,
274 | val lineNum: Int,
275 | val match: MutableList,
276 | var matched: Boolean
277 | )
278 |
279 | data class Match(
280 | val matchCount: Int,
281 | val matchLineNum: Int
282 | )
283 | }
284 |
--------------------------------------------------------------------------------
/kotlin/src/test/kotlin/com/google/vision/linesegmentation/GoogleVisionLineSegmentationParserTest.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * This Kotlin source file was generated by the Gradle 'init' task.
3 | */
4 | package com.google.vision.linesegmentation
5 |
6 | import com.google.cloud.vision.v1.AnnotateImageResponse
7 | import com.google.cloud.vision.v1.BoundingPoly
8 | import com.google.cloud.vision.v1.EntityAnnotation
9 | import com.google.cloud.vision.v1.Vertex
10 | import com.google.gson.FieldNamingPolicy
11 | import com.google.gson.FieldNamingStrategy
12 | import com.google.gson.Gson
13 | import com.google.gson.GsonBuilder
14 | import org.junit.Assert
15 | import java.lang.reflect.Field
16 | import kotlin.test.Test
17 | import kotlin.test.assertTrue
18 |
19 | class GoogleVisionLineSegmentationParserTest {
20 | @Test
21 | fun happyPathParse() {
22 | val googleVisionLineSegmentationParser = GoogleVisionLineSegmentationParser()
23 | val content = GoogleVisionLineSegmentationParserTest::class.java.getResource("/S01200HQT173.jpg.json").readText()
24 | val annotateImageResponse = getGson().fromJson(content, AnnotateImageResponse::class.java)
25 | val mergedArray = googleVisionLineSegmentationParser.initLineSegmentation(annotateImageResponse)
26 |
27 | val expected = listOf("TESCO",
28 | "eactra",
29 | "CUMBERNAULD 0345 6779808",
30 |
31 | "KITTEN FOOD £3.50",
32 | "DIPPERS £2.50",
33 | "CKN DIPPERS £1.50",
34 | "CRISPS £1.24",
35 | "MINI CHEDDAR £1.00",
36 | "CRISPS £1.24",
37 | "MINI CHEDDAR £1.00",
38 | "T POTATO CAKES eU",
39 | "£0.50 £1.00",
40 | "CKN/MUSH SLICE £1.50",
41 | "CKN FINGERS £2.00",
42 | "TARTS £1.00",
43 | "CKN FINGERS £2.00",
44 | "TARTS £1.00",
45 | "SCONES £1.20",
46 | "BS 4 BURG BUNS 0.70",
47 | "£0.80",
48 | "BIN LINERS x £1.00",
49 | "KM SOFT THICK",
50 | "SWEETS",
51 | "£0.40 0.80",
52 | "GOV BAG CHARGE+x £0.05",
53 | "BISCUITS £1.00",
54 | "£1.29",
55 | "TIMEOUT",
56 | "TOTAL £27.32",
57 | "CASH",
58 | "CHANGE DUE £2.68",
59 | "830.00",
60 | "CLUBCARD STATEMENT",
61 | "CLUBCARD NUMBER xxxxxxxxxxxxxx0582",
62 | "QUALIFVING SPEND £27.27",
63 | "POINTS THIS VISIT 27",
64 | "TOTAL UP TO 07/11/16",
65 | "TESCO",
66 | "Bran",
67 | "Guarantee",
68 | "Today we were",
69 | "E O.35",
70 | "cheaper",
71 | "on your branded basket compared to",
72 | "Asda, Morrisons and Sainsbury's",
73 | "Our Brand Guarantee instantly matches",
74 | "your branded basket so you can always",
75 | "checkout with confi dence",
76 | "Branded grocery basket matched. For full",
77 | "terms visit tesco.com/brandguar antee",
78 | "by telling us about your trip",
79 | "at www.tescoviews.com",
80 | "and collect 25 Clubcard points.",
81 | "Terms and conditions apply")
82 | Assert.assertArrayEquals(expected.toTypedArray(), mergedArray.toTypedArray())
83 | }
84 |
85 | @Test
86 | fun maxYTest() {
87 | val googleVisionLineSegmentationParser = GoogleVisionLineSegmentationParser()
88 | val entityAnnotation = EntityAnnotation.newBuilder().setBoundingPoly(BoundingPoly.newBuilder()
89 | .addVertices(Vertex.newBuilder().setX(262).setY(260).build())
90 | .addVertices(Vertex.newBuilder().setX(1176).setY(260).build())
91 | .addVertices(Vertex.newBuilder().setX(1176).setY(3486).build())
92 | .addVertices(Vertex.newBuilder().setX(262).setY(3486).build()).build()).build()
93 | Assert.assertEquals(googleVisionLineSegmentationParser.getYMax(entityAnnotation), 3486)
94 |
95 | }
96 |
97 | fun getGson(): Gson {
98 | return GsonBuilder()
99 | .setFieldNamingStrategy(PrivateFieldNamingStrategy())
100 | .setPrettyPrinting().disableHtmlEscaping()
101 | .create()
102 | }
103 |
104 | class PrivateFieldNamingStrategy : FieldNamingStrategy {
105 | override fun translateName(f: Field?): String {
106 | var fieldName = FieldNamingPolicy.IDENTITY.translateName(f)
107 | if (fieldName.endsWith("_")) {
108 | return fieldName.substring(0, fieldName.length - 1)
109 | }
110 | return fieldName
111 | }
112 | }
113 | }
114 |
--------------------------------------------------------------------------------
/nodejs/ReadME.MD:
--------------------------------------------------------------------------------
1 | ## Getting Started
2 |
3 | ## Installation
4 |
5 | Using npm:
6 |
7 | The NPM package is available in the following [repository](https://www.npmjs.com/package/line-segmentation-algorithm-to-gcp-vision). Use the following command to install the repository locally.
8 |
9 | ```js
10 | npm i line-segmentation-algorithm-to-gcp-vision
11 | ```
12 |
13 | ## Usage in Node.js
14 |
15 | Input via a JSON file
16 | ```JS
17 | const fs = require("fs");
18 | const algorithm = require("line-segmentation-algorithm-to-gcp-vision");
19 |
20 | // Load the JSON file which has the GCP Response
21 | const content = fs.readFileSync("./S01200HQT173.jpg.json");
22 | // Parse the JSON fine to a variable
23 | const textJson = JSON.parse(content);
24 |
25 | // Perform Line Segmentation
26 | console.log(algorithm.initLineSegmentation(textJson[0]['responses'][0]));
27 | ```
28 |
29 | Use the response from GCP results
30 |
31 | ```JS
32 | const algo = require("line-segmentation-algorithm-to-gcp-vision");
33 |
34 | // call GCP Vision and retrieve results
35 | let gcpResponse = {};
36 | console.log(algo.initLineSegmentation(gcpResponse[0]['responses'][0]));
37 | ```
38 |
39 |
--------------------------------------------------------------------------------
/nodejs/coordinatesHelper.js:
--------------------------------------------------------------------------------
1 | const inside = require('point-in-polygon');
2 | const deepcopy = require("deepcopy");
3 |
4 | /**
5 | * @Method computes the maximum y coordinate from the identified text blob
6 | * @param data
7 | * @returns {*}
8 | */
9 | function getYMax(data) {
10 | let v = data.textAnnotations[0].boundingPoly.vertices;
11 | let yArray = [];
12 | for(let i=0; i <4; i++){
13 | yArray.push(v[i]['y']);
14 | }
15 | return Math.max.apply(null, yArray);
16 | }
17 |
18 | /**
19 | * @Method inverts the y axis coordinates for easier computation
20 | * as the google vision starts the y axis from the bottom
21 | * @param data
22 | * @param yMax
23 | * @returns {*}
24 | */
25 | function invertAxis(data, yMax) {
26 | data = fillMissingValues(data);
27 | for(let i=1; i < data.textAnnotations.length; i++ ){
28 | let v = data.textAnnotations[i].boundingPoly.vertices;
29 | for(let j=0; j <4; j++){
30 | v[j]['y'] = (yMax - v[j]['y']);
31 | }
32 | }
33 | return data;
34 | }
35 |
36 | /**
37 | * @Method sets zero to missing polygon coordinates. This behaviour has been observed in images where
38 | * the text starts from the edge of the image. In such scenarios the x/y coordinates have been empty.
39 | * @param data
40 | * @returns {*}
41 | */
42 | function fillMissingValues(data) {
43 | for(let i=1; i < data.textAnnotations.length; i++ ){
44 | let v = data.textAnnotations[i].boundingPoly.vertices;
45 | v.map((ver) => {
46 | if(ver['x'] === undefined){
47 | ver['x'] = 0;
48 | }
49 | if(ver['y'] === undefined){
50 | ver['y'] = 0;
51 | }
52 | });
53 | }
54 | return data;
55 | }
56 |
57 | /**
58 | *
59 | * @param mergedArray
60 | */
61 | function getBoundingPolygon(mergedArray) {
62 |
63 | for(let i=0; i< mergedArray.length; i++) {
64 | let arr = [];
65 |
66 | // calculate line height
67 | let h1 = mergedArray[i].boundingPoly.vertices[0].y - mergedArray[i].boundingPoly.vertices[3].y;
68 | let h2 = mergedArray[i].boundingPoly.vertices[1].y - mergedArray[i].boundingPoly.vertices[2].y;
69 | let h = h1;
70 | if(h2> h1) {
71 | h = h2
72 | }
73 | let avgHeight = h * 0.6;
74 |
75 | arr.push(mergedArray[i].boundingPoly.vertices[1]);
76 | arr.push(mergedArray[i].boundingPoly.vertices[0]);
77 | let line1 = getRectangle(deepcopy(arr), true, avgHeight, true);
78 |
79 | arr = [];
80 | arr.push(mergedArray[i].boundingPoly.vertices[2]);
81 | arr.push(mergedArray[i].boundingPoly.vertices[3]);
82 | let line2 = getRectangle(deepcopy(arr), true, avgHeight, false);
83 |
84 | mergedArray[i]['bigbb'] = createRectCoordinates(line1, line2);
85 | mergedArray[i]['lineNum'] = i;
86 | mergedArray[i]['match'] = [];
87 | mergedArray[i]['matched'] = false;
88 | }
89 | }
90 |
91 |
92 | function combineBoundingPolygon(mergedArray) {
93 | // select one word from the array
94 | for(let i=0; i< mergedArray.length; i++) {
95 |
96 | let bigBB = mergedArray[i]['bigbb'];
97 |
98 | // iterate through all the array to find the match
99 | for(let k=i; k< mergedArray.length; k++) {
100 | // Do not compare with the own bounding box and which was not matched with a line
101 | if(k !== i && mergedArray[k]['matched'] === false) {
102 | let insideCount = 0;
103 | for(let j=0; j < 4; j++) {
104 | let coordinate = mergedArray[k].boundingPoly.vertices[j];
105 | if(inside([coordinate.x, coordinate.y], bigBB)){
106 | insideCount += 1;
107 | }
108 | }
109 | // all four point were inside the big bb
110 | if(insideCount === 4) {
111 | let match = {matchCount: insideCount, matchLineNum: k};
112 | mergedArray[i]['match'].push(match);
113 | mergedArray[k]['matched'] = true;
114 | }
115 |
116 | }
117 | }
118 | }
119 | }
120 |
121 | function getRectangle(v, isRoundValues, avgHeight, isAdd) {
122 | if(isAdd){
123 | v[1].y = v[1].y + avgHeight;
124 | v[0].y = v[0].y + avgHeight;
125 | }else {
126 | v[1].y = v[1].y - avgHeight;
127 | v[0].y = v[0].y - avgHeight;
128 | }
129 |
130 | let yDiff = (v[1].y - v[0].y);
131 | let xDiff = (v[1].x - v[0].x);
132 |
133 | let gradient = yDiff / xDiff;
134 |
135 | let xThreshMin = 1;
136 | let xThreshMax = 2000;
137 |
138 | let yMin;
139 | let yMax;
140 | if(gradient === 0) {
141 | // extend the line
142 | yMin = v[0].y;
143 | yMax = v[0].y;
144 | }else{
145 | yMin = (v[0].y) - (gradient * (v[0].x - xThreshMin));
146 | yMax = (v[0].y) + (gradient * (xThreshMax - v[0].x));
147 | }
148 | if(isRoundValues) {
149 | yMin = Math.round(yMin);
150 | yMax = Math.round(yMax);
151 | }
152 | return {xMin : xThreshMin, xMax : xThreshMax, yMin: yMin, yMax: yMax};
153 | }
154 |
155 | function createRectCoordinates(line1, line2) {
156 | return [[line1.xMin, line1.yMin], [line1.xMax, line1.yMax], [line2.xMax, line2.yMax],[line2.xMin, line2.yMin]];
157 | }
158 |
159 | var exports = module.exports = {};
160 |
161 | exports.getYMax = function (data) {
162 | return getYMax(data);
163 | };
164 |
165 | exports.invertAxis = function (data, yMax) {
166 | return invertAxis(data, yMax);
167 | };
168 |
169 | exports.getBoundingPolygon = function (mergedArray) {
170 | return getBoundingPolygon(mergedArray);
171 | };
172 |
173 | exports.combineBoundingPolygon = function (mergedArray) {
174 | return combineBoundingPolygon(mergedArray);
175 | };
176 |
--------------------------------------------------------------------------------
/nodejs/index.js:
--------------------------------------------------------------------------------
1 | const deepCopy = require("deepcopy");
2 | const coordinatesHelper = require('./coordinatesHelper');
3 |
4 | /**
5 | * GCP Vision groups several nearby words to appropriate lines
6 | * But will not group words that are too far away
7 | * This function combines nearby words and create a combined bounding polygon
8 | */
9 | function initLineSegmentation(data) {
10 |
11 | const yMax = coordinatesHelper.getYMax(data);
12 | data = coordinatesHelper.invertAxis(data, yMax);
13 |
14 | // The first index refers to the auto identified words which belongs to a sings line
15 | let lines = data.textAnnotations[0].description.split('\n');
16 |
17 | // gcp vision full text
18 | let rawText = deepCopy(data.textAnnotations);
19 |
20 | // reverse to use lifo, because array.shift() will consume 0(n)
21 | lines = lines.reverse();
22 | rawText = rawText.reverse();
23 | // to remove the zeroth element which gives the total summary of the text
24 | rawText.pop();
25 |
26 | let mergedArray = getMergedLines(lines, rawText);
27 |
28 | coordinatesHelper.getBoundingPolygon(mergedArray);
29 | coordinatesHelper.combineBoundingPolygon(mergedArray);
30 |
31 | // This does the line segmentation based on the bounding boxes
32 | return constructLineWithBoundingPolygon(mergedArray);
33 | }
34 |
35 | // TODO implement the line ordering for multiple words
36 | function constructLineWithBoundingPolygon(mergedArray) {
37 | let finalArray = [];
38 |
39 | for(let i=0; i< mergedArray.length; i++) {
40 | if(!mergedArray[i]['matched']){
41 | if(mergedArray[i]['match'].length === 0){
42 | finalArray.push(mergedArray[i].description)
43 | }else{
44 | // arrangeWordsInOrder(mergedArray, i);
45 | // let index = mergedArray[i]['match'][0]['matchLineNum'];
46 | // let secondPart = mergedArray[index].description;
47 | // finalArray.push(mergedArray[i].description + ' ' +secondPart);
48 | finalArray.push(arrangeWordsInOrder(mergedArray, i));
49 | }
50 | }
51 | }
52 | return finalArray;
53 | }
54 |
55 | function getMergedLines(lines,rawText) {
56 |
57 | let mergedArray = [];
58 | while(lines.length !== 1) {
59 | let l = lines.pop();
60 | let l1 = deepCopy(l);
61 | let status = true;
62 |
63 | let data = "";
64 | let mergedElement;
65 |
66 | while (true) {
67 | let wElement = rawText.pop();
68 | if(wElement === undefined) {
69 | break;
70 | }
71 | let w = wElement.description;
72 |
73 | let index = l.indexOf(w);
74 | let temp;
75 | // check if the word is inside
76 | l = l.substring(index + w.length);
77 | if(status) {
78 | status = false;
79 | // set starting coordinates
80 | mergedElement = wElement;
81 | }
82 | if(l === ""){
83 | // set ending coordinates
84 | mergedElement.description = l1;
85 | mergedElement.boundingPoly.vertices[1] = wElement.boundingPoly.vertices[1];
86 | mergedElement.boundingPoly.vertices[2] = wElement.boundingPoly.vertices[2];
87 | mergedArray.push(mergedElement);
88 | break;
89 | }
90 | }
91 | }
92 | return mergedArray;
93 | }
94 |
95 | function arrangeWordsInOrder(mergedArray, k) {
96 | let mergedLine = '';
97 | let wordArray = [];
98 | let line = mergedArray[k]['match'];
99 | // [0]['matchLineNum']
100 | for(let i=0; i < line.length; i++){
101 | let index = line[i]['matchLineNum'];
102 | let matchedWordForLine = mergedArray[index].description;
103 |
104 | let mainX = mergedArray[k].boundingPoly.vertices[0].x;
105 | let compareX = mergedArray[index].boundingPoly.vertices[0].x;
106 |
107 | if(compareX > mainX) {
108 | mergedLine = mergedArray[k].description + ' ' + matchedWordForLine;
109 | }else {
110 | mergedLine = matchedWordForLine + ' ' + mergedArray[k].description;
111 | }
112 | }
113 | return mergedLine;
114 | }
115 |
116 | var exports = module.exports = {};
117 |
118 | exports.initLineSegmentation = function (data) {
119 | return initLineSegmentation(data);
120 | };
121 |
--------------------------------------------------------------------------------
/nodejs/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "line-segmentation-algorithm-to-gcp-vision",
3 | "version": "1.0.2",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "jest",
8 | "start": "node index.js"
9 | },
10 | "repository": {
11 | "type": "git",
12 | "url": "git+https://github.com/sshniro/line-segmentation-algorithm-to-gcp-vision.git"
13 | },
14 | "author": "Nirojan Selvanathan",
15 | "license": "ISC",
16 | "bugs": {
17 | "url": "https://github.com/sshniro/line-segmentation-algorithm-to-gcp-vision/issues"
18 | },
19 | "homepage": "https://github.com/sshniro/line-segmentation-algorithm-to-gcp-vision#readme",
20 | "dependencies": {
21 | "deepcopy": "^0.6.3",
22 | "point-in-polygon": "^1.0.1",
23 | "@google-cloud/vision": "^0.12.0",
24 | "jsonfile": "^4.0.0",
25 | "jest": "^23.3.0"
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/nodejs/test/coordinatesHelper.test.js:
--------------------------------------------------------------------------------
1 | const coordinatesHelper = require('../coordinatesHelper');
2 |
3 | test('it should return the max Y vertice', () => {
4 | const vertices = {"textAnnotations":[{"boundingPoly":{
5 | "vertices":[
6 | {"x":262,"y":260},
7 | {"x":1176,"y":260},
8 | {"x":1176,"y":3486},
9 | {"x":262,"y":3486}
10 | ]}}]};
11 | const yMax = coordinatesHelper.getYMax(vertices);
12 | expect(yMax).toBe(3486);
13 | });
14 |
15 | test('it should fill all undefined vertices x and y cordinates', () => {
16 | const vertices = {"textAnnotations":[
17 | {"boundingPoly":{
18 | "vertices":[
19 | {"x":262,"y":260},
20 | {"x":1176,"y":260},
21 | {"x":1176,"y":3486},
22 | {"x":262,"y":3486}
23 | ]
24 | }},
25 | {"boundingPoly":{
26 | "vertices":[
27 | {"x":262,"y":undefined},
28 | {"x":1176,"y":260},
29 | {"x":undefined,"y":3486},
30 | {"x":262,"y":3486}
31 | ]
32 | }}]};
33 |
34 | const matchingVal = [
35 | { x: 262, y: 3486 },
36 | { x: 1176, y: 3226 },
37 | { x: 0, y: 0 },
38 | { x: 262, y: 0 }
39 | ];
40 | const maxYVertice = 3486;
41 | const invertedData = coordinatesHelper.invertAxis(vertices,maxYVertice);
42 | expect(invertedData.textAnnotations[1].boundingPoly.vertices).toEqual(matchingVal);
43 | });
44 |
--------------------------------------------------------------------------------
/nodejs/test/index.test.js:
--------------------------------------------------------------------------------
1 | const appHelper = require('..');
2 | const fs = require("fs");
3 |
4 | test('it should', () => {
5 | const content = fs.readFileSync("../json/S01200HQT173.jpg.json");
6 | const textJson = JSON.parse(content);
7 | const mergedArray = appHelper.initLineSegmentation(textJson[0]['responses'][0]);
8 | expect(mergedArray).toEqual([ 'TESCO',
9 | 'eactra',
10 | 'CUMBERNAULD 0345 6779808',
11 | 'KITTEN FOOD £3.50',
12 | 'DIPPERS £2.50',
13 | 'CKN DIPPERS £1.50',
14 | 'CRISPS £1.24',
15 | 'MINI CHEDDAR £1.00',
16 | 'CRISPS £1.24',
17 | 'MINI CHEDDAR £1.00',
18 | 'T POTATO CAKES eU',
19 | '£0.50 £1.00',
20 | 'CKN/MUSH SLICE £1.50',
21 | 'CKN FINGERS £2.00',
22 | 'TARTS £1.00',
23 | 'CKN FINGERS £2.00',
24 | 'TARTS £1.00',
25 | 'SCONES £1.20',
26 | 'BS 4 BURG BUNS 0.70',
27 | '£0.80',
28 | 'BIN LINERS x £1.00',
29 | 'KM SOFT THICK',
30 | 'SWEETS',
31 | '£0.40 0.80',
32 | 'GOV BAG CHARGE+x £0.05',
33 | 'BISCUITS £1.00',
34 | '£1.29',
35 | 'TIMEOUT',
36 | 'TOTAL £27.32',
37 | 'CASH',
38 | 'CHANGE DUE £2.68',
39 | '830.00',
40 | 'CLUBCARD STATEMENT',
41 | 'CLUBCARD NUMBER xxxxxxxxxxxxxx0582',
42 | 'QUALIFVING SPEND £27.27',
43 | 'POINTS THIS VISIT 27',
44 | 'TOTAL UP TO 07/11/16',
45 | 'TESCO',
46 | 'Bran',
47 | 'Guarantee',
48 | 'Today we were',
49 | 'E O.35',
50 | 'cheaper',
51 | 'on your branded basket compared to',
52 | 'Asda, Morrisons and Sainsbury\'s',
53 | 'Our Brand Guarantee instantly matches',
54 | 'your branded basket so you can always',
55 | 'checkout with confi dence',
56 | 'Branded grocery basket matched. For full',
57 | 'terms visit tesco.com/brandguar antee',
58 | 'by telling us about your trip',
59 | 'at www.tescoviews.com',
60 | 'and collect 25 Clubcard points.',
61 | 'Terms and conditions apply' ]);
62 | });
63 |
--------------------------------------------------------------------------------