<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[244202] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/244202">244202</a></dd>
<dt>Author</dt> <dd>zalan@apple.com</dd>
<dt>Date</dt> <dd>2019-04-11 16:33:41 -0700 (Thu, 11 Apr 2019)</dd>
</dl>

<h3>Log Message</h3>
<pre>Add @page margin support
https://bugs.webkit.org/show_bug.cgi?id=196680
<rdar://problem/45217707>

Reviewed by Tim Horton.

Source/WebCore:

This patch adds support for @page margin. This feature is currently behind a runtime flag and is off by default.
We resolve the @page margin values in the WebProcess (currently no pseudo class is supported) and transfer them to the UIProcess through computedPagesCallback.
UIProcess is responsible for applying these new values on the printer. We also re-compute the available width/height for the current printing context
in the WebProcess if needed (see PrintInfo for current printer margins).

Tests: printing/page-with-10mm-left-margin.html
       printing/page-with-zero-margin.html

* page/PrintContext.cpp:
(WebCore::PrintContext::computedPageMargin):
(WebCore::PrintContext::computedPageSize):
* page/PrintContext.h:
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::pageAtRuleSupportEnabled const):
(WebCore::RuntimeEnabledFeatures::setPageAtRuleSupportEnabled):

Source/WebKit:

* Shared/PrintInfo.cpp:
(WebKit::PrintInfo::encode const):
(WebKit::PrintInfo::decode):
* Shared/PrintInfo.h:
* Shared/WebPreferences.yaml:
* Shared/gtk/PrintInfoGtk.cpp:
(WebKit::PrintInfo::PrintInfo):
* Shared/mac/PrintInfoMac.mm:
(WebKit::PrintInfo::PrintInfo):
* UIProcess/API/C/WKPage.cpp:
(WKPageComputePagesForPrinting):
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetPageAtRuleSupportEnabled):
(WKPreferencesGetPageAtRuleSupportEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/GenericCallback.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::computedPagesCallback):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/mac/WKPrintingView.mm:
(pageDidComputePageRects):
(-[WKPrintingView _askPageToComputePageRects]):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::beginPrinting):
(WebKit::WebPage::computePagesForPrinting):
(WebKit::WebPage::computePagesForPrintingImpl):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::computePagesForPrintingAndDrawToPDF):

LayoutTests:

* printing/page-with-10mm-left-margin-expected.pdf: Added.
* printing/page-with-10mm-left-margin.html: Added.
* printing/page-with-zero-margin-expected.pdf: Added.
* printing/page-with-zero-margin.html: Added.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorepagePrintContextcpp">trunk/Source/WebCore/page/PrintContext.cpp</a></li>
<li><a href="#trunkSourceWebCorepagePrintContexth">trunk/Source/WebCore/page/PrintContext.h</a></li>
<li><a href="#trunkSourceWebCorepageRuntimeEnabledFeaturesh">trunk/Source/WebCore/page/RuntimeEnabledFeatures.h</a></li>
<li><a href="#trunkSourceWebKitChangeLog">trunk/Source/WebKit/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitSharedPrintInfocpp">trunk/Source/WebKit/Shared/PrintInfo.cpp</a></li>
<li><a href="#trunkSourceWebKitSharedPrintInfoh">trunk/Source/WebKit/Shared/PrintInfo.h</a></li>
<li><a href="#trunkSourceWebKitSharedWebPreferencesyaml">trunk/Source/WebKit/Shared/WebPreferences.yaml</a></li>
<li><a href="#trunkSourceWebKitSharedgtkPrintInfoGtkcpp">trunk/Source/WebKit/Shared/gtk/PrintInfoGtk.cpp</a></li>
<li><a href="#trunkSourceWebKitSharedmacPrintInfoMacmm">trunk/Source/WebKit/Shared/mac/PrintInfoMac.mm</a></li>
<li><a href="#trunkSourceWebKitUIProcessAPICWKPagecpp">trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp</a></li>
<li><a href="#trunkSourceWebKitUIProcessGenericCallbackh">trunk/Source/WebKit/UIProcess/GenericCallback.h</a></li>
<li><a href="#trunkSourceWebKitUIProcessWebPageProxycpp">trunk/Source/WebKit/UIProcess/WebPageProxy.cpp</a></li>
<li><a href="#trunkSourceWebKitUIProcessWebPageProxyh">trunk/Source/WebKit/UIProcess/WebPageProxy.h</a></li>
<li><a href="#trunkSourceWebKitUIProcessWebPageProxymessagesin">trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in</a></li>
<li><a href="#trunkSourceWebKitUIProcessmacWKPrintingViewmm">trunk/Source/WebKit/UIProcess/mac/WKPrintingView.mm</a></li>
<li><a href="#trunkSourceWebKitWebProcessWebPageWebPagecpp">trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp</a></li>
<li><a href="#trunkSourceWebKitWebProcessWebPageWebPageh">trunk/Source/WebKit/WebProcess/WebPage/WebPage.h</a></li>
<li><a href="#trunkSourceWebKitWebProcessWebPageiosWebPageIOSmm">trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsprintingpagewith10mmleftmarginexpectedpdf">trunk/LayoutTests/printing/page-with-10mm-left-margin-expected.pdf</a></li>
<li><a href="#trunkLayoutTestsprintingpagewith10mmleftmarginexpectedtxt">trunk/LayoutTests/printing/page-with-10mm-left-margin-expected.txt</a></li>
<li><a href="#trunkLayoutTestsprintingpagewith10mmleftmarginhtml">trunk/LayoutTests/printing/page-with-10mm-left-margin.html</a></li>
<li><a href="#trunkLayoutTestsprintingpagewithzeromarginexpectedpdf">trunk/LayoutTests/printing/page-with-zero-margin-expected.pdf</a></li>
<li><a href="#trunkLayoutTestsprintingpagewithzeromarginexpectedtxt">trunk/LayoutTests/printing/page-with-zero-margin-expected.txt</a></li>
<li><a href="#trunkLayoutTestsprintingpagewithzeromarginhtml">trunk/LayoutTests/printing/page-with-zero-margin.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (244201 => 244202)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog      2019-04-11 23:13:44 UTC (rev 244201)
+++ trunk/LayoutTests/ChangeLog 2019-04-11 23:33:41 UTC (rev 244202)
</span><span class="lines">@@ -1,3 +1,16 @@
</span><ins>+2019-04-11  Zalan Bujtas  <zalan@apple.com>
+
+        Add @page margin support
+        https://bugs.webkit.org/show_bug.cgi?id=196680
+        <rdar://problem/45217707>
+
+        Reviewed by Tim Horton.
+
+        * printing/page-with-10mm-left-margin-expected.pdf: Added.
+        * printing/page-with-10mm-left-margin.html: Added.
+        * printing/page-with-zero-margin-expected.pdf: Added.
+        * printing/page-with-zero-margin.html: Added.
+
</ins><span class="cx"> 2019-04-09  Ryosuke Niwa  <rniwa@webkit.org>
</span><span class="cx"> 
</span><span class="cx">         [iOS] Moving backwards by word granularity does not work if the previous line was inside another block element
</span></span></pre></div>
<a id="trunkLayoutTestsprintingpagewith10mmleftmarginexpectedpdf"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/printing/page-with-10mm-left-margin-expected.pdf (0 => 244202)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/printing/page-with-10mm-left-margin-expected.pdf                               (rev 0)
+++ trunk/LayoutTests/printing/page-with-10mm-left-margin-expected.pdf  2019-04-11 23:33:41 UTC (rev 244202)
</span><span class="lines">@@ -0,0 +1,203 @@
</span><ins>+%PDF-1.3
+%\xC4\xE5\xF2\xE5\xEB\xA7\xF3\xA0\xD0\xC4\xC6
+4 0 obj
+<< /Length 5 0 R /Filter /FlateDecode >>
+stream
+x\xAD\x90?k\xC40 \xC5\xF7|\x8A7:C}\x96\xE3?\xE9\xDAҥہ\xA1C\xE9Pr\x97\xCBA\xD24I \xFD\xF8u|v|pS\xA1h\x90\xF4xH?i\xC2d\xCD+e\x94\x81 q\xAA5\xE6#^\xF0\x81\xDD\xE3BhP\x88\xA5\xC9^)5Pe\xB9\x96\xF0Mѧ\x86j\xE2F\x93E\x9F\xDDWZ\x87"\x847A\xF0ZH\xAB\x8C+\xD2]n7\xAAux3\xE0\xC1\x81\xCC\xC52)\xB8;\xE7V6\xD7\xE2̕\xB0\xECX\xFA\xA9\xEC\xE7+XJ\xF8\xC9^\xEA\xC6\xEF\xBE,By\xC8j\xF2\xBDG\xFF\x9C$\xC5 op\xCFxr\xE1c\x99r\xBD\xE4Е\xBC\x81&1ĵ)\xA3\x9Dǭ\xBE\xA0\xACKWa>G\xFF\xA9\xFB/,-n\xB0Һ\xC3)U[\xA4\xC7D\x9A\x82\xE13\xBDh\xF3\xF1\xEB_\xED\xE1T\x80
+endstream
+endobj
+5 0 obj
+248
+endobj
+2 0 obj
+<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 155.52 243.84]
+>>
+endobj
+6 0 obj
+<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R
+>> >>
+endobj
+9 0 obj
+<< /Length 10 0 R /N 3 /Alternate /DeviceRGB /Filter /FlateDecode >>
+stream
+x\x9D\x96wTS\xD9\x87Ͻ7\xBD\xD0" %\xF4z        \xD2;HQ\x89I\x80P\x86\x84&vDF)VdT\xC0G\x87"cE \x83\x82b\xD7   \xF2P\xC6\xC1QDE\xE5݌k        \xEF\xAD5\xF3ޚ\xFD\xC7Y\xDF\xD9\xE7\xB7\xD7\xD9g\xEF}׺P\xFC\x82\xC2tX\x804\xA1X\xEE\xEB\xC1\\xCB\xC4\xF7X\xC0\xE1ffG\xF8D\xD4\xFC\xBD=\x99\x99\xA8HƳ\xF6\xEE.\x80d\xBB\xDB,\xBFP&s\xD6\xFF\x91"7C$
+E\xD56<~&\xE5\x94S\xB3\xC52\xFF\xCA\xF4\x95)2\x8612\xA1    \xA2\xAC"\xE3įl\xF6\xA7\xE6+\xBBɘ\x97&\xE4\xA1Y\xCE\xBC4\x9E\x8C\xBBPޚ%ᣌ\xA1\\x98%\xE0g\xA3|e\xBDTI\x9A\xE5\xF7(\xD3\xD3\xF8\x9CL0\x99_\xCC\xE7&\xA1l\x892E\xEE\x89\xF2\x94\xC49\xBCr\x8B\xF99h\x9Ex\xA6g\xE4\x8A\x89Ib\xA6טi\xE5\xE8\xC8f\xFA\xF1\xB3S\xF9b1+\x94\xC3M\xE1\x88xL\xCF\xF4\xB4 \x8E0\x80\xAFo\x96E%Ym\x99h\x91\xED\xAD\xED\xEDY\xD6\xE6h\xF9\xBF\xD9\xDF~S\xFD=\xC8z\xFBU\xF1&\xECϞA\x8C\x9EY\xDFl\xEC\xAC/\xBD\xF6$Z\x9B\xB3\xBE\x95U\xB4m@\xE5\xE1\xACO\xEF \xF2\xB4ޜ\xF3\x86l^\x92\xC4\xE2 ' \x8B\xEC\xECls\x9Fk.+\xE87\xFB\x9F\x82oʿ\x869\xF7\x99\xCB\xEE\xFBV;\xA6?\x81#I3eE妧\xA6KD\xCC\xCC \x97\xCFd\xFD\xF7\xFF\xE3\xC09i\xCD\xC9\xC3,\x9C\x9F\xC0\xF1\x85\xE8UQ\xE8\x94   \x84\x89h\xBB\x85<\x81X\x90.d
+\x84\xD5\xE16'~\x9Dkhu_}\x859P\xB8I\xC8o=C#$n?z}\xEB[1
+Ⱦ\xBCh\xAD\x91\xAFs\x8F2z\xFE\xE7\xFA \\x8An\xE1LA"S\xE6\xF6 \x8Fdr%\xA2,\xA3߄l\xC1\x90t\xA0
+4\x81.0,`+\x803p\xDE \x84\x80H\x96.Hi@\xB2A>\xD8
+A1\xD8v\x83jpԁz\xD0N\x826p\W\xC0+p \x80G@
+\x86\xC1K0ށi\x82\xF0\xA2A\xAA\x90\xA4\x99B\xD6ZyCAP8\xC5C\x89\x90\x92@\xF9\xD0&\xA8*\x83\xAA\xA1CP=\xF4#t\xBA]\x83\xFA\xA0\xD0 4\xFD}\x84\x98\xD3a+\xD8\xB6\x80ٰ;G\xC2\xCB\xE0Dx\x9C\xC0\xDB\xE1J\xB8>\xB7\xC2\xE1\xF0,\x85_“@\xC8\xD1FX\xF1DB\x90X$!k\x91"\xA4\xA9E\x9A\x90\xA4\xB9\x8DH\x91q\xE4\x87\xA1a\x98\xC6\xE3\x87Y\x8C\xE1bVa\xD6bJ0՘c\x98VL\xE66f3\x81\xF9\x82\xA5bձ\xA6X'\xAC?v 6\x9B\x8D-\xC4V`\x8F`[\xB0\x97\xB1\xD8a\xEC;\xC7\xC0\xE2p~\xB8\2n5\xAE\xB7׌\xBB\x80\xEB\xC3+\xE1&\xF1x\xBC*\xDE\xEF\x82\xC1s\xF0b|!\xBE
+ߏƿ'\x90 Zk\x82!\x96 $l$T\xE7\xFD\x84\xC24Q\x81\xA8Ot"\x86y\xC4\b)\xB1\x8E\xD8A\xBCI&N\x93I\x86$R$)\x99\xB4\x81TIj"]&=&\xBD!\x93\xC9:dGrY@^O\xAE$\x9F _%\x92?P\x94(&OJEB\xD9N9J\xB9@y@yC\xA5R+\xA8n\xD4X\xAA\x98\xBA\x9DZO\xBDD}J}/G\x933\x97\xF3\x97\xE3ɭ\x93\xAB\x91k\x95\xEB\x97{%O\x94חw\x97_.\x9F'_!J\xFE\xA6\xFC\xB8Q\xC1@\xC1S\x81\xA3\xB0V\xA1F\xE1\xB4\xC2=\x85IE\x9A\xA2\x95b\x88b\x9Ab\x89b\x83\xE25\xC5Q%\xBC\x92\x81\x92\xB7O\xA9@\xE9\xB0\xD2%\xA5!BӥyҸ\xB4M\xB4:\xDAe\xDA0G7\xA4\xFBӓ\xE9\xC5\xF4\xE8\xBD\xF4 e%e[\xE5(\xE5\xE5\xE5\xB3\xCAR\xC20`\xF83R\xA5\x8C\x93\x8C\xBB\x8C\x8F\xF34\xE6\xB9\xCF\xE3\xCF\xDB6\xAFi^\xFF\xBC)\x95\xF9*n*|\x95"\x95f\x95\x95\x8F\xAALUo\xD5՝\xAAm\xAAO\xD40j&jaj\xD9j\xFB\xD5.\xAB\x8Dϧ\xCFw\x9Eϝ_4\xFF\xE4\xFC\x87갺\x89z\xB8\xFAj\xF5\xC3\xEA=\xEA\x93\x9A\xBEU\x974\xC65\x9An\x9Aɚ\xE5\x9A\xE74ǴhZ \xB5Z\xE5Z\xE7\xB5^0\x95\x99\xEE\xCCTf%\xB3\x8B9\xA1\xAD\xAE\xED\xA7-\xD1>\xA4ݫ=\
 xADc\xA8\xB3Xg\xA3N\xB3\xCE]\x92.[7A\xB7\\xB7SwBOK/X/_\xAFQ\xEF\xA1>Q\x9F\xAD\x9F\xA4\xBFG\xBF[\xCA\xC0\xD0 \xDA`\x8BA\x9B\xC1\xA8\xA1\x8A\xA1\xBFa\x9Ea\xA3\xE1c#\xAA\x91\xAB\xD1*\xA3Z\xA3;\xC68c\xB6q\x8A\xF1>\xE3[&\xB0\x89\x9DI\x92I\x8D\xC9MS\xD8\xD4\xDET`\xBAϴ\xCF k\xE6h&4\xAB5\xBBǢ\xB0\xDCYY\xACF֠9\xC3<\xC8|\xA3y\x9B\xF9+ =\x8BX\x8B\x9D\xDD_,\xED,S-\xEB,Y)YXm\xB4\xEA\xB0\xFA\xC3\xDAĚk]c}džj\xE3c\xB3Φ\xDD浭\xA9-\xDFv\xBF\xED};\x9A]\xB0\xDD\xBBN\xBB\xCF\xF6\xF6"\xFB&\xFB1=\x87x\x87\xBD\xF7\xD8tv(\xBB\x84}\xD5\xEB\xE8\xE1\xB8\xCE\xF1\x8C\xE3'{'\xB1\xD3I\xA7ߝY\xCE)\xCE+Σ \xF0\xD4-r\xD1q\xE1\xB8r\x91.d.\x8C_xp\xA1\xD4Uە\xE3Z\xEB\xFA\xCCM׍\xE7v\xC4m\xC4\xDD\xD8=\xD9\xFD\xB8\xFB+K\x91G\x8Bǔ\xA7\x93\xE7\xCF ^\x88\x97\xAFW\x91W\xAF\xB7\x92\xF7b\xEFj\xEF\xA7>:>\x89>\x8D>\xBEv\xBE\xAB}/\xF8a\xFD\xFDv\xFA\xDD\xF3\xD7\xF0\xE7\xFA\xD7\xFBO8\xAC \xE8
+\xA4FV> 2        u\xC3\xC1\xC1\xBB\x82/\xD2_$\\xD4B\xFCCv\x85< 5 ]\xFAs.,4\xAC&\xECy\xB8Ux~xw-bEDCĻH\x8F\xC8\xD2\xC8G\x8B\x8DKwF\xC9G\xC5E\xD5GME{E\x97EK\x97X,Y\xB3\xE4F\x8CZ\x8C \xA6={$vr\xA9\xF7\xD2\xDDK\x87\xE3\xEC\xE2
+\xE3\xEE.3\\x96\xB3\xEC\xDAr\xB5\xE5\xA9\xCBϮ\x90_\xC1Yq*\xDF\xFF\x89©\xE5L\xAE\xF4_\xB9w\xE5ד\xBB\x87\xFB\x92\xE7\xC6+\xE7\x8D\xF1]\xF8e\xFC\x91\x97\x84\xB2\x84\xD1D\x97\xC4]\x89cI\xAEII\xE3OA\xB5\xE0u\xB2_\xF2\x81䩔\x90\x94\xA3)3\xA9ѩ\xCDi\x84\xB4\xF8\xB4\xD3B%a\x8A\xB0+]3='\xBD/\xC34\xA30C\xBA\xCAi\xD5\xEEU\xA2@ёL(sYf\xBB\x98\x8E\xFEL\xF5H\x8C$\x9B%\x83Y \xB3j\xB2\xDEgGe\x9F\xCAQ\xCC\xE6\xF4\xE4\x9A\xE4n\xCB\xC9\xF3\xC9\xFB~5f5wug\xBEv\xFE\x86\xFC\xC15\xEEk\xAD\x85֮\۹Nw]\xC1\xBA\xE1\xF5\xBE\xEB\x8Fm mH\xD9\xF0\xCBFˍe\xDFn\x8A\xDE\xD4Q\xA0Q\xB0\xBE`h\xB3\xEF\xE6\xC6B\xB9BQ\xE1\xBD-\xCE[l\xC5ll\xED\xDDf\xB3\xADjۗ"^\xD1\xF5b\xCB\xE2\x8A\xE2O%ܒ\xEB\xDFY}W\xF9\xDD\xCC\xF6\x84\x{DF65}\xF6\xA5\xFBw\xE0vw\xDC\xDD\xE9\xBA\xF3X\x99bY^\xD9Ю\xE0]\xAD\xE5\xCC\xF2\xA2\xF2\xB7\xBBW\xEC\xBEVa[q`i\x8Fd\x8F\xB42\xA8\xB2\xBDJ\xAFjGէ\xEA\xA4\xEA\x81\x8F\x9A\xE6\xBD\xEA{\xB7\xED\x9D\xDA\xC7\xDB׿\xDFm\xD3\x8D\xC5>\xBC\xC8\xF7Pk\xADAm\xC5a\xDC\xE1\xAC\x
 C3\xCF\xEB\xA2꺿g_D\xEDH\xF1\x91\xCFG\x85G\xA5\xC7u\xD5;\xD4\xD77\xA87\x946\x92Ʊ\xE3q\xC7o\xFD\xE0\xF5C{\xAB\xE9P3\xA3\xB9\xF88!9\xF1\xE2\xC7\xF8\xEF\x9E <\xD9y\x8A}\xAA\xE9'\xFD\x9F\xF6\xB6\xD0Z\x8AZ\xA1\xD6\xDC։\xB6\xA46i{L{\xDF\xE9\x80ӝ\xCE-?\x9B\xFF|\xF4\x8C\x{1996B3}\xCAgKϑ\xCE\x9C\x9B9\x9Fw~\xF2Bƅ\xF1\x8B\x89\x87:Wt>\xBA\xB4\xE4ҝ\xAE\xB0\xAE\xDEˁ\x97\xAF^\xF1\xB9r\xA9۽\xFB\xFCU\x97\xABg\xAE9];}\x9D}\xBD\xED\x86\xFD\x8D\xD6\xBB\x9E\x96_\xEC~i\xE9\xB5\xEFm\xBD\xE9p\xB3\xFD\x96㭎\xBE}\xE7\xFA]\xFB/\xDE\xF6\xBA}\xE5\x8E\xFF\x9D\x8B\xFA\xEE.\xBE{\xFF^\xDC=\xE9}\xDE\xFD\xD1\xA9^?\xCCz8\xFDh\xFDc\xEC\xE3\xA2'
