<?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>196409</bug_id>
          
          <creation_ts>2019-03-29 15:09:06 -0700</creation_ts>
          <short_desc>Cache bytecode for jsc.cpp helpers and fix CachedStringImpl</short_desc>
          <delta_ts>2019-04-04 08:42:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tadeu Zagallo">tzagallo</reporter>
          <assigned_to name="Tadeu Zagallo">tzagallo</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1522607</commentid>
    <comment_count>0</comment_count>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-03-29 15:09:06 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522610</commentid>
    <comment_count>1</comment_count>
      <attachid>366309</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-03-29 15:11:38 -0700</bug_when>
    <thetext>Created attachment 366309
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522623</commentid>
    <comment_count>2</comment_count>
      <attachid>366309</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-03-29 15:57:13 -0700</bug_when>
    <thetext>Comment on attachment 366309
Patch

This needs a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522628</commentid>
    <comment_count>3</comment_count>
      <attachid>366309</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-03-29 16:00:44 -0700</bug_when>
    <thetext>Comment on attachment 366309
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:18
&gt; +        had different shapes. That was a problem if a StringImpl* was originally cached as a
&gt; +        CachedPtr&lt;CachedStringImpl&gt;, and later if we tried to cache it as CachedPtr&lt;CachedUniquedStringImpl&gt;
&gt; +        we would find a cache entry and store the offset of the already cached CachedStringImpl.
&gt; +        We keep the same behavior, but make CachedStringImpl and CachedUniquedStringImpl share the same shape.

I don&apos;t understand your explanation here. What exactly were we storing that was the problem?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522762</commentid>
    <comment_count>4</comment_count>
      <attachid>366309</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-03-30 01:02:47 -0700</bug_when>
    <thetext>Comment on attachment 366309
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:18
&gt;&gt; +        We keep the same behavior, but make CachedStringImpl and CachedUniquedStringImpl share the same shape.
&gt; 
&gt; I don&apos;t understand your explanation here. What exactly were we storing that was the problem?

Yeah, this explanation got really confusing, I think I&apos;ll just list it as a sequence of steps. The problem is that the encoder keeps a map of pointers to offsets of already cached objects, in order to avoid caching the same object twice. If we have the same pointer being cached as two different cached types, that&apos;s an issue. I&apos;ll update this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522763</commentid>
    <comment_count>5</comment_count>
      <attachid>366362</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-03-30 01:22:19 -0700</bug_when>
    <thetext>Created attachment 366362
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524069</commentid>
    <comment_count>6</comment_count>
      <attachid>366362</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-03 17:17:36 -0700</bug_when>
    <thetext>Comment on attachment 366362
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:30
&gt; +        which has a different shape and we crash.

Thanks for this explanation. It makes sense.

You should also write a sentence on what the fix is.

I wonder though if this shows us a more general bug in our encoding/decoding.

I wonder if we should have a more general solution of type matters when encoding. So even if you have the same pointer twice, then you should encode it twice? Maybe this leads to other issues. It probably does, like if you encode a CodeBlock twice based on its type, that&apos;s probably bad.

But the issue we have now is a base class needs to be aware of its subclasses, which ain&apos;t nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524223</commentid>
    <comment_count>7</comment_count>
      <attachid>366362</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-04-04 07:57:10 -0700</bug_when>
    <thetext>Comment on attachment 366362
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:30
&gt;&gt; +        which has a different shape and we crash.
&gt; 
&gt; Thanks for this explanation. It makes sense.
&gt; 
&gt; You should also write a sentence on what the fix is.
&gt; 
&gt; I wonder though if this shows us a more general bug in our encoding/decoding.
&gt; 
&gt; I wonder if we should have a more general solution of type matters when encoding. So even if you have the same pointer twice, then you should encode it twice? Maybe this leads to other issues. It probably does, like if you encode a CodeBlock twice based on its type, that&apos;s probably bad.
&gt; 
&gt; But the issue we have now is a base class needs to be aware of its subclasses, which ain&apos;t nice.

I&apos;ll add a line about the fix.

I think there are a couple things that should be fixed:
1) we can make UnlinkedStringJumpTable use UniquedStringImpl, this way we don&apos;t have to worry about this specific problem anymore, since that is the only place that uses CachedStringImpl.
2) You are right about the subclasses issue, but I think if we fix 1 there&apos;s no other place where we intentionally rely on that. e.g. I don&apos;t think we encode the same code block as both UnlinkedCodeBlock and as its subclass. In fact, we don&apos;t handle that properly, so I think it&apos;d be interesting to add some validation.

I&apos;ll land this with the update to the ChangeLog and work on these 2 follow-ups.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524224</commentid>
    <comment_count>8</comment_count>
      <attachid>366712</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-04-04 08:01:20 -0700</bug_when>
    <thetext>Created attachment 366712
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524234</commentid>
    <comment_count>9</comment_count>
      <attachid>366712</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-04 08:41:13 -0700</bug_when>
    <thetext>Comment on attachment 366712
Patch for landing

Clearing flags on attachment: 366712

Committed r243869: &lt;https://trac.webkit.org/changeset/243869&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524235</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-04 08:41:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524237</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-04-04 08:42:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/49608083&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366309</attachid>
            <date>2019-03-29 15:11:38 -0700</date>
            <delta_ts>2019-03-30 01:22:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196409-20190329231135.patch</filename>
            <type>text/plain</type>
            <size>10161</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNjQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NDFiNTk2YThiODgxZGZmMDAxM2NjYjYzMmNmMTU1MGZjMjQwYmE3Li5lN2RlNTY0NzI4NjJjNjRj
