<?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>179528</bug_id>
          
          <creation_ts>2017-11-10 07:43:06 -0800</creation_ts>
          <short_desc>The memory consumption of DFG::BasicBlock can be easily reduced a bit</short_desc>
          <delta_ts>2017-11-15 09:37:24 -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>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>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Robin Morisset">rmorisset</reporter>
          <assigned_to name="Robin Morisset">rmorisset</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</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>1370302</commentid>
    <comment_count>0</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2017-11-10 07:43:06 -0800</bug_when>
    <thetext>I see several ways of doing it:
- Reordering a few fields to reduce padding brings sizeof(BasicBlock) from 3032 to 3016.
- Making Operands a single vector (safe since we never change the number of arguments) instead of 2 reduces the size from 3016 to 2984, and halves the number of memory allocations when both inline buffer overflow, and avoids overflowing in some cases when we have just a bit more locals than 16, but don&apos;t have the full 8 arguments, or the reverse. As a bonus, it makes BasicBlocks more readable when printed in the debugger.

This patch includes both of these changes (since the first one is fairly trivial).
No performance change on some quick benchmarks (none was expected, since this just reduces memory pressure a bit)

Another idea (for a possible further patch) would be to merge all five Operands in BasicBlock into a single Operand of a struct with 5 fields (since all Operands share the same number of locals and of arguments). This would reduce memory consumption and allocation more significantly, but would have a risk of harming memory locality depending on the access pattern. It would also be significantly more involved, since it would require fixing every location that uses one of these 5 fields.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370311</commentid>
    <comment_count>1</comment_count>
      <attachid>326581</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2017-11-10 07:53:39 -0800</bug_when>
    <thetext>Created attachment 326581
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370313</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-11-10 07:55:08 -0800</bug_when>
    <thetext>Attachment 326581 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGBasicBlock.cpp:39:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGBasicBlock.cpp:40:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGBasicBlock.cpp:41:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGBasicBlock.cpp:46:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGBasicBlock.cpp:47:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGBasicBlock.cpp:48:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
Total errors found: 6 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370330</commentid>
    <comment_count>3</comment_count>
      <attachid>326581</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-11-10 08:24:19 -0800</bug_when>
    <thetext>Comment on attachment 326581
Patch

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

r=me

&gt; Source/JavaScriptCore/bytecode/Operands.h:186
&gt;      {

You can just write this as:
operand(operand) = value

&gt; Source/JavaScriptCore/bytecode/Operands.h:252
&gt; +    size_t m_numArguments;

I say make this unsigned. This probably won’t matter because of padding, but it might be useful if someone adds a field in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370338</commentid>
    <comment_count>4</comment_count>
      <attachid>326589</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2017-11-10 08:36:48 -0800</bug_when>
    <thetext>Created attachment 326589
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370348</commentid>
    <comment_count>5</comment_count>
      <attachid>326589</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-10 08:56:23 -0800</bug_when>
    <thetext>Comment on attachment 326589
Patch for landing

Rejecting attachment 326589 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=release&apos;, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
es/Data/EWS/WebKit/WebKitBuild/JavaScriptCore.build/Release/JavaScriptCore.build/Objects-normal/x86_64/UnifiedSource28.o

** BUILD FAILED **


The following build commands failed:
	CompileC /Volumes/Data/EWS/WebKit/WebKitBuild/JavaScriptCore.build/Release/JavaScriptCore.build/Objects-normal/x86_64/UnifiedSource9.o /Volumes/Data/EWS/WebKit/WebKitBuild/Release/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource9.cpp normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)

Full output: http://webkit-queues.webkit.org/results/5177748</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370355</commentid>
    <comment_count>6</comment_count>
      <attachid>326592</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2017-11-10 09:08:34 -0800</bug_when>
    <thetext>Created attachment 326592
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370377</commentid>
    <comment_count>7</comment_count>
      <attachid>326592</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-10 09:40:03 -0800</bug_when>
    <thetext>Comment on attachment 326592
Patch for landing

Clearing flags on attachment: 326592

Committed r224689: &lt;https://trac.webkit.org/changeset/224689&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370378</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-10 09:40:05 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371914</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 09:37:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/35562082&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326581</attachid>
            <date>2017-11-10 07:53:39 -0800</date>
            <delta_ts>2017-11-10 08:36:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179528-20171110165337.patch</filename>
            <type>text/plain</type>
            <size>15680</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0NjgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