+O*\x9E\xAA?\xAD\xFD\xD5\xF8\xD7f\xA9\xBD\xF4\xEC\xA0\xD7`ϳ\x88g\x8F\x86\xB8C/\xFF\x95\xF9\xAFO\xC3ϩ\xCF+F\xB4F\xEAG\xADGό\xF9\x8C\xDDz\xB1\xF4\xC5\xF0ˌ\x97\xD3ㅿ)\xFE\xB6\xF7\x95ѫ\x9F~w\xFB\xBDgb\xC9\xC4\xF0k\xD1\xEB\x99?Jި\xBE9\xFA\xD6\xF6m\xE7d\xE8\xE4\xD3wi獵\x8Aޫ\xBE?\xF6\x81\xFD\xA1\xFBc\xF4Ǒ\xE9\xECO\xF8O\x95\x9F\x8D?w|     \xFC\xF2x&mf\xE6\xDF\xF7\x84\xF3\xFB
+endstream
+endobj
+10 0 obj
+2612
+endobj
+7 0 obj
+[ /ICCBased 9 0 R ]
+endobj
+3 0 obj
+<< /Type /Pages /MediaBox [0 0 155.52 243.84] /Count 1 /Kids [ 2 0 R ] >>
+endobj
+11 0 obj
+<< /Type /Catalog /Pages 3 0 R >>
+endobj
+8 0 obj
+<< /Type /Font /Subtype /TrueType /BaseFont /AMNMAL+Times-Roman /FontDescriptor
+12 0 R /Encoding /MacRomanEncoding /FirstChar 32 /LastChar 120 /Widths [ 250
+0 0 0 0 0 0 0 0 0 0 0 0 0 250 0 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 611 0 0 0 0 0 0 0 0 0 0 0 0 444 0 0 500
+444 333 500 500 278 0 0 278 778 0 500 500 0 333 389 278 500 0 0 500 ] >>
+endobj
+12 0 obj
+<< /Type /FontDescriptor /FontName /AMNMAL+Times-Roman /Flags 32 /FontBBox
+[-203 -428 1700 1272] /ItalicAngle 0 /Ascent 750 /Descent -250 /CapHeight
+662 /StemV 0 /XHeight 453 /MaxWidth 1721 /FontFile2 13 0 R >>
+endobj
+13 0 obj
+<< /Length 14 0 R /Length1 11116 /Filter /FlateDecode >>
+stream
+x\xBDz        xս\xEF93\x8D\xF6}\xB3,y$\x8DVK\x96d˒,[\xB6Ƕ\xE4x\xC9\xE2$\xB1\x9C\xD8I I $!\xC1%@ \xD0\xC1)\x974-[\xA0\xCAڤ4\xB2rJ!\xC2\xD2^i/t\x81@i     \x94[\xF0\xED\x96\xD0%\xB1\xF4\xFEg\xE4\xE8\xC7}_\xBF\xF7\xDD\xEF\xCDќ}\xFDo\xE7w\xCEh\xEB\x95W\x8D"ځh$\xAC\xDE0\xB2   \x89\x8F\xC1\xC1\x8FW\x8Fmu\x95\xD32HK\xAA.\xD9t\xE9\x86rZ\x95E\x88\xD9y\xE9\xE5\xDB.)\xA7\x8D6\x84\xAC\xEF\xADYSN\xA3s\xA6\xD6BF9\x8D\xEB!\xF4\xAEݰ\xF5\xEArZ\xCB7\xAE\x9E-7|\xE9膑\xABg\xC7G'!\xED\xBAbd\xC3h\xB9~\xB8 B轢[\xB6\x96\xD3\xD5\x83\xB0oӕ\xA3\xB3\xF5\xF1B\xD2^|\x98\xD6^\xF7\xE7\xED\xDB\xFFD\xFD\xF6\xD0\xFA\xF5\x840Բ\xA0\xCDH\x8A\xEEBrD!\xB8&\x84؏\xA4/     \x94\x92rxv]\xB6\xF8\xFD\x95\xDA\xEC\xAC\x97\x89釛\x97\x8B\xE1\xCF\xC6/\x9F\xFB\xA6z\xAF"\xF2\xF3\xF5I(EE\xC8R\xBFX.\xAB\xF7^(ہg\x99B\xB5\xE1) Z\xF9O\xFA\xB1\xB6\xB7\xBE\xC2\xF6c\xA1M\x8D\xCFB\xF5\xB8\xE8\xBBD_'\xFA\x9F\x94\xB9\xF0n\xEF\x96\xE2?\xB6-\xA0\xC8\xFF@\xD1\xE0\xA3\xC8l \xB8\x84
+{\x8E\x92\xBFB\xEC \xC4(\xF4 E^\xBB\x81B\xF0\x92P\x86\xEE\x80\xF8\xDFA1\xCA\x8B6B\xCEF\xC8\xD99!G\x82VB\xAAFX       )-\x80u\x81\x98\x8AC\xAARq1\x83\xD1b\x90\x8A\x89)\x8E\x92Mb\x99\xF04\xFE\xCFË\x9E\xD2r\xCFo\xD6p\xCF\xE0^<\xADB\xAE\x9D\xBCe\xF7,~ \xB9\x90\xDF!\xFA7    \x97\xFA]\x97\xFA-\x97\xFA\x97\xFA\x97\xFAY\xBC \xF5A\xF1墏M\x9F\xFA\x97}\xEA\x8E>uk\x9F\xBA\xB1O\xFD܄\x82PL \xA6\xA0\xFA\x87A\xF5TP\xFDxP}]P=T\xD7\xA1\xF5\xEA\x81\xE2\xC7E\xFF[\x82\xABG\xFD\xD7\xF5+=\xEA{z\xD47\xF7\xA8\xAF\xE9Q_ңv\xF7\xA8W9\xD4^\x87\xBAҡ\x9E\xC2\xD7\xD1\xEE\xD1\xEE\xD6"9D\xEFV\xEF\xD9+yg\xD5Ƹ\xB6)\xFC\x97\xA7\8\x92\xE2\xA6\xF0m\x93\xFD\xBE:\xD9\x80k3\xE3QH\x82aE;P\xC0\xE1\xEBPN \xB7\xE1\xB8^\x8D\xE3b\xF9W&c!h\xB6e\xB2\xE56O\xB6\x9Cr\\x86\xA2b\xE1\xFA\xC9\xC4)\xC8m\x98\xEC_\xC1\xB5\xC9qb\xB6\xCF:\x94\x93\x91>k&[\xBE       \xC5Փ\x91׸6=\xA0(\xF6A\xB6%\xC4b%\xC4^<\xB3\xA1t\xB2\xDFՙ\xC30\xD1Rh
+\xE3I\xAE\xB8s\x8A\xC2G\xB8\xB3\xB1Eܧ\xD1)    䜉N\xC9 \xF8Mh\x8A:0ɽ\x83@\xB0ro\xC7Vp\xBFj\xE9\xE1\x8EC/\xF4\x9F➋]\xCE=|7\xF7 =\x81\xE3x\xAF\xA0\xE4\x8D}\x93{$v\xF7\x9D\xB1x_B\xEC\xEF\xAE~1\xB83\x99G\xB8۠\x9B-\xD1)|\xD1$we\x82\x8C\xA0\xE4.\x83\xD7Gz\xB9Ր\xBDW\xD0r\xD1H\x9A[\xFB\xB70v%\xB7\xA0<RwN\xEC\xB1+\x{1B4E2C}\xBF\xEA6'\xD7sr\xCD-\xAFqM9X\xC9$\x97!\xCD'\xB9\xFA\xF2\xE0uQqy\xB5-s\xB90,Or\x84\xAB\xEE\xAF\xE5<0$j\xB8%\x97\xB2+\xD9%l\x9AM\xB2q\xD6\xCF\xFA\xD8*\xD6ɚd\x99N\xA6\x91\xA9d
+\x99L&\x95Id \xB72\xD3T\xE9=!L \x83I\xAA#\x81TB|\x89ׁv`\xD0!\xE2#
+\xCB(\xAD)\\xBA\xB9\x80o\xB7\x8C\xB5\xDAZ+-\xFALg\xEEK\xBCa1s8\xFE\xB2\xC7Y\xB8\xABw\xF1@a\xBFs\xB0PG"%\xE7`o!\xB9\xD8u\xF1\xC0Q\xFC;\xFCA>wH\x82AH\xBB\xF1\xEF\xF2\x8B\xC4|wnp\xD0\xD6[\x98\xDB70\x85?̯\x9B\x82\x82u#\x81~a*\xF4.\xFBA!\xC8\xCAE\xFD$\x80~\xA8
+\x91~@dSb\xB5\xDB\xCA\xD5b\xD0 Tˑ\x80T;\x85bb\xB5uJ\xAC\xF6\xA96\xB13\x94\xCFM\x84\xC0\x83*L\xED\xAB\xECd\xA2\xA4
+\xBC<\xF384\xCDM\xC4\xC0\x83Z\x8A\x8E\x8B\xF3\x8E+
+bGN\xB1\xA3D\xAA\xB4\x80780Q\x97\x80
+\x89:\xB18\xF6Yq\xA4\\xBC\xA8\\xBCH,^\xFEYq\xB4\\xBC\xAF\\xBC\x8A\xBF\x8C\xC4\xFF/y\xA3\xED\xFFZ\xABC\xCB\xEF\xBB\xF1\xFE\xFC(\x9F\xE6\xF3\xA3\xF0v\x8D\xAD\xB5v\xACr\xB9&n\xBC\x8F\xB8
+\xB4x\xD5\xEA\xB5$-\xDCǏ\xE6
+7\xF29\xD7\xC4r\xB1\xDD?\xDFO\x8A\x97\xF3\xB9 t\xBE`\xE2~a47\xB9\X\x9E灡\x87n\xB9}s\xFE c\xDDva\xACͷ\xC9X\xB7\x93\xCE6\x93\xB1n\xDB\xFD\xD3XyR| +O\xC6ʓ\xB1nn\xC7"\xABϯ[ܾ\xE5K\x9E\xADW]\xB5b˖\x88ي(\xA69\xE1\xB5\xD1w##B\xA5\xF7ᝆ\xF7\xF7\xC5v@PV\xFCa\xE9\xE7t\xE8\xCCa\xF2R\xC5\xD6,\xF2#ڎ\xEE\x81\xFDd;z%\x91\xEC\xF8\xFB\xB8҇\xD1\xEB\xE8\xD7h.Z\x86\x8E\x83n\xC0s\xD08\x9A\x8F2hnF^\xFC3\x94By\xF4zZlC\xA1n'\xFArC\xAB\xA7K\xCFC^
+@S\xE8S؇\x9D\xA8+@/_G\x{1D63A3}}\xE8#t\xA6\xF4P\xE9\xF7(\x81n\x86o\x96~\x8Bb\x80h\xBE\xBAlG>\xE8s=ڄk\xA8\xAD\xA5[Q \x8Cwz\xBD\x8B-\xA5dF\xF5(\x8Br\xE8R\xB4m@W\xA0\xAFA\xD9ћ\xE8\xF0\xAAAq\xA7-E\xBB\xD07\xD1ݨ\x80^\xC2\xBE["/\xAD-\xADG\xC1 \xD6C\xBB=\xB0\x9A\xD7\xD1\xEFП\xB0?\x87_.9J\x87K%\x9BG+\xA8],\xBF}=\x84\xBECV\x82^w
+M\xE3\xC5x)\xCD\xD3\xF5%u\xA9\xAEt\xEAk\x81j\xEAEC\x8B+\xE8:X\xC9=\xE8E\xF4*\xB8_èA\x9C\xC2K\xF0&\xBC\x8F㗩v\xDA(a\x99\xF9\xA5\x9B`\x962\xA0w3\xB80\xFF-0\xD3\xDD\xE8N\xA0\xE1\xE8Ip/\xA0\xFF\xCA\xCB1O\xB5Q;\xA8Ӵ\x9E$ \x99\xB1\xD2+\xA5\x83\xA5gK?\x8E0H\xF4\xEF7mEW\xA3\x9D\xE86X\xCFt=\x8F~  \xBC\xFA#\x9A\xC1,\xD6a+\xCC\xE10~L!JO\x85\xA0\xB7\xD3\xE9q\xFA\xA0Iô0\xB7+\x9E*]Z\xBA\xB3\xF4j\xE9o\xB0z
+\xF0\x868\x9F\xD7c\xB4\xA2\x85h1Dk\x80֗\x89\xF2q/:\x88&\xD0Q\xA0ݛ\xE8-\xF4\x9AAE\\xEBL\xE3v\xBC _\x83\xC6\xC7\xF1        \xFCW\x8A\xA2tc\x86\xA8[\xA9\xC1\xA3NPo\xD2v\xDAI\xE9Zz}\xFD \xFD\x84\xE4\x9B\xCCf3\xF3-fB\xFA1\xBB\xB3\xB8\xBA\xB8\xA68V\xBC\xAE\xF8L\xA9\xB7tw\xE9{\xA5c07̆\xF0\xB4 u\xC3j\xA2~\xE0\xE0%\xE8\x91\xD6\xE3D\x96`>\x87\xD0S\xE0\x8E\xC0\xAC~\x80\x9EA'`n\xBFA\xA7A\xE6\xCE\xE4"l@\x898\xCE\xE0,n\x81yv\xE0\xEEس\xF7\x96\xE2<\x82\xD7\xE3\xED\xF8z\xFC5|?\xB8o\xE3\x87`\x87\xC1\xC5?\xC0\xAF\xE2\xD7\xF1/\xC0\x9DŸ\x80\xFB+\xC5P,e\xA3x\xCAO T/\xB8\xA5\xE0F\xA8\xD5\xD4Zj\xB5\x81\xBA\xDCc\xD4A\xEA05E#\xBA\x85\xEE\xA4G\xC0\xE8c\xF4\x9B\xF4/\xE8_\xD3\x97\xD8%[%\xD7J\xFE\x97\xE4\x84\xE4-\xC9)ɟ%\x9F2:&\xCE,a.\x92ڤ\xE9\x98\xF4\xE9!\xF62\xF6I\xF6-4 4\xFE>\xAC\xE9\xF3\xCFj\xB4\x8D\xBA\x8B\xFA\xBA\x9E\x9Az\xF6
+\xECy?\xA6\xBA\x80\xDB\xF1!\xFCP\xEAQt?\xE8G=`\xF1\x93 \x99\xAA\xA7wа~\x9F\x97\xF7\xB8]\\x95\xD3Qi\xAF\xB0Y-f\x93Ѡ\xD7i5j\x95R!\x97\xB1RFBL\x8A\xE4\xF9\xCEaW\xC1?\\x90\xF8\xF9\xAE\xAE\x92\xE6G c\xE4s\xC3du~\xB1N\xC1Eڍ@\xD1j
+P\xF3\x92\xAA)\x94k
+jb\x9D+\x8B\xB25W\x9Ew^\xCB\xF1\xAE)\xBCl\xE1\xC4o\xCF\xF1\x83\xAE´\x9F'\xC6w\x8Bq5\xC4\xDDnh\xE0\xCA\xDB\xD6\xE6\<\xEC\xCA:\xC7֎\xE7\x87s5|T\xEA)j" @+%鸀:F\xB6\xC3v\x80:H\x8D|\xC1\xCE\xE7\xF2\x85
+\xE2PF\xFB\xF2#k
+} \xF2\xB9J\xB7{\xB0&R\xC0\xAB\xF9Uķ\xB4\xE1\xD9\xE6\xA4\x98mߢ\xBB&\xB2v\xF6ڥZï\xD95%\xA0U\xC3$6r\xF1@\x81,P\xC3d }\xB8`\xE5s\xEB5\xD8>K\x9E\x8F\xE5\xBF\xFE\xB9\xC2\xE5\xEB\xEF,û\x80\xE8$9LR#_\x87T/\xD9e \xD4̓|3L\x8ELB\x9C{y\xE5\x8D\xCD7\xBC\xDEU\x90\xF3\xED\xFC\xDA\xF1\xF5\xC3@s\xB4h`\xD2.\xD8\xC5\xA4\x80\xFA&+\x84
+1Q9j\xBB\xBE\xC9+D9Z\xD3V\xD3F\xC2&\xB7\xED\xFAr\xF8\xBB\xAF\x96\xF3v\x8C\x84\xB6돿a\xEF\xA2 t\xC1dl\xBE\xA6Yp\xAD\xE1a\xAE+\xC4m@\xE3\xAB\x80|\xF0 bX庂\xBCcx\\xD7\xFC(0>\xEF?Ǣa~\xFA\x93/\xE6\x8C\xCC\xE6H}\xBA3\x88v^\x90\x88\xA8iY:\xE0\x8C\xE9\x9DB\xF2\xBE\x81 \x8C\xFFm\x90\xE0\xBD)\x94s\x85]\x86^\xB9\xA2f
+\x898\xAC\xCBAkH\x84"\x90Q\xED\x86Xu\xC4\xD5     \xB3\xEE$|s\x8D\xBBƻ׌\xBB:]k\x81\xE1\x9FB\xC1\xE8\xF8` \x96\xB3x`\xF8\xFD\xEE\x820Xy!::8\xD8\xFD\x84I?\xD0\xAA\x8FB\xEBg{\x80P̊\xCD@\xA5H\xA4\x97l\xED} 
+;r\x95!7$;\xD67P8\xD258\xB5`\x8D\xB33\x85p\xFB:\xDB윣0\xE7\x9Aj(\x8F\x95{ \xBA\xBA'}.\xE0݅c\xE3\xE3\x95\xE3D'\xCA\xE9)\x8C\xFE9C\x98͘B\xA4
+\x95)\xBC\xA3\xDAB\xC0\xBB+I\xEF\xE6\xDD0\xAD\xC1 \xF1:\xCF^8    \xFF\xDF)\wa\xDE\xD02\xB3\xAD)\\xFF?D\xE1\xE4\xBFB\xE1ԿD\xE1\xF4\x85\x99~\x81\xC2+0\xE74\xA1p\xE6\xFF\x85?Ga\xE6e\xE4\xA6\xC06\xC1{\xCE3xߗ\xBC\x8F\xF4\xED\xA8\xE2\xB5\xA9\xFD(\xF1)\xA72\x90\xCE \x9F4\x83ܐ\xAE\x87W\xE5rډ\xD6B~\xA9/]\x9E\xBF#Q\xC1\x85\xC73\x90v\xC1\xA7\xA3\xFF\xF6!Ӡ\xE1^\xE1\xE2a\xFE\xDBN\xA4b    \xD8G\xFB\x91\xEE\xAFȣ,\x83G\xC1a\xE9\x91\xF0\xAA\x89d\xCA+?)@\x90À\xFC\xB2\xF8\xFB\xD4]\xF4\xC5\xF49\xC9&\xA6\x9F\xF9\x9Bt\x95\xF4\xFB\xEC^8.>/\xCF)t\x8A+\x95*\xE5\xA1x1wƥ;t\xA6p7#\x85\xA3\xAE\xE0@\xB6\x9BF
+F\xD2MӔ].e\xBB1\xAA\x90\xC9?vw.\xB2\x85\xC3\xF3Og\xE7\xCDd\xE7\xEB>\xCD\xCE\xD3\xCDdQkv&\xAB;+^m<\xA1w\xEB𺙱\xA9\xB3\xFF`z\xFF\xF1\xD4\xFD\xF69\x8C\x85\xD1\xC9\xD2G\xF89\xC0zJ\xE4\x8CL\xB5R\xA9\xB6Z\xED\xB2j\xAAB\xA5~\xC1}\xF5\xBF\x89\xFDΛ\x99\x9F\xCD}\x88Z\xE7M\xD7\xC6%\xFEd}*Q\xAE\x94\xC7U\xED\xB1X{[\xDCF\x82\xF6X\xACC\x9C\xBF\xA14MO0\xC3@\x95*\xB4G\xF0|\xAC\xFA\xC0D\xBF\x88~\x8E>@t-J25=W&\xDDW\xC5h\xF6Y\xD4\xD4N\xC3%;\xE4R\xEC\xB4OQ섋\x8B\x9D8=\xAD\xFBt\xB5N\xB7\xC2xۄ\xE4T\xF9m>\x93_\xE6s\xF8u>\x89_mU$\x81\xBCT\xB3N\x881Z\x88)+4I\x84\x8D\xE0\xC9+\xA5IL\xEB\xC1#g+\xD1#xně\x87Аנ\xAFP\xBC\x87\x96\x9AMVK\xC2@\xC0K\xB9=\xBF^\x97N%\xA8\xEDW\xB8[\xF6\xEFou{\x84\xC2\xFB7\x8C\xB6\U|\xEF\xC5v.\xBF\xB6\xE4\xD8U\xFB\x97o`M\xF1\xF7\xDF\xFA\xF3\xFB;\x8BLӟ^\x98y\xB9P|\xEA\xD0s\xB8 SO\xCFz\xBEb\xE8cV\xC0\xED\xDFF\xA1b\xCCt\x8B\x89\xF2\x9BR&J5\xB3J\xF6\x9E\x87\xFE\xFB*\xF6=\xDE\xF4\xDC\xFF\1i\e\x82\xFB A\xAFVєDffd\xAC\xCA\xB4\xA7\x
 E8)J\xA5RWXm\xCF૑?\x8A\x87\xD0,\x81\xB1\xB3\xACȶ\xAC\x99yg\xA6\xCF\xE13\xE1pm\xC1\xC2,f\xBD\xC9b5\xBB\x93-8\xA9\xAF\xF7\xF3)\x9B\xF4%\xA8UxѦ\x99\xDBzlA\xFBb/ިb\xF9ٹ\xF3\xAA%\x8E*ij\xFD@\xBCΩs@\xC3p@\x92)\x90;+\xBASh\x91\xBEBWR\xF1A\x8Az\xC35\xDFJ 7v\xE6(J\xDFS\xA9\xAE\xF1\xC8ܕ\xAA\xDE\x{2A54B2}\xF5H\x8Ae2\xBDZj\x8C\xC2=\x86Z%\xAB\x98\xA2\x93T/\x9E\x82\xAB:++ 8\xFDJ\xFD\x83\xFA\x83z\x89\xB2&Q\xAF\xF5(%G\xB6\xD8\xE9ӧ\x87@DO\x9F\xE1ʶ\xF9\xD5g2Xo\xC8\xC0\x9D\xCC\xE2\xE9O\x80\x81C\xF0\xE8\xA6?\xA9\x8D\xDDF>\x8A\xC3\xF8s\xCB$\x8B䃒\x9B\x95\xB5ލ\x93W\xF6l\x9F9p\x93p\xE5\xFEk\xB9:\xA6\xB7\xF8\xC8#\xAB\xCF~\xF4\x95\x8C\xDC\xE7S\xB4\xDF,A\xAB%\xA2\xB7\xF4'\xFA6\xFA0Ȼ\x80ڰJ\xB8\xE4\xF7\xFE\xB3~\x8A+tJ)\xBFW\xB17\xF3]\xC5w\x95O\xA8\x9F\x91\xFFX\xFEj\xEC\xD5\xF8I\xF9\xC9\xF8[\xB5\x9Fȧ\xE3ڥ\xB2Hm\xB5\xD5\xC1\x998\x94\xD0j\xB1\xB6\xBB.\x9A\xCA\xD4F\xB4
+$5\xC9L        mI)e-\xCD\xCA6\xB6-\xD0)cm\xD5B\xED\xB6P\xAC\xFA`5U=E!A\xD1a T\xE6<풜\xD7\xEDD\xD0OϜ\xD2}:\x94\xFD<\x93=C\xADD\xEA[\xA7\xF5\xC0]\xC8\x8B+٦O@D$\x8A\xA8 M-\xAD|Pe\xC5,\xE5S\xFB\xA5~\x83k$~ĶH\xAA\x90\xD9k\xADB\xABѯ\xAB \xADB~\x8C\x91F˴ʪ\x90>`\xAA\xC2(\xD6eu\xD90\x86~\xE5\xE7Fx\xD0h\x96\xB2e\x8D\xA8K%\xBD\xE9\x94/Y!"yDA\xA4\xBC\xA7\xAC\xF9\xA0.z\xA27u\xA9\xB4Z@v\xA0$1ջ\xA5ww6o\xDFVD߸M\x9E\xCBѨ\xC2gv\xD6ğ|\xFC\xF9\xBCO\xA6Y\xAB|._Cc\xAE\x99\x9E\x9BZ\xBE\xE8\xA2\xEB\xF1v\xAA\xDAܼ<\xEC\xE8\xC9\6\x92\xBDt\xC9%\xC1{eL\x95\x915X\xD4M\xDE\xCE{\xAF\xCF\xAD\xB8\xB1\xD1\xD0T\xD6*\xFC\xCD\xED\xAEԶ!
+.\x88\xAD\xAC[3͌\xC1\xA9\xA1\xBD-l\xB8'\xF8\xDD\xE0\xAB\xC1Eޏ\x9C\x8EHц\xE8u\xD1]\xD1\xFB\xA2\xC2ߋ>\xFEA\xF4\xB5\xF0\x89\xE8K+'\xC3oG\xDFl\xD0\xD0\xE1\xB9!\x8A\x97)ߒ\xF4)\xCA\xDD\xFA*\x97\xB5\xCF\xE9\xA8\xDA㮫\x8D\xC7$V\x89'P\xE3\xAD4S\xDF(1\xD4\xE8q}\xA2\x86ml \xDCJ\x8F$fVl\xA6ɦsTc\xE0/\x9E\xC86C\x87\xC0t+\x9D\x{DBCE}pXGxi  \xB4f\x90N\xD4\xD8\xD9@\xE4\xA7-\x99 F\x92\x91\xB4e\x82\xE0\xA5\xC2\xF5~\xDCj\xF4#`\xD8.\xE0+p\xB4\xDBj\xB1\x9EW\xEAt N\xA7\xD2VV\x83ʹi\x96ZH\x8Al\xA0\x92\xF5\x86\x84!5k\x80w       *\xDA\xF4U&TnQ\xCD2\x8F\xCE'\xA50E\xB9\xF2J\x8BR\xBA\xEB\xDBlC\xA8{x\xFF\xCC\xFC\xFB\x96\xE1]\xED\xD7\xFD\xCEo\xD1.\xB3\xB74G)\xDAmV\xD9U\x8C\x86Z\x97\xD9\xD6t\xEE'm\xF5\x98rS\xF1&\xF9\xB5\xCD\xF6\xCC>\xF9+\x9C>\xF7\xC4\xC5!\xFC\xE4M\x97\xFD\xFA\xE1\x87΁nK\xC1\xA9x?\xEC\xB8)\xF9\x950\xB4N\xB6^\xB5\xD1p\xB9\xF9Zv\x9B\xEC\xD5v\xFD+\x86\xED\xA6\xED\xE6s\x9AO\xB5\xEA%\xB2Kd\xC3\xFA㒗+oH>\x94\xFFV+k\x96\xC9V-WPr-\xB5ft4\xA
 6\xE7\xD0R\x87c\xB5\xD3\xC8\xEE\x91~GJI\xDB\xD4J\xA7\xADH\xB5;u?Q`\xC5E\xE2\xE8\xB7u\x84\xF4\Uy\xD32dNO\x83M\xB5fA\x87D\xFD\x999\xAF>\xEA~$ҼZS\x89\xB3\xCF\xEE7D\x8D\xA9D\xB6*\ac4\xB4Y\xF4\x88c\xF0$Z\xA9\xC8`\xC3y}5\x85XZw&