NDVmYTJjMGU1MDgyZjAwMWRiYzUyYTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOSBAQAorMjAxOS0wMy0yOSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBDYWNoZSBieXRlY29kZSBmb3IganNjLmNwcCBoZWxwZXJzIGFuZCBmaXgg
Q2FjaGVkU3RyaW5nSW1wbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk2NDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU29tZSBvZiB0aGUgaGVscGVycyBpbiBqc2MuY3BwLCBzdWNoIGFzIGBmdW5jdGlv
blJ1blN0cmluZ2AsIHdlcmUgc3RsbCB1c2luZworICAgICAgICB1c2luZyBgbWFrZVNvdXJjZWAg
aW5zdGVhZCBvZiBganNjU291cmNlYCwgd2hpY2ggZG9lcyBub3QgdXNlIHRoZSBTaGVsbFNvdXJj
ZVByb3ZpZGVyCisgICAgICAgIGFuZCB0aGVyZWZvcmUgZG9lcyBub3Qgd3JpdGUgdGhlIGJ5dGVj
b2RlIGNhY2hlIHRvIGRpc2suCisKKyAgICAgICAgQ2hhbmdpbmcgdGhhdCByZXZlYWxlZCBhIGJ1
ZyBpbiBieXRlY29kZSBjYWNoZS4gRHVyaW5nIGVuY29kaW5nLCB3ZSBoYXNoIGNvbnMKKyAgICAg
ICAgdGhlIHBvaW50ZXJzIGJlaW5nIGVuY29kZWQgYXMgQ2FjaGVkUHRyLiBgU3RyaW5nSW1wbCpg
cyB3ZXJlIGJlaW5nIGNhY2hlZCBhcyBib3RoCisgICAgICAgIENhY2hlZFB0cjxDYWNoZWRTdHJp
bmdJbXBsPiBhbmQgQ2FjaGVkUHRyPENhY2hlZFVuaXF1ZWRTdHJpbmdJbXBsPiwgYW5kIGJvdGgg
Y2xhc3NlcworICAgICAgICBoYWQgZGlmZmVyZW50IHNoYXBlcy4gVGhhdCB3YXMgYSBwcm9ibGVt
IGlmIGEgU3RyaW5nSW1wbCogd2FzIG9yaWdpbmFsbHkgY2FjaGVkIGFzIGEKKyAgICAgICAgQ2Fj
aGVkUHRyPENhY2hlZFN0cmluZ0ltcGw+LCBhbmQgbGF0ZXIgaWYgd2UgdHJpZWQgdG8gY2FjaGUg
aXQgYXMgQ2FjaGVkUHRyPENhY2hlZFVuaXF1ZWRTdHJpbmdJbXBsPgorICAgICAgICB3ZSB3b3Vs
ZCBmaW5kIGEgY2FjaGUgZW50cnkgYW5kIHN0b3JlIHRoZSBvZmZzZXQgb2YgdGhlIGFscmVhZHkg
Y2FjaGVkIENhY2hlZFN0cmluZ0ltcGwuCisgICAgICAgIFdlIGtlZXAgdGhlIHNhbWUgYmVoYXZp
b3IsIGJ1dCBtYWtlIENhY2hlZFN0cmluZ0ltcGwgYW5kIENhY2hlZFVuaXF1ZWRTdHJpbmdJbXBs
IHNoYXJlIHRoZSBzYW1lIHNoYXBlLgorCisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKGZ1
bmN0aW9uUnVuU3RyaW5nKToKKyAgICAgICAgKGZ1bmN0aW9uTG9hZFN0cmluZyk6CisgICAgICAg
IChmdW5jdGlvbkRvbGxhckFnZW50U3RhcnQpOgorICAgICAgICAoZnVuY3Rpb25DaGVja01vZHVs
ZVN5bnRheCk6CisgICAgICAgIChydW5JbnRlcmFjdGl2ZSk6CisgICAgICAgICogcnVudGltZS9D
YWNoZWRUeXBlcy5jcHA6CisgICAgICAgIChKU0M6OkNhY2hlZFVuaXF1ZWRTdHJpbmdJbXBsQmFz
ZTo6ZGVjb2RlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6Q2FjaGVkRnVuY3Rpb25FeGVjdXRhYmxl
OjpyYXJlRGF0YSBjb25zdCk6CisgICAgICAgIChKU0M6OkNhY2hlZENvZGVCbG9jazo6cmFyZURh
dGEgY29uc3QpOgorICAgICAgICAoSlNDOjpDYWNoZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmVuY29k
ZSk6CisgICAgICAgIChKU0M6OkNhY2hlZENvZGVCbG9jazxDb2RlQmxvY2tUeXBlPjo6ZW5jb2Rl
KToKKyAgICAgICAgKEpTQzo6Q2FjaGVkVW5pcXVlZFN0cmluZ0ltcGw6OmVuY29kZSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkNhY2hlZFVuaXF1ZWRTdHJpbmdJbXBsOjpkZWNvZGUgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpDYWNoZWRTdHJpbmdJbXBsOjplbmNvZGUpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpDYWNoZWRTdHJpbmdJbXBsOjpkZWNvZGUgY29uc3QpOiBEZWxl
dGVkLgorCiAyMDE5LTAzLTI5ICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4K
IAogICAgICAgICBJbXBsZW1lbnQgUmVzaXplT2JzZXJ2ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmlu
ZGV4IDZmZDFmNmEyMmQ1N2YzMTZmZWY4MjNiMGQ1ZDkzMTk0MTczMjYwMDIuLjYzMzY2NDIwZmFm
OTk5ODJhZjc4Zjg0YzlmMGZlYzU5YWFhMmRkOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC0x
NDU5LDcgKzE0NTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUnVu
U3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgdm0sIElkZW50aWZpZXI6OmZyb21TdHJp
bmcoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksICJhcmd1bWVudHMiKSwgYXJyYXkpOwogCiAg
ICAgTmFrZWRQdHI8RXhjZXB0aW9uPiBleGNlcHRpb247Ci0gICAgZXZhbHVhdGUoZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxFeGVjKCksIG1ha2VTb3VyY2Uoc291cmNlLCBleGVjLT5jYWxsZXJTb3VyY2VP
cmlnaW4oKSksIEpTVmFsdWUoKSwgZXhjZXB0aW9uKTsKKyAgICBldmFsdWF0ZShnbG9iYWxPYmpl
Y3QtPmdsb2JhbEV4ZWMoKSwganNjU291cmNlKHNvdXJjZSwgZXhlYy0+Y2FsbGVyU291cmNlT3Jp
Z2luKCkpLCBKU1ZhbHVlKCksIGV4Y2VwdGlvbik7CiAKICAgICBpZiAoZXhjZXB0aW9uKSB7CiAg
ICAgICAgIHNjb3BlLnRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCBl
eGNlcHRpb24pOwpAQCAtMTQ5OSw3ICsxNDk5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbkxvYWRTdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogICAgIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7CiAKICAgICBO
YWtlZFB0cjxFeGNlcHRpb24+IGV2YWx1YXRpb25FeGNlcHRpb247Ci0gICAgSlNWYWx1ZSByZXN1
bHQgPSBldmFsdWF0ZShnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgbWFrZVNvdXJjZShzb3Vy
Y2VDb2RlLCBleGVjLT5jYWxsZXJTb3VyY2VPcmlnaW4oKSksIEpTVmFsdWUoKSwgZXZhbHVhdGlv
bkV4Y2VwdGlvbik7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBldmFsdWF0ZShnbG9iYWxPYmplY3Qt
Pmdsb2JhbEV4ZWMoKSwganNjU291cmNlKHNvdXJjZUNvZGUsIGV4ZWMtPmNhbGxlclNvdXJjZU9y
aWdpbigpKSwgSlNWYWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0aW9uKTsKICAgICBpZiAoZXZhbHVh
dGlvbkV4Y2VwdGlvbikKICAgICAgICAgdGhyb3dFeGNlcHRpb24oZXhlYywgc2NvcGUsIGV2YWx1
YXRpb25FeGNlcHRpb24pOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKQEAg
LTE4NDMsNyArMTg0Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25E
b2xsYXJBZ2VudFN0YXJ0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgIE5ha2VkUHRyPEV4Y2VwdGlvbj4gZXZhbHVhdGlvbkV4Y2VwdGlv
bjsKICAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZSByZXN1bHQ7Ci0gICAgICAgICAgICAgICAg
ICAgIHJlc3VsdCA9IGV2YWx1YXRlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCBtYWtlU291
cmNlKHNvdXJjZUNvZGUsIFNvdXJjZU9yaWdpbigid29ya2VyIl9zKSksIEpTVmFsdWUoKSwgZXZh
bHVhdGlvbkV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGV2YWx1YXRl
KGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCBqc2NTb3VyY2Uoc291cmNlQ29kZSwgU291cmNl
T3JpZ2luKCJ3b3JrZXIiX3MpKSwgSlNWYWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0aW9uKTsKICAg
ICAgICAgICAgICAgICAgICAgaWYgKGV2YWx1YXRpb25FeGNlcHRpb24pCiAgICAgICAgICAgICAg
ICAgICAgICAgICByZXN1bHQgPSBldmFsdWF0aW9uRXhjZXB0aW9uLT52YWx1ZSgpOwogICAgICAg
ICAgICAgICAgICAgICBjaGVja0V4Y2VwdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwg
Z2xvYmFsT2JqZWN0LCB0cnVlLCBldmFsdWF0aW9uRXhjZXB0aW9uLCByZXN1bHQsIGNvbW1hbmRM
aW5lLCBzdWNjZXNzKTsKQEAgLTIxODUsNyArMjE4NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25DaGVja01vZHVsZVN5bnRheChFeGVjU3RhdGUqIGV4ZWMpCiAgICAg
c3RvcFdhdGNoLnN0YXJ0KCk7CiAKICAgICBQYXJzZXJFcnJvciBlcnJvcjsKLSAgICBib29sIHZh
bGlkU3ludGF4ID0gY2hlY2tNb2R1bGVTeW50YXgoZXhlYywgbWFrZVNvdXJjZShzb3VyY2UsIHsg
fSwgVVJMKCksIFRleHRQb3NpdGlvbigpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVs
ZSksIGVycm9yKTsKKyAgICBib29sIHZhbGlkU3ludGF4ID0gY2hlY2tNb2R1bGVTeW50YXgoZXhl
YywganNjU291cmNlKHNvdXJjZSwgeyB9LCBVUkwoKSwgVGV4dFBvc2l0aW9uKCksIFNvdXJjZVBy
b3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlKSwgZXJyb3IpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIHN0b3BXYXRjaC5zdG9wKCk7CiAKQEAg
LTI2MjQsNyArMjYyNCw3IEBAIHN0YXRpYyB2b2lkIHJ1bkludGVyYWN0aXZlKEdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgc291
cmNlID0gc291cmNlICsgU3RyaW5nOjpmcm9tVVRGOChsaW5lKTsKICAgICAgICAgICAgIHNvdXJj
ZSA9IHNvdXJjZSArICdcbic7Ci0gICAgICAgICAgICBjaGVja1N5bnRheCh2bSwgbWFrZVNvdXJj
ZShzb3VyY2UsIHNvdXJjZU9yaWdpbiksIGVycm9yKTsKKyAgICAgICAgICAgIGNoZWNrU3ludGF4
KHZtLCBqc2NTb3VyY2Uoc291cmNlLCBzb3VyY2VPcmlnaW4pLCBlcnJvcik7CiAgICAgICAgICAg
ICBpZiAoIWxpbmVbMF0pIHsKICAgICAgICAgICAgICAgICBmcmVlKGxpbmUpOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwpAQCAtMjY0MCw3ICsyNjQwLDcgQEAgc3RhdGljIHZvaWQgcnVuSW50ZXJh
Y3RpdmUoR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgICAgIAogICAgICAgICAKICAg
ICAgICAgTmFrZWRQdHI8RXhjZXB0aW9uPiBldmFsdWF0aW9uRXhjZXB0aW9uOwotICAgICAgICBK
U1ZhbHVlIHJldHVyblZhbHVlID0gZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCks
IG1ha2VTb3VyY2Uoc291cmNlLCBzb3VyY2VPcmlnaW4pLCBKU1ZhbHVlKCksIGV2YWx1YXRpb25F
eGNlcHRpb24pOworICAgICAgICBKU1ZhbHVlIHJldHVyblZhbHVlID0gZXZhbHVhdGUoZ2xvYmFs
T2JqZWN0LT5nbG9iYWxFeGVjKCksIGpzY1NvdXJjZShzb3VyY2UsIHNvdXJjZU9yaWdpbiksIEpT
VmFsdWUoKSwgZXZhbHVhdGlvbkV4Y2VwdGlvbik7CiAjZWxzZQogICAgICAgICBwcmludGYoIiVz
IiwgaW50ZXJhY3RpdmVQcm9tcHQpOwogICAgICAgICBWZWN0b3I8Y2hhciwgMjU2PiBsaW5lOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVkVHlwZXMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVkVHlwZXMuY3BwCmluZGV4IDA1
ZDgwYmMwMDIxN2Q2OTgzMjY0OWVlNmZhNWYyNmQzYTI4Y2YwYzcuLjI0NzNkZmJkODAyNTg4Zjdl
ZTk5ZDkxYTFjNTA5MjhkZDhiMTlkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NhY2hlZFR5cGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9DYWNoZWRUeXBlcy5jcHAKQEAgLTU3NSw3ICs1NzUsOCBAQCBwcml2YXRlOgogICAgIENh
Y2hlZFZlY3RvcjxDYWNoZWRQYWlyPEtleSwgVmFsdWU+PiBtX2VudHJpZXM7CiB9OwogCi1jbGFz
cyBDYWNoZWRVbmlxdWVkU3RyaW5nSW1wbCA6IHB1YmxpYyBWYXJpYWJsZUxlbmd0aE9iamVjdDxV
bmlxdWVkU3RyaW5nSW1wbD4gewordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIENhY2hlZFVu
aXF1ZWRTdHJpbmdJbXBsQmFzZSA6IHB1YmxpYyBWYXJpYWJsZUxlbmd0aE9iamVjdDxUPiB7CiBw
dWJsaWM6CiAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU3RyaW5nSW1w
bCYgc3RyaW5nKQogICAgIHsKQEAgLTYzMSw4ICs2MzIsOCBAQCBwdWJsaWM6CiAgICAgICAgIH0K
IAogICAgICAgICBpZiAobV9pczhCaXQpCi0gICAgICAgICAgICByZXR1cm4gY3JlYXRlKHRoaXMt
PmJ1ZmZlcjxMQ2hhcj4oKSk7Ci0gICAgICAgIHJldHVybiBjcmVhdGUodGhpcy0+YnVmZmVyPFVD
aGFyPigpKTsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGUodGhpcy0+dGVtcGxhdGUgYnVmZmVy
PExDaGFyPigpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZSh0aGlzLT50ZW1wbGF0ZSBidWZmZXI8
VUNoYXI+KCkpOwogICAgIH0KIAogcHJpdmF0ZToKQEAgLTY0MiwyMSArNjQzLDggQEAgcHJpdmF0
ZToKICAgICB1bnNpZ25lZCBtX2xlbmd0aDsKIH07CiAKLWNsYXNzIENhY2hlZFN0cmluZ0ltcGwg
OiBwdWJsaWMgVmFyaWFibGVMZW5ndGhPYmplY3Q8U3RyaW5nSW1wbD4gewotcHVibGljOgotICAg
IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFN0cmluZ0ltcGwmIGltcGwpCi0g
ICAgewotICAgICAgICBtX3VuaXF1ZWRTdHJpbmdJbXBsLmVuY29kZShlbmNvZGVyLCBpbXBsKTsK
LSAgICB9Ci0KLSAgICBTdHJpbmdJbXBsKiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikgY29uc3QK
LSAgICB7Ci0gICAgICAgIHJldHVybiBtX3VuaXF1ZWRTdHJpbmdJbXBsLmRlY29kZShkZWNvZGVy
KTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgQ2FjaGVkVW5pcXVlZFN0cmluZ0ltcGwgbV91bmlx
dWVkU3RyaW5nSW1wbDsKLX07CitjbGFzcyBDYWNoZWRVbmlxdWVkU3RyaW5nSW1wbCA6IHB1Ymxp
YyBDYWNoZWRVbmlxdWVkU3RyaW5nSW1wbEJhc2U8VW5pcXVlZFN0cmluZ0ltcGw+IHsgfTsKK2Ns
YXNzIENhY2hlZFN0cmluZ0ltcGwgOiBwdWJsaWMgQ2FjaGVkVW5pcXVlZFN0cmluZ0ltcGxCYXNl
PFN0cmluZ0ltcGw+IHsgfTsKIAogY2xhc3MgQ2FjaGVkU3RyaW5nIDogcHVibGljIFZhcmlhYmxl
TGVuZ3RoT2JqZWN0PFN0cmluZz4gewogcHVibGljOgpAQCAtMTU3Miw3ICsxNTYwLDcgQEAgcHVi
bGljOgogICAgIElkZW50aWZpZXIgZWNtYU5hbWUoRGVjb2RlciYgZGVjb2RlcikgY29uc3QgeyBy
ZXR1cm4gbV9lY21hTmFtZS5kZWNvZGUoZGVjb2Rlcik7IH0KICAgICBJZGVudGlmaWVyIGluZmVy
cmVkTmFtZShEZWNvZGVyJiBkZWNvZGVyKSBjb25zdCB7IHJldHVybiBtX2luZmVycmVkTmFtZS5k
ZWNvZGUoZGVjb2Rlcik7IH0KIAotICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpSYXJl
RGF0YSogcmFyZURhdGEoRGVjb2RlciYgZGVjb2RlcikgY29uc3QgeyByZXR1cm4gbV9yYXJlRGF0
YS5kZWNvZGVBc1B0cihkZWNvZGVyKTsgfQorICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxl
OjpSYXJlRGF0YSogcmFyZURhdGEoRGVjb2RlciYgZGVjb2RlcikgY29uc3QgeyByZXR1cm4gbV9y
YXJlRGF0YS5kZWNvZGUoZGVjb2Rlcik7IH0KIAogICAgIGNvbnN0IENhY2hlZFdyaXRlQmFycmll
cjxDYWNoZWRGdW5jdGlvbkNvZGVCbG9jaywgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jaz4mIHVu
bGlua2VkQ29kZUJsb2NrRm9yQ2FsbCgpIGNvbnN0IHsgcmV0dXJuIG1fdW5saW5rZWRDb2RlQmxv
Y2tGb3JDYWxsOyB9CiAgICAgY29uc3QgQ2FjaGVkV3JpdGVCYXJyaWVyPENhY2hlZEZ1bmN0aW9u
Q29kZUJsb2NrLCBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrPiYgdW5saW5rZWRDb2RlQmxvY2tG
b3JDb25zdHJ1Y3QoKSBjb25zdCB7IHJldHVybiBtX3VubGlua2VkQ29kZUJsb2NrRm9yQ29uc3Ry
dWN0OyB9CkBAIC0xNjAyLDcgKzE1OTAsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fc3Vw
ZXJCaW5kaW5nIDogMTsKICAgICB1bnNpZ25lZCBtX2Rlcml2ZWRDb250ZXh0VHlwZTogMjsKIAot
ICAgIENhY2hlZE9wdGlvbmFsPENhY2hlZEZ1bmN0aW9uRXhlY3V0YWJsZVJhcmVEYXRhPiBtX3Jh
cmVEYXRhOworICAgIENhY2hlZFB0cjxDYWNoZWRGdW5jdGlvbkV4ZWN1dGFibGVSYXJlRGF0YT4g
bV9yYXJlRGF0YTsKIAogICAgIENhY2hlZElkZW50aWZpZXIgbV9uYW1lOwogICAgIENhY2hlZElk
ZW50aWZpZXIgbV9lY21hTmFtZTsKQEAgLTE2NTUsNyArMTY0Myw3IEBAIHB1YmxpYzoKICAgICBT
b3VyY2VQYXJzZU1vZGUgcGFyc2VNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9wYXJzZU1vZGU7IH0K
ICAgICB1bnNpZ25lZCBjb2RlVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29kZVR5cGU7IH0KIAot
ICAgIFVubGlua2VkQ29kZUJsb2NrOjpSYXJlRGF0YSogcmFyZURhdGEoRGVjb2RlciYgZGVjb2Rl
cikgY29uc3QgeyByZXR1cm4gbV9yYXJlRGF0YS5kZWNvZGVBc1B0cihkZWNvZGVyKTsgfQorICAg
IFVubGlua2VkQ29kZUJsb2NrOjpSYXJlRGF0YSogcmFyZURhdGEoRGVjb2RlciYgZGVjb2Rlcikg
Y29uc3QgeyByZXR1cm4gbV9yYXJlRGF0YS5kZWNvZGUoZGVjb2Rlcik7IH0KIAogcHJpdmF0ZToK
ICAgICBWaXJ0dWFsUmVnaXN0ZXIgbV90aGlzUmVnaXN0ZXI7CkBAIC0xNjkwLDcgKzE2NzgsNyBA
QCBwcml2YXRlOgogCiAgICAgQ2FjaGVkTWV0YWRhdGFUYWJsZSBtX21ldGFkYXRhOwogCi0gICAg
Q2FjaGVkT3B0aW9uYWw8Q2FjaGVkQ29kZUJsb2NrUmFyZURhdGE+IG1fcmFyZURhdGE7CisgICAg
Q2FjaGVkUHRyPENhY2hlZENvZGVCbG9ja1JhcmVEYXRhPiBtX3JhcmVEYXRhOwogCiAgICAgQ2Fj
aGVkU3RyaW5nIG1fc291cmNlVVJMRGlyZWN0aXZlOwogICAgIENhY2hlZFN0cmluZyBtX3NvdXJj
ZU1hcHBpbmdVUkxEaXJlY3RpdmU7CkBAIC0xOTUzLDcgKzE5NDEsNyBAQCBBTFdBWVNfSU5MSU5F
IHZvaWQgQ2FjaGVkRnVuY3Rpb25FeGVjdXRhYmxlOjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgVW5saQogICAgIG1fc3VwZXJCaW5kaW5nID0gZXhlY3V0YWJsZS5tX3N1cGVyQmluZGlu
ZzsKICAgICBtX2Rlcml2ZWRDb250ZXh0VHlwZSA9IGV4ZWN1dGFibGUubV9kZXJpdmVkQ29udGV4
dFR5cGU7CiAKLSAgICBtX3JhcmVEYXRhLmVuY29kZShlbmNvZGVyLCBleGVjdXRhYmxlLm1fcmFy
ZURhdGEpOworICAgIG1fcmFyZURhdGEuZW5jb2RlKGVuY29kZXIsIGV4ZWN1dGFibGUubV9yYXJl
RGF0YS5nZXQoKSk7CiAKICAgICBtX25hbWUuZW5jb2RlKGVuY29kZXIsIGV4ZWN1dGFibGUubmFt
ZSgpKTsKICAgICBtX2VjbWFOYW1lLmVuY29kZShlbmNvZGVyLCBleGVjdXRhYmxlLmVjbWFOYW1l
KCkpOwpAQCAtMjA1OCw3ICsyMDQ2LDcgQEAgQUxXQVlTX0lOTElORSB2b2lkIENhY2hlZENvZGVC
bG9jazxDb2RlQmxvY2tUeXBlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnMKICAgICAg
ICAgbV9saW5rVGltZUNvbnN0YW50c1tpXSA9IGNvZGVCbG9jay5tX2xpbmtUaW1lQ29uc3RhbnRz
W2ldOwogCiAgICAgbV9tZXRhZGF0YS5lbmNvZGUoZW5jb2RlciwgY29kZUJsb2NrLm1fbWV0YWRh
dGEuZ2V0KCkpOwotICAgIG1fcmFyZURhdGEuZW5jb2RlKGVuY29kZXIsIGNvZGVCbG9jay5tX3Jh
cmVEYXRhKTsKKyAgICBtX3JhcmVEYXRhLmVuY29kZShlbmNvZGVyLCBjb2RlQmxvY2subV9yYXJl
RGF0YS5nZXQoKSk7CiAKICAgICBtX3NvdXJjZVVSTERpcmVjdGl2ZS5lbmNvZGUoZW5jb2Rlciwg
Y29kZUJsb2NrLm1fc291cmNlVVJMRGlyZWN0aXZlLmltcGwoKSk7CiAgICAgbV9zb3VyY2VNYXBw
aW5nVVJMRGlyZWN0aXZlLmVuY29kZShlbmNvZGVyLCBjb2RlQmxvY2subV9zb3VyY2VVUkxEaXJl
Y3RpdmUuaW1wbCgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366362</attachid>
            <date>2019-03-30 01:22:19 -0700</date>
            <delta_ts>2019-04-04 08:01:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196409-20190330092217.patch</filename>
            <type>text/plain</type>
            <size>12614</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNjQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NDFiNTk2YThiODgxZGZmMDAxM2NjYjYzMmNmMTU1MGZjMjQwYmE3Li4wM2NmZTYxNGJjMGM5Zjcw
