<?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>205404</bug_id>
          
          <creation_ts>2019-12-18 11:04:56 -0800</creation_ts>
          <short_desc>[LFC][IFC] LineLayoutContext::m_uncommittedList is not always a continuous list of runs</short_desc>
          <delta_ts>2019-12-30 11:11:45 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1599883</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-12-18 11:04:56 -0800</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599884</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-18 11:05:40 -0800</bug_when>
    <thetext>&lt;rdar://problem/58049699&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599893</commentid>
    <comment_count>2</comment_count>
      <attachid>385988</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-12-18 11:24:28 -0800</bug_when>
    <thetext>Created attachment 385988
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599894</commentid>
    <comment_count>3</comment_count>
      <attachid>385988</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-18 11:27:34 -0800</bug_when>
    <thetext>Comment on attachment 385988
Patch

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

&gt; Source/WebCore/layout/inlineformatting/LineLayoutContext.h:72
&gt; +        void shrink(unsigned newSize);

Can we use size_t everywhere?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599937</commentid>
    <comment_count>4</comment_count>
      <attachid>385995</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-12-18 12:44:10 -0800</bug_when>
    <thetext>Created attachment 385995
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599964</commentid>
    <comment_count>5</comment_count>
      <attachid>385995</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-18 13:29:03 -0800</bug_when>
    <thetext>Comment on attachment 385995
Patch

Clearing flags on attachment: 385995

Committed r253711: &lt;https://trac.webkit.org/changeset/253711&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599965</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-18 13:29:05 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600388</commentid>
    <comment_count>7</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-12-19 11:20:35 -0800</bug_when>
    <thetext>Reverted r253711 for reason:

Broke two tests on Mac and iOS

Committed r253770: &lt;https://trac.webkit.org/changeset/253770&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385988</attachid>
            <date>2019-12-18 11:24:28 -0800</date>
            <delta_ts>2019-12-18 12:44:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205404-20191218112427.patch</filename>
            <type>text/plain</type>
            <size>17180</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjQ5ODMzNTgyNjk2OTY2