+`\xD5`\xDE#RhϺ\xFD\xA00ij\xD537+\x9E\xBDi\xDD\xEEf>\x{11B1DF}y\x{DFDE}\xFB^֥\xC1\x8F)+k\xB7\xD4\xD0\xFB_8\xF4\xD1W\x8C\xAAn\xF8%v\xFD\xF6v\x8F\xA6\xAD\xA9\xE8\xFB\xA5Y\xF6\xA3\xAF\xE9\xB4\xCB\xE4\x8A\xC3O\xB7"\x87\xFF]\xAF\xBB\xD5\xE1{\x97\xA7݌\xDFh\xB1\xE9\xEF\xB4%\x94\x98c2UNV*\xF5\xFBt\x95+\x88\x83S\x94D\x90k\x9C\xEE\x85\xEF6\x81\x98hcO\x9C\xCA\xE8D+\x9B\x8B\xDB:=+\x96\x96P\xA4̦;n\xAB\x8D\xC3.3\x92\x95\xD4\xF3\xC9D=\xEC\x83\xE5-\xDE\xE3\x8F\xE1(,\x92\x95:q\xC2̗Mop}ǁ\xE1Eo\xEC\x8A{\x9C\xD5N\xBD\xC6\xEF\x99[\xA9=\xFB\xF7\xE6g>v0\xF9\x8D\xD4Ml\xF8ig\x93\xBB\x9E\x8F\xD8\xCD\xCE\xDE`\xDBt\xC7\xCC\xF5\x9B[\xE5\xE4vK\x82R\xC5v\xFAy\xFA \xC8I܄,E\xAF #\xDD\xED]\xBB\xDAo\xEB\xD8_\xC90A&-\xEF\xB0wd:\xD6ӗ7<fz\xCC&o3\xEA\xA2]\x91\xB0]b\xF1{*)\xFF\][\x9D\xD2t\xE8"\xF9º\xBAuQ\xA2\x8B -=\xA2Cs$\x96\xDA],Ւ\xD1,]\xEA\xB7\xCC]\xB8ۿ\xCFO\xF9\x89V+2\x89\x94k0ڜX\x8CS\xF8g\x82&{tqNg\x89[v[\xF6Y$8\x83M \xC4N\xCC M
 \x81߉7f@\x9B\x89 \x99j=\x94;94F$*\x9Eh\xA2ˊ-&@\xCB\xCBd4\xA5$\xE63\xC5\xE4G\x8C\xA8a7AI6\xF3\x82:\xC0x<e\x9B\xEB"iI\xD9ƶR H\x80\xB2@ɡ\x97\xF368A\xFF\xE8\x87\xD7<\xF6z\xFD7|\x8B<\x96U6U,}zwa\xA1y\x89Q\xF5\xA4A\xA1\xFFᾊ6\xE7\xCA\xCEh\xC6\xDF]|\xF0\xF0#\xC7\xBD\x{DAA8}5\x98\xDF|Ɨټ\xCAg[!+\xFEE\xD8\xD2\xDF\xB8 \xC3+\x89\x86iRT`\xEF\xF0U?\xCB\xD3 \xAB\xB9\xC6\xFA+\x9F\x93\xAF\xE2\Z\x853v\xDF\xCF\xDC\xDC\xED\xCD\xE7\x9AT=\xF4+\xAE1Uſ\xB2\xF2\xBF\x86j\xBB\xAEy\x9E\xEAy5\x80\xBC~w\xB5qtD\xB0\xE4-\xF8\xEFV,\xB7ڭ\x94]\xA6\x8Bqq\x8Aou\xC0ע\xB3B\x93\x87\xC8o\xDC嵷:\xAA\|\xB8\xD5s\xF1\xE7\xCDn\x88\x87C\xBC]OKq\x89άE\x813\x8FqU
