diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/adapter/CvTableParsingAdapter.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/adapter/CvTableParsingAdapter.java index 4e58f1d..287831e 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/adapter/CvTableParsingAdapter.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/adapter/CvTableParsingAdapter.java @@ -8,6 +8,7 @@ import java.util.Map; import org.springframework.stereotype.Service; +import com.knecon.fforesight.service.layoutparser.processor.python_api.model.table.PageInfo; import com.knecon.fforesight.service.layoutparser.processor.python_api.model.table.TableCells; import com.knecon.fforesight.service.layoutparser.processor.python_api.model.table.TableServiceResponse; @@ -24,24 +25,26 @@ public class CvTableParsingAdapter { Map> tableCells = new HashMap<>(); tableServiceResponse.getData() .forEach(tableData -> tableCells.computeIfAbsent(tableData.getPageInfo().getNumber(), tableCell -> new ArrayList<>()) - .addAll(convertTableCells(tableData.getTableCells()))); + .addAll(convertTableCells(tableData.getTableCells(), tableData.getPageInfo()))); return tableCells; } - private Collection convertTableCells(List tableCells) { + private Collection convertTableCells(List tableCells, PageInfo pageInfo) { List cvParsedTableCells = new ArrayList<>(); - tableCells.forEach(t -> cvParsedTableCells.add(TableCells.builder() - .y0(t.getY0()) - .x1(t.getX1()) - .y1(t.getY1()) - .x0(t.getX0()) - .width(t.getWidth()) - .height(t.getHeight()) - .build())); + tableCells.stream() + .filter(cell -> cell.getWidth() < pageInfo.getWidth() * 0.98 && cell.getHeight() < pageInfo.getHeight() * 0.98) + .forEach(t -> cvParsedTableCells.add(TableCells.builder() + .y0(t.getY0()) + .x1(t.getX1()) + .y1(t.getY1()) + .x0(t.getX0()) + .width(t.getWidth()) + .height(t.getHeight()) + .build())); return cvParsedTableCells; } diff --git a/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/segmentation/PdfSegmentationServiceTest.java b/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/segmentation/PdfSegmentationServiceTest.java index a35b401..f2e9896 100644 --- a/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/segmentation/PdfSegmentationServiceTest.java +++ b/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/segmentation/PdfSegmentationServiceTest.java @@ -61,12 +61,13 @@ public class PdfSegmentationServiceTest extends AbstractTest { private SectionsBuilderService sectionsBuilderService; - public ClassificationDocument buildClassificationDocument(PDDocument originDocument) { + @SneakyThrows + public ClassificationDocument buildClassificationDocument(PDDocument originDocument, TableServiceResponse tableServiceResponse) { ClassificationDocument classificationDocument = layoutParsingPipeline.parseLayout(LayoutParsingType.REDACT_MANAGER, originDocument, new ImageServiceResponse(), - new TableServiceResponse()); + tableServiceResponse); redactManagerClassificationService.classifyDocument(classificationDocument); @@ -76,6 +77,13 @@ public class PdfSegmentationServiceTest extends AbstractTest { } + @SneakyThrows + public ClassificationDocument buildClassificationDocument(PDDocument originDocument) { + + return buildClassificationDocument(originDocument, new TableServiceResponse()); + } + + @Test public void tablesToHtmlDebugger() throws IOException { @@ -88,6 +96,39 @@ public class PdfSegmentationServiceTest extends AbstractTest { } + @Test + public void tablesToHtmlDebuggerWithCVResponse() throws IOException { + + ClassPathResource pdfFileResource = new ClassPathResource("files/cv_tables/ScanRotationBorder.pdf"); + ClassPathResource cvTablesResource = new ClassPathResource("files/cv_tables/ScanRotationBorder.TABLES.json"); + var tableServiceResponse = objectMapper.readValue(cvTablesResource.getInputStream(), TableServiceResponse.class); + + ClassificationDocument document = buildClassificationDocument(Loader.loadPDF(pdfFileResource.getFile()), tableServiceResponse); + + toHtml(document, "/tmp/ScanRotationBorder.html"); + } + + + @Test + public void testScanRotationBorderIsIgnored() throws IOException { + + ClassPathResource pdfFileResource = new ClassPathResource("files/cv_tables/ScanRotationBorder.pdf"); + ClassPathResource cvTablesResource = new ClassPathResource("files/cv_tables/ScanRotationBorder.TABLES.json"); + var tableServiceResponse = objectMapper.readValue(cvTablesResource.getInputStream(), TableServiceResponse.class); + + ClassificationDocument document = buildClassificationDocument(Loader.loadPDF(pdfFileResource.getFile()), tableServiceResponse); + assertThat(document.getSections().stream().flatMap(paragraph -> paragraph.getTables().stream()).collect(Collectors.toList())).isNotEmpty(); + var tables = document.getSections().stream().flatMap(paragraph -> paragraph.getTables().stream()).toList(); + + // Quality of the table parsing is not good, because the file is rotated at scanning. + // We only asset that the table border is not the page border. + tables.forEach(table -> { + assertThat(table.getMinX()).isGreaterThan(75); + assertThat(table.getMaxX()).isLessThan(512); + }); + } + + @Test @SneakyThrows public void testMapping() { diff --git a/layoutparser-service/layoutparser-service-server/src/test/resources/files/cv_tables/ScanRotationBorder.TABLES.json b/layoutparser-service/layoutparser-service-server/src/test/resources/files/cv_tables/ScanRotationBorder.TABLES.json new file mode 100644 index 0000000..9da357f --- /dev/null +++ b/layoutparser-service/layoutparser-service-server/src/test/resources/files/cv_tables/ScanRotationBorder.TABLES.json @@ -0,0 +1 @@ +{"dossierId": "9434219e-4274-4f8c-b0ae-ce3e4c9126be", "fileId": "8125ad623b76ee4189ac085b004e919e", "targetFileExtension": "ORIGIN.pdf.gz", "responseFileExtension": "TABLES.json.gz", "X-TENANT-ID": "documine", "operation": "table", "data": [{"pageInfo": {"number": 1, "rotation": 0, "width": 595.2000122070312, "height": 841.6799926757812}, "tableCells": [{"x0": 82.80000305175781, "y0": 594.0, "x1": 145.44000244140625, "y1": 616.3200073242188, "width": 62.63999938964844, "height": 22.32000732421875}, {"x0": 359.6400146484375, "y0": 597.239990234375, "x1": 401.3999938964844, "y1": 606.5999755859375, "width": 41.759979248046875, "height": 9.3599853515625}, {"x0": 401.760009765625, "y0": 594.3599853515625, "x1": 511.55999755859375, "y1": 606.5999755859375, "width": 109.79998779296875, "height": 12.239990234375}, {"x0": 0.36000001430511475, "y0": 0.3599853515625, "x1": 595.0800170898438, "y1": 593.6400146484375, "width": 594.7200170755386, "height": 593.280029296875}, {"x0": 401.760009765625, "y0": 583.199951171875, "x1": 456.1199951171875, "y1": 593.6400146484375, "width": 54.3599853515625, "height": 10.4400634765625}, {"x0": 456.8399963378906, "y0": 581.760009765625, "x1": 511.55999755859375, "y1": 593.6400146484375, "width": 54.720001220703125, "height": 11.8800048828125}, {"x0": 82.08000183105469, "y0": 552.239990234375, "x1": 145.0800018310547, "y1": 591.8399658203125, "width": 63.0, "height": 39.5999755859375}, {"x0": 145.8000030517578, "y0": 576.719970703125, "x1": 200.8800048828125, "y1": 590.0399780273438, "width": 55.08000183105469, "height": 13.32000732421875}, {"x0": 201.60000610351562, "y0": 575.6400146484375, "x1": 253.8000030517578, "y1": 588.5999755859375, "width": 52.19999694824219, "height": 12.9599609375}, {"x0": 254.52000427246094, "y0": 574.199951171875, "x1": 306.3599853515625, "y1": 587.1599731445312, "width": 51.83998107910156, "height": 12.96002197265625}, {"x0": 307.0799865722656, "y0": 572.760009765625, "x1": 358.9200134277344, "y1": 585.719970703125, "width": 51.84002685546875, "height": 12.9599609375}, {"x0": 359.6400146484375, "y0": 571.6799926757812, "x1": 401.0400085449219, "y1": 584.280029296875, "width": 41.399993896484375, "height": 12.60003662109375}, {"x0": 401.760009765625, "y0": 570.239990234375, "x1": 456.1199951171875, "y1": 583.199951171875, "width": 54.3599853515625, "height": 12.9599609375}, {"x0": 456.8399963378906, "y0": 568.7999877929688, "x1": 510.8399963378906, "y1": 581.760009765625, "width": 54.0, "height": 12.96002197265625}, {"x0": 145.8000030517578, "y0": 563.760009765625, "x1": 200.52000427246094, "y1": 576.719970703125, "width": 54.720001220703125, "height": 12.9599609375}, {"x0": 201.60000610351562, "y0": 562.6799926757812, "x1": 253.44000244140625, "y1": 575.280029296875, "width": 51.839996337890625, "height": 12.60003662109375}, {"x0": 254.52000427246094, "y0": 561.239990234375, "x1": 306.0, "y1": 573.8399658203125, "width": 51.47999572753906, "height": 12.5999755859375}, {"x0": 306.7200012207031, "y0": 559.7999877929688, "x1": 358.55999755859375, "y1": 572.760009765625, "width": 51.839996337890625, "height": 12.96002197265625}, {"x0": 359.2799987792969, "y0": 559.0799560546875, "x1": 400.67999267578125, "y1": 571.3200073242188, "width": 41.399993896484375, "height": 12.24005126953125}, {"x0": 401.760009765625, "y0": 557.6400146484375, "x1": 455.760009765625, "y1": 570.239990234375, "width": 54.0, "height": 12.5999755859375}, {"x0": 456.4800109863281, "y0": 556.199951171875, "x1": 510.8399963378906, "y1": 568.7999877929688, "width": 54.3599853515625, "height": 12.60003662109375}, {"x0": 145.44000244140625, "y0": 550.7999877929688, "x1": 200.52000427246094, "y1": 564.1199951171875, "width": 55.08000183105469, "height": 13.32000732421875}, {"x0": 201.24000549316406, "y0": 549.719970703125, "x1": 253.44000244140625, "y1": 562.6799926757812, "width": 52.19999694824219, "height": 12.96002197265625}, {"x0": 254.16000366210938, "y0": 548.280029296875, "x1": 305.6400146484375, "y1": 561.239990234375, "width": 51.480010986328125, "height": 12.9599609375}, {"x0": 306.7200012207031, "y0": 546.8399658203125, "x1": 358.20001220703125, "y1": 559.7999877929688, "width": 51.480010986328125, "height": 12.96002197265625}, {"x0": 359.2799987792969, "y0": 546.1199951171875, "x1": 400.67999267578125, "y1": 558.3599853515625, "width": 41.399993896484375, "height": 12.239990234375}, {"x0": 401.3999938964844, "y0": 544.6799926757812, "x1": 455.3999938964844, "y1": 557.6400146484375, "width": 54.0, "height": 12.96002197265625}, {"x0": 456.4800109863281, "y0": 543.239990234375, "x1": 510.4800109863281, "y1": 556.199951171875, "width": 54.0, "height": 12.9599609375}, {"x0": 81.72000122070312, "y0": 539.280029296875, "x1": 144.36000061035156, "y1": 552.5999755859375, "width": 62.63999938964844, "height": 13.3199462890625}, {"x0": 145.0800018310547, "y0": 537.8399658203125, "x1": 200.16000366210938, "y1": 550.7999877929688, "width": 55.08000183105469, "height": 12.96002197265625}, {"x0": 201.24000549316406, "y0": 536.760009765625, "x1": 253.0800018310547, "y1": 549.719970703125, "width": 51.839996337890625, "height": 12.9599609375}, {"x0": 253.8000030517578, "y0": 535.3200073242188, "x1": 305.6400146484375, "y1": 548.280029296875, "width": 51.84001159667969, "height": 12.96002197265625}, {"x0": 306.3599853515625, "y0": 534.239990234375, "x1": 358.20001220703125, "y1": 546.8399658203125, "width": 51.84002685546875, "height": 12.5999755859375}, {"x0": 358.9200134277344, "y0": 533.1600341796875, "x1": 400.32000732421875, "y1": 545.760009765625, "width": 41.399993896484375, "height": 12.5999755859375}, {"x0": 401.0400085449219, "y0": 531.719970703125, "x1": 455.3999938964844, "y1": 544.6799926757812, "width": 54.3599853515625, "height": 12.96002197265625}, {"x0": 456.1199951171875, "y0": 530.6400146484375, "x1": 510.1199951171875, "y1": 543.239990234375, "width": 54.0, "height": 12.5999755859375}, {"x0": 81.72000122070312, "y0": 526.3200073242188, "x1": 144.0, "y1": 539.6400146484375, "width": 62.279998779296875, "height": 13.32000732421875}, {"x0": 145.0800018310547, "y0": 524.8800048828125, "x1": 200.16000366210938, "y1": 538.199951171875, "width": 55.08000183105469, "height": 13.3199462890625}, {"x0": 200.8800048828125, "y0": 523.7999877929688, "x1": 252.72000122070312, "y1": 536.760009765625, "width": 51.839996337890625, "height": 12.96002197265625}, {"x0": 253.8000030517578, "y0": 522.3599853515625, "x1": 305.2799987792969, "y1": 535.3200073242188, "width": 51.47999572753906, "height": 12.96002197265625}, {"x0": 306.0, "y0": 521.280029296875, "x1": 357.8399963378906, "y1": 534.239990234375, "width": 51.839996337890625, "height": 12.9599609375}, {"x0": 358.55999755859375, "y0": 520.199951171875, "x1": 399.9599914550781, "y1": 533.1600341796875, "width": 41.399993896484375, "height": 12.9600830078125}, {"x0": 401.0400085449219, "y0": 519.1199951171875, "x1": 455.0400085449219, "y1": 531.719970703125, "width": 54.0, "height": 12.5999755859375}, {"x0": 455.760009765625, "y0": 518.0399780273438, "x1": 510.1199951171875, "y1": 530.6400146484375, "width": 54.3599853515625, "height": 12.60003662109375}, {"x0": 81.36000061035156, "y0": 513.0, "x1": 144.0, "y1": 526.6799926757812, "width": 62.63999938964844, "height": 13.67999267578125}, {"x0": 144.72000122070312, "y0": 511.91998291015625, "x1": 200.16000366210938, "y1": 524.8800048828125, "width": 55.44000244140625, "height": 12.96002197265625}, {"x0": 200.52000427246094, "y0": 510.8399963378906, "x1": 252.72000122070312, "y1": 523.7999877929688, "width": 52.19999694824219, "height": 12.959991455078125}, {"x0": 253.44000244140625, "y0": 509.7599792480469, "x1": 305.2799987792969, "y1": 522.3599853515625, "width": 51.839996337890625, "height": 12.600006103515625}, {"x0": 306.0, "y0": 508.67999267578125, "x1": 357.8399963378906, "y1": 520.9199829101562, "width": 51.839996337890625, "height": 12.239990234375}, {"x0": 358.55999755859375, "y0": 507.6000061035156, "x1": 399.9599914550781, "y1": 519.8399658203125, "width": 41.399993896484375, "height": 12.239959716796875}, {"x0": 400.67999267578125, "y0": 506.1600036621094, "x1": 455.0400085449219, "y1": 519.1199951171875, "width": 54.360015869140625, "height": 12.959991455078125}, {"x0": 455.760009765625, "y0": 505.0799865722656, "x1": 509.760009765625, "y1": 517.6799926757812, "width": 54.0, "height": 12.600006103515625}, {"x0": 81.0, "y0": 500.03997802734375, "x1": 143.63999938964844, "y1": 513.3599853515625, "width": 62.63999938964844, "height": 13.32000732421875}, {"x0": 144.36000061035156, "y0": 498.9599914550781, "x1": 200.16000366210938, "y1": 511.91998291015625, "width": 55.80000305175781, "height": 12.959991455078125}, {"x0": 200.52000427246094, "y0": 497.8800048828125, "x1": 252.72000122070312, "y1": 510.8399963378906, "width": 52.19999694824219, "height": 12.959991455078125}, {"x0": 253.0800018310547, "y0": 496.79998779296875, "x1": 305.2799987792969, "y1": 509.3999938964844, "width": 52.19999694824219, "height": 12.600006103515625}, {"x0": 305.6400146484375, "y0": 495.7200012207031, "x1": 357.8399963378906, "y1": 508.32000732421875, "width": 52.199981689453125, "height": 12.600006103515625}, {"x0": 358.20001220703125, "y0": 494.6399841308594, "x1": 399.9599914550781, "y1": 507.239990234375, "width": 41.759979248046875, "height": 12.600006103515625}, {"x0": 400.32000732421875, "y0": 493.55999755859375, "x1": 455.0400085449219, "y1": 506.1600036621094, "width": 54.720001220703125, "height": 12.600006103515625}, {"x0": 455.3999938964844, "y0": 492.1199951171875, "x1": 509.3999938964844, "y1": 505.0799865722656, "width": 54.0, "height": 12.959991455078125}, {"x0": 80.63999938964844, "y0": 474.1199951171875, "x1": 143.27999877929688, "y1": 500.3999938964844, "width": 62.63999938964844, "height": 26.279998779296875}, {"x0": 144.36000061035156, "y0": 486.0, "x1": 199.44000244140625, "y1": 498.9599914550781, "width": 55.08000183105469, "height": 12.959991455078125}, {"x0": 199.8000030517578, "y0": 484.91998291015625, "x1": 252.0, "y1": 497.8800048828125, "width": 52.19999694824219, "height": 12.96002197265625}, {"x0": 252.72000122070312, "y0": 483.8399963378906, "x1": 304.55999755859375, "y1": 496.44000244140625, "width": 51.839996337890625, "height": 12.600006103515625}, {"x0": 305.2799987792969, "y0": 482.7599792480469, "x1": 357.1199951171875, "y1": 495.3599853515625, "width": 51.839996337890625, "height": 12.600006103515625}, {"x0": 357.8399963378906, "y0": 482.03997802734375, "x1": 399.239990234375, "y1": 494.2799987792969, "width": 41.399993896484375, "height": 12.240020751953125}, {"x0": 399.9599914550781, "y0": 480.6000061035156, "x1": 454.32000732421875, "y1": 493.55999755859375, "width": 54.360015869140625, "height": 12.959991455078125}, {"x0": 454.67999267578125, "y0": 479.5199890136719, "x1": 509.3999938964844, "y1": 492.1199951171875, "width": 54.720001220703125, "height": 12.600006103515625}, {"x0": 144.36000061035156, "y0": 473.03997802734375, "x1": 199.0800018310547, "y1": 486.0, "width": 54.720001220703125, "height": 12.96002197265625}, {"x0": 199.8000030517578, "y0": 471.9599914550781, "x1": 252.0, "y1": 484.91998291015625, "width": 52.19999694824219, "height": 12.959991455078125}, {"x0": 252.72000122070312, "y0": 470.8800048828125, "x1": 304.20001220703125, "y1": 483.47998046875, "width": 51.480010986328125, "height": 12.5999755859375}, {"x0": 305.2799987792969, "y0": 469.79998779296875, "x1": 356.760009765625, "y1": 482.3999938964844, "width": 51.480010986328125, "height": 12.600006103515625}, {"x0": 357.8399963378906, "y0": 469.0799865722656, "x1": 398.8800048828125, "y1": 481.32000732421875, "width": 41.040008544921875, "height": 12.240020751953125}, {"x0": 399.9599914550781, "y0": 467.6399841308594, "x1": 453.9599914550781, "y1": 480.6000061035156, "width": 54.0, "height": 12.96002197265625}, {"x0": 454.67999267578125, "y0": 466.55999755859375, "x1": 509.0400085449219, "y1": 479.1600036621094, "width": 54.360015869140625, "height": 12.600006103515625}, {"x0": 80.27999877929688, "y0": 461.5199890136719, "x1": 142.9199981689453, "y1": 474.47998046875, "width": 62.63999938964844, "height": 12.959991455078125}, {"x0": 143.63999938964844, "y0": 460.44000244140625, "x1": 198.72000122070312, "y1": 473.03997802734375, "width": 55.08000183105469, "height": 12.5999755859375}, {"x0": 199.8000030517578, "y0": 459.0, "x1": 251.63999938964844, "y1": 471.9599914550781, "width": 51.839996337890625, "height": 12.959991455078125}, {"x0": 252.36000061035156, "y0": 458.2799987792969, "x1": 304.20001220703125, "y1": 470.5199890136719, "width": 51.84001159667969, "height": 12.239990234375}, {"x0": 304.9200134277344, "y0": 456.8399963378906, "x1": 356.760009765625, "y1": 469.79998779296875, "width": 51.839996337890625, "height": 12.959991455078125}, {"x0": 357.4800109863281, "y0": 456.1199951171875, "x1": 398.8800048828125, "y1": 468.3599853515625, "width": 41.399993896484375, "height": 12.239990234375}, {"x0": 399.6000061035156, "y0": 455.03997802734375, "x1": 453.6000061035156, "y1": 467.6399841308594, "width": 54.0, "height": 12.600006103515625}, {"x0": 454.67999267578125, "y0": 453.9599914550781, "x1": 508.67999267578125, "y1": 466.55999755859375, "width": 54.0, "height": 12.600006103515625}, {"x0": 80.27999877929688, "y0": 448.1999816894531, "x1": 142.55999755859375, "y1": 461.5199890136719, "width": 62.279998779296875, "height": 13.32000732421875}, {"x0": 143.63999938964844, "y0": 447.1199951171875, "x1": 198.72000122070312, "y1": 460.0799865722656, "width": 55.08000183105469, "height": 12.959991455078125}, {"x0": 199.44000244140625, "y0": 446.03997802734375, "x1": 251.27999877929688, "y1": 459.0, "width": 51.839996337890625, "height": 12.96002197265625}, {"x0": 252.36000061035156, "y0": 445.32000732421875, "x1": 303.8399963378906, "y1": 457.91998291015625, "width": 51.47999572753906, "height": 12.5999755859375}, {"x0": 304.55999755859375, "y0": 443.8800048828125, "x1": 356.3999938964844, "y1": 456.8399963378906, "width": 51.839996337890625, "height": 12.959991455078125}, {"x0": 357.1199951171875, "y0": 443.1600036621094, "x1": 398.5199890136719, "y1": 455.3999938964844, "width": 41.399993896484375, "height": 12.239990234375}, {"x0": 399.6000061035156, "y0": 442.0799865722656, "x1": 453.239990234375, "y1": 454.67999267578125, "width": 53.639984130859375, "height": 12.600006103515625}, {"x0": 454.32000732421875, "y0": 441.0, "x1": 508.67999267578125, "y1": 453.6000061035156, "width": 54.3599853515625, "height": 12.600006103515625}, {"x0": 79.91999816894531, "y0": 435.239990234375, "x1": 142.55999755859375, "y1": 448.55999755859375, "width": 62.63999938964844, "height": 13.32000732421875}, {"x0": 143.27999877929688, "y0": 434.5199890136719, "x1": 198.36000061035156, "y1": 447.1199951171875, "width": 55.08000183105469, "height": 12.600006103515625}, {"x0": 199.0800018310547, "y0": 433.44000244140625, "x1": 251.27999877929688, "y1": 446.03997802734375, "width": 52.19999694824219, "height": 12.5999755859375}, {"x0": 252.0, "y0": 432.3599853515625, "x1": 303.4800109863281, "y1": 444.6000061035156, "width": 51.480010986328125, "height": 12.240020751953125}, {"x0": 304.55999755859375, "y0": 431.2799987792969, "x1": 356.0400085449219, "y1": 443.8800048828125, "width": 51.480010986328125, "height": 12.600006103515625}, {"x0": 357.1199951171875, "y0": 430.55999755859375, "x1": 398.5199890136719, "y1": 442.79998779296875, "width": 41.399993896484375, "height": 12.239990234375}, {"x0": 399.239990234375, "y0": 429.47998046875, "x1": 453.239990234375, "y1": 441.7200012207031, "width": 54.0, "height": 12.240020751953125}, {"x0": 454.32000732421875, "y0": 428.3999938964844, "x1": 508.67999267578125, "y1": 441.0, "width": 54.3599853515625, "height": 12.600006103515625}, {"x0": 79.55999755859375, "y0": 409.32000732421875, "x1": 142.55999755859375, "y1": 435.6000061035156, "width": 63.0, "height": 26.279998779296875}, {"x0": 143.27999877929688, "y0": 421.1999816894531, "x1": 198.0, "y1": 434.1600036621094, "width": 54.720001220703125, "height": 12.96002197265625}, {"x0": 199.0800018310547, "y0": 420.47998046875, "x1": 250.9199981689453, "y1": 433.0799865722656, "width": 51.839996337890625, "height": 12.600006103515625}, {"x0": 251.63999938964844, "y0": 419.3999938964844, "x1": 303.1199951171875, "y1": 432.0, "width": 51.47999572753906, "height": 12.600006103515625}, {"x0": 304.20001220703125, "y0": 418.32000732421875, "x1": 356.0400085449219, "y1": 430.91998291015625, "width": 51.839996337890625, "height": 12.5999755859375}, {"x0": 356.760009765625, "y0": 417.6000061035156, "x1": 398.1600036621094, "y1": 430.1999816894531, "width": 41.399993896484375, "height": 12.5999755859375}, {"x0": 398.8800048828125, "y0": 416.5199890136719, "x1": 453.239990234375, "y1": 429.1199951171875, "width": 54.3599853515625, "height": 12.600006103515625}, {"x0": 453.9599914550781, "y0": 415.44000244140625, "x1": 508.32000732421875, "y1": 428.03997802734375, "width": 54.360015869140625, "height": 12.5999755859375}, {"x0": 142.9199981689453, "y0": 408.6000061035156, "x1": 198.0, "y1": 421.1999816894531, "width": 55.08000183105469, "height": 12.5999755859375}, {"x0": 198.72000122070312, "y0": 407.5199890136719, "x1": 250.9199981689453, "y1": 420.1199951171875, "width": 52.19999694824219, "height": 12.600006103515625}, {"x0": 251.63999938964844, "y0": 406.44000244140625, "x1": 303.1199951171875, "y1": 419.03997802734375, "width": 51.47999572753906, "height": 12.5999755859375}, {"x0": 303.8399963378906, "y0": 405.7200012207031, "x1": 356.0400085449219, "y1": 417.9599914550781, "width": 52.20001220703125, "height": 12.239990234375}, {"x0": 356.3999938964844, "y0": 404.6399841308594, "x1": 398.1600036621094, "y1": 417.239990234375, "width": 41.760009765625, "height": 12.600006103515625}, {"x0": 398.8800048828125, "y0": 403.55999755859375, "x1": 453.239990234375, "y1": 416.5199890136719, "width": 54.3599853515625, "height": 12.959991455078125}, {"x0": 453.6000061035156, "y0": 402.8399963378906, "x1": 507.9599914550781, "y1": 415.0799865722656, "width": 54.3599853515625, "height": 12.239990234375}, {"x0": 79.19999694824219, "y0": 396.3599853515625, "x1": 141.83999633789062, "y1": 409.67999267578125, "width": 62.63999938964844, "height": 13.32000732421875}, {"x0": 142.9199981689453, "y0": 395.6399841308594, "x1": 198.0, "y1": 408.239990234375, "width": 55.08000183105469, "height": 12.600006103515625}, {"x0": 198.36000061035156, "y0": 394.55999755859375, "x1": 250.9199981689453, "y1": 407.1600036621094, "width": 52.55999755859375, "height": 12.600006103515625}, {"x0": 251.27999877929688, "y0": 393.8399963378906, "x1": 303.1199951171875, "y1": 406.44000244140625, "width": 51.839996337890625, "height": 12.600006103515625}, {"x0": 303.8399963378906, "y0": 392.7599792480469, "x1": 356.0400085449219, "y1": 405.0, "width": 52.20001220703125, "height": 12.240020751953125}, {"x0": 356.3999938964844, "y0": 392.03997802734375, "x1": 398.1600036621094, "y1": 404.2799987792969, "width": 41.760009765625, "height": 12.240020751953125}, {"x0": 398.5199890136719, "y0": 390.9599914550781, "x1": 453.239990234375, "y1": 403.55999755859375, "width": 54.720001220703125, "height": 12.600006103515625}, {"x0": 453.6000061035156, "y0": 389.8800048828125, "x1": 507.9599914550781, "y1": 402.47998046875, "width": 54.3599853515625, "height": 12.5999755859375}, {"x0": 79.19999694824219, "y0": 383.3999938964844, "x1": 141.83999633789062, "y1": 396.7200012207031, "width": 62.63999938964844, "height": 13.32000732421875}, {"x0": 142.55999755859375, "y0": 382.67999267578125, "x1": 197.27999877929688, "y1": 395.2799987792969, "width": 54.720001220703125, "height": 12.600006103515625}, {"x0": 198.0, "y0": 381.6000061035156, "x1": 250.1999969482422, "y1": 394.1999816894531, "width": 52.19999694824219, "height": 12.5999755859375}, {"x0": 250.9199981689453, "y0": 380.5199890136719, "x1": 302.760009765625, "y1": 393.47998046875, "width": 51.84001159667969, "height": 12.959991455078125}, {"x0": 303.1199951171875, "y0": 379.79998779296875, "x1": 355.32000732421875, "y1": 392.3999938964844, "width": 52.20001220703125, "height": 12.600006103515625}, {"x0": 355.67999267578125, "y0": 379.0799865722656, "x1": 397.44000244140625, "y1": 391.32000732421875, "width": 41.760009765625, "height": 12.240020751953125}, {"x0": 398.1600036621094, "y0": 378.0, "x1": 452.5199890136719, "y1": 390.6000061035156, "width": 54.3599853515625, "height": 12.600006103515625}, {"x0": 452.8800048828125, "y0": 376.91998291015625, "x1": 507.6000061035156, "y1": 389.8800048828125, "width": 54.720001220703125, "height": 12.96002197265625}, {"x0": 78.4800033569336, "y0": 357.47998046875, "x1": 141.47999572753906, "y1": 383.3999938964844, "width": 62.99999237060547, "height": 25.920013427734375}, {"x0": 142.1999969482422, "y0": 369.7200012207031, "x1": 197.27999877929688, "y1": 382.32000732421875, "width": 55.08000183105469, "height": 12.600006103515625}, {"x0": 198.0, "y0": 368.6399841308594, "x1": 249.83999633789062, "y1": 381.239990234375, "width": 51.839996337890625, "height": 12.600006103515625}, {"x0": 250.9199981689453, "y0": 367.55999755859375, "x1": 302.3999938964844, "y1": 380.5199890136719, "width": 51.47999572753906, "height": 12.959991455078125}, {"x0": 303.1199951171875, "y0": 366.8399963378906, "x1": 354.9599914550781, "y1": 379.44000244140625, "width": 51.839996337890625, "height": 12.600006103515625}, {"x0": 355.67999267578125, "y0": 366.1199951171875, "x1": 397.0799865722656, "y1": 378.3599853515625, "width": 41.399993896484375, "height": 12.239990234375}, {"x0": 398.1600036621094, "y0": 365.03997802734375, "x1": 452.1600036621094, "y1": 377.6399841308594, "width": 54.0, "height": 12.600006103515625}, {"x0": 452.8800048828125, "y0": 363.9599914550781, "x1": 507.239990234375, "y1": 376.55999755859375, "width": 54.3599853515625, "height": 12.600006103515625}, {"x0": 142.1999969482422, "y0": 356.3999938964844, "x1": 196.9199981689453, "y1": 369.3599853515625, "width": 54.720001220703125, "height": 12.959991455078125}, {"x0": 197.63999938964844, "y0": 355.67999267578125, "x1": 249.83999633789062, "y1": 368.2799987792969, "width": 52.19999694824219, "height": 12.600006103515625}, {"x0": 250.55999755859375, "y0": 354.6000061035156, "x1": 302.0400085449219, "y1": 367.55999755859375, "width": 51.480010986328125, "height": 12.959991455078125}, {"x0": 303.1199951171875, "y0": 353.8800048828125, "x1": 354.9599914550781, "y1": 366.47998046875, "width": 51.839996337890625, "height": 12.5999755859375}, {"x0": 355.67999267578125, "y0": 353.1600036621094, "x1": 397.0799865722656, "y1": 365.3999938964844, "width": 41.399993896484375, "height": 12.239990234375}, {"x0": 398.1600036621094, "y0": 351.7200012207031, "x1": 451.79998779296875, "y1": 364.67999267578125, "width": 53.639984130859375, "height": 12.959991455078125}, {"x0": 452.8800048828125, "y0": 351.0, "x1": 507.239990234375, "y1": 363.9599914550781, "width": 54.3599853515625, "height": 12.959991455078125}, {"x0": 78.12000274658203, "y0": 344.5199890136719, "x1": 141.1199951171875, "y1": 357.47998046875, "width": 62.99999237060547, "height": 12.959991455078125}, {"x0": 141.83999633789062, "y0": 343.79998779296875, "x1": 196.55999755859375, "y1": 356.03997802734375, "width": 54.720001220703125, "height": 12.239990234375}, {"x0": 197.63999938964844, "y0": 342.7200012207031, "x1": 249.47999572753906, "y1": 355.32000732421875, "width": 51.839996337890625, "height": 12.600006103515625}, {"x0": 250.1999969482422, "y0": 341.6399841308594, "x1": 302.0400085449219, "y1": 354.239990234375, "width": 51.84001159667969, "height": 12.600006103515625}, {"x0": 302.760009765625, "y0": 340.91998291015625, "x1": 354.6000061035156, "y1": 353.1600036621094, "width": 51.839996337890625, "height": 12.240020751953125}, {"x0": 355.67999267578125, "y0": 340.1999816894531, "x1": 396.7200012207031, "y1": 352.44000244140625, "width": 41.040008544921875, "height": 12.240020751953125}, {"x0": 397.44000244140625, "y0": 339.47998046875, "x1": 451.79998779296875, "y1": 351.7200012207031, "width": 54.3599853515625, "height": 12.240020751953125}, {"x0": 452.5199890136719, "y0": 338.3999938964844, "x1": 506.8800048828125, "y1": 350.6399841308594, "width": 54.360015869140625, "height": 12.239990234375}, {"x0": 78.12000274658203, "y0": 331.55999755859375, "x1": 140.75999450683594, "y1": 344.5199890136719, "width": 62.639991760253906, "height": 12.959991455078125}, {"x0": 141.47999572753906, "y0": 330.8399963378906, "x1": 196.55999755859375, "y1": 343.44000244140625, "width": 55.08000183105469, "height": 12.600006103515625}, {"x0": 197.27999877929688, "y0": 329.7599792480469, "x1": 249.1199951171875, "y1": 342.3599853515625, "width": 51.839996337890625, "height": 12.600006103515625}, {"x0": 250.1999969482422, "y0": 329.03997802734375, "x1": 301.67999267578125, "y1": 341.6399841308594, "width": 51.47999572753906, "height": 12.600006103515625}, {"x0": 302.760009765625, "y0": 327.96002197265625, "x1": 354.239990234375, "y1": 340.55999755859375, "width": 51.47998046875, "height": 12.5999755859375}, {"x0": 355.32000732421875, "y0": 327.239990234375, "x1": 396.3599853515625, "y1": 339.8399963378906, "width": 41.03997802734375, "height": 12.600006103515625}, {"x0": 397.44000244140625, "y0": 326.52001953125, "x1": 451.44000244140625, "y1": 339.1199951171875, "width": 54.0, "height": 12.5999755859375}, {"x0": 452.1600036621094, "y0": 325.44000244140625, "x1": 506.5199890136719, "y1": 338.03997802734375, "width": 54.3599853515625, "height": 12.5999755859375}, {"x0": 77.4000015258789, "y0": 293.03997802734375, "x1": 140.39999389648438, "y1": 331.55999755859375, "width": 62.99999237060547, "height": 38.52001953125}, {"x0": 141.47999572753906, "y0": 317.8800048828125, "x1": 196.1999969482422, "y1": 330.47998046875, "width": 54.720001220703125, "height": 12.5999755859375}, {"x0": 196.9199981689453, "y0": 317.15997314453125, "x1": 249.1199951171875, "y1": 329.39996337890625, "width": 52.19999694824219, "height": 12.239990234375}, {"x0": 249.83999633789062, "y0": 316.08001708984375, "x1": 301.32000732421875, "y1": 328.67999267578125, "width": 51.480010986328125, "height": 12.5999755859375}, {"x0": 302.3999938964844, "y0": 315.3599853515625, "x1": 354.239990234375, "y1": 327.96002197265625, "width": 51.839996337890625, "height": 12.60003662109375}, {"x0": 354.9599914550781, "y0": 314.6400146484375, "x1": 396.3599853515625, "y1": 326.8800048828125, "width": 41.399993896484375, "height": 12.239990234375}, {"x0": 397.0799865722656, "y0": 313.55999755859375, "x1": 451.0799865722656, "y1": 326.15997314453125, "width": 54.0, "height": 12.5999755859375}, {"x0": 452.1600036621094, "y0": 312.8399658203125, "x1": 506.5199890136719, "y1": 325.08001708984375, "width": 54.3599853515625, "height": 12.24005126953125}, {"x0": 141.1199951171875, "y0": 304.91998291015625, "x1": 195.83999633789062, "y1": 317.8800048828125, "width": 54.720001220703125, "height": 12.96002197265625}, {"x0": 196.9199981689453, "y0": 304.20001220703125, "x1": 248.75999450683594, "y1": 316.79998779296875, "width": 51.839996337890625, "height": 12.5999755859375}, {"x0": 249.47999572753906, "y0": 303.47998046875, "x1": 301.32000732421875, "y1": 315.719970703125, "width": 51.84001159667969, "height": 12.239990234375}, {"x0": 302.3999938964844, "y0": 302.39996337890625, "x1": 353.8800048828125, "y1": 315.0, "width": 51.480010986328125, "height": 12.60003662109375}, {"x0": 354.9599914550781, "y0": 301.67999267578125, "x1": 396.3599853515625, "y1": 314.27996826171875, "width": 41.399993896484375, "height": 12.5999755859375}, {"x0": 397.0799865722656, "y0": 300.5999755859375, "x1": 451.0799865722656, "y1": 313.55999755859375, "width": 54.0, "height": 12.96002197265625}, {"x0": 451.79998779296875, "y0": 299.8800048828125, "x1": 506.1600036621094, "y1": 312.47998046875, "width": 54.360015869140625, "height": 12.5999755859375}, {"x0": 140.75999450683594, "y0": 291.96002197265625, "x1": 195.83999633789062, "y1": 304.91998291015625, "width": 55.08000183105469, "height": 12.9599609375}, {"x0": 196.55999755859375, "y0": 291.239990234375, "x1": 248.75999450683594, "y1": 304.20001220703125, "width": 52.19999694824219, "height": 12.96002197265625}, {"x0": 249.47999572753906, "y0": 290.52001953125, "x1": 301.32000732421875, "y1": 303.1199951171875, "width": 51.84001159667969, "height": 12.5999755859375}, {"x0": 302.0400085449219, "y0": 289.44000244140625, "x1": 353.8800048828125, "y1": 302.03997802734375, "width": 51.839996337890625, "height": 12.5999755859375}, {"x0": 354.6000061035156, "y0": 288.719970703125, "x1": 396.3599853515625, "y1": 301.32000732421875, "width": 41.759979248046875, "height": 12.60003662109375}, {"x0": 396.7200012207031, "y0": 287.6400146484375, "x1": 451.0799865722656, "y1": 300.5999755859375, "width": 54.3599853515625, "height": 12.9599609375}, {"x0": 451.44000244140625, "y0": 286.91998291015625, "x1": 505.79998779296875, "y1": 299.52001953125, "width": 54.3599853515625, "height": 12.60003662109375}, {"x0": 77.04000091552734, "y0": 267.47998046875, "x1": 139.67999267578125, "y1": 293.03997802734375, "width": 62.639991760253906, "height": 25.55999755859375}, {"x0": 140.75999450683594, "y0": 279.3599853515625, "x1": 195.83999633789062, "y1": 291.96002197265625, "width": 55.08000183105469, "height": 12.60003662109375}, {"x0": 195.83999633789062, "y0": 278.27996826171875, "x1": 248.75999450683594, "y1": 290.8800048828125, "width": 52.91999816894531, "height": 12.60003662109375}, {"x0": 249.1199951171875, "y0": 277.55999755859375, "x1": 301.32000732421875, "y1": 290.15997314453125, "width": 52.20001220703125, "height": 12.5999755859375}, {"x0": 301.67999267578125, "y0": 276.8399658203125, "x1": 353.8800048828125, "y1": 289.08001708984375, "width": 52.20001220703125, "height": 12.24005126953125}, {"x0": 354.239990234375, "y0": 276.1199951171875, "x1": 396.3599853515625, "y1": 288.3599853515625, "width": 42.1199951171875, "height": 12.239990234375}, {"x0": 396.7200012207031, "y0": 275.03997802734375, "x1": 451.0799865722656, "y1": 287.6400146484375, "width": 54.3599853515625, "height": 12.60003662109375}, {"x0": 451.44000244140625, "y0": 273.96002197265625, "x1": 505.79998779296875, "y1": 286.55999755859375, "width": 54.3599853515625, "height": 12.5999755859375}, {"x0": 140.39999389648438, "y0": 266.39996337890625, "x1": 195.1199951171875, "y1": 279.0, "width": 54.720001220703125, "height": 12.60003662109375}, {"x0": 195.83999633789062, "y0": 265.32000732421875, "x1": 248.39999389648438, "y1": 278.27996826171875, "width": 52.55999755859375, "height": 12.9599609375}, {"x0": 248.75999450683594, "y0": 264.5999755859375, "x1": 300.6000061035156, "y1": 277.20001220703125, "width": 51.84001159667969, "height": 12.60003662109375}, {"x0": 301.32000732421875, "y0": 263.8800048828125, "x1": 353.1600036621094, "y1": 276.1199951171875, "width": 51.839996337890625, "height": 12.239990234375}, {"x0": 353.8800048828125, "y0": 263.15997314453125, "x1": 395.6400146484375, "y1": 275.39996337890625, "width": 41.760009765625, "height": 12.239990234375}, {"x0": 396.0, "y0": 262.08001708984375, "x1": 450.3599853515625, "y1": 274.67999267578125, "width": 54.3599853515625, "height": 12.5999755859375}, {"x0": 450.7200012207031, "y0": 261.0, "x1": 505.44000244140625, "y1": 273.96002197265625, "width": 54.720001220703125, "height": 12.96002197265625}, {"x0": 76.68000030517578, "y0": 254.52001953125, "x1": 139.32000732421875, "y1": 267.47998046875, "width": 62.64000701904297, "height": 12.9599609375}, {"x0": 140.0399932861328, "y0": 253.44000244140625, "x1": 195.1199951171875, "y1": 266.03997802734375, "width": 55.08000183105469, "height": 12.5999755859375}, {"x0": 195.83999633789062, "y0": 252.3599853515625, "x1": 248.0399932861328, "y1": 265.32000732421875, "width": 52.19999694824219, "height": 12.96002197265625}, {"x0": 248.75999450683594, "y0": 251.6400146484375, "x1": 300.239990234375, "y1": 264.239990234375, "width": 51.47999572753906, "height": 12.5999755859375}, {"x0": 301.32000732421875, "y0": 250.91998291015625, "x1": 353.1600036621094, "y1": 263.52001953125, "width": 51.839996337890625, "height": 12.60003662109375}, {"x0": 353.8800048828125, "y0": 250.20001220703125, "x1": 395.2799987792969, "y1": 262.44000244140625, "width": 41.399993896484375, "height": 12.239990234375}, {"x0": 396.0, "y0": 249.1199951171875, "x1": 450.3599853515625, "y1": 261.719970703125, "width": 54.3599853515625, "height": 12.5999755859375}, {"x0": 450.7200012207031, "y0": 248.03997802734375, "x1": 505.0799865722656, "y1": 261.0, "width": 54.3599853515625, "height": 12.96002197265625}, {"x0": 76.68000030517578, "y0": 241.55999755859375, "x1": 138.9600067138672, "y1": 254.52001953125, "width": 62.280006408691406, "height": 12.96002197265625}, {"x0": 140.0399932861328, "y0": 240.8399658203125, "x1": 194.75999450683594, "y1": 253.08001708984375, "width": 54.720001220703125, "height": 12.24005126953125}, {"x0": 195.47999572753906, "y0": 239.760009765625, "x1": 247.67999267578125, "y1": 252.3599853515625, "width": 52.19999694824219, "height": 12.5999755859375}, {"x0": 248.39999389648438, "y0": 239.03997802734375, "x1": 300.239990234375, "y1": 251.27996826171875, "width": 51.839996337890625, "height": 12.239990234375}, {"x0": 300.9599914550781, "y0": 237.96002197265625, "x1": 352.79998779296875, "y1": 250.55999755859375, "width": 51.839996337890625, "height": 12.5999755859375}, {"x0": 353.5199890136719, "y0": 237.239990234375, "x1": 394.9200134277344, "y1": 249.47998046875, "width": 41.4000244140625, "height": 12.239990234375}, {"x0": 396.0, "y0": 236.52001953125, "x1": 450.0, "y1": 248.760009765625, "width": 54.0, "height": 12.239990234375}, {"x0": 450.7200012207031, "y0": 235.79998779296875, "x1": 505.0799865722656, "y1": 248.03997802734375, "width": 54.3599853515625, "height": 12.239990234375}, {"x0": 75.23999786376953, "y0": 178.20001220703125, "x1": 138.9600067138672, "y1": 241.55999755859375, "width": 63.720008850097656, "height": 63.3599853515625}, {"x0": 139.67999267578125, "y0": 227.8800048828125, "x1": 194.39999389648438, "y1": 240.47998046875, "width": 54.720001220703125, "height": 12.5999755859375}, {"x0": 195.47999572753906, "y0": 227.15997314453125, "x1": 247.67999267578125, "y1": 239.39996337890625, "width": 52.19999694824219, "height": 12.239990234375}, {"x0": 248.0399932861328, "y0": 226.08001708984375, "x1": 299.8800048828125, "y1": 238.67999267578125, "width": 51.84001159667969, "height": 12.5999755859375}, {"x0": 300.9599914550781, "y0": 225.3599853515625, "x1": 352.44000244140625, "y1": 237.96002197265625, "width": 51.480010986328125, "height": 12.60003662109375}, {"x0": 353.5199890136719, "y0": 224.6400146484375, "x1": 394.9200134277344, "y1": 236.8800048828125, "width": 41.4000244140625, "height": 12.239990234375}, {"x0": 395.6400146484375, "y0": 223.91998291015625, "x1": 449.6400146484375, "y1": 236.52001953125, "width": 54.0, "height": 12.60003662109375}, {"x0": 450.7200012207031, "y0": 222.8399658203125, "x1": 504.7200012207031, "y1": 235.44000244140625, "width": 54.0, "height": 12.60003662109375}, {"x0": 139.32000732421875, "y0": 215.27996826171875, "x1": 194.39999389648438, "y1": 227.52001953125, "width": 55.079986572265625, "height": 12.24005126953125}, {"x0": 195.1199951171875, "y0": 214.55999755859375, "x1": 247.32000732421875, "y1": 226.79998779296875, "width": 52.20001220703125, "height": 12.239990234375}, {"x0": 248.0399932861328, "y0": 213.47998046875, "x1": 299.5199890136719, "y1": 225.719970703125, "width": 51.47999572753906, "height": 12.239990234375}, {"x0": 300.6000061035156, "y0": 212.760009765625, "x1": 352.44000244140625, "y1": 225.0, "width": 51.839996337890625, "height": 12.239990234375}, {"x0": 353.1600036621094, "y0": 212.03997802734375, "x1": 394.55999755859375, "y1": 224.27996826171875, "width": 41.399993896484375, "height": 12.239990234375}, {"x0": 395.2799987792969, "y0": 211.32000732421875, "x1": 449.6400146484375, "y1": 223.55999755859375, "width": 54.360015869140625, "height": 12.239990234375}, {"x0": 450.3599853515625, "y0": 210.239990234375, "x1": 504.3599853515625, "y1": 222.8399658203125, "width": 54.0, "height": 12.5999755859375}, {"x0": 139.32000732421875, "y0": 202.67999267578125, "x1": 194.0399932861328, "y1": 214.91998291015625, "width": 54.71998596191406, "height": 12.239990234375}, {"x0": 194.75999450683594, "y0": 201.96002197265625, "x1": 246.9600067138672, "y1": 214.20001220703125, "width": 52.20001220703125, "height": 12.239990234375}, {"x0": 248.0399932861328, "y0": 200.8800048828125, "x1": 299.5199890136719, "y1": 213.47998046875, "width": 51.47999572753906, "height": 12.5999755859375}, {"x0": 300.239990234375, "y0": 200.15997314453125, "x1": 352.0799865722656, "y1": 212.39996337890625, "width": 51.839996337890625, "height": 12.239990234375}, {"x0": 352.79998779296875, "y0": 199.44000244140625, "x1": 394.20001220703125, "y1": 211.67999267578125, "width": 41.4000244140625, "height": 12.239990234375}, {"x0": 395.2799987792969, "y0": 198.3599853515625, "x1": 448.9200134277344, "y1": 210.96002197265625, "width": 53.6400146484375, "height": 12.60003662109375}, {"x0": 450.0, "y0": 197.6400146484375, "x1": 504.3599853515625, "y1": 209.8800048828125, "width": 54.3599853515625, "height": 12.239990234375}, {"x0": 138.9600067138672, "y0": 190.08001708984375, "x1": 194.0399932861328, "y1": 202.32000732421875, "width": 55.079986572265625, "height": 12.239990234375}, {"x0": 194.75999450683594, "y0": 189.0, "x1": 246.9600067138672, "y1": 201.239990234375, "width": 52.20001220703125, "height": 12.239990234375}, {"x0": 247.67999267578125, "y0": 188.27996826171875, "x1": 299.1600036621094, "y1": 200.52001953125, "width": 51.480010986328125, "height": 12.24005126953125}, {"x0": 300.239990234375, "y0": 187.55999755859375, "x1": 351.7200012207031, "y1": 199.79998779296875, "width": 51.480010986328125, "height": 12.239990234375}, {"x0": 352.79998779296875, "y0": 186.8399658203125, "x1": 394.20001220703125, "y1": 199.08001708984375, "width": 41.4000244140625, "height": 12.24005126953125}, {"x0": 394.9200134277344, "y0": 185.760009765625, "x1": 448.9200134277344, "y1": 198.3599853515625, "width": 54.0, "height": 12.5999755859375}, {"x0": 450.0, "y0": 185.03997802734375, "x1": 504.0, "y1": 197.27996826171875, "width": 54.0, "height": 12.239990234375}, {"x0": 138.60000610351562, "y0": 177.1199951171875, "x1": 194.0399932861328, "y1": 189.719970703125, "width": 55.43998718261719, "height": 12.5999755859375}, {"x0": 194.75999450683594, "y0": 176.39996337890625, "x1": 246.9600067138672, "y1": 189.0, "width": 52.20001220703125, "height": 12.60003662109375}, {"x0": 247.32000732421875, "y0": 175.32000732421875, "x1": 299.1600036621094, "y1": 187.91998291015625, "width": 51.839996337890625, "height": 12.5999755859375}, {"x0": 299.8800048828125, "y0": 174.5999755859375, "x1": 351.7200012207031, "y1": 187.20001220703125, "width": 51.839996337890625, "height": 12.60003662109375}, {"x0": 352.44000244140625, "y0": 173.8800048828125, "x1": 394.20001220703125, "y1": 186.1199951171875, "width": 41.760009765625, "height": 12.239990234375}, {"x0": 394.55999755859375, "y0": 173.15997314453125, "x1": 448.9200134277344, "y1": 185.39996337890625, "width": 54.360015869140625, "height": 12.239990234375}, {"x0": 449.6400146484375, "y0": 172.08001708984375, "x1": 504.0, "y1": 184.67999267578125, "width": 54.3599853515625, "height": 12.5999755859375}]}]} \ No newline at end of file diff --git a/layoutparser-service/layoutparser-service-server/src/test/resources/files/cv_tables/ScanRotationBorder.pdf b/layoutparser-service/layoutparser-service-server/src/test/resources/files/cv_tables/ScanRotationBorder.pdf new file mode 100644 index 0000000..6a729e6 Binary files /dev/null and b/layoutparser-service/layoutparser-service-server/src/test/resources/files/cv_tables/ScanRotationBorder.pdf differ