Y2ZmNDU0NzA2Zjg2YmY2YTk1YmE5MmYzNWQxZmE4OTcyYTA2ODBiLi5mMmMzNGE3YjhkNzU0NGNj
NGE3NWVjZGEwOTQwMmVlZThlNzYwMjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MyBAQAorMjAxNy0xMS0xMCAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUu
Y29tPgorCisgICAgICAgIFRoZSBtZW1vcnkgY29uc3VtcHRpb24gb2YgREZHOjpCYXNpY0Jsb2Nr
IGNhbiBiZSBlYXNpbHkgcmVkdWNlZCBhIGJpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5NTI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQSBmZXcgY2hhbmdlcyBoZXJlOgorICAgICAgICAtIFJlb3Jk
ZXJpbmcgc29tZSBmaWVsZHMgb2YgREZHOjpCYXNpY0Jsb2NrIHRvIHJlZHVjZSBwYWRkaW5nCisg
ICAgICAgIC0gTWFraW5nIHRoZSBlbnVtIGZpZWxkcyB0aGF0IGFyZSBnbG9yaWZpZWQgYm9vbGVh
bnMgZml0IGludG8gYSB1OAorICAgICAgICAtIE1ha2UgZWFjaCBPcGVyYW5kcyBvYmplY3QgaGF2
ZSBhIHNpbmdsZSB2ZWN0b3IgdGhhdCBob2xkcyBhbGwgYXJndW1lbnRzIGZvbGxvd2VkIGJ5IGFs
bCBsb2NhbHMsIGluc3RlYWQgb2YgdHdvIHZlY3RvcnMuCisgICAgICAgICAgVGhpcyBjaGFuZ2Ug
d29ya3MgYmVjYXVzZSB3ZSBuZXZlciBpbmNyZWFzZSB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyBh
ZnRlciBhbGxvY2F0aW5nIGFuIE9wZXJhbmRzIG9iamVjdC4KKyAgICAgICAgICBJdCBsZXRzIHVz
IGF2b2lkIG9uZSBleHRyYSBjYXBhY2l0eSBmaWVsZCBhbmQgb25lIGV4dHJhIHBvaW50ZXIgZmll
bGQgcGVyIE9wZXJhbmRzLAorICAgICAgICAgIGFuZCBtb3JlIGltcG9ydGFudGx5IG9uZSBhbGxv
Y2F0aW9uIHBlciBPcGVyYW5kcyB3aGVuZXZlciBib3RoIHZlY3RvcnMgd291bGQgaGF2ZSBvdmVy
Zmxvd2VkIHRoZWlyIGlubGluZWQgYnVmZmVyLgorICAgICAgICAgIEFkZGl0aW9uYWxseSwgaWYg
YSBzaW5nbGUgdmVjdG9yIHdvdWxkIGhhdmUgb3ZlcmZsb3dlZCBpdHMgaW5saW5lIGJ1ZmZlciwg
d2hpbGUgdGhlIG90aGVyIHdvdWxkIGhhdmUgaGFkIHNvbWUgZnJlZSBzcGFjZSwKKyAgICAgICAg
ICB3ZSBoYXZlIGEgY2hhbmNlIHRvIGF2b2lkIGFuIGFsbG9jYXRpb24uCisgICAgICAgIC0gRmlu
YWxseSwgdGhlIHRocmVlIG1ldGhvZHMgYXJndW1lbnRGb3JJbmRleCwgdmFyaWFibGVGb3JJbmRl
eCBhbmQgaW5kZXhGb3JPcGVyYW5kIHdlcmUgZGVsZXRlZCBzaW5jZSB0aGV5IHdlcmUgZGVhZCBj
b2RlLgorCisgICAgICAgICogYnl0ZWNvZGUvT3BlcmFuZHMuaDoKKyAgICAgICAgKEpTQzo6T3Bl
cmFuZHM6Ok9wZXJhbmRzKToKKyAgICAgICAgKEpTQzo6T3BlcmFuZHM6Om51bWJlck9mQXJndW1l
bnRzIGNvbnN0KToKKyAgICAgICAgKEpTQzo6T3BlcmFuZHM6Om51bWJlck9mTG9jYWxzIGNvbnN0
KToKKyAgICAgICAgKEpTQzo6T3BlcmFuZHM6OmFyZ3VtZW50KToKKyAgICAgICAgKEpTQzo6T3Bl
cmFuZHM6OmFyZ3VtZW50IGNvbnN0KToKKyAgICAgICAgKEpTQzo6T3BlcmFuZHM6OmxvY2FsKToK
KyAgICAgICAgKEpTQzo6T3BlcmFuZHM6OmxvY2FsIGNvbnN0KToKKyAgICAgICAgKEpTQzo6T3Bl
cmFuZHM6OmVuc3VyZUxvY2Fscyk6CisgICAgICAgIChKU0M6Ok9wZXJhbmRzOjpzZXRMb2NhbCk6
CisgICAgICAgIChKU0M6Ok9wZXJhbmRzOjpnZXRMb2NhbCk6CisgICAgICAgIChKU0M6Ok9wZXJh
bmRzOjpzZXRBcmd1bWVudEZpcnN0VGltZSk6CisgICAgICAgIChKU0M6Ok9wZXJhbmRzOjpzZXRM
b2NhbEZpcnN0VGltZSk6CisgICAgICAgIChKU0M6Ok9wZXJhbmRzOjpvcGVyYW5kKToKKyAgICAg
ICAgKEpTQzo6T3BlcmFuZHM6OnNldE9wZXJhbmQpOgorICAgICAgICAoSlNDOjpPcGVyYW5kczo6
c2l6ZSBjb25zdCk6CisgICAgICAgIChKU0M6Ok9wZXJhbmRzOjphdCBjb25zdCk6CisgICAgICAg
IChKU0M6Ok9wZXJhbmRzOjphdCk6CisgICAgICAgIChKU0M6Ok9wZXJhbmRzOjppc0FyZ3VtZW50
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6T3BlcmFuZHM6OmlzVmFyaWFibGUgY29uc3QpOgorICAg
ICAgICAoSlNDOjpPcGVyYW5kczo6dmlydHVhbFJlZ2lzdGVyRm9ySW5kZXggY29uc3QpOgorICAg
ICAgICAoSlNDOjpPcGVyYW5kczo6ZmlsbCk6CisgICAgICAgIChKU0M6Ok9wZXJhbmRzOjpvcGVy
YXRvcj09IGNvbnN0KToKKyAgICAgICAgKEpTQzo6T3BlcmFuZHM6OmFyZ3VtZW50Rm9ySW5kZXgg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpPcGVyYW5kczo6dmFyaWFibGVGb3JJbmRl
eCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok9wZXJhbmRzOjppbmRleEZvck9wZXJh
bmQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdCYXNpY0Jsb2NrLmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpCYXNpY0Jsb2NrOjpCYXNpY0Jsb2NrKToKKyAgICAgICAgKiBkZmcv
REZHQmFzaWNCbG9jay5oOgorICAgICAgICAqIGRmZy9ERkdCcmFuY2hEaXJlY3Rpb24uaDoKKyAg
ICAgICAgKiBkZmcvREZHU3RydWN0dXJlQ2xvYmJlclN0YXRlLmg6CisKIDIwMTctMTEtMDkgIFl1
c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0pTQ10gUmV0
cnkgbW9kdWxlIGZldGNoaW5nIGlmIHByZXZpb3VzIHJlcXVlc3QgZmFpbHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGVyYW5kcy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL09wZXJhbmRzLmgKaW5kZXggMjZiZjU5Mzg1OGU4NWYwNTBjYjAz
OGY1ZGM5MjgzZmY5MmZlMWFlNS4uODk4ZDRhZmI3Y2Y4OTMzZDgyNjI5MjM3OGFmYWU0OWZhZDc2
YTZkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wZXJhbmRz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wZXJhbmRzLmgKQEAgLTQy
LDQwICs0Miw0OCBAQCBlbnVtIE9wZXJhbmRzTGlrZVRhZyB7IE9wZXJhbmRzTGlrZSB9OwogdGVt
cGxhdGU8dHlwZW5hbWUgVD4KIGNsYXNzIE9wZXJhbmRzIHsKIHB1YmxpYzoKLSAgICBPcGVyYW5k
cygpIHsgfQorICAgIE9wZXJhbmRzKCkKKyAgICAgICAgOiBtX251bUFyZ3VtZW50cygwKSB7IH0K
ICAgICAKICAgICBleHBsaWNpdCBPcGVyYW5kcyhzaXplX3QgbnVtQXJndW1lbnRzLCBzaXplX3Qg
bnVtTG9jYWxzKQorICAgICAgICA6IG1fbnVtQXJndW1lbnRzKG51bUFyZ3VtZW50cykKICAgICB7
CiAgICAgICAgIGlmIChXVEY6OlZlY3RvclRyYWl0czxUPjo6bmVlZHNJbml0aWFsaXphdGlvbikg
ewotICAgICAgICAgICAgbV9hcmd1bWVudHMucmVzaXplKG51bUFyZ3VtZW50cyk7Ci0gICAgICAg
ICAgICBtX2xvY2Fscy5yZXNpemUobnVtTG9jYWxzKTsKKyAgICAgICAgICAgIG1fdmFsdWVzLnJl
c2l6ZShudW1Bcmd1bWVudHMgKyBudW1Mb2NhbHMpOwogICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgbV9hcmd1bWVudHMuZmlsbChUKCksIG51bUFyZ3VtZW50cyk7Ci0gICAgICAgICAgICBt
X2xvY2Fscy5maWxsKFQoKSwgbnVtTG9jYWxzKTsKKyAgICAgICAgICAgIG1fdmFsdWVzLmZpbGwo
VCgpLCBudW1Bcmd1bWVudHMgKyBudW1Mb2NhbHMpOwogICAgICAgICB9CiAgICAgfQogCiAgICAg
ZXhwbGljaXQgT3BlcmFuZHMoc2l6ZV90IG51bUFyZ3VtZW50cywgc2l6ZV90IG51bUxvY2Fscywg
Y29uc3QgVCYgaW5pdGlhbFZhbHVlKQorICAgICAgICA6IG1fbnVtQXJndW1lbnRzKG51bUFyZ3Vt
ZW50cykKICAgICB7Ci0gICAgICAgIG1fYXJndW1lbnRzLmZpbGwoaW5pdGlhbFZhbHVlLCBudW1B
cmd1bWVudHMpOwotICAgICAgICBtX2xvY2Fscy5maWxsKGluaXRpYWxWYWx1ZSwgbnVtTG9jYWxz
KTsKKyAgICAgICAgbV92YWx1ZXMuZmlsbChpbml0aWFsVmFsdWUsIG51bUFyZ3VtZW50cyArIG51
bUxvY2Fscyk7CiAgICAgfQogICAgIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CiAgICAgZXhw
bGljaXQgT3BlcmFuZHMoT3BlcmFuZHNMaWtlVGFnLCBjb25zdCBPcGVyYW5kczxVPiYgb3RoZXIp
CisgICAgICAgIDogbV9udW1Bcmd1bWVudHMob3RoZXIubnVtYmVyT2ZBcmd1bWVudHMoKSkKICAg
ICB7Ci0gICAgICAgIG1fYXJndW1lbnRzLmZpbGwoVCgpLCBvdGhlci5udW1iZXJPZkFyZ3VtZW50
cygpKTsKLSAgICAgICAgbV9sb2NhbHMuZmlsbChUKCksIG90aGVyLm51bWJlck9mTG9jYWxzKCkp
OworICAgICAgICBtX3ZhbHVlcy5maWxsKFQoKSwgb3RoZXIubnVtYmVyT2ZBcmd1bWVudHMoKSAr
IG90aGVyLm51bWJlck9mTG9jYWxzKCkpOwogICAgIH0KICAgICAKLSAgICBzaXplX3QgbnVtYmVy
T2ZBcmd1bWVudHMoKSBjb25zdCB7IHJldHVybiBtX2FyZ3VtZW50cy5zaXplKCk7IH0KLSAgICBz
aXplX3QgbnVtYmVyT2ZMb2NhbHMoKSBjb25zdCB7IHJldHVybiBtX2xvY2Fscy5zaXplKCk7IH0K
KyAgICBzaXplX3QgbnVtYmVyT2ZBcmd1bWVudHMoKSBjb25zdCB7IHJldHVybiBtX251bUFyZ3Vt
ZW50czsgfQorICAgIHNpemVfdCBudW1iZXJPZkxvY2FscygpIGNvbnN0IHsgcmV0dXJuIG1fdmFs
dWVzLnNpemUoKSAtIG1fbnVtQXJndW1lbnRzOyB9CiAgICAgCi0gICAgVCYgYXJndW1lbnQoc2l6
ZV90IGlkeCkgeyByZXR1cm4gbV9hcmd1bWVudHNbaWR4XTsgfQotICAgIGNvbnN0IFQmIGFyZ3Vt
ZW50KHNpemVfdCBpZHgpIGNvbnN0IHsgcmV0dXJuIG1fYXJndW1lbnRzW2lkeF07IH0KKyAgICBU
JiBhcmd1bWVudChzaXplX3QgaWR4KQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlkeCA8IG1fbnVt
QXJndW1lbnRzKTsKKyAgICAgICAgcmV0dXJuIG1fdmFsdWVzW2lkeF07CisgICAgfQorICAgIGNv
bnN0IFQmIGFyZ3VtZW50KHNpemVfdCBpZHgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQo
aWR4IDwgbV9udW1Bcmd1bWVudHMpOworICAgICAgICByZXR1cm4gbV92YWx1ZXNbaWR4XTsKKyAg
ICB9CiAgICAgCi0gICAgVCYgbG9jYWwoc2l6ZV90IGlkeCkgeyByZXR1cm4gbV9sb2NhbHNbaWR4
XTsgfQotICAgIGNvbnN0IFQmIGxvY2FsKHNpemVfdCBpZHgpIGNvbnN0IHsgcmV0dXJuIG1fbG9j
YWxzW2lkeF07IH0KKyAgICBUJiBsb2NhbChzaXplX3QgaWR4KSB7IHJldHVybiBtX3ZhbHVlc1tt
X251bUFyZ3VtZW50cyArIGlkeF07IH0KKyAgICBjb25zdCBUJiBsb2NhbChzaXplX3QgaWR4KSBj
b25zdCB7IHJldHVybiBtX3ZhbHVlc1ttX251bUFyZ3VtZW50cyArIGlkeF07IH0KICAgICAKICAg
ICB0ZW1wbGF0ZTxPcGVyYW5kS2luZCBvcGVyYW5kS2luZD4KICAgICBzaXplX3Qgc2l6ZUZvcigp
IGNvbnN0CkBAIC0xMDEsNjIgKzEwOSw1OCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBlbnN1
cmVMb2NhbHMoc2l6ZV90IHNpemUpCiAgICAgewotICAgICAgICBzaXplX3Qgb2xkU2l6ZSA9IG1f
bG9jYWxzLnNpemUoKTsKLSAgICAgICAgaWYgKHNpemUgPD0gb2xkU2l6ZSkKKyAgICAgICAgc2l6
ZV90IG9sZFNpemUgPSBtX3ZhbHVlcy5zaXplKCk7CisgICAgICAgIHNpemVfdCBuZXdTaXplID0g
bV9udW1Bcmd1bWVudHMgKyBzaXplOworICAgICAgICBpZiAobmV3U2l6ZSA8PSBvbGRTaXplKQog
ICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIG1fbG9jYWxzLmdyb3coc2l6ZSk7CisgICAg
ICAgIG1fdmFsdWVzLmdyb3cobmV3U2l6ZSk7CiAgICAgICAgIGlmICghV1RGOjpWZWN0b3JUcmFp
dHM8VD46Om5lZWRzSW5pdGlhbGl6YXRpb24pIHsKLSAgICAgICAgICAgIGZvciAoc2l6ZV90IGkg
PSBvbGRTaXplOyBpIDwgbV9sb2NhbHMuc2l6ZSgpOyArK2kpCi0gICAgICAgICAgICAgICAgbV9s
b2NhbHNbaV0gPSBUKCk7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gb2xkU2l6ZTsgaSA8
IG1fdmFsdWVzLnNpemUoKTsgKytpKQorICAgICAgICAgICAgICAgIG1fdmFsdWVzW2ldID0gVCgp
OwogICAgICAgICB9CiAgICAgfQogCiAgICAgdm9pZCBlbnN1cmVMb2NhbHMoc2l6ZV90IHNpemUs
IGNvbnN0IFQmIGVuc3VyZWRWYWx1ZSkKICAgICB7Ci0gICAgICAgIHNpemVfdCBvbGRTaXplID0g
bV9sb2NhbHMuc2l6ZSgpOwotICAgICAgICBpZiAoc2l6ZSA8PSBvbGRTaXplKQorICAgICAgICBz
aXplX3Qgb2xkU2l6ZSA9IG1fdmFsdWVzLnNpemUoKTsKKyAgICAgICAgc2l6ZV90IG5ld1NpemUg
PSBtX251bUFyZ3VtZW50cyArIHNpemU7CisgICAgICAgIGlmIChuZXdTaXplIDw9IG9sZFNpemUp
CiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbV9sb2NhbHMuZ3JvdyhzaXplKTsKLSAg
ICAgICAgZm9yIChzaXplX3QgaSA9IG9sZFNpemU7IGkgPCBtX2xvY2Fscy5zaXplKCk7ICsraSkK
LSAgICAgICAgICAgIG1fbG9jYWxzW2ldID0gZW5zdXJlZFZhbHVlOworICAgICAgICBtX3ZhbHVl
cy5ncm93KG5ld1NpemUpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gb2xkU2l6ZTsgaSA8IG1f
dmFsdWVzLnNpemUoKTsgKytpKQorICAgICAgICAgICAgbV92YWx1ZXNbaV0gPSBlbnN1cmVkVmFs
dWU7CiAgICAgfQogICAgIAogICAgIHZvaWQgc2V0TG9jYWwoc2l6ZV90IGlkeCwgY29uc3QgVCYg
dmFsdWUpCiAgICAgewogICAgICAgICBlbnN1cmVMb2NhbHMoaWR4ICsgMSk7Ci0gICAgICAgIAot
ICAgICAgICBtX2xvY2Fsc1tpZHhdID0gdmFsdWU7CisgICAgICAgIGxvY2FsKGlkeCkgPSB2YWx1
ZTsKICAgICB9CiAgICAgCiAgICAgVCBnZXRMb2NhbChzaXplX3QgaWR4KQogICAgIHsKLSAgICAg
ICAgaWYgKGlkeCA+PSBtX2xvY2Fscy5zaXplKCkpCi0gICAgICAgICAgICByZXR1cm4gVCgpOwot
ICAgICAgICByZXR1cm4gbV9sb2NhbHNbaWR4XTsKKyAgICAgICAgcmV0dXJuIGlkeCA+PSBudW1i
ZXJPZkxvY2FscygpID8gVCgpIDogbG9jYWwoaWR4KTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBz
ZXRBcmd1bWVudEZpcnN0VGltZShzaXplX3QgaWR4LCBjb25zdCBUJiB2YWx1ZSkKICAgICB7Ci0g
ICAgICAgIEFTU0VSVChtX2FyZ3VtZW50c1tpZHhdID09IFQoKSk7CisgICAgICAgIEFTU0VSVCht
X3ZhbHVlc1tpZHhdID09IFQoKSk7CiAgICAgICAgIGFyZ3VtZW50KGlkeCkgPSB2YWx1ZTsKICAg
ICB9CiAgICAgCiAgICAgdm9pZCBzZXRMb2NhbEZpcnN0VGltZShzaXplX3QgaWR4LCBjb25zdCBU
JiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVChpZHggPj0gbV9sb2NhbHMuc2l6ZSgpIHx8
IG1fbG9jYWxzW2lkeF0gPT0gVCgpKTsKKyAgICAgICAgQVNTRVJUKGlkeCA+PSBudW1iZXJPZkxv
Y2FscygpIHx8IGxvY2FsKGlkeCkgPT0gVCgpKTsKICAgICAgICAgc2V0TG9jYWwoaWR4LCB2YWx1
ZSk7CiAgICAgfQogICAgIAogICAgIFQmIG9wZXJhbmQoaW50IG9wZXJhbmQpCiAgICAgewotICAg
ICAgICBpZiAob3BlcmFuZElzQXJndW1lbnQob3BlcmFuZCkpIHsKLSAgICAgICAgICAgIGludCBh
cmd1bWVudCA9IFZpcnR1YWxSZWdpc3RlcihvcGVyYW5kKS50b0FyZ3VtZW50KCk7Ci0gICAgICAg
ICAgICByZXR1cm4gbV9hcmd1bWVudHNbYXJndW1lbnRdOwotICAgICAgICB9Ci0KLSAgICAgICAg
cmV0dXJuIG1fbG9jYWxzW1ZpcnR1YWxSZWdpc3RlcihvcGVyYW5kKS50b0xvY2FsKCldOworICAg
ICAgICBpZiAob3BlcmFuZElzQXJndW1lbnQob3BlcmFuZCkpCisgICAgICAgICAgICByZXR1cm4g
YXJndW1lbnQoVmlydHVhbFJlZ2lzdGVyKG9wZXJhbmQpLnRvQXJndW1lbnQoKSk7CisgICAgICAg
IHJldHVybiBsb2NhbChWaXJ0dWFsUmVnaXN0ZXIob3BlcmFuZCkudG9Mb2NhbCgpKTsKICAgICB9
CiAKICAgICBUJiBvcGVyYW5kKFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIpCkBAIC0x
ODAsMTMgKzE4NCwxMCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBzZXRPcGVyYW5kKGludCBv
cGVyYW5kLCBjb25zdCBUJiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIGlmIChvcGVyYW5kSXNBcmd1
bWVudChvcGVyYW5kKSkgewotICAgICAgICAgICAgaW50IGFyZ3VtZW50ID0gVmlydHVhbFJlZ2lz
dGVyKG9wZXJhbmQpLnRvQXJndW1lbnQoKTsKLSAgICAgICAgICAgIG1fYXJndW1lbnRzW2FyZ3Vt
ZW50XSA9IHZhbHVlOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIAot
ICAgICAgICBzZXRMb2NhbChWaXJ0dWFsUmVnaXN0ZXIob3BlcmFuZCkudG9Mb2NhbCgpLCB2YWx1
ZSk7CisgICAgICAgIGlmIChvcGVyYW5kSXNBcmd1bWVudChvcGVyYW5kKSkKKyAgICAgICAgICAg
IGFyZ3VtZW50KFZpcnR1YWxSZWdpc3RlcihvcGVyYW5kKS50b0FyZ3VtZW50KCkpID0gdmFsdWU7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNldExvY2FsKFZpcnR1YWxSZWdpc3RlcihvcGVy
YW5kKS50b0xvY2FsKCksIHZhbHVlKTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBzZXRPcGVyYW5k
KFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIsIGNvbnN0IFQmIHZhbHVlKQpAQCAtMTk0
LDMyICsxOTUsMTQgQEAgcHVibGljOgogICAgICAgICBzZXRPcGVyYW5kKHZpcnR1YWxSZWdpc3Rl
ci5vZmZzZXQoKSwgdmFsdWUpOwogICAgIH0KIAotICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyBy
ZXR1cm4gbnVtYmVyT2ZBcmd1bWVudHMoKSArIG51bWJlck9mTG9jYWxzKCk7IH0KLSAgICBjb25z
dCBUJiBhdChzaXplX3QgaW5kZXgpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAoaW5kZXggPCBu
dW1iZXJPZkFyZ3VtZW50cygpKQotICAgICAgICAgICAgcmV0dXJuIG1fYXJndW1lbnRzW2luZGV4
XTsKLSAgICAgICAgcmV0dXJuIG1fbG9jYWxzW2luZGV4IC0gbnVtYmVyT2ZBcmd1bWVudHMoKV07
Ci0gICAgfQotICAgIFQmIGF0KHNpemVfdCBpbmRleCkKLSAgICB7Ci0gICAgICAgIGlmIChpbmRl
eCA8IG51bWJlck9mQXJndW1lbnRzKCkpCi0gICAgICAgICAgICByZXR1cm4gbV9hcmd1bWVudHNb
aW5kZXhdOwotICAgICAgICByZXR1cm4gbV9sb2NhbHNbaW5kZXggLSBudW1iZXJPZkFyZ3VtZW50
cygpXTsKLSAgICB9CisgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlcy5z
aXplKCk7IH0KKyAgICBjb25zdCBUJiBhdChzaXplX3QgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1f
dmFsdWVzW2luZGV4XTsgfQorICAgIFQmIGF0KHNpemVfdCBpbmRleCkgeyByZXR1cm4gbV92YWx1
ZXNbaW5kZXhdOyB9CiAgICAgY29uc3QgVCYgb3BlcmF0b3JbXShzaXplX3QgaW5kZXgpIGNvbnN0
IHsgcmV0dXJuIGF0KGluZGV4KTsgfQogICAgIFQmIG9wZXJhdG9yW10oc2l6ZV90IGluZGV4KSB7
IHJldHVybiBhdChpbmRleCk7IH0KIAotICAgIGJvb2wgaXNBcmd1bWVudChzaXplX3QgaW5kZXgp
IGNvbnN0IHsgcmV0dXJuIGluZGV4IDwgbnVtYmVyT2ZBcmd1bWVudHMoKTsgfQorICAgIGJvb2wg
aXNBcmd1bWVudChzaXplX3QgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIGluZGV4IDwgbV9udW1Bcmd1
bWVudHM7IH0KICAgICBib29sIGlzVmFyaWFibGUoc2l6ZV90IGluZGV4KSBjb25zdCB7IHJldHVy
biAhaXNBcmd1bWVudChpbmRleCk7IH0KLSAgICBpbnQgYXJndW1lbnRGb3JJbmRleChzaXplX3Qg
aW5kZXgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaW5kZXg7Ci0gICAgfQotICAgIGlu
dCB2YXJpYWJsZUZvckluZGV4KHNpemVfdCBpbmRleCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBpbmRleCAtIG1fYXJndW1lbnRzLnNpemUoKTsKLSAgICB9CiAgICAgaW50IG9wZXJhbmRG
b3JJbmRleChzaXplX3QgaW5kZXgpIGNvbnN0CiAgICAgewogICAgICAgICBpZiAoaW5kZXggPCBu
dW1iZXJPZkFyZ3VtZW50cygpKQpAQCAtMjMwLDE2ICsyMTMsNiBAQCBwdWJsaWM6CiAgICAgewog
ICAgICAgICByZXR1cm4gVmlydHVhbFJlZ2lzdGVyKG9wZXJhbmRGb3JJbmRleChpbmRleCkpOwog
ICAgIH0KLSAgICBzaXplX3QgaW5kZXhGb3JPcGVyYW5kKGludCBvcGVyYW5kKSBjb25zdAotICAg
IHsKLSAgICAgICAgaWYgKG9wZXJhbmRJc0FyZ3VtZW50KG9wZXJhbmQpKQotICAgICAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PHNpemVfdD4oVmlydHVhbFJlZ2lzdGVyKG9wZXJhbmQpLnRvQXJn
dW1lbnQoKSk7Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxzaXplX3Q+KFZpcnR1YWxSZWdp
c3RlcihvcGVyYW5kKS50b0xvY2FsKCkpICsgbnVtYmVyT2ZBcmd1bWVudHMoKTsKLSAgICB9Ci0g
ICAgc2l6ZV90IGluZGV4Rm9yT3BlcmFuZChWaXJ0dWFsUmVnaXN0ZXIgcmVnKSBjb25zdAotICAg
IHsKLSAgICAgICAgcmV0dXJuIGluZGV4Rm9yT3BlcmFuZChyZWcub2Zmc2V0KCkpOwotICAgIH0K
ICAgICAKICAgICB2b2lkIHNldE9wZXJhbmRGaXJzdFRpbWUoaW50IG9wZXJhbmQsIGNvbnN0IFQm
IHZhbHVlKQogICAgIHsKQEAgLTI1MywxMCArMjI2LDggQEAgcHVibGljOgogICAgIAogICAgIHZv
aWQgZmlsbChUIHZhbHVlKQogICAgIHsKLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBt
X2FyZ3VtZW50cy5zaXplKCk7ICsraSkKLSAgICAgICAgICAgIG1fYXJndW1lbnRzW2ldID0gdmFs
dWU7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9sb2NhbHMuc2l6ZSgpOyArK2kp
Ci0gICAgICAgICAgICBtX2xvY2Fsc1tpXSA9IHZhbHVlOworICAgICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IG1fdmFsdWVzLnNpemUoKTsgKytpKQorICAgICAgICAgICAgbV92YWx1ZXNbaV0g
PSB2YWx1ZTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBjbGVhcigpCkBAIC0yNjksMTUgKzI0MCwx
NiBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChudW1iZXJPZkFyZ3VtZW50cygpID09IG90aGVy
Lm51bWJlck9mQXJndW1lbnRzKCkpOwogICAgICAgICBBU1NFUlQobnVtYmVyT2ZMb2NhbHMoKSA9
PSBvdGhlci5udW1iZXJPZkxvY2FscygpKTsKICAgICAgICAgCi0gICAgICAgIHJldHVybiBtX2Fy
Z3VtZW50cyA9PSBvdGhlci5tX2FyZ3VtZW50cyAmJiBtX2xvY2FscyA9PSBvdGhlci5tX2xvY2Fs
czsKKyAgICAgICAgcmV0dXJuIG1fdmFsdWVzID09IG90aGVyLm1fdmFsdWVzOwogICAgIH0KICAg
ICAKICAgICB2b2lkIGR1bXBJbkNvbnRleHQoUHJpbnRTdHJlYW0mIG91dCwgRHVtcENvbnRleHQq
IGNvbnRleHQpIGNvbnN0OwogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdDsK
ICAgICAKIHByaXZhdGU6Ci0gICAgVmVjdG9yPFQsIDg+IG1fYXJndW1lbnRzOwotICAgIFZlY3Rv
cjxULCAxNj4gbV9sb2NhbHM7CisgICAgLy8gVGhlIGZpcnN0IG1fbnVtQXJndW1lbnRzIG9mIG1f
dmFsdWVzIGFyZSBhcmd1bWVudHMsIHRoZSByZXN0IGFyZSBsb2NhbHMuCisgICAgVmVjdG9yPFQs
IDI0PiBtX3ZhbHVlczsKKyAgICBzaXplX3QgbV9udW1Bcmd1bWVudHM7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFz
aWNCbG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Jhc2ljQmxvY2suY3Bw
CmluZGV4IGMyY2E5ZjMzMjEwODRkZmNjYjdkYzZiYjk5MDVlMWQwNGFmNTI4MzUuLmFhYjMyNGZj
ZWIwZTQ2NzliODE4ZWJlN2EzN2Y4ZmRmZDAyNTBhNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQmFzaWNCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCYXNpY0Jsb2NrLmNwcApAQCAtMzYsMTUgKzM2LDE2IEBAIEJhc2ljQmxvY2s6
OkJhc2ljQmxvY2soCiAgICAgdW5zaWduZWQgYnl0ZWNvZGVCZWdpbiwgdW5zaWduZWQgbnVtQXJn
dW1lbnRzLCB1bnNpZ25lZCBudW1Mb2NhbHMsIGZsb2F0IGV4ZWN1dGlvbkNvdW50KQogICAgIDog
Ynl0ZWNvZGVCZWdpbihieXRlY29kZUJlZ2luKQogICAgICwgaW5kZXgoTm9CbG9jaykKLSAgICAs
IGlzT1NSVGFyZ2V0KGZhbHNlKQotICAgICwgaXNDYXRjaEVudHJ5cG9pbnQoZmFsc2UpCisgICAg
LCBjZmFTdHJ1Y3R1cmVDbG9iYmVyU3RhdGVBdEhlYWQoU3RydWN0dXJlc0FyZVdhdGNoZWQpCisg
ICAgLCBjZmFTdHJ1Y3R1cmVDbG9iYmVyU3RhdGVBdFRhaWwoU3RydWN0dXJlc0FyZVdhdGNoZWQp
CisgICAgLCBjZmFCcmFuY2hEaXJlY3Rpb24oSW52YWxpZEJyYW5jaERpcmVjdGlvbikKICAgICAs
IGNmYUhhc1Zpc2l0ZWQoZmFsc2UpCiAgICAgLCBjZmFTaG91bGRSZXZpc2l0KGZhbHNlKQogICAg
ICwgY2ZhRm91bmRDb25zdGFudHMoZmFsc2UpCiAgICAgLCBjZmFEaWRGaW5pc2godHJ1ZSkKLSAg
ICAsIGNmYVN0cnVjdHVyZUNsb2JiZXJTdGF0ZUF0SGVhZChTdHJ1Y3R1cmVzQXJlV2F0Y2hlZCkK
LSAgICAsIGNmYVN0cnVjdHVyZUNsb2JiZXJTdGF0ZUF0VGFpbChTdHJ1Y3R1cmVzQXJlV2F0Y2hl
ZCkKLSAgICAsIGNmYUJyYW5jaERpcmVjdGlvbihJbnZhbGlkQnJhbmNoRGlyZWN0aW9uKQorICAg
ICwgaW50ZXJzZWN0aW9uT2ZDRkFIYXNWaXNpdGVkKHRydWUpCisgICAgLCBpc09TUlRhcmdldChm
YWxzZSkKKyAgICAsIGlzQ2F0Y2hFbnRyeXBvaW50KGZhbHNlKQogI2lmICFBU1NFUlRfRElTQUJM
RUQKICAgICAsIGlzTGlua2VkKGZhbHNlKQogI2VuZGlmCkBAIC01NCw3ICs1NSw2IEBAIEJhc2lj
QmxvY2s6OkJhc2ljQmxvY2soCiAgICAgLCB2YWx1ZXNBdEhlYWQobnVtQXJndW1lbnRzLCBudW1M
b2NhbHMpCiAgICAgLCB2YWx1ZXNBdFRhaWwobnVtQXJndW1lbnRzLCBudW1Mb2NhbHMpCiAgICAg
LCBpbnRlcnNlY3Rpb25PZlBhc3RWYWx1ZXNBdEhlYWQobnVtQXJndW1lbnRzLCBudW1Mb2NhbHMs
IEFic3RyYWN0VmFsdWU6OmZ1bGxUb3AoKSkKLSAgICAsIGludGVyc2VjdGlvbk9mQ0ZBSGFzVmlz
aXRlZCh0cnVlKQogICAgICwgZXhlY3V0aW9uQ291bnQoZXhlY3V0aW9uQ291bnQpCiB7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Jhc2ljQmxvY2suaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFzaWNCbG9jay5oCmluZGV4IDFlMjNlMzc2Mzdj
NDMxZTE4YjY4NThmMTZiNjM0OTJkYzdhY2Y4N2IuLjFlMjEyMTNkODhkYzViOTI0YzFjYjY3NTA4
YjgxZTY0Y2RlMWM1YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QmFzaWNCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFzaWNCbG9j
ay5oCkBAIC0xNzUsMTYgKzE3NSwxOCBAQCBzdHJ1Y3QgQmFzaWNCbG9jayA6IFJlZkNvdW50ZWQ8
QmFzaWNCbG9jaz4gewogICAgIHVuc2lnbmVkIGJ5dGVjb2RlQmVnaW47CiAgICAgCiAgICAgQmxv
Y2tJbmRleCBpbmRleDsKLSAgICAKLSAgICBib29sIGlzT1NSVGFyZ2V0OwotICAgIGJvb2wgaXND
YXRjaEVudHJ5cG9pbnQ7CisKKyAgICBTdHJ1Y3R1cmVDbG9iYmVyU3RhdGUgY2ZhU3RydWN0dXJl
Q2xvYmJlclN0YXRlQXRIZWFkOworICAgIFN0cnVjdHVyZUNsb2JiZXJTdGF0ZSBjZmFTdHJ1Y3R1
cmVDbG9iYmVyU3RhdGVBdFRhaWw7CisgICAgQnJhbmNoRGlyZWN0aW9uIGNmYUJyYW5jaERpcmVj
dGlvbjsKICAgICBib29sIGNmYUhhc1Zpc2l0ZWQ7CiAgICAgYm9vbCBjZmFTaG91bGRSZXZpc2l0
OwogICAgIGJvb2wgY2ZhRm91bmRDb25zdGFudHM7CiAgICAgYm9vbCBjZmFEaWRGaW5pc2g7Ci0g
ICAgU3RydWN0dXJlQ2xvYmJlclN0YXRlIGNmYVN0cnVjdHVyZUNsb2JiZXJTdGF0ZUF0SGVhZDsK
LSAgICBTdHJ1Y3R1cmVDbG9iYmVyU3RhdGUgY2ZhU3RydWN0dXJlQ2xvYmJlclN0YXRlQXRUYWls
OwotICAgIEJyYW5jaERpcmVjdGlvbiBjZmFCcmFuY2hEaXJlY3Rpb247CisgICAgYm9vbCBpbnRl
cnNlY3Rpb25PZkNGQUhhc1Zpc2l0ZWQ7CisgICAgYm9vbCBpc09TUlRhcmdldDsKKyAgICBib29s
IGlzQ2F0Y2hFbnRyeXBvaW50OworCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAogICAgIGJvb2wgaXNM
aW5rZWQ7CiAjZW5kaWYKQEAgLTIxNyw3ICsyMTksNiBAQCBzdHJ1Y3QgQmFzaWNCbG9jayA6IFJl
ZkNvdW50ZWQ8QmFzaWNCbG9jaz4gewogICAgIC8vIHdvdWxkIG5vdCBiZSBhIHByb2R1Y3RpdmUg
b3B0aW1pemF0aW9uOiBpdCB3b3VsZCBtYWtlIHNldHRpbmcgdXAgYSBiYXNpYyBibG9jayBtb3Jl
CiAgICAgLy8gZXhwZW5zaXZlIGFuZCB3b3VsZCBvbmx5IGJlbmVmaXQgYml6YXJyZSBwYXRob2xv
Z2ljYWwgY2FzZXMuCiAgICAgT3BlcmFuZHM8QWJzdHJhY3RWYWx1ZT4gaW50ZXJzZWN0aW9uT2ZQ
YXN0VmFsdWVzQXRIZWFkOwotICAgIGJvb2wgaW50ZXJzZWN0aW9uT2ZDRkFIYXNWaXNpdGVkOwog
ICAgIAogICAgIGZsb2F0IGV4ZWN1dGlvbkNvdW50OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCcmFuY2hEaXJlY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQnJhbmNoRGlyZWN0aW9uLmgKaW5kZXggZjkwNGE2YmQ3NmYyMzQ1NWMw
MWE1MDg4NmRjM2NhYTZkYmI5ZjM2OC4uNzBkNDk1N2FjODUzYWEyNDYzMWEyY2ZlZjU2ZmUwNzM5
OWJhMDkyZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCcmFuY2hE
aXJlY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0JyYW5jaERpcmVj
dGlvbi5oCkBAIC0yOSw3ICsyOSw3IEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKIAotZW51bSBCcmFuY2hEaXJlY3Rpb24geworZW51bSBCcmFuY2hEaXJlY3Rpb24gOiB1aW50
OF90IHsKICAgICAvLyBUaGlzIGlzIG5vdCBhIGJyYW5jaCBhbmQgc28gdGhlcmUgaXMgbm8gYnJh
bmNoIGRpcmVjdGlvbiwgb3IKICAgICAvLyB0aGUgYnJhbmNoIGRpcmVjdGlvbiBoYXMgeWV0IHRv
IGJlIHNldC4KICAgICBJbnZhbGlkQnJhbmNoRGlyZWN0aW9uLApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJ1Y3R1cmVDbG9iYmVyU3RhdGUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQ2xvYmJlclN0YXRlLmgKaW5kZXggZWE4ZjUx
YjA3ZDJhZTc1Nzk0MDY2YWY2MjNmOTE1MmM4NDFjYTc4OS4uYTkzMDE0NGMzMzFkMjY3MGY2NTJi
ZjQ3YzI3MGFmNGU3YWFiZWQyZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTdHJ1Y3R1cmVDbG9iYmVyU3RhdGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1N0cnVjdHVyZUNsb2JiZXJTdGF0ZS5oCkBAIC0zMSw3ICszMSw3IEBACiAKIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAotZW51bSBTdHJ1Y3R1cmVDbG9iYmVyU3RhdGUg
eworZW51bSBTdHJ1Y3R1cmVDbG9iYmVyU3RhdGUgOiB1aW50OF90IHsKICAgICBTdHJ1Y3R1cmVz
QXJlV2F0Y2hlZCwgLy8gQ29uc3RhbnRzIHdpdGggd2F0Y2hhYmxlIHN0cnVjdHVyZXMgbXVzdCBo
YXZlIHRob3NlIHN0cnVjdHVyZXMuCiAgICAgU3RydWN0dXJlc0FyZUNsb2JiZXJlZCAvLyBDb25z
dGFudHMgd2l0aCB3YXRjaGFibGUgc3RydWN0dXJlcyBjb3VsZCBoYXZlIGFueSBzdHJ1Y3R1cmUu
CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326589</attachid>
            <date>2017-11-10 08:36:48 -0800</date>
            <delta_ts>2017-11-10 09:08:30 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-179528-20171110173647.patch</filename>
            <type>text/plain</type>
            <size>15522</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0NjgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