+/\xABD\x88\x8E\xD4\xE9\xE1\x98`Qi\xA2\xAE\xF4<K\xB6L\x90a\xE6,\xF2yK`\x9AD5 Q\xD5u>\xBF\xC5\xE6\xB7x\xAB\xB0\xD5\xE6\xB3\xAA>\x802\xCFZUQ\xDCg\x91R n\xC5V=P<Q'\xEEp_DR\xB3\xD0ʰ(\xE1lP\x9AՑ+\x86\xA9\xD6ځK\xBE\xD3䪝[\\xB0\xB4\xAEm\xD9\xFC=\xF5K\x8Asʦ+\xE8c+I\x9A\xF2\xAA}\xB2*vfo\x97'\xBB\xB3\xEB\xAA\xE2\xDA\xF5\x82\xC2\xE1P5^\x81\xCD\xFA\xA2qS\x83\x8A\xA8\xECa\xA0\xF7\x94訄{\xCB!\xC1ϫ\xB4\xAD*\x87\xCF\xE5\xE5].\x9BK\xD7gu\xD8\xF68\\x9CN+q\xF8dwR\xC8\xC1\x{2F0A008}(\\xCA;\x99\xE7zG\xA7%\x9A\xEE\x8F\xBCr+\xA2)@\xEBD*\xCB;\x8E\xEE ذڸ\xE13\xB5N\xD2"L$[<\xE0D"j\x89\xF3\xF2\x89l$\xDC\xDC\x8Edw\\xD6 \xD7ƕ\xE6\xBA\xF0\xC1\xBCCF\xA5G\x8Av&\xD5\xD2,\x96\x9E\xD5+\x92W\xE1w\xDA*B+\xA7\xC98U\xACl\xA6\xEE\xCAF\xF2\xC1\x9E`I8]\xC0\x9A\xAE,\xD9#\xB8̈\xEE@\xAB\xCBkqToI\x95\xD5n\x83^BK\xC0~Z-
+@\x8B\xE8\xB0\xDE\xA3%d\x80
+a\xE2`\xFAe\x88;;\xFD2\xBFf\xA7\x9CJ\x83\x85*ۣ\xEA\xA1v\xA5\xA9Y㮸\xF5Y\x96ή(:\xF2\xCCb\xFA\xA7\xED\xD5R\xA9ۛU\x99\xCE.\\x9A`af\x98\x9C\xAD\xA4\xF5\xF4p\xFF\xC1\x91\xAA\xA8wQz\xD7\xE3jAhA\x96\xD25\xE9\xE6q\xF3\xE9\xD6tM\x87#\xF4,|\xF7 \x94eA\x8A\xE7z$\x8D\xC81\xDF\xE5\xF56:\x82.>\xDD\xEAhr\xF1ݍ\x8Ey.^\xE5b\xFA`I{\xB4ݕi\xA1\xBB\xABCH\xA7j\xBC\x95&F\xA2\xCA\xCF7j\xEB\xF2-ֺ\x8E\xB3j\xD9\xF9\xF3\xB2M\xA1\xA0\xA2\x8F0O\xC9{c\xD1;j^\xAF\xA1\xBAj\xA6\xF0A\xDD)\xA4ұ\xB6;\x84\xD7\xAAK\x80\x9C\xEF\x94\xDD1F\xA4\xCAB\x95S\xBA\xB1\xD3cC6 υ\xA1y\xC0\x9F\xA7\x9B\xD6[E\xB8N\x94ԡ\xCC\xFC2\xCE\xD3GI\xC3Ia\x89\x86\xE5shl\xBDn\x95\x89\xE4[\xBFL\xCA8\x90\xFD\xEE\xA1\xA1t6\xC7=\xDF Ԙ͚\xAE\xC0$\xC3P\xABwϽ\xB4\xD9e\xEEI\xAF\\xFDP\x8Ak]Tl^\x9A6\xFB.o|\xA9\xCC\xC5\xC5\xE4\xCAz\x93\xFB\xB2汚\xE4`1cg\x8DΥ\xD3\x950\xBCM\x9DShn]\x96\xEF\xF4\xB7\xF5z[\xBEڳ\xAF82'!\xB3;d\xA9\xC5\xF8\xE0HtQ\xB8"]D \xFBi\xBB]\x95\xBB\xDB\xF66\xAE\xEAHͼ3\xB7\xDB       \xAE
 \xAF/\xFD\xF6\x94\xFD\xA0C6T\xA7\xCE\xC8K\xF2\xE4\xD4]\xBA{-\xFBt,g\x8C\x99$V\xEBE\xBF\x8Ei\x94\xD9kHȔ\xE6\\x85\x92(q\xA4R\x9B\xD3*\xB1\x92\xA0\x89J\xFB,\x903dD0XB\xB4%dU\xFBTX\xEBGV\xDA\xEC\xC7z9Č,\xC44\xC8\xE6\xC7       x:\x85\xC1\x9Fx\xC1#D/\x9F=E7d\xF2"\xB3 Ν\xF0e\x8A\x80j\x83\xB8GP|\xBA~\xE6嗰\xE4\xDC+NJ\x9F\xE2\xC1\xC65ݱi\xDB\xDE=>\xEAnl,\x9E\xFB\xE5\xCBŷ\xB0\xFDM\xFC@\xFD\xF2_OO\xFC\xEFǟ\xC4uYb3\xE4\xE2:7  t\L\xC9S\xEE\xBB*\xEE\xF5\xED\xF7=88\x90)|L\xA0\xC7G?\xE6\xC5y/\xF6\xC8tjG\xE2-o\xB4\xC3Q\xF7.os\xE9E\xA3R w\xE54\xD5EC\x89N\xAFR0TU\xA5\xAC\x85g+YjuH\x99\xA8\xD309\xD87)A\x91\xAC
+Dc\xFAc:\xAC#F8YO\xC8#Za8\xA4 界\xFEs\xBB\xE1\xB9+#\o\x90f\xE9 \xE3Ǭ<I\x80\xF2#\xA9O\xE6\xEA\x88\x97\xA0\xDB\xCDC\xDE\xF2\x9EȊY\xC2x\xE1 \xC2J\xC4S\x94K\xD8#\x81\x80\xB0\xAF\x96E\x8F\\xDAy\xF9\xBD\xAE빦\xF8\xFC\x8A\x84/\xA14V2\xC7\xA6\xBDn\xD9\xCA\xF1\x97\xFF\xF0TCHH\xB5o,\xEA\xB7v\xFC\xE2\xD8ԑ呢|\xE6\x804\xD7M\x9Bt\xCB\xE1\x9C\zk\xBB\xAB\xE1\xE3\xAF\x9F֘\x8AGG\xA32r\xF9vBD\x9E\x8CB;\x85\xB9ǫpڃ\xB9&f,&\xA0\x83\x98\xA5K\xD2
+'\x87=:WE\x87\xBD^\xB4\x90\xC9it\xEDpb\x973w:u+
+\xBFÎ\xEDac\xC0[\xDE\xC6\x84\x85W\xC7N \x89*}|\x88qީӛ\xBE\xEA3e\xED\xBDpV [٬\xD6~\x8E(\xE2    \xE0\xBC֖\x91D\x99r&K\xDA\xEC\x96_\x9C\xF5\xD5*܆\xCC\xD5ֺ$K _B\xAD\xCF?\xCF\xC2_\xD27T4\xBAe\xB5}\xF8\x85\xD5K\x89\xDBT-7\xDA\xBAG\xD74GC+\x9D\x9B\xB3\xC5\xE6\x8B:(0\x92D\xC6֖\xA6\xA9\xD1\xA8\xD5aZp\x91[\xA8\x90:\xA3^\xABZ\xA7ަܦکR\x84dqG\xEDO\xEC\x806S\xF8\x87 \xD6\xCC-h=\xD56G\xC5O\x85J\x87\xDB\xCE\xC1\xEAI$ͤ,\xEC6\xA8\x91B\xE6\xF1\xF3j\x85\x84\xE1u\x96IT+\xEB\xB4v\xFC{\xC9N\xD9;emu(\xC0\x81z\xFCCFС\xC0&\xED>\xED1-\xAD\xEDD\xF5pҍ\xBDa:5\xAD{H6=v|h\xB3MDh\xFA?\xB3}\xCD\xF6Ol\xF6\xD3 a]\xB3}b\xD3"\x9F\xD8m\xA7?\xC0:{\xF34D\xCAj\xED\x86\n\x9D|HV\x85]zOb\x83Lr\xEB8\xF1\xC8,
+)A\xFE\xC6\xA06QkEP\\xBE\x83t:a\xE4  \xF4'P\x8Eßq\x83\xE5\xF1z\xB75\xD0yk\xEFҺ\xD6M\xD7nݷ-y\x83̠\x93\xDAX\xCE\xE4i\xB9\xAA\xB3o\xFCkoNܑ\xBDG\xA320v\xEC\xC3MW6oZ\xDC^=\xDF'\xB4߲|\xD3\xEE\xA0BY\xFCϑԚ\x8B/u\xEF\xD8]A\xBD\x8A>
+\xB2Y|i\x92<\xDB\xD3R\xA1Z\xAEǕ\xCADe\xAA<RA\xE9V\xCCa[\xB4JA\xE1Vz\x85*7\xF2P1S\xA5M\xD0GL\xA7N\x9C\xB4\xBFb?\xD9|ܦ\x9B9~\xA2\xBA\x9F\x83\x87Zg\xC6ް\xDB^\xB1\xB7\x9E\x80\xDB\xC1\xC2a\xE6\xE9\xD93>9f\x95\x83sAP
+\xA2G\x8F\x92\x9F\xA0ԶNo\xD2c\xB7\xD4oM\x8DU[70\x8Cܖoެf\xE8\xBD]3\xC7\xE6\xF2\x9F\xA5\xAA\xB3q]f\x94ZAK\x85Ҕ\x99s\x8FD\xFD)\x91-rG\xF8&\xD8\xEB0\x8A\xA0'\x84\xF9\xBDl/\xB7\x8C]\xC6m`7p\xDB\xD8\xFB\xD8\xFB89\xA7\xE64\x94S\xA6hth\\xBC\xBF\xD1v\xF1&@CF\x87iw\x85\xA3\xC2\xEF\xD4)\xE4LX\x83\xA4`\xBF[\xDC\xCA\xEB(b\xDAHħ\xD3‘=E8\xE6\xF3{\xADAc@#\xAC/\xA6\x9B9%޲\xC0\x8E      &k\x91;4\xB8i4x\xBC\x94\x84\xF6K<\xB8
+\xF1^\x8A)\xF1"Fr<\x82\x9B'"`\x91`\xF3 $\xDD`\x85\xD2f+\x86\xA3\x9F\xC7\xDFL\xAEOʄ"\xC0?\xE9\xC3\xCDF\xDF\xEA\\x9Bϟ]\x86;j\xA4\xEB\x9B\xED \x95kX\xB2r\xE9\xBC\xF9K\xFE\xFD\xC0̎\hnME\x84\xF2΋3\xEE!\x97\xA0Z\xADI\xEE\x91KZȶ4\xEF\xA6ؾJ=뀋fL\xEEŁfw\xA3&\xAC\x8E\xFE\x8E\xC5\xF0        \xC3%\xB3\x87\xA8w\xA6\xDC\x9E~\xCCr\xAB\xE4V\xE6\x88\xE3\x88\xF3E\xE9\x87C'ۥ\xED\xD2ͱJR\xC94\x9FTȤ\x8A\xA4\xD4*S(\x92\xB39$\x85+_j+\x99\x83\xA14>\xBC\xA9tR\x91\xE6\xCD\x83"\x941$\xA1\xDA]\xD2G\xA5G\xA4?\x97J\xAC1/\x857ͧ\xD3\xC9o5+\xA4\xB2\xBAF\xAC5Ѝ\x9D\xBE\x89FRg\xAC\x8E\xB6;\xF1Z\xBAR\x91\x96*̒&\xBD\xBE\xBB\x89\xD4m\xD2K+k\x85J\\xD9\\x9B\x8D\xBDt\xF2\xA5!\x82Qbc1      Q\xAB5{Κ-\xFB$#e\x99\xB0.<!\xACL\x97\x85\xC7e,DY\xDDq\xF2+g\xA6\xEFt1\xB0\x81\xDC\xE6\xF8G&\xE0+dh1|\xD6'\xA27Ξ\xC6ȥ\xC9\xF9[Ҵ\x91\x86\xC3Y\xBF\xE5O&\xE1&gm\xB5\xB7'*`YbN\xB4\xB8\xDAi\xE5\xFC\xAF\xBE\xC3\xFA\x90S\xC3\xD5\x99\xAA\xFF\
 xE7\xB1\xC6H}\xB7\xAB\x8Cю\x85\xD1\x8B\xDD@;\x92X\xE0\xAF\xC5M\xF3\xA3\x94\xC3AQ6\x83\xB1͕\xAE\x{19CB69}RU\xACá\xF4\xB4\xC0\xFF.\xF8\xA5.\xA1\xE4K<\xA5Q4Z\x8E\xFD\x93o\x814+\xDF\xC8W\x844\xFCGd\x8E\xF8\xBF\x81\xF1\x9F \xE0/\x8B\x8B\xE0\xDF K\xC4s\xF3*\xFF]\x94\x9Cİ؋\x94\x9C\xC9\xDA\xE6͟\xD767ܿn\xC3薚E7\x8C\\xF1,\xE1T{
+endstream
+endobj
+14 0 obj
+8163
+endobj
+15 0 obj
+(Untitled)
+endobj
+16 0 obj
+(macOS Version 10.14.5 \(Build 18F113a\) Quartz PDFContext)
+endobj
+17 0 obj
+(Alan Kinsley)
+endobj
+18 0 obj
+()
+endobj
+19 0 obj
+(Safari)
+endobj
+20 0 obj
+(D:20190411200315Z00'00')
+endobj
+21 0 obj
+()
+endobj
+22 0 obj
+[ () ]
+endobj
+1 0 obj
+<< /Title 15 0 R /Author 17 0 R /Subject 18 0 R /Producer 16 0 R /Creator
+19 0 R /CreationDate 20 0 R /ModDate 20 0 R /Keywords 21 0 R /AAPL:Keywords
+22 0 R >>
+endobj
+xref
+0 23
+0000000000 65535 f 
+0000012636 00000 n 
+0000000363 00000 n 
+0000003340 00000 n 
+0000000022 00000 n 
+0000000344 00000 n 
+0000000473 00000 n 
+0000003305 00000 n 
+0000003479 00000 n 
+0000000570 00000 n 
+0000003284 00000 n 
+0000003429 00000 n 
+0000003872 00000 n 
+0000004099 00000 n 
+0000012353 00000 n 
+0000012374 00000 n 
+0000012401 00000 n 
+0000012477 00000 n 
+0000012508 00000 n 
+0000012527 00000 n 
+0000012552 00000 n 
+0000012594 00000 n 
+0000012613 00000 n 
+trailer
+<< /Size 23 /Root 11 0 R /Info 1 0 R /ID [ <1b4bcc68d4af84f854c7f961a8e2525f>
+<1b4bcc68d4af84f854c7f961a8e2525f> ] >>
+startxref
+12811
+%%EOF
</ins></span></pre></div>
<a id="trunkLayoutTestsprintingpagewith10mmleftmarginexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/printing/page-with-10mm-left-margin-expected.txt (0 => 244202)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/printing/page-with-10mm-left-margin-expected.txt                               (rev 0)
+++ trunk/LayoutTests/printing/page-with-10mm-left-margin-expected.txt  2019-04-11 23:33:41 UTC (rev 244202)
</span><span class="lines">@@ -0,0 +1,7 @@
</span><ins>+layer at (0,0) size 1000x18
+  RenderView at (0,0) size 1000x18
+layer at (0,0) size 1000x18
+  RenderBlock {HTML} at (0,0) size 1000x18
+    RenderBody {BODY} at (0,0) size 1000x18
+      RenderText {#text} at (0,0) size 374x18
+        text run at (0,0) width 374: "Text should start at 10mm from the right edge of the page."
</ins></span></pre></div>
<a id="trunkLayoutTestsprintingpagewith10mmleftmarginhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/printing/page-with-10mm-left-margin.html (0 => 244202)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/printing/page-with-10mm-left-margin.html                               (rev 0)
+++ trunk/LayoutTests/printing/page-with-10mm-left-margin.html  2019-04-11 23:33:41 UTC (rev 244202)
</span><span class="lines">@@ -0,0 +1,24 @@
</span><ins>+<!DOCTYPE html><!-- webkit-test-runner [ experimental:PageAtRuleSupportEnabled=true ] -->
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+  <title>This tests that the content has a 1cm left margin.</title>
+  <style type="text/css">
+    @page {
+        margin-left: 10mm;
+    }
+    
+    html, body {
+        padding: 0px;
+        margin: 0px;
+    }
+  </style>
+  <script>
+    if (window.testRunner)
+      testRunner.setPrinting();
+  </script>
+</head>
+<body>
+Text should start at 10mm from the right edge of the page.
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsprintingpagewithzeromarginexpectedpdf"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/printing/page-with-zero-margin-expected.pdf (0 => 244202)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/printing/page-with-zero-margin-expected.pdf                            (rev 0)
+++ trunk/LayoutTests/printing/page-with-zero-margin-expected.pdf       2019-04-11 23:33:41 UTC (rev 244202)
</span><span class="lines">@@ -0,0 +1,221 @@
</span><ins>+%PDF-1.3
+%\xC4\xE5\xF2\xE5\xEB\xA7\xF3\xA0\xD0\xC4\xC6
+4 0 obj
+<< /Length 5 0 R /Filter /FlateDecode >>
+stream
+x\x95\x901o\xC3 \x84w~\xC57\x9A\xA1`\xD2dn\x95%[$\xA4U\x87ʉ\xE3Jv\x9Dةԟ_\xC0\xE0\xB4c\xC5\xC0\xBB{\x8F\xBB{\9pEa\xBA\xDA`T\xC5x\xE2\x85OVϓ\xA6\x9E\xD0\xF1L\xB52\xB6\xA2s\xE5\xDAD\xD0-@\xDBR٭]K\x80\x8E\x96\xC6\xE1x\xEFSn\x955Z\xAD#\xF5\xF0\xED\xBA\xE7ɡ\xE7n\xBC\xB5\xAEg\xE5\\x88\xE1^)\x9Cd\xA3(N\xD2\xCB\x8A\xEF[*\x98$^\xD2S\xED\xF0\xD5%\xF2xgoR\xC4\xEE{j\x8D\xCB\xC3\xCC,D.\xDAlBf\x86\x8B\xE4+\xB7;7\xFFܿ7\xAA 7\xC5\xF8\x91"\x9D\xDB\xECCv>\x9Es\xC5\xD0,1\xEE\xC1.9\xBC\x9F\x9B\xF7+\xE7\x84Ą\x87\x8C\xCCd\x89
+endstream
+endobj
+5 0 obj
+228
+endobj
+2 0 obj
+<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 155.52 243.84]
+>>
+endobj
+6 0 obj
+<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R
+>> >>
+endobj
+9 0 obj
+<< /Length 10 0 R /N 3 /Alternate /DeviceRGB /Filter /FlateDecode >>
+stream
+x\x9D\x96wTS\xD9\x87Ͻ7\xBD\xD0" %\xF4z        \xD2;HQ\x89I\x80P\x86\x84&vDF)VdT\xC0G\x87"cE \x83\x82b\xD7   \xF2P\xC6\xC1QDE\xE5݌k        \xEF\xAD5\xF3ޚ\xFD\xC7Y\xDF\xD9\xE7\xB7\xD7\xD9g\xEF}׺P\xFC\x82\xC2tX\x804\xA1X\xEE\xEB\xC1\\xCB\xC4\xF7X\xC0\xE1ffG\xF8D\xD4\xFC\xBD=\x99\x99\xA8HƳ\xF6\xEE.\x80d\xBB\xDB,\xBFP&s\xD6\xFF\x91"7C$
+E\xD56<~&\xE5\x94S\xB3\xC52\xFF\xCA\xF4\x95)2\x8612\xA1    \xA2\xAC"\xE3įl\xF6\xA7\xE6+\xBBɘ\x97&\xE4\xA1Y\xCE\xBC4\x9E\x8C\xBBPޚ%ᣌ\xA1\\x98%\xE0g\xA3|e\xBDTI\x9A\xE5\xF7(\xD3\xD3\xF8\x9CL0\x99_\xCC\xE7&\xA1l\x892E\xEE\x89\xF2\x94\xC49\xBCr\x8B\xF99h\x9Ex\xA6g\xE4\x8A\x89Ib\xA6טi\xE5\xE8\xC8f\xFA\xF1\xB3S\xF9b1+\x94\xC3M\xE1\x88xL\xCF\xF4\xB4 \x8E0\x80\xAFo\x96E%Ym\x99h\x91\xED\xAD\xED\xEDY\xD6\xE6h\xF9\xBF\xD9\xDF~S\xFD=\xC8z\xFBU\xF1&\xECϞA\x8C\x9EY\xDFl\xEC\xAC/\xBD\xF6$Z\x9B\xB3\xBE\x95U\xB4m@\xE5\xE1\xACO\xEF \xF2\xB4ޜ\xF3\x86l^\x92\xC4\xE2 ' \x8B\xEC\xECls\x9Fk.+\xE87\xFB\x9F\x82oʿ\x869\xF7\x99\xCB\xEE\xFBV;\xA6?\x81#I3eE妧\xA6KD\xCC\xCC \x97\xCFd\xFD\xF7\xFF\xE3\xC09i\xCD\xC9\xC3,\x9C\x9F\xC0\xF1\x85\xE8UQ\xE8\x94   \x84\x89h\xBB\x85<\x81X\x90.d
+\x84\xD5\xE16'~\x9Dkhu_}\x859P\xB8I\xC8o=C#$n?z}\xEB[1
+Ⱦ\xBCh\xAD\x91\xAFs\x8F2z\xFE\xE7\xFA \\x8An\xE1LA"S\xE6\xF6 \x8Fdr%\xA2,\xA3߄l\xC1\x90t\xA0
+4\x81.0,`+\x803p\xDE \x84\x80H\x96.Hi@\xB2A>\xD8
+A1\xD8v\x83jpԁz\xD0N\x826p\W\xC0+p \x80G@
+\x86\xC1K0ށi\x82\xF0\xA2A\xAA\x90\xA4\x99B\xD6ZyCAP8\xC5C\x89\x90\x92@\xF9\xD0&\xA8*\x83\xAA\xA1CP=\xF4#t\xBA]\x83\xFA\xA0\xD0 4\xFD}\x84\x98\xD3a+\xD8\xB6\x80ٰ;G\xC2\xCB\xE0Dx\x9C\xC0\xDB\xE1J\xB8>\xB7\xC2\xE1\xF0,\x85_“@\xC8\xD1FX\xF1DB\x90X$!k\x91"\xA4\xA9E\x9A\x90\xA4\xB9\x8DH\x91q\xE4\x87\xA1a\x98\xC6\xE3\x87Y\x8C\xE1bVa\xD6bJ0՘c\x98VL\xE66f3\x81\xF9\x82\xA5bձ\xA6X'\xAC?v 6\x9B\x8D-\xC4V`\x8F`[\xB0\x97\xB1\xD8a\xEC;\xC7\xC0\xE2p~\xB8\2n5\xAE\xB7׌\xBB\x80\xEB\xC3+\xE1&\xF1x\xBC*\xDE\xEF\x82\xC1s\xF0b|!\xBE
+ߏƿ'\x90 Zk\x82!\x96 $l$T\xE7\xFD\x84\xC24Q\x81\xA8Ot"\x86y\xC4\b)\xB1\x8E\xD8A\xBCI&N\x93I\x86$R$)\x99\xB4\x81TIj"]&=&\xBD!\x93\xC9:dGrY@^O\xAE$\x9F _%\x92?P\x94(&OJEB\xD9N9J\xB9@y@yC\xA5R+\xA8n\xD4X\xAA\x98\xBA\x9DZO\xBDD}J}/G\x933\x97\xF3\x97\xE3ɭ\x93\xAB\x91k\x95\xEB\x97{%O\x94חw\x97_.\x9F'_!J\xFE\xA6\xFC\xB8Q\xC1@\xC1S\x81\xA3\xB0V\xA1F\xE1\xB4\xC2=\x85IE\x9A\xA2\x95b\x88b\x9Ab\x89b\x83\xE25\xC5Q%\xBC\x92\x81\x92\xB7O\xA9@\xE9\xB0\xD2%\xA5!BӥyҸ\xB4M\xB4:\xDAe\xDA0G7\xA4\xFBӓ\xE9\xC5\xF4\xE8\xBD\xF4 e%e[\xE5(\xE5\xE5\xE5\xB3\xCAR\xC20`\xF83R\xA5\x8C\x93\x8C\xBB\x8C\x8F\xF34\xE6\xB9\xCF\xE3\xCF\xDB6\xAFi^\xFF\xBC)\x95\xF9*n*|\x95"\x95f\x95\x95\x8F\xAALUo\xD5՝\xAAm\xAAO\xD40j&jaj\xD9j\xFB\xD5.\xAB\x8Dϧ\xCFw\x9Eϝ_4\xFF\xE4\xFC\x87갺\x89z\xB8\xFAj\xF5\xC3\xEA=\xEA\x93\x9A\xBEU\x974\xC65\x9An\x9Aɚ\xE5\x9A\xE74ǴhZ \xB5Z\xE5Z\xE7\xB5^0\x95\x99\xEE\xCCTf%\xB3\x8B9\xA1\xAD\xAE\xED\xA7-\xD1>\xA4ݫ=\
 xADc\xA8\xB3Xg\xA3N\xB3\xCE]\x92.[7A\xB7\\xB7SwBOK/X/_\xAFQ\xEF\xA1>Q\x9F\xAD\x9F\xA4\xBFG\xBF[\xCA\xC0\xD0 \xDA`\x8BA\x9B\xC1\xA8\xA1\x8A\xA1\xBFa\x9Ea\xA3\xE1c#\xAA\x91\xAB\xD1*\xA3Z\xA3;\xC68c\xB6q\x8A\xF1>\xE3[&\xB0\x89\x9DI\x92I\x8D\xC9MS\xD8\xD4\xDET`\xBAϴ\xCF k\xE6h&4\xAB5\xBBǢ\xB0\xDCYY\xACF֠9\xC3<\xC8|\xA3y\x9B\xF9+ =\x8BX\x8B\x9D\xDD_,\xED,S-\xEB,Y)YXm\xB4\xEA\xB0\xFA\xC3\xDAĚk]c}džj\xE3c\xB3Φ\xDD浭\xA9-\xDFv\xBF\xED};\x9A]\xB0\xDD\xBBN\xBB\xCF\xF6\xF6"\xFB&\xFB1=\x87x\x87\xBD\xF7\xD8tv(\xBB\x84}\xD5\xEB\xE8\xE1\xB8\xCE\xF1\x8C\xE3'{'\xB1\xD3I\xA7ߝY\xCE)\xCE+Σ \xF0\xD4-r\xD1q\xE1\xB8r\x91.d.\x8C_xp\xA1\xD4Uە\xE3Z\xEB\xFA\xCCM׍\xE7v\xC4m\xC4\xDD\xD8=\xD9\xFD\xB8\xFB+K\x91G\x8Bǔ\xA7\x93\xE7\xCF ^\x88\x97\xAFW\x91W\xAF\xB7\x92\xF7b\xEFj\xEF\xA7>:>\x89>\x8D>\xBEv\xBE\xAB}/\xF8a\xFD\xFDv\xFA\xDD\xF3\xD7\xF0\xE7\xFA\xD7\xFBO8\xAC \xE8