ZmUzMWE3ODBhMzg2M2RkNTExNzE2YmJmOS4uMjViODA1MmE3ODFmNzFkNjczZjQ0MGU1OTE1ZjQ5
NTAzZTA4YTU2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE5LTEyLTE4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBMaW5lTGF5
b3V0Q29udGV4dDo6bV91bmNvbW1pdHRlZExpc3QgaXMgbm90IGFsd2F5cyBhIGNvbnRpbnVvdXMg
bGlzdCBvZiBydW5zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDU0MDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4MDQ5Njk5PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbmNlIExpbmVMYXlvdXRD
b250ZXh0J3MgbV91bmNvbW1pdHRlZExpc3QgaXMgbm90IG5lY2Vzc2FyaWx5IGNvbnRpbnVvdXMg
c2V0IG9mIHJ1bnMgKGNvbnRpbnVvdXMgaW4gdGhlIGNvbnRlbnQgb2Ygbm90IGhhdmluZyBhIHNv
ZnQgd3JhcCBvcHBvcnR1bml0eSkKKyAgICAgICAgd2UgY2FuJ3QgdXNlIExpbmVCcmVha2VyJ3Mg
Q29udGVudCBzdHJ1Y3QgYW55bW9yZSB0byBzdG9yZSB0aGUgdW5jb21taXR0ZWQgY29udGVudC4K
KyAgICAgICAgTGV0J3MgdXNlIGEgZGVkaWNhdGVkIFVuY29tbWl0dGVkQ29udGVudCBzdHJ1Y3Qg
aW5zdGVhZC4gSXQgYWxzbyBlbmFibGVzIHVzIHRvIHBhc3MgaW4gYSBjb25zdCBSdW5MaXN0JiB0
byB0aGUgQ29udGlub3VzQ29udGVudC4gQ29udGlub3VzQ29udGVudCBzaG91bGQgbmV2ZXIgbXV0
YXRlIHRoaXMgbGlzdC4KKworICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUxpbmVCcmVha2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6c2hvdWxkS2VlcEVu
ZE9mTGluZVdoaXRlc3BhY2UpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnJlYWtl
cjo6YnJlYWtpbmdDb250ZXh0Rm9ySW5saW5lQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkxpbmVCcmVha2VyOjpDb250aW5vdXNDb250ZW50OjpDb250aW5vdXNDb250ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJyZWFrZXI6OkNvbnRpbm91c0NvbnRlbnQ6
Omhhc1RleHRDb250ZW50T25seSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Okxp
bmVCcmVha2VyOjpDb250aW5vdXNDb250ZW50Ojppc1Zpc3VhbGx5RW1wdHlXaGl0ZXNwYWNlQ29u
dGVudE9ubHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnJlYWtlcjo6
Q29udGlub3VzQ29udGVudDo6Zmlyc3RUZXh0UnVuSW5kZXggY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpMaW5lQnJlYWtlcjo6Q29udGlub3VzQ29udGVudDo6aGFzTm9uQ29udGVu
dFJ1bnNPbmx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJyZWFrZXI6
OkNvbnRpbm91c0NvbnRlbnQ6OlRyYWlsaW5nQ29sbGFwc2libGVDb250ZW50OjpyZXNldCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCcmVha2VyOjpDb250ZW50OjphcHBlbmQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnJlYWtlcjo6Q29udGVudDo6
cmVzZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnJlYWtlcjo6
Q29udGVudDo6c2hyaW5rKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGlu
ZUJyZWFrZXI6OkNvbnRlbnQ6Omhhc1RleHRDb250ZW50T25seSBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCcmVha2VyOjpDb250ZW50Ojppc1Zpc3VhbGx5
RW1wdHlXaGl0ZXNwYWNlQ29udGVudE9ubHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpMaW5lQnJlYWtlcjo6Q29udGVudDo6Zmlyc3RUZXh0UnVuSW5kZXggY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnJlYWtlcjo6Q29u
dGVudDo6aGFzTm9uQ29udGVudFJ1bnNPbmx5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6TGluZUJyZWFrZXI6OkNvbnRlbnQ6OlRyYWlsaW5nQ29sbGFwc2libGVD
b250ZW50OjpyZXNldCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRp
bmcvSW5saW5lTGluZUJyZWFrZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJy
ZWFrZXI6OkNvbnRpbm91c0NvbnRlbnQ6OnJ1bnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpMaW5lQnJlYWtlcjo6Q29udGlub3VzQ29udGVudDo6aXNFbXB0eSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCcmVha2VyOjpDb250aW5vdXNDb250ZW50Ojpz
aXplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJyZWFrZXI6OkNvbnRl
bnQ6OnJ1bnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnJlYWtl
cjo6Q29udGVudDo6cnVucyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkxpbmVCcmVha2VyOjpDb250ZW50Ojppc0VtcHR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJyZWFrZXI6OkNvbnRlbnQ6OnNpemUgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnJlYWtlcjo6Q29udGVudDo6
d2lkdGggY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnJl
YWtlcjo6Q29udGVudDo6bm9uQ29sbGFwc2libGVXaWR0aCBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCcmVha2VyOjpDb250ZW50OjpoYXNUcmFpbGluZ0Nv
bGxhcHNpYmxlQ29udGVudCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkxpbmVCcmVha2VyOjpDb250ZW50Ojppc1RyYWlsaW5nQ29udGVudEZ1bGx5Q29sbGFwc2li
bGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0xp
bmVMYXlvdXRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUxheW91
dENvbnRleHQ6OnByb2Nlc3NVbmNvbW1pdHRlZENvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpMaW5lTGF5b3V0Q29udGV4dDo6VW5jb21taXR0ZWRDb250ZW50OjphcHBlbmQpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lTGF5b3V0Q29udGV4dDo6VW5jb21taXR0ZWRD
b250ZW50OjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVMYXlvdXRDb250
ZXh0OjpVbmNvbW1pdHRlZENvbnRlbnQ6OnNocmluayk6CisgICAgICAgICogbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvTGluZUxheW91dENvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6TGluZUxheW91dENvbnRleHQ6OlVuY29tbWl0dGVkQ29udGVudDo6d2lkdGggY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lTGF5b3V0Q29udGV4dDo6VW5jb21taXR0ZWRD
b250ZW50OjpzaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUxheW91dENvbnRl
eHQ6OlVuY29tbWl0dGVkQ29udGVudDo6aXNFbXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkxpbmVMYXlvdXRDb250ZXh0OjpVbmNvbW1pdHRlZENvbnRlbnQ6OnJ1bnMgY29uc3QpOgor
CiAyMDE5LTEyLTE4ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W0xGQ11bSUZDXSBMaW5lQnJlYWtlcjo6bGFzdFNvZnRXcmFwT3Bwb3J0dW5pdHkgc2hvdWxkIHRh
a2UgYSBsaXN0IG9mIHJ1bnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmNwcAppbmRleCA5ZTkzMzY3ZWIz
MjA0MTk0YzQ3OTc3OTA1NzFmNGM1Yzk5YjVlMDc5Li5kNzhlYzYyMDBiNmUxYjNhNDJiZjc3MzBm
ODY4YTUzYjZmM2JhZTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIuY3BwCkBAIC01NCw3ICs1NCw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0NvbnRlbnRTcGxpdEFsbG93ZWQoY29uc3QgTGluZUJy
ZWFrZXI6OlJ1biYgcnVuKQogICAgIHJldHVybiBpc1RleHRDb250ZW50V3JhcHBpbmdBbGxvd2Vk
KHJ1bi5pbmxpbmVJdGVtLnN0eWxlKCkpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxk
S2VlcEVuZE9mTGluZVdoaXRlc3BhY2UoY29uc3QgTGluZUJyZWFrZXI6OkNvbnRlbnQmIGNhbmRp
ZGF0ZVJ1bnMpCitzdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxkS2VlcEVuZE9mTGluZVdoaXRlc3Bh
Y2UoY29uc3QgTGluZUJyZWFrZXI6OkNvbnRpbm91c0NvbnRlbnQmIGNhbmRpZGF0ZVJ1bnMpCiB7
CiAgICAgLy8gR3JhYiB0aGUgc3R5bGUgYW5kIGNoZWNrIGZvciB3aGl0ZS1zcGFjZSBwcm9wZXJ0
eSB0byBkZWNpZGVkIHdoZXRoZXIgd2Ugc2hvdWxkIGxldCB0aGlzIHdoaXRlc3BhY2UgY29udGVu
dCBvdmVyZmxvdyB0aGUgY3VycmVudCBsaW5lLgogICAgIC8vIE5vdGUgdGhhdCB0aGUgImtlZXAi
IGluIHRoZSBjb250ZXh0IG1lYW5zIHdlIGxldCB0aGUgd2hpdGVzcGFjZSBjb250ZW50IHNpdCBv
biB0aGUgY3VycmVudCBsaW5lLgpAQCAtNjQsNyArNjQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2hvdWxkS2VlcEVuZE9mTGluZVdoaXRlc3BhY2UoY29uc3QgTGluZUJyZWFrZXI6OkNvbnRlbnQm
IGNhbgogICAgIHJldHVybiB3aGl0ZXNwYWNlID09IFdoaXRlU3BhY2U6Ok5vcm1hbCB8fCB3aGl0
ZXNwYWNlID09IFdoaXRlU3BhY2U6Ok5vV3JhcCB8fCB3aGl0ZXNwYWNlID09IFdoaXRlU3BhY2U6
OlByZVdyYXAgfHwgd2hpdGVzcGFjZSA9PSBXaGl0ZVNwYWNlOjpQcmVMaW5lOwogfQogCi1MaW5l
QnJlYWtlcjo6QnJlYWtpbmdDb250ZXh0IExpbmVCcmVha2VyOjpicmVha2luZ0NvbnRleHRGb3JJ
bmxpbmVDb250ZW50KGNvbnN0IENvbnRlbnQmIGNhbmRpZGF0ZVJ1bnMsIGNvbnN0IExpbmVTdGF0
dXMmIGxpbmVTdGF0dXMpCitMaW5lQnJlYWtlcjo6QnJlYWtpbmdDb250ZXh0IExpbmVCcmVha2Vy
OjpicmVha2luZ0NvbnRleHRGb3JJbmxpbmVDb250ZW50KGNvbnN0IENvbnRpbm91c0NvbnRlbnQm
IGNhbmRpZGF0ZVJ1bnMsIGNvbnN0IExpbmVTdGF0dXMmIGxpbmVTdGF0dXMpCiB7CiAgICAgQVNT
RVJUKCFjYW5kaWRhdGVSdW5zLmlzRW1wdHkoKSk7CiAgICAgaWYgKGNhbmRpZGF0ZVJ1bnMud2lk
dGgoKSA8PSBsaW5lU3RhdHVzLmF2YWlsYWJsZVdpZHRoKQpAQCAtMzg2LDQ5ICszODYsNDIgQEAg
T3B0aW9uYWw8c2l6ZV90PiBMaW5lQnJlYWtlcjo6bGFzdFNvZnRXcmFwT3Bwb3J0dW5pdHkoY29u
c3QgSW5saW5lSXRlbSYgaW5saW5lSXQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBMaW5l
QnJlYWtlcjo6Q29udGVudDo6YXBwZW5kKGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0sIElu
bGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoKQorTGluZUJyZWFrZXI6OkNvbnRpbm91c0NvbnRl
bnQ6OkNvbnRpbm91c0NvbnRlbnQoY29uc3QgUnVuTGlzdCYgcnVucykKKyAgICA6IG1fcnVucyhy
dW5zKQogewotICAgIEFTU0VSVCghaW5saW5lSXRlbS5pc0Zsb2F0KCkpOwotICAgIG1fY29udGlu
b3VzUnVucy5hcHBlbmQoeyBpbmxpbmVJdGVtLCBsb2dpY2FsV2lkdGggfSk7Ci0gICAgbV93aWR0
aCArPSBsb2dpY2FsV2lkdGg7CiAgICAgLy8gRmlndXJlIG91dCB0aGUgdHJhaWxpbmcgY29sbGFw
c2libGUgc3RhdGUuCi0gICAgaWYgKGlubGluZUl0ZW0uaXNCb3goKSB8fCBpbmxpbmVJdGVtLmlz
TGluZUJyZWFrKCkpCi0gICAgICAgIG1fdHJhaWxpbmdDb2xsYXBzaWJsZUNvbnRlbnQucmVzZXQo
KTsKLSAgICBlbHNlIGlmIChpbmxpbmVJdGVtLmlzVGV4dCgpKSB7Ci0gICAgICAgIGF1dG8mIGlu
bGluZVRleHRJdGVtID0gZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KGlubGluZUl0ZW0pOwotICAg
ICAgICBhdXRvIGlzRnVsbHlDb2xsYXBzaWJsZSA9IFsmXSB7Ci0gICAgICAgICAgICByZXR1cm4g
aW5saW5lVGV4dEl0ZW0uaXNXaGl0ZXNwYWNlKCkgJiYgIVRleHRVdGlsOjpzaG91bGRQcmVzZXJ2
ZVRyYWlsaW5nV2hpdGVzcGFjZShpbmxpbmVUZXh0SXRlbS5zdHlsZSgpKTsKLSAgICAgICAgfTsK
LSAgICAgICAgaWYgKGlzRnVsbHlDb2xsYXBzaWJsZSgpKSB7Ci0gICAgICAgICAgICBtX3RyYWls
aW5nQ29sbGFwc2libGVDb250ZW50LndpZHRoICs9IGxvZ2ljYWxXaWR0aDsKLSAgICAgICAgICAg
IG1fdHJhaWxpbmdDb2xsYXBzaWJsZUNvbnRlbnQuaXNGdWxseUNvbGxhcHNpYmxlID0gdHJ1ZTsK
LSAgICAgICAgfSBlbHNlIGlmIChhdXRvIGNvbGxhcHNpYmxlV2lkdGggPSBpbmxpbmVUZXh0SXRl
bS5zdHlsZSgpLmxldHRlclNwYWNpbmcoKSkgewotICAgICAgICAgICAgbV90cmFpbGluZ0NvbGxh
cHNpYmxlQ29udGVudC53aWR0aCA9IGNvbGxhcHNpYmxlV2lkdGg7Ci0gICAgICAgICAgICBtX3Ry
YWlsaW5nQ29sbGFwc2libGVDb250ZW50LmlzRnVsbHlDb2xsYXBzaWJsZSA9IGZhbHNlOwotICAg
ICAgICB9IGVsc2UKLSAgICAgICAgICAgIG1fdHJhaWxpbmdDb2xsYXBzaWJsZUNvbnRlbnQucmVz
ZXQoKTsKKyAgICBmb3IgKGF1dG8mIHJ1biA6IFdURjo6bWFrZVJldmVyc2VkUmFuZ2UobV9ydW5z
KSkgeworICAgICAgICBhdXRvJiBpbmxpbmVJdGVtID0gcnVuLmlubGluZUl0ZW07CisgICAgICAg
IGlmIChpbmxpbmVJdGVtLmlzQm94KCkgfHwgaW5saW5lSXRlbS5pc0xpbmVCcmVhaygpKSB7Cisg
ICAgICAgICAgICAvLyBXZSBkaWQgcmVhY2ggYSBub24tY29sbGFwc2libGUgY29udGVudC4gV2Ug
aGF2ZSBhbGwgdGhlIHRyYWlsaW5nIHdoaXRlc3BhY2Ugbm93LgorICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlubGluZUl0ZW0uaXNUZXh0KCkpIHsKKyAgICAgICAg
ICAgIGF1dG8mIGlubGluZVRleHRJdGVtID0gZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KGlubGlu
ZUl0ZW0pOworICAgICAgICAgICAgYXV0byBpc0Z1bGx5Q29sbGFwc2libGUgPSBbJl0geworICAg
ICAgICAgICAgICAgIHJldHVybiBpbmxpbmVUZXh0SXRlbS5pc1doaXRlc3BhY2UoKSAmJiAhVGV4
dFV0aWw6OnNob3VsZFByZXNlcnZlVHJhaWxpbmdXaGl0ZXNwYWNlKGlubGluZVRleHRJdGVtLnN0
eWxlKCkpOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGlmIChpc0Z1bGx5Q29sbGFwc2li
bGUoKSkgeworICAgICAgICAgICAgICAgIG1fdHJhaWxpbmdDb2xsYXBzaWJsZUNvbnRlbnQud2lk
dGggKz0gcnVuLmxvZ2ljYWxXaWR0aDsKKyAgICAgICAgICAgICAgICBtX3RyYWlsaW5nQ29sbGFw
c2libGVDb250ZW50LmlzRnVsbHlDb2xsYXBzaWJsZSA9IHRydWU7CisgICAgICAgICAgICAgICAg
Ly8gTGV0J3Mgc2VlIGlmIHdlJ3ZlIGdvdCBtb3JlIHRyYWlsaW5nIHdoaXRlc3BhY2UgY29udGVu
dC4KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGlmIChhdXRvIGNvbGxhcHNpYmxlV2lkdGggPSBpbmxpbmVUZXh0SXRlbS5zdHlsZSgpLmxldHRl
clNwYWNpbmcoKSkgeworICAgICAgICAgICAgICAgIG1fdHJhaWxpbmdDb2xsYXBzaWJsZUNvbnRl
bnQud2lkdGggKz0gY29sbGFwc2libGVXaWR0aDsKKyAgICAgICAgICAgICAgICBtX3RyYWlsaW5n
Q29sbGFwc2libGVDb250ZW50LmlzRnVsbHlDb2xsYXBzaWJsZSA9IGZhbHNlOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgLy8gRW5kIG9mIHdoaXRzcGFjZSBjb250ZW50LgorICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KICAgICB9CiB9CiAKLXZvaWQgTGluZUJyZWFrZXI6OkNvbnRl
bnQ6OnJlc2V0KCkKLXsKLSAgICBtX2NvbnRpbm91c1J1bnMuY2xlYXIoKTsKLSAgICBtX3RyYWls
aW5nQ29sbGFwc2libGVDb250ZW50LnJlc2V0KCk7Ci0gICAgbV93aWR0aCA9IDBfbHU7Ci19Ci0K
LXZvaWQgTGluZUJyZWFrZXI6OkNvbnRlbnQ6OnNocmluayh1bnNpZ25lZCBuZXdTaXplKQotewot
ICAgIGZvciAoYXV0byBpID0gbV9jb250aW5vdXNSdW5zLnNpemUoKTsgaS0tOykKLSAgICAgICAg
bV93aWR0aCAtPSBtX2NvbnRpbm91c1J1bnNbaV0ubG9naWNhbFdpZHRoOwotICAgIG1fY29udGlu
b3VzUnVucy5zaHJpbmsobmV3U2l6ZSk7Ci19Ci0KLWJvb2wgTGluZUJyZWFrZXI6OkNvbnRlbnQ6
Omhhc1RleHRDb250ZW50T25seSgpIGNvbnN0Citib29sIExpbmVCcmVha2VyOjpDb250aW5vdXND
b250ZW50OjpoYXNUZXh0Q29udGVudE9ubHkoKSBjb25zdAogewogICAgIC8vIDxzcGFuPnRleHQ8
L3NwYW4+IGlzIGNvbnNpZGVyZWQgYSB0ZXh0IHJ1biBldmVuIHdpdGggdGhlIFtjb250YWluZXIg
c3RhcnRdW2NvbnRhaW5lciBlbmRdIGlubGluZSBpdGVtcy4KICAgICAvLyBEdWUgdG8gY29tbWl0
IGJvdW5kYXJ5IHJ1bGVzLCB3ZSBqdXN0IG5lZWQgdG8gY2hlY2sgdGhlIGZpcnN0IG5vbi10eXBl
bGVzcyBpbmxpbmUgaXRlbSAoY2FuJ3QgaGF2ZSBib3RoIFtpbWddIGFuZCBbdGV4dF0pCi0gICAg
Zm9yIChhdXRvJiBydW4gOiBtX2NvbnRpbm91c1J1bnMpIHsKKyAgICBmb3IgKGF1dG8mIHJ1biA6
IG1fcnVucykgewogICAgICAgICBhdXRvJiBpbmxpbmVJdGVtID0gcnVuLmlubGluZUl0ZW07CiAg
ICAgICAgIGlmIChpbmxpbmVJdGVtLmlzQ29udGFpbmVyU3RhcnQoKSB8fCBpbmxpbmVJdGVtLmlz
Q29udGFpbmVyRW5kKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTQzNywxMiArNDMwLDEy
IEBAIGJvb2wgTGluZUJyZWFrZXI6OkNvbnRlbnQ6Omhhc1RleHRDb250ZW50T25seSgpIGNvbnN0
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIExpbmVCcmVha2VyOjpDb250ZW50Ojppc1Zp
c3VhbGx5RW1wdHlXaGl0ZXNwYWNlQ29udGVudE9ubHkoKSBjb25zdAorYm9vbCBMaW5lQnJlYWtl
cjo6Q29udGlub3VzQ29udGVudDo6aXNWaXN1YWxseUVtcHR5V2hpdGVzcGFjZUNvbnRlbnRPbmx5
KCkgY29uc3QKIHsKICAgICAvLyBbPHNwYW4+PC9zcGFuPiBdIFs8c3Bhbj4gPC9zcGFuPl0gWyA8
c3BhbiBzdHlsZT0icGFkZGluZzogMHB4OyI+PC9zcGFuPl0gYXJlIGFsbCBjb25zaWRlcmVkIHZp
c3VhbGx5IGVtcHR5IHdoaXRlc3BhY2UgY29udGVudC4KICAgICAvLyBbPHNwYW4gc3R5bGU9ImJv
cmRlcjogMXB4IHNvbGlkIHJlZCI+PC9zcGFuPiBdIHdoaWxlIHRoaXMgaXMgd2hpdGVzcGFjZSBj
b250ZW50IG9ubHksIGl0IGlzIG5vdCBjb25zaWRlcmVkIHZpc3VhbGx5IGVtcHR5LgogICAgIC8v
IER1ZSB0byBjb21taXQgYm91bmRhcnkgcnVsZXMsIHdlIGp1c3QgbmVlZCB0byBjaGVjayB0aGUg
Zmlyc3Qgbm9uLXR5cGVsZXNzIGlubGluZSBpdGVtIChjYW4ndCBoYXZlIGJvdGggW2ltZ10gYW5k
IFt0ZXh0XSkKLSAgICBmb3IgKGF1dG8mIHJ1biA6IG1fY29udGlub3VzUnVucykgeworICAgIGZv
ciAoYXV0byYgcnVuIDogbV9ydW5zKSB7CiAgICAgICAgIGF1dG8mIGlubGluZUl0ZW0gPSBydW4u
aW5saW5lSXRlbTsKICAgICAgICAgLy8gRklYTUU6IGNoZWNrIGZvciBwYWRkaW5nIGJvcmRlciBl
dGMuCiAgICAgICAgIGlmIChpbmxpbmVJdGVtLmlzQ29udGFpbmVyU3RhcnQoKSB8fCBpbmxpbmVJ
dGVtLmlzQ29udGFpbmVyRW5kKCkpCkBAIC00NTIsMTkgKzQ0NSwxOSBAQCBib29sIExpbmVCcmVh
a2VyOjpDb250ZW50Ojppc1Zpc3VhbGx5RW1wdHlXaGl0ZXNwYWNlQ29udGVudE9ubHkoKSBjb25z
dAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotT3B0aW9uYWw8dW5zaWduZWQ+IExpbmVCcmVha2Vy
OjpDb250ZW50OjpmaXJzdFRleHRSdW5JbmRleCgpIGNvbnN0CitPcHRpb25hbDx1bnNpZ25lZD4g
TGluZUJyZWFrZXI6OkNvbnRpbm91c0NvbnRlbnQ6OmZpcnN0VGV4dFJ1bkluZGV4KCkgY29uc3QK
IHsKLSAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgbV9jb250aW5vdXNSdW5zLnNp
emUoKTsgKytpbmRleCkgewotICAgICAgICBpZiAobV9jb250aW5vdXNSdW5zW2luZGV4XS5pbmxp
bmVJdGVtLmlzVGV4dCgpKQorICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBtX3J1
bnMuc2l6ZSgpOyArK2luZGV4KSB7CisgICAgICAgIGlmIChtX3J1bnNbaW5kZXhdLmlubGluZUl0
ZW0uaXNUZXh0KCkpCiAgICAgICAgICAgICByZXR1cm4gaW5kZXg7CiAgICAgfQogICAgIHJldHVy
biB7IH07CiB9CiAKLWJvb2wgTGluZUJyZWFrZXI6OkNvbnRlbnQ6Omhhc05vbkNvbnRlbnRSdW5z
T25seSgpIGNvbnN0Citib29sIExpbmVCcmVha2VyOjpDb250aW5vdXNDb250ZW50OjpoYXNOb25D
b250ZW50UnVuc09ubHkoKSBjb25zdAogewogICAgIC8vIDxzcGFuPjwvc3Bhbj4gPC0gbm9uIGNv
bnRlbnQgcnVucy4KLSAgICBmb3IgKGF1dG8mIHJ1biA6IG1fY29udGlub3VzUnVucykgeworICAg
IGZvciAoYXV0byYgcnVuIDogbV9ydW5zKSB7CiAgICAgICAgIGF1dG8mIGlubGluZUl0ZW0gPSBy
dW4uaW5saW5lSXRlbTsKICAgICAgICAgaWYgKGlubGluZUl0ZW0uaXNDb250YWluZXJTdGFydCgp
IHx8IGlubGluZUl0ZW0uaXNDb250YWluZXJFbmQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpA
QCAtNDczLDcgKzQ2Niw3IEBAIGJvb2wgTGluZUJyZWFrZXI6OkNvbnRlbnQ6Omhhc05vbkNvbnRl
bnRSdW5zT25seSgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgTGluZUJyZWFr
ZXI6OkNvbnRlbnQ6OlRyYWlsaW5nQ29sbGFwc2libGVDb250ZW50OjpyZXNldCgpCit2b2lkIExp
bmVCcmVha2VyOjpDb250aW5vdXNDb250ZW50OjpUcmFpbGluZ0NvbGxhcHNpYmxlQ29udGVudDo6
cmVzZXQoKQogewogICAgIGlzRnVsbHlDb2xsYXBzaWJsZSA9IGZhbHNlOwogICAgIHdpZHRoID0g
MF9sdTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUxpbmVCcmVha2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVMaW5lQnJlYWtlci5oCmluZGV4IDg4ZGZhZWIxYjVmMDlmZDU0OTZlMmYwOWM0
MGEyOWVmYzQyMDk4YjAuLmExYWUyMmZlOTgzYTUwYzhhNmQ4MTIyNzgxMTY2MzRiNWM0NjdiOWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUxpbmVCcmVha2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRp
bmcvSW5saW5lTGluZUJyZWFrZXIuaApAQCAtNzIsMTggKzcyLDE1IEBAIHB1YmxpYzoKICAgICAv
LyBbY29udGVudF0KICAgICAvLyBbY29udGFpbmVyIHN0YXJ0XVtzcGFuMV1bY29udGFpbmVyIGVu
ZF1bYmV0d2Vlbl1bY29udGFpbmVyIHN0YXJ0XVtzcGFuMl1bY29udGFpbmVyIGVuZF0KICAgICAv
LyBzZWUgaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy10ZXh0LTMvI2xpbmUtYnJlYWstZGV0
YWlscwotICAgIHN0cnVjdCBDb250ZW50IHsKLSAgICAgICAgdm9pZCBhcHBlbmQoY29uc3QgSW5s
aW5lSXRlbSYsIElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoKTsKLSAgICAgICAgdm9pZCBy
ZXNldCgpOwotICAgICAgICB2b2lkIHNocmluayh1bnNpZ25lZCBuZXdTaXplKTsKLQotICAgICAg
ICBSdW5MaXN0JiBydW5zKCkgeyByZXR1cm4gbV9jb250aW5vdXNSdW5zOyB9Ci0gICAgICAgIGNv
bnN0IFJ1bkxpc3QmIHJ1bnMoKSBjb25zdCB7IHJldHVybiBtX2NvbnRpbm91c1J1bnM7IH0KLSAg
ICAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9jb250aW5vdXNSdW5zLmlzRW1w
dHkoKTsgfQorICAgIHN0cnVjdCBDb250aW5vdXNDb250ZW50IHsKKyAgICAgICAgQ29udGlub3Vz
Q29udGVudChjb25zdCBSdW5MaXN0Jik7CisKKyAgICAgICAgY29uc3QgUnVuTGlzdCYgcnVucygp
IGNvbnN0IHsgcmV0dXJuIG1fcnVuczsgfQorICAgICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7
IHJldHVybiBtX3J1bnMuaXNFbXB0eSgpOyB9CiAgICAgICAgIGJvb2wgaGFzVGV4dENvbnRlbnRP
bmx5KCkgY29uc3Q7CiAgICAgICAgIGJvb2wgaXNWaXN1YWxseUVtcHR5V2hpdGVzcGFjZUNvbnRl
bnRPbmx5KCkgY29uc3Q7CiAgICAgICAgIGJvb2wgaGFzTm9uQ29udGVudFJ1bnNPbmx5KCkgY29u
c3Q7Ci0gICAgICAgIHVuc2lnbmVkIHNpemUoKSBjb25zdCB7IHJldHVybiBtX2NvbnRpbm91c1J1
bnMuc2l6ZSgpOyB9CisgICAgICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9ydW5z
LnNpemUoKTsgfQogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IHdpZHRoKCkgY29uc3QgeyByZXR1
cm4gbV93aWR0aDsgfQogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IG5vbkNvbGxhcHNpYmxlV2lk
dGgoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoIC0gbV90cmFpbGluZ0NvbGxhcHNpYmxlQ29udGVu
dC53aWR0aDsgfQogCkBAIC05Myw3ICs5MCw3IEBAIHB1YmxpYzoKICAgICAgICAgT3B0aW9uYWw8
dW5zaWduZWQ+IGZpcnN0VGV4dFJ1bkluZGV4KCkgY29uc3Q7CiAKICAgICBwcml2YXRlOgotICAg
ICAgICBSdW5MaXN0IG1fY29udGlub3VzUnVuczsKKyAgICAgICAgUnVuTGlzdCBtX3J1bnM7CiAg
ICAgICAgIHN0cnVjdCBUcmFpbGluZ0NvbGxhcHNpYmxlQ29udGVudCB7CiAgICAgICAgICAgICB2
b2lkIHJlc2V0KCk7CiAKQEAgLTExMCw3ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wg
bGluZUhhc0Z1bGx5Q29sbGFwc2libGVUcmFpbGluZ1J1biB7IGZhbHNlIH07CiAgICAgICAgIGJv
b2wgbGluZUlzRW1wdHkgeyB0cnVlIH07CiAgICAgfTsKLSAgICBCcmVha2luZ0NvbnRleHQgYnJl
YWtpbmdDb250ZXh0Rm9ySW5saW5lQ29udGVudChjb25zdCBDb250ZW50JiBjYW5kaWRhdGVSdW5z
LCBjb25zdCBMaW5lU3RhdHVzJik7CisgICAgQnJlYWtpbmdDb250ZXh0IGJyZWFraW5nQ29udGV4
dEZvcklubGluZUNvbnRlbnQoY29uc3QgQ29udGlub3VzQ29udGVudCYgY2FuZGlkYXRlUnVucywg
Y29uc3QgTGluZVN0YXR1cyYpOwogICAgIGJvb2wgc2hvdWxkV3JhcEZsb2F0Qm94KElubGluZUxh
eW91dFVuaXQgZmxvYXRMb2dpY2FsV2lkdGgsIElubGluZUxheW91dFVuaXQgYXZhaWxhYmxlV2lk
dGgsIGJvb2wgbGluZUlzRW1wdHkpOwogCiAgICAgdm9pZCBzZXRIeXBoZW5hdGlvbkRpc2FibGVk
KCkgeyBuX2h5cGhlbmF0aW9uSXNEaXNhYmxlZCA9IHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0xpbmVMYXlvdXRDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0xpbmVMYXlvdXRDb250ZXh0
LmNwcAppbmRleCBmZjNiNDQ2ODY4ZTg3ZTZiNTYxNmViOWNjODQzMjIxZWZhMzJhYWQxLi5iYmZl
NGMzMGIyY2VlZTA3ZjQ4NjFlYTg5ZjlkZWM5YTJlZWM1ZDU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9MaW5lTGF5b3V0Q29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGluZUxheW91dENvbnRl
eHQuY3BwCkBAIC0yMDgsNyArMjA4LDcgQEAgTGluZUxheW91dENvbnRleHQ6OklzRW5kT2ZMaW5l
IExpbmVMYXlvdXRDb250ZXh0Ojpwcm9jZXNzVW5jb21taXR0ZWRDb250ZW50KExpbmUKICAgICBp
ZiAoc2hvdWxkRGlzYWJsZUh5cGhlbmF0aW9uKCkpCiAgICAgICAgIGxpbmVCcmVha2VyLnNldEh5
cGhlbmF0aW9uRGlzYWJsZWQoKTsKICAgICBhdXRvIGxpbmVTdGF0dXMgPSBMaW5lQnJlYWtlcjo6
TGluZVN0YXR1cyB7IGxpbmUuYXZhaWxhYmxlV2lkdGgoKSwgbGluZS50cmFpbGluZ0NvbGxhcHNp
YmxlV2lkdGgoKSwgbGluZS5pc1RyYWlsaW5nUnVuRnVsbHlDb2xsYXBzaWJsZSgpLCBsaW5lSXND
b25zaWRlcmVkRW1wdHkgfTsKLSAgICBhdXRvIGJyZWFraW5nQ29udGV4dCA9IGxpbmVCcmVha2Vy
LmJyZWFraW5nQ29udGV4dEZvcklubGluZUNvbnRlbnQobV91bmNvbW1pdHRlZENvbnRlbnQsIGxp
bmVTdGF0dXMpOworICAgIGF1dG8gYnJlYWtpbmdDb250ZXh0ID0gbGluZUJyZWFrZXIuYnJlYWtp
bmdDb250ZXh0Rm9ySW5saW5lQ29udGVudChMaW5lQnJlYWtlcjo6Q29udGlub3VzQ29udGVudCB7
IG1fdW5jb21taXR0ZWRDb250ZW50LnJ1bnMoKSB9LCBsaW5lU3RhdHVzKTsKICAgICAvLyBUaGUg
dW5jb21taXR0ZWQgY29udGVudCBjYW4gZnVsbHksIHBhcnRpYWxseSBmaXQgdGhlIGN1cnJlbnQg
bGluZSAoY29tbWl0L3BhcnRpYWwgY29tbWl0KSBvciBub3QgYXQgYWxsIChyZXNldCkuCiAgICAg
aWYgKGJyZWFraW5nQ29udGV4dC5jb250ZW50V3JhcHBpbmdSdWxlID09IExpbmVCcmVha2VyOjpC
cmVha2luZ0NvbnRleHQ6OkNvbnRlbnRXcmFwcGluZ1J1bGU6OktlZXApCiAgICAgICAgIGNvbW1p
dFBlbmRpbmdDb250ZW50KGxpbmUpOwpAQCAtMjQ4LDYgKzI0OCwyOSBAQCBMaW5lTGF5b3V0Q29u
dGV4dDo6SXNFbmRPZkxpbmUgTGluZUxheW91dENvbnRleHQ6OnByb2Nlc3NVbmNvbW1pdHRlZENv
bnRlbnQoTGluZQogICAgIHJldHVybiBicmVha2luZ0NvbnRleHQuY29udGVudFdyYXBwaW5nUnVs
ZSA9PSBMaW5lQnJlYWtlcjo6QnJlYWtpbmdDb250ZXh0OjpDb250ZW50V3JhcHBpbmdSdWxlOjpL
ZWVwID8gSXNFbmRPZkxpbmU6Ok5vIDogSXNFbmRPZkxpbmU6OlllczsKIH0KIAordm9pZCBMaW5l
TGF5b3V0Q29udGV4dDo6VW5jb21taXR0ZWRDb250ZW50OjphcHBlbmQoY29uc3QgSW5saW5lSXRl
bSYgaW5saW5lSXRlbSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpCit7CisgICAgQVNT
RVJUKCFpbmxpbmVJdGVtLmlzRmxvYXQoKSk7CisgICAgbV91bmNvbW1pdHRlZExpc3QuYXBwZW5k
KHsgaW5saW5lSXRlbSwgbG9naWNhbFdpZHRoIH0pOworICAgIG1fd2lkdGggKz0gbG9naWNhbFdp
ZHRoOworfQorCit2b2lkIExpbmVMYXlvdXRDb250ZXh0OjpVbmNvbW1pdHRlZENvbnRlbnQ6OnJl
c2V0KCkKK3sKKyAgICBtX3VuY29tbWl0dGVkTGlzdC5jbGVhcigpOworICAgIG1fd2lkdGggPSAw
X2x1OworfQorCit2b2lkIExpbmVMYXlvdXRDb250ZXh0OjpVbmNvbW1pdHRlZENvbnRlbnQ6OnNo
cmluayh1bnNpZ25lZCBuZXdTaXplKQoreworICAgIEFTU0VSVChuZXdTaXplKTsKKyAgICBBU1NF
UlQobV91bmNvbW1pdHRlZExpc3Quc2l6ZSgpKTsKKyAgICBBU1NFUlQobmV3U2l6ZSA8IG1fdW5j
b21taXR0ZWRMaXN0LnNpemUoKSk7CisgICAgZm9yIChzaXplX3QgaSA9IG1fdW5jb21taXR0ZWRM
aXN0LnNpemUoKSAtIDE7IGkgPj0gbmV3U2l6ZSA7IC0taSkKKyAgICAgICAgbV93aWR0aCAtPSBt
X3VuY29tbWl0dGVkTGlzdFtpXS5sb2dpY2FsV2lkdGg7CisgICAgbV91bmNvbW1pdHRlZExpc3Qu
c2hyaW5rKG5ld1NpemUpOworfQorCiB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0xpbmVMYXlvdXRDb250ZXh0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9MaW5lTGF5b3V0Q29udGV4dC5oCmluZGV4IDcw
ODAwY2NiZDU2MWRhYmYyYWYxNGM4Y2UzMGNhYmZiYjdiY2FhZjcuLjMxOWU0MTFkMGFjZjgzOWFm
ZDRiYmE1NzQ3NDE5YTkxMzVkNDE2MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0xpbmVMYXlvdXRDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGluZUxheW91dENvbnRleHQuaApAQCAtNjIsNyAr
NjIsMjEgQEAgcHJpdmF0ZToKICAgICBjb25zdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgbV9p
bmxpbmVGb3JtYXR0aW5nQ29udGV4dDsKICAgICBjb25zdCBDb250YWluZXImIG1fZm9ybWF0dGlu
Z0NvbnRleHRSb290OwogICAgIGNvbnN0IElubGluZUl0ZW1zJiBtX2lubGluZUl0ZW1zOwotICAg
IExpbmVCcmVha2VyOjpDb250ZW50IG1fdW5jb21taXR0ZWRDb250ZW50OworCisgICAgc3RydWN0
IFVuY29tbWl0dGVkQ29udGVudCB7CisgICAgICAgIHZvaWQgYXBwZW5kKGNvbnN0IElubGluZUl0
ZW0mLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCk7CisgICAgICAgIElubGluZUxheW91
dFVuaXQgd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoOyB9CisgICAgICAgIHNpemVfdCBz
aXplKCkgeyByZXR1cm4gcnVucygpLnNpemUoKTsgfQorICAgICAgICBib29sIGlzRW1wdHkoKSB7
IHJldHVybiBydW5zKCkuaXNFbXB0eSgpOyB9CisgICAgICAgIHZvaWQgcmVzZXQoKTsKKyAgICAg
ICAgdm9pZCBzaHJpbmsodW5zaWduZWQgbmV3U2l6ZSk7CisgICAgICAgIGNvbnN0IExpbmVCcmVh
a2VyOjpSdW5MaXN0JiBydW5zKCkgY29uc3QgeyByZXR1cm4gbV91bmNvbW1pdHRlZExpc3Q7IH0K
KworICAgIHByaXZhdGU6CisgICAgICAgIExpbmVCcmVha2VyOjpSdW5MaXN0IG1fdW5jb21taXR0
ZWRMaXN0OworICAgICAgICBJbmxpbmVMYXlvdXRVbml0IG1fd2lkdGg7CisgICAgfTsKKyAgICBV
bmNvbW1pdHRlZENvbnRlbnQgbV91bmNvbW1pdHRlZENvbnRlbnQ7CiAgICAgdW5zaWduZWQgbV9j
b21taXR0ZWRJbmxpbmVJdGVtQ291bnQgeyAwIH07CiAgICAgVmVjdG9yPFdlYWtQdHI8SW5saW5l
SXRlbT4+IG1fZmxvYXRzOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbmxpbmVUZXh0SXRlbT4gbV9w
YXJ0aWFsTGVhZGluZ1RleHRJdGVtOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385995</attachid>
            <date>2019-12-18 12:44:10 -0800</date>
            <delta_ts>2019-12-18 13:29:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205404-20191218124409.patch</filename>
            <type>text/plain</type>
            <size>17176</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjQ5ODMzNTgyNjk2OTY2