Y2ZmNDU0NzA2Zjg2YmY2YTk1YmE5MmYzNWQxZmE4OTcyYTA2ODBiLi4yY2U2NTFkNzU5YTI2ZjRi
YjQyMGI1MTkzNGViOTJmYmJmZWIzZmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MyBAQAorMjAxNy0xMS0xMCAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUu
Y29tPgorCisgICAgICAgIFRoZSBtZW1vcnkgY29uc3VtcHRpb24gb2YgREZHOjpCYXNpY0Jsb2Nr
IGNhbiBiZSBlYXNpbHkgcmVkdWNlZCBhIGJpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5NTI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBC
YXJhdGkuCisKKyAgICAgICAgQSBmZXcgY2hhbmdlcyBoZXJlOgorICAgICAgICAtIFJlb3JkZXJp
bmcgc29tZSBmaWVsZHMgb2YgREZHOjpCYXNpY0Jsb2NrIHRvIHJlZHVjZSBwYWRkaW5nCisgICAg
ICAgIC0gTWFraW5nIHRoZSBlbnVtIGZpZWxkcyB0aGF0IGFyZSBnbG9yaWZpZWQgYm9vbGVhbnMg
Zml0IGludG8gYSB1OAorICAgICAgICAtIE1ha2UgZWFjaCBPcGVyYW5kcyBvYmplY3QgaGF2ZSBh
IHNpbmdsZSB2ZWN0b3IgdGhhdCBob2xkcyBhbGwgYXJndW1lbnRzIGZvbGxvd2VkIGJ5IGFsbCBs
b2NhbHMsIGluc3RlYWQgb2YgdHdvIHZlY3RvcnMuCisgICAgICAgICAgVGhpcyBjaGFuZ2Ugd29y
a3MgYmVjYXVzZSB3ZSBuZXZlciBpbmNyZWFzZSB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyBhZnRl
ciBhbGxvY2F0aW5nIGFuIE9wZXJhbmRzIG9iamVjdC4KKyAgICAgICAgICBJdCBsZXRzIHVzIGF2
b2lkIG9uZSBleHRyYSBjYXBhY2l0eSBmaWVsZCBhbmQgb25lIGV4dHJhIHBvaW50ZXIgZmllbGQg
cGVyIE9wZXJhbmRzLAorICAgICAgICAgIGFuZCBtb3JlIGltcG9ydGFudGx5IG9uZSBhbGxvY2F0
aW9uIHBlciBPcGVyYW5kcyB3aGVuZXZlciBib3RoIHZlY3RvcnMgd291bGQgaGF2ZSBvdmVyZmxv
d2VkIHRoZWlyIGlubGluZWQgYnVmZmVyLgorICAgICAgICAgIEFkZGl0aW9uYWxseSwgaWYgYSBz
aW5nbGUgdmVjdG9yIHdvdWxkIGhhdmUgb3ZlcmZsb3dlZCBpdHMgaW5saW5lIGJ1ZmZlciwgd2hp
bGUgdGhlIG90aGVyIHdvdWxkIGhhdmUgaGFkIHNvbWUgZnJlZSBzcGFjZSwKKyAgICAgICAgICB3
ZSBoYXZlIGEgY2hhbmNlIHRvIGF2b2lkIGFuIGFsbG9jYXRpb24uCisgICAgICAgIC0gRmluYWxs
eSwgdGhlIHRocmVlIG1ldGhvZHMgYXJndW1lbnRGb3JJbmRleCwgdmFyaWFibGVGb3JJbmRleCBh
bmQgaW5kZXhGb3JPcGVyYW5kIHdlcmUgZGVsZXRlZCBzaW5jZSB0aGV5IHdlcmUgZGVhZCBjb2Rl
LgorCisgICAgICAgICogYnl0ZWNvZGUvT3BlcmFuZHMuaDoKKyAgICAgICAgKEpTQzo6T3BlcmFu
ZHM6Ok9wZXJhbmRzKToKKyAgICAgICAgKEpTQzo6T3BlcmFuZHM6Om51bWJlck9mQXJndW1lbnRz
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6T3BlcmFuZHM6Om51bWJlck9mTG9jYWxzIGNvbnN0KToK
KyAgICAgICAgKEpTQzo6T3BlcmFuZHM6OmFyZ3VtZW50KToKKyAgICAgICAgKEpTQzo6T3BlcmFu
ZHM6OmFyZ3VtZW50IGNvbnN0KToKKyAgICAgICAgKEpTQzo6T3BlcmFuZHM6OmxvY2FsKToKKyAg
ICAgICAgKEpTQzo6T3BlcmFuZHM6OmxvY2FsIGNvbnN0KToKKyAgICAgICAgKEpTQzo6T3BlcmFu
ZHM6OmVuc3VyZUxvY2Fscyk6CisgICAgICAgIChKU0M6Ok9wZXJhbmRzOjpzZXRMb2NhbCk6Cisg
ICAgICAgIChKU0M6Ok9wZXJhbmRzOjpnZXRMb2NhbCk6CisgICAgICAgIChKU0M6Ok9wZXJhbmRz
OjpzZXRBcmd1bWVudEZpcnN0VGltZSk6CisgICAgICAgIChKU0M6Ok9wZXJhbmRzOjpzZXRMb2Nh
bEZpcnN0VGltZSk6CisgICAgICAgIChKU0M6Ok9wZXJhbmRzOjpvcGVyYW5kKToKKyAgICAgICAg
KEpTQzo6T3BlcmFuZHM6OnNldE9wZXJhbmQpOgorICAgICAgICAoSlNDOjpPcGVyYW5kczo6c2l6
ZSBjb25zdCk6CisgICAgICAgIChKU0M6Ok9wZXJhbmRzOjphdCBjb25zdCk6CisgICAgICAgIChK
U0M6Ok9wZXJhbmRzOjphdCk6CisgICAgICAgIChKU0M6Ok9wZXJhbmRzOjppc0FyZ3VtZW50IGNv
bnN0KToKKyAgICAgICAgKEpTQzo6T3BlcmFuZHM6OmlzVmFyaWFibGUgY29uc3QpOgorICAgICAg
ICAoSlNDOjpPcGVyYW5kczo6dmlydHVhbFJlZ2lzdGVyRm9ySW5kZXggY29uc3QpOgorICAgICAg
ICAoSlNDOjpPcGVyYW5kczo6ZmlsbCk6CisgICAgICAgIChKU0M6Ok9wZXJhbmRzOjpvcGVyYXRv
cj09IGNvbnN0KToKKyAgICAgICAgKEpTQzo6T3BlcmFuZHM6OmFyZ3VtZW50Rm9ySW5kZXggY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpPcGVyYW5kczo6dmFyaWFibGVGb3JJbmRleCBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok9wZXJhbmRzOjppbmRleEZvck9wZXJhbmQg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdCYXNpY0Jsb2NrLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpCYXNpY0Jsb2NrOjpCYXNpY0Jsb2NrKToKKyAgICAgICAgKiBkZmcvREZH
QmFzaWNCbG9jay5oOgorICAgICAgICAqIGRmZy9ERkdCcmFuY2hEaXJlY3Rpb24uaDoKKyAgICAg
ICAgKiBkZmcvREZHU3RydWN0dXJlQ2xvYmJlclN0YXRlLmg6CisKIDIwMTctMTEtMDkgIFl1c3Vr
ZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0pTQ10gUmV0cnkg
bW9kdWxlIGZldGNoaW5nIGlmIHByZXZpb3VzIHJlcXVlc3QgZmFpbHMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGVyYW5kcy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL09wZXJhbmRzLmgKaW5kZXggMjZiZjU5Mzg1OGU4NWYwNTBjYjAzOGY1
ZGM5MjgzZmY5MmZlMWFlNS4uODJiMDkxMzE2NzJhYzY1OGQ1ZDQxMjc3YzNlMmNlZDkyNzBkMjNk
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wZXJhbmRzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wZXJhbmRzLmgKQEAgLTQyLDQw
ICs0Miw0OCBAQCBlbnVtIE9wZXJhbmRzTGlrZVRhZyB7IE9wZXJhbmRzTGlrZSB9OwogdGVtcGxh
dGU8dHlwZW5hbWUgVD4KIGNsYXNzIE9wZXJhbmRzIHsKIHB1YmxpYzoKLSAgICBPcGVyYW5kcygp
IHsgfQorICAgIE9wZXJhbmRzKCkKKyAgICAgICAgOiBtX251bUFyZ3VtZW50cygwKSB7IH0KICAg
ICAKICAgICBleHBsaWNpdCBPcGVyYW5kcyhzaXplX3QgbnVtQXJndW1lbnRzLCBzaXplX3QgbnVt
TG9jYWxzKQorICAgICAgICA6IG1fbnVtQXJndW1lbnRzKG51bUFyZ3VtZW50cykKICAgICB7CiAg
ICAgICAgIGlmIChXVEY6OlZlY3RvclRyYWl0czxUPjo6bmVlZHNJbml0aWFsaXphdGlvbikgewot
ICAgICAgICAgICAgbV9hcmd1bWVudHMucmVzaXplKG51bUFyZ3VtZW50cyk7Ci0gICAgICAgICAg
ICBtX2xvY2Fscy5yZXNpemUobnVtTG9jYWxzKTsKKyAgICAgICAgICAgIG1fdmFsdWVzLnJlc2l6
ZShudW1Bcmd1bWVudHMgKyBudW1Mb2NhbHMpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgbV9hcmd1bWVudHMuZmlsbChUKCksIG51bUFyZ3VtZW50cyk7Ci0gICAgICAgICAgICBtX2xv
Y2Fscy5maWxsKFQoKSwgbnVtTG9jYWxzKTsKKyAgICAgICAgICAgIG1fdmFsdWVzLmZpbGwoVCgp
LCBudW1Bcmd1bWVudHMgKyBudW1Mb2NhbHMpOwogICAgICAgICB9CiAgICAgfQogCiAgICAgZXhw
bGljaXQgT3BlcmFuZHMoc2l6ZV90IG51bUFyZ3VtZW50cywgc2l6ZV90IG51bUxvY2FscywgY29u
c3QgVCYgaW5pdGlhbFZhbHVlKQorICAgICAgICA6IG1fbnVtQXJndW1lbnRzKG51bUFyZ3VtZW50
cykKICAgICB7Ci0gICAgICAgIG1fYXJndW1lbnRzLmZpbGwoaW5pdGlhbFZhbHVlLCBudW1Bcmd1
bWVudHMpOwotICAgICAgICBtX2xvY2Fscy5maWxsKGluaXRpYWxWYWx1ZSwgbnVtTG9jYWxzKTsK
KyAgICAgICAgbV92YWx1ZXMuZmlsbChpbml0aWFsVmFsdWUsIG51bUFyZ3VtZW50cyArIG51bUxv
Y2Fscyk7CiAgICAgfQogICAgIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CiAgICAgZXhwbGlj
aXQgT3BlcmFuZHMoT3BlcmFuZHNMaWtlVGFnLCBjb25zdCBPcGVyYW5kczxVPiYgb3RoZXIpCisg
ICAgICAgIDogbV9udW1Bcmd1bWVudHMob3RoZXIubnVtYmVyT2ZBcmd1bWVudHMoKSkKICAgICB7
Ci0gICAgICAgIG1fYXJndW1lbnRzLmZpbGwoVCgpLCBvdGhlci5udW1iZXJPZkFyZ3VtZW50cygp
KTsKLSAgICAgICAgbV9sb2NhbHMuZmlsbChUKCksIG90aGVyLm51bWJlck9mTG9jYWxzKCkpOwor
ICAgICAgICBtX3ZhbHVlcy5maWxsKFQoKSwgb3RoZXIubnVtYmVyT2ZBcmd1bWVudHMoKSArIG90
aGVyLm51bWJlck9mTG9jYWxzKCkpOwogICAgIH0KICAgICAKLSAgICBzaXplX3QgbnVtYmVyT2ZB
cmd1bWVudHMoKSBjb25zdCB7IHJldHVybiBtX2FyZ3VtZW50cy5zaXplKCk7IH0KLSAgICBzaXpl
X3QgbnVtYmVyT2ZMb2NhbHMoKSBjb25zdCB7IHJldHVybiBtX2xvY2Fscy5zaXplKCk7IH0KKyAg
ICBzaXplX3QgbnVtYmVyT2ZBcmd1bWVudHMoKSBjb25zdCB7IHJldHVybiBtX251bUFyZ3VtZW50
czsgfQorICAgIHNpemVfdCBudW1iZXJPZkxvY2FscygpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWVz
LnNpemUoKSAtIG1fbnVtQXJndW1lbnRzOyB9CiAgICAgCi0gICAgVCYgYXJndW1lbnQoc2l6ZV90
IGlkeCkgeyByZXR1cm4gbV9hcmd1bWVudHNbaWR4XTsgfQotICAgIGNvbnN0IFQmIGFyZ3VtZW50
KHNpemVfdCBpZHgpIGNvbnN0IHsgcmV0dXJuIG1fYXJndW1lbnRzW2lkeF07IH0KKyAgICBUJiBh
cmd1bWVudChzaXplX3QgaWR4KQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlkeCA8IG1fbnVtQXJn
dW1lbnRzKTsKKyAgICAgICAgcmV0dXJuIG1fdmFsdWVzW2lkeF07CisgICAgfQorICAgIGNvbnN0
IFQmIGFyZ3VtZW50KHNpemVfdCBpZHgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaWR4
IDwgbV9udW1Bcmd1bWVudHMpOworICAgICAgICByZXR1cm4gbV92YWx1ZXNbaWR4XTsKKyAgICB9
CiAgICAgCi0gICAgVCYgbG9jYWwoc2l6ZV90IGlkeCkgeyByZXR1cm4gbV9sb2NhbHNbaWR4XTsg
fQotICAgIGNvbnN0IFQmIGxvY2FsKHNpemVfdCBpZHgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxz
W2lkeF07IH0KKyAgICBUJiBsb2NhbChzaXplX3QgaWR4KSB7IHJldHVybiBtX3ZhbHVlc1ttX251
bUFyZ3VtZW50cyArIGlkeF07IH0KKyAgICBjb25zdCBUJiBsb2NhbChzaXplX3QgaWR4KSBjb25z
dCB7IHJldHVybiBtX3ZhbHVlc1ttX251bUFyZ3VtZW50cyArIGlkeF07IH0KICAgICAKICAgICB0
ZW1wbGF0ZTxPcGVyYW5kS2luZCBvcGVyYW5kS2luZD4KICAgICBzaXplX3Qgc2l6ZUZvcigpIGNv
bnN0CkBAIC0xMDEsNjIgKzEwOSw1OCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBlbnN1cmVM
b2NhbHMoc2l6ZV90IHNpemUpCiAgICAgewotICAgICAgICBzaXplX3Qgb2xkU2l6ZSA9IG1fbG9j
YWxzLnNpemUoKTsKLSAgICAgICAgaWYgKHNpemUgPD0gb2xkU2l6ZSkKKyAgICAgICAgc2l6ZV90
IG9sZFNpemUgPSBtX3ZhbHVlcy5zaXplKCk7CisgICAgICAgIHNpemVfdCBuZXdTaXplID0gbV9u
dW1Bcmd1bWVudHMgKyBzaXplOworICAgICAgICBpZiAobmV3U2l6ZSA8PSBvbGRTaXplKQogICAg
ICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIG1fbG9jYWxzLmdyb3coc2l6ZSk7CisgICAgICAg
IG1fdmFsdWVzLmdyb3cobmV3U2l6ZSk7CiAgICAgICAgIGlmICghV1RGOjpWZWN0b3JUcmFpdHM8
VD46Om5lZWRzSW5pdGlhbGl6YXRpb24pIHsKLSAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSBv
bGRTaXplOyBpIDwgbV9sb2NhbHMuc2l6ZSgpOyArK2kpCi0gICAgICAgICAgICAgICAgbV9sb2Nh
bHNbaV0gPSBUKCk7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gb2xkU2l6ZTsgaSA8IG1f
dmFsdWVzLnNpemUoKTsgKytpKQorICAgICAgICAgICAgICAgIG1fdmFsdWVzW2ldID0gVCgpOwog
ICAgICAgICB9CiAgICAgfQogCiAgICAgdm9pZCBlbnN1cmVMb2NhbHMoc2l6ZV90IHNpemUsIGNv
bnN0IFQmIGVuc3VyZWRWYWx1ZSkKICAgICB7Ci0gICAgICAgIHNpemVfdCBvbGRTaXplID0gbV9s
b2NhbHMuc2l6ZSgpOwotICAgICAgICBpZiAoc2l6ZSA8PSBvbGRTaXplKQorICAgICAgICBzaXpl
X3Qgb2xkU2l6ZSA9IG1fdmFsdWVzLnNpemUoKTsKKyAgICAgICAgc2l6ZV90IG5ld1NpemUgPSBt
X251bUFyZ3VtZW50cyArIHNpemU7CisgICAgICAgIGlmIChuZXdTaXplIDw9IG9sZFNpemUpCiAg
ICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbV9sb2NhbHMuZ3JvdyhzaXplKTsKLSAgICAg
ICAgZm9yIChzaXplX3QgaSA9IG9sZFNpemU7IGkgPCBtX2xvY2Fscy5zaXplKCk7ICsraSkKLSAg
ICAgICAgICAgIG1fbG9jYWxzW2ldID0gZW5zdXJlZFZhbHVlOworICAgICAgICBtX3ZhbHVlcy5n
cm93KG5ld1NpemUpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gb2xkU2l6ZTsgaSA8IG1fdmFs
dWVzLnNpemUoKTsgKytpKQorICAgICAgICAgICAgbV92YWx1ZXNbaV0gPSBlbnN1cmVkVmFsdWU7
CiAgICAgfQogICAgIAogICAgIHZvaWQgc2V0TG9jYWwoc2l6ZV90IGlkeCwgY29uc3QgVCYgdmFs
dWUpCiAgICAgewogICAgICAgICBlbnN1cmVMb2NhbHMoaWR4ICsgMSk7Ci0gICAgICAgIAotICAg
ICAgICBtX2xvY2Fsc1tpZHhdID0gdmFsdWU7CisgICAgICAgIGxvY2FsKGlkeCkgPSB2YWx1ZTsK
ICAgICB9CiAgICAgCiAgICAgVCBnZXRMb2NhbChzaXplX3QgaWR4KQogICAgIHsKLSAgICAgICAg
aWYgKGlkeCA+PSBtX2xvY2Fscy5zaXplKCkpCi0gICAgICAgICAgICByZXR1cm4gVCgpOwotICAg
ICAgICByZXR1cm4gbV9sb2NhbHNbaWR4XTsKKyAgICAgICAgcmV0dXJuIGlkeCA+PSBudW1iZXJP
ZkxvY2FscygpID8gVCgpIDogbG9jYWwoaWR4KTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBzZXRB
cmd1bWVudEZpcnN0VGltZShzaXplX3QgaWR4LCBjb25zdCBUJiB2YWx1ZSkKICAgICB7Ci0gICAg
ICAgIEFTU0VSVChtX2FyZ3VtZW50c1tpZHhdID09IFQoKSk7CisgICAgICAgIEFTU0VSVChtX3Zh
bHVlc1tpZHhdID09IFQoKSk7CiAgICAgICAgIGFyZ3VtZW50KGlkeCkgPSB2YWx1ZTsKICAgICB9
CiAgICAgCiAgICAgdm9pZCBzZXRMb2NhbEZpcnN0VGltZShzaXplX3QgaWR4LCBjb25zdCBUJiB2
YWx1ZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVChpZHggPj0gbV9sb2NhbHMuc2l6ZSgpIHx8IG1f
bG9jYWxzW2lkeF0gPT0gVCgpKTsKKyAgICAgICAgQVNTRVJUKGlkeCA+PSBudW1iZXJPZkxvY2Fs
cygpIHx8IGxvY2FsKGlkeCkgPT0gVCgpKTsKICAgICAgICAgc2V0TG9jYWwoaWR4LCB2YWx1ZSk7
CiAgICAgfQogICAgIAogICAgIFQmIG9wZXJhbmQoaW50IG9wZXJhbmQpCiAgICAgewotICAgICAg
ICBpZiAob3BlcmFuZElzQXJndW1lbnQob3BlcmFuZCkpIHsKLSAgICAgICAgICAgIGludCBhcmd1
bWVudCA9IFZpcnR1YWxSZWdpc3RlcihvcGVyYW5kKS50b0FyZ3VtZW50KCk7Ci0gICAgICAgICAg
ICByZXR1cm4gbV9hcmd1bWVudHNbYXJndW1lbnRdOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0
dXJuIG1fbG9jYWxzW1ZpcnR1YWxSZWdpc3RlcihvcGVyYW5kKS50b0xvY2FsKCldOworICAgICAg
ICBpZiAob3BlcmFuZElzQXJndW1lbnQob3BlcmFuZCkpCisgICAgICAgICAgICByZXR1cm4gYXJn
dW1lbnQoVmlydHVhbFJlZ2lzdGVyKG9wZXJhbmQpLnRvQXJndW1lbnQoKSk7CisgICAgICAgIHJl
dHVybiBsb2NhbChWaXJ0dWFsUmVnaXN0ZXIob3BlcmFuZCkudG9Mb2NhbCgpKTsKICAgICB9CiAK
ICAgICBUJiBvcGVyYW5kKFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIpCkBAIC0xODAs
MTMgKzE4NCw3IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIHNldE9wZXJhbmQoaW50IG9wZXJh
bmQsIGNvbnN0IFQmIHZhbHVlKQogICAgIHsKLSAgICAgICAgaWYgKG9wZXJhbmRJc0FyZ3VtZW50
KG9wZXJhbmQpKSB7Ci0gICAgICAgICAgICBpbnQgYXJndW1lbnQgPSBWaXJ0dWFsUmVnaXN0ZXIo
b3BlcmFuZCkudG9Bcmd1bWVudCgpOwotICAgICAgICAgICAgbV9hcmd1bWVudHNbYXJndW1lbnRd
ID0gdmFsdWU7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAg
ICAgIHNldExvY2FsKFZpcnR1YWxSZWdpc3RlcihvcGVyYW5kKS50b0xvY2FsKCksIHZhbHVlKTsK
KyAgICAgICAgb3BlcmFuZChvcGVyYW5kKSA9IHZhbHVlOwogICAgIH0KICAgICAKICAgICB2b2lk
IHNldE9wZXJhbmQoVmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWdpc3RlciwgY29uc3QgVCYgdmFs
dWUpCkBAIC0xOTQsMzIgKzE5MiwxNCBAQCBwdWJsaWM6CiAgICAgICAgIHNldE9wZXJhbmQodmly
dHVhbFJlZ2lzdGVyLm9mZnNldCgpLCB2YWx1ZSk7CiAgICAgfQogCi0gICAgc2l6ZV90IHNpemUo
KSBjb25zdCB7IHJldHVybiBudW1iZXJPZkFyZ3VtZW50cygpICsgbnVtYmVyT2ZMb2NhbHMoKTsg
fQotICAgIGNvbnN0IFQmIGF0KHNpemVfdCBpbmRleCkgY29uc3QKLSAgICB7Ci0gICAgICAgIGlm
IChpbmRleCA8IG51bWJlck9mQXJndW1lbnRzKCkpCi0gICAgICAgICAgICByZXR1cm4gbV9hcmd1
bWVudHNbaW5kZXhdOwotICAgICAgICByZXR1cm4gbV9sb2NhbHNbaW5kZXggLSBudW1iZXJPZkFy
Z3VtZW50cygpXTsKLSAgICB9Ci0gICAgVCYgYXQoc2l6ZV90IGluZGV4KQotICAgIHsKLSAgICAg
ICAgaWYgKGluZGV4IDwgbnVtYmVyT2ZBcmd1bWVudHMoKSkKLSAgICAgICAgICAgIHJldHVybiBt
X2FyZ3VtZW50c1tpbmRleF07Ci0gICAgICAgIHJldHVybiBtX2xvY2Fsc1tpbmRleCAtIG51bWJl
ck9mQXJndW1lbnRzKCldOwotICAgIH0KKyAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdmFsdWVzLnNpemUoKTsgfQorICAgIGNvbnN0IFQmIGF0KHNpemVfdCBpbmRleCkgY29uc3Qg
eyByZXR1cm4gbV92YWx1ZXNbaW5kZXhdOyB9CisgICAgVCYgYXQoc2l6ZV90IGluZGV4KSB7IHJl
dHVybiBtX3ZhbHVlc1tpbmRleF07IH0KICAgICBjb25zdCBUJiBvcGVyYXRvcltdKHNpemVfdCBp
bmRleCkgY29uc3QgeyByZXR1cm4gYXQoaW5kZXgpOyB9CiAgICAgVCYgb3BlcmF0b3JbXShzaXpl
X3QgaW5kZXgpIHsgcmV0dXJuIGF0KGluZGV4KTsgfQogCi0gICAgYm9vbCBpc0FyZ3VtZW50KHNp
emVfdCBpbmRleCkgY29uc3QgeyByZXR1cm4gaW5kZXggPCBudW1iZXJPZkFyZ3VtZW50cygpOyB9
CisgICAgYm9vbCBpc0FyZ3VtZW50KHNpemVfdCBpbmRleCkgY29uc3QgeyByZXR1cm4gaW5kZXgg
PCBtX251bUFyZ3VtZW50czsgfQogICAgIGJvb2wgaXNWYXJpYWJsZShzaXplX3QgaW5kZXgpIGNv
bnN0IHsgcmV0dXJuICFpc0FyZ3VtZW50KGluZGV4KTsgfQotICAgIGludCBhcmd1bWVudEZvcklu
ZGV4KHNpemVfdCBpbmRleCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBpbmRleDsKLSAg
ICB9Ci0gICAgaW50IHZhcmlhYmxlRm9ySW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAotICAgIHsK
LSAgICAgICAgcmV0dXJuIGluZGV4IC0gbV9hcmd1bWVudHMuc2l6ZSgpOwotICAgIH0KICAgICBp
bnQgb3BlcmFuZEZvckluZGV4KHNpemVfdCBpbmRleCkgY29uc3QKICAgICB7CiAgICAgICAgIGlm
IChpbmRleCA8IG51bWJlck9mQXJndW1lbnRzKCkpCkBAIC0yMzAsMTYgKzIxMCw2IEBAIHB1Ymxp
YzoKICAgICB7CiAgICAgICAgIHJldHVybiBWaXJ0dWFsUmVnaXN0ZXIob3BlcmFuZEZvckluZGV4
KGluZGV4KSk7CiAgICAgfQotICAgIHNpemVfdCBpbmRleEZvck9wZXJhbmQoaW50IG9wZXJhbmQp
IGNvbnN0Ci0gICAgewotICAgICAgICBpZiAob3BlcmFuZElzQXJndW1lbnQob3BlcmFuZCkpCi0g
ICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8c2l6ZV90PihWaXJ0dWFsUmVnaXN0ZXIob3Bl
cmFuZCkudG9Bcmd1bWVudCgpKTsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHNpemVfdD4o
VmlydHVhbFJlZ2lzdGVyKG9wZXJhbmQpLnRvTG9jYWwoKSkgKyBudW1iZXJPZkFyZ3VtZW50cygp
OwotICAgIH0KLSAgICBzaXplX3QgaW5kZXhGb3JPcGVyYW5kKFZpcnR1YWxSZWdpc3RlciByZWcp
IGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaW5kZXhGb3JPcGVyYW5kKHJlZy5vZmZzZXQo
KSk7Ci0gICAgfQogICAgIAogICAgIHZvaWQgc2V0T3BlcmFuZEZpcnN0VGltZShpbnQgb3BlcmFu
ZCwgY29uc3QgVCYgdmFsdWUpCiAgICAgewpAQCAtMjUzLDEwICsyMjMsOCBAQCBwdWJsaWM6CiAg
ICAgCiAgICAgdm9pZCBmaWxsKFQgdmFsdWUpCiAgICAgewotICAgICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IG1fYXJndW1lbnRzLnNpemUoKTsgKytpKQotICAgICAgICAgICAgbV9hcmd1bWVu
dHNbaV0gPSB2YWx1ZTsKLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2xvY2Fscy5z
aXplKCk7ICsraSkKLSAgICAgICAgICAgIG1fbG9jYWxzW2ldID0gdmFsdWU7CisgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbV92YWx1ZXMuc2l6ZSgpOyArK2kpCisgICAgICAgICAgICBt
X3ZhbHVlc1tpXSA9IHZhbHVlOwogICAgIH0KICAgICAKICAgICB2b2lkIGNsZWFyKCkKQEAgLTI2
OSwxNSArMjM3LDE2IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKG51bWJlck9mQXJndW1lbnRz
KCkgPT0gb3RoZXIubnVtYmVyT2ZBcmd1bWVudHMoKSk7CiAgICAgICAgIEFTU0VSVChudW1iZXJP
ZkxvY2FscygpID09IG90aGVyLm51bWJlck9mTG9jYWxzKCkpOwogICAgICAgICAKLSAgICAgICAg
cmV0dXJuIG1fYXJndW1lbnRzID09IG90aGVyLm1fYXJndW1lbnRzICYmIG1fbG9jYWxzID09IG90
aGVyLm1fbG9jYWxzOworICAgICAgICByZXR1cm4gbV92YWx1ZXMgPT0gb3RoZXIubV92YWx1ZXM7
CiAgICAgfQogICAgIAogICAgIHZvaWQgZHVtcEluQ29udGV4dChQcmludFN0cmVhbSYgb3V0LCBE
dW1wQ29udGV4dCogY29udGV4dCkgY29uc3Q7CiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBv
dXQpIGNvbnN0OwogICAgIAogcHJpdmF0ZToKLSAgICBWZWN0b3I8VCwgOD4gbV9hcmd1bWVudHM7
Ci0gICAgVmVjdG9yPFQsIDE2PiBtX2xvY2FsczsKKyAgICAvLyBUaGUgZmlyc3QgbV9udW1Bcmd1
bWVudHMgb2YgbV92YWx1ZXMgYXJlIGFyZ3VtZW50cywgdGhlIHJlc3QgYXJlIGxvY2Fscy4KKyAg
ICBWZWN0b3I8VCwgMjQ+IG1fdmFsdWVzOworICAgIHVuc2lnbmVkIG1fbnVtQXJndW1lbnRzOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Jhc2ljQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdC
YXNpY0Jsb2NrLmNwcAppbmRleCBjMmNhOWYzMzIxMDg0ZGZjY2I3ZGM2YmI5OTA1ZTFkMDRhZjUy
ODM1Li5hYWIzMjRmY2ViMGU0Njc5YjgxOGViZTdhMzdmOGZkZmQwMjUwYTQ1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Jhc2ljQmxvY2suY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFzaWNCbG9jay5jcHAKQEAgLTM2LDE1ICszNiwxNiBA
QCBCYXNpY0Jsb2NrOjpCYXNpY0Jsb2NrKAogICAgIHVuc2lnbmVkIGJ5dGVjb2RlQmVnaW4sIHVu
c2lnbmVkIG51bUFyZ3VtZW50cywgdW5zaWduZWQgbnVtTG9jYWxzLCBmbG9hdCBleGVjdXRpb25D
b3VudCkKICAgICA6IGJ5dGVjb2RlQmVnaW4oYnl0ZWNvZGVCZWdpbikKICAgICAsIGluZGV4KE5v
QmxvY2spCi0gICAgLCBpc09TUlRhcmdldChmYWxzZSkKLSAgICAsIGlzQ2F0Y2hFbnRyeXBvaW50
KGZhbHNlKQorICAgICwgY2ZhU3RydWN0dXJlQ2xvYmJlclN0YXRlQXRIZWFkKFN0cnVjdHVyZXNB
cmVXYXRjaGVkKQorICAgICwgY2ZhU3RydWN0dXJlQ2xvYmJlclN0YXRlQXRUYWlsKFN0cnVjdHVy
ZXNBcmVXYXRjaGVkKQorICAgICwgY2ZhQnJhbmNoRGlyZWN0aW9uKEludmFsaWRCcmFuY2hEaXJl
Y3Rpb24pCiAgICAgLCBjZmFIYXNWaXNpdGVkKGZhbHNlKQogICAgICwgY2ZhU2hvdWxkUmV2aXNp
dChmYWxzZSkKICAgICAsIGNmYUZvdW5kQ29uc3RhbnRzKGZhbHNlKQogICAgICwgY2ZhRGlkRmlu
aXNoKHRydWUpCi0gICAgLCBjZmFTdHJ1Y3R1cmVDbG9iYmVyU3RhdGVBdEhlYWQoU3RydWN0dXJl
c0FyZVdhdGNoZWQpCi0gICAgLCBjZmFTdHJ1Y3R1cmVDbG9iYmVyU3RhdGVBdFRhaWwoU3RydWN0
dXJlc0FyZVdhdGNoZWQpCi0gICAgLCBjZmFCcmFuY2hEaXJlY3Rpb24oSW52YWxpZEJyYW5jaERp
cmVjdGlvbikKKyAgICAsIGludGVyc2VjdGlvbk9mQ0ZBSGFzVmlzaXRlZCh0cnVlKQorICAgICwg
aXNPU1JUYXJnZXQoZmFsc2UpCisgICAgLCBpc0NhdGNoRW50cnlwb2ludChmYWxzZSkKICNpZiAh
QVNTRVJUX0RJU0FCTEVECiAgICAgLCBpc0xpbmtlZChmYWxzZSkKICNlbmRpZgpAQCAtNTQsNyAr
NTUsNiBAQCBCYXNpY0Jsb2NrOjpCYXNpY0Jsb2NrKAogICAgICwgdmFsdWVzQXRIZWFkKG51bUFy
Z3VtZW50cywgbnVtTG9jYWxzKQogICAgICwgdmFsdWVzQXRUYWlsKG51bUFyZ3VtZW50cywgbnVt
TG9jYWxzKQogICAgICwgaW50ZXJzZWN0aW9uT2ZQYXN0VmFsdWVzQXRIZWFkKG51bUFyZ3VtZW50
cywgbnVtTG9jYWxzLCBBYnN0cmFjdFZhbHVlOjpmdWxsVG9wKCkpCi0gICAgLCBpbnRlcnNlY3Rp
b25PZkNGQUhhc1Zpc2l0ZWQodHJ1ZSkKICAgICAsIGV4ZWN1dGlvbkNvdW50KGV4ZWN1dGlvbkNv
dW50KQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCYXNp
Y0Jsb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Jhc2ljQmxvY2suaAppbmRl
eCAxZTIzZTM3NjM3YzQzMWUxOGI2ODU4ZjE2YjYzNDkyZGM3YWNmODdiLi4xZTIxMjEzZDg4ZGM1
YjkyNGMxY2I2NzUwOGI4MWU2NGNkZTFjNWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Jhc2ljQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Jhc2ljQmxvY2suaApAQCAtMTc1LDE2ICsxNzUsMTggQEAgc3RydWN0IEJhc2ljQmxvY2sg
OiBSZWZDb3VudGVkPEJhc2ljQmxvY2s+IHsKICAgICB1bnNpZ25lZCBieXRlY29kZUJlZ2luOwog
ICAgIAogICAgIEJsb2NrSW5kZXggaW5kZXg7Ci0gICAgCi0gICAgYm9vbCBpc09TUlRhcmdldDsK
LSAgICBib29sIGlzQ2F0Y2hFbnRyeXBvaW50OworCisgICAgU3RydWN0dXJlQ2xvYmJlclN0YXRl
IGNmYVN0cnVjdHVyZUNsb2JiZXJTdGF0ZUF0SGVhZDsKKyAgICBTdHJ1Y3R1cmVDbG9iYmVyU3Rh
dGUgY2ZhU3RydWN0dXJlQ2xvYmJlclN0YXRlQXRUYWlsOworICAgIEJyYW5jaERpcmVjdGlvbiBj
ZmFCcmFuY2hEaXJlY3Rpb247CiAgICAgYm9vbCBjZmFIYXNWaXNpdGVkOwogICAgIGJvb2wgY2Zh
U2hvdWxkUmV2aXNpdDsKICAgICBib29sIGNmYUZvdW5kQ29uc3RhbnRzOwogICAgIGJvb2wgY2Zh
RGlkRmluaXNoOwotICAgIFN0cnVjdHVyZUNsb2JiZXJTdGF0ZSBjZmFTdHJ1Y3R1cmVDbG9iYmVy
U3RhdGVBdEhlYWQ7Ci0gICAgU3RydWN0dXJlQ2xvYmJlclN0YXRlIGNmYVN0cnVjdHVyZUNsb2Ji
ZXJTdGF0ZUF0VGFpbDsKLSAgICBCcmFuY2hEaXJlY3Rpb24gY2ZhQnJhbmNoRGlyZWN0aW9uOwor
ICAgIGJvb2wgaW50ZXJzZWN0aW9uT2ZDRkFIYXNWaXNpdGVkOworICAgIGJvb2wgaXNPU1JUYXJn
ZXQ7CisgICAgYm9vbCBpc0NhdGNoRW50cnlwb2ludDsKKwogI2lmICFBU1NFUlRfRElTQUJMRUQK
ICAgICBib29sIGlzTGlua2VkOwogI2VuZGlmCkBAIC0yMTcsNyArMjE5LDYgQEAgc3RydWN0IEJh
c2ljQmxvY2sgOiBSZWZDb3VudGVkPEJhc2ljQmxvY2s+IHsKICAgICAvLyB3b3VsZCBub3QgYmUg
YSBwcm9kdWN0aXZlIG9wdGltaXphdGlvbjogaXQgd291bGQgbWFrZSBzZXR0aW5nIHVwIGEgYmFz
aWMgYmxvY2sgbW9yZQogICAgIC8vIGV4cGVuc2l2ZSBhbmQgd291bGQgb25seSBiZW5lZml0IGJp
emFycmUgcGF0aG9sb2dpY2FsIGNhc2VzLgogICAgIE9wZXJhbmRzPEFic3RyYWN0VmFsdWU+IGlu
dGVyc2VjdGlvbk9mUGFzdFZhbHVlc0F0SGVhZDsKLSAgICBib29sIGludGVyc2VjdGlvbk9mQ0ZB
SGFzVmlzaXRlZDsKICAgICAKICAgICBmbG9hdCBleGVjdXRpb25Db3VudDsKICAgICAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnJhbmNoRGlyZWN0aW9uLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0JyYW5jaERpcmVjdGlvbi5oCmluZGV4IGY5MDRh
NmJkNzZmMjM0NTVjMDFhNTA4ODZkYzNjYWE2ZGJiOWYzNjguLjcwZDQ5NTdhYzg1M2FhMjQ2MzFh
MmNmZWY1NmZlMDczOTliYTA5MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQnJhbmNoRGlyZWN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdCcmFuY2hEaXJlY3Rpb24uaApAQCAtMjksNyArMjksNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIERGRyB7CiAKLWVudW0gQnJhbmNoRGlyZWN0aW9uIHsKK2VudW0gQnJhbmNoRGly
ZWN0aW9uIDogdWludDhfdCB7CiAgICAgLy8gVGhpcyBpcyBub3QgYSBicmFuY2ggYW5kIHNvIHRo
ZXJlIGlzIG5vIGJyYW5jaCBkaXJlY3Rpb24sIG9yCiAgICAgLy8gdGhlIGJyYW5jaCBkaXJlY3Rp
b24gaGFzIHlldCB0byBiZSBzZXQuCiAgICAgSW52YWxpZEJyYW5jaERpcmVjdGlvbiwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQ2xvYmJlclN0YXRl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cnVjdHVyZUNsb2JiZXJTdGF0ZS5o
CmluZGV4IGVhOGY1MWIwN2QyYWU3NTc5NDA2NmFmNjIzZjkxNTJjODQxY2E3ODkuLmE5MzAxNDRj
MzMxZDI2NzBmNjUyYmY0N2MyNzBhZjRlN2FhYmVkMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQ2xvYmJlclN0YXRlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJ1Y3R1cmVDbG9iYmVyU3RhdGUuaApAQCAtMzEsNyArMzEs
NyBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKLWVudW0gU3RydWN0dXJl
Q2xvYmJlclN0YXRlIHsKK2VudW0gU3RydWN0dXJlQ2xvYmJlclN0YXRlIDogdWludDhfdCB7CiAg
ICAgU3RydWN0dXJlc0FyZVdhdGNoZWQsIC8vIENvbnN0YW50cyB3aXRoIHdhdGNoYWJsZSBzdHJ1
Y3R1cmVzIG11c3QgaGF2ZSB0aG9zZSBzdHJ1Y3R1cmVzLgogICAgIFN0cnVjdHVyZXNBcmVDbG9i
YmVyZWQgLy8gQ29uc3RhbnRzIHdpdGggd2F0Y2hhYmxlIHN0cnVjdHVyZXMgY291bGQgaGF2ZSBh
bnkgc3RydWN0dXJlLgogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326592</attachid>
            <date>2017-11-10 09:08:34 -0800</date>
            <delta_ts>2017-11-10 09:40:03 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-179528-20171110180833.patch</filename>
            <type>text/plain</type>
            <size>15528</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0Njg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