NWZlMDdiM2JkZjg3MTIzOGM5YzU2YTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MSBAQAorMjAxOS0wMy0zMCAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBDYWNoZSBieXRlY29kZSBmb3IganNjLmNwcCBoZWxwZXJzIGFuZCBmaXgg
Q2FjaGVkU3RyaW5nSW1wbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk2NDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU29tZSBvZiB0aGUgaGVscGVycyBpbiBqc2MuY3BwLCBzdWNoIGFzIGBmdW5jdGlv
blJ1blN0cmluZ2AsIHdlcmUgc3RsbCB1c2luZworICAgICAgICB1c2luZyBgbWFrZVNvdXJjZWAg
aW5zdGVhZCBvZiBganNjU291cmNlYCwgd2hpY2ggZG9lcyBub3QgdXNlIHRoZSBTaGVsbFNvdXJj
ZVByb3ZpZGVyCisgICAgICAgIGFuZCB0aGVyZWZvcmUgZG9lcyBub3Qgd3JpdGUgdGhlIGJ5dGVj
b2RlIGNhY2hlIHRvIGRpc2suCisKKyAgICAgICAgQ2hhbmdpbmcgdGhhdCByZXZlYWxlZCBhIGJ1
ZyBpbiBieXRlY29kZSBjYWNoZS4gVGhlIEVuY29kZXIga2VlcHMgYSBtYXBwaW5nCisgICAgICAg
IG9mIHBvaW50ZXJzIHRvIG9mZnNldHMgb2YgYWxyZWFkeSBjYWNoZWQgb2JqZWN0cywgaW4gb3Jk
ZXIgdG8gYXZvaWQgY2FjaGluZworICAgICAgICB0aGUgc2FtZSBvYmplY3QgdHdpY2UuIFNpbWls
YXJseSwgdGhlIERlY29kZXIga2VlcHMgYSBtYXBwaW5nIGZyb20gb2Zmc2V0cworICAgICAgICB0
byBwb2ludGVycywgaW4gb3JkZXIgdG8gYXZvaWQgY3JlYXRpbmcgbXVsdGlwbGUgb2JqZWN0cyBp
biBtZW1vcnkgZm9yIHRoZQorICAgICAgICBzYW1lIGNhY2hlZCBvYmplY3QuIFRoZSBmb2xsb3dp
bmcgd2FzIGhhcHBlbmluZzoKKyAgICAgICAgMSkgQSBTdHJpbmdJbXBsKiBTIHdhcyBjYWNoZWQg
YXMgQ2FjaGVkUHRyPENhY2hlZFN0cmluZ0ltcGw+IGF0IG9mZnNldCBPLiBXZSBhZGQKKyAgICAg
ICAgYW4gZW50cnkgaW4gdGhlIEVuY29kZXIgbWFwcGluZyB0aGF0IFMgaGFzIGFscmVhZHkgYmVl
biBlbmNvZGVkIGF0IE8uCisgICAgICAgIDIpIFdlIGNhY2hlIFN0cmluZ0ltcGwqIFMgYWdhaW4s
IGJ1dCBub3cgYXMgQ2FjaGVkUHRyPENhY2hlZFVuaXF1ZWRTdHJpbmdJbXBsPi4KKyAgICAgICAg
V2UgZmluZCBhbiBlbnRyeSBpbiB0aGUgRW5jb2RlciBtYXBwaW5nIGZvciBTLCBhbmQgcmV0dXJu
IHRoZSBvZmZzZXQgTy4gSG93ZXZlciwKKyAgICAgICAgdGhlIG9iamVjdCBjYWNoZWQgYXQgTyBp
cyBhIENhY2hlZFB0cjxDYWNoZWRTdHJpbmdJbXBsPiAoaS5lLiBub3QgVW5pcXVlZCkuCisKKyAg
ICAgICAgMykgV2hlbiBkZWNvZGluZywgdGhlcmUgYXJlIDIgcG9zc2liaWxpdGllczoKKyAgICAg
ICAgMy4xKSBXZSBmaW5kIFMgZm9yIHRoZSBmaXJzdCB0aW1lIHRocm91Z2ggYSBDYWNoZWRQdHI8
Q2FjaGVkU3RyaW5nSW1wbD4uIEluCisgICAgICAgIHRoaXMgY2FzZSwgZXZlcnl0aGluZyB3b3Jr
cyBhcyBleHBlY3RlZCBzaW5jZSB3ZSBhZGQgYW4gZW50cnkgaW4gdGhlIGRlY29kZXIKKyAgICAg
ICAgbWFwcGluZyBmcm9tIHRoZSBvZmZzZXQgTyB0byB0aGUgZGVjb2RlZCBTdHJpbmdJbXBsKiBT
LiBUaGUgbmV4dCB0aW1lIHdlIGZpbmQKKyAgICAgICAgUyB0aHJvdWdoIHRoZSB1bmlxdWVkIHZl
cnNpb24sIHdlJ2xsIHJldHVybiB0aGUgYWxyZWFkeSBkZWNvZGVkIFMuCisgICAgICAgIDMuMikg
V2UgZmluZCBTIHRocm91Z2ggYSBDYWNoZWRQdHI8Q2FjaGVkVW5pcXVlZFN0cmluZ0ltcGw+LiBO
b3cgd2UgaGF2ZSBhCisgICAgICAgIHByb2JsZW0sIHNpbmNlIHRoZSBDYWNoZWRQdHIgaGFzIHRo
ZSBvZmZzZXQgb2YgYSBDYWNoZWRTdHJpbmdJbXBsIChub3QgdW5pcXVlZCksCisgICAgICAgIHdo
aWNoIGhhcyBhIGRpZmZlcmVudCBzaGFwZSBhbmQgd2UgY3Jhc2guCisKKyAgICAgICAgKiBqc2Mu
Y3BwOgorICAgICAgICAoZnVuY3Rpb25SdW5TdHJpbmcpOgorICAgICAgICAoZnVuY3Rpb25Mb2Fk
U3RyaW5nKToKKyAgICAgICAgKGZ1bmN0aW9uRG9sbGFyQWdlbnRTdGFydCk6CisgICAgICAgIChm
dW5jdGlvbkNoZWNrTW9kdWxlU3ludGF4KToKKyAgICAgICAgKHJ1bkludGVyYWN0aXZlKToKKyAg
ICAgICAgKiBydW50aW1lL0NhY2hlZFR5cGVzLmNwcDoKKyAgICAgICAgKEpTQzo6Q2FjaGVkVW5p
cXVlZFN0cmluZ0ltcGxCYXNlOjpkZWNvZGUgY29uc3QpOgorICAgICAgICAoSlNDOjpDYWNoZWRG
dW5jdGlvbkV4ZWN1dGFibGU6OnJhcmVEYXRhIGNvbnN0KToKKyAgICAgICAgKEpTQzo6Q2FjaGVk
Q29kZUJsb2NrOjpyYXJlRGF0YSBjb25zdCk6CisgICAgICAgIChKU0M6OkNhY2hlZEZ1bmN0aW9u
RXhlY3V0YWJsZTo6ZW5jb2RlKToKKyAgICAgICAgKEpTQzo6Q2FjaGVkQ29kZUJsb2NrPENvZGVC
bG9ja1R5cGU+OjplbmNvZGUpOgorICAgICAgICAoSlNDOjpDYWNoZWRVbmlxdWVkU3RyaW5nSW1w
bDo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Q2FjaGVkVW5pcXVlZFN0cmluZ0lt
cGw6OmRlY29kZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkNhY2hlZFN0cmluZ0lt
cGw6OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkNhY2hlZFN0cmluZ0ltcGw6OmRl
Y29kZSBjb25zdCk6IERlbGV0ZWQuCisKIDIwMTktMDMtMjkgIENhdGhpZSBDaGVuICA8Y2F0aGll
Y2hlbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBSZXNpemVPYnNlcnZlci4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAKaW5kZXggNmZkMWY2YTIyZDU3ZjMxNmZlZjgyM2IwZDVkOTMxOTQxNzMy
NjAwMi4uNjMzNjY0MjBmYWY5OTk4MmFmNzhmODRjOWYwZmVjNTlhYWEyZGQ5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKQEAgLTE0NTksNyArMTQ1OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25SdW5TdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICB2bSwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyhnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgImFyZ3VtZW50
cyIpLCBhcnJheSk7CiAKICAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV4Y2VwdGlvbjsKLSAgICBl
dmFsdWF0ZShnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgbWFrZVNvdXJjZShzb3VyY2UsIGV4
ZWMtPmNhbGxlclNvdXJjZU9yaWdpbigpKSwgSlNWYWx1ZSgpLCBleGNlcHRpb24pOworICAgIGV2
YWx1YXRlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCBqc2NTb3VyY2Uoc291cmNlLCBleGVj
LT5jYWxsZXJTb3VyY2VPcmlnaW4oKSksIEpTVmFsdWUoKSwgZXhjZXB0aW9uKTsKIAogICAgIGlm
IChleGNlcHRpb24pIHsKICAgICAgICAgc2NvcGUudGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0
LT5nbG9iYWxFeGVjKCksIGV4Y2VwdGlvbik7CkBAIC0xNDk5LDcgKzE0OTksNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTG9hZFN0cmluZyhFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKTsKIAogICAgIE5ha2VkUHRyPEV4Y2VwdGlvbj4gZXZhbHVhdGlvbkV4Y2VwdGlvbjsK
LSAgICBKU1ZhbHVlIHJlc3VsdCA9IGV2YWx1YXRlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygp
LCBtYWtlU291cmNlKHNvdXJjZUNvZGUsIGV4ZWMtPmNhbGxlclNvdXJjZU9yaWdpbigpKSwgSlNW
YWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0aW9uKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGV2YWx1
YXRlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCBqc2NTb3VyY2Uoc291cmNlQ29kZSwgZXhl
Yy0+Y2FsbGVyU291cmNlT3JpZ2luKCkpLCBKU1ZhbHVlKCksIGV2YWx1YXRpb25FeGNlcHRpb24p
OwogICAgIGlmIChldmFsdWF0aW9uRXhjZXB0aW9uKQogICAgICAgICB0aHJvd0V4Y2VwdGlvbihl
eGVjLCBzY29wZSwgZXZhbHVhdGlvbkV4Y2VwdGlvbik7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShyZXN1bHQpOwpAQCAtMTg0Myw3ICsxODQzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFnZW50U3RhcnQoRXhlY1N0YXRlKiBleGVjKQogICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgTmFrZWRQdHI8RXhjZXB0aW9uPiBl
dmFsdWF0aW9uRXhjZXB0aW9uOwogICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlIHJlc3VsdDsK
LSAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LT5nbG9i
YWxFeGVjKCksIG1ha2VTb3VyY2Uoc291cmNlQ29kZSwgU291cmNlT3JpZ2luKCJ3b3JrZXIiX3Mp
KSwgSlNWYWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAg
cmVzdWx0ID0gZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksIGpzY1NvdXJjZShz
b3VyY2VDb2RlLCBTb3VyY2VPcmlnaW4oIndvcmtlciJfcykpLCBKU1ZhbHVlKCksIGV2YWx1YXRp
b25FeGNlcHRpb24pOwogICAgICAgICAgICAgICAgICAgICBpZiAoZXZhbHVhdGlvbkV4Y2VwdGlv
bikKICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGV2YWx1YXRpb25FeGNlcHRpb24t
PnZhbHVlKCk7CiAgICAgICAgICAgICAgICAgICAgIGNoZWNrRXhjZXB0aW9uKGdsb2JhbE9iamVj
dC0+Z2xvYmFsRXhlYygpLCBnbG9iYWxPYmplY3QsIHRydWUsIGV2YWx1YXRpb25FeGNlcHRpb24s
IHJlc3VsdCwgY29tbWFuZExpbmUsIHN1Y2Nlc3MpOwpAQCAtMjE4NSw3ICsyMTg1LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNoZWNrTW9kdWxlU3ludGF4KEV4ZWNT
dGF0ZSogZXhlYykKICAgICBzdG9wV2F0Y2guc3RhcnQoKTsKIAogICAgIFBhcnNlckVycm9yIGVy
cm9yOwotICAgIGJvb2wgdmFsaWRTeW50YXggPSBjaGVja01vZHVsZVN5bnRheChleGVjLCBtYWtl
U291cmNlKHNvdXJjZSwgeyB9LCBVUkwoKSwgVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3ZpZGVy
U291cmNlVHlwZTo6TW9kdWxlKSwgZXJyb3IpOworICAgIGJvb2wgdmFsaWRTeW50YXggPSBjaGVj
a01vZHVsZVN5bnRheChleGVjLCBqc2NTb3VyY2Uoc291cmNlLCB7IH0sIFVSTCgpLCBUZXh0UG9z
aXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1bGUpLCBlcnJvcik7CiAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgc3RvcFdh
dGNoLnN0b3AoKTsKIApAQCAtMjYyNCw3ICsyNjI0LDcgQEAgc3RhdGljIHZvaWQgcnVuSW50ZXJh
Y3RpdmUoR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICBzb3VyY2UgPSBzb3VyY2UgKyBTdHJpbmc6OmZyb21VVEY4KGxpbmUpOwog
ICAgICAgICAgICAgc291cmNlID0gc291cmNlICsgJ1xuJzsKLSAgICAgICAgICAgIGNoZWNrU3lu
dGF4KHZtLCBtYWtlU291cmNlKHNvdXJjZSwgc291cmNlT3JpZ2luKSwgZXJyb3IpOworICAgICAg
ICAgICAgY2hlY2tTeW50YXgodm0sIGpzY1NvdXJjZShzb3VyY2UsIHNvdXJjZU9yaWdpbiksIGVy
cm9yKTsKICAgICAgICAgICAgIGlmICghbGluZVswXSkgewogICAgICAgICAgICAgICAgIGZyZWUo
bGluZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0yNjQwLDcgKzI2NDAsNyBAQCBzdGF0
aWMgdm9pZCBydW5JbnRlcmFjdGl2ZShHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICAg
ICAgCiAgICAgICAgIAogICAgICAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV2YWx1YXRpb25FeGNl
cHRpb247Ci0gICAgICAgIEpTVmFsdWUgcmV0dXJuVmFsdWUgPSBldmFsdWF0ZShnbG9iYWxPYmpl
Y3QtPmdsb2JhbEV4ZWMoKSwgbWFrZVNvdXJjZShzb3VyY2UsIHNvdXJjZU9yaWdpbiksIEpTVmFs
dWUoKSwgZXZhbHVhdGlvbkV4Y2VwdGlvbik7CisgICAgICAgIEpTVmFsdWUgcmV0dXJuVmFsdWUg
PSBldmFsdWF0ZShnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwganNjU291cmNlKHNvdXJjZSwg
c291cmNlT3JpZ2luKSwgSlNWYWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0aW9uKTsKICNlbHNlCiAg
ICAgICAgIHByaW50ZigiJXMiLCBpbnRlcmFjdGl2ZVByb21wdCk7CiAgICAgICAgIFZlY3Rvcjxj
aGFyLCAyNTY+IGxpbmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9DYWNoZWRUeXBlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRU
eXBlcy5jcHAKaW5kZXggMDVkODBiYzAwMjE3ZDY5ODMyNjQ5ZWU2ZmE1ZjI2ZDNhMjhjZjBjNy4u
MjQ3M2RmYmQ4MDI1ODhmN2VlOTlkOTFhMWM1MDkyOGRkOGIxOWQ1ZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVkVHlwZXMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlZFR5cGVzLmNwcApAQCAtNTc1LDcgKzU3NSw4IEBA
IHByaXZhdGU6CiAgICAgQ2FjaGVkVmVjdG9yPENhY2hlZFBhaXI8S2V5LCBWYWx1ZT4+IG1fZW50
cmllczsKIH07CiAKLWNsYXNzIENhY2hlZFVuaXF1ZWRTdHJpbmdJbXBsIDogcHVibGljIFZhcmlh
YmxlTGVuZ3RoT2JqZWN0PFVuaXF1ZWRTdHJpbmdJbXBsPiB7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBU
PgorY2xhc3MgQ2FjaGVkVW5pcXVlZFN0cmluZ0ltcGxCYXNlIDogcHVibGljIFZhcmlhYmxlTGVu
Z3RoT2JqZWN0PFQ+IHsKIHB1YmxpYzoKICAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBTdHJpbmdJbXBsJiBzdHJpbmcpCiAgICAgewpAQCAtNjMxLDggKzYzMiw4IEBAIHB1
YmxpYzoKICAgICAgICAgfQogCiAgICAgICAgIGlmIChtX2lzOEJpdCkKLSAgICAgICAgICAgIHJl
dHVybiBjcmVhdGUodGhpcy0+YnVmZmVyPExDaGFyPigpKTsKLSAgICAgICAgcmV0dXJuIGNyZWF0
ZSh0aGlzLT5idWZmZXI8VUNoYXI+KCkpOworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZSh0aGlz
LT50ZW1wbGF0ZSBidWZmZXI8TENoYXI+KCkpOworICAgICAgICByZXR1cm4gY3JlYXRlKHRoaXMt
PnRlbXBsYXRlIGJ1ZmZlcjxVQ2hhcj4oKSk7CiAgICAgfQogCiBwcml2YXRlOgpAQCAtNjQyLDIx
ICs2NDMsOCBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fbGVuZ3RoOwogfTsKIAotY2xhc3Mg
Q2FjaGVkU3RyaW5nSW1wbCA6IHB1YmxpYyBWYXJpYWJsZUxlbmd0aE9iamVjdDxTdHJpbmdJbXBs
PiB7Ci1wdWJsaWM6Ci0gICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU3Ry
aW5nSW1wbCYgaW1wbCkKLSAgICB7Ci0gICAgICAgIG1fdW5pcXVlZFN0cmluZ0ltcGwuZW5jb2Rl
KGVuY29kZXIsIGltcGwpOwotICAgIH0KLQotICAgIFN0cmluZ0ltcGwqIGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fdW5pcXVlZFN0cmluZ0lt
cGwuZGVjb2RlKGRlY29kZXIpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBDYWNoZWRVbmlxdWVk
U3RyaW5nSW1wbCBtX3VuaXF1ZWRTdHJpbmdJbXBsOwotfTsKK2NsYXNzIENhY2hlZFVuaXF1ZWRT
dHJpbmdJbXBsIDogcHVibGljIENhY2hlZFVuaXF1ZWRTdHJpbmdJbXBsQmFzZTxVbmlxdWVkU3Ry
aW5nSW1wbD4geyB9OworY2xhc3MgQ2FjaGVkU3RyaW5nSW1wbCA6IHB1YmxpYyBDYWNoZWRVbmlx
dWVkU3RyaW5nSW1wbEJhc2U8U3RyaW5nSW1wbD4geyB9OwogCiBjbGFzcyBDYWNoZWRTdHJpbmcg
OiBwdWJsaWMgVmFyaWFibGVMZW5ndGhPYmplY3Q8U3RyaW5nPiB7CiBwdWJsaWM6CkBAIC0xNTcy
LDcgKzE1NjAsNyBAQCBwdWJsaWM6CiAgICAgSWRlbnRpZmllciBlY21hTmFtZShEZWNvZGVyJiBk
ZWNvZGVyKSBjb25zdCB7IHJldHVybiBtX2VjbWFOYW1lLmRlY29kZShkZWNvZGVyKTsgfQogICAg
IElkZW50aWZpZXIgaW5mZXJyZWROYW1lKERlY29kZXImIGRlY29kZXIpIGNvbnN0IHsgcmV0dXJu
IG1faW5mZXJyZWROYW1lLmRlY29kZShkZWNvZGVyKTsgfQogCi0gICAgVW5saW5rZWRGdW5jdGlv
bkV4ZWN1dGFibGU6OlJhcmVEYXRhKiByYXJlRGF0YShEZWNvZGVyJiBkZWNvZGVyKSBjb25zdCB7
IHJldHVybiBtX3JhcmVEYXRhLmRlY29kZUFzUHRyKGRlY29kZXIpOyB9CisgICAgVW5saW5rZWRG
dW5jdGlvbkV4ZWN1dGFibGU6OlJhcmVEYXRhKiByYXJlRGF0YShEZWNvZGVyJiBkZWNvZGVyKSBj
b25zdCB7IHJldHVybiBtX3JhcmVEYXRhLmRlY29kZShkZWNvZGVyKTsgfQogCiAgICAgY29uc3Qg
Q2FjaGVkV3JpdGVCYXJyaWVyPENhY2hlZEZ1bmN0aW9uQ29kZUJsb2NrLCBVbmxpbmtlZEZ1bmN0
aW9uQ29kZUJsb2NrPiYgdW5saW5rZWRDb2RlQmxvY2tGb3JDYWxsKCkgY29uc3QgeyByZXR1cm4g
bV91bmxpbmtlZENvZGVCbG9ja0ZvckNhbGw7IH0KICAgICBjb25zdCBDYWNoZWRXcml0ZUJhcnJp
ZXI8Q2FjaGVkRnVuY3Rpb25Db2RlQmxvY2ssIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s+JiB1
bmxpbmtlZENvZGVCbG9ja0ZvckNvbnN0cnVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdW5saW5rZWRD
b2RlQmxvY2tGb3JDb25zdHJ1Y3Q7IH0KQEAgLTE2MDIsNyArMTU5MCw3IEBAIHByaXZhdGU6CiAg
ICAgdW5zaWduZWQgbV9zdXBlckJpbmRpbmcgOiAxOwogICAgIHVuc2lnbmVkIG1fZGVyaXZlZENv
bnRleHRUeXBlOiAyOwogCi0gICAgQ2FjaGVkT3B0aW9uYWw8Q2FjaGVkRnVuY3Rpb25FeGVjdXRh
YmxlUmFyZURhdGE+IG1fcmFyZURhdGE7CisgICAgQ2FjaGVkUHRyPENhY2hlZEZ1bmN0aW9uRXhl
Y3V0YWJsZVJhcmVEYXRhPiBtX3JhcmVEYXRhOwogCiAgICAgQ2FjaGVkSWRlbnRpZmllciBtX25h
bWU7CiAgICAgQ2FjaGVkSWRlbnRpZmllciBtX2VjbWFOYW1lOwpAQCAtMTY1NSw3ICsxNjQzLDcg
QEAgcHVibGljOgogICAgIFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUoKSBjb25zdCB7IHJldHVy
biBtX3BhcnNlTW9kZTsgfQogICAgIHVuc2lnbmVkIGNvZGVUeXBlKCkgY29uc3QgeyByZXR1cm4g
bV9jb2RlVHlwZTsgfQogCi0gICAgVW5saW5rZWRDb2RlQmxvY2s6OlJhcmVEYXRhKiByYXJlRGF0
YShEZWNvZGVyJiBkZWNvZGVyKSBjb25zdCB7IHJldHVybiBtX3JhcmVEYXRhLmRlY29kZUFzUHRy
KGRlY29kZXIpOyB9CisgICAgVW5saW5rZWRDb2RlQmxvY2s6OlJhcmVEYXRhKiByYXJlRGF0YShE
ZWNvZGVyJiBkZWNvZGVyKSBjb25zdCB7IHJldHVybiBtX3JhcmVEYXRhLmRlY29kZShkZWNvZGVy
KTsgfQogCiBwcml2YXRlOgogICAgIFZpcnR1YWxSZWdpc3RlciBtX3RoaXNSZWdpc3RlcjsKQEAg
LTE2OTAsNyArMTY3OCw3IEBAIHByaXZhdGU6CiAKICAgICBDYWNoZWRNZXRhZGF0YVRhYmxlIG1f
bWV0YWRhdGE7CiAKLSAgICBDYWNoZWRPcHRpb25hbDxDYWNoZWRDb2RlQmxvY2tSYXJlRGF0YT4g
bV9yYXJlRGF0YTsKKyAgICBDYWNoZWRQdHI8Q2FjaGVkQ29kZUJsb2NrUmFyZURhdGE+IG1fcmFy
ZURhdGE7CiAKICAgICBDYWNoZWRTdHJpbmcgbV9zb3VyY2VVUkxEaXJlY3RpdmU7CiAgICAgQ2Fj
aGVkU3RyaW5nIG1fc291cmNlTWFwcGluZ1VSTERpcmVjdGl2ZTsKQEAgLTE5NTMsNyArMTk0MSw3
IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBDYWNoZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBVbmxpCiAgICAgbV9zdXBlckJpbmRpbmcgPSBleGVjdXRh
YmxlLm1fc3VwZXJCaW5kaW5nOwogICAgIG1fZGVyaXZlZENvbnRleHRUeXBlID0gZXhlY3V0YWJs
ZS5tX2Rlcml2ZWRDb250ZXh0VHlwZTsKIAotICAgIG1fcmFyZURhdGEuZW5jb2RlKGVuY29kZXIs
IGV4ZWN1dGFibGUubV9yYXJlRGF0YSk7CisgICAgbV9yYXJlRGF0YS5lbmNvZGUoZW5jb2Rlciwg
ZXhlY3V0YWJsZS5tX3JhcmVEYXRhLmdldCgpKTsKIAogICAgIG1fbmFtZS5lbmNvZGUoZW5jb2Rl
ciwgZXhlY3V0YWJsZS5uYW1lKCkpOwogICAgIG1fZWNtYU5hbWUuZW5jb2RlKGVuY29kZXIsIGV4
ZWN1dGFibGUuZWNtYU5hbWUoKSk7CkBAIC0yMDU4LDcgKzIwNDYsNyBAQCBBTFdBWVNfSU5MSU5F
IHZvaWQgQ2FjaGVkQ29kZUJsb2NrPENvZGVCbG9ja1R5cGU+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29ucwogICAgICAgICBtX2xpbmtUaW1lQ29uc3RhbnRzW2ldID0gY29kZUJsb2NrLm1f
bGlua1RpbWVDb25zdGFudHNbaV07CiAKICAgICBtX21ldGFkYXRhLmVuY29kZShlbmNvZGVyLCBj
b2RlQmxvY2subV9tZXRhZGF0YS5nZXQoKSk7Ci0gICAgbV9yYXJlRGF0YS5lbmNvZGUoZW5jb2Rl
ciwgY29kZUJsb2NrLm1fcmFyZURhdGEpOworICAgIG1fcmFyZURhdGEuZW5jb2RlKGVuY29kZXIs
IGNvZGVCbG9jay5tX3JhcmVEYXRhLmdldCgpKTsKIAogICAgIG1fc291cmNlVVJMRGlyZWN0aXZl
LmVuY29kZShlbmNvZGVyLCBjb2RlQmxvY2subV9zb3VyY2VVUkxEaXJlY3RpdmUuaW1wbCgpKTsK
ICAgICBtX3NvdXJjZU1hcHBpbmdVUkxEaXJlY3RpdmUuZW5jb2RlKGVuY29kZXIsIGNvZGVCbG9j
ay5tX3NvdXJjZVVSTERpcmVjdGl2ZS5pbXBsKCkpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFu
Z2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCA0MGJiYmRiYjQ3ZGJmYjMwNDg2ODUwODg2
YzI0ZGQ2ODk2YTdkYjlhLi42ZWRmYjhmNjk0ZThmMjkwZjUzMjUxYzViZmE4MGNlODk4NDk5NjE2
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDE5LTAzLTMwICBUYWRldSBaYWdhbGxvICA8dHphZ2FsbG9AYXBw
bGUuY29tPgorCisgICAgICAgIENhY2hlIGJ5dGVjb2RlIGZvciBqc2MuY3BwIGhlbHBlcnMgYW5k
IGZpeCBDYWNoZWRTdHJpbmdJbXBsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTY0MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHN0cmVzcy9ieXRlY29kZS1jYWNoZS1jYWNoZWQtc3RyaW5nLWltcGwu
anM6IEFkZGVkLgorICAgICAgICAoZik6CisgICAgICAgIChnKToKKyAgICAgICAgKiBzdHJlc3Mv
Ynl0ZWNvZGUtY2FjaGUtcnVuLXN0cmluZy5qczogQWRkZWQuCisKIDIwMTktMDMtMjggIFNhYW0g
QmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQmFja3dhcmRzR3JhcGggbmVl
ZHMgdG8gY29uc2lkZXIgYmFjayBlZGdlcyBhcyB0aGUgYmFja3dhcmQncyByb290IHN1Y2Nlc3Nv
cgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYnl0ZWNvZGUtY2FjaGUtY2FjaGVkLXN0cmlu
Zy1pbXBsLmpzIGIvSlNUZXN0cy9zdHJlc3MvYnl0ZWNvZGUtY2FjaGUtY2FjaGVkLXN0cmluZy1p
bXBsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA1NjQ3OWY5YWM2MGM5NDI1NzZhNGE5MmVhNDdhNjA5NDFjZWI5
YmMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9ieXRlY29kZS1jYWNoZS1jYWNo
ZWQtc3RyaW5nLWltcGwuanMKQEAgLTAsMCArMSwyMCBAQAorLy9AIHJ1bkJ5dGVjb2RlQ2FjaGUK
KworZnVuY3Rpb24gZigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHguZm9vID0gImZvbyI7Cit9
CitmdW5jdGlvbiBnKCkgeworICAgIHN3aXRjaCAoJ2ZvbycpIHsKKyAgICAgICAgY2FzZSAiZm9v
IjoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICJiYXIiOgorICAgICAgICBjYXNl
ICJiYXoiOgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdT
aG91bGQgaGF2ZSBqdW1wZWQgdG8gYGZvb2AnKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0K
K30KKworZygpOworZigpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYnl0ZWNvZGUtY2Fj
aGUtcnVuLXN0cmluZy5qcyBiL0pTVGVzdHMvc3RyZXNzL2J5dGVjb2RlLWNhY2hlLXJ1bi1zdHJp
bmcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNmM3ZGZkNTE5ZjIyZjUxZDU4OTY2ZTlhM2Q0ODFlZmU0NGE3MmFi
MwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2J5dGVjb2RlLWNhY2hlLXJ1bi1z
dHJpbmcuanMKQEAgLTAsMCArMSwzIEBACisvL0AgcnVuQnl0ZWNvZGVDYWNoZQorCitydW5TdHJp
bmcoJ3VuZGVmaW5lZCcpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366712</attachid>
            <date>2019-04-04 08:01:20 -0700</date>
            <delta_ts>2019-04-04 08:41:13 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-196409-20190404170113.patch</filename>
            <type>text/plain</type>
            <size>12896</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNjQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NDFiNTk2YThiODgxZGZmMDAxM2NjYjYzMmNmMTU1MGZjMjQwYmE3Li43MTMyZTZkMjc4ZTAyZmNh
