├── .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 | [![Hex.pm](https://img.shields.io/hexpm/l/plug.svg)](https://github.com/sshniro/line-segmentation-algorithm-to-gcp-vision/blob/master/LICENSE) 2 | [![Build Status](https://travis-ci.org/sshniro/line-segmentation-algorithm-to-gcp-vision.svg?branch=master)](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 | screen shot 2018-01-15 at 3 55 59 pm 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 | screen shot 2018-01-15 at 4 50 31 pm 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 | waterflow 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 | --------------------------------------------------------------------------------