<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>104843</bug_id>
          
          <creation_ts>2012-12-12 14:17:27 -0800</creation_ts>
          <short_desc>Have kFixedPointDenominator be constant across ports</short_desc>
          <delta_ts>2012-12-18 08:46:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>104788</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Emil A Eklund">eae</reporter>
          <assigned_to name="Emil A Eklund">eae</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>d-r</cc>
    
    <cc>eric</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hausmann</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ossy</cc>
    
    <cc>ostap73</cc>
    
    <cc>pnormand</cc>
    
    <cc>rakuco</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>789908</commentid>
    <comment_count>0</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-12-12 14:17:27 -0800</bug_when>
    <thetext>Currently the kFixedPointDenominator constant is set to either 64 or 1 depending on the SUBPIXEL_LAYOUT flag. As this constant is used to limit the range of supported values this results in inconsistencies across ports.

By changing kFixedPointDenominator to always be 64 and introducing a new constant (kEffectiveFixedPointDenominator) that varies we can ensure that the same range of values are supported across ports regardless of the SUBPIXEL_LAYOUT flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789918</commentid>
    <comment_count>1</comment_count>
      <attachid>179126</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-12-12 14:26:06 -0800</bug_when>
    <thetext>Created attachment 179126
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792572</commentid>
    <comment_count>2</comment_count>
      <attachid>179126</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-12-17 02:04:48 -0800</bug_when>
    <thetext>Comment on attachment 179126
Patch

I&apos;m fine with this from an EFL point of view.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792968</commentid>
    <comment_count>3</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-12-17 13:25:58 -0800</bug_when>
    <thetext>CC&apos;ing some more Gtk and Qt people as this will cause a tiny change on their port but it&apos;s a platform alignment so really an FYI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793020</commentid>
    <comment_count>4</comment_count>
      <attachid>179126</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-12-17 14:08:34 -0800</bug_when>
    <thetext>Comment on attachment 179126
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=179126&amp;action=review

r=me, but let&apos;s give the port maintainer some time to comment if there is something we missed.

&gt; Source/WebCore/ChangeLog:22
&gt; +        Change to clamp and then round.

As discussed, I would just not do this change as it&apos;s unrelated. Next time, please explain &apos;why&apos; you did that instead of having me guess what was the intent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793076</commentid>
    <comment_count>5</comment_count>
      <attachid>179812</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-12-17 15:21:07 -0800</bug_when>
    <thetext>Created attachment 179812
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793698</commentid>
    <comment_count>6</comment_count>
      <attachid>179812</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-18 08:46:09 -0800</bug_when>
    <thetext>Comment on attachment 179812
Patch for landing

Clearing flags on attachment: 179812

Committed r138026: &lt;http://trac.webkit.org/changeset/138026&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793699</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-18 08:46:17 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179126</attachid>
            <date>2012-12-12 14:26:06 -0800</date>
            <delta_ts>2012-12-17 15:21:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104843-20121212142327.patch</filename>
            <type>text/plain</type>
            <size>18736</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzUxMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDEyLTEyLTEyICBFbWlsIEEg
RWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KKworICAgICAgICBIYXZlIGtGaXhlZFBvaW50RGVu
b21pbmF0b3IgYmUgY29uc3RhbnQgYWNyb3NzIHBvcnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQ4NDMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgdGhlIGtGaXhlZFBvaW50RGVub21p
bmF0b3IgY29uc3RhbnQgaXMgc2V0IHRvIGVpdGhlcgorICAgICAgICA2NCBvciAxIGRlcGVuZGlu
ZyBvbiB0aGUgU1VCUElYRUxfTEFZT1VUIGZsYWcuIEFzIHRoaXMgY29uc3RhbnQKKyAgICAgICAg
aXMgdXNlZCB0byBsaW1pdCB0aGUgcmFuZ2Ugb2Ygc3VwcG9ydGVkIHZhbHVlcyB0aGlzIHJlc3Vs
dHMgaW4KKyAgICAgICAgaW5jb25zaXN0ZW5jaWVzIGFjcm9zcyBwb3J0cy4KKworICAgICAgICBD
aGFuZ2Uga0ZpeGVkUG9pbnREZW5vbWluYXRvciB0byBhbHdheXMgYmUgNjQgYW5kIGludHJvZHVj
ZSBhCisgICAgICAgIG5ldyBjb25zdGFudCAoa0VmZmVjdGl2ZUZpeGVkUG9pbnREZW5vbWluYXRv
cikgdGhhdCB2YXJpZXMuCisgICAgICAgIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBzYW1lIHJhbmdl
IG9mIHZhbHVlcyBhcmUgc3VwcG9ydGVkIGFjcm9zcworICAgICAgICBwb3J0cyByZWdhcmRsZXNz
IG9mIHRoZSBTVUJQSVhFTF9MQVlPVVQgZmxhZy4KKyAgICAgICAgCisgICAgICAgIENvdmVyZWQg
YnkgZmFzdC9jc3MvbGFyZ2UtbnVtYmVycy5odG1sIGFuZCBmYXN0L2Nzcy9sYXJnZS1udW1iZXIt
cm91bmQtdHJpcC5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVMZW5ndGgpOgorICAg
ICAgICBDaGFuZ2UgdG8gY2xhbXAgYW5kIHRoZW4gcm91bmQuCisgICAgICAgIAorICAgICAgICAq
IHBsYXRmb3JtL0xheW91dFVuaXQuaDoKKyAgICAgICAgQWRkIGtFZmZlY3RpdmVGaXhlZFBvaW50
RGVub21pbmF0b3IgY29uc3RhbnQgYW5kIGNoYW5nZQorICAgICAgICBMYXlvdXRVbml0IGNvZGUg
dG8gdXNlIGl0IGluc3RlYWQgb2Yga0ZpeGVkUG9pbnREZW5vbWluYXRvcgorICAgICAgICB3aGlj
aCBpcyBub3cgc2V0IHRvIDY0IHJlZ2FyZGxlc3Mgb2YgdGhlIFNVQlBJWEVMX0xBWU9VVCBmbGFn
LgorCiAyMDEyLTEyLTEyICBEb21pbmljIE1henpvbmkgIDxkbWF6em9uaUBnb29nbGUuY29tPgog
CiAgICAgICAgIEFYOiB0ZXh0VW5kZXJFbGVtZW50IHNob3VsZCBjb25zaWRlciBhbHQgdGV4dCwg
YnV0IHNraXAgbGlua3MgYW5kIGNvbnRyb2xzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
cmltaXRpdmVWYWx1ZS5jcHAJKHJldmlzaW9uIDEzNzQ4NykKKysrIFNvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4NCwxMCArNDg0LDEx
IEBAIHRlbXBsYXRlPD4gdW5zaWduZWQgQ1NTUHJpbWl0aXZlVmFsdWU6OmMKIAogdGVtcGxhdGU8
PiBMZW5ndGggQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVMZW5ndGgoUmVuZGVyU3R5bGUqIHN0
eWxlLCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlLCBmbG9hdCBtdWx0aXBsaWVyLCBib29sIGNvbXB1
dGluZ0ZvbnRTaXplKQogeworICAgIGRvdWJsZSB2YWx1ZSA9IGNvbXB1dGVMZW5ndGhEb3VibGUo
c3R5bGUsIHJvb3RTdHlsZSwgbXVsdGlwbGllciwgY29tcHV0aW5nRm9udFNpemUpOwogI2lmIEVO
QUJMRShTVUJQSVhFTF9MQVlPVVQpCi0gICAgcmV0dXJuIExlbmd0aChjbGFtcFRvPGZsb2F0Pihj
b21wdXRlTGVuZ3RoRG91YmxlKHN0eWxlLCByb290U3R5bGUsIG11bHRpcGxpZXIsIGNvbXB1dGlu
Z0ZvbnRTaXplKSwgbWluVmFsdWVGb3JDc3NMZW5ndGgsIG1heFZhbHVlRm9yQ3NzTGVuZ3RoKSwg
Rml4ZWQpOworICAgIHJldHVybiBMZW5ndGgoY2xhbXBUbzxmbG9hdD4odmFsdWUsIG1pblZhbHVl
Rm9yQ3NzTGVuZ3RoLCBtYXhWYWx1ZUZvckNzc0xlbmd0aCksIEZpeGVkKTsKICNlbHNlCi0gICAg
cmV0dXJuIExlbmd0aChjbGFtcFRvPGZsb2F0Pihyb3VuZEZvckltcHJlY2lzZUNvbnZlcnNpb248
ZmxvYXQ+KGNvbXB1dGVMZW5ndGhEb3VibGUoc3R5bGUsIHJvb3RTdHlsZSwgbXVsdGlwbGllciwg
Y29tcHV0aW5nRm9udFNpemUpKSwgbWluVmFsdWVGb3JDc3NMZW5ndGgsIG1heFZhbHVlRm9yQ3Nz
TGVuZ3RoKSwgRml4ZWQpOworICAgIHJldHVybiBMZW5ndGgocm91bmRGb3JJbXByZWNpc2VDb252
ZXJzaW9uPGZsb2F0PihjbGFtcFRvPGRvdWJsZT4odmFsdWUsIG1pblZhbHVlRm9yQ3NzTGVuZ3Ro
LCBtYXhWYWx1ZUZvckNzc0xlbmd0aCkpLCBGaXhlZCk7CiAjZW5kaWYKIH0KIApJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGF5b3V0VW5pdC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0xheW91dFVuaXQuaAkocmV2aXNpb24gMTM3NDg3KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTGF5b3V0VW5pdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCwxMyAr
NTQsMTUgQEAgd2hpbGUgKDApCiAKICNlbmRpZgogCi0jaWYgRU5BQkxFKFNVQlBJWEVMX0xBWU9V
VCkKIHN0YXRpYyBjb25zdCBpbnQga0ZpeGVkUG9pbnREZW5vbWluYXRvciA9IDY0OworCisjaWYg
RU5BQkxFKFNVQlBJWEVMX0xBWU9VVCkKK3N0YXRpYyBjb25zdCBpbnQga0VmZmVjdGl2ZUZpeGVk
UG9pbnREZW5vbWluYXRvciA9IGtGaXhlZFBvaW50RGVub21pbmF0b3I7CiAjZWxzZQotc3RhdGlj
IGNvbnN0IGludCBrRml4ZWRQb2ludERlbm9taW5hdG9yID0gMTsKK3N0YXRpYyBjb25zdCBpbnQg
a0VmZmVjdGl2ZUZpeGVkUG9pbnREZW5vbWluYXRvciA9IDE7CiAjZW5kaWYKLWNvbnN0IGludCBp
bnRNYXhGb3JMYXlvdXRVbml0ID0gSU5UX01BWCAvIGtGaXhlZFBvaW50RGVub21pbmF0b3I7Ci1j
b25zdCBpbnQgaW50TWluRm9yTGF5b3V0VW5pdCA9IElOVF9NSU4gLyBrRml4ZWRQb2ludERlbm9t
aW5hdG9yOworY29uc3QgaW50IGludE1heEZvckxheW91dFVuaXQgPSBJTlRfTUFYIC8ga0VmZmVj
dGl2ZUZpeGVkUG9pbnREZW5vbWluYXRvcjsKK2NvbnN0IGludCBpbnRNaW5Gb3JMYXlvdXRVbml0
ID0gSU5UX01JTiAvIGtFZmZlY3RpdmVGaXhlZFBvaW50RGVub21pbmF0b3I7CiAKIGNsYXNzIExh
eW91dFVuaXQgewogcHVibGljOgpAQCAtNzYsMTkgKzc4LDE5IEBAIHB1YmxpYzoKICAgICBMYXlv
dXRVbml0KGZsb2F0IHZhbHVlKQogICAgIHsKICNpZiBFTkFCTEUoU0FUVVJBVEVEX0xBWU9VVF9B
UklUSE1FVElDKQotICAgICAgICBtX3ZhbHVlID0gY2xhbXBUbzxmbG9hdD4odmFsdWUgKiBrRml4
ZWRQb2ludERlbm9taW5hdG9yLCBzdGF0aWNfY2FzdDxmbG9hdD4oSU5UX01JTiksIHN0YXRpY19j
YXN0PGZsb2F0PihJTlRfTUFYKSk7CisgICAgICAgIG1fdmFsdWUgPSBjbGFtcFRvPGZsb2F0Pih2
YWx1ZSAqIGtFZmZlY3RpdmVGaXhlZFBvaW50RGVub21pbmF0b3IsIHN0YXRpY19jYXN0PGZsb2F0
PihJTlRfTUlOKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KElOVF9NQVgpKTsKICNlbHNlCiAgICAgICAg
IFJFUE9SVF9PVkVSRkxPVyhpc0luQm91bmRzKHZhbHVlKSk7Ci0gICAgICAgIG1fdmFsdWUgPSB2
YWx1ZSAqIGtGaXhlZFBvaW50RGVub21pbmF0b3I7CisgICAgICAgIG1fdmFsdWUgPSB2YWx1ZSAq
IGtFZmZlY3RpdmVGaXhlZFBvaW50RGVub21pbmF0b3I7CiAjZW5kaWYKICAgICB9CiAgICAgTGF5
b3V0VW5pdChkb3VibGUgdmFsdWUpCiAgICAgewogI2lmIEVOQUJMRShTQVRVUkFURURfTEFZT1VU
X0FSSVRITUVUSUMpCi0gICAgICAgIG1fdmFsdWUgPSBjbGFtcFRvPGRvdWJsZT4odmFsdWUgKiBr
Rml4ZWRQb2ludERlbm9taW5hdG9yLCBzdGF0aWNfY2FzdDxkb3VibGU+KElOVF9NSU4pLCBzdGF0
aWNfY2FzdDxkb3VibGU+KElOVF9NQVgpKTsKKyAgICAgICAgbV92YWx1ZSA9IGNsYW1wVG88ZG91
YmxlPih2YWx1ZSAqIGtFZmZlY3RpdmVGaXhlZFBvaW50RGVub21pbmF0b3IsIHN0YXRpY19jYXN0
PGRvdWJsZT4oSU5UX01JTiksIHN0YXRpY19jYXN0PGRvdWJsZT4oSU5UX01BWCkpOwogI2Vsc2UK
ICAgICAgICAgUkVQT1JUX09WRVJGTE9XKGlzSW5Cb3VuZHModmFsdWUpKTsKLSAgICAgICAgbV92
YWx1ZSA9IHZhbHVlICoga0ZpeGVkUG9pbnREZW5vbWluYXRvcjsKKyAgICAgICAgbV92YWx1ZSA9
IHZhbHVlICoga0VmZmVjdGl2ZUZpeGVkUG9pbnREZW5vbWluYXRvcjsKICNlbmRpZgogICAgIH0K
ICNlbHNlCkBAIC0xMDQsMTAgKzEwNiwxMCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBMYXlv
dXRVbml0IHY7CiAjaWYgRU5BQkxFKFNBVFVSQVRFRF9MQVlPVVRfQVJJVEhNRVRJQykKLSAgICAg
ICAgdi5tX3ZhbHVlID0gY2xhbXBUb0ludGVnZXIoY2VpbGYodmFsdWUgKiBrRml4ZWRQb2ludERl
bm9taW5hdG9yKSk7CisgICAgICAgIHYubV92YWx1ZSA9IGNsYW1wVG9JbnRlZ2VyKGNlaWxmKHZh
bHVlICoga0VmZmVjdGl2ZUZpeGVkUG9pbnREZW5vbWluYXRvcikpOwogI2Vsc2UKICAgICAgICAg
UkVQT1JUX09WRVJGTE9XKGlzSW5Cb3VuZHModmFsdWUpKTsKLSAgICAgICAgdi5tX3ZhbHVlID0g
Y2VpbGYodmFsdWUgKiBrRml4ZWRQb2ludERlbm9taW5hdG9yKTsKKyAgICAgICAgdi5tX3ZhbHVl
ID0gY2VpbGYodmFsdWUgKiBrRWZmZWN0aXZlRml4ZWRQb2ludERlbm9taW5hdG9yKTsKICNlbmRp
ZgogICAgICAgICByZXR1cm4gdjsKICAgICB9CkBAIC0xMTYsMTAgKzExOCwxMCBAQCBwdWJsaWM6
CiAgICAgewogICAgICAgICBMYXlvdXRVbml0IHY7CiAjaWYgRU5BQkxFKFNBVFVSQVRFRF9MQVlP
VVRfQVJJVEhNRVRJQykKLSAgICAgICAgdi5tX3ZhbHVlID0gY2xhbXBUb0ludGVnZXIoZmxvb3Jm
KHZhbHVlICoga0ZpeGVkUG9pbnREZW5vbWluYXRvcikpOworICAgICAgICB2Lm1fdmFsdWUgPSBj
bGFtcFRvSW50ZWdlcihmbG9vcmYodmFsdWUgKiBrRWZmZWN0aXZlRml4ZWRQb2ludERlbm9taW5h
dG9yKSk7CiAjZWxzZQogICAgICAgICBSRVBPUlRfT1ZFUkZMT1coaXNJbkJvdW5kcyh2YWx1ZSkp
OwotICAgICAgICB2Lm1fdmFsdWUgPSBmbG9vcmYodmFsdWUgKiBrRml4ZWRQb2ludERlbm9taW5h
dG9yKTsKKyAgICAgICAgdi5tX3ZhbHVlID0gZmxvb3JmKHZhbHVlICoga0VmZmVjdGl2ZUZpeGVk
UG9pbnREZW5vbWluYXRvcik7CiAjZW5kaWYKICAgICAgICAgcmV0dXJuIHY7CiAgICAgfQpAQCAt
MTQxLDEzICsxNDMsMTMgQEAgcHVibGljOgogICAgIH0KIAogI2lmIEVOQUJMRShTVUJQSVhFTF9M
QVlPVVQpCi0gICAgaW50IHRvSW50KCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZSAvIGtGaXhlZFBv
aW50RGVub21pbmF0b3I7IH0KLSAgICBmbG9hdCB0b0Zsb2F0KCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KG1fdmFsdWUpIC8ga0ZpeGVkUG9pbnREZW5vbWluYXRvcjsgfQotICAg
IGRvdWJsZSB0b0RvdWJsZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4obV92
YWx1ZSkgLyBrRml4ZWRQb2ludERlbm9taW5hdG9yOyB9CisgICAgaW50IHRvSW50KCkgY29uc3Qg
eyByZXR1cm4gbV92YWx1ZSAvIGtFZmZlY3RpdmVGaXhlZFBvaW50RGVub21pbmF0b3I7IH0KKyAg
ICBmbG9hdCB0b0Zsb2F0KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fdmFs
dWUpIC8ga0VmZmVjdGl2ZUZpeGVkUG9pbnREZW5vbWluYXRvcjsgfQorICAgIGRvdWJsZSB0b0Rv
dWJsZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4obV92YWx1ZSkgLyBrRWZm
ZWN0aXZlRml4ZWRQb2ludERlbm9taW5hdG9yOyB9CiAgICAgZmxvYXQgY2VpbFRvRmxvYXQoKSBj
b25zdAogICAgIHsKICAgICAgICAgZmxvYXQgZmxvYXRWYWx1ZSA9IHRvRmxvYXQoKTsKLSAgICAg
ICAgaWYgKHN0YXRpY19jYXN0PGludD4oZmxvYXRWYWx1ZSAqIGtGaXhlZFBvaW50RGVub21pbmF0
b3IpID09IG1fdmFsdWUpCisgICAgICAgIGlmIChzdGF0aWNfY2FzdDxpbnQ+KGZsb2F0VmFsdWUg
KiBrRWZmZWN0aXZlRml4ZWRQb2ludERlbm9taW5hdG9yKSA9PSBtX3ZhbHVlKQogICAgICAgICAg
ICAgcmV0dXJuIGZsb2F0VmFsdWU7CiAgICAgICAgIGlmIChmbG9hdFZhbHVlID4gMCkKICAgICAg
ICAgICAgIHJldHVybiBuZXh0YWZ0ZXJmKGZsb2F0VmFsdWUsIHN0ZDo6bnVtZXJpY19saW1pdHM8
ZmxvYXQ+OjptYXgoKSk7CkBAIC0xNjksNyArMTcxLDcgQEAgcHVibGljOgogCiAgICAgTGF5b3V0
VW5pdCBvcGVyYXRvcisrKGludCkKICAgICB7Ci0gICAgICAgIG1fdmFsdWUgKz0ga0ZpeGVkUG9p
bnREZW5vbWluYXRvcjsKKyAgICAgICAgbV92YWx1ZSArPSBrRWZmZWN0aXZlRml4ZWRQb2ludERl
bm9taW5hdG9yOwogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogCkBAIC0xOTUsNyArMTk3
LDcgQEAgcHVibGljOgogICAgIHsKICNpZiBFTkFCTEUoU1VCUElYRUxfTEFZT1VUKQogICAgICAg
ICBpZiAobV92YWx1ZSA+PSAwKQotICAgICAgICAgICAgcmV0dXJuIChtX3ZhbHVlICsga0ZpeGVk
UG9pbnREZW5vbWluYXRvciAtIDEpIC8ga0ZpeGVkUG9pbnREZW5vbWluYXRvcjsKKyAgICAgICAg
ICAgIHJldHVybiAobV92YWx1ZSArIGtFZmZlY3RpdmVGaXhlZFBvaW50RGVub21pbmF0b3IgLSAx
KSAvIGtFZmZlY3RpdmVGaXhlZFBvaW50RGVub21pbmF0b3I7CiAgICAgICAgIHJldHVybiB0b0lu
dCgpOwogI2Vsc2UKICAgICAgICAgcmV0dXJuIG1fdmFsdWU7CkBAIC0yMDUsMTIgKzIwNywxMiBA
QCBwdWJsaWM6CiAgICAgewogI2lmIEVOQUJMRShTVUJQSVhFTF9MQVlPVVQpICYmIEVOQUJMRShT
QVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMpCiAgICAgICAgIGlmIChtX3ZhbHVlID4gMCkKLSAg
ICAgICAgICAgIHJldHVybiBzYXR1cmF0ZWRBZGRpdGlvbihyYXdWYWx1ZSgpLCBrRml4ZWRQb2lu
dERlbm9taW5hdG9yIC8gMikgLyBrRml4ZWRQb2ludERlbm9taW5hdG9yOwotICAgICAgICByZXR1
cm4gc2F0dXJhdGVkU3VidHJhY3Rpb24ocmF3VmFsdWUoKSwga0ZpeGVkUG9pbnREZW5vbWluYXRv
ciAvIDIpIC8ga0ZpeGVkUG9pbnREZW5vbWluYXRvcjsKKyAgICAgICAgICAgIHJldHVybiBzYXR1
cmF0ZWRBZGRpdGlvbihyYXdWYWx1ZSgpLCBrRWZmZWN0aXZlRml4ZWRQb2ludERlbm9taW5hdG9y
IC8gMikgLyBrRWZmZWN0aXZlRml4ZWRQb2ludERlbm9taW5hdG9yOworICAgICAgICByZXR1cm4g
c2F0dXJhdGVkU3VidHJhY3Rpb24ocmF3VmFsdWUoKSwga0VmZmVjdGl2ZUZpeGVkUG9pbnREZW5v
bWluYXRvciAvIDIpIC8ga0VmZmVjdGl2ZUZpeGVkUG9pbnREZW5vbWluYXRvcjsKICNlbGlmIEVO
QUJMRShTVUJQSVhFTF9MQVlPVVQpCiAgICAgICAgIGlmIChtX3ZhbHVlID4gMCkKLSAgICAgICAg
ICAgIHJldHVybiAobV92YWx1ZSArIChrRml4ZWRQb2ludERlbm9taW5hdG9yIC8gMikpIC8ga0Zp
eGVkUG9pbnREZW5vbWluYXRvcjsKLSAgICAgICAgcmV0dXJuIChtX3ZhbHVlIC0gKGtGaXhlZFBv
aW50RGVub21pbmF0b3IgLyAyKSkgLyBrRml4ZWRQb2ludERlbm9taW5hdG9yOworICAgICAgICAg
ICAgcmV0dXJuIChtX3ZhbHVlICsgKGtFZmZlY3RpdmVGaXhlZFBvaW50RGVub21pbmF0b3IgLyAy
KSkgLyBrRWZmZWN0aXZlRml4ZWRQb2ludERlbm9taW5hdG9yOworICAgICAgICByZXR1cm4gKG1f
dmFsdWUgLSAoa0VmZmVjdGl2ZUZpeGVkUG9pbnREZW5vbWluYXRvciAvIDIpKSAvIGtFZmZlY3Rp
dmVGaXhlZFBvaW50RGVub21pbmF0b3I7CiAjZWxzZQogICAgICAgICByZXR1cm4gbV92YWx1ZTsK
ICNlbmRpZgpAQCAtMjIxLDcgKzIyMyw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoU1VCUElYRUxf
TEFZT1VUKQogICAgICAgICBpZiAobV92YWx1ZSA+PSAwKQogICAgICAgICAgICAgcmV0dXJuIHRv
SW50KCk7Ci0gICAgICAgIHJldHVybiAobV92YWx1ZSAtIGtGaXhlZFBvaW50RGVub21pbmF0b3Ig
KyAxKSAvIGtGaXhlZFBvaW50RGVub21pbmF0b3I7CisgICAgICAgIHJldHVybiAobV92YWx1ZSAt
IGtFZmZlY3RpdmVGaXhlZFBvaW50RGVub21pbmF0b3IgKyAxKSAvIGtFZmZlY3RpdmVGaXhlZFBv
aW50RGVub21pbmF0b3I7CiAjZWxzZQogICAgICAgICByZXR1cm4gbV92YWx1ZTsKICNlbmRpZgpA
QCAtMjMyLDEyICsyMzQsMTIgQEAgcHVibGljOgogICAgICAgICAvLyBBZGQgdGhlIGZyYWN0aW9u
IHRvIHRoZSBzaXplIChhcyBvcHBvc2VkIHRvIHRoZSBmdWxsIGxvY2F0aW9uKSB0byBhdm9pZCBv
dmVyZmxvd3MuCiAgICAgICAgIC8vIENvbXB1dGUgZnJhY3Rpb24gdXNpbmcgdGhlIG1vZCBvcGVy
YXRvciB0byBwcmVzZXJ2ZSB0aGUgc2lnbiBvZiB0aGUgdmFsdWUgYXMgaXQgbWF5IGFmZmVjdCBy
b3VuZGluZy4KICAgICAgICAgTGF5b3V0VW5pdCBmcmFjdGlvbjsKLSAgICAgICAgZnJhY3Rpb24u
c2V0UmF3VmFsdWUocmF3VmFsdWUoKSAlIGtGaXhlZFBvaW50RGVub21pbmF0b3IpOworICAgICAg
ICBmcmFjdGlvbi5zZXRSYXdWYWx1ZShyYXdWYWx1ZSgpICUga0VmZmVjdGl2ZUZpeGVkUG9pbnRE
ZW5vbWluYXRvcik7CiAgICAgICAgIHJldHVybiBmcmFjdGlvbjsKICAgICB9CiAKICNpZiBFTkFC
TEUoU1VCUElYRUxfTEFZT1VUKQotICAgIHN0YXRpYyBmbG9hdCBlcHNpbG9uKCkgeyByZXR1cm4g
MS4wZiAvIGtGaXhlZFBvaW50RGVub21pbmF0b3I7IH0KKyAgICBzdGF0aWMgZmxvYXQgZXBzaWxv
bigpIHsgcmV0dXJuIDEuMGYgLyBrRWZmZWN0aXZlRml4ZWRQb2ludERlbm9taW5hdG9yOyB9CiAj
ZWxzZQogICAgIHN0YXRpYyBpbnQgZXBzaWxvbigpIHsgcmV0dXJuIDA7IH0KICNlbmRpZgpAQCAt
MjU4LDEzICsyNjAsMTMgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBMYXlvdXRVbml0IG5l
YXJseU1heCgpCiAgICAgewogICAgICAgICBMYXlvdXRVbml0IG07Ci0gICAgICAgIG0ubV92YWx1
ZSA9IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCkgLSBrRml4ZWRQb2ludERlbm9taW5h
dG9yIC8gMjsKKyAgICAgICAgbS5tX3ZhbHVlID0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+Ojpt
YXgoKSAtIGtFZmZlY3RpdmVGaXhlZFBvaW50RGVub21pbmF0b3IgLyAyOwogICAgICAgICByZXR1
cm4gbTsKICAgICB9CiAgICAgc3RhdGljIGNvbnN0IExheW91dFVuaXQgbmVhcmx5TWluKCkKICAg
ICB7CiAgICAgICAgIExheW91dFVuaXQgbTsKLSAgICAgICAgbS5tX3ZhbHVlID0gc3RkOjpudW1l
cmljX2xpbWl0czxpbnQ+OjptaW4oKSArIGtGaXhlZFBvaW50RGVub21pbmF0b3IgLyAyOworICAg
ICAgICBtLm1fdmFsdWUgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1pbigpICsga0VmZmVj
dGl2ZUZpeGVkUG9pbnREZW5vbWluYXRvciAvIDI7CiAgICAgICAgIHJldHVybiBtOwogICAgIH0K
ICAgICAKQEAgLTI3NiwxNSArMjc4LDE1IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgc3RhdGlj
IGJvb2wgaXNJbkJvdW5kcyhpbnQgdmFsdWUpCiAgICAgewotICAgICAgICByZXR1cm4gOjphYnMo
dmFsdWUpIDw9IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCkgLyBrRml4ZWRQb2ludERl
bm9taW5hdG9yOworICAgICAgICByZXR1cm4gOjphYnModmFsdWUpIDw9IHN0ZDo6bnVtZXJpY19s
aW1pdHM8aW50Pjo6bWF4KCkgLyBrRWZmZWN0aXZlRml4ZWRQb2ludERlbm9taW5hdG9yOwogICAg
IH0KICAgICBzdGF0aWMgYm9vbCBpc0luQm91bmRzKHVuc2lnbmVkIHZhbHVlKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIHZhbHVlIDw9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihzdGQ6Om51bWVyaWNf
bGltaXRzPGludD46Om1heCgpKSAvIGtGaXhlZFBvaW50RGVub21pbmF0b3I7CisgICAgICAgIHJl
dHVybiB2YWx1ZSA8PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc3RkOjpudW1lcmljX2xpbWl0czxp
bnQ+OjptYXgoKSkgLyBrRWZmZWN0aXZlRml4ZWRQb2ludERlbm9taW5hdG9yOwogICAgIH0KICAg
ICBzdGF0aWMgYm9vbCBpc0luQm91bmRzKGRvdWJsZSB2YWx1ZSkKICAgICB7Ci0gICAgICAgIHJl
dHVybiA6OmZhYnModmFsdWUpIDw9IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCkgLyBr
Rml4ZWRQb2ludERlbm9taW5hdG9yOworICAgICAgICByZXR1cm4gOjpmYWJzKHZhbHVlKSA8PSBz
dGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1heCgpIC8ga0VmZmVjdGl2ZUZpeGVkUG9pbnREZW5v
bWluYXRvcjsKICAgICB9CiAgICAgCiAgICAgaW5saW5lIHZvaWQgc2V0VmFsdWUoaW50IHZhbHVl
KQpAQCAtMjk1LDEwICsyOTcsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgZWxzZSBpZiAodmFsdWUg
PCBpbnRNaW5Gb3JMYXlvdXRVbml0KQogICAgICAgICAgICAgbV92YWx1ZSA9IHN0ZDo6bnVtZXJp
Y19saW1pdHM8aW50Pjo6bWluKCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fdmFsdWUg
PSB2YWx1ZSAqIGtGaXhlZFBvaW50RGVub21pbmF0b3I7CisgICAgICAgICAgICBtX3ZhbHVlID0g
dmFsdWUgKiBrRWZmZWN0aXZlRml4ZWRQb2ludERlbm9taW5hdG9yOwogI2Vsc2UKICAgICAgICAg
UkVQT1JUX09WRVJGTE9XKGlzSW5Cb3VuZHModmFsdWUpKTsKLSAgICAgICAgbV92YWx1ZSA9IHZh
bHVlICoga0ZpeGVkUG9pbnREZW5vbWluYXRvcjsKKyAgICAgICAgbV92YWx1ZSA9IHZhbHVlICog
a0VmZmVjdGl2ZUZpeGVkUG9pbnREZW5vbWluYXRvcjsKICNlbmRpZgogICAgIH0KICAgICBpbmxp
bmUgdm9pZCBzZXRWYWx1ZSh1bnNpZ25lZCB2YWx1ZSkKQEAgLTMwNywxMCArMzA5LDEwIEBAIHBy
aXZhdGU6CiAgICAgICAgIGlmICh2YWx1ZSA+PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaW50TWF4
Rm9yTGF5b3V0VW5pdCkpCiAgICAgICAgICAgICBtX3ZhbHVlID0gc3RkOjpudW1lcmljX2xpbWl0
czxpbnQ+OjptYXgoKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgbV92YWx1ZSA9IHZhbHVl
ICoga0ZpeGVkUG9pbnREZW5vbWluYXRvcjsKKyAgICAgICAgICAgIG1fdmFsdWUgPSB2YWx1ZSAq
IGtFZmZlY3RpdmVGaXhlZFBvaW50RGVub21pbmF0b3I7CiAjZWxzZQogICAgICAgICBSRVBPUlRf
T1ZFUkZMT1coaXNJbkJvdW5kcyh2YWx1ZSkpOwotICAgICAgICBtX3ZhbHVlID0gdmFsdWUgKiBr
Rml4ZWRQb2ludERlbm9taW5hdG9yOworICAgICAgICBtX3ZhbHVlID0gdmFsdWUgKiBrRWZmZWN0
aXZlRml4ZWRQb2ludERlbm9taW5hdG9yOwogI2VuZGlmCiAgICAgfQogCkBAIC00ODIsNyArNDg0
LDcgQEAgaW5saW5lIExheW91dFVuaXQgYm91bmRlZE11bHRpcGx5KGNvbnN0CiB7CiAjaWYgRU5B
QkxFKFNVQlBJWEVMX0xBWU9VVCkKICAgICBMYXlvdXRVbml0IHJldHVyblZhbDsKLSAgICBsb25n
IGxvbmcgcmF3VmFsID0gc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihhLnJhd1ZhbHVlKCkpICogYi5y
YXdWYWx1ZSgpIC8ga0ZpeGVkUG9pbnREZW5vbWluYXRvcjsKKyAgICBsb25nIGxvbmcgcmF3VmFs
ID0gc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihhLnJhd1ZhbHVlKCkpICogYi5yYXdWYWx1ZSgpIC8g
a0VmZmVjdGl2ZUZpeGVkUG9pbnREZW5vbWluYXRvcjsKICAgICBpZiAocmF3VmFsID4gc3RkOjpu
dW1lcmljX2xpbWl0czxpbnQ+OjptYXgoKSkKICAgICAgICAgcmV0dXJuIExheW91dFVuaXQ6Om1h
eCgpOwogICAgIGlmIChyYXdWYWwgPCBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1pbigpKQpA
QCAtNTAwLDcgKzUwMiw3IEBAIGlubGluZSBMYXlvdXRVbml0IG9wZXJhdG9yKihjb25zdCBMYXlv
dXQKICAgICByZXR1cm4gYm91bmRlZE11bHRpcGx5KGEsIGIpOwogI2VsaWYgRU5BQkxFKFNVQlBJ
WEVMX0xBWU9VVCkKICAgICBMYXlvdXRVbml0IHJldHVyblZhbDsKLSAgICBsb25nIGxvbmcgcmF3
VmFsID0gc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihhLnJhd1ZhbHVlKCkpICogYi5yYXdWYWx1ZSgp
IC8ga0ZpeGVkUG9pbnREZW5vbWluYXRvcjsKKyAgICBsb25nIGxvbmcgcmF3VmFsID0gc3RhdGlj
X2Nhc3Q8bG9uZyBsb25nPihhLnJhd1ZhbHVlKCkpICogYi5yYXdWYWx1ZSgpIC8ga0VmZmVjdGl2
ZUZpeGVkUG9pbnREZW5vbWluYXRvcjsKICAgICByZXR1cm5WYWwuc2V0UmF3VmFsdWUocmF3VmFs
KTsKICAgICByZXR1cm4gcmV0dXJuVmFsOwogI2Vsc2UKQEAgLTU1Miw3ICs1NTQsNyBAQCBpbmxp
bmUgTGF5b3V0VW5pdCBvcGVyYXRvci8oY29uc3QgTGF5b3V0CiB7CiAjaWYgRU5BQkxFKFNVQlBJ
WEVMX0xBWU9VVCkKICAgICBMYXlvdXRVbml0IHJldHVyblZhbDsKLSAgICBsb25nIGxvbmcgcmF3
VmFsID0gc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihrRml4ZWRQb2ludERlbm9taW5hdG9yKSAqIGEu
cmF3VmFsdWUoKSAvIGIucmF3VmFsdWUoKTsKKyAgICBsb25nIGxvbmcgcmF3VmFsID0gc3RhdGlj
X2Nhc3Q8bG9uZyBsb25nPihrRWZmZWN0aXZlRml4ZWRQb2ludERlbm9taW5hdG9yKSAqIGEucmF3
VmFsdWUoKSAvIGIucmF3VmFsdWUoKTsKICAgICByZXR1cm5WYWwuc2V0UmF3VmFsdWUocmF3VmFs
KTsKICAgICByZXR1cm4gcmV0dXJuVmFsOwogI2Vsc2UKQEAgLTcwMiw4ICs3MDQsOCBAQCBpbmxp
bmUgTGF5b3V0VW5pdCBvcGVyYXRvciUoY29uc3QgTGF5b3V0CiAjaWYgRU5BQkxFKFNVQlBJWEVM
X0xBWU9VVCkKICAgICAvLyBUaGlzIGNhbGN1bGF0ZXMgdGhlIG1vZHVsbyBzbyB0aGF0OiBhID0g
KGEgLyBiKSAqIGIgKyBhICUgYi4KICAgICBMYXlvdXRVbml0IHJldHVyblZhbDsKLSAgICBsb25n
IGxvbmcgcmF3VmFsID0gKHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oa0ZpeGVkUG9pbnREZW5vbWlu
YXRvcikgKiBhLnJhd1ZhbHVlKCkpICUgYi5yYXdWYWx1ZSgpOwotICAgIHJldHVyblZhbC5zZXRS
YXdWYWx1ZShyYXdWYWwgLyBrRml4ZWRQb2ludERlbm9taW5hdG9yKTsKKyAgICBsb25nIGxvbmcg
cmF3VmFsID0gKHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oa0VmZmVjdGl2ZUZpeGVkUG9pbnREZW5v
bWluYXRvcikgKiBhLnJhd1ZhbHVlKCkpICUgYi5yYXdWYWx1ZSgpOworICAgIHJldHVyblZhbC5z
ZXRSYXdWYWx1ZShyYXdWYWwgLyBrRWZmZWN0aXZlRml4ZWRQb2ludERlbm9taW5hdG9yKTsKICAg
ICByZXR1cm4gcmV0dXJuVmFsOwogI2Vsc2UKICAgICByZXR1cm4gYS5yYXdWYWx1ZSgpICUgYi5y
YXdWYWx1ZSgpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTM3NTEzKQorKysgTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTItMTItMTIgIEVtaWwg
QSBFa2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEhhdmUga0ZpeGVkUG9pbnRE
ZW5vbWluYXRvciBiZSBjb25zdGFudCBhY3Jvc3MgcG9ydHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDg0MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVW5za2lwIHRoZSBmb2xsb3dpbmcg
dGVzdHMgb24gZWZsLCBxdCBhbmQgZ3RrOgorICAgICAgICBjc3MzL2ZsZXhib3gvZmxleC1hbGdv
cml0aG0uaHRtbAorICAgICAgICBmYXN0L2Nzcy9sYXJnZS1udW1iZXItcm91bmQtdHJpcC5odG1s
CisgICAgICAgIGZhc3QvY3NzL2xhcmdlLW51bWJlcnMuaHRtbCAKKworICAgICAgICBSZW1vdmUg
cGxhdGZvcm0gc3BlY2lmaWMgcmVzdWx0cyBmb3IgbGFyZ2UtbnVtYmVyLXJvdW5kLXRyaXAuaHRt
bC4KKworICAgICAgICAqIGZhc3QvY3NzL2xhcmdlLW51bWJlci1yb3VuZC10cmlwLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9sYXJnZS1udW1iZXIt
cm91bmQtdHJpcC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZs
L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlv
bnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2xhcmdlLW51bWJlci1yb3VuZC10
cmlwLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9UZXN0RXhw
ZWN0YXRpb25zOgorCiAyMDEyLTEyLTEyICBEb21pbmljIE1henpvbmkgIDxkbWF6em9uaUBnb29n
bGUuY29tPgogCiAgICAgICAgIEFYOiB0ZXh0VW5kZXJFbGVtZW50IHNob3VsZCBjb25zaWRlciBh
bHQgdGV4dCwgYnV0IHNraXAgbGlua3MgYW5kIGNvbnRyb2xzCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2Nzcy9sYXJnZS1udW1iZXItcm91bmQtdHJpcC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvbGFyZ2UtbnVtYmVyLXJvdW5kLXRyaXAtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAxMzc0ODcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9sYXJnZS1udW1i
ZXItcm91bmQtdHJpcC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEgKzEsMyBAQAot
UEFTUzogcmVhZCA5MDAxMDAwMHB4IGJhY2sgYXMgOTAwMTAwMDBweCwgcmVhZCBhZ2FpbiBhcyA5
MDAxMDAwMHB4CitQQVNTOiByZWFkIDkwMDEwMDAwcHggYmFjayBhcyAzMzU1NDQyOHB4LCByZWFk
IGFnYWluIGFzIDMzNTU0NDI4cHgKK1BBU1M6IHJlYWQgLTMzNTU0NDMwcHggYmFjayBhcyAtMzM1
NTQ0MzBweCwgcmVhZCBhZ2FpbiBhcyAtMzM1NTQ0MzBweAorUEFTUzogcmVhZCAtOTAwMTAwMDBw
eCBiYWNrIGFzIC0zMzU1NDQzMHB4LCByZWFkIGFnYWluIGFzIC0zMzU1NDQzMHB4CkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9sYXJnZS1udW1iZXItcm91bmQt
dHJpcC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vZmFzdC9jc3MvbGFyZ2UtbnVtYmVyLXJvdW5kLXRyaXAtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAxMzc0ODcpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9s
YXJnZS1udW1iZXItcm91bmQtdHJpcC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMCwwIEBACi1QQVNTOiByZWFkIDkwMDEwMDAwcHggYmFjayBhcyAzMzU1NDQyOHB4LCByZWFk
IGFnYWluIGFzIDMzNTU0NDI4cHgKLVBBU1M6IHJlYWQgLTMzNTU0NDMwcHggYmFjayBhcyAtMzM1
NTQ0MzBweCwgcmVhZCBhZ2FpbiBhcyAtMzM1NTQ0MzBweAotUEFTUzogcmVhZCAtOTAwMTAwMDBw
eCBiYWNrIGFzIC0zMzU1NDQzMHB4LCByZWFkIGFnYWluIGFzIC0zMzU1NDQzMHB4CkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTM3NDg3
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcg
Y29weSkKQEAgLTE2NjcsOSArMTY2Nyw1IEBAIHdlYmtpdC5vcmcvYi8xMDQ1NzEgaHR0cC90ZXN0
cy9zZWN1cml0eS8KIHdlYmtpdC5vcmcvYi8xMDQ1NzEgaHR0cC90ZXN0cy9zZWN1cml0eS94c3NB
dWRpdG9yL3NjcmlwdC10YWctd2l0aC1zb3VyY2UtbnVsbC1jaGFyLmh0bWwgWyBGYWlsdXJlIF0K
IHdlYmtpdC5vcmcvYi8xMDQ1NzEgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4tZXhh
Y3QtbWF0Y2hpbmcuaHRtbCBbIEZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTA0Nzg4IGNzczMv
ZmxleGJveC9mbGV4LWFsZ29yaXRobS5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTA0
Nzg4IGZhc3QvY3NzL2xhcmdlLW51bWJlci1yb3VuZC10cmlwLmh0bWwgWyBGYWlsdXJlIF0KLXdl
YmtpdC5vcmcvYi8xMDQ3ODggZmFzdC9jc3MvbGFyZ2UtbnVtYmVycy5odG1sIFsgRmFpbHVyZSBd
Ci0KICMgRml4ZWQgcG9zaXRpb25pbmcgcmVmdGVzdCBmYWlsaW5nCiB3ZWJraXQub3JnL2IvMTA0
ODA4IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1z
Y2FsZS1zbWFsbGVyLXRoYW4tdmlld3BvcnQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEz
NzQ4NykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMzk3LDEwICsxMzk3LDYgQEAgd2Via2l0Lm9yZy9iLzEwNDY0OSBzdmcv
VzNDLVNWRy0xLjEtU0UvcwogCiB3ZWJraXQub3JnL2IvMTA0Njg2IGh0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvcmVkaXJlY3QtY3Jvc3Mtb3JpZ2luLXRyaXBtaW5lLmh0bWwgWyBGYWlsdXJlIF0K
IAotd2Via2l0Lm9yZy9iLzEwNDc4OCBjc3MzL2ZsZXhib3gvZmxleC1hbGdvcml0aG0uaHRtbCBb
IEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzEwNDc4OCBmYXN0L2Nzcy9sYXJnZS1udW1iZXItcm91
bmQtdHJpcC5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTA0Nzg4IGZhc3QvY3NzL2xh
cmdlLW51bWJlcnMuaHRtbCBbIEZhaWx1cmUgXQotCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwogIyBFbmQgb2YgVGVzdHMgZmFpbGluZwogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9sYXJnZS1u
dW1iZXItcm91bmQtdHJpcC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2xhcmdlLW51bWJlci1yb3VuZC10cmlwLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMTM3NDg3KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3Nz
L2xhcmdlLW51bWJlci1yb3VuZC10cmlwLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MSwzICswLDAgQEAKLVBBU1M6IHJlYWQgOTAwMTAwMDBweCBiYWNrIGFzIDMzNTU0NDI4cHgsIHJl
YWQgYWdhaW4gYXMgMzM1NTQ0MjhweAotUEFTUzogcmVhZCAtMzM1NTQ0MzBweCBiYWNrIGFzIC0z
MzU1NDQzMHB4LCByZWFkIGFnYWluIGFzIC0zMzU1NDQzMHB4Ci1QQVNTOiByZWFkIC05MDAxMDAw
MHB4IGJhY2sgYXMgLTMzNTU0NDMwcHgsIHJlYWQgYWdhaW4gYXMgLTMzNTU0NDMwcHgKSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTM3NDg3
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBj
b3B5KQpAQCAtMjQ1MSw3ICsyNDUxLDMgQEAgd2Via2l0Lm9yZy9iLzEwNDM1MSBmYXN0L2V4Y2x1
c2lvbnMvc2hhcAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0
MzUyCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3QtYmxvYi1jb250ZW50LXR5cGUtYXN5
bmMuaHRtbAogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBl
LXN5bmMuaHRtbAotCi13ZWJraXQub3JnL2IvMTA0Nzg4IGNzczMvZmxleGJveC9mbGV4LWFsZ29y
aXRobS5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTA0Nzg4IGZhc3QvY3NzL2xhcmdl
LW51bWJlci1yb3VuZC10cmlwLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xMDQ3ODgg
ZmFzdC9jc3MvbGFyZ2UtbnVtYmVycy5odG1sIFsgRmFpbHVyZSBdCg==
</data>
<flag name="review"
          id="195875"
          type_id="1"
          status="+"
          setter="jchaffraix"
    />
    <flag name="commit-queue"
          id="196825"
          type_id="3"
          status="-"
          setter="jchaffraix"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179812</attachid>
            <date>2012-12-17 15:21:07 -0800</date>
            <delta_ts>2012-12-18 08:46:09 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>p3</filename>
            <type>text/plain</type>
            <size>17088</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzk0OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDEyLTEyLTE3ICBFbWlsIEEg
RWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KKworICAgICAgICBIYXZlIGtGaXhlZFBvaW50RGVu
b21pbmF0b3IgYmUgY29uc3RhbnQgYWNyb3NzIHBvcnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQ4NDMKKworICAgICAgICBSZXZpZXdlZCBieSBK
dWxpZW4gQ2hhZmZyYWl4LgorCisgICAgICAgIEN1cnJlbnRseSB0aGUga0ZpeGVkUG9pbnREZW5v
bWluYXRvciBjb25zdGFudCBpcyBzZXQgdG8gZWl0aGVyCisgICAgICAgIDY0IG9yIDEgZGVwZW5k
aW5nIG9uIHRoZSBTVUJQSVhFTF9MQVlPVVQgZmxhZy4gQXMgdGhpcyBjb25zdGFudAorICAgICAg
ICBpcyB1c2VkIHRvIGxpbWl0IHRoZSByYW5nZSBvZiBzdXBwb3J0ZWQgdmFsdWVzIHRoaXMgcmVz
dWx0cyBpbgorICAgICAgICBpbmNvbnNpc3RlbmNpZXMgYWNyb3NzIHBvcnRzLgorCisgICAgICAg
IENoYW5nZSBrRml4ZWRQb2ludERlbm9taW5hdG9yIHRvIGFsd2F5cyBiZSA2NCBhbmQgaW50cm9k
dWNlIGEKKyAgICAgICAgbmV3IGNvbnN0YW50IChrRWZmZWN0aXZlRml4ZWRQb2ludERlbm9taW5h
dG9yKSB0aGF0IHZhcmllcy4KKyAgICAgICAgVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHNhbWUgcmFu
Z2Ugb2YgdmFsdWVzIGFyZSBzdXBwb3J0ZWQgYWNyb3NzCisgICAgICAgIHBvcnRzIHJlZ2FyZGxl
c3Mgb2YgdGhlIFNVQlBJWEVMX0xBWU9VVCBmbGFnLgorICAgICAgICAKKyAgICAgICAgQ292ZXJl
ZCBieSBmYXN0L2Nzcy9sYXJnZS1udW1iZXJzLmh0bWwgYW5kIGZhc3QvY3NzL2xhcmdlLW51bWJl
ci1yb3VuZC10cmlwLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL0xheW91dFVuaXQuaDoKKyAg
ICAgICAgQWRkIGtFZmZlY3RpdmVGaXhlZFBvaW50RGVub21pbmF0b3IgY29uc3RhbnQgYW5kIGNo
YW5nZQorICAgICAgICBMYXlvdXRVbml0IGNvZGUgdG8gdXNlIGl0IGluc3RlYWQgb2Yga0ZpeGVk
UG9pbnREZW5vbWluYXRvcgorICAgICAgICB3aGljaCBpcyBub3cgc2V0IHRvIDY0IHJlZ2FyZGxl
c3Mgb2YgdGhlIFNVQlBJWEVMX0xBWU9VVCBmbGFnLgorCiAyMDEyLTEyLTE3ICBZb25nIExpICA8
eW9saUByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBEZWFkbG9jayBjYXVzZWQgYnkg
UGx1Z2luVmlld1ByaXZhdGU6OmRlc3Ryb3lCdWZmZXJzKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xheW91dFVuaXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9MYXlvdXRVbml0LmgJKHJldmlzaW9uIDEzNzk0OSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xheW91dFVuaXQuaAkod29ya2luZyBjb3B5KQpAQCAtNTQsMTMgKzU0LDE1IEBAIHdo
aWxlICgwKQogCiAjZW5kaWYKIAotI2lmIEVOQUJMRShTVUJQSVhFTF9MQVlPVVQpCiBzdGF0aWMg
Y29uc3QgaW50IGtGaXhlZFBvaW50RGVub21pbmF0b3IgPSA2NDsKKworI2lmIEVOQUJMRShTVUJQ
SVhFTF9MQVlPVVQpCitzdGF0aWMgY29uc3QgaW50IGtFZmZlY3RpdmVGaXhlZFBvaW50RGVub21p
bmF0b3IgPSBrRml4ZWRQb2ludERlbm9taW5hdG9yOwogI2Vsc2UKLXN0YXRpYyBjb25zdCBpbnQg
a0ZpeGVkUG9pbnREZW5vbWluYXRvciA9IDE7CitzdGF0aWMgY29uc3QgaW50IGtFZmZlY3RpdmVG
aXhlZFBvaW50RGVub21pbmF0b3IgPSAxOwogI2VuZGlmCi1jb25zdCBpbnQgaW50TWF4Rm9yTGF5
b3V0VW5pdCA9IElOVF9NQVggLyBrRml4ZWRQb2ludERlbm9taW5hdG9yOwotY29uc3QgaW50IGlu
dE1pbkZvckxheW91dFVuaXQgPSBJTlRfTUlOIC8ga0ZpeGVkUG9pbnREZW5vbWluYXRvcjsKK2Nv
bnN0IGludCBpbnRNYXhGb3JMYXlvdXRVbml0ID0gSU5UX01BWCAvIGtFZmZlY3RpdmVGaXhlZFBv
aW50RGVub21pbmF0b3I7Citjb25zdCBpbnQgaW50TWluRm9yTGF5b3V0VW5pdCA9IElOVF9NSU4g
LyBrRWZmZWN0aXZlRml4ZWRQb2ludERlbm9taW5hdG9yOwogCiBjbGFzcyBMYXlvdXRVbml0IHsK
IHB1YmxpYzoKQEAgLTc2LDE5ICs3OCwxOSBAQCBwdWJsaWM6CiAgICAgTGF5b3V0VW5pdChmbG9h
dCB2YWx1ZSkKICAgICB7CiAjaWYgRU5BQkxFKFNBVFVSQVRFRF9MQVlPVVRfQVJJVEhNRVRJQykK
LSAgICAgICAgbV92YWx1ZSA9IGNsYW1wVG88ZmxvYXQ+KHZhbHVlICoga0ZpeGVkUG9pbnREZW5v
bWluYXRvciwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KElOVF9NSU4pLCBzdGF0aWNfY2FzdDxmbG9hdD4o
SU5UX01BWCkpOworICAgICAgICBtX3ZhbHVlID0gY2xhbXBUbzxmbG9hdD4odmFsdWUgKiBrRWZm
ZWN0aXZlRml4ZWRQb2ludERlbm9taW5hdG9yLCBzdGF0aWNfY2FzdDxmbG9hdD4oSU5UX01JTiks
IHN0YXRpY19jYXN0PGZsb2F0PihJTlRfTUFYKSk7CiAjZWxzZQogICAgICAgICBSRVBPUlRfT1ZF
UkZMT1coaXNJbkJvdW5kcyh2YWx1ZSkpOwotICAgICAgICBtX3ZhbHVlID0gdmFsdWUgKiBrRml4
ZWRQb2ludERlbm9taW5hdG9yOworICAgICAgICBtX3ZhbHVlID0gdmFsdWUgKiBrRWZmZWN0aXZl
Rml4ZWRQb2ludERlbm9taW5hdG9yOwogI2VuZGlmCiAgICAgfQogICAgIExheW91dFVuaXQoZG91
YmxlIHZhbHVlKQogICAgIHsKICNpZiBFTkFCTEUoU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElD
KQotICAgICAgICBtX3ZhbHVlID0gY2xhbXBUbzxkb3VibGU+KHZhbHVlICoga0ZpeGVkUG9pbnRE
ZW5vbWluYXRvciwgc3RhdGljX2Nhc3Q8ZG91YmxlPihJTlRfTUlOKSwgc3RhdGljX2Nhc3Q8ZG91
YmxlPihJTlRfTUFYKSk7CisgICAgICAgIG1fdmFsdWUgPSBjbGFtcFRvPGRvdWJsZT4odmFsdWUg
KiBrRWZmZWN0aXZlRml4ZWRQb2ludERlbm9taW5hdG9yLCBzdGF0aWNfY2FzdDxkb3VibGU+KElO
VF9NSU4pLCBzdGF0aWNfY2FzdDxkb3VibGU+KElOVF9NQVgpKTsKICNlbHNlCiAgICAgICAgIFJF
UE9SVF9PVkVSRkxPVyhpc0luQm91bmRzKHZhbHVlKSk7Ci0gICAgICAgIG1fdmFsdWUgPSB2YWx1
ZSAqIGtGaXhlZFBvaW50RGVub21pbmF0b3I7CisgICAgICAgIG1fdmFsdWUgPSB2YWx1ZSAqIGtF
ZmZlY3RpdmVGaXhlZFBvaW50RGVub21pbmF0b3I7CiAjZW5kaWYKICAgICB9CiAjZWxzZQpAQCAt
MTA0LDEwICsxMDYsMTAgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgTGF5b3V0VW5pdCB2Owog
I2lmIEVOQUJMRShTQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMpCi0gICAgICAgIHYubV92YWx1
ZSA9IGNsYW1wVG9JbnRlZ2VyKGNlaWxmKHZhbHVlICoga0ZpeGVkUG9pbnREZW5vbWluYXRvcikp
OworICAgICAgICB2Lm1fdmFsdWUgPSBjbGFtcFRvSW50ZWdlcihjZWlsZih2YWx1ZSAqIGtFZmZl
Y3RpdmVGaXhlZFBvaW50RGVub21pbmF0b3IpKTsKICNlbHNlCiAgICAgICAgIFJFUE9SVF9PVkVS
RkxPVyhpc0luQm91bmRzKHZhbHVlKSk7Ci0gICAgICAgIHYubV92YWx1ZSA9IGNlaWxmKHZhbHVl
ICoga0ZpeGVkUG9pbnREZW5vbWluYXRvcik7CisgICAgICAgIHYubV92YWx1ZSA9IGNlaWxmKHZh
bHVlICoga0VmZmVjdGl2ZUZpeGVkUG9pbnREZW5vbWluYXRvcik7CiAjZW5kaWYKICAgICAgICAg
cmV0dXJuIHY7CiAgICAgfQpAQCAtMTE2LDEwICsxMTgsMTAgQEAgcHVibGljOgogICAgIHsKICAg
ICAgICAgTGF5b3V0VW5pdCB2OwogI2lmIEVOQUJMRShTQVRVUkFURURfTEFZT1VUX0FSSVRITUVU
SUMpCi0gICAgICAgIHYubV92YWx1ZSA9IGNsYW1wVG9JbnRlZ2VyKGZsb29yZih2YWx1ZSAqIGtG
aXhlZFBvaW50RGVub21pbmF0b3IpKTsKKyAgICAgICAgdi5tX3ZhbHVlID0gY2xhbXBUb0ludGVn
ZXIoZmxvb3JmKHZhbHVlICoga0VmZmVjdGl2ZUZpeGVkUG9pbnREZW5vbWluYXRvcikpOwogI2Vs
c2UKICAgICAgICAgUkVQT1JUX09WRVJGTE9XKGlzSW5Cb3VuZHModmFsdWUpKTsKLSAgICAgICAg
di5tX3ZhbHVlID0gZmxvb3JmKHZhbHVlICoga0ZpeGVkUG9pbnREZW5vbWluYXRvcik7CisgICAg
ICAgIHYubV92YWx1ZSA9IGZsb29yZih2YWx1ZSAqIGtFZmZlY3RpdmVGaXhlZFBvaW50RGVub21p
bmF0b3IpOwogI2VuZGlmCiAgICAgICAgIHJldHVybiB2OwogICAgIH0KQEAgLTE0MSwxMyArMTQz
LDEzIEBAIHB1YmxpYzoKICAgICB9CiAKICNpZiBFTkFCTEUoU1VCUElYRUxfTEFZT1VUKQotICAg
IGludCB0b0ludCgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUgLyBrRml4ZWRQb2ludERlbm9taW5h
dG9yOyB9Ci0gICAgZmxvYXQgdG9GbG9hdCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PGZs
b2F0PihtX3ZhbHVlKSAvIGtGaXhlZFBvaW50RGVub21pbmF0b3I7IH0KLSAgICBkb3VibGUgdG9E
b3VibGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KG1fdmFsdWUpIC8ga0Zp
eGVkUG9pbnREZW5vbWluYXRvcjsgfQorICAgIGludCB0b0ludCgpIGNvbnN0IHsgcmV0dXJuIG1f
dmFsdWUgLyBrRWZmZWN0aXZlRml4ZWRQb2ludERlbm9taW5hdG9yOyB9CisgICAgZmxvYXQgdG9G
bG9hdCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PihtX3ZhbHVlKSAvIGtFZmZl
Y3RpdmVGaXhlZFBvaW50RGVub21pbmF0b3I7IH0KKyAgICBkb3VibGUgdG9Eb3VibGUoKSBjb25z
dCB7IHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KG1fdmFsdWUpIC8ga0VmZmVjdGl2ZUZpeGVk
UG9pbnREZW5vbWluYXRvcjsgfQogICAgIGZsb2F0IGNlaWxUb0Zsb2F0KCkgY29uc3QKICAgICB7
CiAgICAgICAgIGZsb2F0IGZsb2F0VmFsdWUgPSB0b0Zsb2F0KCk7Ci0gICAgICAgIGlmIChzdGF0
aWNfY2FzdDxpbnQ+KGZsb2F0VmFsdWUgKiBrRml4ZWRQb2ludERlbm9taW5hdG9yKSA9PSBtX3Zh
bHVlKQorICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8aW50PihmbG9hdFZhbHVlICoga0VmZmVjdGl2
ZUZpeGVkUG9pbnREZW5vbWluYXRvcikgPT0gbV92YWx1ZSkKICAgICAgICAgICAgIHJldHVybiBm
bG9hdFZhbHVlOwogICAgICAgICBpZiAoZmxvYXRWYWx1ZSA+IDApCiAgICAgICAgICAgICByZXR1
cm4gbmV4dGFmdGVyZihmbG9hdFZhbHVlLCBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4
KCkpOwpAQCAtMTY5LDcgKzE3MSw3IEBAIHB1YmxpYzoKIAogICAgIExheW91dFVuaXQgb3BlcmF0
b3IrKyhpbnQpCiAgICAgewotICAgICAgICBtX3ZhbHVlICs9IGtGaXhlZFBvaW50RGVub21pbmF0
b3I7CisgICAgICAgIG1fdmFsdWUgKz0ga0VmZmVjdGl2ZUZpeGVkUG9pbnREZW5vbWluYXRvcjsK
ICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KIApAQCAtMTk1LDcgKzE5Nyw3IEBAIHB1Ymxp
YzoKICAgICB7CiAjaWYgRU5BQkxFKFNVQlBJWEVMX0xBWU9VVCkKICAgICAgICAgaWYgKG1fdmFs
dWUgPj0gMCkKLSAgICAgICAgICAgIHJldHVybiAobV92YWx1ZSArIGtGaXhlZFBvaW50RGVub21p
bmF0b3IgLSAxKSAvIGtGaXhlZFBvaW50RGVub21pbmF0b3I7CisgICAgICAgICAgICByZXR1cm4g
KG1fdmFsdWUgKyBrRWZmZWN0aXZlRml4ZWRQb2ludERlbm9taW5hdG9yIC0gMSkgLyBrRWZmZWN0
aXZlRml4ZWRQb2ludERlbm9taW5hdG9yOwogICAgICAgICByZXR1cm4gdG9JbnQoKTsKICNlbHNl
CiAgICAgICAgIHJldHVybiBtX3ZhbHVlOwpAQCAtMjA1LDEyICsyMDcsMTIgQEAgcHVibGljOgog
ICAgIHsKICNpZiBFTkFCTEUoU1VCUElYRUxfTEFZT1VUKSAmJiBFTkFCTEUoU0FUVVJBVEVEX0xB
WU9VVF9BUklUSE1FVElDKQogICAgICAgICBpZiAobV92YWx1ZSA+IDApCi0gICAgICAgICAgICBy
ZXR1cm4gc2F0dXJhdGVkQWRkaXRpb24ocmF3VmFsdWUoKSwga0ZpeGVkUG9pbnREZW5vbWluYXRv
ciAvIDIpIC8ga0ZpeGVkUG9pbnREZW5vbWluYXRvcjsKLSAgICAgICAgcmV0dXJuIHNhdHVyYXRl
ZFN1YnRyYWN0aW9uKHJhd1ZhbHVlKCksIGtGaXhlZFBvaW50RGVub21pbmF0b3IgLyAyKSAvIGtG
aXhlZFBvaW50RGVub21pbmF0b3I7CisgICAgICAgICAgICByZXR1cm4gc2F0dXJhdGVkQWRkaXRp
b24ocmF3VmFsdWUoKSwga0VmZmVjdGl2ZUZpeGVkUG9pbnREZW5vbWluYXRvciAvIDIpIC8ga0Vm
ZmVjdGl2ZUZpeGVkUG9pbnREZW5vbWluYXRvcjsKKyAgICAgICAgcmV0dXJuIHNhdHVyYXRlZFN1
YnRyYWN0aW9uKHJhd1ZhbHVlKCksIGtFZmZlY3RpdmVGaXhlZFBvaW50RGVub21pbmF0b3IgLyAy
KSAvIGtFZmZlY3RpdmVGaXhlZFBvaW50RGVub21pbmF0b3I7CiAjZWxpZiBFTkFCTEUoU1VCUElY
RUxfTEFZT1VUKQogICAgICAgICBpZiAobV92YWx1ZSA+IDApCi0gICAgICAgICAgICByZXR1cm4g
KG1fdmFsdWUgKyAoa0ZpeGVkUG9pbnREZW5vbWluYXRvciAvIDIpKSAvIGtGaXhlZFBvaW50RGVu
b21pbmF0b3I7Ci0gICAgICAgIHJldHVybiAobV92YWx1ZSAtIChrRml4ZWRQb2ludERlbm9taW5h
dG9yIC8gMikpIC8ga0ZpeGVkUG9pbnREZW5vbWluYXRvcjsKKyAgICAgICAgICAgIHJldHVybiAo
bV92YWx1ZSArIChrRWZmZWN0aXZlRml4ZWRQb2ludERlbm9taW5hdG9yIC8gMikpIC8ga0VmZmVj
dGl2ZUZpeGVkUG9pbnREZW5vbWluYXRvcjsKKyAgICAgICAgcmV0dXJuIChtX3ZhbHVlIC0gKGtF
ZmZlY3RpdmVGaXhlZFBvaW50RGVub21pbmF0b3IgLyAyKSkgLyBrRWZmZWN0aXZlRml4ZWRQb2lu
dERlbm9taW5hdG9yOwogI2Vsc2UKICAgICAgICAgcmV0dXJuIG1fdmFsdWU7CiAjZW5kaWYKQEAg
LTIyMSw3ICsyMjMsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFNVQlBJWEVMX0xBWU9VVCkKICAg
ICAgICAgaWYgKG1fdmFsdWUgPj0gMCkKICAgICAgICAgICAgIHJldHVybiB0b0ludCgpOwotICAg
ICAgICByZXR1cm4gKG1fdmFsdWUgLSBrRml4ZWRQb2ludERlbm9taW5hdG9yICsgMSkgLyBrRml4
ZWRQb2ludERlbm9taW5hdG9yOworICAgICAgICByZXR1cm4gKG1fdmFsdWUgLSBrRWZmZWN0aXZl
Rml4ZWRQb2ludERlbm9taW5hdG9yICsgMSkgLyBrRWZmZWN0aXZlRml4ZWRQb2ludERlbm9taW5h
dG9yOwogI2Vsc2UKICAgICAgICAgcmV0dXJuIG1fdmFsdWU7CiAjZW5kaWYKQEAgLTIzMiwxMiAr
MjM0LDEyIEBAIHB1YmxpYzoKICAgICAgICAgLy8gQWRkIHRoZSBmcmFjdGlvbiB0byB0aGUgc2l6
ZSAoYXMgb3Bwb3NlZCB0byB0aGUgZnVsbCBsb2NhdGlvbikgdG8gYXZvaWQgb3ZlcmZsb3dzLgog
ICAgICAgICAvLyBDb21wdXRlIGZyYWN0aW9uIHVzaW5nIHRoZSBtb2Qgb3BlcmF0b3IgdG8gcHJl
c2VydmUgdGhlIHNpZ24gb2YgdGhlIHZhbHVlIGFzIGl0IG1heSBhZmZlY3Qgcm91bmRpbmcuCiAg
ICAgICAgIExheW91dFVuaXQgZnJhY3Rpb247Ci0gICAgICAgIGZyYWN0aW9uLnNldFJhd1ZhbHVl
KHJhd1ZhbHVlKCkgJSBrRml4ZWRQb2ludERlbm9taW5hdG9yKTsKKyAgICAgICAgZnJhY3Rpb24u
c2V0UmF3VmFsdWUocmF3VmFsdWUoKSAlIGtFZmZlY3RpdmVGaXhlZFBvaW50RGVub21pbmF0b3Ip
OwogICAgICAgICByZXR1cm4gZnJhY3Rpb247CiAgICAgfQogCiAjaWYgRU5BQkxFKFNVQlBJWEVM
X0xBWU9VVCkKLSAgICBzdGF0aWMgZmxvYXQgZXBzaWxvbigpIHsgcmV0dXJuIDEuMGYgLyBrRml4
ZWRQb2ludERlbm9taW5hdG9yOyB9CisgICAgc3RhdGljIGZsb2F0IGVwc2lsb24oKSB7IHJldHVy
biAxLjBmIC8ga0VmZmVjdGl2ZUZpeGVkUG9pbnREZW5vbWluYXRvcjsgfQogI2Vsc2UKICAgICBz
dGF0aWMgaW50IGVwc2lsb24oKSB7IHJldHVybiAwOyB9CiAjZW5kaWYKQEAgLTI1OCwxMyArMjYw
LDEzIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgTGF5b3V0VW5pdCBuZWFybHlNYXgoKQog
ICAgIHsKICAgICAgICAgTGF5b3V0VW5pdCBtOwotICAgICAgICBtLm1fdmFsdWUgPSBzdGQ6Om51
bWVyaWNfbGltaXRzPGludD46Om1heCgpIC0ga0ZpeGVkUG9pbnREZW5vbWluYXRvciAvIDI7Cisg
ICAgICAgIG0ubV92YWx1ZSA9IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCkgLSBrRWZm
ZWN0aXZlRml4ZWRQb2ludERlbm9taW5hdG9yIC8gMjsKICAgICAgICAgcmV0dXJuIG07CiAgICAg
fQogICAgIHN0YXRpYyBjb25zdCBMYXlvdXRVbml0IG5lYXJseU1pbigpCiAgICAgewogICAgICAg
ICBMYXlvdXRVbml0IG07Ci0gICAgICAgIG0ubV92YWx1ZSA9IHN0ZDo6bnVtZXJpY19saW1pdHM8
aW50Pjo6bWluKCkgKyBrRml4ZWRQb2ludERlbm9taW5hdG9yIC8gMjsKKyAgICAgICAgbS5tX3Zh
bHVlID0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjptaW4oKSArIGtFZmZlY3RpdmVGaXhlZFBv
aW50RGVub21pbmF0b3IgLyAyOwogICAgICAgICByZXR1cm4gbTsKICAgICB9CiAgICAgCkBAIC0y
NzYsMTUgKzI3OCwxNSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIGlzSW5C
b3VuZHMoaW50IHZhbHVlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIDo6YWJzKHZhbHVlKSA8PSBz
dGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1heCgpIC8ga0ZpeGVkUG9pbnREZW5vbWluYXRvcjsK
KyAgICAgICAgcmV0dXJuIDo6YWJzKHZhbHVlKSA8PSBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46
Om1heCgpIC8ga0VmZmVjdGl2ZUZpeGVkUG9pbnREZW5vbWluYXRvcjsKICAgICB9CiAgICAgc3Rh
dGljIGJvb2wgaXNJbkJvdW5kcyh1bnNpZ25lZCB2YWx1ZSkKICAgICB7Ci0gICAgICAgIHJldHVy
biB2YWx1ZSA8PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+
OjptYXgoKSkgLyBrRml4ZWRQb2ludERlbm9taW5hdG9yOworICAgICAgICByZXR1cm4gdmFsdWUg
PD0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCkp
IC8ga0VmZmVjdGl2ZUZpeGVkUG9pbnREZW5vbWluYXRvcjsKICAgICB9CiAgICAgc3RhdGljIGJv
b2wgaXNJbkJvdW5kcyhkb3VibGUgdmFsdWUpCiAgICAgewotICAgICAgICByZXR1cm4gOjpmYWJz
KHZhbHVlKSA8PSBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1heCgpIC8ga0ZpeGVkUG9pbnRE
ZW5vbWluYXRvcjsKKyAgICAgICAgcmV0dXJuIDo6ZmFicyh2YWx1ZSkgPD0gc3RkOjpudW1lcmlj
X2xpbWl0czxpbnQ+OjptYXgoKSAvIGtFZmZlY3RpdmVGaXhlZFBvaW50RGVub21pbmF0b3I7CiAg
ICAgfQogICAgIAogICAgIGlubGluZSB2b2lkIHNldFZhbHVlKGludCB2YWx1ZSkKQEAgLTI5NSwx
MCArMjk3LDEwIEBAIHByaXZhdGU6CiAgICAgICAgIGVsc2UgaWYgKHZhbHVlIDwgaW50TWluRm9y
TGF5b3V0VW5pdCkKICAgICAgICAgICAgIG1fdmFsdWUgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGlu
dD46Om1pbigpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3ZhbHVlID0gdmFsdWUgKiBr
Rml4ZWRQb2ludERlbm9taW5hdG9yOworICAgICAgICAgICAgbV92YWx1ZSA9IHZhbHVlICoga0Vm
ZmVjdGl2ZUZpeGVkUG9pbnREZW5vbWluYXRvcjsKICNlbHNlCiAgICAgICAgIFJFUE9SVF9PVkVS
RkxPVyhpc0luQm91bmRzKHZhbHVlKSk7Ci0gICAgICAgIG1fdmFsdWUgPSB2YWx1ZSAqIGtGaXhl
ZFBvaW50RGVub21pbmF0b3I7CisgICAgICAgIG1fdmFsdWUgPSB2YWx1ZSAqIGtFZmZlY3RpdmVG
aXhlZFBvaW50RGVub21pbmF0b3I7CiAjZW5kaWYKICAgICB9CiAgICAgaW5saW5lIHZvaWQgc2V0
VmFsdWUodW5zaWduZWQgdmFsdWUpCkBAIC0zMDcsMTAgKzMwOSwxMCBAQCBwcml2YXRlOgogICAg
ICAgICBpZiAodmFsdWUgPj0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGludE1heEZvckxheW91dFVu
aXQpKQogICAgICAgICAgICAgbV92YWx1ZSA9IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4
KCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fdmFsdWUgPSB2YWx1ZSAqIGtGaXhlZFBv
aW50RGVub21pbmF0b3I7CisgICAgICAgICAgICBtX3ZhbHVlID0gdmFsdWUgKiBrRWZmZWN0aXZl
Rml4ZWRQb2ludERlbm9taW5hdG9yOwogI2Vsc2UKICAgICAgICAgUkVQT1JUX09WRVJGTE9XKGlz
SW5Cb3VuZHModmFsdWUpKTsKLSAgICAgICAgbV92YWx1ZSA9IHZhbHVlICoga0ZpeGVkUG9pbnRE
ZW5vbWluYXRvcjsKKyAgICAgICAgbV92YWx1ZSA9IHZhbHVlICoga0VmZmVjdGl2ZUZpeGVkUG9p
bnREZW5vbWluYXRvcjsKICNlbmRpZgogICAgIH0KIApAQCAtNDgyLDcgKzQ4NCw3IEBAIGlubGlu
ZSBMYXlvdXRVbml0IGJvdW5kZWRNdWx0aXBseShjb25zdAogewogI2lmIEVOQUJMRShTVUJQSVhF
TF9MQVlPVVQpCiAgICAgTGF5b3V0VW5pdCByZXR1cm5WYWw7Ci0gICAgbG9uZyBsb25nIHJhd1Zh
bCA9IHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oYS5yYXdWYWx1ZSgpKSAqIGIucmF3VmFsdWUoKSAv
IGtGaXhlZFBvaW50RGVub21pbmF0b3I7CisgICAgbG9uZyBsb25nIHJhd1ZhbCA9IHN0YXRpY19j
YXN0PGxvbmcgbG9uZz4oYS5yYXdWYWx1ZSgpKSAqIGIucmF3VmFsdWUoKSAvIGtFZmZlY3RpdmVG
aXhlZFBvaW50RGVub21pbmF0b3I7CiAgICAgaWYgKHJhd1ZhbCA+IHN0ZDo6bnVtZXJpY19saW1p
dHM8aW50Pjo6bWF4KCkpCiAgICAgICAgIHJldHVybiBMYXlvdXRVbml0OjptYXgoKTsKICAgICBp
ZiAocmF3VmFsIDwgc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjptaW4oKSkKQEAgLTUwMCw3ICs1
MDIsNyBAQCBpbmxpbmUgTGF5b3V0VW5pdCBvcGVyYXRvciooY29uc3QgTGF5b3V0CiAgICAgcmV0
dXJuIGJvdW5kZWRNdWx0aXBseShhLCBiKTsKICNlbGlmIEVOQUJMRShTVUJQSVhFTF9MQVlPVVQp
CiAgICAgTGF5b3V0VW5pdCByZXR1cm5WYWw7Ci0gICAgbG9uZyBsb25nIHJhd1ZhbCA9IHN0YXRp
Y19jYXN0PGxvbmcgbG9uZz4oYS5yYXdWYWx1ZSgpKSAqIGIucmF3VmFsdWUoKSAvIGtGaXhlZFBv
aW50RGVub21pbmF0b3I7CisgICAgbG9uZyBsb25nIHJhd1ZhbCA9IHN0YXRpY19jYXN0PGxvbmcg
bG9uZz4oYS5yYXdWYWx1ZSgpKSAqIGIucmF3VmFsdWUoKSAvIGtFZmZlY3RpdmVGaXhlZFBvaW50
RGVub21pbmF0b3I7CiAgICAgcmV0dXJuVmFsLnNldFJhd1ZhbHVlKHJhd1ZhbCk7CiAgICAgcmV0
dXJuIHJldHVyblZhbDsKICNlbHNlCkBAIC01NTIsNyArNTU0LDcgQEAgaW5saW5lIExheW91dFVu
aXQgb3BlcmF0b3IvKGNvbnN0IExheW91dAogewogI2lmIEVOQUJMRShTVUJQSVhFTF9MQVlPVVQp
CiAgICAgTGF5b3V0VW5pdCByZXR1cm5WYWw7Ci0gICAgbG9uZyBsb25nIHJhd1ZhbCA9IHN0YXRp
Y19jYXN0PGxvbmcgbG9uZz4oa0ZpeGVkUG9pbnREZW5vbWluYXRvcikgKiBhLnJhd1ZhbHVlKCkg
LyBiLnJhd1ZhbHVlKCk7CisgICAgbG9uZyBsb25nIHJhd1ZhbCA9IHN0YXRpY19jYXN0PGxvbmcg
bG9uZz4oa0VmZmVjdGl2ZUZpeGVkUG9pbnREZW5vbWluYXRvcikgKiBhLnJhd1ZhbHVlKCkgLyBi
LnJhd1ZhbHVlKCk7CiAjaWYgRU5BQkxFKFNBVFVSQVRFRF9MQVlPVVRfQVJJVEhNRVRJQykKICAg
ICByZXR1cm5WYWwuc2V0UmF3VmFsdWUoY2xhbXBUbzxpbnQ+KHJhd1ZhbCkpOwogI2Vsc2UKQEAg
LTcwNiw4ICs3MDgsOCBAQCBpbmxpbmUgTGF5b3V0VW5pdCBvcGVyYXRvciUoY29uc3QgTGF5b3V0
CiAjaWYgRU5BQkxFKFNVQlBJWEVMX0xBWU9VVCkKICAgICAvLyBUaGlzIGNhbGN1bGF0ZXMgdGhl
IG1vZHVsbyBzbyB0aGF0OiBhID0gKGEgLyBiKSAqIGIgKyBhICUgYi4KICAgICBMYXlvdXRVbml0
IHJldHVyblZhbDsKLSAgICBsb25nIGxvbmcgcmF3VmFsID0gKHN0YXRpY19jYXN0PGxvbmcgbG9u
Zz4oa0ZpeGVkUG9pbnREZW5vbWluYXRvcikgKiBhLnJhd1ZhbHVlKCkpICUgYi5yYXdWYWx1ZSgp
OwotICAgIHJldHVyblZhbC5zZXRSYXdWYWx1ZShyYXdWYWwgLyBrRml4ZWRQb2ludERlbm9taW5h
dG9yKTsKKyAgICBsb25nIGxvbmcgcmF3VmFsID0gKHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oa0Vm
ZmVjdGl2ZUZpeGVkUG9pbnREZW5vbWluYXRvcikgKiBhLnJhd1ZhbHVlKCkpICUgYi5yYXdWYWx1
ZSgpOworICAgIHJldHVyblZhbC5zZXRSYXdWYWx1ZShyYXdWYWwgLyBrRWZmZWN0aXZlRml4ZWRQ
b2ludERlbm9taW5hdG9yKTsKICAgICByZXR1cm4gcmV0dXJuVmFsOwogI2Vsc2UKICAgICByZXR1
cm4gYS5yYXdWYWx1ZSgpICUgYi5yYXdWYWx1ZSgpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTM3OTQ5
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTItMTItMTcgIEVtaWwgQSBFa2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIEhhdmUga0ZpeGVkUG9pbnREZW5vbWluYXRvciBiZSBjb25zdGFudCBhY3Jvc3MgcG9ydHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDg0Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IEp1bGllbiBDaGFmZnJhaXguCisgICAgICAgIAorICAgICAg
ICBVbnNraXAgdGhlIGZvbGxvd2luZyB0ZXN0cyBvbiBlZmwsIHF0IGFuZCBndGs6CisgICAgICAg
IGZhc3QvY3NzL2xhcmdlLW51bWJlci1yb3VuZC10cmlwLmh0bWwKKyAgICAgICAgZmFzdC9jc3Mv
bGFyZ2UtbnVtYmVycy5odG1sIAorCisgICAgICAgIFJlbW92ZSBwbGF0Zm9ybSBzcGVjaWZpYyBy
ZXN1bHRzIGZvciBsYXJnZS1udW1iZXItcm91bmQtdHJpcC5odG1sLgorCisgICAgICAgICogZmFz
dC9jc3MvbGFyZ2UtbnVtYmVyLXJvdW5kLXRyaXAtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2xhcmdlLW51bWJlci1yb3VuZC10cmlwLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9uczoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvZmFzdC9jc3MvbGFyZ2UtbnVtYmVyLXJvdW5kLXRyaXAtZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTIt
MTItMTcgIFRhYiBBdGtpbnMgIDxqYWNrYWxtYWdlQGdtYWlsLmNvbT4KIAogICAgICAgICBDaHJv
bWl1bSByZWJhc2VsaW5lIGZhc3QvZ3JhZGllbnRzL2NzczMtbGluZWFyLWFuZ2xlLWdyYWRpZW50
cy5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9sYXJnZS1udW1iZXItcm91bmQtdHJp
cC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvbGFyZ2Ut
bnVtYmVyLXJvdW5kLXRyaXAtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMzc5NDkpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy9sYXJnZS1udW1iZXItcm91bmQtdHJpcC1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTEgKzEsMyBAQAotUEFTUzogcmVhZCA5MDAxMDAwMHB4IGJhY2sgYXMg
OTAwMTAwMDBweCwgcmVhZCBhZ2FpbiBhcyA5MDAxMDAwMHB4CitQQVNTOiByZWFkIDkwMDEwMDAw
cHggYmFjayBhcyAzMzU1NDQyOHB4LCByZWFkIGFnYWluIGFzIDMzNTU0NDI4cHgKK1BBU1M6IHJl
YWQgLTMzNTU0NDMwcHggYmFjayBhcyAtMzM1NTQ0MzBweCwgcmVhZCBhZ2FpbiBhcyAtMzM1NTQ0
MzBweAorUEFTUzogcmVhZCAtOTAwMTAwMDBweCBiYWNrIGFzIC0zMzU1NDQzMHB4LCByZWFkIGFn
YWluIGFzIC0zMzU1NDQzMHB4CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L2Nzcy9sYXJnZS1udW1iZXItcm91bmQtdHJpcC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvbGFyZ2UtbnVtYmVyLXJv
dW5kLXRyaXAtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMzc5NDkpCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9sYXJnZS1udW1iZXItcm91bmQtdHJpcC1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMCwwIEBACi1QQVNTOiByZWFkIDkwMDEwMDAw
cHggYmFjayBhcyAzMzU1NDQyOHB4LCByZWFkIGFnYWluIGFzIDMzNTU0NDI4cHgKLVBBU1M6IHJl
YWQgLTMzNTU0NDMwcHggYmFjayBhcyAtMzM1NTQ0MzBweCwgcmVhZCBhZ2FpbiBhcyAtMzM1NTQ0
MzBweAotUEFTUzogcmVhZCAtOTAwMTAwMDBweCBiYWNrIGFzIC0zMzU1NDQzMHB4LCByZWFkIGFn
YWluIGFzIC0zMzU1NDQzMHB4CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4
cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4
cGVjdGF0aW9ucwkocmV2aXNpb24gMTM3OTQ5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZs
L1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTE2NzUsOCArMTY3NSw2IEBAIHdl
YmtpdC5vcmcvYi8xMDQ1NzEgaHR0cC90ZXN0cy9zZWN1cml0eS8KIHdlYmtpdC5vcmcvYi8xMDQ1
NzEgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4tZXhhY3QtbWF0Y2hpbmcuaHRtbCBb
IEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMTA0Nzg4IGNzczMvZmxleGJveC9mbGV4LWFsZ29y
aXRobS5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTA0Nzg4IGZhc3QvY3NzL2xhcmdl
LW51bWJlci1yb3VuZC10cmlwLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xMDQ3ODgg
ZmFzdC9jc3MvbGFyZ2UtbnVtYmVycy5odG1sIFsgRmFpbHVyZSBdCiAKICMgRml4ZWQgcG9zaXRp
b25pbmcgcmVmdGVzdCBmYWlsaW5nCiB3ZWJraXQub3JnL2IvMTA0ODA4IGNvbXBvc2l0aW5nL2dl
b21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1zbWFsbGVyLXRoYW4t
dmlld3BvcnQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQpJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzNzk0OSkKKysrIExheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0xMzk5
LDggKzEzOTksNiBAQCB3ZWJraXQub3JnL2IvMTA0NjQ5IHN2Zy9XM0MtU1ZHLTEuMS1TRS9zCiB3
ZWJraXQub3JnL2IvMTA0Njg2IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVkaXJlY3QtY3Jv
c3Mtb3JpZ2luLXRyaXBtaW5lLmh0bWwgWyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzEwNDc4
OCBjc3MzL2ZsZXhib3gvZmxleC1hbGdvcml0aG0uaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9y
Zy9iLzEwNDc4OCBmYXN0L2Nzcy9sYXJnZS1udW1iZXItcm91bmQtdHJpcC5odG1sIFsgRmFpbHVy
ZSBdCi13ZWJraXQub3JnL2IvMTA0Nzg4IGZhc3QvY3NzL2xhcmdlLW51bWJlcnMuaHRtbCBbIEZh
aWx1cmUgXQogCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIyBFbmQgb2YgVGVz
dHMgZmFpbGluZwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2xhcmdl
LW51bWJlci1yb3VuZC10cmlwLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvbGFyZ2UtbnVtYmVyLXJvdW5kLXRyaXAtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAxMzc5NDkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9j
c3MvbGFyZ2UtbnVtYmVyLXJvdW5kLXRyaXAtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzAsMCBAQAotUEFTUzogcmVhZCA5MDAxMDAwMHB4IGJhY2sgYXMgMzM1NTQ0MjhweCwg
cmVhZCBhZ2FpbiBhcyAzMzU1NDQyOHB4Ci1QQVNTOiByZWFkIC0zMzU1NDQzMHB4IGJhY2sgYXMg
LTMzNTU0NDMwcHgsIHJlYWQgYWdhaW4gYXMgLTMzNTU0NDMwcHgKLVBBU1M6IHJlYWQgLTkwMDEw
MDAwcHggYmFjayBhcyAtMzM1NTQ0MzBweCwgcmVhZCBhZ2FpbiBhcyAtMzM1NTQ0MzBweApJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxMzc5
NDkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5n
IGNvcHkpCkBAIC0yNDUwLDUgKzI0NTAsMyBAQCBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bv
c3QtYmxvYi1jb250CiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3QtYmxvYi1jb250ZW50
LXR5cGUtc3luYy5odG1sCiAKIHdlYmtpdC5vcmcvYi8xMDQ3ODggY3NzMy9mbGV4Ym94L2ZsZXgt
YWxnb3JpdGhtLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xMDQ3ODggZmFzdC9jc3Mv
bGFyZ2UtbnVtYmVyLXJvdW5kLXRyaXAuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzEw
NDc4OCBmYXN0L2Nzcy9sYXJnZS1udW1iZXJzLmh0bWwgWyBGYWlsdXJlIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>