MGVlOTY2ZDA1NWY0NjJmYzJmMTMwZjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NiBAQAorMjAxOS0wMy0zMCAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBDYWNoZSBieXRlY29kZSBmb3IganNjLmNwcCBoZWxwZXJzIGFuZCBmaXgg
Q2FjaGVkU3RyaW5nSW1wbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk2NDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAg
ICAgICAgU29tZSBvZiB0aGUgaGVscGVycyBpbiBqc2MuY3BwLCBzdWNoIGFzIGBmdW5jdGlvblJ1
blN0cmluZ2AsIHdlcmUgc3RsbCB1c2luZworICAgICAgICB1c2luZyBgbWFrZVNvdXJjZWAgaW5z
dGVhZCBvZiBganNjU291cmNlYCwgd2hpY2ggZG9lcyBub3QgdXNlIHRoZSBTaGVsbFNvdXJjZVBy
b3ZpZGVyCisgICAgICAgIGFuZCB0aGVyZWZvcmUgZG9lcyBub3Qgd3JpdGUgdGhlIGJ5dGVjb2Rl
IGNhY2hlIHRvIGRpc2suCisKKyAgICAgICAgQ2hhbmdpbmcgdGhhdCByZXZlYWxlZCBhIGJ1ZyBp
biBieXRlY29kZSBjYWNoZS4gVGhlIEVuY29kZXIga2VlcHMgYSBtYXBwaW5nCisgICAgICAgIG9m
IHBvaW50ZXJzIHRvIG9mZnNldHMgb2YgYWxyZWFkeSBjYWNoZWQgb2JqZWN0cywgaW4gb3JkZXIg
dG8gYXZvaWQgY2FjaGluZworICAgICAgICB0aGUgc2FtZSBvYmplY3QgdHdpY2UuIFNpbWlsYXJs
eSwgdGhlIERlY29kZXIga2VlcHMgYSBtYXBwaW5nIGZyb20gb2Zmc2V0cworICAgICAgICB0byBw
b2ludGVycywgaW4gb3JkZXIgdG8gYXZvaWQgY3JlYXRpbmcgbXVsdGlwbGUgb2JqZWN0cyBpbiBt
ZW1vcnkgZm9yIHRoZQorICAgICAgICBzYW1lIGNhY2hlZCBvYmplY3QuIFRoZSBmb2xsb3dpbmcg
d2FzIGhhcHBlbmluZzoKKyAgICAgICAgMSkgQSBTdHJpbmdJbXBsKiBTIHdhcyBjYWNoZWQgYXMg
Q2FjaGVkUHRyPENhY2hlZFN0cmluZ0ltcGw+IGF0IG9mZnNldCBPLiBXZSBhZGQKKyAgICAgICAg
YW4gZW50cnkgaW4gdGhlIEVuY29kZXIgbWFwcGluZyB0aGF0IFMgaGFzIGFscmVhZHkgYmVlbiBl
bmNvZGVkIGF0IE8uCisgICAgICAgIDIpIFdlIGNhY2hlIFN0cmluZ0ltcGwqIFMgYWdhaW4sIGJ1
dCBub3cgYXMgQ2FjaGVkUHRyPENhY2hlZFVuaXF1ZWRTdHJpbmdJbXBsPi4KKyAgICAgICAgV2Ug
ZmluZCBhbiBlbnRyeSBpbiB0aGUgRW5jb2RlciBtYXBwaW5nIGZvciBTLCBhbmQgcmV0dXJuIHRo
ZSBvZmZzZXQgTy4gSG93ZXZlciwKKyAgICAgICAgdGhlIG9iamVjdCBjYWNoZWQgYXQgTyBpcyBh
IENhY2hlZFB0cjxDYWNoZWRTdHJpbmdJbXBsPiAoaS5lLiBub3QgVW5pcXVlZCkuCisKKyAgICAg
ICAgMykgV2hlbiBkZWNvZGluZywgdGhlcmUgYXJlIDIgcG9zc2liaWxpdGllczoKKyAgICAgICAg
My4xKSBXZSBmaW5kIFMgZm9yIHRoZSBmaXJzdCB0aW1lIHRocm91Z2ggYSBDYWNoZWRQdHI8Q2Fj
aGVkU3RyaW5nSW1wbD4uIEluCisgICAgICAgIHRoaXMgY2FzZSwgZXZlcnl0aGluZyB3b3JrcyBh
cyBleHBlY3RlZCBzaW5jZSB3ZSBhZGQgYW4gZW50cnkgaW4gdGhlIGRlY29kZXIKKyAgICAgICAg
bWFwcGluZyBmcm9tIHRoZSBvZmZzZXQgTyB0byB0aGUgZGVjb2RlZCBTdHJpbmdJbXBsKiBTLiBU
aGUgbmV4dCB0aW1lIHdlIGZpbmQKKyAgICAgICAgUyB0aHJvdWdoIHRoZSB1bmlxdWVkIHZlcnNp
b24sIHdlJ2xsIHJldHVybiB0aGUgYWxyZWFkeSBkZWNvZGVkIFMuCisgICAgICAgIDMuMikgV2Ug
ZmluZCBTIHRocm91Z2ggYSBDYWNoZWRQdHI8Q2FjaGVkVW5pcXVlZFN0cmluZ0ltcGw+LiBOb3cg
d2UgaGF2ZSBhCisgICAgICAgIHByb2JsZW0sIHNpbmNlIHRoZSBDYWNoZWRQdHIgaGFzIHRoZSBv
ZmZzZXQgb2YgYSBDYWNoZWRTdHJpbmdJbXBsIChub3QgdW5pcXVlZCksCisgICAgICAgIHdoaWNo
IGhhcyBhIGRpZmZlcmVudCBzaGFwZSBhbmQgd2UgY3Jhc2guCisKKyAgICAgICAgV2UgZml4IHRo
aXMgYnkgbWFraW5nIENhY2hlZFN0cmluZ0ltcGwgYW5kIENhY2hlZFVuaXF1ZWRTdHJpbmdJbXBs
IHNoYXJlIHRoZQorICAgICAgICBzYW1lIGltcGxlbWVudGF0aW9uLiBTaW5jZSBpdCBkb2Vzbid0
IG1hdHRlciB3aGV0aGVyIGEgc3RyaW5nIGlzIHVuaXF1ZWQgZm9yCisgICAgICAgIGVuY29kaW5n
LCBhbmQgd2UgYWx3YXlzIGRlY29kZSBzdHJpbmdzIGFzIHVuaXF1ZWQgZWl0aGVyIHdheSwgdGhl
eSBjYW4gYmUgdXNlZAorICAgICAgICBpbnRlcmNoYW5nZWFibHkuCisKKyAgICAgICAgKiBqc2Mu
Y3BwOgorICAgICAgICAoZnVuY3Rpb25SdW5TdHJpbmcpOgorICAgICAgICAoZnVuY3Rpb25Mb2Fk
U3RyaW5nKToKKyAgICAgICAgKGZ1bmN0aW9uRG9sbGFyQWdlbnRTdGFydCk6CisgICAgICAgIChm
dW5jdGlvbkNoZWNrTW9kdWxlU3ludGF4KToKKyAgICAgICAgKHJ1bkludGVyYWN0aXZlKToKKyAg
ICAgICAgKiBydW50aW1lL0NhY2hlZFR5cGVzLmNwcDoKKyAgICAgICAgKEpTQzo6Q2FjaGVkVW5p
cXVlZFN0cmluZ0ltcGxCYXNlOjpkZWNvZGUgY29uc3QpOgorICAgICAgICAoSlNDOjpDYWNoZWRG
dW5jdGlvbkV4ZWN1dGFibGU6OnJhcmVEYXRhIGNvbnN0KToKKyAgICAgICAgKEpTQzo6Q2FjaGVk
Q29kZUJsb2NrOjpyYXJlRGF0YSBjb25zdCk6CisgICAgICAgIChKU0M6OkNhY2hlZEZ1bmN0aW9u
RXhlY3V0YWJsZTo6ZW5jb2RlKToKKyAgICAgICAgKEpTQzo6Q2FjaGVkQ29kZUJsb2NrPENvZGVC
bG9ja1R5cGU+OjplbmNvZGUpOgorICAgICAgICAoSlNDOjpDYWNoZWRVbmlxdWVkU3RyaW5nSW1w
bDo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Q2FjaGVkVW5pcXVlZFN0cmluZ0lt
cGw6OmRlY29kZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkNhY2hlZFN0cmluZ0lt
cGw6OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkNhY2hlZFN0cmluZ0ltcGw6OmRl
Y29kZSBjb25zdCk6IERlbGV0ZWQuCisKIDIwMTktMDMtMjkgIENhdGhpZSBDaGVuICA8Y2F0aGll
Y2hlbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBSZXNpemVPYnNlcnZlci4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAKaW5kZXggNmZkMWY2YTIyZDU3ZjMxNmZlZjgyM2IwZDVkOTMxOTQxNzMy
NjAwMi4uNjMzNjY0MjBmYWY5OTk4MmFmNzhmODRjOWYwZmVjNTlhYWEyZGQ5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKQEAgLTE0NTksNyArMTQ1OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25SdW5TdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICB2bSwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyhnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgImFyZ3VtZW50
cyIpLCBhcnJheSk7CiAKICAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV4Y2VwdGlvbjsKLSAgICBl
dmFsdWF0ZShnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgbWFrZVNvdXJjZShzb3VyY2UsIGV4
ZWMtPmNhbGxlclNvdXJjZU9yaWdpbigpKSwgSlNWYWx1ZSgpLCBleGNlcHRpb24pOworICAgIGV2
YWx1YXRlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCBqc2NTb3VyY2Uoc291cmNlLCBleGVj
LT5jYWxsZXJTb3VyY2VPcmlnaW4oKSksIEpTVmFsdWUoKSwgZXhjZXB0aW9uKTsKIAogICAgIGlm
IChleGNlcHRpb24pIHsKICAgICAgICAgc2NvcGUudGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0
LT5nbG9iYWxFeGVjKCksIGV4Y2VwdGlvbik7CkBAIC0xNDk5LDcgKzE0OTksNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTG9hZFN0cmluZyhFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKTsKIAogICAgIE5ha2VkUHRyPEV4Y2VwdGlvbj4gZXZhbHVhdGlvbkV4Y2VwdGlvbjsK
LSAgICBKU1ZhbHVlIHJlc3VsdCA9IGV2YWx1YXRlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygp
LCBtYWtlU291cmNlKHNvdXJjZUNvZGUsIGV4ZWMtPmNhbGxlclNvdXJjZU9yaWdpbigpKSwgSlNW
YWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0aW9uKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGV2YWx1
YXRlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCBqc2NTb3VyY2Uoc291cmNlQ29kZSwgZXhl
Yy0+Y2FsbGVyU291cmNlT3JpZ2luKCkpLCBKU1ZhbHVlKCksIGV2YWx1YXRpb25FeGNlcHRpb24p
OwogICAgIGlmIChldmFsdWF0aW9uRXhjZXB0aW9uKQogICAgICAgICB0aHJvd0V4Y2VwdGlvbihl
eGVjLCBzY29wZSwgZXZhbHVhdGlvbkV4Y2VwdGlvbik7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShyZXN1bHQpOwpAQCAtMTg0Myw3ICsxODQzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFnZW50U3RhcnQoRXhlY1N0YXRlKiBleGVjKQogICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgTmFrZWRQdHI8RXhjZXB0aW9uPiBl
dmFsdWF0aW9uRXhjZXB0aW9uOwogICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlIHJlc3VsdDsK
LSAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LT5nbG9i
YWxFeGVjKCksIG1ha2VTb3VyY2Uoc291cmNlQ29kZSwgU291cmNlT3JpZ2luKCJ3b3JrZXIiX3Mp
KSwgSlNWYWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAg
cmVzdWx0ID0gZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksIGpzY1NvdXJjZShz
b3VyY2VDb2RlLCBTb3VyY2VPcmlnaW4oIndvcmtlciJfcykpLCBKU1ZhbHVlKCksIGV2YWx1YXRp
b25FeGNlcHRpb24pOwogICAgICAgICAgICAgICAgICAgICBpZiAoZXZhbHVhdGlvbkV4Y2VwdGlv
bikKICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGV2YWx1YXRpb25FeGNlcHRpb24t
PnZhbHVlKCk7CiAgICAgICAgICAgICAgICAgICAgIGNoZWNrRXhjZXB0aW9uKGdsb2JhbE9iamVj
dC0+Z2xvYmFsRXhlYygpLCBnbG9iYWxPYmplY3QsIHRydWUsIGV2YWx1YXRpb25FeGNlcHRpb24s
IHJlc3VsdCwgY29tbWFuZExpbmUsIHN1Y2Nlc3MpOwpAQCAtMjE4NSw3ICsyMTg1LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNoZWNrTW9kdWxlU3ludGF4KEV4ZWNT
dGF0ZSogZXhlYykKICAgICBzdG9wV2F0Y2guc3RhcnQoKTsKIAogICAgIFBhcnNlckVycm9yIGVy
cm9yOwotICAgIGJvb2wgdmFsaWRTeW50YXggPSBjaGVja01vZHVsZVN5bnRheChleGVjLCBtYWtl
U291cmNlKHNvdXJjZSwgeyB9LCBVUkwoKSwgVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3ZpZGVy
U291cmNlVHlwZTo6TW9kdWxlKSwgZXJyb3IpOworICAgIGJvb2wgdmFsaWRTeW50YXggPSBjaGVj
a01vZHVsZVN5bnRheChleGVjLCBqc2NTb3VyY2Uoc291cmNlLCB7IH0sIFVSTCgpLCBUZXh0UG9z
aXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1bGUpLCBlcnJvcik7CiAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgc3RvcFdh
dGNoLnN0b3AoKTsKIApAQCAtMjYyNCw3ICsyNjI0LDcgQEAgc3RhdGljIHZvaWQgcnVuSW50ZXJh
Y3RpdmUoR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICBzb3VyY2UgPSBzb3VyY2UgKyBTdHJpbmc6OmZyb21VVEY4KGxpbmUpOwog
ICAgICAgICAgICAgc291cmNlID0gc291cmNlICsgJ1xuJzsKLSAgICAgICAgICAgIGNoZWNrU3lu
dGF4KHZtLCBtYWtlU291cmNlKHNvdXJjZSwgc291cmNlT3JpZ2luKSwgZXJyb3IpOworICAgICAg
ICAgICAgY2hlY2tTeW50YXgodm0sIGpzY1NvdXJjZShzb3VyY2UsIHNvdXJjZU9yaWdpbiksIGVy
cm9yKTsKICAgICAgICAgICAgIGlmICghbGluZVswXSkgewogICAgICAgICAgICAgICAgIGZyZWUo
bGluZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0yNjQwLDcgKzI2NDAsNyBAQCBzdGF0
aWMgdm9pZCBydW5JbnRlcmFjdGl2ZShHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICAg
ICAgCiAgICAgICAgIAogICAgICAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV2YWx1YXRpb25FeGNl
cHRpb247Ci0gICAgICAgIEpTVmFsdWUgcmV0dXJuVmFsdWUgPSBldmFsdWF0ZShnbG9iYWxPYmpl
Y3QtPmdsb2JhbEV4ZWMoKSwgbWFrZVNvdXJjZShzb3VyY2UsIHNvdXJjZU9yaWdpbiksIEpTVmFs
dWUoKSwgZXZhbHVhdGlvbkV4Y2VwdGlvbik7CisgICAgICAgIEpTVmFsdWUgcmV0dXJuVmFsdWUg
PSBldmFsdWF0ZShnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwganNjU291cmNlKHNvdXJjZSwg
c291cmNlT3JpZ2luKSwgSlNWYWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0aW9uKTsKICNlbHNlCiAg
ICAgICAgIHByaW50ZigiJXMiLCBpbnRlcmFjdGl2ZVByb21wdCk7CiAgICAgICAgIFZlY3Rvcjxj
aGFyLCAyNTY+IGxpbmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9DYWNoZWRUeXBlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRU
eXBlcy5jcHAKaW5kZXggMDVkODBiYzAwMjE3ZDY5ODMyNjQ5ZWU2ZmE1ZjI2ZDNhMjhjZjBjNy4u
MjQ3M2RmYmQ4MDI1ODhmN2VlOTlkOTFhMWM1MDkyOGRkOGIxOWQ1ZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVkVHlwZXMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlZFR5cGVzLmNwcApAQCAtNTc1LDcgKzU3NSw4IEBA
IHByaXZhdGU6CiAgICAgQ2FjaGVkVmVjdG9yPENhY2hlZFBhaXI8S2V5LCBWYWx1ZT4+IG1fZW50
cmllczsKIH07CiAKLWNsYXNzIENhY2hlZFVuaXF1ZWRTdHJpbmdJbXBsIDogcHVibGljIFZhcmlh
YmxlTGVuZ3RoT2JqZWN0PFVuaXF1ZWRTdHJpbmdJbXBsPiB7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBU
PgorY2xhc3MgQ2FjaGVkVW5pcXVlZFN0cmluZ0ltcGxCYXNlIDogcHVibGljIFZhcmlhYmxlTGVu
Z3RoT2JqZWN0PFQ+IHsKIHB1YmxpYzoKICAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBTdHJpbmdJbXBsJiBzdHJpbmcpCiAgICAgewpAQCAtNjMxLDggKzYzMiw4IEBAIHB1
YmxpYzoKICAgICAgICAgfQogCiAgICAgICAgIGlmIChtX2lzOEJpdCkKLSAgICAgICAgICAgIHJl
dHVybiBjcmVhdGUodGhpcy0+YnVmZmVyPExDaGFyPigpKTsKLSAgICAgICAgcmV0dXJuIGNyZWF0
ZSh0aGlzLT5idWZmZXI8VUNoYXI+KCkpOworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZSh0aGlz
LT50ZW1wbGF0ZSBidWZmZXI8TENoYXI+KCkpOworICAgICAgICByZXR1cm4gY3JlYXRlKHRoaXMt
PnRlbXBsYXRlIGJ1ZmZlcjxVQ2hhcj4oKSk7CiAgICAgfQogCiBwcml2YXRlOgpAQCAtNjQyLDIx
ICs2NDMsOCBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fbGVuZ3RoOwogfTsKIAotY2xhc3Mg
Q2FjaGVkU3RyaW5nSW1wbCA6IHB1YmxpYyBWYXJpYWJsZUxlbmd0aE9iamVjdDxTdHJpbmdJbXBs
PiB7Ci1wdWJsaWM6Ci0gICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU3Ry
aW5nSW1wbCYgaW1wbCkKLSAgICB7Ci0gICAgICAgIG1fdW5pcXVlZFN0cmluZ0ltcGwuZW5jb2Rl
KGVuY29kZXIsIGltcGwpOwotICAgIH0KLQotICAgIFN0cmluZ0ltcGwqIGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fdW5pcXVlZFN0cmluZ0lt
cGwuZGVjb2RlKGRlY29kZXIpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBDYWNoZWRVbmlxdWVk
U3RyaW5nSW1wbCBtX3VuaXF1ZWRTdHJpbmdJbXBsOwotfTsKK2NsYXNzIENhY2hlZFVuaXF1ZWRT
dHJpbmdJbXBsIDogcHVibGljIENhY2hlZFVuaXF1ZWRTdHJpbmdJbXBsQmFzZTxVbmlxdWVkU3Ry
aW5nSW1wbD4geyB9OworY2xhc3MgQ2FjaGVkU3RyaW5nSW1wbCA6IHB1YmxpYyBDYWNoZWRVbmlx
dWVkU3RyaW5nSW1wbEJhc2U8U3RyaW5nSW1wbD4geyB9OwogCiBjbGFzcyBDYWNoZWRTdHJpbmcg
OiBwdWJsaWMgVmFyaWFibGVMZW5ndGhPYmplY3Q8U3RyaW5nPiB7CiBwdWJsaWM6CkBAIC0xNTcy
LDcgKzE1NjAsNyBAQCBwdWJsaWM6CiAgICAgSWRlbnRpZmllciBlY21hTmFtZShEZWNvZGVyJiBk
ZWNvZGVyKSBjb25zdCB7IHJldHVybiBtX2VjbWFOYW1lLmRlY29kZShkZWNvZGVyKTsgfQogICAg
IElkZW50aWZpZXIgaW5mZXJyZWROYW1lKERlY29kZXImIGRlY29kZXIpIGNvbnN0IHsgcmV0dXJu
IG1faW5mZXJyZWROYW1lLmRlY29kZShkZWNvZGVyKTsgfQogCi0gICAgVW5saW5rZWRGdW5jdGlv
bkV4ZWN1dGFibGU6OlJhcmVEYXRhKiByYXJlRGF0YShEZWNvZGVyJiBkZWNvZGVyKSBjb25zdCB7
IHJldHVybiBtX3JhcmVEYXRhLmRlY29kZUFzUHRyKGRlY29kZXIpOyB9CisgICAgVW5saW5rZWRG
dW5jdGlvbkV4ZWN1dGFibGU6OlJhcmVEYXRhKiByYXJlRGF0YShEZWNvZGVyJiBkZWNvZGVyKSBj
b25zdCB7IHJldHVybiBtX3JhcmVEYXRhLmRlY29kZShkZWNvZGVyKTsgfQogCiAgICAgY29uc3Qg
Q2FjaGVkV3JpdGVCYXJyaWVyPENhY2hlZEZ1bmN0aW9uQ29kZUJsb2NrLCBVbmxpbmtlZEZ1bmN0
aW9uQ29kZUJsb2NrPiYgdW5saW5rZWRDb2RlQmxvY2tGb3JDYWxsKCkgY29uc3QgeyByZXR1cm4g
bV91bmxpbmtlZENvZGVCbG9ja0ZvckNhbGw7IH0KICAgICBjb25zdCBDYWNoZWRXcml0ZUJhcnJp
ZXI8Q2FjaGVkRnVuY3Rpb25Db2RlQmxvY2ssIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s+JiB1
bmxpbmtlZENvZGVCbG9ja0ZvckNvbnN0cnVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdW5saW5rZWRD
b2RlQmxvY2tGb3JDb25zdHJ1Y3Q7IH0KQEAgLTE2MDIsNyArMTU5MCw3IEBAIHByaXZhdGU6CiAg
ICAgdW5zaWduZWQgbV9zdXBlckJpbmRpbmcgOiAxOwogICAgIHVuc2lnbmVkIG1fZGVyaXZlZENv
bnRleHRUeXBlOiAyOwogCi0gICAgQ2FjaGVkT3B0aW9uYWw8Q2FjaGVkRnVuY3Rpb25FeGVjdXRh
YmxlUmFyZURhdGE+IG1fcmFyZURhdGE7CisgICAgQ2FjaGVkUHRyPENhY2hlZEZ1bmN0aW9uRXhl
Y3V0YWJsZVJhcmVEYXRhPiBtX3JhcmVEYXRhOwogCiAgICAgQ2FjaGVkSWRlbnRpZmllciBtX25h
bWU7CiAgICAgQ2FjaGVkSWRlbnRpZmllciBtX2VjbWFOYW1lOwpAQCAtMTY1NSw3ICsxNjQzLDcg
QEAgcHVibGljOgogICAgIFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUoKSBjb25zdCB7IHJldHVy
biBtX3BhcnNlTW9kZTsgfQogICAgIHVuc2lnbmVkIGNvZGVUeXBlKCkgY29uc3QgeyByZXR1cm4g
bV9jb2RlVHlwZTsgfQogCi0gICAgVW5saW5rZWRDb2RlQmxvY2s6OlJhcmVEYXRhKiByYXJlRGF0
YShEZWNvZGVyJiBkZWNvZGVyKSBjb25zdCB7IHJldHVybiBtX3JhcmVEYXRhLmRlY29kZUFzUHRy
KGRlY29kZXIpOyB9CisgICAgVW5saW5rZWRDb2RlQmxvY2s6OlJhcmVEYXRhKiByYXJlRGF0YShE
ZWNvZGVyJiBkZWNvZGVyKSBjb25zdCB7IHJldHVybiBtX3JhcmVEYXRhLmRlY29kZShkZWNvZGVy
KTsgfQogCiBwcml2YXRlOgogICAgIFZpcnR1YWxSZWdpc3RlciBtX3RoaXNSZWdpc3RlcjsKQEAg
LTE2OTAsNyArMTY3OCw3IEBAIHByaXZhdGU6CiAKICAgICBDYWNoZWRNZXRhZGF0YVRhYmxlIG1f
bWV0YWRhdGE7CiAKLSAgICBDYWNoZWRPcHRpb25hbDxDYWNoZWRDb2RlQmxvY2tSYXJlRGF0YT4g
bV9yYXJlRGF0YTsKKyAgICBDYWNoZWRQdHI8Q2FjaGVkQ29kZUJsb2NrUmFyZURhdGE+IG1fcmFy
ZURhdGE7CiAKICAgICBDYWNoZWRTdHJpbmcgbV9zb3VyY2VVUkxEaXJlY3RpdmU7CiAgICAgQ2Fj
aGVkU3RyaW5nIG1fc291cmNlTWFwcGluZ1VSTERpcmVjdGl2ZTsKQEAgLTE5NTMsNyArMTk0MSw3
IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBDYWNoZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBVbmxpCiAgICAgbV9zdXBlckJpbmRpbmcgPSBleGVjdXRh
YmxlLm1fc3VwZXJCaW5kaW5nOwogICAgIG1fZGVyaXZlZENvbnRleHRUeXBlID0gZXhlY3V0YWJs
ZS5tX2Rlcml2ZWRDb250ZXh0VHlwZTsKIAotICAgIG1fcmFyZURhdGEuZW5jb2RlKGVuY29kZXIs
IGV4ZWN1dGFibGUubV9yYXJlRGF0YSk7CisgICAgbV9yYXJlRGF0YS5lbmNvZGUoZW5jb2Rlciwg
ZXhlY3V0YWJsZS5tX3JhcmVEYXRhLmdldCgpKTsKIAogICAgIG1fbmFtZS5lbmNvZGUoZW5jb2Rl
ciwgZXhlY3V0YWJsZS5uYW1lKCkpOwogICAgIG1fZWNtYU5hbWUuZW5jb2RlKGVuY29kZXIsIGV4
ZWN1dGFibGUuZWNtYU5hbWUoKSk7CkBAIC0yMDU4LDcgKzIwNDYsNyBAQCBBTFdBWVNfSU5MSU5F
IHZvaWQgQ2FjaGVkQ29kZUJsb2NrPENvZGVCbG9ja1R5cGU+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29ucwogICAgICAgICBtX2xpbmtUaW1lQ29uc3RhbnRzW2ldID0gY29kZUJsb2NrLm1f
bGlua1RpbWVDb25zdGFudHNbaV07CiAKICAgICBtX21ldGFkYXRhLmVuY29kZShlbmNvZGVyLCBj
b2RlQmxvY2subV9tZXRhZGF0YS5nZXQoKSk7Ci0gICAgbV9yYXJlRGF0YS5lbmNvZGUoZW5jb2Rl
ciwgY29kZUJsb2NrLm1fcmFyZURhdGEpOworICAgIG1fcmFyZURhdGEuZW5jb2RlKGVuY29kZXIs
IGNvZGVCbG9jay5tX3JhcmVEYXRhLmdldCgpKTsKIAogICAgIG1fc291cmNlVVJMRGlyZWN0aXZl
LmVuY29kZShlbmNvZGVyLCBjb2RlQmxvY2subV9zb3VyY2VVUkxEaXJlY3RpdmUuaW1wbCgpKTsK
ICAgICBtX3NvdXJjZU1hcHBpbmdVUkxEaXJlY3RpdmUuZW5jb2RlKGVuY29kZXIsIGNvZGVCbG9j
ay5tX3NvdXJjZVVSTERpcmVjdGl2ZS5pbXBsKCkpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFu
Z2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCA0MGJiYmRiYjQ3ZGJmYjMwNDg2ODUwODg2
YzI0ZGQ2ODk2YTdkYjlhLi5lOTM0NmZiOWU1YTUyMTBmNGUyMDFmZjUyOTRjYzlmMjk0Mzc5ZjA5
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDE5LTAzLTMwICBUYWRldSBaYWdhbGxvICA8dHphZ2FsbG9AYXBw
bGUuY29tPgorCisgICAgICAgIENhY2hlIGJ5dGVjb2RlIGZvciBqc2MuY3BwIGhlbHBlcnMgYW5k
IGZpeCBDYWNoZWRTdHJpbmdJbXBsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTY0MDkKKworICAgICAgICBSZXZpZXdlZCBieSBTYWFtIEJhcmF0aS4K
KworICAgICAgICAqIHN0cmVzcy9ieXRlY29kZS1jYWNoZS1jYWNoZWQtc3RyaW5nLWltcGwuanM6
IEFkZGVkLgorICAgICAgICAoZik6CisgICAgICAgIChnKToKKyAgICAgICAgKiBzdHJlc3MvYnl0
ZWNvZGUtY2FjaGUtcnVuLXN0cmluZy5qczogQWRkZWQuCisKIDIwMTktMDMtMjggIFNhYW0gQmFy
YXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQmFja3dhcmRzR3JhcGggbmVlZHMg
dG8gY29uc2lkZXIgYmFjayBlZGdlcyBhcyB0aGUgYmFja3dhcmQncyByb290IHN1Y2Nlc3Nvcgpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYnl0ZWNvZGUtY2FjaGUtY2FjaGVkLXN0cmluZy1p
bXBsLmpzIGIvSlNUZXN0cy9zdHJlc3MvYnl0ZWNvZGUtY2FjaGUtY2FjaGVkLXN0cmluZy1pbXBs
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA1NjQ3OWY5YWM2MGM5NDI1NzZhNGE5MmVhNDdhNjA5NDFjZWI5YmMK
LS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9ieXRlY29kZS1jYWNoZS1jYWNoZWQt
c3RyaW5nLWltcGwuanMKQEAgLTAsMCArMSwyMCBAQAorLy9AIHJ1bkJ5dGVjb2RlQ2FjaGUKKwor
ZnVuY3Rpb24gZigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHguZm9vID0gImZvbyI7Cit9Citm
dW5jdGlvbiBnKCkgeworICAgIHN3aXRjaCAoJ2ZvbycpIHsKKyAgICAgICAgY2FzZSAiZm9vIjoK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICJiYXIiOgorICAgICAgICBjYXNlICJi
YXoiOgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaG91
bGQgaGF2ZSBqdW1wZWQgdG8gYGZvb2AnKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KK30K
KworZygpOworZigpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYnl0ZWNvZGUtY2FjaGUt
cnVuLXN0cmluZy5qcyBiL0pTVGVzdHMvc3RyZXNzL2J5dGVjb2RlLWNhY2hlLXJ1bi1zdHJpbmcu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNmM3ZGZkNTE5ZjIyZjUxZDU4OTY2ZTlhM2Q0ODFlZmU0NGE3MmFiMwot
LS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2J5dGVjb2RlLWNhY2hlLXJ1bi1zdHJp
bmcuanMKQEAgLTAsMCArMSwzIEBACisvL0AgcnVuQnl0ZWNvZGVDYWNoZQorCitydW5TdHJpbmco
J3VuZGVmaW5lZCcpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>