+\xA4FV> 2        u\xC3\xC1\xC1\xBB\x82/\xD2_$\\xD4B\xFCCv\x85< 5 ]\xFAs.,4\xAC&\xECy\xB8Ux~xw-bEDCĻH\x8F\xC8\xD2\xC8G\x8B\x8DKwF\xC9G\xC5E\xD5GME{E\x97EK\x97X,Y\xB3\xE4F\x8CZ\x8C \xA6={$vr\xA9\xF7\xD2\xDDK\x87\xE3\xEC\xE2
+\xE3\xEE.3\\x96\xB3\xEC\xDAr\xB5\xE5\xA9\xCBϮ\x90_\xC1Yq*\xDF\xFF\x89©\xE5L\xAE\xF4_\xB9w\xE5ד\xBB\x87\xFB\x92\xE7\xC6+\xE7\x8D\xF1]\xF8e\xFC\x91\x97\x84\xB2\x84\xD1D\x97\xC4]\x89cI\xAEII\xE3OA\xB5\xE0u\xB2_\xF2\x81䩔\x90\x94\xA3)3\xA9ѩ\xCDi\x84\xB4\xF8\xB4\xD3B%a\x8A\xB0+]3='\xBD/\xC34\xA30C\xBA\xCAi\xD5\xEEU\xA2@ёL(sYf\xBB\x98\x8E\xFEL\xF5H\x8C$\x9B%\x83Y \xB3j\xB2\xDEgGe\x9F\xCAQ\xCC\xE6\xF4\xE4\x9A\xE4n\xCB\xC9\xF3\xC9\xFB~5f5wug\xBEv\xFE\x86\xFC\xC15\xEEk\xAD\x85֮\۹Nw]\xC1\xBA\xE1\xF5\xBE\xEB\x8Fm mH\xD9\xF0\xCBFˍe\xDFn\x8A\xDE\xD4Q\xA0Q\xB0\xBE`h\xB3\xEF\xE6\xC6B\xB9BQ\xE1\xBD-\xCE[l\xC5ll\xED\xDDf\xB3\xADjۗ"^\xD1\xF5b\xCB\xE2\x8A\xE2O%ܒ\xEB\xDFY}W\xF9\xDD\xCC\xF6\x84\x{DF65}\xF6\xA5\xFBw\xE0vw\xDC\xDD\xE9\xBA\xF3X\x99bY^\xD9Ю\xE0]\xAD\xE5\xCC\xF2\xA2\xF2\xB7\xBBW\xEC\xBEVa[q`i\x8Fd\x8F\xB42\xA8\xB2\xBDJ\xAFjGէ\xEA\xA4\xEA\x81\x8F\x9A\xE6\xBD\xEA{\xB7\xED\x9D\xDA\xC7\xDB׿\xDFm\xD3\x8D\xC5>\xBC\xC8\xF7Pk\xADAm\xC5a\xDC\xE1\xAC\x
 C3\xCF\xEB\xA2꺿g_D\xEDH\xF1\x91\xCFG\x85G\xA5\xC7u\xD5;\xD4\xD77\xA87\x946\x92Ʊ\xE3q\xC7o\xFD\xE0\xF5C{\xAB\xE9P3\xA3\xB9\xF88!9\xF1\xE2\xC7\xF8\xEF\x9E <\xD9y\x8A}\xAA\xE9'\xFD\x9F\xF6\xB6\xD0Z\x8AZ\xA1\xD6\xDC։\xB6\xA46i{L{\xDF\xE9\x80ӝ\xCE-?\x9B\xFF|\xF4\x8C\x{1996B3}\xCAgKϑ\xCE\x9C\x9B9\x9Fw~\xF2Bƅ\xF1\x8B\x89\x87:Wt>\xBA\xB4\xE4ҝ\xAE\xB0\xAE\xDEˁ\x97\xAF^\xF1\xB9r\xA9۽\xFB\xFCU\x97\xABg\xAE9];}\x9D}\xBD\xED\x86\xFD\x8D\xD6\xBB\x9E\x96_\xEC~i\xE9\xB5\xEFm\xBD\xE9p\xB3\xFD\x96㭎\xBE}\xE7\xFA]\xFB/\xDE\xF6\xBA}\xE5\x8E\xFF\x9D\x8B\xFA\xEE.\xBE{\xFF^\xDC=\xE9}\xDE\xFD\xD1\xA9^?\xCCz8\xFDh\xFDc\xEC\xE3\xA2'
