From 1802b286bf2107a066117c6eac76c369f8e92fc7 Mon Sep 17 00:00:00 2001 From: Jake Jackson Date: Wed, 30 Sep 2026 18:59:39 +1000 Subject: [PATCH 1/2] Size each line to the line-height of the inline elements on it In cssMode standard an inline element's line-height gives the height of its box on the line, and the line box grows to hold the tallest, as line-stacking-strategy: inline-line-height describes. The block's strut stays on the line, so a smaller inline line-height does not shrink it. A percentage in vertical-align is taken of the element's own line-height. Legacy mode ignores an inline element's line-height, as before. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG-GRAVITYPDF.md | 2 + src/Mpdf.php | 36 +- tests/Mpdf/InlineLineHeightTest.php | 405 ++++++++++++++++++ ...ineLineHeightArticleLegacySnapshotTest.php | 23 + .../InlineLineHeightArticleSnapshot.php | 114 +++++ ...eLineHeightArticleStandardSnapshotTest.php | 23 + .../InlineLineHeightSnapshotTest.php | 112 +++++ .../inline-line-height-article-legacy.pdf | Bin 0 -> 54264 bytes .../inline-line-height-article-standard.pdf | Bin 0 -> 54268 bytes tests/data/snapshots/inline-line-height.pdf | Bin 0 -> 42659 bytes 10 files changed, 712 insertions(+), 3 deletions(-) create mode 100644 tests/Mpdf/InlineLineHeightTest.php create mode 100644 tests/Snapshots/InlineLineHeightArticleLegacySnapshotTest.php create mode 100644 tests/Snapshots/InlineLineHeightArticleSnapshot.php create mode 100644 tests/Snapshots/InlineLineHeightArticleStandardSnapshotTest.php create mode 100644 tests/Snapshots/InlineLineHeightSnapshotTest.php create mode 100644 tests/data/snapshots/inline-line-height-article-legacy.pdf create mode 100644 tests/data/snapshots/inline-line-height-article-standard.pdf create mode 100644 tests/data/snapshots/inline-line-height.pdf diff --git a/CHANGELOG-GRAVITYPDF.md b/CHANGELOG-GRAVITYPDF.md index 6ea0ce14b..917c62113 100644 --- a/CHANGELOG-GRAVITYPDF.md +++ b/CHANGELOG-GRAVITYPDF.md @@ -52,6 +52,7 @@ Read this section before upgrading from upstream mPDF. Each entry says what chan * `
` passes its alignment on to what it holds, and `
  • ` beats the marker the item inherits from its list. * Attributes mPDF ignored now take effect: `
    `, `
    `, `` (float left or right, or vertical alignment), ``, ``, and `` wider than 1. * A table's `border` gives each cell a 1px border of its own, which a rule for the table's border leaves alone. Before, the cells copied the table's border. +* **`line-height` on an inline element sets the height of its line**, as in a browser. mPDF ignored it, so `` left its line as it was. Now each inline element's box is as tall as its line-height, and a line grows to hold the tallest box on it, text or image, in blocks and table cells alike. The block's own line height is the least a line can be, so a smaller inline line-height, or `0`, does not shrink it. A percentage in `vertical-align` is taken of the element's own line-height. `line-height` on a `

    ` or `

    ` inside a table cell, which mPDF lays out as inline content, can now make its lines taller than the cell's. Set `'cssMode' => \Mpdf\CssMode::LEGACY` to ignore it as before. [#548] New features ------------ @@ -857,6 +858,7 @@ These changes do not change output. [#629]: https://github.com/GravityPDF/mpdf/pull/629 [#631]: https://github.com/GravityPDF/mpdf/pull/631 [#632]: https://github.com/GravityPDF/mpdf/issues/632 +[#548]: https://github.com/GravityPDF/mpdf/issues/548 [#633]: https://github.com/GravityPDF/mpdf/pull/633 [#634]: https://github.com/GravityPDF/mpdf/pull/634 [#635]: https://github.com/GravityPDF/mpdf/pull/635 diff --git a/src/Mpdf.php b/src/Mpdf.php index 997bf2d5b..bd02ee8e4 100644 --- a/src/Mpdf.php +++ b/src/Mpdf.php @@ -12447,6 +12447,10 @@ function _setInlineBlockHeights(&$lineBox, &$stackHeight, &$content, &$font, $is // for images / inline objects / replaced elements $mta = 0; // Maximum top-aligned $mba = 0; // Maximum bottom-aligned + // Whether the line box holds the extended heights, which include line-height, of the inline elements on it + $inlineStacking = !in_array($line_stacking_strategy, ['block-line-height', 'grid-height', 'max-height'], true); + // Whether an inline element with its own line-height (cssMode standard) is on the line + $elementLineheightOnLine = false; foreach ($content as $k => $chunk) { if (isset($this->objectbuffer[$k]) && $this->objectbuffer[$k]['type'] == 'listmarker') { $ypos[$k] = $ypos[-1]; @@ -12475,6 +12479,14 @@ function _setInlineBlockHeights(&$lineBox, &$stackHeight, &$content, &$font, $is $oh = $this->objectbuffer[$k]['OUTER-HEIGHT']; $va = $this->objectbuffer[$k]['vertical-align']; + // An image in an inline element with its own line-height: the element's box is on the line as well + if (isset($font[$k]['textparam']['line-height']) && $inlineStacking) { + $elementLineheightOnLine = true; + $elementYpos = $this->_setLineYpos($font[$k]['size'], $font[$k]['curr']['desc'], $font[$k]['textparam']['line-height']); + $topy = max($topy, $elementYpos['exttop']); + $bottomy = min($bottomy, $elementYpos['extbottom']); + } + if ($va == 'BS') { // (BASELINE default) if ($oh > $topy) { $topy = $oh; @@ -12510,8 +12522,13 @@ function _setInlineBlockHeights(&$lineBox, &$stackHeight, &$content, &$font, $is // FOR FLOWING BLOCK $fontsize = $font[$k]['size']; $fontdesc = $font[$k]['curr']['desc']; - // In future could set CSS line-height from inline elements; for now, use block level: - $ypos[$k] = $this->_setLineYpos($fontsize, $fontdesc, $CSSlineheight, $ypos[-1]); + if (isset($font[$k]['textparam']['line-height'])) { + // An inline element's own line-height + $elementLineheightOnLine = true; + $ypos[$k] = $this->_setLineYpos($fontsize, $fontdesc, $font[$k]['textparam']['line-height']); + } else { + $ypos[$k] = $this->_setLineYpos($fontsize, $fontdesc, $CSSlineheight, $ypos[-1]); + } if (isset($font[$k]['textparam']['text-baseline']) && $font[$k]['textparam']['text-baseline'] != 0) { $ypos[$k]['baseline-shift'] = $font[$k]['textparam']['text-baseline']; @@ -12583,6 +12600,13 @@ function _setInlineBlockHeights(&$lineBox, &$stackHeight, &$content, &$font, $is } + // A line with an inline element's own line-height holds the block's strut as well, as CSS has it, so a + // line-height below the block's does not shrink the line + if ($elementLineheightOnLine && $inlineStacking) { + $topy = max($topy, $ypos[-1]['exttop']); + $bottomy = min($bottomy, $ypos[-1]['extbottom']); + } + // TOP or BOTTOM aligned images if ($mta > ($topy - $bottomy)) { if (($topy - $mta) < $bottomy) { @@ -19329,6 +19353,12 @@ function setCSS($arrayaux, $type = '', $tag = '') $this->SetFont($this->currentfontfamily, $this->currentfontstyle, 0, false); } + // In cssMode standard an inline element's line-height gives the height of its box on the line, and is read + // before vertical-align, whose percentages refer to it + if ($type == 'INLINE' && isset($arrayaux['LINE-HEIGHT']) && $this->cssMode === CssMode::STANDARD) { + $this->textparam['line-height'] = $this->fixLineheight($arrayaux['LINE-HEIGHT']); + } + foreach ($arrayaux as $k => $v) { if ($type != 'INLINE' && $tag != 'BODY' && $type != 'TABLECELL') { switch ($k) { @@ -19652,7 +19682,7 @@ function setCSS($arrayaux, $type = '', $tag = '') break; // mPDF 5.7.3 inline text-decoration parameters default: - $lh = $this->_computeLineheight($this->blk[$this->blklvl]['line_height']); + $lh = $this->_computeLineheight(isset($this->textparam['line-height']) ? $this->textparam['line-height'] : $this->blk[$this->blklvl]['line_height']); $sz = $this->sizeConverter->convert($v, $lh, $this->FontSize, false); $this->textvar = ($this->textvar & ~TextVars::FA_SUBSCRIPT); $this->textvar = ($this->textvar & ~TextVars::FA_SUPERSCRIPT); diff --git a/tests/Mpdf/InlineLineHeightTest.php b/tests/Mpdf/InlineLineHeightTest.php new file mode 100644 index 000000000..9ca48d86f --- /dev/null +++ b/tests/Mpdf/InlineLineHeightTest.php @@ -0,0 +1,405 @@ +assertOffsets($offsets, $this->offsets($html, CssMode::STANDARD)); + } + + /** + * @return array[] Documents with a line-height on an inline element, where their lines are drawn in cssMode + * standard, and, where taking the line-height out of the style attributes of span and b elements + * does not give it, the document without it + */ + public function providerLinePositions() + { + $pt = 1 / Mpdf::SCALE; + $image = ''; + + return [ + 'a length' => ['

    aa qq bb
    zz

    ', ['zz' => 30.0]], + 'a number' => ['

    aa qq bb
    zz

    ', ['zz' => 33 * $pt]], + 'a percentage' => ['

    aa qq bb
    zz

    ', ['zz' => 22 * $pt]], + 'an em length' => ['

    aa qq bb
    zz

    ', ['zz' => 22 * $pt]], + 'from a stylesheet rule' => [ + '

    aa qq
    zz

    ', + ['zz' => 30.0], + '

    aa qq
    zz

    ', + ], + 'in the font shorthand' => [ + '

    aa qq
    zz

    ', + ['zz' => 30.0], + '

    aa qq
    zz

    ', + ], + 'with line-stacking-strategy: inline-line-height' => [ + '

    aa qq
    zz

    ', + ['zz' => 30.0], + ], + 'taller than the block\'s line-height' => [ + '

    aa qq
    zz

    ', + ['zz' => 20.0], + ], + 'shorter than the block\'s line-height' => [ + '

    aa qq
    zz

    ', + ['zz' => 10.0], + ], + 'shorter, alone on its line' => [ + '

    aa
    zz

    ', + ['zz' => 10.0], + ], + 'zero, alone on its line' => [ + '

    aa
    zz

    ', + ['zz' => 10.0], + ], + 'inherited by an inline element inside' => [ + '

    aa qq
    zz

    ', + ['zz' => 30.0], + ], + 'overridden by an inline element inside' => [ + '

    aa
    qq
    zz

    ', + ['qq' => 30.0, 'zz' => 40.0], + ], + 'a number inherited as a number' => [ + '

    aa qq
    zz

    ', + ['zz' => 40 * $pt], + ], + 'a length inherited as a length' => [ + '

    aa qq
    zz

    ', + ['zz' => 22 * $pt], + ], + 'the tallest of mixed font sizes' => [ + '

    aa bb cc dd
    zz

    ', + ['zz' => 30.0], + ], + 'shorter than its own font\'s normal line height' => [ + '

    aa qq
    zz

    ', + ['zz' => 30 * $pt], + ], + 'around an image' => [ + '

    aa ' . $image . '
    zz

    ', + ['zz' => 30.0], + ], + 'in a table cell' => [ + '
    aa qq
    zz
    ', + ['zz' => 30.0], + ], + 'in a table cell with a smaller line-height' => [ + '
    aa qq
    zz
    ', + ['zz' => 30.0], + ], + 'shorter than the table cell\'s line-height' => [ + '
    aa
    zz
    ', + ['zz' => 10.0], + ], + 'in a nested table' => [ + '
    aa qq
    zz
    ', + ['zz' => 30.0], + ], + 'in a list item' => [ + '
    • aa qq
      zz
    ', + ['zz' => 30.0], + ], + 'in a positioned block' => [ + '
    aa qq
    zz
    ', + ['zz' => 30.0], + ], + 'after a forced page break' => [ + '

    first

    aa qq
    zz

    ', + ['zz' => 30.0], + ], + ]; + } + + /** + * A document is drawn as it is without the inline element's line-height: each document above in legacy mode, and + * near misses in both modes + * + * @dataProvider providerUnchanged + * + * @param string $html A document whose first line starts with "aa" + * @param string $mode + * @param string|null $without The document without the inline line-height, where withoutInlineLineHeight() does + * not give it + */ + public function testLinePositionsAreUnchanged($html, $mode, $without = null) + { + if ($without === null) { + $without = $this->withoutInlineLineHeight($html); + } + $this->assertNotSame($html, $without); + + $this->assertOffsets($this->offsets($without, $mode), $this->offsets($html, $mode)); + } + + /** + * @return array[] Documents where an inline element's line-height changes nothing, and the mode + */ + public function providerUnchanged() + { + $cases = []; + foreach ($this->providerLinePositions() as $name => $case) { + $cases[$name . ', ' . CssMode::LEGACY] = [$case[0], CssMode::LEGACY, isset($case[2]) ? $case[2] : null]; + } + + $documents = [ + 'the same as the block\'s' => '

    aa qq
    zz

    ', + 'block-line-height, which fixes the line at the block\'s' => '

    aa qq
    zz

    ', + 'max-height, which leaves out the leading of inline elements' => '

    aa qq
    zz

    ', + ]; + + foreach ($documents as $name => $html) { + foreach ([CssMode::STANDARD, CssMode::LEGACY] as $mode) { + $cases[$name . ', ' . $mode] = [$html, $mode]; + } + } + + return $cases; + } + + /** + * Only the line holding the inline element grows + */ + public function testOnlyTheLineItIsOn() + { + $html = '

    aa
    qq
    zz
    yy

    '; + $normal = $this->normalLineHeight(); + + $this->assertOffsets(['qq' => $normal, 'zz' => $normal + 30, 'yy' => 2 * $normal + 30], $this->offsets($html, CssMode::STANDARD)); + $this->assertOffsets(['qq' => $normal, 'zz' => 2 * $normal, 'yy' => 3 * $normal], $this->offsets($html, CssMode::LEGACY)); + } + + /** + * A percentage in vertical-align is of the inline element's own line-height, so 50% of 10mm raises it as 5mm does. + * In legacy mode it is of the block's line-height + */ + public function testVerticalAlignPercentageIsOfTheOwnLineHeight() + { + $percentage = '

    aa qq
    zz

    '; + $length = '

    aa qq
    zz

    '; + $ofTheBlock = '

    aa qq
    zz

    '; + + $this->assertOffsets($this->offsets($length, CssMode::STANDARD), $this->offsets($percentage, CssMode::STANDARD)); + $this->assertOffsets($this->offsets($ofTheBlock, CssMode::LEGACY), $this->offsets($percentage, CssMode::LEGACY)); + } + + /** + * A span with line-height: normal in a block with a smaller line-height makes its line as high as the font's + * normal line height. In legacy mode the line keeps the block's line-height + */ + public function testNormal() + { + $html = '

    aa qq
    zz

    '; + + $this->assertEqualsWithDelta($this->normalLineHeight(), $this->offsets($html, CssMode::STANDARD)['zz'], 0.001); + $this->assertOffsets( + $this->offsets('

    aa qq
    zz

    ', CssMode::LEGACY), + $this->offsets($html, CssMode::LEGACY) + ); + } + + /** + * A table row grows with a tall inline element in one of its cells, so what follows the table moves down by as + * much as the line did. In legacy mode it does not + */ + public function testTableRowHeight() + { + $tall = '
    aa qq
    zz
    cell

    after

    '; + $plain = '
    aa qq
    zz
    cell

    after

    '; + + $standardTall = $this->offsets($tall, CssMode::STANDARD); + $standardPlain = $this->offsets($plain, CssMode::STANDARD); + $this->assertEqualsWithDelta($standardTall['zz'] - $standardPlain['zz'], $standardTall['after'] - $standardPlain['after'], 0.001); + $this->assertGreaterThan(20, $standardTall['after'] - $standardPlain['after']); + + $this->assertOffsets($this->offsets($plain, CssMode::LEGACY), $this->offsets($tall, CssMode::LEGACY)); + } + + /** + * A line-height on a paragraph in a table cell, which mPDF lays out as inline content, gives that paragraph's lines + * their height in standard mode. Legacy mode ignores it + */ + public function testParagraphInATableCell() + { + $html = '

    aa
    zz

    '; + + $this->assertEqualsWithDelta(10.0, $this->offsets($html, CssMode::STANDARD)['zz'], 0.001); + $this->assertOffsets( + $this->offsets('

    aa
    zz

    ', CssMode::LEGACY), + $this->offsets($html, CssMode::LEGACY) + ); + } + + /** + * A block inside an inline element with a line-height keeps its own line-height + */ + public function testBlockInsideAnInlineElement() + { + $html = 'aa
    qq
    zz
    '; + + $this->assertOffsets(['qq' => 30.0, 'zz' => 35.0], $this->offsets($html, CssMode::STANDARD)); + } + + /** + * In justified text only the line holding the inline element grows, and the lines are still spread to the full + * width + */ + public function testJustifiedText() + { + $words = implode(' ', array_fill(0, 12, 'lorem ipsum')); + $html = '

    ' . $words . ' qq ' . $words . '

    '; + + $mpdf = $this->draw($html, CssMode::STANDARD); + $standard = $this->lineTops($mpdf); + $legacy = $this->lineTops($this->draw($html, CssMode::LEGACY)); + + $this->assertGreaterThan(2, count($standard)); + $this->assertCount(count($legacy), $standard); + $normal = $this->normalLineHeight(); + $qqLine = array_search(round($this->keyedByText($mpdf, $mpdf->drawnY)['qq'], 3), $standard, true); + $this->assertGreaterThan(0, $qqLine); + for ($i = 1; $i < count($standard); $i++) { + $this->assertEqualsWithDelta($normal, $legacy[$i] - $legacy[$i - 1], 0.001); + $this->assertEqualsWithDelta($i - 1 === $qqLine ? 20 : $normal, $standard[$i] - $standard[$i - 1], 0.001, 'Line ' . $i); + } + + $right = []; + foreach ($mpdf->drawnBoxes as $box) { + $top = (string) round($box[3], 3); + $right[$top] = isset($right[$top]) ? max($right[$top], $box[2]) : $box[2]; + } + array_pop($right); // The last line of justified text is not spread + $this->assertEqualsWithDelta(max($right), min($right), 0.01); + } + + /** + * A block kept together with page-break-inside: avoid is laid out again on the next page, with the same line + * heights + */ + public function testBlockThatUnwinds() + { + $html = '
    ' + . '
    aa qq
    zz
    yy
    '; + + $mpdf = $this->draw($html, CssMode::STANDARD); + $pages = $this->keyedByText($mpdf, array_column($mpdf->drawnBoxes, 0)); + + $this->assertSame(2, $pages['aa']); + $this->assertSame(2, $pages['yy']); + $this->assertOffsets(['zz' => 30.0, 'yy' => 30 + $this->normalLineHeight()], $this->offsetsOf($mpdf)); + } + + /** + * Each pair of offsets is equal + * + * @param float[] $expected + * @param float[] $actual + */ + private function assertOffsets(array $expected, array $actual) + { + foreach ($expected as $text => $offset) { + $this->assertArrayHasKey($text, $actual, sprintf('"%s" is not drawn', $text)); + $this->assertEqualsWithDelta($offset, $actual[$text], 0.001, sprintf('"%s" is drawn at the wrong height', $text)); + } + } + + /** + * @param string $html + * @param string $mode A CssMode value + * + * @return TextRecordingMpdf The document, written, with paragraphs that have no margins + */ + private function draw($html, $mode) + { + $mpdf = new TextRecordingMpdf(['cssMode' => $mode]); + $mpdf->WriteHTML('' . $html); + + return $mpdf; + } + + /** + * @param string $html A document whose first line starts with "aa" + * @param string $mode A CssMode value + * + * @return float[] Each piece of text drawn, trimmed, and how far the top of its line is below the top of the line + * "aa" is on, in mm. A piece laid out twice, as a block that unwinds is, counts where it was drawn + * last + */ + private function offsets($html, $mode) + { + return $this->offsetsOf($this->draw($html, $mode)); + } + + /** + * @param TextRecordingMpdf $mpdf A document, written, whose first line starts with "aa" + * + * @return float[] As offsets() gives them + */ + private function offsetsOf(TextRecordingMpdf $mpdf) + { + $tops = $this->keyedByText($mpdf, $mpdf->drawnY); + + return array_map(function ($top) use ($tops) { + return $top - $tops['aa']; + }, $tops); + } + + /** + * @param TextRecordingMpdf $mpdf A document, written + * + * @return float[] The top of each line drawn, rounded, in order + */ + private function lineTops(TextRecordingMpdf $mpdf) + { + return array_values(array_unique(array_map(function ($top) { + return round($top, 3); + }, $mpdf->drawnY))); + } + + /** + * @param string $html + * + * @return string The document with the line-height taken out of the style of each span and b element + */ + private function withoutInlineLineHeight($html) + { + return preg_replace('/(<(?:span|b)\b[^>]*?)line-height:\s*[^;"]+;?\s*/', '$1', $html); + } + + /** + * @return float The normal line height of the 11pt text, in mm + */ + private function normalLineHeight() + { + static $height = null; + if ($height === null) { + $height = $this->offsets('

    aa
    zz

    ', CssMode::STANDARD)['zz']; + } + + return $height; + } + +} diff --git a/tests/Snapshots/InlineLineHeightArticleLegacySnapshotTest.php b/tests/Snapshots/InlineLineHeightArticleLegacySnapshotTest.php new file mode 100644 index 000000000..42394e2e2 --- /dev/null +++ b/tests/Snapshots/InlineLineHeightArticleLegacySnapshotTest.php @@ -0,0 +1,23 @@ +mode(); + } + + /** + * The article, each part under a caption saying what standard and legacy mode draw + */ + public function generatePdf() + { + ob_start(); + ?> + + +

    Spring newsletter

    +

    Written with cssMode set to mode(); ?>.

    + +

    Drop cap

    +

    The red capital is 30pt with line-height: 1. Standard: the first line is 30pt high, so the blue background fits snugly over the capital. Legacy: the first line is as high as the capital's normal line, leaving a gap below it.

    +

    Welcome to the spring issue. This season we look at gardens, a new delivery service, and the results of the reader survey, which drew more replies than ever.

    + +

    Footnote marks

    +

    The green footnote marks are raised, with line-height: 0 so that they do not push the lines apart. Standard: the two lines of the paragraph are as far apart as the two lines after it. Legacy: the first line, which holds the marks, is taller.

    +

    Survey replies rose by a third1 on last year, and most readers2 asked for more recipes and fewer
    onions. The full figures are on the website, with the method used.
    Thank you to everyone who took part.

    + +

    Badges and a pull quote

    +

    The dark badges have line-height: 1, below the paragraph's, so the lines holding them are no taller in either mode. The green quote has line-height: 2. Standard: its line is twice its 13pt font, 26pt high. Legacy: it is as high as the quote's normal line.

    +

    Filed under  GARDENS  and  SURVEY . One reader wrote: "the best issue yet", and we hope you agree.

    + +

    Plans

    +

    Each price is 16pt with line-height: 1.1. Standard: each item is 17.6pt high, so the list is tighter. Legacy: each item is the price's normal line height.

    +
      +
    • $9 a month for the weekly box
    • +
    • $15 a month with fruit
    • +
    • $24 a month for a family
    • +
    + +

    Your order

    +

    The quantities are 14pt with line-height: 12mm. Standard: each row with a quantity is 12mm plus its padding high, and the nested table of options sits in a taller row. Legacy: the rows are only as high as the 14pt text. The note under the table has line-height: 2 on its span, making its first line taller in standard mode only.

    + + + + + + + + + + + + + + + + +
    ItemOptionsQty
    Weekly box +
    SmallNo onions
    +
    2
    Fruit add-onSeasonal1
    +

    Deliveries arrive on Thursdays between 8am and noon.
    Change your order by Monday.

    + mpdf = $this->createMpdf(['cssMode' => $this->mode()]); + + $this->mpdf->WriteHTML($html); + } + +} diff --git a/tests/Snapshots/InlineLineHeightArticleStandardSnapshotTest.php b/tests/Snapshots/InlineLineHeightArticleStandardSnapshotTest.php new file mode 100644 index 000000000..81e667597 --- /dev/null +++ b/tests/Snapshots/InlineLineHeightArticleStandardSnapshotTest.php @@ -0,0 +1,23 @@ + + + +

    line-height on inline elements

    + +

    Values

    +

    A normal first line, for comparison: each line is about 5.6mm high.

    +

    First line
    Second line

    + +

    line-height: 20mm on the red span: the first line is 20mm high, with the text in its middle; the second line is normal.

    +

    First line
    Second line

    + +

    line-height: 3 on the red span: the first line is three times the 12pt font, 36pt (12.7mm), high.

    +

    First line
    Second line

    + +

    line-height: 250% on the red span: the first line is 30pt (10.6mm) high.

    +

    First line
    Second line

    + +

    line-height: normal on the red span, in a paragraph with line-height: 0.5: the first line is normal, the second is half the font size, so its text runs over the bottom of the blue background.

    +

    First line
    Second line

    + +

    Taller and shorter than the block

    +

    A paragraph with line-height: 10mm and a red span with 20mm: the first line is 20mm high.

    +

    First line
    Second line

    + +

    The same paragraph with a red span of 2mm, alone on its line: the first line stays 10mm high, like the second.

    +

    First line
    Second line

    + +

    The same with line-height: 0 on the red span: both lines are 10mm high.

    +

    First line
    Second line

    + +

    Inheritance and mixed sizes

    +

    line-height: 2 on a span holding a red 20pt span: the number is inherited as a number, so the first line is 40pt (14.1mm) high.

    +

    First line
    Second line

    + +

    line-height: 2em on the same span: the length is worked out at the outer span's 12pt and inherited as 24pt, so the first line is 24pt (8.5mm) high.

    +

    First line
    Second line

    + +

    A red 30pt span with line-height: 1: the first line is 30pt (10.6mm) high, shorter than a normal 30pt line, so the large text reaches the top of the blue background.

    +

    First line
    Second line

    + +

    A 20pt span, a red span with line-height: 20mm and a small span on one line: the first line is 20mm high.

    +

    First big tall small
    Second line

    + +

    vertical-align

    +

    The red span has line-height: 10mm and vertical-align: 50%, so it is raised 5mm above the baseline, and the first line grows to hold it.

    +

    First raised
    Second line

    + +

    An image

    +

    A small image in a span with line-height: 20mm: the first line is 20mm high, and the image sits on the baseline.

    +

    First
    Second line

    + +

    Table cell

    +

    line-height: 20mm on the red span in the first cell: its first line is 20mm high, and the whole row grows with it.

    + + + + + +
    First line
    Second line
    Other cell
    + mpdf = $this->createMpdf(['cssMode' => CssMode::STANDARD]); + + $this->mpdf->WriteHTML($html); + } + +} diff --git a/tests/data/snapshots/inline-line-height-article-legacy.pdf b/tests/data/snapshots/inline-line-height-article-legacy.pdf new file mode 100644 index 0000000000000000000000000000000000000000..405838d9dc584c46af6dbe6a3aba4ed512d3dc6e GIT binary patch literal 54264 zcmd?ScOcd6`#63|MiQkV5vR;D&v4A_Y}wglCo?m9MvG)*WF$0@N|Z<`A(5=eijW9V z_UwD#=QwCQ&--~lpU?OA{p0s|&UoG9y081%_qa}M>aub?C|)cjTW{anCQ1yFAL(R% zl2S~JPut7c3dyH#W@AMO-d(I5-H<3yt4YbHYGr9_Chc?@X~+)>1cU{6(L(%4AuNhl zNSNQ4l26;k)`3vX%g+y*;NO35rfKEsgv6Q23Bz_W{) zqpLGS!omy5Cj&}ktvqZktTg4Nk>cV=Nl|>D-sJqiHlQOIaMI6FaRHAa#+BNJ=mSpbS8TR~QRO$SW*_MY`Bf{xYTjik}w^>Ujh(y!?Vf zNEa)lHBy68;};YKgweb>6#p8E0s{QJ7_`7T6#r1N(rFb%A{2Y%KS7b$dKE>0I$B8J zuTaDaV|dXR!8H`If&yUDxOFK0p=71gDvCrX{|rT9>s1s{g1l$}{=Y;KjpY^M$E=}< z!J&9j{KD%{{JjLb(rFFF)q;OQMPm0=6mb|JTR;^4%xE+Q@^u{*(fk-*K_Q`aDE^^j zrPC^kL@57^ip18dD57z^0vO>{6oIBHQS$Q&-~^GLl+xNrJ~=cJh%MA|ZENHaZAujW zyA5aq%j7Bfmstg)HbFo2! ze%dZb(1EBsftE(lwMBfB3^%*!!LD$yaKD!gJ@xeAX)-wVfYU0-k;FI0sX)d(bB~uML@w3Am#~BbVHl~ z-z)%nt_W3x6T%XphXmgtsz~s10`CxU8-y8X<%Qt=7pMc0qW=X+F&JI}LBSQ0$^zV- z09hffW(enhfdv}*ZwQDI27E=WAfXM21>5VW4n7QMzHpjEj4zz=$bjObdp}XO+b_LJwpw1pJ842n=Kp&SiEC^&@ zoh!sy1+*ZF#UJopW6?hqR(@e#EU^Sgsj$jrp z2nWy-@`eZxQV0sP8JHnaL(M=LoCy>!b5LgwdU}HIP(A*gzys^IW{cqb1qDDv!;3~k z=ZnGtL-xB3!3m;yvBE@I(_N$ApKJq!`FC~+z`_9M{4-2AGYc>`2QWvXauX@&`jgFq zlI)6?8^~#GAXx<2hK2!B-U&zxly3+JQp*Wp2fmr%r4&*U%CHq^XK zF9`AlWevh~!E?g`e1rTUXu=wIp}s+E>{n#f31JOd;W1yM(to1JilxSZ@JUDzy&`20 zvKbyHDC=+xh=~=@0f>hue%=<~9pVk!LaA^7vxVOYcEA~6Wec8&(g<-!f@i|~{z`iO zok_%@F}zs7Rf2}d;py%M#&ZI+fcQXJcLAJmU8Bk`KIA7K`AgluFpoH(vM6Dqe}Q5G z(SQcV3j9GrSpPMWpcbM_Afy>yz@S+r5T59nh-&-0;p7MX*GwHj^a#QXg~}3)3xy7n z1_?yl9khjPB(zvF2as)0@gXKa*}>D_m}1bv6Azb&73{rE7{L<(k{O-`5H1{(I7@=b zvWCxV4El%0Q9xK2cyi1N>(?-b(21f4DfuT1%>WnhVF#$kn>6tGAB;C>L7d~Sif{tV z*dEY#{iv&ghvy!_R6vJj5B{KX|CJj260{Ko@*k=)2zq$=K~P8xy4IBUch!V04;mV1 z;Guj#lLTeK7GP(&#*GzI`>QITz)}nZTqyVs&FXsVjRI>5EC|d5gap=MgZd5TPpbEy zW{47m%RLBm{S=|FL8Y?CGaU-H7nl+huk}_F+9yK10F{eq-PYNJe=$i6nh;R`JW2Hb zY?5HH$cz5NB%wsx0n}lL1?>kk%|9Dm3&1yL(1M`7Fl>S?p?Ur(xc*O6UU3NmI2>3} z6Xgh!*cMM{SG+wSS~Y9D1G2{lWHxw5K^&i8!w9S)+82n4IlvF<8^Niq1%t#k&<(@y zFzQC)Efk#dI$imv_=ANyR+xxC#1}dt=#aetYr;M=(2Ax?J%TZTM1%w)#N&{ZFnYEGW}SdEBr){xYi9Cy2Zh3G<@$J%$oSu#1dLdr z4zD@1^{^qCh-Q}yWNih5C-`D%TRS4_xLn7o6QV30iEaC{_C04LZ#XuSxr z#M+9G5OugA4*W9oFEak0WE&$S%*&6({xWN*y2RxlVR;D+AN2KW-i#1k!xhFlbt7*0 z{iJsP&Rb#ed+kJjst%M5Vze%R`e}?`ru|FZuaV?Gv5`O#v0!JO;E9fa!3ir+!k!}0 z_Cf22TD5U&!3EJ`{$i=|t$F`uw+TjygmIuvv;qMa(JrD8g1}DyYEA#_t=41(dLrUJ z7k&u<;QeZS|9VWK{H@LT@2oELj#jIqtrLo0nDLX{`Kb;F3NVI0tIgl+`hwjRcuIri z7vjYM?ICcA6(RgT(+F@j0uFb6fl64aK%Wgg8(dBjLt-M0pqf~LaF4KaXAWAP{tXYX zm5K)87k+De#XbB)j6W%>raW*Jzwa?o@*_`z?QbRI%I-N17+gpTxW@}Ty93yBS}6dA z2!}<2;2I5l7Z%th==pIV=EpZDJX%oVu%H09Ru5v?m3n+{;v)e%Xih8u3J+FgtG$7T zTMwP^2$~Z|U#TbJw$hvUxB?w%4UW0~7X$+%B#55{Q7}*lf!|p2AL+l|(W1b4pa4z? z`7_|(Wn;|_SOX{F4r8R>2L8V<3m9Q=&IrQ&Raw9YgCkiChA0adcnS#WS7d?sxGD?8 zf)!q`_9n2N2z^x+peGRmo@7N9@Q!62bm(Wmq>4w<4I@D-j=D=fH3W zdT;n5F475`94G{KWmUCiY5p$aKm)0B_{&w^n*WCZE!=O`2T~8Od?*YgEYo4P)EyQY#Bk*JiN)+S(+$gqN<;@Du zem~({vr+$)*8Jdzji0!C^QS!!$Y;XB0@4nyor(J(1biVC{}4G6RgiFb<`0YLl|4kX zFxcS&dx+pP1Tb9?$pfx^;NUqQ;Z6md#veMPF<`L`&bW!a(HLk@zykFj^~M4_hyn-y z#NJ>T3GV^?(wXv)_alg#c|V_1u3zU9zON5LumD*hVI*1z1@0yh7 zVdlRX6_5>hcib<-s{L6t|F;K+*Mo$>?VX?JtO4e{&X4}xpnnRi|3p)8>qn5Ec#x(G zbo4JHdg5r%c*E0V999s%gZn$0@|57R2Z*cyzQAMRzHK?AW91RGLlaF+!GZom=ZC@s7x0ei*2 z3*Mgz12#H@Q9#pHCJ517DOo=mV%cgd3gAKY`Z*nh1R!^l89b{|@$lL?sNk9JspGv+m50 zNG0IagyEs15dPu_+^GXf4qOhrGKdD7n^5_IC<8D;!fPc^NQsTWO%%c{&DBOLC3qDF zQ^kV2q-&tCAehF>`wH-%TCKubZM6;-^hQ`-3c?sY|IWC2%U3`4l3u|CR$_x1=UJA^0(#z-(gcLgzn8Hf>J z^aFQA;YkGXl7kSaA)Lezjv`?^1$(cHC;lmx{5W1=9PyZ628<137I^AJ-2VJ&ses1? z#>J}m@dy~M8RW|M^3xRYq^=Zf!o{Csz|=0PA(2+_LO`UW)Q556nJ0j3`G5BtmMFTYDzvW zcXK!VC2)8ZoFBk3bG3psNIq3?Yg|f-OV;Y7*)ex5a5o#=zqYh;bhQGvI*&M7I9b{{ z+93H9L6MuSn-`A)CAhEcY5{0q=I90?fVl$iiPVIb#hr8J0ZapPI#XkLV@_X*gCs8xqu6;gko7;qyQF7 zTNi1F1QKirq7fVt1Jo7^_SFQz3PS+gXA%++fVakhzZXPefSrIZEQnlSJ-$7-nT`Jh zmcy75?7D+q_>SOsL_ipc0mblAIk+VWIsgeYL}J0+Z((5gaVP=s0;_YdgNOrG2JS-% zfCCwL9UTYN8^js#B><1|!J;1CTgM4v05+f<761gFI54^ZIN}fhCr>yq9E1t(=z~uj zp$vTDu?A?sPlyD>9=-&?Gwh267me^RKph75gYdwfAG}=+Ujo40z)vACJ}d{f&sW+2 zYJg{8v;b^?Kdb|E6vTjb;1j;EfP#>UkPPq>jt{7W0wh@@H@*NY!{J;(8x#%)83K9` zF@@9um#gt3LkRFTJiZKILgWSH8=iM~>=)D2fJA zhyb7g8c-PxF6rR8goOlGWOuV{ky!1j6}Ii)}*h}A(#J~bCh zD;H>(ICW&Sz_XUSv$MUG159k;2WAIpX=M%I0Mw6~Ie^R;d^es|8wUEUwZP}b08~H^ z6ag1#!9a$Jg%!wD0U0x5AavswM~caT|M1Buztm$0z09pwo1l232tNdPMdo}d|* z#^)XJ2m?FGg9YXkWDkI&S)dp|Uiswg&1^u15cnnqosk<-7%c=I2(HNu$pdr-JgQik z;oTQM_^#+?W^ZdDl`91rH%eKyoM;hH%InaB1+3*97NH^?su z*=+FqkmKH7Ux_Px9Q3fD(80k;UX;Q9mhq^gnomdTGPT>ikJRo(Ec-_FSRy>0+&_x_ zARD9Vp0AbiRmDcMb&l8VzOu1nF_-bEL2F6F8|$ReV~13gkpVR%UD~3bz60JVVk4yuuZ9x3L`)@qJaH*99 zftdAaL3}dUq5Zq;D)6#0DTZFu@EuLm?bADC@Z5yV+Nzb$M2Jrc?Bz zT$E0!fuk(Ku}^M`5`3bpvw8UM7m5`A@tXOhRBri>j{yudGgYkyK0h0-}S z$|13b?jN=IT}ks|3m9dXrgIKSQdE_>su%>RO6kAxDVwNqZkT*>G5Kc6&Wkc<%P{Q; zX7>ityO)3n6Ax^bp2fP`-PW7;q`B579k?ZQZiiu~7>n^3ozBZeqp_VDBH=Feh ze64YiH{_;Ug8yFYV_OUxxMOKB3*%;Dx`Pz1R)ZoUWKpj5W}3VQ#I~Jz!7bgbuyLN0 zBV$xDgM9k=;ZC;$w0$o}&94_JKjCCL(j}X7T3coN9iiCVxG*Iv=P4v}&|z^oo(5iD zGW`b8e%j4!J}(vS?-!AYjCOHjDhk{eB){DtoIQwJ{Qbonlrf>Q3BsKFjv_D?Yl(E z7!_!qXwG@MHfo5}NwhX-_at9z8S)tN?c5l+<$)gkhw!_DyEEPm?x8=D%FgkP8ztF^ zluJMGZX+w{t_`EKVHwI*XRe7ZsF*jO*=$b9DPeeo|hNhq5PYT6l+_}YaQ0|E2x#65)_O4B} zn%{itA5-vcbG)9xN?RyD)T?t(AXuGO?!?WjM`_OmYD6`jzOZeNLuaGsxbvraiXV|u zo`(-bbj9*;nq81j&(A3qF)NzAg*Cs>Y`5WFpffF3dp|d{Wv;n38{-mcTxN6f(Eirc(L%ZfLRu8T^MzPb?@7o9=&w= zPzud=`B8NWXKJKFd%@O;3A^658>)Kod0j80{XRaYV?VsK=8Bs}FrO^F zJ^SwPR=yvc4}B-!R0SUqVLk3MG`z4^s_@{qJ%YX`UZ2`KmMH3Snmsz|_Iz^P#s*;SW6x+l`&1+Y>Hx3D%d_v#FqoL$JFyg& zopYZhtg7PDo`cEy+J&wf53aYG@*O&4$oHhka$qt``Q}?ak*VgdT^wp(Ke%f0bEk;A zR!1kk-KAE#q?S@u-8Hs6+MnuqH0ZAVyU(mUUL8x*kd1YjsQ)dHzQ9+8ydy z7HbK|iu$_F&<#fFi~i=dJ{Q7vhBp5P^;T+$+m z;o;WzHrDoTrRn`vnX&bN>Q>CdhtbR2lPzBRY1j*UhWp;JUW?e)Qjv4DzJ&i-PvVic zZ&R0^)D3U+>+L<#KD=n<+f#x${bQHO`v&u}(ac`&@OiJfc?!o3#-%TcDU^4=Nj&UR zcYQM{smNWff|!qPL(KSOVk{Eiu2w{Cp8myw(QC8+i+pmID%oyuE z%Rg@=vUGh*i{C@+et6Q(MdmWrH=mp!|=ertZP zl~%$t4#hITTMOtzeOIGTNE~yNV0YsV-x^j^dar#89Si05GsS1-rKwZim%PM9IbI*@ zdus2;D$X*w%bMTEi=_JUteBs6!u`lT|4pVCM7(on;HBxWS+Q?2zW7T=T3ehITx|V> zrKt54B{$EwH_sT$CE&Q%kD?$%-w``%}--A-dI&W_%>3^!?vvVqa{ON!(S}H|<9ARX3s7hMs{*jF1Dypf17_aj}W8>JbG&$wG@RMQ%8^k|!zzpJE5W)f2| zH4?IP^7!iW&9u||!2N28*EKa9J#;<;+!s>SJNbGQZq`Zo3wlLo#aWzm+V=TuxNARMnM2-uM@;n@Uq5w+2C3eV z7aY@CqrDw|m%0Yu3Wh%swjO6Vn6+zHRs)~3cU)8aUV-bn0rTXg>73!BhfOpL3>u2J z#yISK|1xdinfvJZPj9vaO74-lA}&U|ZO;*fL_KZnDNT)rcdzCycg%Q)-Z?7lJ6CyG zS@4vzd%thva7v+_$C$~3>3!+Wy2H3h8*hjAC%i|$lg{tBbWwZJV9SkG^!OA{y>iu5 z@U=-(In6nj~S;yoMuBch$(0m~GC4NKqzLuHq)^Rbr*ir>*dEP%~*t8`3 zR<+rx@MBDkAhl_+;w7Eo&waa(KT$mX^2%}KNKk25hV}|Z$ek4anx@x`~Qe9&VYu!q%m8K&`U7k~Aa!dm8dRbL4w!cqm= z+UMeZKI-!5rzg4fU2V<_r5N4hYpmEcdjY*jno&Y?Q(>vv;Lh7X3d=OVUN zkHtwPyx7umAysPGW0!|_VKXm=Y4e4-Nt+Bdp4E_3Y3T2GwDp9n(djT-ryJ=skvx=&UU_jyP1VZ#H&%}`#0rhXml%T z_laOxb8kD1@t$1X)u`Epv*mfY?TMLL{9u^~kLCL?y4~3iDI7WqtX*y~P`|zBsOqME z$l#HVU|QZC8PN;(dOG$z-hB0D;v21-p9fURCEQa4y(`F>uUt%Jp6FSX66M|AI>GGJzH=kGqYnhbq6U;FZ=Ly^{;iC7sUDlqj9ZPM=2V#kk*tt}0= z-Vb(!Q|nNlPc+kAta~EhulC}i*GIpmp-7rz4QZ8D15^z5ILq1uF?#uDhC$>bFbJzW4X8douSR)NMYr?Yo;v+k(>@O;*J!}?W`N*C$?utZ<*8`LryD>gl{fvO1nk>xldS#+}w{gh2uM2Qz90u_p}9OC7V0XP10yoKxCf7((^%YN+kB?TZ`Pak&qt`5vWl>3*yh zMVNMziXSK6K59s6y6}mTY_E>vSmnf-wxHmB*Ye1}=an5$cliR^s~I z9&D#wWp~64*BGY{#qLe_MuhzD*NO|+QkX=#I`f(^z56kI|KRaFzQOp(Cdtep_4FY` z2cH}2NmjSUe(u}1?%9+_mumAL^Vmk+?sH=N^pkcjgjm@ISu66VbUJr$4Ed^Nz0IG~953DQfNvxt*R)^z6pI)YO;yB)>vwhPTOTS^ z<$Sqp7`HF;ijIP8T({`RJ^cw)PHXGqX9Yw1c?3tUBKnRhe_MD>-80pRmp6Td$MQ)fLjtRQ@VkF_a{Ksn^aDD+)TMN3%KHJ+jmd3%aVer+ z^SOQ`F)<$+`|V8(k2)3Rcq(xnT5GtbUOC#oq=c8xtwW2d^4{iMQ>Jqjc@U5zB619jMb{SvG3{a z*@2QO8S&Pc0Dq;g4|te|W|u2TBnr$>CYy_`LLBdPY`U0TR&J@P;?-7()!Zv>S+gCA$x?vk}wp0cRQi}BLQ7(6(?%b)7eFz@pNBF=aZ5*}z>n z!7}YgQqE&j(%HV#xd&c+dyek)w=ci4R3M=IiFSYK7aJd%kJk=49Vm-$X_l^S_Zmq% z_%PQyCbPRukxX|qJ~F-&6(4_=??6?F3Fh=&-4d#n(%HK&wT>oVYjPJq@+jy0SMN*T z$lBs3=;)`JG7M{N?fb@j#lKXakr?^B!AzP%WNG-WyZEE0JdNj$O3y9tW7zE56Q`=;mS<}M7! z9Met~U9k8zA=6qRR(NW>dWZCh`AqF$!H$lq_i0>eg1+~ryJkvn)NP^Wb?SI{e!`IE z+a9Xol8I!u$+R-s39{5@uM2H!sFYK=Qc(|zP7ho(UufXXsV%8X>$Wm^XSL+Lzkj^q zLik5o+6c1Z@DIUnnLSx# zry!o8wNlmoc7UCVcpJ+x*RRuP%*9YmGGPR~REp#cHe)WXg-auIM(&3@Pe4QMn8h7!U9q6X> z+0w7*j+`nHbfF(occHg*`|Nas_o>}=Z`B<4ys#k0xWV|k)I!VZ+&1N!I#c?G2SmI- zmg%;J<<; zxA{!p=jc>Dw&`1atv*WOr4nuW`g`pI-CWadyEjFG4>u2wWQ4}$9Q$f)la?`Y|1OsP zE^4kD(P?=t{VB^mYLfZ+H+P?3N^r3$touw$oBb?HM);!W$;@La@-x?7Je~X!BV{qk zXtu077Qgq(aJzBuL(;jIxIo>KOM1_kOqX(&qU*nHIx_4ouA@JjyhOLazQ4?WuXFNu zXIn|yl(!C}MihfX=(3hOJyL#6&hOf9KfRm1{DDL8)7{P@alg)j-u#Q-wBqwjyDhAa zI&Mx}uzw!$pmvX)QX(oe&QABqOtxQSLcTD|lz#s`uJOlJc~5^-=1B%$)wy8&qVIZj z*UfXhHW*{;JDiD!b22Sk&IK$DzZ4X7jKa`KEYJ2{3a2(XlodX>Yu?j)+e~1>)blR= zlxs2-$FEgS@Z6I_-jQrR#CU4BwY8btXq0m=!^l;4m&eLy%Hr)B?;PV6%;__(p)bw- z;gWf;K8yWsNo?G^=KTxS@tL?Q-A`|~=@f0A)DQ0-;LX5ocf<|1dPt#Om6`>AwotA1 z;Cox{GivxebI3OOYB9g z+KQK=AE!MzeDcn0|A5D6bj*U>f}pScTxa9?z`#;7GZr!$B?|jy@1e=Ks|L3JcVB>T(7%U*|a9DOM>Sb6qh1Vgva?R)A5iW1!UcT*X3^S>zX&!Uh>pU%ue zF0e6aiI3EFXN}fR?_7Ls=QSYA_4>8<-MurF9#8f@V~K6snsaQ_m_w!bfwz`-yL-OW zFzMd22N#Wv9axJ?&-r{bF&rEjtBB3E%pa;d$?nQM*-?XtoMHU1$oxb-I`Dn|Tk)=$ zwwqRyEl-`6AJXujuNLy?(pNp7Q+eBKH82uL(HVp!uW*S zoc~BU>pMwyL+l=olvho0X*RN&okhhfYw^!bv_r#D#H%1w{1 zC1#H&hO=LheRFhoU-p$K`$%RQVLgi3LhmTIUaJ7bS9j(O_&Ws89%RTq%KJfbqwpeW zaom&5?j-G)b0w8thhBNw6+X-vd(JKYYT#>kseMAroetN7d;zVcZ=2u0#P;>PzwJZE zBkbppc;{8|d3b)bUE1exViU=U#rDf{dL2vEzAzZ<8g*t!gukA z`}y52eD!doeTZ!_nT$DRKIZ76L(o{TL&rTeRl3HPm;3@tGMOJ(pKhnpZ}h5FJIYCq z@_2KvK!1u=@RFB|xhZ?f!%F#STG9iDw_hy~FzLQZV}X=owy-I>7Q#2Sv!I*VmLZ*8 zBurFTN6x3rzsTHyzJrnGO5FWB!M^E^7eu=)eONzuD@Kro1|hQm4Ldl$8T?EKN?^oGxKyGu>_wVPG3hQnNMakJHPKBl8pob1;% z#0q<+G|z?&b5FB;8{{!QT%c|gd}a8l9Q)8N%ksEEo{yLU+Pn%&;V+cK3kd)8dyEmG z3-Z#`vJ14@6s;W2Z-VT^jaWXKyWMzRNR?OZ+=iImWVD5TYt@mbvY0OE4L>MPa+=6@ zunETQev{Y(;XVgi&+M!63wwBKxhCgsut`k?ckGs;;p(lH!6k~dN7z4l zP3~dllO84w{jg1aivE6xhzHAw!&m7rLW|yH9G!^88I7cIwlACPvdkr#bwt9=KQdKT z_9M@eiy9%8CGMA4E3?*F-49tTP}}z9Lh6z5d(1fVEheFYANjuRGGcoboK|n3u(NVA z+Y8+ne3=4@`*Gi?A0KSlVR+W~CFiMFJ??5v2HV)l-~yd_+4-ZNGqyBNHM0#?4zYhR zX>n*sao^FE>RjX6(LepPL;sQC6w~e2QWNRYTJIghrRsMJKD2m`wJtpIFP-liW*FwX z9dK=#^l@RQDHCr;{~4Fti;ou{_+V!C%-D1(cc~TW;!ZSNa}5b4yF$h%!0F_i{alUd zjhK0l*0qW|msvBYId>eog%JJfvODEE-zCjypQUG#W}YwmYxa^YOrPO!=SFlgv?r7; z8n)|&e%s){y?~9&{>?*t;-pW;!f^$4ud^#XAf`P?ztfT$? zj(0QL+e~%Ns*8T>6K87Q<89n6-mWJ(<%=mm1$jNd?KXR2#GpL5z1y!{FT8y=wYhRi zol7D&qDw>V8Ny*?`}-!R0ss>2!_!n5aoP0lNr#bhPrMi85+*2l^yw3ES;huFSzx~) z{Lt+)O3%2jzOzQry9CD$b`~6G6B9L5v{XOF)?g{1PpMLQe2%F(k4m6TJqlBod^LR% zWBGv`)rhU*$C@hEVEe5Ta?d|E*UWc`d$QO(l8dc4QHQepByv2O>hUqQ7s+cOwhMiX{ zj$=RV;qKezI^U&jDg4~Bx;o!Q!csp@C8lE26Et_2k@{f@H}XQnR&Fv6YE66ViYUWd z{Xw4*&y!D*T(An-Or^A!f`=rNr>Xy*mO+v*2Td7$AkU6lA#sT|aUOSy6b%Z=&E+bN z7bZ33Qv{;xSIO1R|+2)vv$$QhWpDd9!3IcQqMPw&;p4xCS z7};u1BB=LHe;`iGX45UZ^8!s#DLglmusK0{qS(R=ypvq_^KvUiwwY&ZIaC}=uu&33 zWE|JI)t)09CjDx+q@Z<{&3#FXWe0NdI6`)-980T_z&>U55YqnFZ*h8-m9I|ZTU+(J zpwP`mq^!Hs!?55s!5(U_Tu)bXR;%M>TdiN^T@4KDiz-*#`m*K?uXeuC3nS|cQBEROC9^EC4ch;5gRv# zIA6{e*+xe-tay{NKZZOxDPZ#;cfir&D4Me^*IP1A2r)rr+qaee+Ma&1Jbml*`QhN~ z-CUe{$m<71Q#S9)(w(oWV&hW$wiFY7hT}`zAS>H`l>Z60OmR)yU8$Si-U*I1YpB-v zCKJ6YP=V@_GE@4?8Qm9sa-1R8`woQcTpACR_0x=IOuHpp#r{%u*o;?%_kgv6rCTQ= zi@B$wf`bdyaKE8i5-XgVaWeDzl;TCbTyfL^N~ZFKBUQ2-mnfna=Z4S&y*uPsxj-86?d4l%Os$=tN}yg#SR(esp-&S}ga;oxB7_)=~`&;6h-uxM7V zv{S-g!N~Hoi<@t9qZ&OrrJfRFaG}1)0TA?n)|eUPxV z`&+HtF#F?VdfXR;b~Y=?;I8T0z08eM&$qzTKCs;IdXw^%t>@2~zY5n^Zjp6hczB{? zXRG9?lVwFh7eWp_tFU|%Vtgp4EY^4r)xF&h<4-B(yQJ&ZG-!VwP<}AwRzQhk3)vx< zwY!J>Yf!9ruSF>~sZ#!_Q(wm7`AT_z=e`Uv**=zu%9|cz<6{hauaZ3FbK2W~ zyogj{y#J7;bjxgR6!$IU+fARX2F{$Ys{QmTcR+#a2om#J=FF?$e08$dvbfA^9-LbX z!+mTfg?y#WVkx&#ej(?_S)Qp0R(TcZqQ0$GF2g90CQL)nU zbYhWwP4m3aZfmP$k2d1T`+&UIE%hqYBt45Fk(c@RlAo5*5SPr{kQ=0hIYmX%s<7eE zOwxF)WAL9&)`LQuBqh5Ot*lvK%KCvEjJZ2L4j_o>-3MpmRNbx8$D z<>cqwA9Ha^uWp2YWrOVwTujx2N(#nCp@%YiSz5~~EqHbvbMV#qv|l1nChE!?Tcp1D z&Fk%!8!rW^n7G>~S-H$6=g3j-<1W0e8HY>j;D1#iYM)%bbbH>w<2LeG8Fld`CMf~$ zuyM-k&aY33-zs>3&1sol4k`4|I~s?(%YNO#h}WiBSRkov^zwu{BV$`sU5-cIjr8g> z8J7bvOj3(=+$d^fqtM}9l^-Q`SG5^fxt``!?J&zfxoCDKCB(`mpFL#*XOfqd^L$z1 zZebp0C$?9lr>|bw+G21o(&&^yZ6R4v??EFQl6a$m!p9!Dw_DU_Xv;|!Z3jw{ug{5x zcc)DCnfaRaiEi%@-kK!$ypVeeX=EKE?ck*G7<2WeD}96ktJQ>1VRP-RX!O;+#=c+o zx<~G7F7tfJZGy?4i!sW$d|CPRV%)HK#6^RJ?AO&AGF!#Go8P;S7j=lY1mwiXDCswq z(VLNd%?OXbhD$3M)rhy3N_zG{*rdfT`>|2qzAbkjkeTQvyY0iYB%O8ZujwiYSIlu` z&pQ*+v?(v{a^ItD3kiFjjG3-I=v-ls4#3zO11hz~3(AMydOo<2J7>To)SHPo_TbCC zgw2P`N0W1`T$p^DyK2g~vTu`>zZ=W0jii5Er&8U&%jBbH4tvHq`NpN*mm0%gvb*G- z?zok5FQ@cNe)fpDurBj*i&5eC?4kELDQyF%0bo z3}_X0(^$xf?zXn*$!qP|Be$uRD#!-M6sSj+{rv(-u4Sqy)urm|N=Z}`NAn7^&JQr| zi>`Q~b)f!IIGn~!q%^UP(v(9yjA`XNT84A&_G;r*Aax0one zpRyR)4@~+e4;Y7wRVTZ;>^nwZ>8kNI{l(+EF(+LzCEj-Hsea!tuzetRgG|Bf#k-et zANuX{>JRiuXisl+8P6MiuE3;*N(xmJXi?waPhPKM7tb_Zh+R&#$hqB7=;_#+*U%PG zJe?xNTi8;#Lp^64L4DPgF4^^%pP}Xq_veyGyRl=f3=jK8^+rGKGrs#^LEX;tsmJdA z5$}j661qN;cB;DO1Af;Y-@qi6>8AL2r+Rpp=S`(n2{FumVAd|Lxlbo-d)qH7$aBlZ ztA*5d9|FRo$GkALeG8?ptu``u6x4+d#ov9NKX=ZvbgO7xz}KlD&6_lg#m(=8i`u(i zET!BmRkk{{<$*t1FT+kMat3`YMr08Gf^*qfrk2S;8C$E3;P7||NUVrVQ_RmT)9e!g0#hFjja#CLYXdjBccruOm zonP^{&&j;iH23m)&7c1m)nZSqdSBXAn-=hz^#@HFy4o`ZE!^$?qgIQ3t~(WdFrfWl z%p%v(#MmG25609w@bA1u-QSqqLLELOF*c%**Yx?vod+y)sSj8_J@fEj?VcHVHj*)JYFYGkDTnxXC!uer4rk4=sQLDHyZ5?|iFP=Ne!FaZ)R)Qa z>$rS!{rj)!-E_igdoAn250n0geD;{~qX#{WE=ByCS0y)&e|R?V+-TG>_vTiDVJoTnr_;K&U!UN@mmPhl{Y;ofK9>~Y<5*Kq4I_(u4)xU3H`$5GjA;|iJlf9Ls zx{&TgmR+n74|@O~yY8XtPfFi+u*G{vGcR1e5NkB3QuiZ@HHD8|0?|XG*x%Wf;(|4KI z?-sE{+26D@M71eZ8^+qF_p2)57^)ezR^NySYGh|=)BDQiK*jpWq~Cqp{FG9DQ1n!6 ztj6~wI(_--96JW3yB_Rz4ABB|`Fkag(Z%S*=K5v@6+}nt?u}~PrJAM5qOZ}YXV4HE zi)F8|`i^F+Ie$3QDt4z&R90X?K?1jar@BF7B)6l2Nj57VZ#z$^LiP3Q4UN~kEE}-* zPnccP#wP8Y+C@heO&VL9M#uf;rlkqL*M?@_{mHd{AB>ZRWl}vkT#uVaUalomenZXr zK&)Ct$y#M5)><9i6(c5Jja9m#+4#u&b$@l^P9=6V_P2YhGc8SRHIa!5iu>8#Vp(_W zjoO&luVtRY+M;BBn^jFWT1=@nwqG-PRIO4AUH2dj%X`jJBU(7ovP?#Vja}(tY^FxE z(z$dF#oMeFd!rg+#g0@fD9KU9XKjzOEK&)Z6Nn3QXO}rhzcD#{lBN17>t?|#(Mif*nn2a8eXz9UIEhfGx_ zD_EnWDbh1`YADW+vVROwFjY#;>^~=N(zruBQ*BI6lbNrvBtE>k#L1ndu_k0PGn1UH zt7J~0i%aoQUPP9oc&1%KNpm4;vnz+OL6ka8SaW@#B5T+aZ_5T0SUyb4L}-92jjUQyP7t*df`-UT=J|>FlQBn3mX0>W$gk zzmXqaDm`n?%EP6&MLqq@W$X;{OLo>(#GVe$OI=dvtIoW98JqbsBPgw3N|7Ycu}8l1;AMuG`PgQXd)~1{bK6ob zpS{N^y=j&Mi39k7f6EQS zr>%i>wqJ9@FyMzz;BQ33Y$uq5gaf~=Bn-2%z(13L78C$=Ac+XRKsF6NM+szTVL&!N z27ZEs9+00v$PI%XS8~H(Vi@>;U2d2F_yH4qZWzc;#ewW49H24N*Z>w7AAZ8|0hM5OuFZnb!4S27m4V8`>k1fDd?KtuOE`JD)JRZ=t!Sf02r9b2jtxKF+{gSM z?$FL7)6P1&GpugZdt96?IQBErZe(R`;EayCAj#|E{3=e-I-1Io+J>Fch55q;O3sto zn`Ad>OJ3O(8i+K>Jy2t=Ei1ds%|vl_Q3GXps5|FNYW1d#!=(#;&-hZl=H+=$eVzHD zbD5cfB{aA}Ojh02U*ktn;}Z@w$+z@H$~8P>q8BwnovD4h4aDDNbxwbg448dNw?Dn; zg^4Xahl=o}ZF4&-O>?nAqpz6f_JiCV%G}&kjZ?ZEO?>4uEEMjEx>o2tAtJG)$js0e zr_Fb{Z8C0N+VYfsnMr4N>*Uh#0{e?cDGj$C#xYQ4$Z<<@_R?N_W`$CDG@MFDvi*D~ zN%#48$59cfVpfd40g?4RIv!V>-eH-$sB`(u`#i#{#cS@(E631;4jum<^^{O^VAA&ZLo5yKYhY zZ5@4nLf|A)5V;|ba?omw?i5Ndi#l#Yzwb9*BPyp0MP!@##dXCHoSPUgy{_L^e|~ps zk4OPYN^sl6H*?zrH_?!RWR#JF!os-Mko8AvtX#p_kP4n&-&0#8o6qj*^(~-J72Fd3 z^5)CLUa3>;d&`B&g-5J?uNjCj%BLHo@4nf0RLEE;aN1=#yvM-z!erhgZ?^nY5dvu{ z+q8-PSp;9t@@c9M8z1;fO7t-Fa7ihYeIAc5`_?zOjh?0Y*6zch9p$?FL=e7d(sWTf zv~_}*qQ9JZdhMg%;HG(s`Rz#;Nl$yQEM_!c4L@y7Bp za%9KDkc%Y^sFx#R`g{0lcb;rOJ=s2nh}>Sh#c8MV((9MJw~py@MM`~6aID||5iyt% zINY~kGSCq@FV&nr!Ac%~emJ30y`X@Oh4G`HQ7aQqRr%8HVAiv&>4|5LRQX@bEd4^N zzFh2h;_>?nxrh&>W)J0^PLqisJ5^rSYb_dtJ<6~;A?k8KQp($LqDk?k|Et??sI+?jz++9z)hyPm~@%>sr#No_T~} zn+f6EhV-P^Mz_hJZ^-3)X#rV#l&bXP_W3~yzn7=K%l0k2@cAm`_SkehYYVk8Gssrk zD!u#k+0gbtX1PJdok5$oAD@|gf7kq!$eoxkT?>Phcjl6 zOip!_Wp(yAk61fD*sr^Iq&=ee8UrHoW%$dO*?SbU8$7iYc9!foFdLCkc8M%PM09?% zL89T3WBFO8y;C^fr#5W_4fY6TCzPYbk zCzF$;m~Mnul(?sJQg)ps+xU*N@qrDW-|5rjes@z3?;vAiXR8Q*uDfS=bQ=@X?(7K` z?-X8cte9+CLIVG-o8uoeeXArQ;+XY{112A-(ez|Jaw^^DUy|DHKlvc*;A4H}&!4tt zgrAZ)_>iWh3oZLnv6$ge-jCsBoN4Ohr4ebT5x#~U#UDf;IRs!5s4AipE;}pl^-D~x zlnK9a6UD^lrre~M!eGt^emkUVQuC>R?XEL?@w+8( z+!&65|HIxr2FV(&dx9_9wr$(CZQHhM*Dl-MRkh2uZQHhOb)D1QGkwqPiJ6|hG4thq zdNbb4h~ov{j!GIv>lZhHWW|INy}p3d|hR4 zb1f(aAJ|I3;LO0g;-?*NZIj2(IZ40XZEv}DobGqGK9svUO#z$rf)mv!`X4+JPpNXv;e&R{G#bRTw%!UhUDa>gM8EYix2JxC(RPK}(+H14qKwqb zF2MI2r3W=0z|gWEe-3*W-Jc@-D$;xdJ+y~eC{L<83J;k<4tX9@m3a8lhNE1z>YOgsodgB4`gnkr8{G0C{*^ zrez+d>c*p_M{XR4Vd@rW-q7|PWZ~n&%;UqO9Yf#uY)+r!-Bix4bb@l+o2Os!DQpA3 zC34gk6rv)eX0WgbLlKGguRPBu5=zuL|qCc2n?O`Te%Bp()g#zi+|Ct9ly_?s*4F+m>y#$4~}=f)=F}1(_ILH2>62tk2T#3iQFa&y4(g2``(Lr39hvyw;;x_#F(5^U#n zhGUyY?f`hjXqf0=l>bDGlV|?+=v!&GBj9yA;^~F69X7cVn5*7mE5Pp-CqH}u-H*s& zME1Jn8*ex8v-_^_jW|`*5nLPlqGuoJs#>wcUz)CfS2OxG%u2rq{2?TStz29~K}}Uv zO-oZUH=8r^%VC!Hed--AkAH5w=Vq|mhpEZpAdQhYatKOZwo%L4s-h{Q)t7Bz^KmJ& z{n+lrdA}-*pWE}UKFobLp|+^Vcvy}KG+P$P4=s3#iz%D5G)2P56HN&{Lj4hC71{d) zxPCnn5Buvt+7_Ij;m()+$_MS;Fx2jkIC*Eta11tl84f=mP}mbF@8IBWfP7bfybG0Y z7N5lM7D1MFi$m`pQD`(emCHvy9-#rHO0k{5qF4`n^O@`mH0e{DwiHtUu=AjgJ_FC_ zJTnZ~Hx3g_HqmhwBL*2mPMew}%C5bgdRsH0wW@DtdkyQ7X#pXH^50i;cg(d zt6xMKU^~=)<0w6{7vRzCsW$wq{HwS*_oYw9j4Z|v-I^5iQvyFivjeoG+Ejy zJQhASW`1i5Sw6G8i8+KLbVBisZ{~=q!0fU47a-rI zPkNi}U+c5?O1{GSgjy6Pwas`&4Twi?{ZyktYSNi+2=cF+mil&&^Nt7{Wos!IO-}0=-o+t`!8vz*)dLF@|9zk(fvOHRrK9w?m{x|hXieK z!T3)=v_We^$WKc|p_TdPJ3U$+^0Mvz&fj*n^!U{*)YSiM3&X!C*|4OLX@jipBU?$U zY@-bC%FLFd_kASoOv;&j0H~8_)In>yI%Q4VhX9oswg$r;A^cs>_wwPvdl_8G0r#BE zWcl$Tx%iOlK#SVUvgP>pVy?eS5j-wJ&)c2zW#NRW(v_Yg6TqFvNwwOT!*jhw_2B4F zlEh{vK*c8}-`^>y+r63<&rlqFjdKn2mIc1$8>`Nq5I78RBG&QCZUu-K6K$p%e;3LN zBDVV-d>l7-72fabc0C-~3kR)jjfuH6X2Jt>UQvzA_U(zL$aZ~KqN#GnM-o{(9yGRJ zRsp7>DDC#hPrC*4!vt(UW*SkXaSKAx5K{)Y{5k`#7}ZB+a9AkhJg3)3dfJ3kZ5^Nv zZmElzw??Ld5TU&P5JEd=`UE&$Gd>l5`Tf}L!xa7lOo7onb z*Tt{brbt=6-`zv~1mA84_i?`s@T?Z5@Y61zJgw;_wJP*TbAq6A3NIsMGu3$NE$5jz zaMw?ew8Y(K!)kSTgs`W5gt2R1CNXLD;1(qCi^fY4`9sO~DPJfTn?19}C_)?u&oB@l zaCTkqANvp_&Mr?m*B1`7RE*uXSxzW zICV)T1A7|PB@COW=U)6-_P&FpIl~nqGGN9arK!$gDfOcCm76hs9rlE-yJ~5T;d`*r z5&hYC>1{fQ!Ik^<^8;Vzf8HehY#nGfoK8^xKn$29OPru=_HH17f$^M)kKuAE&-=_FB zQ{=W{$sFA^GI%|9)|#6qWG+5v!-SQNF{{uky=Kg}Bz}SY?B|1`MbVG04zZ4y*;z7_ z0?ilXkh1T&7(iw3ebOI0dJ-3bcJlS+LEdA4oBs1#`~{P+!LjHaFdxjKF5?Ya{vxz? zMYab~_0Q_2{>xsSD93?Z>RGp)%%9;dvUgtZ@n_e3tz@8ZavG!1ne9tA{JGE^3k}b` zh|UC%Oj4haCogROI_>5Qa_CfNwryi49EEfN$Xo=%j+39VAoS;HD6-NiWWcK6lH_aI z79$Dr3#pvX1BCByz7NPRln{=Ir#K;gxmY*i#s`Y+%urF1xV0fDFPCRKxpEC2a+EWw z7Y&FV${?C9RdvDZ!FkV)gJAkt1aqM*@prX8$k{vy`9mbc>-GXjbh30RsQTeaqh!T1 ztL6E3IwQ;Hs8&^Nr*b$|!%t8jN^=jdDWs5wf2CNi^X+q==p3e0;M6N&XLj_RB|5#PwokHJDe!P__&XWvI zJ?tG<_W0VkXYgjZ5g;qi-$`jl!0Xiy%K!i4Vn^p)a&WQ+1)J%HgZcHIm?y#T#a`9urCpJ=S5#7 zrXT6Pgpw`c*0CLSjfb3Q=ceNrpymrg7ozmB1N&PuWdZp@1L_|2(S)RQu{jt_2v#ew zU2Nj%`8bu?vPL}lk_68PVqXcvul@xaAiPN{RitK8Uc|7OdY9#~p>9d3X=|Zq zYDr2l&vmxaw!HK`BS$ccKh0XYwXo9OddFfV-e~evBz)R539wwNUz_gh#WD2y>m|kLCz7Ne;%3ZhiePGWN*nURojm|37 zsW}e#v!QLv$+8^9RjL8V_`q4TPr~wh`8I5uv?+RerO-vWPAh+xEy==Q1Cpc7HM5(( zmybHW&Y0Pw$7hagc^#iJZ=X*Pax3oq(2kla#0`+#_DWe)Ao7_{SlYDF*ItDy~Aj$}(z}Pq(R;9YVSiY+Vbwj zEP@u&E6-ojM)nN!ec^K}Me0uQ{6u@keQr1OY+HV1v0M*+ijVhn=X@nr>(ag`LXyT0 zdAA3ewk@^U$Ml)(3N0+nrglY($$_t9Bf?*h(+8)#c|4l2jmLm*IZ?=cP! zNuzCcf1D%CPL@hbdb*>@=}^iN)VC9I_N1eb?BNdlg+lCwjn$kNrpvKeW9-fgVgz># zO5F81Ye#l~7k}tfNMU^j<%SIndv!X+cH>tw6#d%pY<=ys%sJBH{UCV=U#fbQ+1D@4 z6x5#q##L$7i>P}$GY-oU-S(rA8fpVi=&C_lP<~fR1+>>SNe;4CZwCak+4Qi_cBMVtpV!&OV6L%PW4|9O*IG#b5^OMs@0E1R^ zp`LQYcfTGqbpg%Ahii3%oH$Mg>#vrRW|NfMRiJJD1PZ}TtlJID{@aIWXgi?P-0g7c zv^OQ*Es59rH5s104(y* zSisS|>=EYeSw=oy0wX_q;9$HIcT6OcR8f zz6T8_JiQ)G(4|u#X-c?4>Y+=dF%#9I>9X-ps-fSc9R)8n`o|QD?t@+1cEF{a@X15b zp_vj~Lr%bs(L6JWU%Dlr_q}s@y7--x*0sCEH$PsNE^nmiH%7MoZQHMu?DmItGS^f9 zD){d{dU*JuL34u8b;mwW?{`QZx0`(Z#s-8~a_9xIcXHrUaDRc;f!of#7OW-&;5|u; zG@sPPsbYk%#qU~xZj6ucEdUQaL%Np8I21T}EJK#}v;koOKMS^`_V6NK3ANydtmpf# z@8*zX30(JI8gcM6ufR{Xom>nB5IM_$~NK0(2y(t)x)N5WOk;KJaO^Zja{`^cac0;0Y5$ z^XuA%C43{0t8b-$Z@eVZj#dhBIgf4z4jtS#w&d><(n?tc^M|@6wEWMir4)d7%F4=M*In+)%h-pO=p{ITO$YNz+=Va8i`#Dl z7K#Jl%1t=XkT+{vUMM(NLw`b|I{#KY1g!i<#x_Qq!X>mg{}q`^*_phWP%Z6{C$>u3 z{20S+3tL<)1i6ML{s@@Z8*Rk|W~Pkd6iCFvrYUrY-ZPHi}3!K7lNO)0}vrHhMFguzZ!p=8CQjEg2w$<-Md zBY)Ab|7ww~S0s-q2rsgd{mmr97F(n^R0Xpx8ZE`ZAse(&y_2{QtB0vy@Klx`*sQ^i1GEYK2@Kv$J4HfL07J&7E!?0b5H~;rrpDqxcMyv)+{{|~AKkh#E;$P=RE{N8#=tQ`s|gu6^Ew)IU@qZw+p=)!JTFA^o^uej zOz4Rn74LM_i%Gn^7|JOsVb?|-v$+N^8-XMYtr5%mAbk#$$Vo#hRhvQ9e!DUTfP9VQ z(v$+Uewg2AX?85?Y3T)+Wx6|FGXRBP1@Y2VWig;7y?{Q8D%dzo#3n49lgVmRVntZx z4B?(7`8aVLt1$5VQ`D4_lCv+ZDIaQ&R;%Wj!m0dxN ztu%fmr01$vpd6Z`#mdo6DAYwJ1@(O>uAX9^N|{(8`iKuv6x2tC9j2mC11P3tsPm|e zPOB*04^a`<-Om{(MKOYgVv347`Q;~MYsV#K1NyFdT5^(}u6k;YDWs*Q>Q@|?9Gjs7 z&+Yl}sR}1&D-OgRnxXuK4W3@eU*%jKG&Vk%xY*Y zh|^C3Rh&Tp%%w?H%V~lwO*TIvhj&^7qGfZIQOp6mC;($tOR=XAM-98kFnMZP zFDfvaGdOd_(4S-pR}Y;KZd4Me7xpS=i|J-Dj*=>1nG&FADF;XO4VO3%SDxfqR_Y~2 z)5Eo*HN?rNov&7J@yGcwxjlimC`h{WU?iF?6$VxJr+(kD_cmEHKV2E%pUWkoc201( zyddc0j9d6I#wF3!1~-@B!#RBLP=Q&AQZfk|`Jrt^I;c!N`iAn*^W@fM zb6u#biaXUGbQf_Y@Gi#RX_pbNHghTYsk)LhYvEG`;pU zBAh)~9BjzBhC4`<0fSKT+&xKvddxkP4BKD}us#=3Jfb+z{c%IB%zY)v^K3w=Y(0h_ zpv+0zEaoVwE08{GEhvrz?mQ>6=&9iIiym*f!ET^oDvxJ#6;lrvK(wR zqjH;WhEea_rJLbLooBnhQRq~mTsx#woArGf_CI zI$Em1T0U&yre0a3r0gs6c#JWX8m+xOcD&wrqD;90P%eGXSbqcx79+gaP_gUcNLTex z>;yObp)h#W+moldrK+*JQs10-uL|c3li|Y@8{~AO06o07M~wHW zB2casS-7Q#mq}R@HSppd_+7R&O~G~^^0?x;fDtIfnR~fAG(zg&s81cNh>ovnIkKFO zP$25e>7dqMTf&t-`dnY%D)val?ouz-&9N(^vr6-ir4D{du4peZEGmz+ zHY=noA4>GcsKvky`}}}O0LAf(3P$WF)eF`iGq%{!vBt)si^ecyH8`~FK`eK$9*h0- z{8g~7))Gx%b#ox)U@}D;Xjxr*y7^HUTU*6a=4^Ebyyy&aRcC%z4{sH@bh&6g zw&zE#X(+25>ObknQC451-lR-Ua_OBFd}}2(wN+(FJe&(Xo#KzW@X^$d`yb6ro-IkN zkQuxaJ+=?`oEDPDQoapC+EHfLR(#Vw(KdA6mHRuMOFj2e%zE;%^XKt79<5G~43?f# z14TCq8AC-(cdzl46=Csut<_nC{b}Zn(GRywtY%JC8v0`%9qT?Gm9u+2`{c@o3mXwb zG8SCR^{SC3+&X7xraPF62id#U?#brzu^U!}Dz`AzH_giXvje=RT7G+@u9b&&#QKm6 z87u1gm6obcvsu-!{(^=WN*Ow|dU znvby)D$6NlGLeX>O?YY^tgJAm4qUGk@Ld?$J}*>a1^F>F2ga*2#R9nM5X1#L)VN;r zt-4CD5ZJK?vm97!FvfgTyDcg>p*JQi!$R==l{fZJtUx>W0O*;SfkO^hm;sd#9OGeZ z{n^l+oHtW5J1bEvCzOHqOH)D>P^zbgy%k1y+%|aoqK6F_Z<(b{2UMBL4-P5N`k?{- zX>1u#E%lsyL;f(;u^Qa+`^t+tgu_!V0}RYrmOYAa-$tFJH*^3kL{-x&boFDlc&UWQ zL#mog9N=Z7Dlv0Ax)n`BG-Ok$ z@MXRWI+7w=J~$mHb-s*FD36*XK|k<1@U}66b1bCog1cGJ+(`J6lO z)K83)S*qyG*oQp1ij&4zl@`iK@NBx4EGM~5=tF7f^ud-@;KJyDc+CKOnwrHQhi&Mr zGyYnm7N0$r$sfE}{H%_R&~PJ_m|5^8kGU=@L75fLW__Dcsz4W7O|#%>sX zglaj`b8RlH`e}5HyS-M~h}&fDUa@qSQ`X%2rr_)z{p>QT{D|f0TeTD*XRm6s@0vHM zoi4LqFlpVU%gtTexN^)m2G;d7>|yD-^v6ucO4o8{5vbtEMl^F-FaMz2?U!5ER=LXG z+a~F9nKU0(ESmG~`-sh&LXY9%5I?aTYA$YEVDB?NY56)ugJJ*Kt7mJ(j_aw<9J~vm^pGpeT z==Wf;%pGd6%%t}w|9z6=S97tkye!c3q86JD#yyx8M9Jak5GUST-g|gr?N8rqLLH)%3F{$cbl}hRGeB6QQ zxrj1;uFn0?STUsaJzjtQxrurARsAaKyz;&2|0sV(WQcbaPC>+hb-KF>EFM6BbQOrT zLk$($&#ZJFdEihXThljeFTlOKiYtM*5gqF$n!U3M>KbNlzBM1t&wXbO{snV9&43dT z1Za)%ZDboH?9tBa-!#~3!4}ngs9z!LfB+}rAJ|2(h5oY_5fOY3K!OAbpYSFN+!s(o zj5j|v8o}eQ0RA~)3vBM`bgmyo9RDiJX3DTp(E>unzLVq!r4vOTDUt{Lk$ln|OD4;v z7zJr`s&S#16y0zfn3P{z66q&Prp_1%5CO+-GeL+Cv9Ri_K3Q4Ur{y1Yh9qvtbknaFs0O&=%}RBS6IRis*)RZ zl;X1{80NdAz-3O5=T0b~ZkHC1K1d{Sh*P>rTALCGSd{dvI%bm;$+zi+FKk@r+Dhk3NVFTbHy~sH>*- z%ueV`y6~jcT$>lr^Dd2i&|+HcEU$0ij=3nCmu}}uY|FMS;^JLxC01BlO}T&|sRpW5 zr(BgAZDP2S^1fr2YErsWmumWn8gVDe>>nlTsV@z*30WQjyF=>fUI^`gs75zWM5kDt zNvtR~!6ltmu1iTcHmUoSV6F}>J*`y7l~y5#s2=!7jWsTr!PM0K4yGf=l7L#^1yy%+ zK8fe?K<<=MDyJfwfVVY~hf}`7mqM#7Tfjgtb)B93ND7EPWBAL%_;d@EDB@TiTHnIcnt;Kr)J596{u)3U@ORbEcOQb#ZS8`#o@ zU=Hj!LFTSt)I2EBgkfY$kOHQ(DezZ;DIJNKRP``WNfoEGu#hMwEvnAs&j1CoafF5* zne<^`p$yrtIfl`itR$mO6)Z8bQ4=CkWC~39?R`p2cW-n{9Mb0gNf@$7V4+fw*^+&D zj&V37uu!DIN8z`Qfl59U;qr+4K%+f?)2ZbDK%TnHQN4OXhc43!*v=$s+C4K-LMQ<@MJp$5#f#|z@v~LTU`}Z2y)0}ZEWE^HY{7-hAqVS~PymLEA_gST65xPLBOenKkwaWp z*pm;(C*_h%aY>S3idPb;4MZSDG)NI3^ahpGkXJzHU9Y{Z8f>}##^yiapX|YZnTP$v z=f+s2{P$bde{zTZreRD|HC-2pRl8UwO>Eh>EGI~e?I0v*na&V*ZFVx z*N;8=$8-NH|N2K9;6G0PJO1^b(O~}{MT7kd|N2S#`j;{Ck3sXF{OiBQO8x)Lzy3Li z{&)G;Kd0QkoAm$7{OiBZ^ZykA_5&knnSa927+HQ;BqIYG$Nwq7*#6(@FIvW*71saV z9H}2_`jaX3Kgp5$v7`So9sY-0$p6NWnE#W1{YRm(|7-sB&ky3?ehvK)!kr?nQ zIVHnP>hBU2ReC<^+q4mNbMbn=PW|WNQi_`Py4Jd}|F4PNe*{RS11>D(w0}<@PrIZ$ zPrr8QAA866@DWBK+=-7P3J!XLGS=D_)A>L#>-Q+@Sg|hkV2MJQ_rJpyxyl{(X44Yy ze8PE@jaiLV=F+_!<0Bw-g+4YOiiyMCiSj|jAKq-Wca-H<0Jp>3biw7vO`@6=jM@j? zVutjgXvmiYgm1+wVRlT1Jny2a9rtB(2Cu$VMu{g^E?D63dNT<3tu+mi!(#OMj zd=qz2FN&47KHkf__i&GR@1L`>h1J)?O^S`YuxMA;W?EluQiSxsdqaeGBE}Exz(QC^ zI?k~r1qiRYn`3bXkA(=#^vM?!i##9?$jAGe^EtVW^(QkRQg*$XT9Spt&z;VJ&Kqo; z7!R69B7S{>e?z-O7R^Ut8}Wmb@(VZKD!fF$HjfaBywp4wWoN?_*Vo_E_=n-+1RBpM zx&Y-ID=>RWdO%(Zh2P8;u=x}-ps8idU_F>i3drYOdJw@4Asap>(P=CbY|>o@KXL|S zLaKa4u>lH-ol!Ls%Z4;^<4$?qngu&hPML8PDPTaYs5J>FP~z#&Q& z*G82vfL)qp?F1`8@(`L-xMcWu360MfnFzGIio5o{prp1z;t%WRO$!_;o4~b#GBg$V zzPK?8ZIGM&c`WNF#Hd79+Y_rz^G6GwJfC%|#b7@VnuV58OB)539G{uLStwY(d3Ui_z~QhIBGh}Zm^LOE|vML!LNjlH<9dU{^akoS?o2Rk-9HT99chhV7|$rBIe8;QUi)?J-IL{302l*#Og)`vDMnc!&YTcKzQgPyxlEj2D0$ zBf6Fa3%`El83Ks+1?@?s$z%8v1-&F<4B^8hnjGj6==A^Y7!hQN( z4S7DuVBlrT$_wdC_X1nKvs@52DiUu=Mn^x~uxSOk*O+5Z*$!~)($Dr2tVTa1aex>J zhP~xsgb*PkkqyLRU>43lLSOL%yhmX$COlkk(`!5cGVYMp`hNr7@DlP7GBQpT`}-T7 zBzPYuy)Rc&GVOJT9odbJ*l|gmotKej_RqTYndQQUYc(_hnD9&TEpV?8fPe3A> zz0LI#$|Bwse8#`f2QktpL9ikwns3B8iu#^1%LMQSzmwP{-`qTy^oz@Y;0Yl zLdWrUsVa@e3pHfcr_o6K;>?`mF^au=tJBnkW0G*36Bhfq_5=15=g1L3bBW zt^cd16jq-9H}5BwJTjES4O~{srQ%vscGsm>!WXIsIfSw#j$xB&9D{u}q$Q@@(QQM<^e1tnrvb!%Oe|u(aF^Ys;?4=;#5y%V|oM0kd zI0Aj1u?ByNt08h9kObdX%-g2C>BmpNWww=DHqsEAaQd-ZJQr{+q?;ZjA%qRY)8D2U z{-vrs@RNEEsEYGjaH05`gjHGyq*mTuazXr&r)VRI(P zIUC$CVvu)XI>@u$XSLs{ncUM6%Z|Ri9vo~4Mhju0;XQvy2n_{Vro_oh7?aWvAUG*` z*55uR--2SVcpfgYf`Xp0mF#i#6^tmSLB!Fu3#(6-tISU?wVQYX-t}zyrLWfOe3u_O zR2!ZqdEbkVD+jFQuU4lYLpn2PK+{d)SZO4rq7E9(2=P9dcv)bM@m{gsv_f z4b0w8&0>HTrK12e!RtoAPDCckK|rcwvBo}wTt%+A$SM@LntnmuV~?SwqUBV;H)p5K zI{lU5IOVFZ)|9B?Wm#^aU_Cv&t+l^u?(RK7su84^G3`D6yFZ`%eFWKG275BCAxdHe zyb~Ul%E$VCGs=s72~8EHtgmhB;i9IoOI#1%-E4RGl<(cdQ@5b^P^f67n3OV!y^X`@ zbDj`tZz`XGf%*FW(t-@HzES6W9^rXdARY|gCr~Y57s=O=6MXGa3raeg7YqNvcd&|` z(=q#~5OPy%&Cf@eef4`?+i`~V;BZWw^?0TaWjQ9LxKFL*-GXhLB*H=&9) z%IhrqtZsrGU4EONy~3b6|8SqynhC48I!^Ao;Jo_Qzx(pZ{#Zs*IjML!=Ci|e@YjgM zF3+BKEV4(@4VDM3!@1I7kOwAWo3na>1;<3(hSvQWoB3;7aW^(vH`#G%Y?U;h#nvbI z{v`Wl=JUcjDf6+>cJ`?|R6(lkTb=2m?{;`%Obmu7_sKT2c@~$?_28@IsfPQN{L2)q zwmZyz?G40=4eCk7z9)bx>jiWjYfq>i+Lqg)L~-Pred17!+=W;iyKMO?BQMDn)6tb! z2M5{B9)}Ke@r!rXc}zul_xot8G;O3i9cA}pzV>+8iT*V2^DVyH1pVN0hv&`a_Aa`e zroT<6uPe1=_O*>m2HNGvaawTXcHVZ5)#{_~%guXv&c{(`W%<_5QzqP94F;U)lk`Cs zB+T4comSi;3W^~a#maf>so`yTeJ+=~?wIk>=JaH)_k510e5Y{+XR2Q}_2<;^x$JpP zDXspy3ppmfkB=ziZ_?ol6awJa4#Wh!)$;7!qvLoau zM}8haX-nMuQDOAd2M#Hc4n9h#!Vutq=d2;z4fbajT6Na@l3_b#g| zNoEV6;?cknxjR+rXv;s0l`CT>z93V6Fc(r9Y@%->BwoOXM6=*z2KLeq3(!79XA&yg zoZ?6J8`?J6nYh?9-|_jr^RoB#_B51ZJUppNR9kGfZM4nF{E9{rIqc?+`yI*7W<~UA zX}U@A6Q3HA?k8LEZuuT8pf8qiA~xKzQN$GrLJZ**E>EHrE^q*0R1^Y}U>FagNRGpJ zze&_&w$hr<2y7lfsfoa7^}Fs_y^bPv9~yiQ#duD!kHaF1>Hg$yiEkH==WcbQ6tfwF z(*J#)bDlB{8@Jc<%lr6gu#Mi_6;^-8tkxzJw&zIB-%p&nqCT%Hek%Gl64m;|1kD$~ z%s1fOw3<4%_<-}tT)7N+iEmS_=~Y!)5qRu&92}>-7^lovLABqK2XS(jrwfVv)b-`N z?pn2JJDpHkGyW;ewaEuYU(hW1RV7F>JOsSu)N>z(W6Vl1p)IJWfx(hsg@F7FK)#na zjpJ=$DhvCGeDDH+qa8);∾eXTjHHwtroQE>+yj-?D4+ozJc2E3qD`uH(PjTv;VW zQINR2X_Zwpqy_iDiSaSXrP>&H>-fwSUh&`&g}bib7tfs2Zn}Q_DryocU%4LlBm+epjQW0 zYL2JqV&LkfoE*BLdjTxG9LbwPDy6yx;+YnkJO{#B?awr#{m;8ACbY1w?d&=wW z)(f5Y-NN{`)m56m5hnMGKa%~Um16v6ceIwxqS5E0Z3PwpW_8b;432#IbJCWn|jk+qjQkwahdaEiVDZ&RI7ioGrXzm#2uym5g(XIS-JkD|zpb^C#^zW2c#9ws zK(chdWIevlV`4)lx?A{khXypL7ut}xyHKZE#H>9I`242!?t;ycwD=LPATK?zII`A` z|5hdf{AIrf#fcISg^8acBH9t`O~v(x^SyXG-W8w14T|QD%d*EO4t0SbI>-@k(wIzj zOiTYA`Go7{7z&w; zugm+s_-#N^eny*aCbnGq!ei#^dr-K10`9Ff>2n5e936W55_)`rL(Uql>@AUZ|46|(2^ZNX{P@y zzz&15(npwX&--I{wsmUS#Jc^9X)Q5TE&bX?BS?0>$2mWR^N%m?3c2MN>oYA2P`#$r zgP;k%rMgd?7mZ)M{$wYdbIRo_hSmXE`0Z{M#NshCZitRYH>>g}A6KnWlS>8IC(aK> zhuljN^W%SymLIJvhL?6;pa-WV+Vv$QHfoue$*ElWuGxG=rU#?EnQ48uGgh6&VWeBU zSHU?K8{WI#e6K)P9?hx-=Pcs3gT79w+%FyiKa#uXYdPsxxLgozRqL%?x7nL+Wn z6=C{XR#d-l9c@@1jzg?_p?_+KMf`SR1ma3Y+nH6bgchWVgm}t5hd?RjZ`~Sdt$fIB z*rx1-wEU`N2r2fgw5A2rIas*ZKOX{x=8V-J!0$L(bF@CM449=za`m~)py(KwPBmxI z>s;7M%oXYTqJ+ctxs_&eJ{cqq9t?;{oI4$gY&sHiEU*fu;g~;j>FwBu3bvz$D;vf2 zI5psC&&8BbKMPv+->${mX>upqchFq={C|a3>%hv_UJMn zzF$0tHCz!as){x%yh6qQX>rz z;o|v8$71=tkpOEf{Jhg8 z+ZPz!4t)o;)wuPz^T6}@ZE%h=zOCnz)}@(h&5&HzE^THGeDaMx^DWi++v~88l;Ap4 zx0{UF{_`cPk9+Aa8`dvVyK(>5Y^?PLe!7Vk>8u$pyN!czWmsNj~48cB?NAy)OOU$=1#1&QM$TH*kQs-nCkn zyzbJ5>T^lBIcE^9lT9z_j(y^|DoEJNs=VrX6IRro=lxjLZ}&^$dXLC#&#>?sF4G0v z%dx-D+TE;$e9lW0@jIR{@U+=kzc=b<(OBJ6diZRPy@Gu))$to6dY7g>;~Xo}9cjYdWvTj{TWaI1<%_gJoqEzpXA?(kxfk-gKH z<6R>21svA`Zy)Tx(`rdASEAjIE<9K#_%Ba_Y-4FDa^`rNFTO_dy^ezp+89eY8<)W4 z!v}GVPc+|}<7S2nsy;vWf2BL~`RoGnti@M0qu>`FakI%s(7#;+W#O_%)r{TKcDB#58e(GmUpb9k0$1JdD(B2L{O z-!EV}gW8Sf!P*NlEE==ZxA%Z>IYkCP;vEpO_GORj^cj;feck+eF8XbvQW|vTbk_Rx z`2wMedtWPh+avTWGSFU}mT&(p^SlIM_bu{Q@o4Fj&l~T9G{E~8w5x10)(6`W(z^@x z@M}qxv$l-7e)I6@KC`!1|GcoRtSetv{XIG_^Fq^cC>iNvc*I%zXT5&irdzC453VuU zbFQt|A>p!@q4*k$Eb6&?)Imi(uZ*7?Sgik zslV>l_UZ1|1B|nT+Z~M~stsPRujcl}=w=mqG4eK@_{BOaEvp(_jnTQcYlPrr&U)&q z_(>FtsmRo zA6ws^YX>dfZbXoIL0O9$23!@$oq11f7{NWj^KYcj)&I2nd9spn9FCsZ#;Rrfy~tIr z7ld4u?*0jJv!;Rn8q`Z~_wxCOu5jwSV~Ej9v!fmA8v0 zs-o{B_7a1V#NZ*ldqPiULPH*{L>1lxPh7Ho^K+PZ1bW%h*xetu1QGVN2f-?6d$0#? z0IOO@U6*JK+z;(il-x>d-}@SVdy%my`)hyDOrv0Dm)>P@J`RYSy5#ry*RS1UzE`n8 z3R;@{w~&EO^zDs)e^~P%Ifpr_KK)~~P1^H|c7BvQ?Z~$FTCXu&M9vx2h&Zd124u)n z)C=sN%49A|TJ!4}+)Vbf!ZFw2>oz<2KN=ldjnq7C(@B!i5q&W`A-i;6IvW0@7^;5z(%(*rdO!~|!SG-4icJ(ARVPh z?;xmjR73>c;5ql5d%SP0H_4iv`Oi1A_k4TLnyi)m&o5+`?V|9YkrXSFaqOdOI*xx# zMb$^?Dv2>UzR8p9${wyn8|RbP+8Oc6skti;*`cmL-dT6 zUzv)8cP3gJ(9Sx}r6pRi9bHJ%Wy?S;P216v&q>~i@~g(O9tI2x`@1jJ>AXK`vuX}^ z47`-G>BD*t^+_3V%2bQV5?diPaA((H8?9(P#WQ`a_5vgJ&=P6)T1QHUC0 zW~6yUQwHTjfAV$Uz4DqPqlWf1M?&UA6g_I<;+xCOAgBHcs*j7*mKzIsH5)e!)k5hx zIMaDNa0J{U%8iPb>@WYtY)}xWYmB*6R8^6wmPh?L?Xp57pY)1g zsFE|tV@^dv3)PFQ9FkQDUw(E-J0RFHi`x5G`v>H1dyY;8dXI=Rp8j#cQpLk|)-HWB4t>3KrPWi@<$pRHjD4}0l zzbR`SiL_NEKk^f^3P-BS<2xGGoC0eW4ljA|2CY9HWEN$H7qa=?erx^lhSB}$cifBA zzDYZ3Yx0h4$cV4YBw&i^#~iJ~7u;@>y_~;1#V=@lY7(~si0 z38}6`FWv2(Z5O(G^&!b3c>P>lmvaHNLjL;Wz}EeL^~)?CU3<$%cO{3qu$5FEPD}c3vd6%lEE&%dba=yzD3}qtwbs|GLcn(F;9Gfi1fEWNdNJu*pZi zGOKYL<_e2Ei;C%Ia-|{02f39UC2dLVx08oP6xPBD!&1V^!%*M1_B{5(rVq-k?W-27 z$G_o+g&W43t($^dz!!TD_vH8NGJo7W)Y+9d6g_Bqvn{GPCD+=}au7LJb?|X^ji~Tc zf$GTpk)`X1U`CAn|AuE*=TI#8588Sj#nJYVnTV8ak`;na8KPC7@)LE z3?3UvOHn6;grnXCLS{a7z3c#ND`_%MY0{-Jod^cOCZzx zPCW+t15e&m-2AF6Ug%oI>qIu@5}c%94^v5p3!JS&A8F#}QinA%E?#HBsl3a&<`j}M z$slTT5C2k+x=Z#msfAx7*8SNFQhP#BWObtuou`S&7*fYWGqu=AeDax^ zRz2I(m!_L~2JU10KJ^{$y<`t9TnEyv3@e?gyWIm!-N%sbzLxhWyB83)4oxG1wZ>61 zw;(FfBW4mH{;u=;e)aEYEGk+?EuCu9vkJ=x27PI|>TLaYGH$V~Lb6ind{QgIed{oc zvg*Pt#?&xInoj$Q>d71~zsy-DW9-HUSseyAt>?1&SeMmgcTKunsjHFEJ47P(&B;Pi zXqi@(EGv#9Ta;$9RC-e_Wzw|{CGYf4Q}kKD>* z%8TrLIjA2y^7Lvs8;*5{i)#XzZ7WWd@v;wCs3ImKJzjLeqYer$Hlnfk*0yy9g_*y9Ip7W0&#ox4FV|Ay@G5Z zQ&vBAtiLWTC_-AOfVlI}9^v5b-)Tp#NK$t}b!>FI9Zzx5(JdoCr^Z!wu(Xww^fTT0 z4-ab0Ltqd|AJr6{I}-&A>K;9$K4mEbkmFu=BSz0P=Kg|AGF`O-6Bzj$O_p21TDZn2HnF(xl<%rUEj!XFRrw$aZby1e}#%fLdS2O!*w1QyF zg_Z-xO7>S=MJ`;Yd9axF=3NRs4~UG+6XGzoO5rT+DbqZv)clD+-Z{+IkA9js+kaw> z>!^v0V!G1BFZsCflt)pJ!CmV8fJ2bF=plxsD)_$>{ z-%lz|9kQ=1;23ZJtSs^iG|eb;@*Y7>&xvgEGmf&*unZy_QP4=t(gA)*Dx5AFRTei{ z-HR3SSu~=)+g(m$!Pw`zCG~-~(4doWaV3`Rd6%iVi^#=JF4}SrDAgDzv(c>Sjds#2 z1IB3W(tb%kdGL51!%8um6Ys|n+%r->nHg zQM^(ttl3zLb1`cy(??GAhlZKoh|DfQ0rb7v+F@HUVK`qC1SSku(Iju4K}2D5Qd7_* z1rHF3gydeNu>$@?7~t<^O)bit41no926!WFcd$qjQHwrEJm zmP2!VE%HVGlc0|XQp)z+{-8#DbHBR#*6=!s;DZWK20jf(eV!`gDug>ADtaAhVd`3W zr)J_k)T1cCd`n2f@G4+?19wydk)zUPFyT%v&%7|i*v*?O9a zFZfUWdgrb^!%b||Brv7~$3>lS$V{?`Yakj2MhKZm+D&#!*Wzl*x9l9^O?!`{L}>^={c8)!{XtqejRbC1+f8@yGS-xk zkE(Sg`0S_33N%_=C@~m(l;wVlMV9D%GcD-N*IJ8`^34Z#GZi#Uj<{A!zTBv3pfw1$ z=j64Sy6AGV6=#TfaS-1pSvm(`$YcNv*%mOXKk*latQ;Uo;GZj&qp)||tu?=WL-y)! zq^@{|wd(??GU2bt-mwEDCf&Ns?T5cxx~*c&^miY0Q` zCICOC`zdjy4=9JuFl7E(47$raHr2cO;Q)T@6u^*K-u#6j3;Bg1D`5+#1TbXI-(yeO zv&u7qwTk(=NEsdNe06T>#G7;xE%U7~Q4b6rQ;+45JE}7oB?>*J2RSnc-7H*`V@in9 zWsgUaDBtKISyrV9+~|&v?~X07m7+2x3zdw=>M@2g6dk<9?7$^Lv(A;!glCZ$v{F`5 za8!~n7+q{;BDn=ql8}jy*k6`@`pWs-0%N{;gy02Jo)V`ISJf($NsS1L0n{&XBvw>s z2s5%Rwbu73x6T0&vLf$~+Rx1gg0l2-)s~qeBu_6PR+&3QmZZF2HYI#!q)K~8*5_Zm z{xkqoU#%#p&Ju&#+#D^4oSdh4pLO4U!C`peGl>H0g8Pog#W=i7WzMt$t8>OVffg!Q z19)cF+hw#G#$TBE<{^t?U4C!``pRzK_e}lXh*a{3vV{yL)AB`(9LyrUeWI&abIIs) zuxW7#$DDNKCes_#u-b#6RbNz#>wSGxxfNa?8n{yec;9=6ZCa%)=jN?*M4w;ZPfi(n zE?A4PK)uSQM(k`m+TmAyf=zA>WN|Wy8D6lFa0^cL5gWsg7ybu|j3K?RtHowu*R77- zNM<5}U>GMJ$86D?OVczt4NbiMv!o`7Vf^!5KB;Q zt=Gl$at7~sd^mLIp20&s;gY2lVb3F6dnvN7NS}kHh27N8eou}&d~E$TdyABv1PtM( z{W2ft&{QmbhdLYa9%(z)gEHpWqxF6`T+_(FTfS;!lr_44wRFMwO_^C&?;6o{<$e2{ zsF1OXTO)NLF)${fV&(~ZtfIC-R?U?LJ(Z@28_8DZq^w+RdCe+_5Y+ zmTHJW)?a(Gv>QX_Pm`8It|QB%SGU`{@b$*H`AYrE;?z9Wg&cD!X<|Fkr_-&v5|$^N z`^rxW(}T9oYI=irrS=1hpF}8ngr*xx&RZNdG=y6wfU`pd?Bz=IM+Avk#o?FICyQ=O zTNrKie?VKRr7&q4BW`WxvKSjU85%M_2}qDVpmAN1D~KMC7dqh&k%ZpS%xohxnHDxr zw-PXzaXp?S4w(NeB6#Y}u9qK13*^Qc$kX2)=KGb-cWq>ZBRxeFxgWszrq(ha-^Z~% z5tIYlBQ6yK|0NW7eK-d!A3$4cves`&1uqG%OntN*W8{r`uXi-N zXREpmw-egnmt1esM;4Gh+D=%7GD#Fh&kT;4^N+t&pKXb6F2KuQwK}fs-N;P_XMq@- zUkU%5&hK&lknCG5eP^85H|9w{Pcb_9qP#`ywsB+JD)Glo$p=CdO6S0Ob3iJ9zj`pg zcO+y27Qe;d7O0APwT&5Y_!QnafmWmZlns-8U+Zu+6xh#$Eex~C`BEUpl= z7}6bD?5y?O(V!^RFe7k5VetAg)SG$w0EG=UrIYJ2WCQl>=`tUw%#0OSKWRWeMDZ zAo$~i%Fcagv24;x?UW(%^+m$v-wutMq(t~L0U)xZGZ5LDD*z%J@%hxR77s1VB&9>| z!=)@P%^#AWUT$W-_A@CSSd}g6AQH4#)0Mv77t*H;T_f`%Pd136+2l4kZku3aqjKBk5^EVOEp{_rGjP4xW9AyeZX z2S1wTPV&+C;N2hFpF5fRa3o+CN!h@>&z6En^+7H%fnGf0_jI*t@o8LtEYA*o5$-Z$ zFv(6N*~lQ@G0SCvan!!31mP=;@vbxF;>oj}M9>+B?Bh$APFxwUXVaEBL~&qYFQi^i z{&CUqt&jE+RR=z>ZQ`o9_uzv*Q#AQdrzB14>oBW@o@C$LHW~a%bnd17_YumX3i}AG zUqh8#(u_CCP|nEQb8c2Xqjwo(k@Ebd12v=a$vL9yCNe6l0{6rxJC`^cwzf3|3vPN> z8Ft$!-F*6tL*`8$Q~xbue~?hZ=Qp&M>qq?NnJ#D7r2EDdyuB6NG8<#w`f5_500i07G^-$GN(=Iv3YmH`+Sf-E^UA;0}wM zbx;fzEW`4C=h%AHVCc=Q3JJR(W3JEL!}XI!o*$j88E^`we~q+A@AIRv+VomGseCtR zz~pK7URTY{ce6W8Y=7#$nNka?_S+5-{^M%BX6af5Y3+?5<{q7y_fUiF^{cv>igJg>ZY{NK`fIAqdZmlqZQ7ll5$jR3wJMIg zaN6XR>B!-b?k~}HESmDuCbWUsd)&|@hXsG$KOLP-4(*vu-s1$es{#X7TF8EU-A-KLyc6(6#rN)P6HfrTWiJu) zF(K(Ey=N$KZuln_uCO;m+->~Q|82xGbVUrVpy<23qc!tZ8l10qA;{|tL)LQhG`_7d zcG17=zQBV%rzI;x$!!}q+sY8Q|6!Z*(ZSuQu2WjFocZ=zh5@zoLm45FC&NJxv1uB6 zrXn&gq7k2TX{3J^lU1)=LE?FO!td6Au^Y3>_^F;;|C%i9yv}u6!#zEb$@*HQsru-R zeod@D)8lK^EA6&5VN^j%{0TUBDqf59$45!YqBwW*hXY#O{K&1@4DQ*c`|kZ*Z0~84 zrSxjTFEz$sn?L~B%N)5ylrSR3VdYeMu2nly^OgTdNyR#Oi*X{EOdwJ5 zWDAfPyAl(OJ%ves__=rGsCT@i2s870btKgqHrnv@4-Er#%}u5y$ty96)$??qNu8B6 zywb-s4Fh@&cdoRG93$P2MX!;XjC`rbJ*0iSE|HH+BVy2WW!+y>gvhab(7R=bG~6M5 z?V}8mfx2j%fr0&oXsVw5hED7nEjCui@uazR_~#8rYa1wv-^X){XCQy&gMy=!ZU3CI z)4-Q>r-bVg$35}>21bF}LIp){At)h)8fALigL@i1ko2ohA6`gS)$RH6)7eFq@9-Tj z?fq^l{>E_Li$%Sf*C%&Ub$aT`&JEXTKw%L81S}JnOlW|;qBIQBEaXka;#T+o>sF7J z1|6T_RFBT4BSx-~o7;>SiT!NDpJFRn7NK2a=-Tb4rE$HP|Di+ieMe{{HW0bQpFH6Y zt%N_ycNF2%$HhmkiZA!nhxIrQqgb!qP>aSU^ZYDM=7+v|qH1pz8_(AfLW_F<=Dsq_ z3%ZB(4y004dqtw)eo6nqp=K{kRc7jN1E+Q;gOg(OrgF(c?yw#`5>8_Dy>Tp;21pK&I$mIVpXZ>w!(ZhH-7@~c-EWmoIYFuC=bRb}4)by~s zjaL4vRQapa1l%%bFf1+v0{8$0urX)u0I(Y1X85e;yj zRb`hsUzf=RHZ?Qn^7M0e|8pe{q~+`gZMz^ZKOlFyo@f;>cRvr$vm^jG zq_cVZff%$CC4>tqL-}W$&(;7E3nl^Ma^m_^6Bm~Pa88uZK^^A8O$2%PoB@0#@Qb%=}0{8zo=P#FNp_1m!k1q|@3{quYhlH!0v>NgE8 z4$x};sR1lAAm9Jcps+K1*Y6q}4veaQ#z{$>IrVku-1)|RGNli~DF8~zx*M=&W z1;QRJBW(|{lX8@?vxiAbqa7seU=9$79UAUrZ!aZoufX;HhgkjTC9%W!{uxBE87-2Lk&)0qDx*Y735jGyR)j=| zvS;7xI>$lddEU?a`Fy^=?;pR%bMABB*L_{D>vg^MHC`t+by+zc6fc&Nt+(%O6D0=8 zk90IYNhv1Ar|s!vh2&E=v$3KCS7$2+S0oC&)uiN8wX(D|lXg6VG~@>b0>T2kXd!;2 z5EjKNB+PG2$*1jXYfpI1%g+z0;IF?|)3kDNbaS?_azUaAaOIsH-JFnOV#t-g3D105 z;Mv*C!Nmz8Vd077lK~~NR_?YIR+{qCNO5r_C7+C=gDb$$1&M{A#KkGC94z5D;N!}8 zRID6qTu&fTC=3n-D!8~hTbbEYB2R-F9!M;jR{+hA6y!(q3JT(o_QV35fH1EBKMrY! z6c7NfaQw*MONfo^h>g|?kh(|*BqitqPzIpFD~tssI#m|cd?|HBo zUbG-T(%A}Wjntsj_yt8AKoN@)T0>C)hvvnh_}8KMdkL}8DvE0b{{%&1?Nt;p!n{KK z!heOL0KWjBCVCA;tRSEwC|IN7?%CTmk=AR zqPSM@Pf#S*UPTe}vn&ElRifnQ6~GB1Jt(EMk$iG!BtR2txwbX(h&Ck(e{Tcoz%qGC zK6xz^(#B=A4XEc#X=n^|&T{n~9u5YH5?TibstgK947lQ;%Ag^gY>=RxwlfkmAnJ}F zU?WZdscnfwaw4=4P6%g&Ey4j|gFu3-6~Y7Ig0KVMuHerK;d~IOeG*^^w2Fw=pT_XZ zJ3(Loh{J0cLJ^ ztj$3W7Kl@z9wen3o~aPJD;{eX@azWO*&#du3`c}JXyd$w1%d3VV}&@YfEqS16wH>%T@4yoKlz z2x*2FFlbf@geQ6@qT2p$IQc>QHB(0rJ%TVpp|S-1LZO4CK?2cs19c%AiQ-O#3)u!0 zA7TQO9X$PwDF!t>@Nn0+UMGzBo**PMpak&hgzu9$N`lFV10V)^Kx~;Pb|6-6BG$E+|d64M;*&xBhf*1XVK|+Z>1yF|} z7PKGGH2-XLEdbw~Kn;TS!sry%gy#9D0Q)~tdBr6N0AlkC5akGx*cMM{7rZ^t22uj$ z#v1Q{?C=4Z4c<`@`zP2i0&9r&1!7_j@PqnBaB6G8Ah8Z~!|)zP-blQKf@5B%EB_RK zoB*#Nn9dXQ0OAXs5Om0%0Ja_dXeZ%&f(u`@glnuNY9(H5{+;6z zz~F#xU{)}c#tWqlz+gT9phiMF4Q&PzaT?s=-P&K^@fVikFGTwvOqamY056K4INg9m zgajf?dmt%c^lS;tIss`&V(8)5%;fJ53We9o_3pSg*v?E(AL9-WFnef zV$4c_We?sE-3xSfkdGETj&x4hqb;2=gsyEF3^fNJ%sT zw^B-+Gr;lw>h>TEB5cA)iM4-qtZP*HyV=D$<^4%*{z6>;p@L(Dz_P@uYmoyZhi;W% zG@$Xr^L33Et4gr8Bm!6U@DmVWA?U)eZ~{Up3|6PWdLvdCi(hxd2=MZQ*E~YJD69}+ zLFhD+VD{Hv*ZV#qgrD$3BIFTL2u*}6;t1j>2&a(0VfNp-LJW!*1=bpWCIVy+-tPYf z9IQ{RE|s7JFkt2d+O7-{Eet?m{;MIbg7{^OS_mC5#$#ZN`v2n*3V}5^LDVlJgyO2U zVyD+Ta%i<-Gz0w#SSI*o{8%IkvyK3G0sEWa1ucl-6#`-9&%`|dfD`N=v|fZ*Vr@o9 zh&o&m2Y%`L7a9LgvW*b}UKfk~rE93V#OWVldI=35^!01rj9@t73}cu+6_Z%R2%(C(J+z>xx9%2dyJ& z)yAy_7etHsi>1cb=KY)1CKxFa`hhml3Itq4yNE&v0z3VyHT|=pqF{w>IX#v%1hbTCMiBPAGn1#!q(Vr*}Y52ut;Z73BXUyI^$%?$lsWSfFd@ z6>r9h5dNQO1c>#)2G1{0p*j%4U+CH36qXng6KMq1#0rFagq1sUpe|>A!vid(qJ>tL z$5-6LPsI4sfHmcTtN4A5iIN|A5-fo$Ay-z=alqi>X(7mqMWc}RV9jZzKnTp31duo! zShE0X4weeg;5~>{(fI0wM+-_E78Kyt-eUk5NZOUw#76>jP@PzS1N8)vtE~liaqFQI z9zk_t?Nmj#S4*qZxE7Wl#D<2qU3NBzXDmB%$%AiiJWHL*3}kqCWN z7BIp>pu1IBfRFrZvOs)Xl?7tKikz;tCdk4n^#3(k0NX=C>tq3q!2ZUPe*3z@670V4$L=sJ$AJg&;a>iZP|Ahsqx z5}>cigAfXIwBRcn^!?;;K~ zkUIOnoaL?ge;Clhwe>ZqP-=h11uokWmKIT9b_e0Y1p~Od1!EzIE&PUaYfJD)oF^0K zbL#_3qUVH*ATVMf%%$MW8Sa+BP?NBz3jLkY z?^CXy=M(PN2O(I1tdKAg4T2l=>ZXq(pevXytZ|G;u|I{G|E5b$f=V2}~`(-tqcMDr9J+%Di(OR^{`fJt-^w5TJg2k!6Iq^kqkr{ zulH8OcmIj4D-Ie3yq3`FDLq-hRT#q%PHC)~*Tob66iYA{K?D0uFmf`WZy2+{T_@u5=TB1wJT5RU zR>k*6z;Io!L>j@9$SY@!SI#7(z!J`HXRKW)`IK!fU66+G1hys;oT8R-bc08(|KoA% zwZqN=zXCpT##LU+)yx%~;FeZJ@*Q<_wl}k*>#KFSR($>KS z$)^a4Ty0%Fc@!wYnQa#fKm#)eR|o-&6?jjiCOk0isN-M@T38{$76~|EzJ?X7@e{3n z!AeF^7M4Kd(Ek)U&_>JC#nsAQ(ZSjg3662XGwl!x#LwB*$<@&r9BL&L%jzNpuwdA_ zNJAtB4K8Tl$1y-{!TKXo5Nuov2%?cfU{?*C`3C+Tgp5 zObJ%qK`VSiustFm3}Q$O5*{oErzAlG90v4)6%;}W1H+Gl6LsJ^abN`z2doTShY|pe z7zfM*I9~>Q4fHnx017y-z>h-0v+FoP48R7|11^y

    v)*poId!* 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 literal 0 HcmV?d00001 diff --git a/tests/data/snapshots/inline-line-height.pdf b/tests/data/snapshots/inline-line-height.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5678eb0d749bf30cab0efcbfc389d365fd89b4d9 GIT binary patch literal 42659 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 Uv+M8cj|2GJup?4ZiYrR|7i2T+LI3~& literal 0 HcmV?d00001 From daa7bb658499e5fe503203066475eac67f661c14 Mon Sep 17 00:00:00 2001 From: Jake Jackson Date: Wed, 30 Sep 2026 19:00:30 +1000 Subject: [PATCH 2/2] Add the pull request to the changelog entry for inline line-height Co-Authored-By: Claude Opus 5.5 --- CHANGELOG-GRAVITYPDF.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG-GRAVITYPDF.md b/CHANGELOG-GRAVITYPDF.md index 917c62113..93d469bcc 100644 --- a/CHANGELOG-GRAVITYPDF.md +++ b/CHANGELOG-GRAVITYPDF.md @@ -52,7 +52,7 @@ Read this section before upgrading from upstream mPDF. Each entry says what chan * `

    ` passes its alignment on to what it holds, and `
  • ` beats the marker the item inherits from its list. * Attributes mPDF ignored now take effect: `
    `, `
    `, `` (float left or right, or vertical alignment), ``, ``, and `` wider than 1. * A table's `border` gives each cell a 1px border of its own, which a rule for the table's border leaves alone. Before, the cells copied the table's border. -* **`line-height` on an inline element sets the height of its line**, as in a browser. mPDF ignored it, so `` left its line as it was. Now each inline element's box is as tall as its line-height, and a line grows to hold the tallest box on it, text or image, in blocks and table cells alike. The block's own line height is the least a line can be, so a smaller inline line-height, or `0`, does not shrink it. A percentage in `vertical-align` is taken of the element's own line-height. `line-height` on a `

    ` or `

    ` inside a table cell, which mPDF lays out as inline content, can now make its lines taller than the cell's. Set `'cssMode' => \Mpdf\CssMode::LEGACY` to ignore it as before. [#548] +* **`line-height` on an inline element sets the height of its line**, as in a browser. mPDF ignored it, so `` left its line as it was. Now each inline element's box is as tall as its line-height, and a line grows to hold the tallest box on it, text or image, in blocks and table cells alike. The block's own line height is the least a line can be, so a smaller inline line-height, or `0`, does not shrink it. A percentage in `vertical-align` is taken of the element's own line-height. `line-height` on a `

    ` or `

    ` inside a table cell, which mPDF lays out as inline content, can now make its lines taller than the cell's. Set `'cssMode' => \Mpdf\CssMode::LEGACY` to ignore it as before. [#548] [#646] New features ------------ @@ -814,6 +814,7 @@ These changes do not change output. [#536]: https://github.com/GravityPDF/mpdf/issues/536 [#537]: https://github.com/GravityPDF/mpdf/issues/537 [#538]: https://github.com/GravityPDF/mpdf/issues/538 +[#548]: https://github.com/GravityPDF/mpdf/issues/548 [#549]: https://github.com/GravityPDF/mpdf/pull/549 [#552]: https://github.com/GravityPDF/mpdf/issues/552 [#560]: https://github.com/GravityPDF/mpdf/pull/560 @@ -858,7 +859,6 @@ These changes do not change output. [#629]: https://github.com/GravityPDF/mpdf/pull/629 [#631]: https://github.com/GravityPDF/mpdf/pull/631 [#632]: https://github.com/GravityPDF/mpdf/issues/632 -[#548]: https://github.com/GravityPDF/mpdf/issues/548 [#633]: https://github.com/GravityPDF/mpdf/pull/633 [#634]: https://github.com/GravityPDF/mpdf/pull/634 [#635]: https://github.com/GravityPDF/mpdf/pull/635 @@ -867,3 +867,4 @@ These changes do not change output. [#638]: https://github.com/GravityPDF/mpdf/pull/638 [#639]: https://github.com/GravityPDF/mpdf/pull/639 [#641]: https://github.com/GravityPDF/mpdf/pull/641 +[#646]: https://github.com/GravityPDF/mpdf/pull/646