From b5c6b38a3d8f7e7645191ca6e57412a77453af69 Mon Sep 17 00:00:00 2001 From: Andreas Isler Date: Wed, 12 Nov 2025 19:01:10 +0100 Subject: [PATCH] Added types to FlowableExcelMapper --- .../example/parser/FlowableExcelMapper.java | 56 +++++++++-- .../example/parser/FlowableExcelParser.java | 71 +++++++------ .../java/com/example/parser/ParserApp.java | 8 +- .../flowableExcelMapperExampleData.xlsx | Bin 0 -> 48393 bytes .../parser/FlowableExcelMapperTest.java | 18 +--- .../parser/FlowableExcelParserTest.java | 94 ++++++------------ .../flowableExcelMapperTestData.xlsx | Bin 0 -> 48393 bytes .../flowableExcelMapperTestData1.xlsx | Bin 48230 -> 0 bytes .../flowableExcelParserTestData1.xlsx | Bin 10167 -> 6734 bytes .../flowableExcelParserTestData2.xlsx | Bin 10251 -> 7090 bytes .../flowableExcelParserTestData3.xlsx | Bin 10219 -> 6736 bytes .../parser/FlowableExcelParser$1.class | Bin 825 -> 825 bytes .../example/parser/FlowableExcelParser.class | Bin 4562 -> 4058 bytes .../example/parser/FlowableJsonParser.class | Bin 5635 -> 5635 bytes .../com/example/parser/ParserApp.class | Bin 3186 -> 3219 bytes .../parser/FlowableExcelParserTest.class | Bin 8675 -> 6316 bytes .../parser/FlowableJsonParserTest.class | Bin 3266 -> 3266 bytes .../flowableExcelParserTestData1.xlsx | Bin 10167 -> 6734 bytes .../flowableExcelParserTestData2.xlsx | Bin 10251 -> 7090 bytes .../flowableExcelParserTestData3.xlsx | Bin 10219 -> 6736 bytes 20 files changed, 125 insertions(+), 122 deletions(-) create mode 100644 src/main/resources/flowableExcelMapperExampleData.xlsx create mode 100644 src/test/resources/flowableExcelMapperTestData.xlsx delete mode 100644 src/test/resources/flowableExcelMapperTestData1.xlsx diff --git a/src/main/java/com/example/parser/FlowableExcelMapper.java b/src/main/java/com/example/parser/FlowableExcelMapper.java index 16c0dd0..d606d9b 100644 --- a/src/main/java/com/example/parser/FlowableExcelMapper.java +++ b/src/main/java/com/example/parser/FlowableExcelMapper.java @@ -2,35 +2,69 @@ package com.example.parser; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.node.ArrayNode; import com.fasterxml.jackson.databind.node.ObjectNode; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import org.apache.poi.ss.usermodel.DateUtil; import org.springframework.stereotype.Component; +import java.time.*; import java.util.*; + @Component public class FlowableExcelMapper { protected static ObjectMapper objectMapper = new ObjectMapper(); + protected static JavaTimeModule javaTimeModule = new JavaTimeModule(); protected static FlowableExcelParser flowableExcelParser = new FlowableExcelParser(); + public FlowableExcelMapper() { + objectMapper.registerModule(javaTimeModule); + objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); + } + public ArrayNode excelToJsonNode(String excelPath) { - ArrayList> rowList = flowableExcelParser.parseExcel(excelPath); + ArrayList> rawList = flowableExcelParser.parseExcel(excelPath); + ArrayList paths = new ArrayList<>(); + ArrayList types = new ArrayList<>(); ArrayNode arrayNode = objectMapper.createArrayNode(); - for (LinkedHashMap row : rowList) { - JsonNode jsonNode = null; - Set> entries = row.entrySet(); - for (Map.Entry entry : entries) { - jsonNode = addNode(jsonNode, entry.getKey(), entry.getValue()); + for (int rowNum = 0; rowNum < rawList.size(); rowNum++) { + if (rowNum == 0) { + // The 1st row contains the paths + paths.addAll(rawList.get(rowNum)); + } else if (rowNum == 1) { + // The 1st row contains the types of the variables + types.addAll(rawList.get(rowNum)); + } else { + // All other rows contain the values of the variables + JsonNode jsonNode = null; + ArrayList row = rawList.get(rowNum); + for (int cellNum = 0; cellNum < row.size(); cellNum++) { + Object content = row.get(cellNum); + String type = types.get(cellNum).toString(); + switch (type) { + case "String": content = content.toString(); break; + case "Boolean": content = Boolean.parseBoolean(content.toString()); break; + case "Integer": content = (int) Double.parseDouble(content.toString()); break; + case "Double": content = Double.parseDouble(content.toString()); break; + case "Date": + // Excel considers dates as local dates, but we want them as UTC + Date dateTime = DateUtil.getJavaDate(Double.parseDouble(content.toString())); + content = dateTime.toInstant().plusSeconds(ZonedDateTime.now().getOffset().getTotalSeconds()); + break; + default: break; + } + jsonNode = addNode(jsonNode, paths.get(cellNum).toString(), content); + } + arrayNode.add(jsonNode); } - arrayNode.add(jsonNode); } return arrayNode; } - public JsonNode addNode(JsonNode parent, String path, Object value) { - objectMapper = new ObjectMapper(); - + protected JsonNode addNode(JsonNode parent, String path, Object value) { if (parent == null) { parent = objectMapper.createObjectNode(); } @@ -87,7 +121,7 @@ public class FlowableExcelMapper { return parent; } - public static int indexOfFirstDelimiter(String str, String delimiters) { + protected int indexOfFirstDelimiter(String str, String delimiters) { for (int i = 0; i < str.length(); i++) { for (char c : delimiters.toCharArray()) { if (str.charAt(i) == c) { diff --git a/src/main/java/com/example/parser/FlowableExcelParser.java b/src/main/java/com/example/parser/FlowableExcelParser.java index 8ff5a7a..0ba5da8 100644 --- a/src/main/java/com/example/parser/FlowableExcelParser.java +++ b/src/main/java/com/example/parser/FlowableExcelParser.java @@ -8,56 +8,63 @@ import org.springframework.stereotype.Component; import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; -import java.util.LinkedHashMap; @Component public class FlowableExcelParser { - public ArrayList> parseExcel(String resourcePath) { - ArrayList> rowList = new ArrayList<>(); + // resourcePath defines the location of the Excel file + // Return all cells in the 1st sheet which have values as objects (String, boolean or double) + // The 1st row defines the amount of cells per row + // Parsing the sheet stops after the 1st empty row + public ArrayList> parseExcel(String resourcePath) { + ArrayList> rows = new ArrayList<>(); try (FileInputStream fileInputStream = new FileInputStream(resourcePath)) { Workbook workbook = new XSSFWorkbook(fileInputStream); Sheet sheet = workbook.getSheetAt(0); - ArrayList colHeaders = new ArrayList<>(); - for (Row row : sheet) { - if (row.getRowNum() == 0) { - // Header row - for (int colNum = 0; colNum < row.getLastCellNum(); colNum++) { - Cell cell = row.getCell(colNum); - if (cell == null || cell.getCellType() == CellType.BLANK || cell.getCellType() == CellType._NONE) { - // Take all columns until the first empty header cell - break; - } else { - colHeaders.add(cell.getStringCellValue()); - } - } - continue; + int maxCells = 0; + for (int rowNum = 0; rowNum < sheet.getLastRowNum(); rowNum++) { + Row row = sheet.getRow(rowNum); + if (row == null) { + break; + } + if (maxCells == 0) { + maxCells = row.getLastCellNum(); } boolean allCellsNull = true; - LinkedHashMap rowMap = new LinkedHashMap<>(); - for (int colNum = 0; colNum < colHeaders.size(); colNum++) { - Object content = null; - Cell cell = row.getCell(colNum); - CellValue cellValue = workbook.getCreationHelper().createFormulaEvaluator().evaluate(cell); - if (cellValue != null && cell.getCellType() != CellType.BLANK && cell.getCellType() != CellType._NONE) { - switch (cellValue.getCellType()) { - case STRING : content = cellValue.getStringValue(); break; - case BOOLEAN : content = cellValue.getBooleanValue(); break; - case NUMERIC : content = cellValue.getNumberValue(); break; + ArrayList cells = new ArrayList<>(); + for (int cellNum = 0; cellNum < maxCells; cellNum++) { + Cell cell = row.getCell(cellNum); + if(rowNum == 0) { + if (cell == null || cell.getCellType() == CellType.BLANK || cell.getCellType() == CellType._NONE) { + // Count cells of 1st row until the first empty cell + maxCells = cellNum; + break; } - allCellsNull = false; } - rowMap.put(colHeaders.get(colNum), content); + CellValue cellValue = workbook.getCreationHelper().createFormulaEvaluator().evaluate(cell); + Object content = null; + if (cellValue != null) { + CellType cellType = cell.getCellType(); + if (cellType != CellType.BLANK && cellType != CellType._NONE) { + switch (cellValue.getCellType()) { + case STRING : content = cellValue.getStringValue(); break; + case BOOLEAN : content = cellValue.getBooleanValue(); break; + case NUMERIC : content = cellValue.getNumberValue(); break; + } + allCellsNull = false; + } + } + cells.add(content); } if (allCellsNull) { // Take all rows until the first empty row - return rowList; + return rows; } - rowList.add(rowMap); + rows.add(cells); } } catch (IOException e) { throw new RuntimeException(e); } - return rowList; + return rows; } } diff --git a/src/main/java/com/example/parser/ParserApp.java b/src/main/java/com/example/parser/ParserApp.java index 74ed2aa..414987a 100644 --- a/src/main/java/com/example/parser/ParserApp.java +++ b/src/main/java/com/example/parser/ParserApp.java @@ -18,6 +18,7 @@ public class ParserApp { private static final ObjectMapper objectMapper = new ObjectMapper(); private static final FlowableJsonParser flowableJsonParser = new FlowableJsonParser(); private static final FlowableExcelParser flowableExcelParser = new FlowableExcelParser(); + private static final FlowableExcelMapper flowableExcelMapper = new FlowableExcelMapper(); public static void main(String[] args) { SpringApplication.run(ParserApp.class, args); @@ -28,9 +29,12 @@ public class ParserApp { throw new RuntimeException(e); } - ClassLoader classLoader = ParserApp.class.getClassLoader(); - URL resourceUrl = classLoader.getResource("flowableExcelParserExampleData.xlsx"); + URL resourceUrl = ParserApp.class.getClassLoader().getResource("flowableExcelParserExampleData.xlsx"); assert resourceUrl != null; logger.info("parsed excel={}", flowableExcelParser.parseExcel(resourceUrl.getPath())); + + resourceUrl = ParserApp.class.getClassLoader().getResource("flowableExcelMapperExampleData.xlsx"); + assert resourceUrl != null; + logger.info("mapped excel={}", flowableExcelMapper.excelToJsonNode(resourceUrl.getPath())); } } diff --git a/src/main/resources/flowableExcelMapperExampleData.xlsx b/src/main/resources/flowableExcelMapperExampleData.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..effac2142d08e7c03ed59482a316bfb591eb18eb GIT binary patch literal 48393 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 literal 0 HcmV?d00001 diff --git a/src/test/java/com/example/parser/FlowableExcelMapperTest.java b/src/test/java/com/example/parser/FlowableExcelMapperTest.java index e25becc..41d13ce 100644 --- a/src/test/java/com/example/parser/FlowableExcelMapperTest.java +++ b/src/test/java/com/example/parser/FlowableExcelMapperTest.java @@ -18,23 +18,9 @@ class FlowableExcelMapperTest { @Autowired private FlowableExcelMapper flowableExcelMapper; - private static final Logger logger = LoggerFactory.getLogger(ParserApp.class); + private static final Logger logger = LoggerFactory.getLogger(FlowableExcelMapperTest.class); - @Test - public void addNodeTest() { - JsonNode node = null; - node = flowableExcelMapper.addNode(node, "3*0*2", "String1"); - node = flowableExcelMapper.addNode(node, "3*0*3", "String1"); - node = flowableExcelMapper.addNode(node, "3*1.1", 234); - node = flowableExcelMapper.addNode(node, "3*1.2", 234); - node = flowableExcelMapper.addNode(node, "3*2", false); - node = flowableExcelMapper.addNode(node, "4.5", "String1"); - node = flowableExcelMapper.addNode(node, "4.6", 234); - node = flowableExcelMapper.addNode(node, "4.7", false); - logger.info("node2={}{}", System.lineSeparator(), node.toPrettyString()); - } - protected String getResourcePath(String path) { ClassLoader classLoader = FlowableExcelMapperTest.class.getClassLoader(); URL resourceUrl = classLoader.getResource(path); @@ -44,7 +30,7 @@ class FlowableExcelMapperTest { @Test public void excelToJsonNodeTest() { - JsonNode node = flowableExcelMapper.excelToJsonNode(getResourcePath("flowableExcelMapperTestData1.xlsx")); + JsonNode node = flowableExcelMapper.excelToJsonNode(getResourcePath("flowableExcelMapperTestData.xlsx")); logger.info("node2={}{}", System.lineSeparator(), node.toPrettyString()); } } diff --git a/src/test/java/com/example/parser/FlowableExcelParserTest.java b/src/test/java/com/example/parser/FlowableExcelParserTest.java index ed4f4de..21d3352 100644 --- a/src/test/java/com/example/parser/FlowableExcelParserTest.java +++ b/src/test/java/com/example/parser/FlowableExcelParserTest.java @@ -20,26 +20,18 @@ class FlowableExcelParserTest { @Autowired private FlowableExcelParser flowableExcelParser; - private Stream GetArgumentsFromExcel(String path) { - ArrayList argumentList = new ArrayList<>(); + protected String getResourcePath(String path) { ClassLoader classLoader = FlowableExcelParserTest.class.getClassLoader(); URL resourceUrl = classLoader.getResource(path); Assertions.assertThat(resourceUrl).isNotNull(); - ArrayList> rowList = flowableExcelParser.parseExcel(resourceUrl.getPath()); - Assertions.assertThat(rowList).isNotNull(); - for (LinkedHashMap row : rowList) { - LinkedHashMap inputMap = new LinkedHashMap<>(); - LinkedHashMap outputMap = new LinkedHashMap<>(); - for (Map.Entry entry : row.entrySet()) { - String key = entry.getKey(); - if (List.of("input1", "input2", "input3").contains(key)) { - inputMap.put(key, entry.getValue()); - } - if (List.of("output1", "output2").contains(key)) { - outputMap.put(key, entry.getValue()); - } - } - argumentList.add(Arguments.of(inputMap, outputMap)); + return resourceUrl.getPath(); + } + + protected Stream GetArgumentsFromExcel(String path) { + ArrayList argumentList = new ArrayList<>(); + ArrayList> rowList = flowableExcelParser.parseExcel(getResourcePath(path)); + for (ArrayList row : rowList) { + argumentList.add(Arguments.of(row)); } return argumentList.stream(); } @@ -51,18 +43,12 @@ class FlowableExcelParserTest { @ParameterizedTest @MethodSource("booleanExcelParserTestDataProvider") - void booleanExcelParserTest(LinkedHashMap inputMap, LinkedHashMap outputMap) { - for (Map.Entry entry : outputMap.entrySet()) { - String key = entry.getKey(); - if (key.equals("output1")) { - Boolean val = (Boolean)inputMap.get("input1") || (Boolean)inputMap.get("input2") || (Boolean)inputMap.get("input3"); - Assertions.assertThat(entry.getValue()).isEqualTo(val); - } - if (key.equals("output2")) { - Boolean val = (Boolean)inputMap.get("input1") && (Boolean)inputMap.get("input2") && (Boolean)inputMap.get("input3"); - Assertions.assertThat(entry.getValue()).isEqualTo(val); - } - } + void booleanExcelParserTest(ArrayList row) { + Boolean valOr = (Boolean) row.get(0) || (Boolean) row.get(1) || (Boolean) row.get(2); + Assertions.assertThat(row.get(3)).isEqualTo(valOr); + + Boolean valAnd = (Boolean) row.get(0) && (Boolean) row.get(1) && (Boolean) row.get(2); + Assertions.assertThat(row.get(4)).isEqualTo(valAnd); } @NotNull @@ -72,22 +58,15 @@ class FlowableExcelParserTest { @ParameterizedTest @MethodSource("stringExcelParserTestDataProvider") - void stringExcelParserTest(LinkedHashMap inputMap, LinkedHashMap outputMap) { - for (Map.Entry entry : outputMap.entrySet()) { - String key = entry.getKey(); - if (key.equals("output1")) { - String val = inputMap.get("input1").toString() + inputMap.get("input2").toString(); - Assertions.assertThat(entry.getValue()).isEqualTo(val); - } - if (key.equals("output2")) { - String val = inputMap.get("input2").toString() + inputMap.get("input3").toString(); - Assertions.assertThat(entry.getValue()).isEqualTo(val); - } - if (key.equals("output3")) { - String val = inputMap.get("input1").toString() + inputMap.get("input2").toString() + inputMap.get("input3").toString(); - Assertions.assertThat(entry.getValue()).isEqualTo(val); - } - } + void stringExcelParserTest(ArrayList row) { + String val12 = row.get(0).toString() + row.get(1).toString(); + Assertions.assertThat(row.get(3)).isEqualTo(val12); + + String val23 = row.get(1).toString() + row.get(2).toString(); + Assertions.assertThat(row.get(4)).isEqualTo(val23); + + String val123 = row.get(0).toString() + row.get(1).toString() + row.get(2).toString(); + Assertions.assertThat(row.get(5)).isEqualTo(val123); } @NotNull @@ -97,21 +76,14 @@ class FlowableExcelParserTest { @ParameterizedTest @MethodSource("numberExcelParserTestDataProvider") - void numberExcelParserTest(LinkedHashMap inputMap, LinkedHashMap outputMap) { - for (Map.Entry entry : outputMap.entrySet()) { - String key = entry.getKey(); - if (key.equals("output1")) { - Double val = (Double)inputMap.get("input1") + (Double)inputMap.get("input2"); - Assertions.assertThat(entry.getValue()).isEqualTo(val); - } - if (key.equals("output2")) { - Double val = (Double)inputMap.get("input2") + (Double)inputMap.get("input3"); - Assertions.assertThat(entry.getValue()).isEqualTo(val); - } - if (key.equals("output3")) { - Double val = (Double)inputMap.get("input1") + (Double)inputMap.get("input2") + (Double)inputMap.get("input3"); - Assertions.assertThat(entry.getValue()).isEqualTo(val); - } - } + void numberExcelParserTest(ArrayList row) { + Double val12 = (Double) row.get(0) + (Double) row.get(1); + Assertions.assertThat(row.get(3)).isEqualTo(val12); + + Double val23 = (Double) row.get(1) + (Double) row.get(2); + Assertions.assertThat(row.get(4)).isEqualTo(val23); + + Double val123 = (Double) row.get(0) + (Double) row.get(1) + (Double) row.get(2); + Assertions.assertThat(row.get(5)).isEqualTo(val123); } } diff --git a/src/test/resources/flowableExcelMapperTestData.xlsx b/src/test/resources/flowableExcelMapperTestData.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..effac2142d08e7c03ed59482a316bfb591eb18eb GIT binary patch literal 48393 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/flowableExcelMapperTestData1.xlsx b/src/test/resources/flowableExcelMapperTestData1.xlsx deleted file mode 100644 index 60d14066e1f06e10c9caff3521250c81780522f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48230 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

_OY@LZsaK;;6x1UNSsB%ry$2m#Lx#tBqz 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 NF@LWYhJN+E_g}2xT-pEt diff --git a/src/test/resources/flowableExcelParserTestData1.xlsx b/src/test/resources/flowableExcelParserTestData1.xlsx index c1739f9d631d60e873964d87d54d997cc7251ce1..8d775a646ef9d8e9b1113235da4a5b861f83bf92 100644 GIT binary patch literal 6734 zcmai21yodPy9PlTBnFU_R2l}PQ;?DFp}T~Ep}Rr4r5ouk>F!b*=@cZSkyHfk;5qBc z@BPoY@2tJ|?Dehp-TQm?n~#Dt0wMqo1qB6;BGgg~?w+8-{_EM9SlY9)+?~rNmmu8~ zkC9eSbj6QafWuyosU_w6C@MQ2FFjPhj*<8z|H*1@X*3{`Id9l)OziCJY&_af&@8^? z%?Yloq^daxmyI;wIaG3)E9xWv`*MO_Mmhq+9_NW4GzY*o8Xc7L45d;2v7rL9&YpOr zbW=(!9ckuuK?~na4JYZP6)YuLzF5t;o+(4|nBjr|`=%;$njqva{FqNkdDkd#Qj;wx z$c_a@b)wr!=o+BQxFivl|k(ZlT=Dr;B{oL>0dZlHW&wVjU&;T@ZzeS#ba z2l7dJ2DI3EIgzWPZc-6%FVj_nBbk;vEXW1f~YSb*@i74Pix37bzV3y$1 zr*A(`WHZ}lAd{=QHFVow3{maKo_>TGRi zVQ6h_!Quk7{0rl^AB(%#umdlI#FJWOODK@dcR+~s*^jU%z6R7u4usd&b2E_Rf3YDb z5AmH&aH{?b^i5uKqT=?ucw#LUYnV3 zE@6r+D_)Hazd*Sfo<<&qZJG4Jzk%}TFHr8okr$_9Jp_~&=WXSPAN5CCA{b2GT*+bhs_td)uyj1xx;%E@n`vx;Fc4XGsAqwt%!H}n>B{Z1 zGL*lq8_bc!cJSrfJ+1YN+v|ua`5N@GjH^Uu7woeeFDv;~TM$+3qjX`?{w^^9ga&2U zv@y#N(<0GtWQNzK?dA!MsWcRQD`;T2+%+an$uq>Mr}l1<+)#u)Xa`CUSr})yA<*s} zg6Lc{ltW$`i=x$^jA2cVjT05%E}E5~&-6PYi@)w2r^`JBdk(w$T2o_Ibw!vRZuv_s z4@yOrDu)DuZe?@EQ3=~)x%egw*;|?X{rg*)5maaNGy*nLfrFAff+>g1sO){mXo*Sb zF@BQhW;06G?Iyy${HL_BF^IhOBCOd4iQmw&$V}I`c;@5;&}QeATgcqjBDmHPRU-%8 zOF&ownKH>s=3bo0w0t!Y46+WZ%|+pLkC@=Y!*Z-X!%5TBh~1UZ!BV#j$`|<==cR ztk-5rbg`@czGwIy*>j@^@8|IOk1~$SqUJYiUO~kPaL&|b9#t28!j&qFo!7H*`3U53;`NYjoO zt5U3&&rFiE5yt!U+^Y*RjL+{Yze+9TQdGHkYz|euwyaK^X_t;9PgW79Q89A|)QQ_~k0MM`KX$1lHXz#w_UCQx z*pN{)I&XOlMFxL^(K$ksnvzh$L4xpn1AR||T~b}?+p4QTY zwQeD=)0#9}x}OVP0|E!#E~1!2s>$$k^h@%WWCCDu zd3#=ak=6aaJN6N#z}4iDW#bQoy9he!r}+#ID{vf`{}w^8#k(SB@8D`_Vt*Gq`|3K@ z3lsp)l?suTin__?&}R$a8Tv`xVu);>cHnoN#JV&w$Es#y6v4BxrvY5H>%W}`fYhB5t4qLi}jh5%c zw086|{?Bw!8aJiU=1rBuNtfbfUVM1XP)J4U&L1luI4D$#f!ms|L~5#Ji6&Qt-jn48 zit6SZRVZ~NUCqfYQz^k`}yVi<<3rdpDL|) zm>RIYP$!E}0(@>)5$Xo_>I1~ODYA$tx_E83v4#f3Y>s!SUVtH*n6{Cf zs};g6MVylKV|)5D4-J%xA=hwJ1S+h*Op5P5fhlb{P)0~CrnXt~yr;@1|CxC4LqvYO zWQpA_wgU9to^H_*4Q@;>a5_eh$v2TnRpU-2pL6zBaNR~+`!W6OOaW-CPVw4irO1h- zg$x+0IK*gpE~J%{q&P%p3g8Hxdo^@=8SO=1(D|Y$nLI9Kkg|yPcGR%t=4?r4)BWOd z-LvAjWH0YqTZVVs&Gf3|f}%h-Z?X*hGGY&~aP>ce->t?rVxLX8Fvl2!KD>)SZUKHmPTTR6ByyFsai( zQjB|vME1o4&h`;A35P+Y>uQ+ygFCl>${KFe0xKM}fPZuQ$G_VcdovRg2Yc3EmtWPR zHA%}lRRYkza-mG2THJ)osirqEUv5Zh&6p>P|4hqVuNa778t0qUJuCO^>%|Zpmo0(z zT)dv;CdQUGOFMiB$Ir_o1!#n;oI2mceq^2n52m`r#D+wBdul7mwkC@LG1Uhpfr(6; za&OXG;3C^ibpK;?OvDL~+ZkM$;i?nr}-Q zaVmXv9S?PVW7YobP`UnE?C5EQj)m(G7sr5|xT0~^{|rs9KE4N-*m|z-^(meM zB9?{cx*kSZ2}T-|(ZC7uD?>*5F~dlDEJUnbFK)&clmkEMHQ1W)QEdHHRR#bQr0emX zm_$*hDqQh?G#`yoo+vYfP1TAlUlEU$ud`&WHu8;vv$F zjF}Y=jUG+VI5LMwfhkkdD8Dl$XlxTd*d;!EKUapX#(b+`IHwrfb+(H(ER#+Gr|a~f z=_uWwD#6vUNp9tA(aU+^*}HG3A2Yh0>Z!T?z%1%YL}8nP2-zQ$L=D6*DvpVju@yC@ zq1bhF^B!-fTu{W`{w3#c3zQ16cMyr#rb@O{bIt|&acAT@37{` zG460J{&0AIL3$x+Hqe?IMY|SV+bg|}E=dFu_K}yHWeZXJ+2xP@Hs|^ael_=~1pDX& zBN@_eXJW+i`G|7B&JaZ??QAr_j0|#YDe-REb+Cz^>PW)C@E+?a))A?K zsJL_%r@XGgwZf?SGXH7)dmT~5h1wn!t9z=$Tup?Pr7j+=9?e(3mIS-><+pjw4u zXI({K_bN`uh(+Sat(ytyg&wvZE{e>QW$(`EM{{XcX7&8?)d7|ypO_MGDTvE%s&?NO zsuj6lPx=udGZ?67*$4(mIL4b3ePGLseSJyV2Ip0)5lSouMhLNMOc&WsiEH@GpgX|z zRVRFsq!68N1T`*i)1O+oiV;;^EHm?$LM~x6wmc!}FCD-{>UXE& zBn3pi@(+_Wr`pqL^@%!nzKA)BKQS#fW~Na@6qM@?Kk^`iShS&bmz*5{B7&GO!sZA` zL*_ZP2}0Mo=>~E==%mi53TzXpOCn6zr^R>{*Sh?M&`^ zi~uDa>25ZF=Y?8ai?cbO18pgp7aKMy%C3S(*x(WYbTZml?{>LHYyFe2^+krg-NCB^ zm-iJVX6St%KpVjrxB%a^h-gTBjyP`w2SB4gP9K~@@d~-pOi4SUF~0?PWJ!$KCt3NH zTPeXVJ*U<_#nAFQF~k&EH%p+=Qf4?!ei+T7Pk0W^CWVH(0jVF+9-}_63M+EknBJxG z6N$1TlAlrGJERS!rwD%SwOBGxR-x@A4io037v19K@~K*+5D{z;Q)zW18V$?Y;`K3k`iPS+VZlBdHqWpHIy zYX_@>Ec%}AXQ)@!LZXH-2{bvzFY)ZS^sL9gT$S+XPf1Q{l zj}JZy^b_NqV7~vC$4=xmh`d#=Dfn;-v~KkZpRciHYH_)fxRgTlD+Mn)7(8rA)?HT| z5Gtv1M_+K(*Bv5We5TsVvv{RWO3OC9#-0ys_1rK#KCVp}U3rpm^1NwBBY?T>g$t8% z3|&gJD9UoePDXwUA_G`TMRn13nSgh2UK@O=xlhq5aP3E{A>&6za$|?zmX?0~tJ!G9 zpN<2-5N(DX|4by^O{u?Qz|r2p8u|;=kt#G8r~#js3Q*=2RFL0J)P(Wyt6W4c*TLIc z56Fgjx>NfdL@=fI z{V;eCK8%UNg0}zw$(tQn#Z2TiVxbndR?4tddLB8_mAtnGAIqmQr8pOW_npdv_xte< z=e0DJ@yg-lvNfeUG{@`p0^wb3f1ZZ(Nrb)iG3@x~eG&b&FIf`@17iaR16COWLla9$ zD^u&c-GRqGLVDOR9**e&m-$D!lWD|ad=Jnj!R;bWUm`oBC{=?JCcG;q!OeJt4h<6? z-%&CIZAMvo1GvG%M4(tM!WDuWIo0qq6Tb#uc^tx#E* zn=-r$tIQ8CT&EpVoP!=02{^<<`;$b6evA?1Or9v|8)l~ zF>5Oa6DtQj6;~S*d!0MLTH|G{->_i>9$w=I?;@HzC*`BgcMIi8UTtUb%hNv|K$DDX z(78I?5>bQV=adyXQBs{>3Du!u%T9y8mcd9gf@)%nbD zCqs1-V=W5(_skCAw*})W2_c9|@l1>{{;DLaMa*!~p%pWgYog?<)akBfkX`WmgLhZoK`{I}(N68xM}T0cS`^R)ULQg43peM-$n*TlbqGuY(Z zzq))3m{6V@oX9SATPI0f|2*om=xH>Imnrt0j>GYtf1ee0)emIg&99h_;PPhmhkZbK zq&we-e*l2{&AHzvj_)}4|CDV$<;ev`L}>!kNRhp`A<9dX|X#h_P0P_NgZbA zJ~8{J@_k0&E+_q#OT=HwfAVO58n{1O-4O@Bg%9Nq8sSgX``yCb@bz1OFd+Ya@&7Z5 z{b}WX1-t7keoG3hZ2iu$fA<-Gs^3r7cV+Ik$l%^n|GVh@seL~w{wI7Hu-o4c|K9}v zr-A$F;VyUn7AM%S3N!HEGwGjZ?mOszzDF589Nd4&EDF*OVZICphYtJo!Q8}-@b2z^ E093$TIRF3v literal 10167 zcmeHtg;$i@`u|Xp(k)%mozkT=NJ|I<3^l;O&>$VsNOyNhcZY;@BOooHBA~Ry{6^2c z>zu>&$HIE-{-TR+8WA8$b^6g05kvqKnqB+O#b!;0RRX@0RRX9 zXo!Zg5C<2KgNuo_rz6POnA5}FjwT-&kvSKD2%rDI>%VvfDibHwwz+W!kJ!G6%5~)r zg!E(N6;oW&(|$w5KS07dFRcBtlx*dH{w=M=ANNaBn!V)7~NfDg)ZG*$ zuQCQgFmqq4PKn53XD1xLZ67!Ja*o5RZ#vbz ziEyj4zeOVTpnNf8ofJn-%`5k`lv-dd!$qq$a@#&8+``i02FBL?FodT~jV?Hi(s%s% z?s&6v)V5r`wUEbGUTG^XxDCQ!NC1t$5t)ZFe4GwW`YM25uQOx2k1xo+1;&^ObI)Dq`bO`Kcj` z!_~~zgb};#N{^yctZUtv3ImKE5slw{*m6kR3&1RzPphZvN^~7qMn0V0*!_?rcD7Ms zBZz0_lxTz|IkzAv*veyTy$g6%=0ZWa3yl&-)&?J-r?+(lUVfBSL(MjOYe=^DQzqh_ zU}6ev>tPJ9?HF1FeY6a_1y2TVq`v6^OS5LZ7yF`3bty(;@V3-Aj?_fyaCo~Bi(8Me z)ttjvacCQv8peAwrDC*mbOWP!%6Ksf$0PT~)}u?p>B|c|AJdO@UQRnFaU8D#sR>Q4 z?ASY;jJVPkOY}Km2_b@M9ZWu6K+?VdvIap3FdVaMeT zfr8B-5b!U*SgB(SDG(;~F|oNr+R9pHlER;J87OJ0aMLbIbGs;m_7WERzgXcfE5AB& zR+U*+)2*2D6tGdUKfj&!%b!lLphg2Ow)NY-H zihw{J&$)(d#lkAx)YdV>T?q(zPIOYXXZ8Q3(3 z6>XZ6NToLXX?}N8Q0XJEqqnS)IsL}>4Rvn*a}RuWN{V^yw2gR@FUYym$)^D@WO|vk z5L0K;pzSvl3`<%?&Mj7q9XNGA&h^*WNPD}Zo=O=6>Apf+L!Dj~7g`Y$cYpuz&u6il2PW%SsP_5S1KSm z>ytBK6pqam%zJCW2xiiF+?9uTGhZ%GIXOi{6n{(W8Cf{|CQw)kjqyl+kim-{=%vpE zlOEuojg!Vr=eYfLJqbkQ3YNq;Q$j~to7~1!SP<|DoC}cpVGPRox~g)xta7S<=$`4&2E3=SGG#(QR*R z_oX9=rs%P;i#-nYh0|J+`7%}(#?qE_cLv|IVQ(U67wcq`^dtM)a^wcf*c9+Esi%*g&7gl+z?D)lN^j2< zKmXC*tJ2AlY_RwHc`uagrcvpRB324Us=?1-)EuNT&74qA{f}NT9yRd*8SWJ&;WQ=( zpdr91{D))wE0O>0BoW|IE`08P_f;7`YCFJSQ^snQEWm>+hH- ztYU_0=(BSK)_gM3^Twf$N1^Y6D!hHg&%NrBftuWk$U+e#u+j}=4n{e8H#$xq)?=+~ zm&J&JgtD}^sMoG%8@F9znl2GmY8HgpzX~bBTGn_?>m>d`xGeMNjrnKrhXM&RRcJyn z&dj6$jpQuhYs~=3#Acd^yx0jCxV_w#UtIKdI_?uDG4JuzAc|Z-7nAO>;o~^G9nkf7 z`Z>j`7X;Q8ebG80x} zmbr05kJ!#A+1F9`kTLOq^Z0p(#`E7cmxT$;fJ0^W#2WMNN5Yw`PC>fwd(%9+{08sD z{UogA*Lt4Vw8b+Oq~h-fmw}pDKF1zaSSy8}bX2tRQYN0F#Yk{T_@*93e{3V}Az*NM zTUd4B)0;}bVSV_t_%$|+f6(^u`>aFiSB_&Zg_(#VCoy39XiPR*h)*yu{V7Ii)RN8q z4Z4}MQ|wv0?)jn2>=s_;u3P(8dZ0^eSflm~H7YZs0U=k$gnpOq(gp2ED-CL-UWB__ z9NCt;k^u%d)8+$Q(JYh)Rz2Z;T`5^4|e#@y*CBEbn!?iNWiNO~3>$hPc#f3TX zW&#CvJk&QQT77G`LQL7!Cei`N{^aP4z1d*%Cg2uks2M{WP=*G&`RNh6bXh!IQp&YWDidiXnKzk1N6u=3eXVAD z9n&d&G7laN+`+d780@!&BqonK1aafa`=NNwE0rQ=cHz>X46z%Q`AMNMe=H=Dv$?*= zq7}2vh}kxlo1pw;H1?)YbneW?F#A2bjbvAcAc*#)ZSu!bZ^>nV=lW(_<<{+F(_#5f z52X)ZIL%&Y(zZ!AsrQ^=zs;`K!OyH`D1AUD6t2M-tSHAy8<4u|eAeElQvH|?P@u>L zosw~zTjsERfevJ3z|9Rg$v8OsW=U}6xf8iBh@Kw86xn^b3sOFg5OP0$nta}b-^bAK zh%2Q?H|6#N3B%b+VP~aw$TvGB=b+j58ESJNk2?!REw9 z=ZT@HODOxtG{yZ`f7eiCv$A?+bp$GsPEtC&I*ISGH=RLZbqyVg`#*GL5I33C8LU0^ zJ@mLFEp$9pIfT&d#WC1u0~`|{<2T$C{CnmC89v%GPde#QNs(cCYtU%~OO@P7Ver z3%R*3^_bIC_}S~iVAJX`XB*)Ioxe@wer9%V+92J63IO2I{VK8i-alNdLG~c7-_PG$ z$AQ6k?4xF)Zq#9z)R^(Y*uFPVWU55y{LpJN$#_RWF){Szgrk&ZI~ySa#@?KA0HV#b za=@AwbHoE{{|Bu*u{@^qs<1FI=+pGgh=|TRsdzJYF21=V@w?s5p&_AI=Zl1j)I3Z& zhEIx%n1`2CbR$udHgyMH>P*{8E3%rK7BOV%3X6sWpM9W5+p&jRNJMd|G;h>*5DvZK zG(Sr>vRZLReWJ{cNA@*z#4|@}HhYnU`3l|3T=$_*_lsyARk6ek(m4qO_Wh{baNW-z zSD2}JT2vF~kocG;8f?uJNe^zsrqEiGk(j1XERAt?(@sXwTQ#Z7^jRyc*ktF7*yqpWNJ$yWcw9XC4tmaPbOwFSX9Yp z&425bYOb7nFq79li(xC+RoLCsFS5^n4g5F*kxIM!dB_(dS^(_td!!KxIoR;_T{@a$ z??3=u?qYXId}-{93lYiXPJN76*FapU{rOwRYY2M`4jQK- z_+^jWA(oAV!UVFa&Z0NKpc8-RlhAsH$K6@v9?bLmI})yJ7$)U3sE}7Dd6iZz8PrOB zcQ*vPJ#*jhhTW~;nB0v-r+{uM{O<1No7Zm>z4UEESYF;;Rp^=co&DhQyS$?|dD3u! zoSnQ$Ku!>@Hq7WXX6_+nj*%gm7LlQ-LZ`xkP7&bn`b%5{`^E@4AIV#FI|2!!Hz1>) z>k2F4#d?KGLf5ey?g)+zp1sP+kXZoEnGqwVy6(t~c&mPrQ!G!H15j1ve!F(Py6b6#-x2^QbB{)9z~7^nj*bCY>#fxDu(5M*l}2bRux!} zPvf~`o;uSNDeuPl?{SFS(uNM~x?J-Z4hd>9dmYYr28(dfzrJ~eyD97nEmqVX^kto- zmE(Ex={<_%?m5Qv#Rh8Tf$N2q61#i11fEy`vR<(^a@ZY+k)o?Zy`__C(JmmIZS+*m z4z!q^JF&lCovdq3jn{X~m`xCv{pyS9)Lt3rB=9r{t?oUo6UqXT-B5X#dRQ>8;-Wx1 z%a1T6HjByO_@hndj;>^n1>x}8rIIV;4u_CK?H)514UYlKJJx4IB9W_q5N;^f4s~eyAw3R} z{a9n1uKP9AKe-bR>=91%H>FjEb%RB|^G=~hU4czxx^Qh*i<6D<+^+Gb+`H)(zje(6kB;(NT=cd~geuWuHqduth z+H2yQT|6anxpRicMQ68MRq9xNG1<{BFstF@dB(DLC7M#Zx^wKuri|cOd`SCQ(CS&~ zyy!r24SxUxdt%gT<<(ED_#s?1JUw>NZwpW{Tt#Ytjz#h$BE(Dshv@AE$HH@Hy&WMPPjYGM1(%6#pmK{TM1Km2;e@4Ib z!4-T!)cuiE=SyRoiH(p~qf+&BDN4c94V>%EJt=j0r>WttSET(mxQ2V{lBwUbAT(R! z0gG8=u@$SYwlxISgw~~yH}4=cJ#kWO6ewpkB-pG$z^Tf)eqjBK!@O6L^b$p=_)n!BYN}0$*Y5r)POM8?UZg1Di>+oShAOiZ)%3 zp8XC!?mK!s%(~B;@bc@)0{{S?EBs0noLxNaK+eCigF>BkNCr2qZ%zZOcPopW*+LOn zTUD!2$ylH)t3eM{#cW>k4G+tQ2AGc(O>pUKn=4mu*NM;FVb=*`mo3UO?{aXl#nvTB zc2MbSvf<~Y}(+?53xJT3#{BI-} zB>P@ECVN+`hZCBqUW~opE3CDXV^WER&MP26W0>Z=4>7nWWKhq_S4$DU>;&u!M}No7 z94w00!eXW+gkG`FM~+oipf;7vwA{s<2M00MkhX3q(IY(sv~)Ep&{_L!wegle#gPM_ znTa#vMNxa1kgN(!IO=o1sWqQB2@+Mq9T29T#iS7jE12&i%QlXg28Eu@<{@I^r#HR+ zJkjaoRWZ_wldlLk>F5n0UFMH^#N?;-poe`~ z3)s#n17%=9sJ$9qFb`QQ`XSgq<_Vq z%a&g`le)P=J@U++xWySF;NGuH-WqA$=vHuS+4#~5lk3>QSB+`TZ>+>2H*n6krBXzN zN1Q>l@Y17>al&GD_UH+*ZZ++3;s_c0_&7W=%Dm1Gw;znDAd* zum(aw7FsS)8wac3l(3tW#^~e5MVac{pzJ#ku$RYEoC(=LKLzAb+UKUtO~{>|>&oFe zU9BHWMwK1a>IqSZFw|*qVrnR;+9DaVXU4pKM@$%5vTzYT)rUl8E0jZK`CKbyN#-%{ zLBnow|GsD1gTl{HHS<&6ci;0pNvE4vX_XFKbqF6(`p{^ozGom_$mI&(`X7bP0$3J0kRrvB|jdVBVyl@WxM;5Lx8GN*W zn5%+ZfEGX(AeRcz3}mP1U*N`~>RFw30uq;&nO9e6+2W3qobN(}bjHb^CJ2(O6W^)nMrDEmTLRSaNbbVZOcp+P ze4C`=|5-6QfPsH|m~Va!6>szl$>H)h$OSq^OJj zl?1*5K)#z zRUQ-id5i0Ry6c!?p)X;*od{ODZZU5n>=bTkeoGOhI;)ayLqfk(a_M??Jf{<_{Bc4F z@Lr20wWi0%{shd?|6cy$En>!2+>Bc7)&y67j~?T2#z)9WE$y3jI&mrs!u;Bx_pkN`baecm`N8e(Usqva16!cDO z%n;(;tkjCl^XeGFD&r0o)tjd0KDaGMQ**tP$S*y_&SLXYu?VUjfIg2v>_l%oyH*lA zqT-Z{3?zN^kkg}b08erCbELX$g3Q1GaoI3&HtRI+P*S3W!GS+<>o?~T^fIIgo8{3d z{)G)6ZV07UvL48j?R(EYxRPsoL_;N}A{(~YfNi-^kn)ko(zL2;V80S!qIyn!p-?Js za|=D{jG~mIiwf%r;~sC4NVD}?{HFrWq|6dqaL?wG*r|uYGK`WKU+{qX>ksVcs=QvF zSqm2i9#nVqusy#)?n9`=7iYlC=G&mji05&O6aGw1+o>5jTxdb8@{T7HyjR;fJ^K7j zkn^S~cfih|$ks%i?9Vkjn(vZfDb8DQz^yFDCZu(K=LsPR5%r(_-jr=EB=N-{U`=Rnk!YyMVu+iugD1*Ej;F#$V1z+y~z8 z{r(B1fS2;_b%O7M|K4@_6AA#VWBdmHA3do1a_)B?{**)y&oBP3KE!<~_v?>;N-@X# zE#-bS^1gukdCi{!RN#@o-?E(h(EDNFpHO{@KcM%6!ut~L$60?$5TX1n;crpbef0gP zQTC7ppm8YG4;8CpO>8bP{4T6zGbq(MPS z5NVJ*=>3me?>*;V^UR*v&$HLsd%fSP@7>z!*f`V}1Ox;aIpOvXF)j%)`oEbI#2zjp zd~qxuow03aqsN=yHC5Vf1Pu7lbE;}}v6Z&c&)^!KA@9A{djDi{W+*U9C}+R}rMS1Z zH~ic}#yY++V3!i8YG9*GDasUh!$EacBDznyyo9z>;2Nz(hwI2O*A}3e%YZ9#;Bp%s-wD3^QZ4J1wn6dh$EbwODl!9T;%=FKM^d8I8H@} zN})b*v*HI~DElVy0_;}qjwe#@q><&HyJrE!RO+SVN08FrClGP3X6>>#hO84<6{vSj zyWUFXP0+r7|Lt@anBF{YJ34P#d2MxBtDqS}TOFT(a7a~!2@?au92*0D{&%1Yt=?J0wlOXNmQ5n1sl;=tzoZfebeFF zNg>dhi69d{y`$guaS*uggX3x^uku=>uC|pFfpgb*njMYT#_UT|bNzu{q5T)5bmb;& zF)mDerTq)~YS(G;fyrd6BiTESs8n-%2z{BU`-RhG zgmU6cpi`pML0=C9IOY@=F&LCc^t*!}*qGTi>`ysrGLm&i*<*u8f1GGu@iW-SS`&WD zx^lSVxiMbXXv@!F|JE>5U(H&U1M^x5JoBaQwB8$ER_Z3SN zX{_t}uEzsazZlC9D)y=8CvC1XQY#ZV@PCF`zf^p9)x1s!)0n$mG7MR2p%5bjwwP^0 zDX~lTi<{lgm}aq%yB@sez-Rk$nEwZ@ac94+$w6(2?OiJcqMBV4=_qQLA&+v}x`=qZ z`zgNCV5NfkMYEiFsLxYshfv<)M=~`kXZjD%6ZxTcx zx|@Ws4aUuk0zan!dQ>H4UVLpJyxz4#l$ex;^j9Ue9tS~NAhLea-??LvI8tyqkt}fH zH=<1DM~f1YlbW}QCZ=>7nLQRGB^DD6qIx`EEBD4pR@~VLQb?OW51X#plPT?Yi5-a5 zuA9xp(Xv0tYT29NjcK4v2VbWrYpA45w)vH z_?}d83SRTliIH6^A&HaKZb4Rq%9;ioAD>S#2Tc{dmyXN6Q7TTee;_ws}x-%rTyBB_)8ngUO$ zcv`1I;!b}gb@bS$b~GKnAoYk7R&LS?Sjew27EE+=syN!PIKub-R6un)uzy@Ec3995 zu;>%)`Z3#T81{VJR5!%tgzy1(;5&)2p@z+qcM57$G32I%)n)q{M&tLt z3imu%d2K~79rz$NGTzSQ4Zwi9|E`IiI29_X6qZg#+$5`j1?W}^G%pvhqgOhTz72! z5AeN2+dU%?!YT74*H!{+(_aOMhWV4uD2{|ZGevaEn+L1nvueBPNfo!Cy4Ui#TKMa5 zeN~023*;&uHTP)?L-VPV9L60pP`5vBLdiUcfxAL{#Lf62f!3PY z7L1?~0xmmc<^JN(LTsu#z19>N%nUMLtu83yruui^@CTESo9hBVlF?#rA}2laRyL<@yhFw?v; zFUrwpP-%MV{_Oam*qV#|L7X{j46Mr%LM`kTvtMRstB<_Y1@k==} z@~L6G7pnc)N>J$gKxs#*XS1i>`JcCx0hU(l1wr~c{&H(x&@T_#kDQIS#PD!7WKw242)-F}f z>j7lwhC|yvmA#xm^@Ap68vIenQ(Zzt$Jt3ukRv;BiH0 zS18eq{_mSS8i|W04|jIAhy3(%({T7niYT@B+J@N^=OdKSqXsr-bejjmISrilg-U5(@OzDR~C+PmskDx2eLz8uw~1;N*ua8-w5VP z5?E!y*(4Nv3m_E1xZcw4p<+I8;0sW`K>jV8GlJN%aOh=Ttbf8?)}An;q@Ha4P`}Jx z852G=kb^w;!K3DuZM8O>D8(}2#GK)4F?L{%+v|$&#OHKT)k&7itHKZ>P_vFa&BBBy z;K(X!lUk+>j7-W4!c<;T)k`U0h z;X$ixt40?%sWEv@D{J?-o~yVE|B-ZKSe+6H;aPy+&B(oI$2%V866C=&fFS-d1g7mt zQ9afHjy$utyTKi6B>fA)rx!A{&S^N>;zSoaEZ5S%m`XtC(So%lK(FQw2FZ}ECvo(*rgIiDPU z@+{9s$KJVP>Wy{XBKUYd*lks>hGaH6X_D(R4Zt(KShb()5v5pYa>oYeBOkAO&|Y_# zw(V#9oJTJAYzKc-&_mt4T@#NMWPIlAPI){_yz*CAb6RSoy-#*zCiin4OdGKA=i<+v z7|+X7Pl|jeFq@QR^qQZZdEwZOxavNHnOH8Un#h_Ofzka23ng;yO7`cd4$zc)aGY%b0Z{_>@(uR!&L8mU$5URHp~3MeQ5KXu7^>+K$=4u za=#ThFQv~DGUrfHLoSV-JBFa#$sihgOht1pFwUWX`#If+02oC+0C)|t4!CdVHT1r| z7Gl<_Ep)XaROim^6a>yOyV$5?RPOO~{rBz>MX6KZ_8q9PoqPZOo#mRGYj4{4mQ*y` z?2s0vM9o5xa}%?c->G1j*ByjU!~H6I-}dkXU3ufkwe}pV_*1mfL7XKQqQgxbW zOYr)`8PYFhT;I+shu->W4^HWJ0D>dIokV%RPRw~wMO+INuVv^&+V{%On4r4OTooet z&J#hapHR;C+WegHt7sq_e_t+%d3aXjtJjaH%x~RKN5aF(ja{m)JTOoELW=?rDyIIR zH30Lh`V>lU1DCsaUF+~a++3A2*$d>fS*IIel%{JZs;(8z9Kfy=mt-xBqEVugrlho% zSg?QN82>0nu2m~?a#ckjWobWEtxT6UPGl$hJsg*qY{h(Lpg*)MmLY-V$$0y%{q1^| z{j%=GcZ#s>P`S~3&Ce?`kt3~}-_k#}JSk~z^x3oP>o{55?N2v*lkjFPb)Z;mplVhl z;vPr;jAaOfm0VcPO&qb#tavD+k9p1XRTOp@CP#j}c}peb25&rS&w6ii-J`Oyy!2!q zg~vT19#AYHbm9xcY%5}KOqe)*S%^XXMkn~hlUq`x7-ywGxZWf>!Jx53#ZwD*JdeWU zmfRzjhVo^S5zw*SUWxlZh3-%p@ZpFW{hb2D#igqkcc9;IT_BGWye)NWhVOG)sStHoG|)I6iv@hrsBZd7LG^qTT zSiwW2Y{G*ozf3)ull5(QlKuQ}LiN5J{=q`}Qhy72iSP*u)EqsW(IevOKXM%8mzN9- zgI%mxTFlQC3;KFSqrN0$cfSVEV^D4#LB|-OxybxwN;iLU3Q~;oqY0M-wpn+}%zbuO zXVBG~&H?N^^@4~SAWuOL&XHIr@|Mtw#ZnrCbGkn!(X%Ea9hd|jNlalXziCzSGdB*D zm?aa7NSlxwGGXfF(TijD+)|V*DbrUYcB@>>!(Re$b9I;QnsdGDf#GFQIacqT2dW8> z?$$vnSh1qxNxmy~%al@@O?P?Bir3>O1bvsfwhmscoWEm?Xj*kabn0M@3JO~=j()r^ zOv`FkRPXc5ZE$q8@G(vGA>KlnhH93zLaxGgwf4b{Pq^9zpseyQ%qyEWc#TquD9wtP zvlH{oO1Z*SOD)^YN;(oND$FhrB^jHZq(&p!@Q;J{#XkLa5N{8L14Hl-4_VK3k0mhrR=bdwX*FZ$$;O-q9SDIa7R1K1pF)CnCUyAw)vT zD+E2ukyLH%nKx%aWPHLCY;YMj=EM!@!3-BFC3Up3CVr+)YBl%ua2Cq$>F~gyn)+&vAuinPS6 z3!cw4|M;0;JOK5vZ8Ru~|8F=vRD?cphCFdL({qPG;3gMYyIU`%Ga?ENZL%N zNwBp;X+Z;c3n$C$^`t88n$OB5=COM9pO8Na`5XjDw9L!yir-fz5CW8fpw+1LsXpLcAlaE^iQtC90gc|X& z(Zj<<8Z)f+7gAam#cHxOZQ`LF&6R0dRWG~aPPN(^ka-1PZp0H3qzMxFcMKZNw?Q!O zeeM$%uGJ$szURtP`1nm#Ffvyj1)27DQ&cz0miGK0Jq^4AOKYDbiOW`DawmknHl8{- zs|gi4XJOYk)6C@V}>bDT1yE&dHebR literal 10251 zcmeHN1y@{KvTiJBa0?JDKycUK8r&fSg3~xO?%FuPf+dXwcY?cna1HJdENF0lo!pss z=Q8)bKQME8t+Urz>wLAk>eN?NyJ{=T!NKDKo&b;l000Fb!8CC{1_l5CBLDz603=u) zagePO(AG&`-Q5o8sLSkTV@;k34@;X4fQ7#Q-|Iiv0>$woitDVHJ%FM698(9js@*b3 zK1x8?RFHeo{gVDvZy{x{L3^)Xi8e*S#Ow&!#EphnA=NA8B9Bd{OfCp1Vmb{CTE#@S z0ARo>?FYOmjN|0%xIPveBLlQ|C;1ts6OMZ;V~)<{@gr8T5ozkqHA1`|)hMbzhXJSs zJ}BpLa(BC<(k6W3&2moUgt8zfLf3nnBO=!q1%1Ot&Zv-5Lrk>h(`&xXZt;lsrj1{p z^v^gCr$=tu$Dnb>vx9R;KOip0S3heD;yGZt|IWHoL2~fSq)8uZslEMYtIEf%3#{-# zbn&%>*K@9O@3)z^NZIH3hsU3JB3|Y<2Xy-Jm^H_LO^ZAF(m15Qdyc`bWiZ;h3UjBi zy+$DNq;NWDnGi!l(IfpdpNwlM*-5SZ{klz5n2D*$?E^#W(;&76Man?PbDtrV&7oSy zh;@lda~`)J?4o8YP#=7FfCDK1g~)8r!-goKL|%gO6ctKjeFvbmBMbAd`+o`iAI#c+ zQN1{JOcss}Q*s&MfnuYXe_lf(d%h)9SsAl{j8(z3HbaJnN@c#4rvzU&Uvjk9!mC^DAtyDofG-!t6%o^nzUVyLx)uxX=8pgP zu=X^H-Et5q{6(Y~qX}Cw`+F^eJ-S-eN)N_qi_(0Q>cDl8Aq{I6k+@913Gbj>Dh z2XliPo++aA8_DJ(og-_%i+vs|Kw@|3T3vs5i92?Af#q$mSm9y6aq@x53rvQqe`U?s zWdDu@GM%Tz{16w!4QZnB_An&u@JD*m>Tr$zca+ksvB*w@0|1VosS*QfM>lI0SCE61 z5eQ`UD=!vn=z_9%alQ2|?%~!_=V-jB@^@&xEE+9eYb05?ex@goH$?eVtq@n3^dK}% zmA!9L-S5Ip$z4+#J<@#f&hgrPVzLJZr($h?f$HT9r&jWDlO@^a=Cp>Tf`T~x+-B7# zQ*!c%eA4F;p*xp`&9&pSlh<$nZ9X2koCW{|B%wItXP|3wPy+aUFg;;7A{BqTIkQ}k zy4nk3V+^h;%ONH)@~HL|NfjXD=G)~mO&d}8q5|0KisDy%nOw7Mc2Du5z0H74JAk#8 zLWVN|za*(Rge?pvg432KwLD#1+_0n=_weGz(J$M_+f@`2keS^x6ahpwGGv!ZtdtwN zNZcW8yy$(RU_p&nA)cBYH{=YU=JG|v(0VXGe(R&(dlu8 zL75AQLIaOl?|_zl(Q(`;z$*D~WC@RaNcBZ3zU<&+qr=A@(%-z>GIf|Xr6hM{QR6?( zf+TB2CG%$qEcYdb^Sb zEtL^5>lpByO7Y`<}%Gl=}L2* zrgx)kVsoS2MMh+XXCi|FE_MMLTOk~F4-CBsZ8Mj% zPNhbGLzvl`e$)8I^22(bL6T5tzEJ>d=K?4PZB99a!d`Hew;<&(#(2kSHcQAz!67ae zV|;{*TzCREMAct7zLq>ZBYOD3sfXiIa;? zX2lJLp~j!EL@I1-HOgLmkK+{ER{6#pxwbD@qXuXTQ)=7=*;BzQhHlg zM&~dD%=S`ew4>Y9kF=Gu$8z=fo9!oJ#!wI3ov0iccA$2CS{hPNbBJM*luUlag2nb7 zvQY*O>5Xd%(Lzw}cR^mJJr^E{@og9^t8a9^BpLDMZv{Xe#@!9#%ZO>HGU)ixxFdV2 zrX;Ne*$GuWke*&?)4Vj${>W?!vOD$Sbt`J8qv@(f5Q3L@&Y@M9(wE}Xr-{ut+|3;w zhZWt5->C26G%78B@|9#V_PKKooV?{Mt&lm5p^mfczUs70y2}}mEU^m;U@*#{+j*(y z<(_U`Pk3@7*S>UjA>X9s8-kvVSlmvBeEg2M@+r<|ds<{wmn?6h^{b)SYP&M_MUch~ zK1|(HOY^QTCoHB9c$2wjysspQDG(*Si`!(-$ieHJ={Y-PWKGy59a0^)q2e-Qm-pZZ zv$shm0;z$|ozXJZ%)ZOSedcl#wyGf9>Q6n9(kCLeiRiwE27reL=vRJth)-;{3=qK- z@s&KE1b5}jXm=qUNaf^Ig=~)MU}a@1k7vf_`Y!8o^*}64nu9imw0{DbmZ%S*;t$K^VX4Eyemo{#zVvc<~l@pa;n zaGA_GE0k`+-uNN2+#d5nEdm0|tfoDy6ILd{Q5JSvQ?)2u!7(qC)Ku*uvZn=gB4RJ^ z86f+yj3g#-KNpdI;_)+o#+EKghbK~k57qQ>M7ywn9DY*S>`s#WLeTfTKxjj|>_?XU zck=}w&aY<0YP2rRbqpr@EL}i~F#_yuG^$rY*wbHK*D zv87$$L+ukT2dx5K=n;~{GO;`~`9cxs-{7dz;}=R~@=_laWW%>u1K0|&Z$i1mM)I)r zk%%%k(_Z&fRPQNC5sXG3?vWTVAKvM8yx%X+ zU{o&-sDJ zYJ%>Dv`l=k-msmBY9j+K49eD|oIk9^n4JHT2W|KhbH69`8_{eAFBBd^1stT3R>Q-a z??qybTv<3K4+ZZxn|phCq8%^diauqaQc``FnMOUhB&F<&7_q3>^H8E$mz@_^T{Ve% zrX)SBgR|r9aJU|Qum*?s;S+g`(gw_d#|PCN(Q0}#)`;)V(_-O$bnLK<5o(RzrlNWw zdl+jz^=^F|$)+F>zd|@Eq|LY;kshYGvp7#n##W~gKMBV{GhAh9Bty7&D=>;wp9n`Y zieRdXu?aaDK(1FMHPWKL%=mG&Ia0LLsMC#DkE!NqBIjUy@^Roh?8(XKAYJ0be)c`B z^>jdq51fG|0gvU6hY}&Uw#sJ$7Ckw|9Oj&NE}x9$()Y$Q8YfUJxm&VZYdZP1Id2RX z$3Y^H`|AUaDE=(N&JJSbV9?%*r_apcBx4f{@NyHqMQFFW<3kWndg$1O7r~-+_52V? za}Xmhzf%YQQ0_9(<`FEySXm^qU^n=srG9buhA}<8A_$vUci`o3pBS$r?=$@E`UUBIU$uHq2kgeiWd_82sF6EQ|f7KVf;%g9s8 zGa-}s+lK6Z2xnaBBjOIe_At{0vDv|k4|G*qof=ubL2KZ_-!%q-BAR0Z93hs>GX1| z(s~?>y9e^Iya>7V!d&HbcF2`c@A07@p^#vE^}QcKc=H@(>|zBmWzYFSO_tHMRR~MK zAO20QI(+CokeZ~WNvW=xblTcKjA7tZ!WuZ8mOi|_U7DzAPKMQSM4g5MPV?F|7~LuW zo`6pSkSh8q>=CBmta}SvltKg9Wv00r>3)XFGMJ2fjXhj-Y-&k#o8k>CpUJy|Z?X+K zP;WDGQg-Vy-2$#42mQoY>$Zr0jqMZ<_N-F+VG&r;EVnG@+Vmypdn?ad<1*&Yi%z;= zwEA*1s&k&2A$SfeFr@*_r_2{`8W6As?t(&>-bBvy)76#{*sMOGjVShbncMdx{4)+C zeCw^dL=bAy zJb1Gv-M$&@9RtqIH%xD$(-zD<#yQ--VWc%SvmE;RfwP1Rxs>aK4J|1x-a_8?#?J!& z`z1CbhmD(Xhb09_SaDnuVK+FQ z`)E0lFwSY;^=RU%loNkWJ`^=15&2v;G*}+SV%8(p*oIrPE0uSnRcS^iD5XQ6PIdjglE09!5HmW2- zAu2f!IjUBqoOXbd>xY1;x3Q<(klqiAbELR5Bb-LAvMW-!W&2!oSR;q9a8Os^J#ZIL z&M7TOk)pyUJV>s6O4>>?wAYAs;>jmPl5b?kHaLdRsci{@5|l23z~xz7$a4O6R5 zRFdaBi;-j-l^mlNYmx&eutAMy0SjmO-}t+7%Q*c(=)(hM^Iq3zvAvjzSZ^5l_f3%( zAmi+Ucs;dhLi$@Dl4mq%FKo}C<%-IELf?b-IuOs!mF}a`MwJs8B>{d7ETkv>P%a)GiBVvn&F?dJiIR`yj$Vf^b$w zfKDG^I9fc}X;?XK`^_UkbcQ5YaHcAGeQArdfpsNam?WwMR3e#p|XXTuYeh=%~|{v+8{K`gig1IMHLFR_v@oTev4r0Dz}|Bzi|DcWa>I zuN_9V#xf|G71QT))kFJQDiN)T47|F6TDGh%S3zpk8$@}dZ^AKbbhA|t-e%;1`4bJ! zEbT2P-uDMBC)6#L2(LX0t#VD)E(y{C@&`5AH@NLvgn$PNqSX`?l`gGrLS*7!+hw=E>XbSKK)mk>V7i z%W$uj{g5(0C-)B}j+cvS>8d=m5ZW3I!(Q~KuWaI zC>nnUVAcfoIb0_lz_PIRDM|a?3Q-An=-DND7A=S28Yx^1_HSjETT9T$M>>3yhI5Fb zne;qBVI3AjJS$wthuz)q-{y@x#!TtSiB&_RrNDK#V*K`gu($}ZCU3m%KI%L$fVzyZ zeogiT+*3eZOSLqmx$jy7d!ZDDgw>gmAT?G5nTI~X0@tve7Hdqo@i+YdenreKUa|>P zazQI;<865H>Oq5m;IoMgSaj^9nvk90W_ypKzIKdE8NdOv{Cea#f&pFMpUA=$*Q^MCDcN=KhmzR9d04U+!IDqUGE;=-LQYErI&BBS434O5&NcZP10{li z(bFKtd)$)Vw6-~;JAOvX0jvi`kL}D_^T^{+bv$7KP9t&WsmQ<#(N|M#j;axrsu402 z^Ri(l1_69c?f!&woDsw{zG_d}80XXs8<}}rxSgoUK>nHdRa8%Tl(IPN6@QFW8AKxW zsOit>LC`6o&z?oC!j;Y9I*$6C^L{LroN_5-wM9zr&usAP96?;JopMC=@6D@SvW`rv z^~_LNj%lRkCDeDZ99RQ%bOZWYwSCKD5fugJ`m>RG@L*XLJh$+{jb z#KT_~Qb(9y@Vvh@5JY`btAejk_xdo!nDqS4hf@3J*f^^wU)<}GC=`Vfa%}5|7?_kAzveH;~h`HI4 z>q4L+LrK4fQ-^^$SN@bUZVnQ9bFOntS>1aT{6I!n+1jhPXtxscwZrnQpID*l^ZfE7 z&-<$dKci#y8)hu+OYz|58!bXp730JiF^2KOs?EagZFh)Aw!Nc__$hmocvd~x==1`m z?4HwGT&w5a6;BZL4t9_E4#@tl;Vjm%kk|oLv>&Q4<{t_h8(JHSn;Tl#{^I|;F*y{dvVN=0 zE6+RjxXzfyCxg1)iC|!kmosgs#FBe>zR3S-4SN;riPOm;% z?YR-X*yTP8oqgL=u*prGL-iDg>iZ13nt+TIfKG-chE9eo z@`gr0YZ+Tp&@aW+M}Ie^5JvUcmiUJ|AyneA{s$-%8m%HO8&U1i6q+H4iTV8;jd^?M?=2 zC@W}oz=F0ip~g~n0NFXR7=s*uzl;PO^ZmDj2{m0rtgccgIbqPD!Y#(r3#KaPS2FY6 z(Tr?kU0pN~wT>bD^51#^CjTc<(>{tGH zf;W*L2Cquq8V_Ca>%b`@@%3Vp;0&@Yz=#WCkCD<{hE9^@9>9Q&^F_f9_`NC-t9J!6 z#jrz6^m+nm2sl$)oev-CmL;E~ZwPh!hJFMJWCe~^I*ADY!qLdQqt{UX&i^{}-Xi@v zDMAcwrDOi9{~6lZ{n!1Ve)o?nB~}46&x#g&2zO0}wn)rpqk`sNY$W~Ww9E)5*2PRQ z*EpksDzx~+-n3H9*yOCsTqGHbo=|4~0eUKfhrCHZX_tdaIBYX=_1TTAz#%EK@OvMmeWeyjeld zJrdsl-5HMCwyla;*87y@ql(fVrmN6RSF%1XvY8r`v~+D3!wi>BDotgJWUQ_sN1T!5 zGqsSSy`tV?PvEOHUyA*n#hj3mXKB^8`YL+#DX$o{Fv>2Lq1N&fYswN2y)$#(Z17%b zQyYWIEqn(|F}5HTY8uB1d2%e9%Lm>aGKyx^_g}M3@a4PNQmnSho5u!JVgejj4Osm* zdid6cE5xsttjUjsLq9sMeK1^0wX1l1eI6fs>IzZuhY;SR@sf!{KwkqwYwxx0iK{Vhz{j1bv!5<1dLOU!&A6zAzi2-| zE9gI>C=4tUw0`*e6HovAYX4mS=KPbg++PL!^`yl=fxp&1C^i1&+{I(y<9YI*P!ecs z@6mMmG5D{OtUsXuz%t5j@c%K_dMxMhG~-W6FQEI4|7*7KSjyvmQ6?`B=c? zea@c(VxW}(^l$vR>v;@)To(QbO(FRM`nX7ZEa7pT^{0f$=f5TVrRsW&eq6QuiS{P_ ze`=V=V*Z-X{}ciM6he!`f6MNV;eQRs{|cvv_K5!%{*U0SEQbK40|0;q{UQ81(m?g= G>3;x-*x1Sd diff --git a/src/test/resources/flowableExcelParserTestData3.xlsx b/src/test/resources/flowableExcelParserTestData3.xlsx index 3209621287ace2a46e54d53c06e7ca0193687eb1..25a89296ca8b8de9e407fc169c43d8f3621b917e 100644 GIT binary patch literal 6736 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 CYHAw* literal 10219 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 XtSE~B4F>=K4f;cXdg%nsuYdmoX0*ln diff --git a/target/classes/com/example/parser/FlowableExcelParser$1.class b/target/classes/com/example/parser/FlowableExcelParser$1.class index c7cab7ae1eea08c90f876dfd9fbb750569322ba5..83a8f4b275757ddeb72ab0b93aea26a18c0b58c5 100644 GIT binary patch delta 23 fcmdnVwv&zH)W2Q(7#JALH*!2>Vl#JUZg2>m delta 23 fcmdnVwv&zH)W2Q(7#J9AH*!2>VpN^{j>#JUZgvQm diff --git a/target/classes/com/example/parser/FlowableExcelParser.class b/target/classes/com/example/parser/FlowableExcelParser.class index 0a6af2ae91ff328f1745b231f3dcb55ff3fdd42b..b8e4d160518fb726f36ba96c92c62bf07c8c0b57 100644 GIT binary patch delta 1934 zcmZ`(S#VQT82Q4`IOD4`zUnZo|4j>wGx~7O|DW?O=ikovOTpbd z_4fD=KLS{cu}kU!D$D5X=x>Ph^{-D1h6cI`){@eC4KtB1F$V<%h2<?n#7GNR4%eG$Q zioMG1L?r?OizSwz%6yFlGCb7NL9o|0)P&X=zd5}{repK6+ElNWc*4}RZw)nu>NI$; zRN^TtGcH(HX|-4`utK5^D-E*kb*)Cdz#56QXdw8^kd3I#ZH(GlwGbKwo|bq9>y2D{ zyAn1dY%-46OUhJ!W|PFT$RmhEZ+kQziKz&qMWPkY5zK@)^!G;NorYqaT@l6>iLH2^ zkjaADL?YG^iEoU=1~>~YY>SF*XcK6c=)iU(u2ea~*dY-`mvKSSwHUeu;-)ZR{Hpks zT@t8rL8ZqIW_cUZ z-Us@lF@H^OZ)B(;+SgxAaI{Tz!IHQ7SolkTcMcQ^?=SPo&y<+j z%f>*L(&ATmH^o2(Ugcd*D&RG|&L_efI0CC_Y`w$O%~wO$AezVETz3s>bNLu#=o&Jc zE5Vhsq7(CsPY5KdE$Zuf{3ycPr9Uyr%G7A0C2dp?b7{GLpnG z-Il_WgcNEBrot+AkU>G0o^cb~r!0b*dS=>1lSzYTu z&oqZuA+PzSN^{UPf*h0Ed=(M%kYOG=uVQD=m9z$&x~jWI(X;8WMk5nTJkFEI@CCJs zQS|HDMW3#wWr9Y=@0oWam=Uy1GBRk_ZMuCFL%Qt-yXE>O&H5g^;k(GqoJK)v!XVX9 zC`~s}D{bK);-IC}js1MzMM-90gW23~QOK@kj+3io#AT+Bc0BWnS)xsS%qAz z!E7`lkC7ptkzfwmQGht7JH*-tP>he+Vi=|Pf^jc}3S7rr{KOM=8}o1%^Lc_6kje-+ z9g8SGi2xNclKB{L7oeIJb1Q<}iKR?y@D#0vP9Z)w!9!hG&T-dJ9JMrv73nEF&!OH% z3*JN(GC71Rcne2)HdE-s+jxg(^*VZR49DR@Cw_*36VTXR!Mk{mQ%$zw54?{L;N(1h z$4Q)Gv?-?oe8`FdGif0{;*4x4qEdWlxIQ^Iq6`85lNku|}6a0na{I4>XsQ~{3}2^a1@ zW(yQ$jKf7NqWh>6@GIkJ6$lGh1S*}<`8O;RoVWI0F4)?%1Y8qbB%8p%qi2AX0)rD= z6#KtT2f;Rjj=x~371;0OL1ADZ&JDQ0%YutspGlCo%ng`?iSL+x&&$U7hcL>Vn&y~s GJN^OP*@V&n literal 4562 zcmbtX>vt4q8UMYxy}PrM3xPlfO1XvRQpiHlS~fuCmJ$gBSqg=UI@t`#z-DKinI!>l zwXN1`OV!r47Pa+~TC28I11VbSt!lj=Klsfr9{&J8)^pnUduL{o*?^m#V{&%poq3=8 z^Lw7>o!8%b`4s@$@mCEssFkSGQI7_Jmeb~0Go3dJBk94R(^k$GXxL^KY=4J9ZD-d} ziG;x7fT-l#`SecLHO~#$p07bFIVpi zB5vD-kzOUdMWEYpN781|%#B*G4cW1MG#~k;}kmH=u(2Q0k zak0P+kwof^>7>vU+OSk&nT{J^2(-@=?|CudWx)d4h~;NTEz94@2;AJ+-!)K;FQDvA zVFhlKSgGSCtP)tWAcsK0_AS@+9ams!XIB`LAg=ws;u|Bm#2O z^bT4Rw3I12p*T8pbfQb3t`NLlQkES{Y_G&E0;{SSdDt0Gp&J`@^dK#eWK8(#U}-E+ z)Stp;sxDX1Gg^0nC3Z~5-8g=2omCXV zd{s+xN|x2>{gn}mrWiJXpMP;_U`8B1Fe=2$V$9%Q;~KIy)^Gj0y$t-TXDD}N|>*S=XG z-JTt{{hUg+>MZSH<7#K)YWKYM*|ycL;CAF(k-}^4>DMrVQ3+eeX`CV0tHmIO(^OO* zp`6YIB45_nt6>ZU2}eg!L9l8AEHkkd9e3C+n0aNZtHVgFEw*( zm*eCuvk>h~;GD#H9UsO=Dw;t=MGY#I*5E1C`cA~*A5qZo5qwO?$8m3{nvG}3as%-} z1KOkEKHM+yfKu|wirKZtDKS^7u=d0yhp#DE;()}bD_Fw1R~7qN9iPMJse+?R;P&{a ziYoKkT8(Roh}67$NXNr!tk&o9j%P_cQXZZ`BR(?fhM>}L0bkPbWjrd-$Yzr*6^pLr zc^2DFd9YP-1k>^>Woc^Y4Ju?7Rez9pLSXq^J2_k``1V+U++bhB>*;7}THawfZ}YpdtzWt~52d#t5_wF7^SS- zMg%$*WC+kp1BA_AKMz+#0DFgk5%Z;DhLE_HL_AMa70$s-%EWkdG-6t-l9x|9i$<0}Z zOn6vL#1&y`zFFHpI7u8$tb505N`;+Cf{d z3&-nlE86uH+B`o_R)(pfI~t>#jc`PK?Rg_ErHZLaaAVdtb7u&>$o-ZBmOttYbF!IZ z77w4yZZd0+6imP5GCvP5T#j+&b1qa1%KznnmJM*BJ~G%OuQQ%|RC6HmqV{*x_H1^i zorQwq2gfLS*d0LLE2{60Q_68wK538cTaHg?q<1@GMW?_aPZ@C^Yc;H9nGSX<6 z#&Us7!bnVGwct2NsnyK_ucAAXG?LTUAn+u1Y?#I-(rJbk(xFSO0=g}klp&3zk($Cg zr*V4?rm;<63cHR?&irk1=GiOgqfPrVTJ3GAwiE@inLUFiHngRtF;GKATQa)HG*W_I zmXK*O>Zfr?P}C9TrD+-`Xm+#F{2KaS!Uv7!DV&-@zUMi{Arr)cLEzosZykS|6vc-! zjgwfeR{mv-tA|GQ@X^co1hr{~Y@@}WdKC{EjZ^r{u?JFOa%O0wp#_$|^>3qY3SXFn z!MKGhJ=0*+8x2$VqEUZ!63r^Mj|Z`R^6JJHsJ~V07g<~ocZn0?B>kVMM$8P|BJB_OVGh{`z9>KAeP}ctslp7Jj8FqM{pxY{7txsRrntHE)zCauol0g zcmLq$-9LGdN-+AZ=n$*WDZ2Q9*2^!+o!BV$p+~4Mh%D`~v6&X6MS;niz^ws_o~I4t z)c0+C2PsOvKUnFMe=jESEE=iB#dq->nyBj}^*slMub?6aI988!z&8gTwNs| zY8W{eKPPW3e!-Y^lRnh?OY(%n!#2iC7zOaP-3%$l+YyF zBvu6LHNczbkm#0J^B<&Z-b6~GPt5Qb*;0ioVCWMPTO?{EwoB3@sV8R`P73&++Cn~H zhM}sTM+e*~aY5}g%-i8>P}haT8>rbO@mLDKrE|#|MhlD+m?zalUT1WEAFTd>Kk}|R W#-DiqGk5cc1_lQ6jU2y40X|O#rvLx| delta 17 YcmZqHY1ZL5^>5cc1_lP(jU2y40X}U8tpET3 diff --git a/target/classes/com/example/parser/ParserApp.class b/target/classes/com/example/parser/ParserApp.class index 1e71c4baecbd911d7e2fcb92b285b9579fe55466..0399618824c84f34cc45b9b99e5478463d169f1e 100644 GIT binary patch delta 826 zcmZ{h$xqW!5XV2S3$LY(#UjX-$RemfK#hut(Ev(f4B|nJ;1VfPytI@Qgd$>HaY03W zu60L^XWFDxn`k_l_!symc=l#u#QBv(J?J~ko0<2W@631Jw-QsD|M};;_dpA;=kjav zRGn$Fmz#CE%*?8CGpc=kE`}8~1EI)Rpf42ch#d=tb_a%rg3*pxAUqTb?g)$onqr~h zn2Qq%U)Xxu6P(gadO1y8k(;UVFMzbk z@$ZZ58jcKhMf!t^?dGGsP^~dxTV?5>WSZNe(ZIO%CUko^>*XBh&5W+{Tx3df$;)M~ zn5;gS7sf6PO|k2XDRwuhgz0e4syy@6T^Xm$nj8vBIK*LDlO2VVJh3+?IiN#pR; zXlvYU_)L?hHr`7WQL33@rHot4OX`?sRZd2|j9S2E?s88Ab&8PtJjhAQ@Q{SC^wP~E z9!u_tL>qA}umPLqsg?#x)4qTQ`(i9nF6I1=YS-*^|DZz0Ilh)>QtMPg2`--hUUW=$ zW}P-m;F$#4@dk%IMUP)+xR9beOQS61YKqz{>&2T+QI#bu-nA5cSti80o?`URCzS~~ nED=>pDZx*51BEoQj7=2fBsj5oTa`3^AvhbevX8~DeFeV&;RLv> delta 813 zcmbV~%TH5L5XOJEuS0t))QUW8V!(<)Z9-HcD$!UC3rr0Q;{wp=Ef&(Ifut>H6~Xrl z-$z9eUkGt$0!=EhiN=+QJ9oyle}Q|&X*Ej1&YR4fnJ@F5eBYd_YrofcKK*?A4%o@` ztS9IiU7oOptfr*Z-`CXMpNaLwQU+?sN)E<4dJU=?+t){yOthM$$tVWB3~}6`yfiVG zi6@&P@pQ((HXz)Q#zoAIXd>2=X40GCGoetXry4|(P z*sed=Yd8EGT+9roQdYKTLg*cgdO5>c{aV$V=eeM`=;acZ^;gwpWc7}+FXcT+E1ixE zSjUQMtJYzoT35I?8RI(ao-&;Jo4c;kS3@_4WaD-WoVX;9={ir3YpBh$(!%9LyR+eNsv3YmP@5=Mi{0pY!EWXK0_yxeM#FYR5 diff --git a/target/test-classes/com/example/parser/FlowableExcelParserTest.class b/target/test-classes/com/example/parser/FlowableExcelParserTest.class index d54342b1241d5c142441fdb5ea7be1c3b4338eff..8249fde79eb3baa9ddcfe7d019d2decf5aa81157 100644 GIT binary patch literal 6316 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 literal 8675 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 diff --git a/target/test-classes/com/example/parser/FlowableJsonParserTest.class b/target/test-classes/com/example/parser/FlowableJsonParserTest.class index 0edff27d4d32eb127c3410ec2e9ba297318a2b37..e261e48bae535f4f249cc6dda1af5873ea19b30a 100644 GIT binary patch delta 17 ZcmX>kc}SAu)W2Q(7#JALH*)Oa0RTg42DJbH delta 17 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 E093$TIRF3v literal 10167 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 literal 10251 zcmeHN1y@{KvTiJBa0?JDKycUK8r&fSg3~xO?%FuPf+dXwcY?cna1HJdENF0lo!pss z=Q8)bKQME8t+Urz>wLAk>eN?NyJ{=T!NKDKo&b;l000Fb!8CC{1_l5CBLDz603=u) zagePO(AG&`-Q5o8sLSkTV@;k34@;X4fQ7#Q-|Iiv0>$woitDVHJ%FM698(9js@*b3 zK1x8?RFHeo{gVDvZy{x{L3^)Xi8e*S#Ow&!#EphnA=NA8B9Bd{OfCp1Vmb{CTE#@S z0ARo>?FYOmjN|0%xIPveBLlQ|C;1ts6OMZ;V~)<{@gr8T5ozkqHA1`|)hMbzhXJSs zJ}BpLa(BC<(k6W3&2moUgt8zfLf3nnBO=!q1%1Ot&Zv-5Lrk>h(`&xXZt;lsrj1{p z^v^gCr$=tu$Dnb>vx9R;KOip0S3heD;yGZt|IWHoL2~fSq)8uZslEMYtIEf%3#{-# zbn&%>*K@9O@3)z^NZIH3hsU3JB3|Y<2Xy-Jm^H_LO^ZAF(m15Qdyc`bWiZ;h3UjBi zy+$DNq;NWDnGi!l(IfpdpNwlM*-5SZ{klz5n2D*$?E^#W(;&76Man?PbDtrV&7oSy zh;@lda~`)J?4o8YP#=7FfCDK1g~)8r!-goKL|%gO6ctKjeFvbmBMbAd`+o`iAI#c+ zQN1{JOcss}Q*s&MfnuYXe_lf(d%h)9SsAl{j8(z3HbaJnN@c#4rvzU&Uvjk9!mC^DAtyDofG-!t6%o^nzUVyLx)uxX=8pgP zu=X^H-Et5q{6(Y~qX}Cw`+F^eJ-S-eN)N_qi_(0Q>cDl8Aq{I6k+@913Gbj>Dh z2XliPo++aA8_DJ(og-_%i+vs|Kw@|3T3vs5i92?Af#q$mSm9y6aq@x53rvQqe`U?s zWdDu@GM%Tz{16w!4QZnB_An&u@JD*m>Tr$zca+ksvB*w@0|1VosS*QfM>lI0SCE61 z5eQ`UD=!vn=z_9%alQ2|?%~!_=V-jB@^@&xEE+9eYb05?ex@goH$?eVtq@n3^dK}% zmA!9L-S5Ip$z4+#J<@#f&hgrPVzLJZr($h?f$HT9r&jWDlO@^a=Cp>Tf`T~x+-B7# zQ*!c%eA4F;p*xp`&9&pSlh<$nZ9X2koCW{|B%wItXP|3wPy+aUFg;;7A{BqTIkQ}k zy4nk3V+^h;%ONH)@~HL|NfjXD=G)~mO&d}8q5|0KisDy%nOw7Mc2Du5z0H74JAk#8 zLWVN|za*(Rge?pvg432KwLD#1+_0n=_weGz(J$M_+f@`2keS^x6ahpwGGv!ZtdtwN zNZcW8yy$(RU_p&nA)cBYH{=YU=JG|v(0VXGe(R&(dlu8 zL75AQLIaOl?|_zl(Q(`;z$*D~WC@RaNcBZ3zU<&+qr=A@(%-z>GIf|Xr6hM{QR6?( zf+TB2CG%$qEcYdb^Sb zEtL^5>lpByO7Y`<}%Gl=}L2* zrgx)kVsoS2MMh+XXCi|FE_MMLTOk~F4-CBsZ8Mj% zPNhbGLzvl`e$)8I^22(bL6T5tzEJ>d=K?4PZB99a!d`Hew;<&(#(2kSHcQAz!67ae zV|;{*TzCREMAct7zLq>ZBYOD3sfXiIa;? zX2lJLp~j!EL@I1-HOgLmkK+{ER{6#pxwbD@qXuXTQ)=7=*;BzQhHlg zM&~dD%=S`ew4>Y9kF=Gu$8z=fo9!oJ#!wI3ov0iccA$2CS{hPNbBJM*luUlag2nb7 zvQY*O>5Xd%(Lzw}cR^mJJr^E{@og9^t8a9^BpLDMZv{Xe#@!9#%ZO>HGU)ixxFdV2 zrX;Ne*$GuWke*&?)4Vj${>W?!vOD$Sbt`J8qv@(f5Q3L@&Y@M9(wE}Xr-{ut+|3;w zhZWt5->C26G%78B@|9#V_PKKooV?{Mt&lm5p^mfczUs70y2}}mEU^m;U@*#{+j*(y z<(_U`Pk3@7*S>UjA>X9s8-kvVSlmvBeEg2M@+r<|ds<{wmn?6h^{b)SYP&M_MUch~ zK1|(HOY^QTCoHB9c$2wjysspQDG(*Si`!(-$ieHJ={Y-PWKGy59a0^)q2e-Qm-pZZ zv$shm0;z$|ozXJZ%)ZOSedcl#wyGf9>Q6n9(kCLeiRiwE27reL=vRJth)-;{3=qK- z@s&KE1b5}jXm=qUNaf^Ig=~)MU}a@1k7vf_`Y!8o^*}64nu9imw0{DbmZ%S*;t$K^VX4Eyemo{#zVvc<~l@pa;n zaGA_GE0k`+-uNN2+#d5nEdm0|tfoDy6ILd{Q5JSvQ?)2u!7(qC)Ku*uvZn=gB4RJ^ z86f+yj3g#-KNpdI;_)+o#+EKghbK~k57qQ>M7ywn9DY*S>`s#WLeTfTKxjj|>_?XU zck=}w&aY<0YP2rRbqpr@EL}i~F#_yuG^$rY*wbHK*D zv87$$L+ukT2dx5K=n;~{GO;`~`9cxs-{7dz;}=R~@=_laWW%>u1K0|&Z$i1mM)I)r zk%%%k(_Z&fRPQNC5sXG3?vWTVAKvM8yx%X+ zU{o&-sDJ zYJ%>Dv`l=k-msmBY9j+K49eD|oIk9^n4JHT2W|KhbH69`8_{eAFBBd^1stT3R>Q-a z??qybTv<3K4+ZZxn|phCq8%^diauqaQc``FnMOUhB&F<&7_q3>^H8E$mz@_^T{Ve% zrX)SBgR|r9aJU|Qum*?s;S+g`(gw_d#|PCN(Q0}#)`;)V(_-O$bnLK<5o(RzrlNWw zdl+jz^=^F|$)+F>zd|@Eq|LY;kshYGvp7#n##W~gKMBV{GhAh9Bty7&D=>;wp9n`Y zieRdXu?aaDK(1FMHPWKL%=mG&Ia0LLsMC#DkE!NqBIjUy@^Roh?8(XKAYJ0be)c`B z^>jdq51fG|0gvU6hY}&Uw#sJ$7Ckw|9Oj&NE}x9$()Y$Q8YfUJxm&VZYdZP1Id2RX z$3Y^H`|AUaDE=(N&JJSbV9?%*r_apcBx4f{@NyHqMQFFW<3kWndg$1O7r~-+_52V? za}Xmhzf%YQQ0_9(<`FEySXm^qU^n=srG9buhA}<8A_$vUci`o3pBS$r?=$@E`UUBIU$uHq2kgeiWd_82sF6EQ|f7KVf;%g9s8 zGa-}s+lK6Z2xnaBBjOIe_At{0vDv|k4|G*qof=ubL2KZ_-!%q-BAR0Z93hs>GX1| z(s~?>y9e^Iya>7V!d&HbcF2`c@A07@p^#vE^}QcKc=H@(>|zBmWzYFSO_tHMRR~MK zAO20QI(+CokeZ~WNvW=xblTcKjA7tZ!WuZ8mOi|_U7DzAPKMQSM4g5MPV?F|7~LuW zo`6pSkSh8q>=CBmta}SvltKg9Wv00r>3)XFGMJ2fjXhj-Y-&k#o8k>CpUJy|Z?X+K zP;WDGQg-Vy-2$#42mQoY>$Zr0jqMZ<_N-F+VG&r;EVnG@+Vmypdn?ad<1*&Yi%z;= zwEA*1s&k&2A$SfeFr@*_r_2{`8W6As?t(&>-bBvy)76#{*sMOGjVShbncMdx{4)+C zeCw^dL=bAy zJb1Gv-M$&@9RtqIH%xD$(-zD<#yQ--VWc%SvmE;RfwP1Rxs>aK4J|1x-a_8?#?J!& z`z1CbhmD(Xhb09_SaDnuVK+FQ z`)E0lFwSY;^=RU%loNkWJ`^=15&2v;G*}+SV%8(p*oIrPE0uSnRcS^iD5XQ6PIdjglE09!5HmW2- zAu2f!IjUBqoOXbd>xY1;x3Q<(klqiAbELR5Bb-LAvMW-!W&2!oSR;q9a8Os^J#ZIL z&M7TOk)pyUJV>s6O4>>?wAYAs;>jmPl5b?kHaLdRsci{@5|l23z~xz7$a4O6R5 zRFdaBi;-j-l^mlNYmx&eutAMy0SjmO-}t+7%Q*c(=)(hM^Iq3zvAvjzSZ^5l_f3%( zAmi+Ucs;dhLi$@Dl4mq%FKo}C<%-IELf?b-IuOs!mF}a`MwJs8B>{d7ETkv>P%a)GiBVvn&F?dJiIR`yj$Vf^b$w zfKDG^I9fc}X;?XK`^_UkbcQ5YaHcAGeQArdfpsNam?WwMR3e#p|XXTuYeh=%~|{v+8{K`gig1IMHLFR_v@oTev4r0Dz}|Bzi|DcWa>I zuN_9V#xf|G71QT))kFJQDiN)T47|F6TDGh%S3zpk8$@}dZ^AKbbhA|t-e%;1`4bJ! zEbT2P-uDMBC)6#L2(LX0t#VD)E(y{C@&`5AH@NLvgn$PNqSX`?l`gGrLS*7!+hw=E>XbSKK)mk>V7i z%W$uj{g5(0C-)B}j+cvS>8d=m5ZW3I!(Q~KuWaI zC>nnUVAcfoIb0_lz_PIRDM|a?3Q-An=-DND7A=S28Yx^1_HSjETT9T$M>>3yhI5Fb zne;qBVI3AjJS$wthuz)q-{y@x#!TtSiB&_RrNDK#V*K`gu($}ZCU3m%KI%L$fVzyZ zeogiT+*3eZOSLqmx$jy7d!ZDDgw>gmAT?G5nTI~X0@tve7Hdqo@i+YdenreKUa|>P zazQI;<865H>Oq5m;IoMgSaj^9nvk90W_ypKzIKdE8NdOv{Cea#f&pFMpUA=$*Q^MCDcN=KhmzR9d04U+!IDqUGE;=-LQYErI&BBS434O5&NcZP10{li z(bFKtd)$)Vw6-~;JAOvX0jvi`kL}D_^T^{+bv$7KP9t&WsmQ<#(N|M#j;axrsu402 z^Ri(l1_69c?f!&woDsw{zG_d}80XXs8<}}rxSgoUK>nHdRa8%Tl(IPN6@QFW8AKxW zsOit>LC`6o&z?oC!j;Y9I*$6C^L{LroN_5-wM9zr&usAP96?;JopMC=@6D@SvW`rv z^~_LNj%lRkCDeDZ99RQ%bOZWYwSCKD5fugJ`m>RG@L*XLJh$+{jb z#KT_~Qb(9y@Vvh@5JY`btAejk_xdo!nDqS4hf@3J*f^^wU)<}GC=`Vfa%}5|7?_kAzveH;~h`HI4 z>q4L+LrK4fQ-^^$SN@bUZVnQ9bFOntS>1aT{6I!n+1jhPXtxscwZrnQpID*l^ZfE7 z&-<$dKci#y8)hu+OYz|58!bXp730JiF^2KOs?EagZFh)Aw!Nc__$hmocvd~x==1`m z?4HwGT&w5a6;BZL4t9_E4#@tl;Vjm%kk|oLv>&Q4<{t_h8(JHSn;Tl#{^I|;F*y{dvVN=0 zE6+RjxXzfyCxg1)iC|!kmosgs#FBe>zR3S-4SN;riPOm;% z?YR-X*yTP8oqgL=u*prGL-iDg>iZ13nt+TIfKG-chE9eo z@`gr0YZ+Tp&@aW+M}Ie^5JvUcmiUJ|AyneA{s$-%8m%HO8&U1i6q+H4iTV8;jd^?M?=2 zC@W}oz=F0ip~g~n0NFXR7=s*uzl;PO^ZmDj2{m0rtgccgIbqPD!Y#(r3#KaPS2FY6 z(Tr?kU0pN~wT>bD^51#^CjTc<(>{tGH zf;W*L2Cquq8V_Ca>%b`@@%3Vp;0&@Yz=#WCkCD<{hE9^@9>9Q&^F_f9_`NC-t9J!6 z#jrz6^m+nm2sl$)oev-CmL;E~ZwPh!hJFMJWCe~^I*ADY!qLdQqt{UX&i^{}-Xi@v zDMAcwrDOi9{~6lZ{n!1Ve)o?nB~}46&x#g&2zO0}wn)rpqk`sNY$W~Ww9E)5*2PRQ z*EpksDzx~+-n3H9*yOCsTqGHbo=|4~0eUKfhrCHZX_tdaIBYX=_1TTAz#%EK@OvMmeWeyjeld zJrdsl-5HMCwyla;*87y@ql(fVrmN6RSF%1XvY8r`v~+D3!wi>BDotgJWUQ_sN1T!5 zGqsSSy`tV?PvEOHUyA*n#hj3mXKB^8`YL+#DX$o{Fv>2Lq1N&fYswN2y)$#(Z17%b zQyYWIEqn(|F}5HTY8uB1d2%e9%Lm>aGKyx^_g}M3@a4PNQmnSho5u!JVgejj4Osm* zdid6cE5xsttjUjsLq9sMeK1^0wX1l1eI6fs>IzZuhY;SR@sf!{KwkqwYwxx0iK{Vhz{j1bv!5<1dLOU!&A6zAzi2-| zE9gI>C=4tUw0`*e6HovAYX4mS=KPbg++PL!^`yl=fxp&1C^i1&+{I(y<9YI*P!ecs z@6mMmG5D{OtUsXuz%t5j@c%K_dMxMhG~-W6FQEI4|7*7KSjyvmQ6?`B=c? zea@c(VxW}(^l$vR>v;@)To(QbO(FRM`nX7ZEa7pT^{0f$=f5TVrRsW&eq6QuiS{P_ ze`=V=V*Z-X{}ciM6he!`f6MNV;eQRs{|cvv_K5!%{*U0SEQbK40|0;q{UQ81(m?g= G>3;x-*x1Sd diff --git a/target/test-classes/flowableExcelParserTestData3.xlsx b/target/test-classes/flowableExcelParserTestData3.xlsx index 3209621287ace2a46e54d53c06e7ca0193687eb1..25a89296ca8b8de9e407fc169c43d8f3621b917e 100644 GIT binary patch literal 6736 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 CYHAw* literal 10219 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 XtSE~B4F>=K4f;cXdg%nsuYdmoX0*ln