Y2ZmNDU0NzA2Zjg2YmY2YTk1YmE5MmYzNWQxZmE4OTcyYTA2ODBiLi4yY2U2NTFkNzU5YTI2ZjRi
YjQyMGI1MTkzNGViOTJmYmJmZWIzZmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MyBAQAorMjAxNy0xMS0xMCAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUu
Y29tPgorCisgICAgICAgIFRoZSBtZW1vcnkgY29uc3VtcHRpb24gb2YgREZHOjpCYXNpY0Jsb2Nr
IGNhbiBiZSBlYXNpbHkgcmVkdWNlZCBhIGJpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5NTI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBC
YXJhdGkuCisKKyAgICAgICAgQSBmZXcgY2hhbmdlcyBoZXJlOgorICAgICAgICAtIFJlb3JkZXJp
bmcgc29tZSBmaWVsZHMgb2YgREZHOjpCYXNpY0Jsb2NrIHRvIHJlZHVjZSBwYWRkaW5nCisgICAg
ICAgIC0gTWFraW5nIHRoZSBlbnVtIGZpZWxkcyB0aGF0IGFyZSBnbG9yaWZpZWQgYm9vbGVhbnMg
Zml0IGludG8gYSB1OAorICAgICAgICAtIE1ha2UgZWFjaCBPcGVyYW5kcyBvYmplY3QgaGF2ZSBh
IHNpbmdsZSB2ZWN0b3IgdGhhdCBob2xkcyBhbGwgYXJndW1lbnRzIGZvbGxvd2VkIGJ5IGFsbCBs
b2NhbHMsIGluc3RlYWQgb2YgdHdvIHZlY3RvcnMuCisgICAgICAgICAgVGhpcyBjaGFuZ2Ugd29y
a3MgYmVjYXVzZSB3ZSBuZXZlciBpbmNyZWFzZSB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyBhZnRl
ciBhbGxvY2F0aW5nIGFuIE9wZXJhbmRzIG9iamVjdC4KKyAgICAgICAgICBJdCBsZXRzIHVzIGF2
b2lkIG9uZSBleHRyYSBjYXBhY2l0eSBmaWVsZCBhbmQgb25lIGV4dHJhIHBvaW50ZXIgZmllbGQg
cGVyIE9wZXJhbmRzLAorICAgICAgICAgIGFuZCBtb3JlIGltcG9ydGFudGx5IG9uZSBhbGxvY2F0
aW9uIHBlciBPcGVyYW5kcyB3aGVuZXZlciBib3RoIHZlY3RvcnMgd291bGQgaGF2ZSBvdmVyZmxv
d2VkIHRoZWlyIGlubGluZWQgYnVmZmVyLgorICAgICAgICAgIEFkZGl0aW9uYWxseSwgaWYgYSBz
aW5nbGUgdmVjdG9yIHdvdWxkIGhhdmUgb3ZlcmZsb3dlZCBpdHMgaW5saW5lIGJ1ZmZlciwgd2hp
bGUgdGhlIG90aGVyIHdvdWxkIGhhdmUgaGFkIHNvbWUgZnJlZSBzcGFjZSwKKyAgICAgICAgICB3
ZSBoYXZlIGEgY2hhbmNlIHRvIGF2b2lkIGFuIGFsbG9jYXRpb24uCisgICAgICAgIC0gRmluYWxs
eSwgdGhlIHRocmVlIG1ldGhvZHMgYXJndW1lbnRGb3JJbmRleCwgdmFyaWFibGVGb3JJbmRleCBh
bmQgaW5kZXhGb3JPcGVyYW5kIHdlcmUgZGVsZXRlZCBzaW5jZSB0aGV5IHdlcmUgZGVhZCBjb2Rl
LgorCisgICAgICAgICogYnl0ZWNvZGUvT3BlcmFuZHMuaDoKKyAgICAgICAgKEpTQzo6T3BlcmFu
ZHM6Ok9wZXJhbmRzKToKKyAgICAgICAgKEpTQzo6T3BlcmFuZHM6Om51bWJlck9mQXJndW1lbnRz
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6T3BlcmFuZHM6Om51bWJlck9mTG9jYWxzIGNvbnN0KToK
KyAgICAgICAgKEpTQzo6T3BlcmFuZHM6OmFyZ3VtZW50KToKKyAgICAgICAgKEpTQzo6T3BlcmFu
ZHM6OmFyZ3VtZW50IGNvbnN0KToKKyAgICAgICAgKEpTQzo6T3BlcmFuZHM6OmxvY2FsKToKKyAg
ICAgICAgKEpTQzo6T3BlcmFuZHM6OmxvY2FsIGNvbnN0KToKKyAgICAgICAgKEpTQzo6T3BlcmFu
ZHM6OmVuc3VyZUxvY2Fscyk6CisgICAgICAgIChKU0M6Ok9wZXJhbmRzOjpzZXRMb2NhbCk6Cisg
ICAgICAgIChKU0M6Ok9wZXJhbmRzOjpnZXRMb2NhbCk6CisgICAgICAgIChKU0M6Ok9wZXJhbmRz
OjpzZXRBcmd1bWVudEZpcnN0VGltZSk6CisgICAgICAgIChKU0M6Ok9wZXJhbmRzOjpzZXRMb2Nh
bEZpcnN0VGltZSk6CisgICAgICAgIChKU0M6Ok9wZXJhbmRzOjpvcGVyYW5kKToKKyAgICAgICAg
KEpTQzo6T3BlcmFuZHM6OnNldE9wZXJhbmQpOgorICAgICAgICAoSlNDOjpPcGVyYW5kczo6c2l6
ZSBjb25zdCk6CisgICAgICAgIChKU0M6Ok9wZXJhbmRzOjphdCBjb25zdCk6CisgICAgICAgIChK
U0M6Ok9wZXJhbmRzOjphdCk6CisgICAgICAgIChKU0M6Ok9wZXJhbmRzOjppc0FyZ3VtZW50IGNv
bnN0KToKKyAgICAgICAgKEpTQzo6T3BlcmFuZHM6OmlzVmFyaWFibGUgY29uc3QpOgorICAgICAg
ICAoSlNDOjpPcGVyYW5kczo6dmlydHVhbFJlZ2lzdGVyRm9ySW5kZXggY29uc3QpOgorICAgICAg
ICAoSlNDOjpPcGVyYW5kczo6ZmlsbCk6CisgICAgICAgIChKU0M6Ok9wZXJhbmRzOjpvcGVyYXRv
cj09IGNvbnN0KToKKyAgICAgICAgKEpTQzo6T3BlcmFuZHM6OmFyZ3VtZW50Rm9ySW5kZXggY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpPcGVyYW5kczo6dmFyaWFibGVGb3JJbmRleCBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok9wZXJhbmRzOjppbmRleEZvck9wZXJhbmQg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdCYXNpY0Jsb2NrLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpCYXNpY0Jsb2NrOjpCYXNpY0Jsb2NrKToKKyAgICAgICAgKiBkZmcvREZH
QmFzaWNCbG9jay5oOgorICAgICAgICAqIGRmZy9ERkdCcmFuY2hEaXJlY3Rpb24uaDoKKyAgICAg
ICAgKiBkZmcvREZHU3RydWN0dXJlQ2xvYmJlclN0YXRlLmg6CisKIDIwMTctMTEtMDkgIFl1c3Vr
ZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0pTQ10gUmV0cnkg
bW9kdWxlIGZldGNoaW5nIGlmIHByZXZpb3VzIHJlcXVlc3QgZmFpbHMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGVyYW5kcy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL09wZXJhbmRzLmgKaW5kZXggMjZiZjU5Mzg1OGU4NWYwNTBjYjAzOGY1
ZGM5MjgzZmY5MmZlMWFlNS4uNmQzMDVjMWJlNzJkZGYwZDEyZmU5OGQyNjg2OTYxOWM2Mzg0NmMz
MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wZXJhbmRzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wZXJhbmRzLmgKQEAgLTQyLDQw
ICs0Miw0OCBAQCBlbnVtIE9wZXJhbmRzTGlrZVRhZyB7IE9wZXJhbmRzTGlrZSB9OwogdGVtcGxh
dGU8dHlwZW5hbWUgVD4KIGNsYXNzIE9wZXJhbmRzIHsKIHB1YmxpYzoKLSAgICBPcGVyYW5kcygp
IHsgfQorICAgIE9wZXJhbmRzKCkKKyAgICAgICAgOiBtX251bUFyZ3VtZW50cygwKSB7IH0KICAg
ICAKICAgICBleHBsaWNpdCBPcGVyYW5kcyhzaXplX3QgbnVtQXJndW1lbnRzLCBzaXplX3QgbnVt
TG9jYWxzKQorICAgICAgICA6IG1fbnVtQXJndW1lbnRzKG51bUFyZ3VtZW50cykKICAgICB7CiAg
ICAgICAgIGlmIChXVEY6OlZlY3RvclRyYWl0czxUPjo6bmVlZHNJbml0aWFsaXphdGlvbikgewot
ICAgICAgICAgICAgbV9hcmd1bWVudHMucmVzaXplKG51bUFyZ3VtZW50cyk7Ci0gICAgICAgICAg
ICBtX2xvY2Fscy5yZXNpemUobnVtTG9jYWxzKTsKKyAgICAgICAgICAgIG1fdmFsdWVzLnJlc2l6
ZShudW1Bcmd1bWVudHMgKyBudW1Mb2NhbHMpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgbV9hcmd1bWVudHMuZmlsbChUKCksIG51bUFyZ3VtZW50cyk7Ci0gICAgICAgICAgICBtX2xv
Y2Fscy5maWxsKFQoKSwgbnVtTG9jYWxzKTsKKyAgICAgICAgICAgIG1fdmFsdWVzLmZpbGwoVCgp
LCBudW1Bcmd1bWVudHMgKyBudW1Mb2NhbHMpOwogICAgICAgICB9CiAgICAgfQogCiAgICAgZXhw
bGljaXQgT3BlcmFuZHMoc2l6ZV90IG51bUFyZ3VtZW50cywgc2l6ZV90IG51bUxvY2FscywgY29u
c3QgVCYgaW5pdGlhbFZhbHVlKQorICAgICAgICA6IG1fbnVtQXJndW1lbnRzKG51bUFyZ3VtZW50
cykKICAgICB7Ci0gICAgICAgIG1fYXJndW1lbnRzLmZpbGwoaW5pdGlhbFZhbHVlLCBudW1Bcmd1
bWVudHMpOwotICAgICAgICBtX2xvY2Fscy5maWxsKGluaXRpYWxWYWx1ZSwgbnVtTG9jYWxzKTsK
KyAgICAgICAgbV92YWx1ZXMuZmlsbChpbml0aWFsVmFsdWUsIG51bUFyZ3VtZW50cyArIG51bUxv
Y2Fscyk7CiAgICAgfQogICAgIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CiAgICAgZXhwbGlj
aXQgT3BlcmFuZHMoT3BlcmFuZHNMaWtlVGFnLCBjb25zdCBPcGVyYW5kczxVPiYgb3RoZXIpCisg
ICAgICAgIDogbV9udW1Bcmd1bWVudHMob3RoZXIubnVtYmVyT2ZBcmd1bWVudHMoKSkKICAgICB7
Ci0gICAgICAgIG1fYXJndW1lbnRzLmZpbGwoVCgpLCBvdGhlci5udW1iZXJPZkFyZ3VtZW50cygp
KTsKLSAgICAgICAgbV9sb2NhbHMuZmlsbChUKCksIG90aGVyLm51bWJlck9mTG9jYWxzKCkpOwor
ICAgICAgICBtX3ZhbHVlcy5maWxsKFQoKSwgb3RoZXIubnVtYmVyT2ZBcmd1bWVudHMoKSArIG90
aGVyLm51bWJlck9mTG9jYWxzKCkpOwogICAgIH0KICAgICAKLSAgICBzaXplX3QgbnVtYmVyT2ZB
cmd1bWVudHMoKSBjb25zdCB7IHJldHVybiBtX2FyZ3VtZW50cy5zaXplKCk7IH0KLSAgICBzaXpl
X3QgbnVtYmVyT2ZMb2NhbHMoKSBjb25zdCB7IHJldHVybiBtX2xvY2Fscy5zaXplKCk7IH0KKyAg
ICBzaXplX3QgbnVtYmVyT2ZBcmd1bWVudHMoKSBjb25zdCB7IHJldHVybiBtX251bUFyZ3VtZW50
czsgfQorICAgIHNpemVfdCBudW1iZXJPZkxvY2FscygpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWVz
LnNpemUoKSAtIG1fbnVtQXJndW1lbnRzOyB9CiAgICAgCi0gICAgVCYgYXJndW1lbnQoc2l6ZV90
IGlkeCkgeyByZXR1cm4gbV9hcmd1bWVudHNbaWR4XTsgfQotICAgIGNvbnN0IFQmIGFyZ3VtZW50
KHNpemVfdCBpZHgpIGNvbnN0IHsgcmV0dXJuIG1fYXJndW1lbnRzW2lkeF07IH0KKyAgICBUJiBh
cmd1bWVudChzaXplX3QgaWR4KQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlkeCA8IG1fbnVtQXJn
dW1lbnRzKTsKKyAgICAgICAgcmV0dXJuIG1fdmFsdWVzW2lkeF07CisgICAgfQorICAgIGNvbnN0
IFQmIGFyZ3VtZW50KHNpemVfdCBpZHgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaWR4
IDwgbV9udW1Bcmd1bWVudHMpOworICAgICAgICByZXR1cm4gbV92YWx1ZXNbaWR4XTsKKyAgICB9
CiAgICAgCi0gICAgVCYgbG9jYWwoc2l6ZV90IGlkeCkgeyByZXR1cm4gbV9sb2NhbHNbaWR4XTsg
fQotICAgIGNvbnN0IFQmIGxvY2FsKHNpemVfdCBpZHgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxz
W2lkeF07IH0KKyAgICBUJiBsb2NhbChzaXplX3QgaWR4KSB7IHJldHVybiBtX3ZhbHVlc1ttX251
bUFyZ3VtZW50cyArIGlkeF07IH0KKyAgICBjb25zdCBUJiBsb2NhbChzaXplX3QgaWR4KSBjb25z
dCB7IHJldHVybiBtX3ZhbHVlc1ttX251bUFyZ3VtZW50cyArIGlkeF07IH0KICAgICAKICAgICB0
ZW1wbGF0ZTxPcGVyYW5kS2luZCBvcGVyYW5kS2luZD4KICAgICBzaXplX3Qgc2l6ZUZvcigpIGNv
bnN0CkBAIC0xMDEsNjIgKzEwOSw1OCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBlbnN1cmVM
b2NhbHMoc2l6ZV90IHNpemUpCiAgICAgewotICAgICAgICBzaXplX3Qgb2xkU2l6ZSA9IG1fbG9j
YWxzLnNpemUoKTsKLSAgICAgICAgaWYgKHNpemUgPD0gb2xkU2l6ZSkKKyAgICAgICAgc2l6ZV90
IG9sZFNpemUgPSBtX3ZhbHVlcy5zaXplKCk7CisgICAgICAgIHNpemVfdCBuZXdTaXplID0gbV9u
dW1Bcmd1bWVudHMgKyBzaXplOworICAgICAgICBpZiAobmV3U2l6ZSA8PSBvbGRTaXplKQogICAg
ICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIG1fbG9jYWxzLmdyb3coc2l6ZSk7CisgICAgICAg
IG1fdmFsdWVzLmdyb3cobmV3U2l6ZSk7CiAgICAgICAgIGlmICghV1RGOjpWZWN0b3JUcmFpdHM8
VD46Om5lZWRzSW5pdGlhbGl6YXRpb24pIHsKLSAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSBv
bGRTaXplOyBpIDwgbV9sb2NhbHMuc2l6ZSgpOyArK2kpCi0gICAgICAgICAgICAgICAgbV9sb2Nh
bHNbaV0gPSBUKCk7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gb2xkU2l6ZTsgaSA8IG1f
dmFsdWVzLnNpemUoKTsgKytpKQorICAgICAgICAgICAgICAgIG1fdmFsdWVzW2ldID0gVCgpOwog
ICAgICAgICB9CiAgICAgfQogCiAgICAgdm9pZCBlbnN1cmVMb2NhbHMoc2l6ZV90IHNpemUsIGNv
bnN0IFQmIGVuc3VyZWRWYWx1ZSkKICAgICB7Ci0gICAgICAgIHNpemVfdCBvbGRTaXplID0gbV9s
b2NhbHMuc2l6ZSgpOwotICAgICAgICBpZiAoc2l6ZSA8PSBvbGRTaXplKQorICAgICAgICBzaXpl
X3Qgb2xkU2l6ZSA9IG1fdmFsdWVzLnNpemUoKTsKKyAgICAgICAgc2l6ZV90IG5ld1NpemUgPSBt
X251bUFyZ3VtZW50cyArIHNpemU7CisgICAgICAgIGlmIChuZXdTaXplIDw9IG9sZFNpemUpCiAg
ICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbV9sb2NhbHMuZ3JvdyhzaXplKTsKLSAgICAg
ICAgZm9yIChzaXplX3QgaSA9IG9sZFNpemU7IGkgPCBtX2xvY2Fscy5zaXplKCk7ICsraSkKLSAg
ICAgICAgICAgIG1fbG9jYWxzW2ldID0gZW5zdXJlZFZhbHVlOworICAgICAgICBtX3ZhbHVlcy5n
cm93KG5ld1NpemUpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gb2xkU2l6ZTsgaSA8IG1fdmFs
dWVzLnNpemUoKTsgKytpKQorICAgICAgICAgICAgbV92YWx1ZXNbaV0gPSBlbnN1cmVkVmFsdWU7
CiAgICAgfQogICAgIAogICAgIHZvaWQgc2V0TG9jYWwoc2l6ZV90IGlkeCwgY29uc3QgVCYgdmFs
dWUpCiAgICAgewogICAgICAgICBlbnN1cmVMb2NhbHMoaWR4ICsgMSk7Ci0gICAgICAgIAotICAg
ICAgICBtX2xvY2Fsc1tpZHhdID0gdmFsdWU7CisgICAgICAgIGxvY2FsKGlkeCkgPSB2YWx1ZTsK
ICAgICB9CiAgICAgCiAgICAgVCBnZXRMb2NhbChzaXplX3QgaWR4KQogICAgIHsKLSAgICAgICAg
aWYgKGlkeCA+PSBtX2xvY2Fscy5zaXplKCkpCi0gICAgICAgICAgICByZXR1cm4gVCgpOwotICAg
ICAgICByZXR1cm4gbV9sb2NhbHNbaWR4XTsKKyAgICAgICAgcmV0dXJuIGlkeCA+PSBudW1iZXJP
ZkxvY2FscygpID8gVCgpIDogbG9jYWwoaWR4KTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBzZXRB
cmd1bWVudEZpcnN0VGltZShzaXplX3QgaWR4LCBjb25zdCBUJiB2YWx1ZSkKICAgICB7Ci0gICAg
ICAgIEFTU0VSVChtX2FyZ3VtZW50c1tpZHhdID09IFQoKSk7CisgICAgICAgIEFTU0VSVChtX3Zh
bHVlc1tpZHhdID09IFQoKSk7CiAgICAgICAgIGFyZ3VtZW50KGlkeCkgPSB2YWx1ZTsKICAgICB9
CiAgICAgCiAgICAgdm9pZCBzZXRMb2NhbEZpcnN0VGltZShzaXplX3QgaWR4LCBjb25zdCBUJiB2
YWx1ZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVChpZHggPj0gbV9sb2NhbHMuc2l6ZSgpIHx8IG1f
bG9jYWxzW2lkeF0gPT0gVCgpKTsKKyAgICAgICAgQVNTRVJUKGlkeCA+PSBudW1iZXJPZkxvY2Fs
cygpIHx8IGxvY2FsKGlkeCkgPT0gVCgpKTsKICAgICAgICAgc2V0TG9jYWwoaWR4LCB2YWx1ZSk7
CiAgICAgfQogICAgIAogICAgIFQmIG9wZXJhbmQoaW50IG9wZXJhbmQpCiAgICAgewotICAgICAg
ICBpZiAob3BlcmFuZElzQXJndW1lbnQob3BlcmFuZCkpIHsKLSAgICAgICAgICAgIGludCBhcmd1
bWVudCA9IFZpcnR1YWxSZWdpc3RlcihvcGVyYW5kKS50b0FyZ3VtZW50KCk7Ci0gICAgICAgICAg
ICByZXR1cm4gbV9hcmd1bWVudHNbYXJndW1lbnRdOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0
dXJuIG1fbG9jYWxzW1ZpcnR1YWxSZWdpc3RlcihvcGVyYW5kKS50b0xvY2FsKCldOworICAgICAg
ICBpZiAob3BlcmFuZElzQXJndW1lbnQob3BlcmFuZCkpCisgICAgICAgICAgICByZXR1cm4gYXJn
dW1lbnQoVmlydHVhbFJlZ2lzdGVyKG9wZXJhbmQpLnRvQXJndW1lbnQoKSk7CisgICAgICAgIHJl
dHVybiBsb2NhbChWaXJ0dWFsUmVnaXN0ZXIob3BlcmFuZCkudG9Mb2NhbCgpKTsKICAgICB9CiAK
ICAgICBUJiBvcGVyYW5kKFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIpCkBAIC0xODAs
MTMgKzE4NCw3IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIHNldE9wZXJhbmQoaW50IG9wZXJh
bmQsIGNvbnN0IFQmIHZhbHVlKQogICAgIHsKLSAgICAgICAgaWYgKG9wZXJhbmRJc0FyZ3VtZW50
KG9wZXJhbmQpKSB7Ci0gICAgICAgICAgICBpbnQgYXJndW1lbnQgPSBWaXJ0dWFsUmVnaXN0ZXIo
b3BlcmFuZCkudG9Bcmd1bWVudCgpOwotICAgICAgICAgICAgbV9hcmd1bWVudHNbYXJndW1lbnRd
ID0gdmFsdWU7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAg
ICAgIHNldExvY2FsKFZpcnR1YWxSZWdpc3RlcihvcGVyYW5kKS50b0xvY2FsKCksIHZhbHVlKTsK
KyAgICAgICAgdGhpcy0+b3BlcmFuZChvcGVyYW5kKSA9IHZhbHVlOwogICAgIH0KICAgICAKICAg
ICB2b2lkIHNldE9wZXJhbmQoVmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWdpc3RlciwgY29uc3Qg
VCYgdmFsdWUpCkBAIC0xOTQsMzIgKzE5MiwxNCBAQCBwdWJsaWM6CiAgICAgICAgIHNldE9wZXJh
bmQodmlydHVhbFJlZ2lzdGVyLm9mZnNldCgpLCB2YWx1ZSk7CiAgICAgfQogCi0gICAgc2l6ZV90
IHNpemUoKSBjb25zdCB7IHJldHVybiBudW1iZXJPZkFyZ3VtZW50cygpICsgbnVtYmVyT2ZMb2Nh
bHMoKTsgfQotICAgIGNvbnN0IFQmIGF0KHNpemVfdCBpbmRleCkgY29uc3QKLSAgICB7Ci0gICAg
ICAgIGlmIChpbmRleCA8IG51bWJlck9mQXJndW1lbnRzKCkpCi0gICAgICAgICAgICByZXR1cm4g
bV9hcmd1bWVudHNbaW5kZXhdOwotICAgICAgICByZXR1cm4gbV9sb2NhbHNbaW5kZXggLSBudW1i
ZXJPZkFyZ3VtZW50cygpXTsKLSAgICB9Ci0gICAgVCYgYXQoc2l6ZV90IGluZGV4KQotICAgIHsK
LSAgICAgICAgaWYgKGluZGV4IDwgbnVtYmVyT2ZBcmd1bWVudHMoKSkKLSAgICAgICAgICAgIHJl
dHVybiBtX2FyZ3VtZW50c1tpbmRleF07Ci0gICAgICAgIHJldHVybiBtX2xvY2Fsc1tpbmRleCAt
IG51bWJlck9mQXJndW1lbnRzKCldOwotICAgIH0KKyAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdmFsdWVzLnNpemUoKTsgfQorICAgIGNvbnN0IFQmIGF0KHNpemVfdCBpbmRleCkg
Y29uc3QgeyByZXR1cm4gbV92YWx1ZXNbaW5kZXhdOyB9CisgICAgVCYgYXQoc2l6ZV90IGluZGV4
KSB7IHJldHVybiBtX3ZhbHVlc1tpbmRleF07IH0KICAgICBjb25zdCBUJiBvcGVyYXRvcltdKHNp
emVfdCBpbmRleCkgY29uc3QgeyByZXR1cm4gYXQoaW5kZXgpOyB9CiAgICAgVCYgb3BlcmF0b3Jb
XShzaXplX3QgaW5kZXgpIHsgcmV0dXJuIGF0KGluZGV4KTsgfQogCi0gICAgYm9vbCBpc0FyZ3Vt
ZW50KHNpemVfdCBpbmRleCkgY29uc3QgeyByZXR1cm4gaW5kZXggPCBudW1iZXJPZkFyZ3VtZW50
cygpOyB9CisgICAgYm9vbCBpc0FyZ3VtZW50KHNpemVfdCBpbmRleCkgY29uc3QgeyByZXR1cm4g
aW5kZXggPCBtX251bUFyZ3VtZW50czsgfQogICAgIGJvb2wgaXNWYXJpYWJsZShzaXplX3QgaW5k
ZXgpIGNvbnN0IHsgcmV0dXJuICFpc0FyZ3VtZW50KGluZGV4KTsgfQotICAgIGludCBhcmd1bWVu
dEZvckluZGV4KHNpemVfdCBpbmRleCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBpbmRl
eDsKLSAgICB9Ci0gICAgaW50IHZhcmlhYmxlRm9ySW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAot
ICAgIHsKLSAgICAgICAgcmV0dXJuIGluZGV4IC0gbV9hcmd1bWVudHMuc2l6ZSgpOwotICAgIH0K
ICAgICBpbnQgb3BlcmFuZEZvckluZGV4KHNpemVfdCBpbmRleCkgY29uc3QKICAgICB7CiAgICAg
ICAgIGlmIChpbmRleCA8IG51bWJlck9mQXJndW1lbnRzKCkpCkBAIC0yMzAsMTYgKzIxMCw2IEBA
IHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBWaXJ0dWFsUmVnaXN0ZXIob3BlcmFuZEZv
ckluZGV4KGluZGV4KSk7CiAgICAgfQotICAgIHNpemVfdCBpbmRleEZvck9wZXJhbmQoaW50IG9w
ZXJhbmQpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAob3BlcmFuZElzQXJndW1lbnQob3BlcmFu
ZCkpCi0gICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8c2l6ZV90PihWaXJ0dWFsUmVnaXN0
ZXIob3BlcmFuZCkudG9Bcmd1bWVudCgpKTsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHNp
emVfdD4oVmlydHVhbFJlZ2lzdGVyKG9wZXJhbmQpLnRvTG9jYWwoKSkgKyBudW1iZXJPZkFyZ3Vt
ZW50cygpOwotICAgIH0KLSAgICBzaXplX3QgaW5kZXhGb3JPcGVyYW5kKFZpcnR1YWxSZWdpc3Rl
ciByZWcpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaW5kZXhGb3JPcGVyYW5kKHJlZy5v
ZmZzZXQoKSk7Ci0gICAgfQogICAgIAogICAgIHZvaWQgc2V0T3BlcmFuZEZpcnN0VGltZShpbnQg
b3BlcmFuZCwgY29uc3QgVCYgdmFsdWUpCiAgICAgewpAQCAtMjUzLDEwICsyMjMsOCBAQCBwdWJs
aWM6CiAgICAgCiAgICAgdm9pZCBmaWxsKFQgdmFsdWUpCiAgICAgewotICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IG1fYXJndW1lbnRzLnNpemUoKTsgKytpKQotICAgICAgICAgICAgbV9h
cmd1bWVudHNbaV0gPSB2YWx1ZTsKLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2xv
Y2Fscy5zaXplKCk7ICsraSkKLSAgICAgICAgICAgIG1fbG9jYWxzW2ldID0gdmFsdWU7CisgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV92YWx1ZXMuc2l6ZSgpOyArK2kpCisgICAgICAg
ICAgICBtX3ZhbHVlc1tpXSA9IHZhbHVlOwogICAgIH0KICAgICAKICAgICB2b2lkIGNsZWFyKCkK
QEAgLTI2OSwxNSArMjM3LDE2IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKG51bWJlck9mQXJn
dW1lbnRzKCkgPT0gb3RoZXIubnVtYmVyT2ZBcmd1bWVudHMoKSk7CiAgICAgICAgIEFTU0VSVChu
dW1iZXJPZkxvY2FscygpID09IG90aGVyLm51bWJlck9mTG9jYWxzKCkpOwogICAgICAgICAKLSAg
ICAgICAgcmV0dXJuIG1fYXJndW1lbnRzID09IG90aGVyLm1fYXJndW1lbnRzICYmIG1fbG9jYWxz
ID09IG90aGVyLm1fbG9jYWxzOworICAgICAgICByZXR1cm4gbV92YWx1ZXMgPT0gb3RoZXIubV92
YWx1ZXM7CiAgICAgfQogICAgIAogICAgIHZvaWQgZHVtcEluQ29udGV4dChQcmludFN0cmVhbSYg
b3V0LCBEdW1wQ29udGV4dCogY29udGV4dCkgY29uc3Q7CiAgICAgdm9pZCBkdW1wKFByaW50U3Ry
ZWFtJiBvdXQpIGNvbnN0OwogICAgIAogcHJpdmF0ZToKLSAgICBWZWN0b3I8VCwgOD4gbV9hcmd1
bWVudHM7Ci0gICAgVmVjdG9yPFQsIDE2PiBtX2xvY2FsczsKKyAgICAvLyBUaGUgZmlyc3QgbV9u
dW1Bcmd1bWVudHMgb2YgbV92YWx1ZXMgYXJlIGFyZ3VtZW50cywgdGhlIHJlc3QgYXJlIGxvY2Fs
cy4KKyAgICBWZWN0b3I8VCwgMjQ+IG1fdmFsdWVzOworICAgIHVuc2lnbmVkIG1fbnVtQXJndW1l
bnRzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Jhc2ljQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCYXNpY0Jsb2NrLmNwcAppbmRleCBjMmNhOWYzMzIxMDg0ZGZjY2I3ZGM2YmI5OTA1ZTFk
MDRhZjUyODM1Li5hYWIzMjRmY2ViMGU0Njc5YjgxOGViZTdhMzdmOGZkZmQwMjUwYTQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Jhc2ljQmxvY2suY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFzaWNCbG9jay5jcHAKQEAgLTM2LDE1ICsz
NiwxNiBAQCBCYXNpY0Jsb2NrOjpCYXNpY0Jsb2NrKAogICAgIHVuc2lnbmVkIGJ5dGVjb2RlQmVn
aW4sIHVuc2lnbmVkIG51bUFyZ3VtZW50cywgdW5zaWduZWQgbnVtTG9jYWxzLCBmbG9hdCBleGVj
dXRpb25Db3VudCkKICAgICA6IGJ5dGVjb2RlQmVnaW4oYnl0ZWNvZGVCZWdpbikKICAgICAsIGlu
ZGV4KE5vQmxvY2spCi0gICAgLCBpc09TUlRhcmdldChmYWxzZSkKLSAgICAsIGlzQ2F0Y2hFbnRy
eXBvaW50KGZhbHNlKQorICAgICwgY2ZhU3RydWN0dXJlQ2xvYmJlclN0YXRlQXRIZWFkKFN0cnVj
dHVyZXNBcmVXYXRjaGVkKQorICAgICwgY2ZhU3RydWN0dXJlQ2xvYmJlclN0YXRlQXRUYWlsKFN0
cnVjdHVyZXNBcmVXYXRjaGVkKQorICAgICwgY2ZhQnJhbmNoRGlyZWN0aW9uKEludmFsaWRCcmFu
Y2hEaXJlY3Rpb24pCiAgICAgLCBjZmFIYXNWaXNpdGVkKGZhbHNlKQogICAgICwgY2ZhU2hvdWxk
UmV2aXNpdChmYWxzZSkKICAgICAsIGNmYUZvdW5kQ29uc3RhbnRzKGZhbHNlKQogICAgICwgY2Zh
RGlkRmluaXNoKHRydWUpCi0gICAgLCBjZmFTdHJ1Y3R1cmVDbG9iYmVyU3RhdGVBdEhlYWQoU3Ry
dWN0dXJlc0FyZVdhdGNoZWQpCi0gICAgLCBjZmFTdHJ1Y3R1cmVDbG9iYmVyU3RhdGVBdFRhaWwo
U3RydWN0dXJlc0FyZVdhdGNoZWQpCi0gICAgLCBjZmFCcmFuY2hEaXJlY3Rpb24oSW52YWxpZEJy
YW5jaERpcmVjdGlvbikKKyAgICAsIGludGVyc2VjdGlvbk9mQ0ZBSGFzVmlzaXRlZCh0cnVlKQor
ICAgICwgaXNPU1JUYXJnZXQoZmFsc2UpCisgICAgLCBpc0NhdGNoRW50cnlwb2ludChmYWxzZSkK
ICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgLCBpc0xpbmtlZChmYWxzZSkKICNlbmRpZgpAQCAt
NTQsNyArNTUsNiBAQCBCYXNpY0Jsb2NrOjpCYXNpY0Jsb2NrKAogICAgICwgdmFsdWVzQXRIZWFk
KG51bUFyZ3VtZW50cywgbnVtTG9jYWxzKQogICAgICwgdmFsdWVzQXRUYWlsKG51bUFyZ3VtZW50
cywgbnVtTG9jYWxzKQogICAgICwgaW50ZXJzZWN0aW9uT2ZQYXN0VmFsdWVzQXRIZWFkKG51bUFy
Z3VtZW50cywgbnVtTG9jYWxzLCBBYnN0cmFjdFZhbHVlOjpmdWxsVG9wKCkpCi0gICAgLCBpbnRl
cnNlY3Rpb25PZkNGQUhhc1Zpc2l0ZWQodHJ1ZSkKICAgICAsIGV4ZWN1dGlvbkNvdW50KGV4ZWN1
dGlvbkNvdW50KQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdCYXNpY0Jsb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Jhc2ljQmxvY2su
aAppbmRleCAxZTIzZTM3NjM3YzQzMWUxOGI2ODU4ZjE2YjYzNDkyZGM3YWNmODdiLi4xZTIxMjEz
ZDg4ZGM1YjkyNGMxY2I2NzUwOGI4MWU2NGNkZTFjNWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Jhc2ljQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Jhc2ljQmxvY2suaApAQCAtMTc1LDE2ICsxNzUsMTggQEAgc3RydWN0IEJhc2lj
QmxvY2sgOiBSZWZDb3VudGVkPEJhc2ljQmxvY2s+IHsKICAgICB1bnNpZ25lZCBieXRlY29kZUJl
Z2luOwogICAgIAogICAgIEJsb2NrSW5kZXggaW5kZXg7Ci0gICAgCi0gICAgYm9vbCBpc09TUlRh
cmdldDsKLSAgICBib29sIGlzQ2F0Y2hFbnRyeXBvaW50OworCisgICAgU3RydWN0dXJlQ2xvYmJl
clN0YXRlIGNmYVN0cnVjdHVyZUNsb2JiZXJTdGF0ZUF0SGVhZDsKKyAgICBTdHJ1Y3R1cmVDbG9i
YmVyU3RhdGUgY2ZhU3RydWN0dXJlQ2xvYmJlclN0YXRlQXRUYWlsOworICAgIEJyYW5jaERpcmVj
dGlvbiBjZmFCcmFuY2hEaXJlY3Rpb247CiAgICAgYm9vbCBjZmFIYXNWaXNpdGVkOwogICAgIGJv
b2wgY2ZhU2hvdWxkUmV2aXNpdDsKICAgICBib29sIGNmYUZvdW5kQ29uc3RhbnRzOwogICAgIGJv
b2wgY2ZhRGlkRmluaXNoOwotICAgIFN0cnVjdHVyZUNsb2JiZXJTdGF0ZSBjZmFTdHJ1Y3R1cmVD
bG9iYmVyU3RhdGVBdEhlYWQ7Ci0gICAgU3RydWN0dXJlQ2xvYmJlclN0YXRlIGNmYVN0cnVjdHVy
ZUNsb2JiZXJTdGF0ZUF0VGFpbDsKLSAgICBCcmFuY2hEaXJlY3Rpb24gY2ZhQnJhbmNoRGlyZWN0
aW9uOworICAgIGJvb2wgaW50ZXJzZWN0aW9uT2ZDRkFIYXNWaXNpdGVkOworICAgIGJvb2wgaXNP
U1JUYXJnZXQ7CisgICAgYm9vbCBpc0NhdGNoRW50cnlwb2ludDsKKwogI2lmICFBU1NFUlRfRElT
QUJMRUQKICAgICBib29sIGlzTGlua2VkOwogI2VuZGlmCkBAIC0yMTcsNyArMjE5LDYgQEAgc3Ry
dWN0IEJhc2ljQmxvY2sgOiBSZWZDb3VudGVkPEJhc2ljQmxvY2s+IHsKICAgICAvLyB3b3VsZCBu
b3QgYmUgYSBwcm9kdWN0aXZlIG9wdGltaXphdGlvbjogaXQgd291bGQgbWFrZSBzZXR0aW5nIHVw
IGEgYmFzaWMgYmxvY2sgbW9yZQogICAgIC8vIGV4cGVuc2l2ZSBhbmQgd291bGQgb25seSBiZW5l
Zml0IGJpemFycmUgcGF0aG9sb2dpY2FsIGNhc2VzLgogICAgIE9wZXJhbmRzPEFic3RyYWN0VmFs
dWU+IGludGVyc2VjdGlvbk9mUGFzdFZhbHVlc0F0SGVhZDsKLSAgICBib29sIGludGVyc2VjdGlv
bk9mQ0ZBSGFzVmlzaXRlZDsKICAgICAKICAgICBmbG9hdCBleGVjdXRpb25Db3VudDsKICAgICAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnJhbmNoRGlyZWN0aW9u
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0JyYW5jaERpcmVjdGlvbi5oCmluZGV4
IGY5MDRhNmJkNzZmMjM0NTVjMDFhNTA4ODZkYzNjYWE2ZGJiOWYzNjguLjcwZDQ5NTdhYzg1M2Fh
MjQ2MzFhMmNmZWY1NmZlMDczOTliYTA5MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQnJhbmNoRGlyZWN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCcmFuY2hEaXJlY3Rpb24uaApAQCAtMjksNyArMjksNyBAQAogCiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKLWVudW0gQnJhbmNoRGlyZWN0aW9uIHsKK2VudW0gQnJh
bmNoRGlyZWN0aW9uIDogdWludDhfdCB7CiAgICAgLy8gVGhpcyBpcyBub3QgYSBicmFuY2ggYW5k
IHNvIHRoZXJlIGlzIG5vIGJyYW5jaCBkaXJlY3Rpb24sIG9yCiAgICAgLy8gdGhlIGJyYW5jaCBk
aXJlY3Rpb24gaGFzIHlldCB0byBiZSBzZXQuCiAgICAgSW52YWxpZEJyYW5jaERpcmVjdGlvbiwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQ2xvYmJl
clN0YXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cnVjdHVyZUNsb2JiZXJT
dGF0ZS5oCmluZGV4IGVhOGY1MWIwN2QyYWU3NTc5NDA2NmFmNjIzZjkxNTJjODQxY2E3ODkuLmE5
MzAxNDRjMzMxZDI2NzBmNjUyYmY0N2MyNzBhZjRlN2FhYmVkMmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQ2xvYmJlclN0YXRlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJ1Y3R1cmVDbG9iYmVyU3RhdGUuaApAQCAtMzEs
NyArMzEsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKLWVudW0gU3Ry
dWN0dXJlQ2xvYmJlclN0YXRlIHsKK2VudW0gU3RydWN0dXJlQ2xvYmJlclN0YXRlIDogdWludDhf
dCB7CiAgICAgU3RydWN0dXJlc0FyZVdhdGNoZWQsIC8vIENvbnN0YW50cyB3aXRoIHdhdGNoYWJs
ZSBzdHJ1Y3R1cmVzIG11c3QgaGF2ZSB0aG9zZSBzdHJ1Y3R1cmVzLgogICAgIFN0cnVjdHVyZXNB
cmVDbG9iYmVyZWQgLy8gQ29uc3RhbnRzIHdpdGggd2F0Y2hhYmxlIHN0cnVjdHVyZXMgY291bGQg
aGF2ZSBhbnkgc3RydWN0dXJlLgogfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>