ZmUzMWE3ODBhMzg2M2RkNTExNzE2YmJmOS4uYmE5NDk0ZGY5NjU4ZmY3ZTY3ZmQ0OWQ5ZDBjY2Qx
ODZjMjI5ZWJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE5LTEyLTE4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBMaW5lTGF5
b3V0Q29udGV4dDo6bV91bmNvbW1pdHRlZExpc3QgaXMgbm90IGFsd2F5cyBhIGNvbnRpbnVvdXMg
bGlzdCBvZiBydW5zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDU0MDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4MDQ5Njk5PgorCisgICAgICAg
IFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIFNpbmNlIExpbmVMYXlvdXRD
b250ZXh0J3MgbV91bmNvbW1pdHRlZExpc3QgaXMgbm90IG5lY2Vzc2FyaWx5IGNvbnRpbnVvdXMg
c2V0IG9mIHJ1bnMgKGNvbnRpbnVvdXMgaW4gdGhlIGNvbnRlbnQgb2Ygbm90IGhhdmluZyBhIHNv
ZnQgd3JhcCBvcHBvcnR1bml0eSkKKyAgICAgICAgd2UgY2FuJ3QgdXNlIExpbmVCcmVha2VyJ3Mg
Q29udGVudCBzdHJ1Y3QgYW55bW9yZSB0byBzdG9yZSB0aGUgdW5jb21taXR0ZWQgY29udGVudC4K
KyAgICAgICAgTGV0J3MgdXNlIGEgZGVkaWNhdGVkIFVuY29tbWl0dGVkQ29udGVudCBzdHJ1Y3Qg
aW5zdGVhZC4gSXQgYWxzbyBlbmFibGVzIHVzIHRvIHBhc3MgaW4gYSBjb25zdCBSdW5MaXN0JiB0
byB0aGUgQ29udGlub3VzQ29udGVudC4gQ29udGlub3VzQ29udGVudCBzaG91bGQgbmV2ZXIgbXV0
YXRlIHRoaXMgbGlzdC4KKworICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUxpbmVCcmVha2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6c2hvdWxkS2VlcEVu
ZE9mTGluZVdoaXRlc3BhY2UpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnJlYWtl
cjo6YnJlYWtpbmdDb250ZXh0Rm9ySW5saW5lQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkxpbmVCcmVha2VyOjpDb250aW5vdXNDb250ZW50OjpDb250aW5vdXNDb250ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJyZWFrZXI6OkNvbnRpbm91c0NvbnRlbnQ6
Omhhc1RleHRDb250ZW50T25seSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Okxp
bmVCcmVha2VyOjpDb250aW5vdXNDb250ZW50Ojppc1Zpc3VhbGx5RW1wdHlXaGl0ZXNwYWNlQ29u
dGVudE9ubHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnJlYWtlcjo6
Q29udGlub3VzQ29udGVudDo6Zmlyc3RUZXh0UnVuSW5kZXggY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpMaW5lQnJlYWtlcjo6Q29udGlub3VzQ29udGVudDo6aGFzTm9uQ29udGVu
dFJ1bnNPbmx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJyZWFrZXI6
OkNvbnRpbm91c0NvbnRlbnQ6OlRyYWlsaW5nQ29sbGFwc2libGVDb250ZW50OjpyZXNldCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCcmVha2VyOjpDb250ZW50OjphcHBlbmQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnJlYWtlcjo6Q29udGVudDo6
cmVzZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnJlYWtlcjo6
Q29udGVudDo6c2hyaW5rKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGlu
ZUJyZWFrZXI6OkNvbnRlbnQ6Omhhc1RleHRDb250ZW50T25seSBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCcmVha2VyOjpDb250ZW50Ojppc1Zpc3VhbGx5
RW1wdHlXaGl0ZXNwYWNlQ29udGVudE9ubHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpMaW5lQnJlYWtlcjo6Q29udGVudDo6Zmlyc3RUZXh0UnVuSW5kZXggY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnJlYWtlcjo6Q29u
dGVudDo6aGFzTm9uQ29udGVudFJ1bnNPbmx5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6TGluZUJyZWFrZXI6OkNvbnRlbnQ6OlRyYWlsaW5nQ29sbGFwc2libGVD
b250ZW50OjpyZXNldCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRp
bmcvSW5saW5lTGluZUJyZWFrZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJy
ZWFrZXI6OkNvbnRpbm91c0NvbnRlbnQ6OnJ1bnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpMaW5lQnJlYWtlcjo6Q29udGlub3VzQ29udGVudDo6aXNFbXB0eSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCcmVha2VyOjpDb250aW5vdXNDb250ZW50Ojpz
aXplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJyZWFrZXI6OkNvbnRl
bnQ6OnJ1bnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnJlYWtl
cjo6Q29udGVudDo6cnVucyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkxpbmVCcmVha2VyOjpDb250ZW50Ojppc0VtcHR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJyZWFrZXI6OkNvbnRlbnQ6OnNpemUgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnJlYWtlcjo6Q29udGVudDo6
d2lkdGggY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnJl
YWtlcjo6Q29udGVudDo6bm9uQ29sbGFwc2libGVXaWR0aCBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCcmVha2VyOjpDb250ZW50OjpoYXNUcmFpbGluZ0Nv
bGxhcHNpYmxlQ29udGVudCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkxpbmVCcmVha2VyOjpDb250ZW50Ojppc1RyYWlsaW5nQ29udGVudEZ1bGx5Q29sbGFwc2li
bGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0xp
bmVMYXlvdXRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUxheW91
dENvbnRleHQ6OnByb2Nlc3NVbmNvbW1pdHRlZENvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpMaW5lTGF5b3V0Q29udGV4dDo6VW5jb21taXR0ZWRDb250ZW50OjphcHBlbmQpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lTGF5b3V0Q29udGV4dDo6VW5jb21taXR0ZWRD
b250ZW50OjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVMYXlvdXRDb250
ZXh0OjpVbmNvbW1pdHRlZENvbnRlbnQ6OnNocmluayk6CisgICAgICAgICogbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvTGluZUxheW91dENvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6TGluZUxheW91dENvbnRleHQ6OlVuY29tbWl0dGVkQ29udGVudDo6d2lkdGggY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lTGF5b3V0Q29udGV4dDo6VW5jb21taXR0ZWRD
b250ZW50OjpzaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUxheW91dENvbnRl
eHQ6OlVuY29tbWl0dGVkQ29udGVudDo6aXNFbXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkxpbmVMYXlvdXRDb250ZXh0OjpVbmNvbW1pdHRlZENvbnRlbnQ6OnJ1bnMgY29uc3QpOgor
CiAyMDE5LTEyLTE4ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W0xGQ11bSUZDXSBMaW5lQnJlYWtlcjo6bGFzdFNvZnRXcmFwT3Bwb3J0dW5pdHkgc2hvdWxkIHRh
a2UgYSBsaXN0IG9mIHJ1bnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmNwcAppbmRleCA5ZTkzMzY3ZWIz
MjA0MTk0YzQ3OTc3OTA1NzFmNGM1Yzk5YjVlMDc5Li5kNzhlYzYyMDBiNmUxYjNhNDJiZjc3MzBm
ODY4YTUzYjZmM2JhZTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIuY3BwCkBAIC01NCw3ICs1NCw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0NvbnRlbnRTcGxpdEFsbG93ZWQoY29uc3QgTGluZUJy
ZWFrZXI6OlJ1biYgcnVuKQogICAgIHJldHVybiBpc1RleHRDb250ZW50V3JhcHBpbmdBbGxvd2Vk
KHJ1bi5pbmxpbmVJdGVtLnN0eWxlKCkpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxk
S2VlcEVuZE9mTGluZVdoaXRlc3BhY2UoY29uc3QgTGluZUJyZWFrZXI6OkNvbnRlbnQmIGNhbmRp
ZGF0ZVJ1bnMpCitzdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxkS2VlcEVuZE9mTGluZVdoaXRlc3Bh
Y2UoY29uc3QgTGluZUJyZWFrZXI6OkNvbnRpbm91c0NvbnRlbnQmIGNhbmRpZGF0ZVJ1bnMpCiB7
CiAgICAgLy8gR3JhYiB0aGUgc3R5bGUgYW5kIGNoZWNrIGZvciB3aGl0ZS1zcGFjZSBwcm9wZXJ0
eSB0byBkZWNpZGVkIHdoZXRoZXIgd2Ugc2hvdWxkIGxldCB0aGlzIHdoaXRlc3BhY2UgY29udGVu
dCBvdmVyZmxvdyB0aGUgY3VycmVudCBsaW5lLgogICAgIC8vIE5vdGUgdGhhdCB0aGUgImtlZXAi
IGluIHRoZSBjb250ZXh0IG1lYW5zIHdlIGxldCB0aGUgd2hpdGVzcGFjZSBjb250ZW50IHNpdCBv
biB0aGUgY3VycmVudCBsaW5lLgpAQCAtNjQsNyArNjQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2hvdWxkS2VlcEVuZE9mTGluZVdoaXRlc3BhY2UoY29uc3QgTGluZUJyZWFrZXI6OkNvbnRlbnQm
IGNhbgogICAgIHJldHVybiB3aGl0ZXNwYWNlID09IFdoaXRlU3BhY2U6Ok5vcm1hbCB8fCB3aGl0
ZXNwYWNlID09IFdoaXRlU3BhY2U6Ok5vV3JhcCB8fCB3aGl0ZXNwYWNlID09IFdoaXRlU3BhY2U6
OlByZVdyYXAgfHwgd2hpdGVzcGFjZSA9PSBXaGl0ZVNwYWNlOjpQcmVMaW5lOwogfQogCi1MaW5l
QnJlYWtlcjo6QnJlYWtpbmdDb250ZXh0IExpbmVCcmVha2VyOjpicmVha2luZ0NvbnRleHRGb3JJ
bmxpbmVDb250ZW50KGNvbnN0IENvbnRlbnQmIGNhbmRpZGF0ZVJ1bnMsIGNvbnN0IExpbmVTdGF0
dXMmIGxpbmVTdGF0dXMpCitMaW5lQnJlYWtlcjo6QnJlYWtpbmdDb250ZXh0IExpbmVCcmVha2Vy
OjpicmVha2luZ0NvbnRleHRGb3JJbmxpbmVDb250ZW50KGNvbnN0IENvbnRpbm91c0NvbnRlbnQm
IGNhbmRpZGF0ZVJ1bnMsIGNvbnN0IExpbmVTdGF0dXMmIGxpbmVTdGF0dXMpCiB7CiAgICAgQVNT
RVJUKCFjYW5kaWRhdGVSdW5zLmlzRW1wdHkoKSk7CiAgICAgaWYgKGNhbmRpZGF0ZVJ1bnMud2lk
dGgoKSA8PSBsaW5lU3RhdHVzLmF2YWlsYWJsZVdpZHRoKQpAQCAtMzg2LDQ5ICszODYsNDIgQEAg
T3B0aW9uYWw8c2l6ZV90PiBMaW5lQnJlYWtlcjo6bGFzdFNvZnRXcmFwT3Bwb3J0dW5pdHkoY29u
c3QgSW5saW5lSXRlbSYgaW5saW5lSXQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBMaW5l
QnJlYWtlcjo6Q29udGVudDo6YXBwZW5kKGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0sIElu
bGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoKQorTGluZUJyZWFrZXI6OkNvbnRpbm91c0NvbnRl
bnQ6OkNvbnRpbm91c0NvbnRlbnQoY29uc3QgUnVuTGlzdCYgcnVucykKKyAgICA6IG1fcnVucyhy
dW5zKQogewotICAgIEFTU0VSVCghaW5saW5lSXRlbS5pc0Zsb2F0KCkpOwotICAgIG1fY29udGlu
b3VzUnVucy5hcHBlbmQoeyBpbmxpbmVJdGVtLCBsb2dpY2FsV2lkdGggfSk7Ci0gICAgbV93aWR0
aCArPSBsb2dpY2FsV2lkdGg7CiAgICAgLy8gRmlndXJlIG91dCB0aGUgdHJhaWxpbmcgY29sbGFw
c2libGUgc3RhdGUuCi0gICAgaWYgKGlubGluZUl0ZW0uaXNCb3goKSB8fCBpbmxpbmVJdGVtLmlz
TGluZUJyZWFrKCkpCi0gICAgICAgIG1fdHJhaWxpbmdDb2xsYXBzaWJsZUNvbnRlbnQucmVzZXQo
KTsKLSAgICBlbHNlIGlmIChpbmxpbmVJdGVtLmlzVGV4dCgpKSB7Ci0gICAgICAgIGF1dG8mIGlu
bGluZVRleHRJdGVtID0gZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KGlubGluZUl0ZW0pOwotICAg
ICAgICBhdXRvIGlzRnVsbHlDb2xsYXBzaWJsZSA9IFsmXSB7Ci0gICAgICAgICAgICByZXR1cm4g
aW5saW5lVGV4dEl0ZW0uaXNXaGl0ZXNwYWNlKCkgJiYgIVRleHRVdGlsOjpzaG91bGRQcmVzZXJ2
ZVRyYWlsaW5nV2hpdGVzcGFjZShpbmxpbmVUZXh0SXRlbS5zdHlsZSgpKTsKLSAgICAgICAgfTsK
LSAgICAgICAgaWYgKGlzRnVsbHlDb2xsYXBzaWJsZSgpKSB7Ci0gICAgICAgICAgICBtX3RyYWls
aW5nQ29sbGFwc2libGVDb250ZW50LndpZHRoICs9IGxvZ2ljYWxXaWR0aDsKLSAgICAgICAgICAg
IG1fdHJhaWxpbmdDb2xsYXBzaWJsZUNvbnRlbnQuaXNGdWxseUNvbGxhcHNpYmxlID0gdHJ1ZTsK
LSAgICAgICAgfSBlbHNlIGlmIChhdXRvIGNvbGxhcHNpYmxlV2lkdGggPSBpbmxpbmVUZXh0SXRl
bS5zdHlsZSgpLmxldHRlclNwYWNpbmcoKSkgewotICAgICAgICAgICAgbV90cmFpbGluZ0NvbGxh
cHNpYmxlQ29udGVudC53aWR0aCA9IGNvbGxhcHNpYmxlV2lkdGg7Ci0gICAgICAgICAgICBtX3Ry
YWlsaW5nQ29sbGFwc2libGVDb250ZW50LmlzRnVsbHlDb2xsYXBzaWJsZSA9IGZhbHNlOwotICAg
ICAgICB9IGVsc2UKLSAgICAgICAgICAgIG1fdHJhaWxpbmdDb2xsYXBzaWJsZUNvbnRlbnQucmVz
ZXQoKTsKKyAgICBmb3IgKGF1dG8mIHJ1biA6IFdURjo6bWFrZVJldmVyc2VkUmFuZ2UobV9ydW5z
KSkgeworICAgICAgICBhdXRvJiBpbmxpbmVJdGVtID0gcnVuLmlubGluZUl0ZW07CisgICAgICAg
IGlmIChpbmxpbmVJdGVtLmlzQm94KCkgfHwgaW5saW5lSXRlbS5pc0xpbmVCcmVhaygpKSB7Cisg
ICAgICAgICAgICAvLyBXZSBkaWQgcmVhY2ggYSBub24tY29sbGFwc2libGUgY29udGVudC4gV2Ug
aGF2ZSBhbGwgdGhlIHRyYWlsaW5nIHdoaXRlc3BhY2Ugbm93LgorICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlubGluZUl0ZW0uaXNUZXh0KCkpIHsKKyAgICAgICAg
ICAgIGF1dG8mIGlubGluZVRleHRJdGVtID0gZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KGlubGlu
ZUl0ZW0pOworICAgICAgICAgICAgYXV0byBpc0Z1bGx5Q29sbGFwc2libGUgPSBbJl0geworICAg
ICAgICAgICAgICAgIHJldHVybiBpbmxpbmVUZXh0SXRlbS5pc1doaXRlc3BhY2UoKSAmJiAhVGV4
dFV0aWw6OnNob3VsZFByZXNlcnZlVHJhaWxpbmdXaGl0ZXNwYWNlKGlubGluZVRleHRJdGVtLnN0
eWxlKCkpOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGlmIChpc0Z1bGx5Q29sbGFwc2li
bGUoKSkgeworICAgICAgICAgICAgICAgIG1fdHJhaWxpbmdDb2xsYXBzaWJsZUNvbnRlbnQud2lk
dGggKz0gcnVuLmxvZ2ljYWxXaWR0aDsKKyAgICAgICAgICAgICAgICBtX3RyYWlsaW5nQ29sbGFw
c2libGVDb250ZW50LmlzRnVsbHlDb2xsYXBzaWJsZSA9IHRydWU7CisgICAgICAgICAgICAgICAg
Ly8gTGV0J3Mgc2VlIGlmIHdlJ3ZlIGdvdCBtb3JlIHRyYWlsaW5nIHdoaXRlc3BhY2UgY29udGVu
dC4KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGlmIChhdXRvIGNvbGxhcHNpYmxlV2lkdGggPSBpbmxpbmVUZXh0SXRlbS5zdHlsZSgpLmxldHRl
clNwYWNpbmcoKSkgeworICAgICAgICAgICAgICAgIG1fdHJhaWxpbmdDb2xsYXBzaWJsZUNvbnRl
bnQud2lkdGggKz0gY29sbGFwc2libGVXaWR0aDsKKyAgICAgICAgICAgICAgICBtX3RyYWlsaW5n
Q29sbGFwc2libGVDb250ZW50LmlzRnVsbHlDb2xsYXBzaWJsZSA9IGZhbHNlOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgLy8gRW5kIG9mIHdoaXRzcGFjZSBjb250ZW50LgorICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KICAgICB9CiB9CiAKLXZvaWQgTGluZUJyZWFrZXI6OkNvbnRl
bnQ6OnJlc2V0KCkKLXsKLSAgICBtX2NvbnRpbm91c1J1bnMuY2xlYXIoKTsKLSAgICBtX3RyYWls
aW5nQ29sbGFwc2libGVDb250ZW50LnJlc2V0KCk7Ci0gICAgbV93aWR0aCA9IDBfbHU7Ci19Ci0K
LXZvaWQgTGluZUJyZWFrZXI6OkNvbnRlbnQ6OnNocmluayh1bnNpZ25lZCBuZXdTaXplKQotewot
ICAgIGZvciAoYXV0byBpID0gbV9jb250aW5vdXNSdW5zLnNpemUoKTsgaS0tOykKLSAgICAgICAg
bV93aWR0aCAtPSBtX2NvbnRpbm91c1J1bnNbaV0ubG9naWNhbFdpZHRoOwotICAgIG1fY29udGlu
b3VzUnVucy5zaHJpbmsobmV3U2l6ZSk7Ci19Ci0KLWJvb2wgTGluZUJyZWFrZXI6OkNvbnRlbnQ6
Omhhc1RleHRDb250ZW50T25seSgpIGNvbnN0Citib29sIExpbmVCcmVha2VyOjpDb250aW5vdXND
b250ZW50OjpoYXNUZXh0Q29udGVudE9ubHkoKSBjb25zdAogewogICAgIC8vIDxzcGFuPnRleHQ8
L3NwYW4+IGlzIGNvbnNpZGVyZWQgYSB0ZXh0IHJ1biBldmVuIHdpdGggdGhlIFtjb250YWluZXIg
c3RhcnRdW2NvbnRhaW5lciBlbmRdIGlubGluZSBpdGVtcy4KICAgICAvLyBEdWUgdG8gY29tbWl0
IGJvdW5kYXJ5IHJ1bGVzLCB3ZSBqdXN0IG5lZWQgdG8gY2hlY2sgdGhlIGZpcnN0IG5vbi10eXBl
bGVzcyBpbmxpbmUgaXRlbSAoY2FuJ3QgaGF2ZSBib3RoIFtpbWddIGFuZCBbdGV4dF0pCi0gICAg
Zm9yIChhdXRvJiBydW4gOiBtX2NvbnRpbm91c1J1bnMpIHsKKyAgICBmb3IgKGF1dG8mIHJ1biA6
IG1fcnVucykgewogICAgICAgICBhdXRvJiBpbmxpbmVJdGVtID0gcnVuLmlubGluZUl0ZW07CiAg
ICAgICAgIGlmIChpbmxpbmVJdGVtLmlzQ29udGFpbmVyU3RhcnQoKSB8fCBpbmxpbmVJdGVtLmlz
Q29udGFpbmVyRW5kKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTQzNywxMiArNDMwLDEy
IEBAIGJvb2wgTGluZUJyZWFrZXI6OkNvbnRlbnQ6Omhhc1RleHRDb250ZW50T25seSgpIGNvbnN0
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIExpbmVCcmVha2VyOjpDb250ZW50Ojppc1Zp
c3VhbGx5RW1wdHlXaGl0ZXNwYWNlQ29udGVudE9ubHkoKSBjb25zdAorYm9vbCBMaW5lQnJlYWtl
cjo6Q29udGlub3VzQ29udGVudDo6aXNWaXN1YWxseUVtcHR5V2hpdGVzcGFjZUNvbnRlbnRPbmx5
KCkgY29uc3QKIHsKICAgICAvLyBbPHNwYW4+PC9zcGFuPiBdIFs8c3Bhbj4gPC9zcGFuPl0gWyA8
c3BhbiBzdHlsZT0icGFkZGluZzogMHB4OyI+PC9zcGFuPl0gYXJlIGFsbCBjb25zaWRlcmVkIHZp
c3VhbGx5IGVtcHR5IHdoaXRlc3BhY2UgY29udGVudC4KICAgICAvLyBbPHNwYW4gc3R5bGU9ImJv
cmRlcjogMXB4IHNvbGlkIHJlZCI+PC9zcGFuPiBdIHdoaWxlIHRoaXMgaXMgd2hpdGVzcGFjZSBj
b250ZW50IG9ubHksIGl0IGlzIG5vdCBjb25zaWRlcmVkIHZpc3VhbGx5IGVtcHR5LgogICAgIC8v
IER1ZSB0byBjb21taXQgYm91bmRhcnkgcnVsZXMsIHdlIGp1c3QgbmVlZCB0byBjaGVjayB0aGUg
Zmlyc3Qgbm9uLXR5cGVsZXNzIGlubGluZSBpdGVtIChjYW4ndCBoYXZlIGJvdGggW2ltZ10gYW5k
IFt0ZXh0XSkKLSAgICBmb3IgKGF1dG8mIHJ1biA6IG1fY29udGlub3VzUnVucykgeworICAgIGZv
ciAoYXV0byYgcnVuIDogbV9ydW5zKSB7CiAgICAgICAgIGF1dG8mIGlubGluZUl0ZW0gPSBydW4u
aW5saW5lSXRlbTsKICAgICAgICAgLy8gRklYTUU6IGNoZWNrIGZvciBwYWRkaW5nIGJvcmRlciBl
dGMuCiAgICAgICAgIGlmIChpbmxpbmVJdGVtLmlzQ29udGFpbmVyU3RhcnQoKSB8fCBpbmxpbmVJ
dGVtLmlzQ29udGFpbmVyRW5kKCkpCkBAIC00NTIsMTkgKzQ0NSwxOSBAQCBib29sIExpbmVCcmVh
a2VyOjpDb250ZW50Ojppc1Zpc3VhbGx5RW1wdHlXaGl0ZXNwYWNlQ29udGVudE9ubHkoKSBjb25z
dAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotT3B0aW9uYWw8dW5zaWduZWQ+IExpbmVCcmVha2Vy
OjpDb250ZW50OjpmaXJzdFRleHRSdW5JbmRleCgpIGNvbnN0CitPcHRpb25hbDx1bnNpZ25lZD4g
TGluZUJyZWFrZXI6OkNvbnRpbm91c0NvbnRlbnQ6OmZpcnN0VGV4dFJ1bkluZGV4KCkgY29uc3QK
IHsKLSAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgbV9jb250aW5vdXNSdW5zLnNp
emUoKTsgKytpbmRleCkgewotICAgICAgICBpZiAobV9jb250aW5vdXNSdW5zW2luZGV4XS5pbmxp
bmVJdGVtLmlzVGV4dCgpKQorICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBtX3J1
bnMuc2l6ZSgpOyArK2luZGV4KSB7CisgICAgICAgIGlmIChtX3J1bnNbaW5kZXhdLmlubGluZUl0
ZW0uaXNUZXh0KCkpCiAgICAgICAgICAgICByZXR1cm4gaW5kZXg7CiAgICAgfQogICAgIHJldHVy
biB7IH07CiB9CiAKLWJvb2wgTGluZUJyZWFrZXI6OkNvbnRlbnQ6Omhhc05vbkNvbnRlbnRSdW5z
T25seSgpIGNvbnN0Citib29sIExpbmVCcmVha2VyOjpDb250aW5vdXNDb250ZW50OjpoYXNOb25D
b250ZW50UnVuc09ubHkoKSBjb25zdAogewogICAgIC8vIDxzcGFuPjwvc3Bhbj4gPC0gbm9uIGNv
bnRlbnQgcnVucy4KLSAgICBmb3IgKGF1dG8mIHJ1biA6IG1fY29udGlub3VzUnVucykgeworICAg
IGZvciAoYXV0byYgcnVuIDogbV9ydW5zKSB7CiAgICAgICAgIGF1dG8mIGlubGluZUl0ZW0gPSBy
dW4uaW5saW5lSXRlbTsKICAgICAgICAgaWYgKGlubGluZUl0ZW0uaXNDb250YWluZXJTdGFydCgp
IHx8IGlubGluZUl0ZW0uaXNDb250YWluZXJFbmQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpA
QCAtNDczLDcgKzQ2Niw3IEBAIGJvb2wgTGluZUJyZWFrZXI6OkNvbnRlbnQ6Omhhc05vbkNvbnRl
bnRSdW5zT25seSgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgTGluZUJyZWFr
ZXI6OkNvbnRlbnQ6OlRyYWlsaW5nQ29sbGFwc2libGVDb250ZW50OjpyZXNldCgpCit2b2lkIExp
bmVCcmVha2VyOjpDb250aW5vdXNDb250ZW50OjpUcmFpbGluZ0NvbGxhcHNpYmxlQ29udGVudDo6
cmVzZXQoKQogewogICAgIGlzRnVsbHlDb2xsYXBzaWJsZSA9IGZhbHNlOwogICAgIHdpZHRoID0g
MF9sdTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUxpbmVCcmVha2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVMaW5lQnJlYWtlci5oCmluZGV4IDg4ZGZhZWIxYjVmMDlmZDU0OTZlMmYwOWM0
MGEyOWVmYzQyMDk4YjAuLmExYWUyMmZlOTgzYTUwYzhhNmQ4MTIyNzgxMTY2MzRiNWM0NjdiOWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUxpbmVCcmVha2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRp
bmcvSW5saW5lTGluZUJyZWFrZXIuaApAQCAtNzIsMTggKzcyLDE1IEBAIHB1YmxpYzoKICAgICAv
LyBbY29udGVudF0KICAgICAvLyBbY29udGFpbmVyIHN0YXJ0XVtzcGFuMV1bY29udGFpbmVyIGVu
ZF1bYmV0d2Vlbl1bY29udGFpbmVyIHN0YXJ0XVtzcGFuMl1bY29udGFpbmVyIGVuZF0KICAgICAv
LyBzZWUgaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy10ZXh0LTMvI2xpbmUtYnJlYWstZGV0
YWlscwotICAgIHN0cnVjdCBDb250ZW50IHsKLSAgICAgICAgdm9pZCBhcHBlbmQoY29uc3QgSW5s
aW5lSXRlbSYsIElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoKTsKLSAgICAgICAgdm9pZCBy
ZXNldCgpOwotICAgICAgICB2b2lkIHNocmluayh1bnNpZ25lZCBuZXdTaXplKTsKLQotICAgICAg
ICBSdW5MaXN0JiBydW5zKCkgeyByZXR1cm4gbV9jb250aW5vdXNSdW5zOyB9Ci0gICAgICAgIGNv
bnN0IFJ1bkxpc3QmIHJ1bnMoKSBjb25zdCB7IHJldHVybiBtX2NvbnRpbm91c1J1bnM7IH0KLSAg
ICAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9jb250aW5vdXNSdW5zLmlzRW1w
dHkoKTsgfQorICAgIHN0cnVjdCBDb250aW5vdXNDb250ZW50IHsKKyAgICAgICAgQ29udGlub3Vz
Q29udGVudChjb25zdCBSdW5MaXN0Jik7CisKKyAgICAgICAgY29uc3QgUnVuTGlzdCYgcnVucygp
IGNvbnN0IHsgcmV0dXJuIG1fcnVuczsgfQorICAgICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7
IHJldHVybiBtX3J1bnMuaXNFbXB0eSgpOyB9CiAgICAgICAgIGJvb2wgaGFzVGV4dENvbnRlbnRP
bmx5KCkgY29uc3Q7CiAgICAgICAgIGJvb2wgaXNWaXN1YWxseUVtcHR5V2hpdGVzcGFjZUNvbnRl
bnRPbmx5KCkgY29uc3Q7CiAgICAgICAgIGJvb2wgaGFzTm9uQ29udGVudFJ1bnNPbmx5KCkgY29u
c3Q7Ci0gICAgICAgIHVuc2lnbmVkIHNpemUoKSBjb25zdCB7IHJldHVybiBtX2NvbnRpbm91c1J1
bnMuc2l6ZSgpOyB9CisgICAgICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9ydW5z
LnNpemUoKTsgfQogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IHdpZHRoKCkgY29uc3QgeyByZXR1
cm4gbV93aWR0aDsgfQogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IG5vbkNvbGxhcHNpYmxlV2lk
dGgoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoIC0gbV90cmFpbGluZ0NvbGxhcHNpYmxlQ29udGVu
dC53aWR0aDsgfQogCkBAIC05Myw3ICs5MCw3IEBAIHB1YmxpYzoKICAgICAgICAgT3B0aW9uYWw8
dW5zaWduZWQ+IGZpcnN0VGV4dFJ1bkluZGV4KCkgY29uc3Q7CiAKICAgICBwcml2YXRlOgotICAg
ICAgICBSdW5MaXN0IG1fY29udGlub3VzUnVuczsKKyAgICAgICAgUnVuTGlzdCBtX3J1bnM7CiAg
ICAgICAgIHN0cnVjdCBUcmFpbGluZ0NvbGxhcHNpYmxlQ29udGVudCB7CiAgICAgICAgICAgICB2
b2lkIHJlc2V0KCk7CiAKQEAgLTExMCw3ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wg
bGluZUhhc0Z1bGx5Q29sbGFwc2libGVUcmFpbGluZ1J1biB7IGZhbHNlIH07CiAgICAgICAgIGJv
b2wgbGluZUlzRW1wdHkgeyB0cnVlIH07CiAgICAgfTsKLSAgICBCcmVha2luZ0NvbnRleHQgYnJl
YWtpbmdDb250ZXh0Rm9ySW5saW5lQ29udGVudChjb25zdCBDb250ZW50JiBjYW5kaWRhdGVSdW5z
LCBjb25zdCBMaW5lU3RhdHVzJik7CisgICAgQnJlYWtpbmdDb250ZXh0IGJyZWFraW5nQ29udGV4
dEZvcklubGluZUNvbnRlbnQoY29uc3QgQ29udGlub3VzQ29udGVudCYgY2FuZGlkYXRlUnVucywg
Y29uc3QgTGluZVN0YXR1cyYpOwogICAgIGJvb2wgc2hvdWxkV3JhcEZsb2F0Qm94KElubGluZUxh
eW91dFVuaXQgZmxvYXRMb2dpY2FsV2lkdGgsIElubGluZUxheW91dFVuaXQgYXZhaWxhYmxlV2lk
dGgsIGJvb2wgbGluZUlzRW1wdHkpOwogCiAgICAgdm9pZCBzZXRIeXBoZW5hdGlvbkRpc2FibGVk
KCkgeyBuX2h5cGhlbmF0aW9uSXNEaXNhYmxlZCA9IHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0xpbmVMYXlvdXRDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0xpbmVMYXlvdXRDb250ZXh0
LmNwcAppbmRleCBmZjNiNDQ2ODY4ZTg3ZTZiNTYxNmViOWNjODQzMjIxZWZhMzJhYWQxLi5iYjc2
ZDc1ZWZhMjk4YzE0MDIyOTA2Yjc3YTg4YmRlOGJkNTA4NzQyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9MaW5lTGF5b3V0Q29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGluZUxheW91dENvbnRl
eHQuY3BwCkBAIC0yMDgsNyArMjA4LDcgQEAgTGluZUxheW91dENvbnRleHQ6OklzRW5kT2ZMaW5l
IExpbmVMYXlvdXRDb250ZXh0Ojpwcm9jZXNzVW5jb21taXR0ZWRDb250ZW50KExpbmUKICAgICBp
ZiAoc2hvdWxkRGlzYWJsZUh5cGhlbmF0aW9uKCkpCiAgICAgICAgIGxpbmVCcmVha2VyLnNldEh5
cGhlbmF0aW9uRGlzYWJsZWQoKTsKICAgICBhdXRvIGxpbmVTdGF0dXMgPSBMaW5lQnJlYWtlcjo6
TGluZVN0YXR1cyB7IGxpbmUuYXZhaWxhYmxlV2lkdGgoKSwgbGluZS50cmFpbGluZ0NvbGxhcHNp
YmxlV2lkdGgoKSwgbGluZS5pc1RyYWlsaW5nUnVuRnVsbHlDb2xsYXBzaWJsZSgpLCBsaW5lSXND
b25zaWRlcmVkRW1wdHkgfTsKLSAgICBhdXRvIGJyZWFraW5nQ29udGV4dCA9IGxpbmVCcmVha2Vy
LmJyZWFraW5nQ29udGV4dEZvcklubGluZUNvbnRlbnQobV91bmNvbW1pdHRlZENvbnRlbnQsIGxp
bmVTdGF0dXMpOworICAgIGF1dG8gYnJlYWtpbmdDb250ZXh0ID0gbGluZUJyZWFrZXIuYnJlYWtp
bmdDb250ZXh0Rm9ySW5saW5lQ29udGVudChMaW5lQnJlYWtlcjo6Q29udGlub3VzQ29udGVudCB7
IG1fdW5jb21taXR0ZWRDb250ZW50LnJ1bnMoKSB9LCBsaW5lU3RhdHVzKTsKICAgICAvLyBUaGUg
dW5jb21taXR0ZWQgY29udGVudCBjYW4gZnVsbHksIHBhcnRpYWxseSBmaXQgdGhlIGN1cnJlbnQg
bGluZSAoY29tbWl0L3BhcnRpYWwgY29tbWl0KSBvciBub3QgYXQgYWxsIChyZXNldCkuCiAgICAg
aWYgKGJyZWFraW5nQ29udGV4dC5jb250ZW50V3JhcHBpbmdSdWxlID09IExpbmVCcmVha2VyOjpC
cmVha2luZ0NvbnRleHQ6OkNvbnRlbnRXcmFwcGluZ1J1bGU6OktlZXApCiAgICAgICAgIGNvbW1p
dFBlbmRpbmdDb250ZW50KGxpbmUpOwpAQCAtMjQ4LDYgKzI0OCwyOSBAQCBMaW5lTGF5b3V0Q29u
dGV4dDo6SXNFbmRPZkxpbmUgTGluZUxheW91dENvbnRleHQ6OnByb2Nlc3NVbmNvbW1pdHRlZENv
bnRlbnQoTGluZQogICAgIHJldHVybiBicmVha2luZ0NvbnRleHQuY29udGVudFdyYXBwaW5nUnVs
ZSA9PSBMaW5lQnJlYWtlcjo6QnJlYWtpbmdDb250ZXh0OjpDb250ZW50V3JhcHBpbmdSdWxlOjpL
ZWVwID8gSXNFbmRPZkxpbmU6Ok5vIDogSXNFbmRPZkxpbmU6OlllczsKIH0KIAordm9pZCBMaW5l
TGF5b3V0Q29udGV4dDo6VW5jb21taXR0ZWRDb250ZW50OjphcHBlbmQoY29uc3QgSW5saW5lSXRl
bSYgaW5saW5lSXRlbSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpCit7CisgICAgQVNT
RVJUKCFpbmxpbmVJdGVtLmlzRmxvYXQoKSk7CisgICAgbV91bmNvbW1pdHRlZExpc3QuYXBwZW5k
KHsgaW5saW5lSXRlbSwgbG9naWNhbFdpZHRoIH0pOworICAgIG1fd2lkdGggKz0gbG9naWNhbFdp
ZHRoOworfQorCit2b2lkIExpbmVMYXlvdXRDb250ZXh0OjpVbmNvbW1pdHRlZENvbnRlbnQ6OnJl
c2V0KCkKK3sKKyAgICBtX3VuY29tbWl0dGVkTGlzdC5jbGVhcigpOworICAgIG1fd2lkdGggPSAw
X2x1OworfQorCit2b2lkIExpbmVMYXlvdXRDb250ZXh0OjpVbmNvbW1pdHRlZENvbnRlbnQ6OnNo
cmluayhzaXplX3QgbmV3U2l6ZSkKK3sKKyAgICBBU1NFUlQobmV3U2l6ZSk7CisgICAgQVNTRVJU
KG1fdW5jb21taXR0ZWRMaXN0LnNpemUoKSk7CisgICAgQVNTRVJUKG5ld1NpemUgPCBtX3VuY29t
bWl0dGVkTGlzdC5zaXplKCkpOworICAgIGZvciAoc2l6ZV90IGkgPSBtX3VuY29tbWl0dGVkTGlz
dC5zaXplKCkgLSAxOyBpID49IG5ld1NpemUgOyAtLWkpCisgICAgICAgIG1fd2lkdGggLT0gbV91
bmNvbW1pdHRlZExpc3RbaV0ubG9naWNhbFdpZHRoOworICAgIG1fdW5jb21taXR0ZWRMaXN0LnNo
cmluayhuZXdTaXplKTsKK30KKwogfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9MaW5lTGF5b3V0Q29udGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGluZUxheW91dENvbnRleHQuaAppbmRleCA3MDgw
MGNjYmQ1NjFkYWJmMmFmMTRjOGNlMzBjYWJmYmI3YmNhYWY3Li43YjYzMzVhZDc0ZmI1YTdjZTVm
ZDYxMDJmOTc3YTk2MTI2NzVmZmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9MaW5lTGF5b3V0Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0xpbmVMYXlvdXRDb250ZXh0LmgKQEAgLTYyLDcgKzYy
LDIxIEBAIHByaXZhdGU6CiAgICAgY29uc3QgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQmIG1faW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQ7CiAgICAgY29uc3QgQ29udGFpbmVyJiBtX2Zvcm1hdHRpbmdD
b250ZXh0Um9vdDsKICAgICBjb25zdCBJbmxpbmVJdGVtcyYgbV9pbmxpbmVJdGVtczsKLSAgICBM
aW5lQnJlYWtlcjo6Q29udGVudCBtX3VuY29tbWl0dGVkQ29udGVudDsKKworICAgIHN0cnVjdCBV
bmNvbW1pdHRlZENvbnRlbnQgeworICAgICAgICB2b2lkIGFwcGVuZChjb25zdCBJbmxpbmVJdGVt
JiwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpOworICAgICAgICBJbmxpbmVMYXlvdXRV
bml0IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV93aWR0aDsgfQorICAgICAgICBzaXplX3Qgc2l6
ZSgpIHsgcmV0dXJuIHJ1bnMoKS5zaXplKCk7IH0KKyAgICAgICAgYm9vbCBpc0VtcHR5KCkgeyBy
ZXR1cm4gcnVucygpLmlzRW1wdHkoKTsgfQorICAgICAgICB2b2lkIHJlc2V0KCk7CisgICAgICAg
IHZvaWQgc2hyaW5rKHNpemVfdCBuZXdTaXplKTsKKyAgICAgICAgY29uc3QgTGluZUJyZWFrZXI6
OlJ1bkxpc3QmIHJ1bnMoKSBjb25zdCB7IHJldHVybiBtX3VuY29tbWl0dGVkTGlzdDsgfQorCisg
ICAgcHJpdmF0ZToKKyAgICAgICAgTGluZUJyZWFrZXI6OlJ1bkxpc3QgbV91bmNvbW1pdHRlZExp
c3Q7CisgICAgICAgIElubGluZUxheW91dFVuaXQgbV93aWR0aDsKKyAgICB9OworICAgIFVuY29t
bWl0dGVkQ29udGVudCBtX3VuY29tbWl0dGVkQ29udGVudDsKICAgICB1bnNpZ25lZCBtX2NvbW1p
dHRlZElubGluZUl0ZW1Db3VudCB7IDAgfTsKICAgICBWZWN0b3I8V2Vha1B0cjxJbmxpbmVJdGVt
Pj4gbV9mbG9hdHM7CiAgICAgc3RkOjp1bmlxdWVfcHRyPElubGluZVRleHRJdGVtPiBtX3BhcnRp
YWxMZWFkaW5nVGV4dEl0ZW07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>