+O*\x9E\xAA?\xAD\xFD\xD5\xF8\xD7f\xA9\xBD\xF4\xEC\xA0\xD7`ϳ\x88g\x8F\x86\xB8C/\xFF\x95\xF9\xAFO\xC3ϩ\xCF+F\xB4F\xEAG\xADGό\xF9\x8C\xDDz\xB1\xF4\xC5\xF0ˌ\x97\xD3ㅿ)\xFE\xB6\xF7\x95ѫ\x9F~w\xFB\xBDgb\xC9\xC4\xF0k\xD1\xEB\x99?Jި\xBE9\xFA\xD6\xF6m\xE7d\xE8\xE4\xD3wi獵\x8Aޫ\xBE?\xF6\x81\xFD\xA1\xFBc\xF4Ǒ\xE9\xECO\xF8O\x95\x9F\x8D?w|     \xFC\xF2x&mf\xE6\xDF\xF7\x84\xF3\xFB
+endstream
+endobj
+10 0 obj
+2612
+endobj
+7 0 obj
+[ /ICCBased 9 0 R ]
+endobj
+3 0 obj
+<< /Type /Pages /MediaBox [0 0 155.52 243.84] /Count 1 /Kids [ 2 0 R ] >>
+endobj
+11 0 obj
+<< /Type /Catalog /Pages 3 0 R >>
+endobj
+8 0 obj
+<< /Type /Font /Subtype /TrueType /BaseFont /DEWARO+Times-Roman /FontDescriptor
+12 0 R /Encoding /MacRomanEncoding /FirstChar 32 /LastChar 120 /Widths [ 250
+0 0 0 0 0 0 0 0 0 0 0 0 0 250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 611 0 0 0 0 0 0 0 0 0 0 0 0 444 0 0 500 444
+333 500 500 278 0 0 278 0 0 500 500 0 333 389 278 500 0 0 500 ] >>
+endobj
+12 0 obj
+<< /Type /FontDescriptor /FontName /DEWARO+Times-Roman /Flags 32 /FontBBox
+[-203 -428 1700 1272] /ItalicAngle 0 /Ascent 750 /Descent -250 /CapHeight
+662 /StemV 0 /XHeight 453 /MaxWidth 1721 /FontFile2 13 0 R >>
+endobj
+13 0 obj
+<< /Length 14 0 R /Length1 10176 /Filter /FlateDecode >>
+stream
+x\xBDz |SU\x9E\xF09\xF7\xDE\xE4\xE6ټ\x9AG\xD3$7\xC9ͳI\xF3h\x9A\xB6i\xD3\xF6\xB6MJiy(Ҋ\x85(\x8A\x80`DwP,\xE3\xCA\xE0\xE0\xC5u\x97\xB4"|\xB2\xCA\xF8\xEB\x8E\xE3ꌃ\xA8;+>v\xB4;\xBB;\xE0\xEC 4\xD9\xFF\xB9)\xA8\xF3\xB9\xDFo~\xDFo_N\xEF\xF9\x9Fs\xFE\xE7\xF9\x9F{\xBB\xE5\xEAkF\x90
+\xED@4V\xAEވğ^ \xE0\xE7+G\xB78Ku\x99+!Ʊz\xE3\xE5\xEBKuU!ɮ˯ܺ\xBAT70\x95\xF7\xAE^U\xAA\xA3\xF3\xEB\xD6@C\xA9\x8Ekz֬\xDFr]\xA9\xAE;pΕV\xCE\xE0\xF5\xA7\xA0X?|\xDD\xCC\xFA\x88ԝW+\xAF)\xF5\xF7?гq\xC3\xE6-3\xF5>\x80]\xAF\x99\xE9\x8F\xFB\x92\xBET\xC2}֊0Bg\xE1!\xD0&$Ew#9\xA2\x90RB\xECgЗ,\xC1\xC3o\xF7\x8B>Z\xAEI\x9F\xC5:\x99X\xFFQ\xF3R\xFE\xEA-\xFEDa\xE8\xFC]\xEA\xFD\x8A04\xC8/\xF4'P\x8A
+Ф\xFEYa\xA80\xA4\xDE#\x8E\x83̐G\xF1P\xF9C\x82F\xFE\x8B>\xAC\xE9ío\xF1C}XhS\xE3s\xD0=&\xE6N1׊9\xC2\xE7%FN\xBC\x87\xC5{\xA4\xF8\xDF\xDB\xE6Sd\x8F\xBF\xA7hȏSd\xB79\D9(\xBD@ɀ_\x87\xA1tJz\x88")\xDDD!x\x94\xA1;\xA1|'\x94wP\x802Ģ+вZ6@\xCBha\xD0r\xA8\xF5\xC2
+ˡF\xA3\xF9P#\xAB\xCEk1\xA8\xB5B-&֢\xB0ZjQ\xB1\xC6Q\xB2 ,\x9E\xC6\xE3\xB9x\xE1S\xEE\xC5Meܳ\xB8\xCFE+\x87\xE3\xB7\xCE\xE7\x9EǏ!'R\xE3;\xC5\xFC\xA1̩\xFE\xC0\xA9>\xE9T\xDF\xE9T\xDF\xE4T?\x8Fw\xA3^@_)\xE6X(\xEBU\xBF۫\xEE\xE8U\xB7\xF6\xAA{\xD5\xCF\xE0&4-\x94\xD4\xCF\xD4\xF9\x80\xFA\xC7\xF5\x8D\xF5h@]\x80\xD1\xE3\xA8\xD0?\xF3\xEF \xCEn\xF5\xBBկv\xAB\xEF\xEDV\xEF\xECV_߭^ݭvu\xABW\xD8\xD4\x9B\xBAҦ\xCE\xE3\xEDG5{5{4H\xC5#{\xD4{\xF7@\xDB\xD9'\xE3Q\xAE-\x8F\xFF\xF0T\x82 \x85\xEB\xB8<\xBE}\xA2/ \xE0o&\xFAqmF|3
+2N\xB4\x81\xBEeD\xB8\xC7Dx\x8E\x89\xF8k'\xA2A\xB6y\xA2\xE5A\x9B&ZN9\xAE@\xB9n"qZ&\xFA\x96qmr\x9C\x98\x99\xB3edd\xCEꉖ\xBB]5~\x83k\xD3a?\x8A`/4{PBD\xF3(!\xCE➁҉>t\x97\x81\x8D\x83y\x8C'\xB8®<\x85\x8Fr\xE7\xA2 \xB9/#yZ\xCEF\xF22\xBF+\xE6\xA9C\xDC\xFBQ\x82\x99{/\xBA\x8C\xFBMK7wfx\xA9\xEF4\xF7B\xF4J\xEE\xE9\xB08\xE0'\x99g\xC9*\xE8q\xC3\xFB%\xF7h\xF4.\xEE\x91\xE8\xED\xDC[D\xF4\x81\x848\xDF\xDD}"\xD8\x84ƣ\xDC\xED0\xCD\xE6H_2\xC1]\x9D +(\xB9+`\xC6u\xE1n%4\xEF4\$\\xCF-\x8A>\xC3-\x88^\xCD\xCD/\xAD4;#\xCE\xD8}Z<\xD6u\x9B\x9Dk\x8Bڹ\xE6\x967\xB8\xA6 \x9Cd\x82K\x91\xE1\mi\xF1\x9A\x88x\xBCx\xCB.\xC7c\x8ErU}q\xCE+Kb\xA1\x9A[|9\xBB\x9C]\xCCֳI6\xC6\xFAX/\xEB`\xEDl\xB9L/\xD3\xCA\xCAd*\x99B&\x93Ie\x8C \xE4VV\x9E/\xFE\xB3"\x86\xA1\
+&#).\x8C\xB1\xAC\xED\xC0\xA0C$G\x96Q Zy\ܙ\xC3w\x98F[-\xAD\xFA]\xAA3\xF3-ِ\xD88\x94 }\xDBϞ\xBB\xBBgQ\xEE\xA0} WC
+E\xFB@O.\xB9\xC8yY\xFF1\xFC)\xFE8\x9B9\x86?!`\xEA.\xFCiv\xA1\xD8\xEE\xCA Xzrsz\xFB\xF3\xF8\x93\xEC\xDA< \xD6\xE7\x82\xFCr\xC20t\xE8\xC9]"΃\x82Д9\x86\xFA\x80y\xA8:$\xF3\x80\xC8։\xDDn/u\x8B\xC2,\xD0-C\xE9vE\xC5nQ\xEA\xB4\xD8\xED+\xD2m|W0\x9BB]$\xB4K\xEC\xB2K!]\x80ढ़\xC7`hf<
+\xF4R\xE4pL\xDCwL\x91'\xB2\x8B%Х\xB2\x81\xFE\xF1\x9AtOԈ\xE8\xE8W\xE8p \xBD\xB0\x84^(\xA2\x97~\x85\x8E\x94\xD0J\xE8\x80\xFE6\xFF\xBF\xB4\x8D\xB4\xFFu\xA3\x9E\z\xFF\xCDdG\xF8\xEC\x9F\x81g(\xB7{t\x8D%\xB7c\x85\xD39~\xF3\xFD\xE1\xCCѾ\xA1+\xD78<\x92\xBB\x9F\xC9\xE4n\xE63\xCE\xF1\xA5⸿@?@\xD0K\xF9\xCC8z \xDB\xD7?\xFE\x800\x92\x99X*,\xCD\xF2\xC0\xD0'o\xBDcS\xF6k\xDD~q\xADMw|\xCBZw\x90\xC96\x91\xB5n\xC7\xFD\xC5ZY\x82\xBE\x95\xAC\x95%ke\xC9Z\xB7
+\xB7\x8Ak\x91\xD3g\xD7.j\xDF\xFC-\xBF-\xD7\\xB3l\xF3\xE6eH\xB2Q\x92d\x87\xC7B\xDF\x9E?\x82g
+\x9E\xDF\xDA!\\xE1\xB9\xE2\xAFh\xE8\xCC\xF2P\x85\xD64\xF2!چ\xEE\xB2+}\x80\x92\xC8 v\xFC#\xDC\xF5#\xE8M\xF4!\x9A\x83.E'@\xB7\xE1Yh \xCDC)\xB47#~ ա,z=#\xB6\xA2+з}\xB9`\xD4\xD3\xC5\xA1\xADBy\xF4%\xF8a;jF\xFD0\xCBw\xD1}\xC5\xE8\xFA \x9D->\\xFCJ\xA0\x9D\xD0\xE3\x9D⿠(\xDAX
+Y\x91\xE6\\x876\xE2jjK\xF16\xD4\xEB݋\x9EF`S\xB1Q-J\xA3 \xBA\xADA\xEB\xD1U\xE8;\x80{\xBD\x83~\x8Dmp\x9Aj\x83u:\xD1\xB4݅\xEEA9\xF42\xE6\xF0+\xF8\x8C\xBC\xB8\xA6\xB8];X\xE3\xF6\xC2i\xDED\x9F\xA2\xFF\xC0:\xFC~\xA5h+)am5\xA0v\xFF\xFAz\xFD\x90\x9C\xBD\xE94\x9A‹\xF0\x9A\xA7k\x8B\xEAbM\xF1\xF4\xD7\xD5ԃ.\x83\xEBэp\x92{\xD1\xCF\xD0\xEB\x90>\x84U\xB8/\xC6\xF1<\x86_\xA1\xDAi\xC3J\xE6o\x81]ʀ\xDE͐\xE6\xC3\xFE7\xC3N\xF7\xA0}@\xC3\xC7\xD1\x90^B\xFF\x94\x97c\x9Ej\xA3vPgh-0 $\xA3ś\x8A\x87\x8B\xCF\x91\xA02\xA0\xA49h \xBA\xEDB\xB7\xC3y\xF6\xA2\xA3\xE8E\xF4.\xF0\xEA\xDF\xD14f\xB1\x9BaG\xF0\xFB\xF8s
+Q:*\xB3\xFD\x9C\xDE@\x8Fч\xC4<\xC0\xBC/i\x91\xDCVx\xACp\xBAxyq_\xF1\xF5\xE2\xC1\xE9)\x887\xBC\xC0\xF9zH+\xB0F+Z\x80\xA1\xB4
+h}\x85(\xF7\xA1\xC3hڽ\x83N\xA2\xF7\xD14*`\x9C\xB3\xB7\xE3K\xF1\xF5\xF8G\xF8\x9E\xC4\xA4(JKq\xB0f\x90\xBA\x8Dz\xD2qj\x92z\x87\xB6\xD2v:@\xC7\xE9e\xF4\xDD\xF4C\xF4\xE3\xCC]\x92U\x92M\x92\xEFKƥ\x9F\xB3\xBB
++ \xAB
+\xA3\x85 \xCF{\x8A\xF7Z<\xBBq\xC1nO\xBB\xD0l8\xED\xD4\\x8D\xAEi=Fd        \xF6\xF3$z
+\xD2Q\xD8\xD53\xE8Y4   {\xFB-:2w\xE8 \xE9`J\xC4p
+\xA7q \xEC\xB3g\xF0l{\xE6\xE3>\xE0\xCF܏\x87\xF1:\xBC+o\xC7\xDF\xC1@\xFA~\xCEq\xD21\xFC ~\xBF\x89+\xE94\xFE\xD2) \xC5R\x8A\xA7|\x94@\xF5@Zi\x98ZI\xAD\xA1\xD6R\xEB\xA9; =F\xA6\x8EPy\xD1-t'= )G\xA7ߡMH\xFF\x89\xB12[\x98\x98`&\x99\x93\xCCi\xE6?\x99/%ZIL\xB2Xr\x89\xD4"MIG\xA5\x8FH\x9Fd\xAF`\x9F`O\xA2      \xA0\xF1\xDF\xC1\x99\xBE\xFE[\x89\xB6RwSF۩Y\xA0g\xAF\x82\xCF\xFB9\xD5\x9C؆\x9Fď\xA5E\x80~\xD4B,~
+$S@qH
+H\xB7+\xAB !\xC1\xEF\xF3zx\xB7\xCB\xC99\xEC\xB6Jk\x85\xC5l2\x96\xF4:\xAD\xA6L\xADR*\xE42V*ah\x93\xC2Y\xBEsș\xF3+\xE5\xDF\xD5UM\xEA\xFC04 \xADa(焦\xCEo\xF6\xC99ɸa@}\xA3\xA7=W\xFFEO\xA1\xD4S\xB8\xD8k\x9Di\x94\xAE;\xB3\xBC3\xF7F\x86w\xE6\xF1\xA5 \xFA\xA1|G\x86p\xE6\xA6\xC4\xF2\\xB1\xBCG,\xAB\xA1\xECr\xC1gֲ&\xE3\xCC\xE1!g6\xD79\xBAf,;\x94\xA9\xE3cPOQ\xE1j(\xC9\xC49\xD41\xBC+\xDC\xEA =\xB29+\x9F\xC9\xE6*x(\x8E\xF6f\x87W\xE5z\xF4g3\x95.\xD7@u8\x87;V\xF2+r\x88o\xCFiB3\xC3\xC980\xDBޅ\xFD\xB0vux-x\xF6ڭZůڝЊ!R\xBE\xAC?G\xE4\xA8!\xB2\x86.\x943\xF3\x99\x9C\xF9\xFA\x8F-_U/\x94\xB2\xDF\xFD2Gy;\x87G\xC6:s\xC2\xD0n :\xA9\x91\xDA\xF0w\xA1\xD6C\xBCl\x8E\xDA9П\xC3;asd\xE2\xDEK\xA7(96\xEF\xD0:gNη\xF3k\xC6\xD6+\xCD\xD1\xC2\xFE      \xAB`=H\xF5\xF6OTb\xA5:|̲\xBD\xC9D9V\xDDV\xDDF`\x93˲\xBD?\xFD\x9BR\xFB[\xC7     \xB4l?\xF1\xCF{^\xA4 &k\xF3\xB3a\x9B9\xE7Jq\xF6\xDA@\xB2\x914\xB6\xB2\xC8\xBF \xA7\\x9B\x93w \x8Di\x819\x89W\xCB;\xC7\xCEµh\x88\x9F\xFA
 \
 xE2\x9B-\xC33-R\xAF\xF6,"H\xC2΋\x915-I\xDC\xD1\xC2=y$\xEF\xED\xC7\xF8oH\xBC\x97G\xFB1\xF02\xF4\xF2e\xD5y \xE2\xB06\xA3\xA1 CC\x95 JUag'캓\xF0\xCD9\xE6\x9B\xBDj\xCC\xD9\xE9\ g\xBC"\xC4\xC8\xD8@\x8E\xB3\xA8-\xE4}\xFD\xAE\x9C0Py\xB1820\xD0\xF3\x84\xC8<0\xBA\x8F+\xC0 \xEBff(6E\xA7\xA1S8\xDCC\{o\xFF\x82\xFE܎LeN\xC8 I@Ď\xF7\xF6玃t+ @/8\xE3\xCCNn[k\x99\xD9s\xF6\]\xF8hi\x88Aw\xC0ccd\xCEE\xFD\xBC+w|l\xACr\x8C\xE8D\xA9\x9E\xC7\xE8/\x84\x99\x86<"]\x88\xA8\xE4\xF1\x8E^ \x80wU\x92\xDEŻ`[X*\xE2u\x81\xBDp\xFE\xBFS\xB8\xE6\xE2\xBEadv[#R\xB8\xF6\x89\xC2ɿ\x86\xC2u\x85\xEB/\xEE\xF4n\x80=\xD7
+\xA7\xFE\xFFQ\xB8\xF1k\x96\xBC\x82\\xD8&xN1!}\xEA\x81{M`\x80:\x88P\xAE\x83GO\xA5\xA0\x9EB^(\xD7\xC2#\x9C\x9C\xB6\xA35\xD0VA\xF0\xF0\xF00ͅ\xF7"*x\xC9\xF1,ԝ\xE0\xB5\xE1F\xF4?\xFE\xC8\xD2\xFF[?\xFA\x9C6? 쉅\x98G~\x88\xFC\x94b\xAEBj\x80eCi\x91Nlы9\x9C\xD2z ?M\x{D81D}\xF4\xF7\x99\xEB$6ɭ\x92\xB7\xA4\xDD\xD2?\xB37ʺd\xE5E炩\xEF\x81x\x96\x86\xD9;\x8EPx\xB6D
+\xD7Z\xC1\x86v6\x8Df6MSV\xB9\x94\x9D\x8DQ\x85L\xFE\xB9\xABs\xA1%\x9Aw&=w:=O\xFBez\xAEv:\x8DZ\xD3\xD3i\xED\xC8ⱄΥ\xF3\xC3㒌\xE6\xCF\xFDY\xD2\xF3\xE7\xA7\xF2\xF4{罰+\x8CN?\xC3/@\\xA7D>\xC1 \xA9R*\xD5f\xB3UVEU\xA8\xD4/\xB9\xAE\xFB[q޹\xD3\xF3\xB2#\x99OP\xEBܩx\x8C\xF1%k\xEB5\xE0\\xA5<v\xB4wD\xA3\xEDm1 \xED\xD1h\x878'īL\xF6oF\xFB\x84\xE9\xABt%u\xA6\xA8\x870\xBCZ\x8E\xE1-\x879\x8A\xD2uW\xAA\xAB\xDD2W\xA5\xAA\x9A7\xBCj\xAA\xA4\xCC\x92b\x99L\xA7\x96"p\xF7U\xABdyJ1A\xF5\xE0<\xBC\xDE)ceA=\xA7[\xAE{HwX\xC7\xE8\xA0i\xF5\x98\x8FQrd\x89\x9E9sf\x8Ez\xE6 l2\xDDJ\xE8\xA0K\xA5\xB0N\x9F\x82?t*\x8D\xA7\xBE\x85\xF0 \xFC\xB4S_\xC4c\x97\x81\x8F\xE0֕\x9B\xCCFW\xB2'u\xBC[\xCA\xF2f\xA72\xEE\xD90qu\xF7\xB6\xE9C\xB7W\xBC\x81\xAB\x91\xF4yd\xE5\xB9ϮMɽ^E\xFBN\xADxgz\x8A\xFFA\xDFN\xBA       \xA8+\xAB\x84տ\xF3\x9D\xF3Q\xAC\xBFSJ\xA9\xF8\xFD\x8A\xFD\xA9\x9F(~\xA2|\\xFD\xAC\xFC\xE7\xF2ף\xAF\xC7N\xC9O\xC5Nƿ\x90O\xC54Kd\xE1x\x95\xD9ƕs(\xA1\xD1`\xCD\xEC\x9AH]*
 \xD6(\x90\xB4\V\x9E𲑖:\xA5\xAC\xA5Y\xD9ƶ\xA5\xFCZe\xB4\xADJ\x88o+F\xABWQUy
+       \x8A\x8B\xBF2\xE3ng2\\x81\xC7;ڣ\x93g\xA6\xCEL\x9F\xD6~9\x98\xFE<\x9D>E\xAD\xADS$\xE9\xF4fB\x83\xD1\xE8\xA0ej
+"Qⱎ\xADBSK+P\x991Ky\xD5>\xA9O\xEF\xC3e\x8C\xB1-\x8C=f2\x99+>\xAD\xFB\xB4
+\xF90FeI\xAB́t\xFErF\xA1\x906\xADM\x870<\xF0W\xFA\xDD ?4\x887+b)+5\x96\x9BM\x89\x9A\xBA\xA4\xA7\xBEΛ\xAC\xF5\xFBx7i\xA1a\xA5\xBC\xBB$A\x9F\xE9J\xBD\xEA\x8D0\x9A\xFD%\x90\xC4T\xCF\xE6\x9E=i\xAC}k}\xEF2l(w_\x91\x88D^\xA3\xBD:\xF6ď_\xCCze\xEA\xA0\xD9\xE1uz3\xCD\x{11CEA5} /َ\xB7QU\xBE\xC8\xC0\xA6\xA5![w\xEA\x8A\xE1\xF4\xE5\x8BW:\xAC\x95QUJ\xD6`R7y:\xEF۞\xFDNaC\xA3\xC9_VY\xEB\xAF\xF0\xF57\xB7;\xEB\xB6Rp\x81$\xC6*^\x9C\xA2\xA7$\xA3i6\xA2\xF7\x84\xF5\xF7~x=\xF0Z\xF8\xA3\xF0\x99\xB0\xAD\x8F\xDC\xD9\xB9?r(\xF4\xD3\xC8ӡg"o\x84&#/7\x9C
+\xBDy\xA7\xA1\x8C\xCD        R\xBCLy\x92\xE9Uؔ{t\xA7\xB9\xD7ns\xECu\xD5\xC4cQ\xC6̸\xFD5Q\xDELKj}\xB5\xD7&\xAA\xD9\xC6\xBFߥt3Q\xBD_0c30\xF5h\xBA>\xF3`\xFE\xE2\xF1t0tp
+\xD8yF\xD4c-\xE1$\xB0\x8E\xF0ROhN!\xED٩\xF3\xF8\xEC \xF9iI\xA6\xE1d\xB8އR\xC8\xEAB\xB5>\xDCl\xF4!`\x85\x807\xC0\x99M\x83\xC8l2\xEBj\x81R6Y߂\xEB\xEB\xEA\xCDl6\xD2\xE5\x84]\xC0+\xF6'E6P\xC9Z}B_\x97,u\xDE%\xA8Hs\xC0[\x99P鹅՗\xBA\xB5^)\x85)ʙU\x9A\x94\xD2\xDD?`\x82\xB3\x87\xFE\xD3\xF4\xDFo\xDAݾ\xFD\xBB\xFB\xBEO\x8F;\x8D^\xDC\xD2\xA1h\x97QeUIʨ\xB5\xA9\xADM\xE7\xD1V\x8B)k\x92\xDF\xD0l\xAD\xC6\xEC\xBF\xC1\xF5\xE7\xBF,\x88\x9F\xB8\xE5\x8A\xF4\xF0yЭ@\xF13\xB8I\x84;\xBE+n׿\xD7\xCA֩6\xE8\xAF4\xDE\xC0n\x95]\xAFڦ\xBBI\xBF\xAD|\x9B\xF1|ٗ\xF5b\xD9jِ\xEE\xF3\x8A\xFEm\xE6\xF9\xBFhd\xCD2\xB9\xC2l\xA1\xE5
+J\xAE\xA0\xA5攖\xC6\xF4,Zj\xB3\xAD\xB4ؽ\xD2J)i\x9BZi\xB7\xA8v\xBB\xF6
+\xAC\xC8Sԓ\xFD\x9E\x96\x90\x9Es]\xCA\xEBSg\xA6@\x89\xA6[ӠC\xA2\xFEL_P\x80\xDA\xD7D\x9AW\x95U"\x89\xD1k\xF5\x95\xEBE\x8D\xA9D\xAE\xB0H\xCAh2\xE9lPƐ1\xA9\xC8`\xC3}5e\x99\x8C.&t7\x97a\xDE-RhϺ|\xA00\xF5Ԋ\xB7\xA7w*\x9E\xBFe\xED\x9Ef>\xF8\xDB=\xFBƿ\xBD\xF0Ӵ\xB3 ?\xA6\xAC\x8Co\xAE\xA6\xBE\xF4\xE4go_5\xA2\xBA\xE9]l;\xF6\xF6\xCC\xA9[\xB8*\xDE?lz \x94dه\xAE\xEA\xEBX&\xAFP\x81>\xBA\xD9|x\\xAD6\xEF<\xED\x92\xF8 &\x8Bn\x9F%\xA1Ĝ$尳R\xA9ϫ\xA0\xCE\xE4)F\x90\x97\xD9]Q6
+<\xEF\xFA\xFDQ\xD1\xC6N\x9ELiE+\x9B\x8B\xDB:5\x96\x96P\xA4̢=a\x89\xC7\xF0 \xC9\x9B\x9AL\xD4\xD6_pn_G\xE0\x90\xACԎF\xBEdz\xEB:
+-|\xAFw\xCCm\xAF\xB2\xEB\xCA|\xEE9\x95\x9Asj\xBEy\xFAs\x9B$\xBB\x81\xBA\xA5\xE3\xC1\xF5\xBF\xEClr\xD5\xF2a\xAB\xD1\xDEh\x9B\xEA\x98޾\xA9UNވ0\xA8\xAE\xD0N\xBFH9\xE9\x82\xDB\xF3\xF4\xA60<\xBB\xBD\xABcw\xFB\xED+%\x92\x80\xA4^\xDEa\xEDHu\xAC\xA3\xAFlx\xAC\xFC1\x8B\xBC͠\x8Dt\x85CV\xC6\xE4sWR\xBE9ڶ9\xD4\xE9\xE0%\xF255A\xEA\x92D\x9C|!Hg\xCDO,\xB1:+X\xAA%U\xB6d\x89\xCF4g\xC1\xDF\xE5#X5 I\xD49"\xCDY\xBFɐ\xC7o    e\xE9c\x8B2ZS̴\xC7t\xC0Ę n\xE8\x8FNNN\x810\xC1\xDF\xE4\xDB\xD3 SD\x90\x88L\xB5N\xE5FO+\x8E\x89\x8AB&\x9A\xE8\x92b\x8B\xD0\xF2\xF5\xA2+\xF3\xE9\x8F`\xF2G\x8C\xA8~\xC6\xFF\x82\xD84a#o"\xD7\0\x9E~w\xC9\xE6:I\x9D)\xD9\xD8V
+      \xBC5(y]\x92\xE8\xBCh\x83\xF4k\xCF]\xFF؛}\xB5\xDF\xF3.t\x9BVXTј\xE4郳s \x8C\x8B+\xAA'\xF4
+\xDDs*\xDA\xEC\xCB;#+_vO\xE1\xA1#\x8FO\xF4\xB4\xAB"\xE6@v\xD3Yozx\xD3
+\xAFat\x99\xAC\xF0as_\x87IMa\xB8U\x97IZ\x85:ʿ蚷\xB2\xF4\x82*\xAE\xB1\xF6\xEA\xE4+8\xA7Fa\x8F\xDE\xFF\xE0\xB3;g{\xB2\x99&\x95^\xC7\xBC\xAB\xCA\xB1k\x97\xFF\xDB`\xBC\xEB\xFA\xA9\x90W\x88\x8F\xE8\x8F\xE1\xFD^ LY\xFE\x93\xCB\xCDV3e\x95i\xA3\\x8C\xE2[m\xF0\x85\xE1\x9C\xD0\xE4&\xF2sz\xAC\xAD6\x87\x93\xB5ڢN\xFE\x82\xD9+\xF2\xA1P\x90\xB7\xEAh\xA9?\xC6h\x8D\xE4o1\xB2\xB1(\xE7Px\xF8h\x85\x95\x98\xD8\xAD?eh\x9A8\xE8y\x9A\xB8L\x90a\xE64\xF2K\xC2$\x9AW\xE2\xD7@\x9AEU\xD7z}&\x8B\xCF\xE4q`\xB3\xC5k\xF6; |e\x9E\xB1\xAA\xA2\xB8\xCF\xD5܊\xCD:\xA0x\xA2F\xF4pC .\x8F4\xE8&\xEC+J\xA3:|s\xC5\xD5\xEF_\xFD\xC3&g|Na\xFE\x92\x9A\xB6K\xE7\xED\xAD]\\x98eS6]EoHҔG\xED\x959\xD8\xE9\xFD]\xEE\xF4\xAE\xAEk
+k\xD6  
+\x9BM\xD5x\xDE_(u\xC3\xC6Q\xF0a\xA0\xF7T\xD0Q   \xEF\xBA\xAFҴ\xAAl^\xA7\x87w:-Nm\xAF\xD9f\xD9ksrZ+c\xF3\xCA\xF6Q\xC8\xC6z=
+\xBFQ8\x95\xFB$~\xCE\xF9\xBEVC4\xDD%q#ȭMA\xD4G\xA4\xB2\xE4q\xB4g\xC1\x86\xC5c\xFA\xAF\xD4:I]]<q)\xE4\xE0ı\x93S>\x9E\x87\x9A\x9BC\xE1\xF4\x8E+䚘\xD2X:\x9C\xB5ɨ\xFA\xE1\x82UR\xD7\xD2,b\xCF\xE9\xC9k\xF0\xFBmA\xA6\x8C+K\xD9U\xACl\xBA\xE6\xEAF\xF2\x91\x97ħ\xA5™n\x84X\xB2[p݁lf\xA7\xC7\xE4ԫN2\x8DJ\x9Bj\x8F^\xC7\xD0 \xD8O\xB3I\xD1":\xA2\xD3Gi\x86\x9C\xA2B8\x85x\xD8\xFE\\x91\xA33\xDB/\xF1\x8BD%\xB0\xE5\xBAzfK\xAElW\x967\x97\xB9*n{\x9E\xA5\xD3\xCB
+6\x9B<\xB5\x88\xFEe{E\x95T\xEA\xF2\xA4U\xE5\xE7,I\xB0\xB03\xD5 \xB6\xE7 \xD0ڂ*\xD0^!\xFC\xB2\xFCc9u\xB7\xF6>\xD3\xED!\xD3Y\x85Ą\xCA\xB3y\xB1\xA2O+i\x94Y\xABOȔ\xC6L\x85R.\xE7h\xA5&\xA3Qb%\xF1:\x95\xD6\x87\xAFO\x89N|\x8E(sadV{UX\xE3Cf\xDA\xE8\xC3:9\x94 ,\x94ʐŇM dZ\x85\xDE\x9F\x8F \x85U\x8C\xC4DO?hǂ\x8C\xE5\xDED\xF1\xF5$\xAB\xA5\xF8\xFA\xDA\xE9W^\xC6\xCC\xF9W\x8F\xBE\xC4\x8D\xAB\xBEs\xE3\xD6\xFD{\xBD\xD4=\xD8P8\xFF\xEE+\x85\x93\xD8\xFA~\xB0v\xE9\x87\x85\xC9\xFC\xF1\xB8&MdK.\xDA\xDAq\xF8:\x9F@'\x84\x81:y\x9D\xEB\xEE\x8A\xFB\xBC\xBD\x8F\xFAO\xFB\xCF\xFAe
+\xAF\xC4\xDF\xED\xA5\xF3\xE0\xAC\xBBe\xDA\xB5-q\xD2\xE9\xB0\xD5|\xC0[\x9C:Q\xF8*\xE1=-\x89h#\xC1D5\xA7S)$\x94\xA3R\xD6³\x95,\xB52\xA8LԔI2`_)A\x91t\xF8#Q\xDDq-\xD6eM\xD6\xF2\x88\xDA:E\xCFĶ\xBA\x94\xEEkVs&
+\x85J\x91\x90'@\xB3t@\xE2ì2\xC6O\xF9\x90\xD4+\xF3A$B$
+\xDA4\xE8)\xD9V"F\xBC>\x9D   tD\xAE1ٱ\xA8\xC1`K\x81\x80`K\xF2\x81\x87/\xEF\xBC\xF2\xBE\x87\xD6v__xqY›P\xF4\xCB%'$\x92\xF6\x9AK\x97\x8F\xBD\xF2\xFB\xA7\x82B]\xFB\x86\x82nKǯ\x8F\xE7\x8F.+\xE4Ӈ\xA4\x99\xD9\xF4\xF19!\x88\x828\x9C\x91Kokw6|>\xF9j\xE1\xE92cC\xE1\xD8HDF.\xB9 \xE7r \xF28\xF8\xB2 \xDA%\xCC9\xE1\xC0\xF5n\xCC1\xF7\xA0\xD3\xE3\xE9\xB0\xC0\xD49\x99V\x880\xF7jݜ\x83y<n\xFC`\xB9\xDD\xE0\xDCa\xC7N{\xCCN\xD9\xF7ٵ~3 (vX\xB15d\xF0{J\xE6\xEE\xC8a8xUtrP4y'      瞞\x9C\xDAa\x8E.\xCA\xF1\x{158498}\xBCx \xF9\x92\xBFh\xD5@\xB3    YZ@\xACJ\xA7D\xB9rS\xBD\xD1%\xBF,\xED\x8D+\\xFA\xD4u\xE6\x9A$K \xD7
+       !\xEE\xF5\xCD5\xF1\xAB{ \x97,ދ_Z\xB9X¸ʫ\xE4\x8BB\xFB\xC8\xC0\xAA\xE6H\xB0\xA1sS\xBA\xD0|I^"ck\x8AS\xD4k\xF48\x8A\xA3L .2`T\xA7\xD4kTk\xD5[\x95[U\xBBT\x8A\xA0,f\x8B\xFFR\xC06\x93\xC7\xDF{\xCA\xD5y\xEC4\xEE*\x8B\xAD\xE2\x97B\xA5\xCDe\xE5\xE0\xF4U#\xC1\x85\z5R\xC8\xDC>^\xAD`$\\xA2F\xCFJU\xCA\x8D\xFF\xDEZ\xB4R\xD6NY[+\x8A\xF9\xB1\xBF\xD6+_\xDF-\xF2o\xD4\xD0\xD7КNT ;\x90n\xF4m\xCB\xE0\xE9)\xED\xDB@\xB2\xA9\xD1\x83\x9B,\xA2'\x87\xE0P\xA4xl\xA4m\xB6~a\xB1\x9E\xF9xCi
+JSb\x93\xD5r\xE6c\xAC\xB56OA\xA1\xA4ֶ@\xD0\xE9\xD2\xEA \xD2 \xCAةs;\x908\x90KˉW+QHI\x84hH\x80w\xB5V \x9EJ\xF7n\xA8\xD7' <    \x89\xCB\xE7\xF0W\xDC`y\xBC\xCEe\xF6w\xDEֳ\xA4\xA6u\xE3+[lM\xDE$\xD3k\xA5\x96+w\xB7\\xD3\xD9;\xF6\x9Dw\xC6\xEFL\xDF[\xA6\xD2K\xAC؋\x9B\xAEn޸\xA8\xBDj\x9EWh\xBFu\xE9\xC6=\x85\xB2\xF0\xAF\xC3u\xAB.i\xBC\xACk֖\xFD\xA3wt*\xFA\xC8f\xF0\xA5\x89y\xB9\xD1\xA1J\xAEÕn\xAA\x9CJ9\xDCRA\xE9R\xCCb[4JA\xE1Rz\x87 \xB9\xA9hy\xA5EЅ\xCB\xC1\xEDN\x9E\xB2\xBEj=\xD5|¢\x9D>1  E\xED\xAF C\xADӣo[-\xAFZ['\xE1\x96.F: lF\x9E\x9E\xB9 \x92\xEBQ9\x88#\x98/pI!\x82G\xC9')\xB5\xA5ӓt[M\xB5[\xEAF\xAB\xCC\xEB%\xB9%ۼI-\xA1\xF7wM\x9F\xE3Ϻ\xBD&Gg\xE3\xDA\xD4\xB5\x8C\x96J\xCA\xF2Ԭ{\xF5\x97D\xB6\xF4p\xBF{\xECu\x85\xD1\xE3¼\xB6\x87\xBB\x94\xBD\x94[Ϯ網\xF7\xB3\xF7srN͕Qv\x99\xA2\xD1V\xE6\xE4}\x8D\xB6\x90\x93/\xAFi\xB0\x95並U\xF8\xECZ\x85\*CR\xB0\xDF-.e\x98\xB5\xF9QM8\xEC\xD5j\xE0ꀞ\x8A \xF5\xFA\x88\xBD\x8AT\x8B\xC1E\x82 \xE0i\xA7O\x8B\xB7q\x882\x
 C0d\xCD\xF8\xD1S\xA5w{(\x86\xF61n\xEC@\xBC\x87\xE2A
+ĸ F\xC3
+"\xA0zp \xF3']`\x85\xEA\x8De\xAEn_3\xB9f\x97EĤ7\xBC+3m^_\xFAR\xDC\x9F__\xDBl\xED\x97P\x99\x86\xC5˗̝\xE76u\xE1\xDF\xD3N\xEF\xC8\xE7TW\x84)\xCFܘ\xC45-d\xB4M\xA3)\x97\xBB\xE5҇\xF8\xD3-\xCD{(\xB6\xB7R\xC7\xDAT\xC4&\x81i\x9A݃\x9A\xB0V8\xF6)\x8B\xE1\xF3\x86ϔ&\xA4\xA2T\xCC^\xD7\xEF\xEAw\xF7\xF3\xA3\xA6ۘ\xDB$GmG\xED?\x93~\xE2\xD7w\xB2]\x9A.\xED,3S\x97\xAC\xE7\x93
+\x99T\x91\x94\x9Ae
+E\xD2d4\xA5p\xFB\x94\x9A\x83\xC6@\xB0\x9E\x87\x9E\xBA\xFA\xA4\xA2\x9E7\xA6\xF4\x8A`J\x9F\x84nwK\x95\x95\xFEJʘ\xA3z^
+O=__\x9F \xF2f\xA3B*\xABi\xC4=\xDDh\xD3\xEA\x9Ah$\xB5Gkh\xAB\xCD\x8Bӕ\x8Az\xA9\xC2\xC84\xE9t\xB3\x9BH\xDF&\x9D\xB42.T\xE2\xCA\xE6x:\xFA\xF2\xA9\x97I\x8DZD\xAD\xE6\xF4ys\xBA\x94\x93\x86H\x84\x95\x84\xB4\xA1A\x80X\x996+N\xC8X(\xB2\xDA\xE4\xAF\xD4\xB1q \xB0pi\xE6\x98K\xA15\xF04>\x927J$\xBE\x98\x89\xDA\xC9\xE5\xFA\xC2k\xA6z+A|\x9F\xF4%\x93\xB6P\x93=^\xE5\xC3\xED\x89\xFE\xCACX\x96\x98)\xAC\xB4\x9B9\x9Fޣ\xEB0?l/\xE3j \xEF\xD6Ն\xFE\xF5xc\xB8\x9B\xBEdž+C\xA4cA\xA4\xDBd\xD5\xD36\xF5\xFF\xB1\xB0q^\x84\xB2\xD9(ʢ7\xB49\xEB+\x87\xDC\xE7\xAA
+\x83\x8A\xB5ٔ\xEE\xF8\xA6\xCB/qB\xB02\xF3F\xB48\x82F\x88\x99\xFD?~\xF0%\xE2|͠Y\xE2\xF7\xC8n\xF1 \xEC|\xB4\xBE\x91.oV\xFD\x88\xFC\x89\xD4K\xEF^\xA5$f\xCFd\x97\xB4-\x9C\xEA[\xBB~ds\xF5\xC2+뇯\xFAo \xF4p\xF3
+endstream
+endobj
+14 0 obj
+7428
+endobj
+15 0 obj
+(This tests zero @page margin.)
+endobj
+16 0 obj
+(macOS Version 10.14.5 \(Build 18F113a\) Quartz PDFContext)
+endobj
+17 0 obj
+(Alan Kinsley)
+endobj
+18 0 obj
+()
+endobj
+19 0 obj
+(Safari)
+endobj
+20 0 obj
+(D:20190411200754Z00'00')
+endobj
+21 0 obj
+()
+endobj
+22 0 obj
+[ () ]
+endobj
+1 0 obj
+<< /Title 15 0 R /Author 17 0 R /Subject 18 0 R /Producer 16 0 R /Creator
+19 0 R /CreationDate 20 0 R /ModDate 20 0 R /Keywords 21 0 R /AAPL:Keywords
+22 0 R >>
+endobj
+xref
+0 23
+0000000000 65535 f 
+0000011896 00000 n 
+0000000343 00000 n 
+0000003320 00000 n 
+0000000022 00000 n 
+0000000324 00000 n 
+0000000453 00000 n 
+0000003285 00000 n 
+0000003459 00000 n 
+0000000550 00000 n 
+0000003264 00000 n 
+0000003409 00000 n 
+0000003846 00000 n 
+0000004073 00000 n 
+0000011592 00000 n 
+0000011613 00000 n 
+0000011661 00000 n 
+0000011737 00000 n 
+0000011768 00000 n 
+0000011787 00000 n 
+0000011812 00000 n 
+0000011854 00000 n 
+0000011873 00000 n 
+trailer
+<< /Size 23 /Root 11 0 R /Info 1 0 R /ID [ <57c13b1ebaa9b79c61eb77829fc70533>
+<57c13b1ebaa9b79c61eb77829fc70533> ] >>
+startxref
+12071
+%%EOF
</ins></span></pre></div>
<a id="trunkLayoutTestsprintingpagewithzeromarginexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/printing/page-with-zero-margin-expected.txt (0 => 244202)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/printing/page-with-zero-margin-expected.txt                            (rev 0)
+++ trunk/LayoutTests/printing/page-with-zero-margin-expected.txt       2019-04-11 23:33:41 UTC (rev 244202)
</span><span class="lines">@@ -0,0 +1,7 @@
</span><ins>+layer at (0,0) size 1000x18
+  RenderView at (0,0) size 1000x18
+layer at (0,0) size 1000x18
+  RenderBlock {HTML} at (0,0) size 1000x18
+    RenderBody {BODY} at (0,0) size 1000x18
+      RenderText {#text} at (0,0) size 318x18
+        text run at (0,0) width 318: "Text should start at the top right edge of the page."
</ins></span></pre></div>
<a id="trunkLayoutTestsprintingpagewithzeromarginhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/printing/page-with-zero-margin.html (0 => 244202)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/printing/page-with-zero-margin.html                            (rev 0)
+++ trunk/LayoutTests/printing/page-with-zero-margin.html       2019-04-11 23:33:41 UTC (rev 244202)
</span><span class="lines">@@ -0,0 +1,25 @@
</span><ins>+<!DOCTYPE html><!-- webkit-test-runner [ experimental:PageAtRuleSupportEnabled=true ] -->
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+  <title>This tests zero @page margin.</title>
+  <style type="text/css">
+    @page {
+        margin-top: 0;
+        margin-left: 0;
+    }
+    
+    html, body {
+        padding: 0px;
+        margin: 0px;
+    }
+  </style>
+  <script>
+    if (window.testRunner)
+      testRunner.setPrinting();
+  </script>
+</head>
+<body>
+Text should start at the top right edge of the page.
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (244201 => 244202)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog   2019-04-11 23:13:44 UTC (rev 244201)
+++ trunk/Source/WebCore/ChangeLog      2019-04-11 23:33:41 UTC (rev 244202)
</span><span class="lines">@@ -1,3 +1,27 @@
</span><ins>+2019-04-11  Zalan Bujtas  <zalan@apple.com>
+
+        Add @page margin support
+        https://bugs.webkit.org/show_bug.cgi?id=196680
+        <rdar://problem/45217707>
+
+        Reviewed by Tim Horton.
+
+        This patch adds support for @page margin. This feature is currently behind a runtime flag and is off by default.
+        We resolve the @page margin values in the WebProcess (currently no pseudo class is supported) and transfer them to the UIProcess through computedPagesCallback.
+        UIProcess is responsible for applying these new values on the printer. We also re-compute the available width/height for the current printing context
+        in the WebProcess if needed (see PrintInfo for current printer margins).
+
+        Tests: printing/page-with-10mm-left-margin.html
+               printing/page-with-zero-margin.html
+
+        * page/PrintContext.cpp:
+        (WebCore::PrintContext::computedPageMargin):
+        (WebCore::PrintContext::computedPageSize):
+        * page/PrintContext.h:
+        * page/RuntimeEnabledFeatures.h:
+        (WebCore::RuntimeEnabledFeatures::pageAtRuleSupportEnabled const):
+        (WebCore::RuntimeEnabledFeatures::setPageAtRuleSupportEnabled):
+
</ins><span class="cx"> 2019-04-11  Dean Jackson  <dino@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Extract UTI mapping and allow for additions
</span></span></pre></div>
<a id="trunkSourceWebCorepagePrintContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/PrintContext.cpp (244201 => 244202)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/PrintContext.cpp       2019-04-11 23:13:44 UTC (rev 244201)
+++ trunk/Source/WebCore/page/PrintContext.cpp  2019-04-11 23:33:41 UTC (rev 244202)
</span><span class="lines">@@ -25,7 +25,9 @@
</span><span class="cx"> #include "GraphicsContext.h"
</span><span class="cx"> #include "Frame.h"
</span><span class="cx"> #include "FrameView.h"
</span><ins>+#include "LengthBox.h"
</ins><span class="cx"> #include "RenderView.h"
</span><ins>+#include "RuntimeEnabledFeatures.h"
</ins><span class="cx"> #include "StyleInheritedData.h"
</span><span class="cx"> #include "StyleResolver.h"
</span><span class="cx"> #include "StyleScope.h"
</span><span class="lines">@@ -78,6 +80,33 @@
</span><span class="cx">     computePageRectsWithPageSizeInternal(FloatSize(pageWidth / userScaleFactor, pageHeight / userScaleFactor), allowHorizontalTiling);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+FloatBoxExtent PrintContext::computedPageMargin(FloatBoxExtent printMargin)
+{
+    if (!frame() || !frame()->document())
+        return printMargin;
+    if (!RuntimeEnabledFeatures::sharedFeatures().pageAtRuleSupportEnabled())
+        return printMargin;
+    // FIXME Currently no pseudo class is supported.
+    auto style = frame()->document()->styleScope().resolver().styleForPage(0);
+
+    auto pixelToPointScaleFactor = 1 / CSSPrimitiveValue::conversionToCanonicalUnitsScaleFactor(CSSPrimitiveValue::CSS_PT);
+    return { style->marginTop().isAuto() ? printMargin.top() : style->marginTop().value() * pixelToPointScaleFactor,
+        style->marginRight().isAuto() ? printMargin.right() : style->marginRight().value() * pixelToPointScaleFactor,
+        style->marginBottom().isAuto() ? printMargin.bottom() : style->marginBottom().value() * pixelToPointScaleFactor,
+        style->marginLeft().isAuto() ? printMargin.left() : style->marginLeft().value() * pixelToPointScaleFactor };
+}
+
+FloatSize PrintContext::computedPageSize(FloatSize pageSize, FloatBoxExtent printMargin)
+{
+    auto computedMargin = computedPageMargin(printMargin);
+    if (computedMargin == printMargin)
+        return pageSize;
+
+    auto horizontalMarginDelta = (printMargin.left() - computedMargin.left()) + (printMargin.right() - computedMargin.right()); 
+    auto verticalMarginDelta = (printMargin.top() - computedMargin.top()) + (printMargin.bottom() - computedMargin.bottom());
+    return { pageSize.width() + horizontalMarginDelta, pageSize.height() + verticalMarginDelta };
+}
+
</ins><span class="cx"> void PrintContext::computePageRectsWithPageSize(const FloatSize& pageSizeInPixels, bool allowHorizontalTiling)
</span><span class="cx"> {
</span><span class="cx">     m_pageRects.clear();
</span></span></pre></div>
<a id="trunkSourceWebCorepagePrintContexth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/PrintContext.h (244201 => 244202)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/PrintContext.h 2019-04-11 23:13:44 UTC (rev 244201)
+++ trunk/Source/WebCore/page/PrintContext.h    2019-04-11 23:33:41 UTC (rev 244202)
</span><span class="lines">@@ -21,6 +21,7 @@
</span><span class="cx"> #pragma once
</span><span class="cx"> 
</span><span class="cx"> #include "FrameDestructionObserver.h"
</span><ins>+#include "LengthBox.h"
</ins><span class="cx"> #include <wtf/Forward.h>
</span><span class="cx"> #include <wtf/HashMap.h>
</span><span class="cx"> #include <wtf/Vector.h>
</span><span class="lines">@@ -56,6 +57,8 @@
</span><span class="cx">     size_t pageCount() const { return m_pageRects.size(); }
</span><span class="cx">     const IntRect& pageRect(size_t pageNumber) const { return m_pageRects[pageNumber]; }
</span><span class="cx">     const Vector<IntRect>& pageRects() const { return m_pageRects; }
</span><ins>+    WEBCORE_EXPORT FloatBoxExtent computedPageMargin(FloatBoxExtent printMargin);
+    WEBCORE_EXPORT FloatSize computedPageSize(FloatSize pageSize, FloatBoxExtent printMargin);
</ins><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT float computeAutomaticScaleFactor(const FloatSize& availablePaperSize);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageRuntimeEnabledFeaturesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/RuntimeEnabledFeatures.h (244201 => 244202)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/RuntimeEnabledFeatures.h       2019-04-11 23:13:44 UTC (rev 244201)
+++ trunk/Source/WebCore/page/RuntimeEnabledFeatures.h  2019-04-11 23:33:41 UTC (rev 244202)
</span><span class="lines">@@ -350,6 +350,9 @@
</span><span class="cx">     bool referrerPolicyAttributeEnabled() const { return m_referrerPolicyAttributeEnabled; }
</span><span class="cx">     void setReferrerPolicyAttributeEnabled(bool isEnabled) { m_referrerPolicyAttributeEnabled = isEnabled; }
</span><span class="cx"> 
</span><ins>+    bool pageAtRuleSupportEnabled() const { return m_pageAtRuleSupportEnabled; }
+    void setPageAtRuleSupportEnabled(bool isEnabled) { m_pageAtRuleSupportEnabled = isEnabled; }
+
</ins><span class="cx">     WEBCORE_EXPORT static RuntimeEnabledFeatures& sharedFeatures();
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="lines">@@ -399,6 +402,7 @@
</span><span class="cx">     bool m_CSSCustomPropertiesAndValuesEnabled { false };
</span><span class="cx">     bool m_pointerEventsEnabled { true };
</span><span class="cx">     bool m_webSQLEnabled { true };
</span><ins>+    bool m_pageAtRuleSupportEnabled { false };
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(LAYOUT_FORMATTING_CONTEXT)
</span><span class="cx">     bool m_layoutFormattingContextEnabled { false };
</span></span></pre></div>
<a id="trunkSourceWebKitChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ChangeLog (244201 => 244202)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ChangeLog    2019-04-11 23:13:44 UTC (rev 244201)
+++ trunk/Source/WebKit/ChangeLog       2019-04-11 23:33:41 UTC (rev 244202)
</span><span class="lines">@@ -1,3 +1,42 @@
</span><ins>+2019-04-11  Zalan Bujtas  <zalan@apple.com>
+
+        Add @page margin support
+        https://bugs.webkit.org/show_bug.cgi?id=196680
+        <rdar://problem/45217707>
+
+        Reviewed by Tim Horton.
+
+        * Shared/PrintInfo.cpp:
+        (WebKit::PrintInfo::encode const):
+        (WebKit::PrintInfo::decode):
+        * Shared/PrintInfo.h:
+        * Shared/WebPreferences.yaml:
+        * Shared/gtk/PrintInfoGtk.cpp:
+        (WebKit::PrintInfo::PrintInfo):
+        * Shared/mac/PrintInfoMac.mm:
+        (WebKit::PrintInfo::PrintInfo):
+        * UIProcess/API/C/WKPage.cpp:
+        (WKPageComputePagesForPrinting):
+        * UIProcess/API/C/WKPreferences.cpp:
+        (WKPreferencesSetPageAtRuleSupportEnabled):
+        (WKPreferencesGetPageAtRuleSupportEnabled):
+        * UIProcess/API/C/WKPreferencesRefPrivate.h:
+        * UIProcess/GenericCallback.h:
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::computedPagesCallback):
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/WebPageProxy.messages.in:
+        * UIProcess/mac/WKPrintingView.mm:
+        (pageDidComputePageRects):
+        (-[WKPrintingView _askPageToComputePageRects]):
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::beginPrinting):
+        (WebKit::WebPage::computePagesForPrinting):
+        (WebKit::WebPage::computePagesForPrintingImpl):
+        * WebProcess/WebPage/WebPage.h:
+        * WebProcess/WebPage/ios/WebPageIOS.mm:
+        (WebKit::WebPage::computePagesForPrintingAndDrawToPDF):
+
</ins><span class="cx"> 2019-04-11  Dean Jackson  <dino@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Extract UTI mapping and allow for additions
</span></span></pre></div>
<a id="trunkSourceWebKitSharedPrintInfocpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/Shared/PrintInfo.cpp (244201 => 244202)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/Shared/PrintInfo.cpp 2019-04-11 23:13:44 UTC (rev 244201)
+++ trunk/Source/WebKit/Shared/PrintInfo.cpp    2019-04-11 23:33:41 UTC (rev 244202)
</span><span class="lines">@@ -40,6 +40,7 @@
</span><span class="cx">     encoder << pageSetupScaleFactor;
</span><span class="cx">     encoder << availablePaperWidth;
</span><span class="cx">     encoder << availablePaperHeight;
</span><ins>+    encoder << margin;
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(GTK)
</span><span class="cx">     IPC::encode(encoder, printSettings.get());
</span><span class="lines">@@ -60,6 +61,8 @@
</span><span class="cx">         return false;
</span><span class="cx">     if (!decoder.decode(info.availablePaperHeight))
</span><span class="cx">         return false;
</span><ins>+    if (!decoder.decode(info.margin))
+        return false;
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(GTK)
</span><span class="cx">     if (!IPC::decode(decoder, info.printSettings))
</span></span></pre></div>
<a id="trunkSourceWebKitSharedPrintInfoh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/Shared/PrintInfo.h (244201 => 244202)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/Shared/PrintInfo.h   2019-04-11 23:13:44 UTC (rev 244201)
+++ trunk/Source/WebKit/Shared/PrintInfo.h      2019-04-11 23:33:41 UTC (rev 244202)
</span><span class="lines">@@ -35,6 +35,7 @@
</span><span class="cx"> // FIXME: This should use the windows equivalent.
</span><span class="cx"> class NSPrintInfo;
</span><span class="cx"> #endif
</span><ins>+#include <WebCore/LengthBox.h>
</ins><span class="cx"> 
</span><span class="cx"> namespace IPC {
</span><span class="cx"> class Decoder;
</span><span class="lines">@@ -56,9 +57,11 @@
</span><span class="cx">     explicit PrintInfo(NSPrintInfo *);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+    // These values are in 'point' unit (and not CSS pixel).
</ins><span class="cx">     float pageSetupScaleFactor { 0 };
</span><span class="cx">     float availablePaperWidth { 0 };
</span><span class="cx">     float availablePaperHeight { 0 };
</span><ins>+    WebCore::FloatBoxExtent margin;
</ins><span class="cx"> #if PLATFORM(IOS_FAMILY)
</span><span class="cx">     bool snapshotFirstPage { false };
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebKitSharedWebPreferencesyaml"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/Shared/WebPreferences.yaml (244201 => 244202)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/Shared/WebPreferences.yaml   2019-04-11 23:13:44 UTC (rev 244201)
+++ trunk/Source/WebKit/Shared/WebPreferences.yaml      2019-04-11 23:33:41 UTC (rev 244202)
</span><span class="lines">@@ -1631,6 +1631,14 @@
</span><span class="cx">   category: experimental
</span><span class="cx">   webcoreBinding: RuntimeEnabledFeatures
</span><span class="cx"> 
</span><ins>+PageAtRuleSupportEnabled:
+  type: bool
+  defaultValue: false
+  humanReadableName: "@page CSS at-rule support"
+  humanReadableDescription: "Enable @page support"
+  category: experimental
+  webcoreBinding: RuntimeEnabledFeatures
+
</ins><span class="cx"> ApplePayRemoteUIEnabled:
</span><span class="cx">   category: internal
</span><span class="cx">   condition: ENABLE(APPLE_PAY_REMOTE_UI)
</span></span></pre></div>
<a id="trunkSourceWebKitSharedgtkPrintInfoGtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/Shared/gtk/PrintInfoGtk.cpp (244201 => 244202)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/Shared/gtk/PrintInfoGtk.cpp  2019-04-11 23:13:44 UTC (rev 244201)
+++ trunk/Source/WebKit/Shared/gtk/PrintInfoGtk.cpp     2019-04-11 23:33:41 UTC (rev 244202)
</span><span class="lines">@@ -34,6 +34,7 @@
</span><span class="cx">     : pageSetupScaleFactor(gtk_print_settings_get_scale(settings) / 100.0)
</span><span class="cx">     , availablePaperWidth(gtk_page_setup_get_paper_width(pageSetup, GTK_UNIT_POINTS) - gtk_page_setup_get_left_margin(pageSetup, GTK_UNIT_POINTS) - gtk_page_setup_get_right_margin(pageSetup, GTK_UNIT_POINTS))
</span><span class="cx">     , availablePaperHeight(gtk_page_setup_get_paper_height(pageSetup, GTK_UNIT_POINTS) - gtk_page_setup_get_top_margin(pageSetup, GTK_UNIT_POINTS) - gtk_page_setup_get_bottom_margin(pageSetup, GTK_UNIT_POINTS))
</span><ins>+    , margin(gtk_page_setup_get_top_margin(pageSetup, GTK_UNIT_POINTS), gtk_page_setup_get_right_margin(pageSetup, GTK_UNIT_POINTS), gtk_page_setup_get_bottom_margin(pageSetup, GTK_UNIT_POINTS), gtk_page_setup_get_left_margin(pageSetup, GTK_UNIT_POINTS))
</ins><span class="cx">     , printSettings(settings)
</span><span class="cx">     , pageSetup(pageSetup)
</span><span class="cx">     , printMode(printMode)
</span></span></pre></div>
<a id="trunkSourceWebKitSharedmacPrintInfoMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/Shared/mac/PrintInfoMac.mm (244201 => 244202)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/Shared/mac/PrintInfoMac.mm   2019-04-11 23:13:44 UTC (rev 244201)
+++ trunk/Source/WebKit/Shared/mac/PrintInfoMac.mm      2019-04-11 23:33:41 UTC (rev 244202)
</span><span class="lines">@@ -34,6 +34,7 @@
</span><span class="cx">     : pageSetupScaleFactor([[[printInfo dictionary] objectForKey:NSPrintScalingFactor] floatValue])
</span><span class="cx">     , availablePaperWidth([printInfo paperSize].width - [printInfo leftMargin] - [printInfo rightMargin])
</span><span class="cx">     , availablePaperHeight([printInfo paperSize].height - [printInfo topMargin] - [printInfo bottomMargin])
</span><ins>+    , margin([printInfo topMargin], [printInfo rightMargin], [printInfo bottomMargin], [printInfo leftMargin])
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(printInfo);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKitUIProcessAPICWKPagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp (244201 => 244202)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp   2019-04-11 23:13:44 UTC (rev 244201)
+++ trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp      2019-04-11 23:33:41 UTC (rev 244202)
</span><span class="lines">@@ -2417,7 +2417,7 @@
</span><span class="cx"> 
</span><span class="cx"> void WKPageComputePagesForPrinting(WKPageRef page, WKFrameRef frame, WKPrintInfo printInfo, WKPageComputePagesForPrintingFunction callback, void* context)
</span><span class="cx"> {
</span><del>-    toImpl(page)->computePagesForPrinting(toImpl(frame), printInfoFromWKPrintInfo(printInfo), ComputedPagesCallback::create([context, callback](const Vector<WebCore::IntRect>& rects, double scaleFactor, WebKit::CallbackBase::Error error) {
</del><ins>+    toImpl(page)->computePagesForPrinting(toImpl(frame), printInfoFromWKPrintInfo(printInfo), ComputedPagesCallback::create([context, callback](const Vector<WebCore::IntRect>& rects, double scaleFactor, const WebCore::FloatBoxExtent& computedPageMargin, WebKit::CallbackBase::Error error) {
</ins><span class="cx">         Vector<WKRect> wkRects(rects.size());
</span><span class="cx">         for (size_t i = 0; i < rects.size(); ++i)
</span><span class="cx">             wkRects[i] = toAPI(rects[i]);
</span></span></pre></div>
<a id="trunkSourceWebKitUIProcessGenericCallbackh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/UIProcess/GenericCallback.h (244201 => 244202)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/UIProcess/GenericCallback.h  2019-04-11 23:13:44 UTC (rev 244201)
+++ trunk/Source/WebKit/UIProcess/GenericCallback.h     2019-04-11 23:33:41 UTC (rev 244202)
</span><span class="lines">@@ -155,7 +155,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> typedef GenericCallback<> VoidCallback;
</span><del>-typedef GenericCallback<const Vector<WebCore::IntRect>&, double> ComputedPagesCallback;
</del><ins>+typedef GenericCallback<const Vector<WebCore::IntRect>&, double, WebCore::FloatBoxExtent> ComputedPagesCallback;
</ins><span class="cx"> typedef GenericCallback<const ShareableBitmap::Handle&> ImageCallback;
</span><span class="cx"> 
</span><span class="cx"> template<typename T>
</span></span></pre></div>
<a id="trunkSourceWebKitUIProcessWebPageProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (244201 => 244202)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp   2019-04-11 23:13:44 UTC (rev 244201)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp      2019-04-11 23:33:41 UTC (rev 244202)
</span><span class="lines">@@ -6417,7 +6417,7 @@
</span><span class="cx">     callback->performCallbackWithReturnValue(API::SerializedScriptValue::adopt(WTFMove(data)).ptr(), hadException, details);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::computedPagesCallback(const Vector<IntRect>& pageRects, double totalScaleFactorForPrinting, CallbackID callbackID)
</del><ins>+void WebPageProxy::computedPagesCallback(const Vector<IntRect>& pageRects, double totalScaleFactorForPrinting, const FloatBoxExtent& computedPageMargin, CallbackID callbackID)
</ins><span class="cx"> {
</span><span class="cx">     auto callback = m_callbacks.take<ComputedPagesCallback>(callbackID);
</span><span class="cx">     if (!callback) {
</span><span class="lines">@@ -6425,7 +6425,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    callback->performCallbackWithReturnValue(pageRects, totalScaleFactorForPrinting);
</del><ins>+    callback->performCallbackWithReturnValue(pageRects, totalScaleFactorForPrinting, computedPageMargin);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPageProxy::validateCommandCallback(const String& commandName, bool isEnabled, int state, CallbackID callbackID)
</span></span></pre></div>
<a id="trunkSourceWebKitUIProcessWebPageProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.h (244201 => 244202)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/UIProcess/WebPageProxy.h     2019-04-11 23:13:44 UTC (rev 244201)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.h        2019-04-11 23:33:41 UTC (rev 244202)
</span><span class="lines">@@ -1821,7 +1821,7 @@
</span><span class="cx">     void stringCallback(const String&, CallbackID);
</span><span class="cx">     void invalidateStringCallback(CallbackID);
</span><span class="cx">     void scriptValueCallback(const IPC::DataReference&, bool hadException, const WebCore::ExceptionDetails&, CallbackID);
</span><del>-    void computedPagesCallback(const Vector<WebCore::IntRect>&, double totalScaleFactorForPrinting, CallbackID);
</del><ins>+    void computedPagesCallback(const Vector<WebCore::IntRect>&, double totalScaleFactorForPrinting, const WebCore::FloatBoxExtent& computedPageMargin, CallbackID);
</ins><span class="cx">     void validateCommandCallback(const String&, bool, int, CallbackID);
</span><span class="cx">     void unsignedCallback(uint64_t, CallbackID);
</span><span class="cx">     void editingRangeCallback(const EditingRange&, CallbackID);
</span></span></pre></div>
<a id="trunkSourceWebKitUIProcessWebPageProxymessagesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in (244201 => 244202)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in   2019-04-11 23:13:44 UTC (rev 244201)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in      2019-04-11 23:33:41 UTC (rev 244202)
</span><span class="lines">@@ -168,7 +168,7 @@
</span><span class="cx">     StringCallback(String resultString, WebKit::CallbackID callbackID)
</span><span class="cx">     InvalidateStringCallback(WebKit::CallbackID callbackID)
</span><span class="cx">     ScriptValueCallback(IPC::DataReference resultData, bool hadException, struct WebCore::ExceptionDetails details, WebKit::CallbackID callbackID)
</span><del>-    ComputedPagesCallback(Vector<WebCore::IntRect> pageRects, double totalScaleFactorForPrinting, WebKit::CallbackID callbackID)
</del><ins>+    ComputedPagesCallback(Vector<WebCore::IntRect> pageRects, double totalScaleFactorForPrinting, WebCore::RectEdges<float> computedPageMargin, WebKit::CallbackID callbackID)
</ins><span class="cx">     ValidateCommandCallback(String command, bool isEnabled, int32_t state, WebKit::CallbackID callbackID)
</span><span class="cx">     EditingRangeCallback(struct WebKit::EditingRange range, WebKit::CallbackID callbackID)
</span><span class="cx">     UnsignedCallback(uint64_t result, WebKit::CallbackID callbackID)
</span></span></pre></div>
<a id="trunkSourceWebKitUIProcessmacWKPrintingViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/UIProcess/mac/WKPrintingView.mm (244201 => 244202)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/UIProcess/mac/WKPrintingView.mm      2019-04-11 23:13:44 UTC (rev 244201)
+++ trunk/Source/WebKit/UIProcess/mac/WKPrintingView.mm 2019-04-11 23:33:41 UTC (rev 244202)
</span><span class="lines">@@ -293,7 +293,7 @@
</span><span class="cx">     _webFrame->page()->drawPagesToPDF(_webFrame.get(), printInfo, firstPage - 1, lastPage - firstPage + 1, WTFMove(callback));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static void pageDidComputePageRects(const Vector<WebCore::IntRect>& pageRects, double totalScaleFactorForPrinting, IPCCallbackContext* context)
</del><ins>+static void pageDidComputePageRects(const Vector<WebCore::IntRect>& pageRects, double totalScaleFactorForPrinting, const WebCore::FloatBoxExtent& computedPageMargin, IPCCallbackContext* context)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(RunLoop::isMain());
</span><span class="cx"> 
</span><span class="lines">@@ -323,6 +323,12 @@
</span><span class="cx">             ceil(lastPrintingPageRect.maxY() * view->_totalScaleFactorForPrinting));
</span><span class="cx">         LOG(Printing, "WKPrintingView setting frame size to x:%g y:%g width:%g height:%g", newFrameSize.origin.x, newFrameSize.origin.y, newFrameSize.size.width, newFrameSize.size.height);
</span><span class="cx">         [view setFrame:newFrameSize];
</span><ins>+        // Set @page margin.
+        auto *printInfo = [view->_printOperation printInfo];
+        [printInfo setTopMargin:computedPageMargin.top()];
+        [printInfo setBottomMargin:computedPageMargin.bottom()];
+        [printInfo setLeftMargin:computedPageMargin.left()];
+        [printInfo setRightMargin:computedPageMargin.right()];
</ins><span class="cx"> 
</span><span class="cx">         if ([view _isPrintingPreview]) {
</span><span class="cx">             // Show page count, and ask for an actual image to replace placeholder.
</span><span class="lines">@@ -344,9 +350,9 @@
</span><span class="cx">     ASSERT(!_expectedComputedPagesCallback);
</span><span class="cx"> 
</span><span class="cx">     IPCCallbackContext* context = new IPCCallbackContext;
</span><del>-    auto callback = WebKit::ComputedPagesCallback::create([context](const Vector<WebCore::IntRect>& pageRects, double totalScaleFactorForPrinting, WebKit::CallbackBase::Error) {
</del><ins>+    auto callback = WebKit::ComputedPagesCallback::create([context](const Vector<WebCore::IntRect>& pageRects, double totalScaleFactorForPrinting, const WebCore::FloatBoxExtent& computedPageMargin, WebKit::CallbackBase::Error) {
</ins><span class="cx">         std::unique_ptr<IPCCallbackContext> contextDeleter(context);
</span><del>-        pageDidComputePageRects(pageRects, totalScaleFactorForPrinting, context);
</del><ins>+        pageDidComputePageRects(pageRects, totalScaleFactorForPrinting, computedPageMargin, context);
</ins><span class="cx">     });
</span><span class="cx">     _expectedComputedPagesCallback = callback->callbackID().toInteger();
</span><span class="cx">     context->view = self;
</span></span></pre></div>
<a id="trunkSourceWebKitWebProcessWebPageWebPagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp (244201 => 244202)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp       2019-04-11 23:13:44 UTC (rev 244201)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp  2019-04-11 23:33:41 UTC (rev 244202)
</span><span class="lines">@@ -4623,10 +4623,11 @@
</span><span class="cx"> 
</span><span class="cx">     freezeLayerTree(LayerTreeFreezeReason::Printing);
</span><span class="cx"> 
</span><del>-    m_printContext->begin(printInfo.availablePaperWidth, printInfo.availablePaperHeight);
</del><ins>+    auto computedPageSize = m_printContext->computedPageSize(FloatSize(printInfo.availablePaperWidth, printInfo.availablePaperHeight), printInfo.margin);
+    m_printContext->begin(computedPageSize.width(), computedPageSize.height());
</ins><span class="cx"> 
</span><span class="cx">     float fullPageHeight;
</span><del>-    m_printContext->computePageRects(FloatRect(0, 0, printInfo.availablePaperWidth, printInfo.availablePaperHeight), 0, 0, printInfo.pageSetupScaleFactor, fullPageHeight, true);
</del><ins>+    m_printContext->computePageRects(FloatRect(0, 0, computedPageSize.width(), computedPageSize.height()), 0, 0, printInfo.pageSetupScaleFactor, fullPageHeight, true);
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(GTK)
</span><span class="cx">     if (!m_printOperation)
</span><span class="lines">@@ -4648,11 +4649,12 @@
</span><span class="cx"> {
</span><span class="cx">     Vector<IntRect> resultPageRects;
</span><span class="cx">     double resultTotalScaleFactorForPrinting = 1;
</span><del>-    computePagesForPrintingImpl(frameID, printInfo, resultPageRects, resultTotalScaleFactorForPrinting);
-    send(Messages::WebPageProxy::ComputedPagesCallback(resultPageRects, resultTotalScaleFactorForPrinting, callbackID));
</del><ins>+    auto computedPageMargin = printInfo.margin;
+    computePagesForPrintingImpl(frameID, printInfo, resultPageRects, resultTotalScaleFactorForPrinting, computedPageMargin);
+    send(Messages::WebPageProxy::ComputedPagesCallback(resultPageRects, resultTotalScaleFactorForPrinting, computedPageMargin, callbackID));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPage::computePagesForPrintingImpl(uint64_t frameID, const PrintInfo& printInfo, Vector<WebCore::IntRect>& resultPageRects, double& resultTotalScaleFactorForPrinting)
</del><ins>+void WebPage::computePagesForPrintingImpl(uint64_t frameID, const PrintInfo& printInfo, Vector<WebCore::IntRect>& resultPageRects, double& resultTotalScaleFactorForPrinting, FloatBoxExtent& computedPageMargin)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(resultPageRects.isEmpty());
</span><span class="cx"> 
</span><span class="lines">@@ -4660,7 +4662,9 @@
</span><span class="cx"> 
</span><span class="cx">     if (m_printContext) {
</span><span class="cx">         resultPageRects = m_printContext->pageRects();
</span><del>-        resultTotalScaleFactorForPrinting = m_printContext->computeAutomaticScaleFactor(FloatSize(printInfo.availablePaperWidth, printInfo.availablePaperHeight)) * printInfo.pageSetupScaleFactor;
</del><ins>+        computedPageMargin = m_printContext->computedPageMargin(printInfo.margin);
+        auto computedPageSize = m_printContext->computedPageSize(FloatSize(printInfo.availablePaperWidth, printInfo.availablePaperHeight), printInfo.margin);
+        resultTotalScaleFactorForPrinting = m_printContext->computeAutomaticScaleFactor(computedPageSize) * printInfo.pageSetupScaleFactor;
</ins><span class="cx">     }
</span><span class="cx"> #if PLATFORM(COCOA)
</span><span class="cx">     else
</span></span></pre></div>
<a id="trunkSourceWebKitWebProcessWebPageWebPageh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.h (244201 => 244202)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.h 2019-04-11 23:13:44 UTC (rev 244201)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.h    2019-04-11 23:33:41 UTC (rev 244202)
</span><span class="lines">@@ -854,7 +854,7 @@
</span><span class="cx">     void beginPrinting(uint64_t frameID, const PrintInfo&);
</span><span class="cx">     void endPrinting();
</span><span class="cx">     void computePagesForPrinting(uint64_t frameID, const PrintInfo&, CallbackID);
</span><del>-    void computePagesForPrintingImpl(uint64_t frameID, const PrintInfo&, Vector<WebCore::IntRect>& pageRects, double& totalScaleFactor);
</del><ins>+    void computePagesForPrintingImpl(uint64_t frameID, const PrintInfo&, Vector<WebCore::IntRect>& pageRects, double& totalScaleFactor, WebCore::FloatBoxExtent& computedMargin);
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(COCOA)
</span><span class="cx">     void drawRectToImage(uint64_t frameID, const PrintInfo&, const WebCore::IntRect&, const WebCore::IntSize&, CallbackID);
</span></span></pre></div>
<a id="trunkSourceWebKitWebProcessWebPageiosWebPageIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm (244201 => 244202)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm 2019-04-11 23:13:44 UTC (rev 244201)
+++ trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm    2019-04-11 23:33:41 UTC (rev 244202)
</span><span class="lines">@@ -3281,7 +3281,8 @@
</span><span class="cx"> 
</span><span class="cx">     Vector<WebCore::IntRect> pageRects;
</span><span class="cx">     double totalScaleFactor;
</span><del>-    computePagesForPrintingImpl(frameID, printInfo, pageRects, totalScaleFactor);
</del><ins>+    auto margin = printInfo.margin;
+    computePagesForPrintingImpl(frameID, printInfo, pageRects, totalScaleFactor, margin);
</ins><span class="cx"> 
</span><span class="cx">     ASSERT(pageRects.size() >= 1);
</span><span class="cx">     std::size_t pageCount = pageRects.size();
</span></span></pre>
</div>
</div>

</body>
</html>