<?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>215032</bug_id>
          
          <creation_ts>2020-07-31 14:14:55 -0700</creation_ts>
          <short_desc>REGRESSION(r261570): [GTK] Fails to send drop event to JavaScript</short_desc>
          <delta_ts>2020-08-12 00:36:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joel Einbinder">einbinder</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1676967</commentid>
    <comment_count>0</comment_count>
      <attachid>405738</attachid>
    <who name="Joel Einbinder">einbinder</who>
    <bug_when>2020-07-31 14:14:55 -0700</bug_when>
    <thetext>Created attachment 405738
Html drag and drop demo

I noticed that drag and drop stopped working for me in WebKitGTK. The dragster event fires, but not the dragover/drop events. See the attached file or this link for a minimal repro: https://code.joel.tools/vAKOQRY7GDW/

I bisected it to the commit &quot;[GTK] Rework drag and drop handling in preparation for GTK4&quot;
https://github.com/WebKit/webkit/commit/230c1d8a9da11527b22eb7531bccc46efa0356c2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679094</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-08-10 10:02:42 -0700</bug_when>
    <thetext>Are you sure this regressed in r261570? I&apos;ve debugged this and the problem seems to be that we end up writing custom data to the drag and drop pasteboard, something we don&apos;t support (because I thought it couldn&apos;t happen). So, I think this regressed in r261792, when we enabled custom data support. In any case, I&apos;ll check if we can support custom data for drag and drop too, or simply not use it and fallback to write strings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679375</commentid>
    <comment_count>2</comment_count>
      <attachid>406378</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-08-11 06:26:57 -0700</bug_when>
    <thetext>Created attachment 406378
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679377</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-08-11 06:27:48 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679560</commentid>
    <comment_count>4</comment_count>
      <attachid>406378</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-11 14:20:58 -0700</bug_when>
    <thetext>Comment on attachment 406378
Patch

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

&gt; Source/WebCore/platform/gtk/PasteboardGtk.cpp:337
&gt; +                for (auto&amp; type : customData.orderedTypes())
&gt; +                    types.add(type);

Are these guaranteed to be ASCII lowercase?

&gt; Source/WebCore/platform/gtk/PasteboardGtk.cpp:348
&gt; +        return copyToVector(types);

This will yield the types in a random order, based on hashing. I think we probably want this sorted.

&gt; Source/WebCore/platform/gtk/PasteboardGtk.cpp:462
&gt; +            const auto&amp; customData = data[0];

Why is it correct to look only at the first item?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679707</commentid>
    <comment_count>5</comment_count>
      <attachid>406378</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-08-12 00:27:44 -0700</bug_when>
    <thetext>Comment on attachment 406378
Patch

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

Thanks for the review!

&gt;&gt; Source/WebCore/platform/gtk/PasteboardGtk.cpp:337
&gt;&gt; +                    types.add(type);
&gt; 
&gt; Are these guaranteed to be ASCII lowercase?

Yes, DataTransfer normalizes the given types.

&gt;&gt; Source/WebCore/platform/gtk/PasteboardGtk.cpp:348
&gt;&gt; +        return copyToVector(types);
&gt; 
&gt; This will yield the types in a random order, based on hashing. I think we probably want this sorted.

Why? types is a ListHashSet, not a HashSet.

&gt;&gt; Source/WebCore/platform/gtk/PasteboardGtk.cpp:462
&gt;&gt; +            const auto&amp; customData = data[0];
&gt; 
&gt; Why is it correct to look only at the first item?

It&apos;s not necessarily correct, but we don&apos;t support multiple items in the pasteboard, neither for clipboard nor for drag and drop. In this case it&apos;s correct, because writeCustomData is only called for dnd operations from DataTransfer::commitToPasteboard() that always passes a vector with a single element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679708</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-08-12 00:36:01 -0700</bug_when>
    <thetext>Committed r265542: &lt;https://trac.webkit.org/changeset/265542&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>405738</attachid>
            <date>2020-07-31 14:14:55 -0700</date>
            <delta_ts>2020-08-11 02:18:37 -0700</delta_ts>
            <desc>Html drag and drop demo</desc>
            <filename>file_215032.txt</filename>
            <type>text/html</type>
            <size>953</size>
            <attacher name="Joel Einbinder">einbinder</attacher>
            
              <data encoding="base64">PHN0eWxlPg0KZGl2Om5vdCgubW91c2UtaGVscGVyKSB7DQogIG1hcmdpbjogMGVtOw0KICBwYWRk
aW5nOiAyZW07DQp9DQojc291cmNlIHsNCiAgY29sb3I6IGJsdWU7DQogIGJvcmRlcjogMXB4IHNv
bGlkIGJsYWNrOw0KfQ0KI3RhcmdldCB7DQogIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOw0KfQ0K
PC9zdHlsZT4NCg0KPHNjcmlwdD4NCg0KZnVuY3Rpb24gZHJhZ3N0YXJ0X2hhbmRsZXIoZXYpIHsN
CiAgZXYuY3VycmVudFRhcmdldC5zdHlsZS5ib3JkZXIgPSAiZGFzaGVkIjsNCiAgZXYuZGF0YVRy
YW5zZmVyLnNldERhdGEoInRleHQvcGxhaW4iLCBldi50YXJnZXQuaWQpOw0KfQ0KDQpmdW5jdGlv
biBkcmFnb3Zlcl9oYW5kbGVyKGV2KSB7DQogIGV2LnByZXZlbnREZWZhdWx0KCk7DQp9DQoNCmZ1
bmN0aW9uIGRyb3BfaGFuZGxlcihldikgew0KICBjb25zb2xlLmxvZygiRHJvcCIpOw0KICBldi5w
cmV2ZW50RGVmYXVsdCgpOw0KICB2YXIgZGF0YSA9IGV2LmRhdGFUcmFuc2Zlci5nZXREYXRhKCJ0
ZXh0Iik7DQogIGV2LnRhcmdldC5hcHBlbmRDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChk
YXRhKSk7DQogIGV2LmRhdGFUcmFuc2Zlci5jbGVhckRhdGEoKTsNCn0NCjwvc2NyaXB0Pg0KDQo8
Ym9keT4NCiAgPGRpdj4NCiAgICA8cCBpZD0ic291cmNlIiBvbmRyYWdzdGFydD0iZHJhZ3N0YXJ0
X2hhbmRsZXIoZXZlbnQpOyIgZHJhZ2dhYmxlPSJ0cnVlIj4NCiAgICAgIFNlbGVjdCB0aGlzIGVs
ZW1lbnQsIGRyYWcgaXQgdG8gdGhlIERyb3AgWm9uZSBhbmQgdGhlbiByZWxlYXNlIHRoZSBzZWxl
Y3Rpb24gdG8gbW92ZSB0aGUgZWxlbWVudC48L3A+DQogIDwvZGl2Pg0KICA8ZGl2IGlkPSJ0YXJn
ZXQiIG9uZHJvcD0iZHJvcF9oYW5kbGVyKGV2ZW50KTsiIG9uZHJhZ292ZXI9ImRyYWdvdmVyX2hh
bmRsZXIoZXZlbnQpOyI+RHJvcCBab25lPC9kaXY+DQo8L2JvZHk+DQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406378</attachid>
            <date>2020-08-11 06:26:57 -0700</date>
            <delta_ts>2020-08-11 14:20:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-dnd-custom-data.diff</filename>
            <type>text/plain</type>
            <size>15181</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3ZWE5MTE3ZWVhZTguLjZmMzNmZmU5YmI5YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIxIEBACisyMDIwLTA4LTExICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyNjE1NzApOiBbR1RLXSBGYWlscyB0
byBzZW5kIGRyb3AgZXZlbnQgdG8gSmF2YVNjcmlwdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1MDMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGN1c3RvbSBkYXRhIGluIGRy
YWcgYW5kIGRyb3Agb3BlcmF0aW9ucyB0b28uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUGFz
dGVib2FyZEd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZSk6IFNl
IGN1c3RvbSBkYXRhIG9uIG1fc2VsZWN0aW9uRGF0YS4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3Rl
Ym9hcmQ6OnJlYWQpOiBJbml0aWFsaXplIHRoZSBjb250ZW50IG9yaWdpbiBhbHNvIGZvciBkcmFn
IGFuZCBkcm9wIHBhc3RlYm9hcmRzLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6aGFz
RGF0YSk6IEZvciBkcmFnIGFuZCBkcm9wIHBhc3RlYm9hcmRzIHJldHVybiB0cnVlIGFsc28gaWYg
bV9zZWxlY3Rpb25EYXRhIGhhcyBjdXN0b20gZGF0YS4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3Rl
Ym9hcmQ6OnR5cGVzU2FmZUZvckJpbmRpbmdzKTogSW1wbGVtZW50IHRoaXMgZm9yIGRyYWcgYW5k
IGRyb3AgcGFzdGVib2FyZHMuCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpyZWFkT3Jp
Z2luKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpyZWFkU3RyaW5nSW5D
dXN0b21EYXRhKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZUN1
c3RvbURhdGEpOiBEaXR0by4KKwogMjAyMC0wOC0wOSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJv
dWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gRHJhZy9kcm9wIGFuIGltYWdl
IG9mIGEgdW5zdXBwb3J0ZWQgZm9ybWF0IHRvIGFuIGZpbGUgaW5wdXQgZWxlbWVudCBzaG91bGQg
Y29udmVydCBpdCB0byBhIHN1cHBvcnRlZCBmb3JtYXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcAppbmRleCBmNzVmZmYzOGE2ZjEuLmRjNjg1MzQ1NTY4
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcApA
QCAtMTg0LDYgKzE4NCw5IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2Fy
ZFdlYkNvbnRlbnQmIHBhc3RlYm9hcmRDb250ZW50KQogICAgICAgICBtX3NlbGVjdGlvbkRhdGEt
PnNldFRleHQocGFzdGVib2FyZENvbnRlbnQudGV4dCk7CiAgICAgICAgIG1fc2VsZWN0aW9uRGF0
YS0+c2V0TWFya3VwKHBhc3RlYm9hcmRDb250ZW50Lm1hcmt1cCk7CiAgICAgICAgIG1fc2VsZWN0
aW9uRGF0YS0+c2V0Q2FuU21hcnRSZXBsYWNlKHBhc3RlYm9hcmRDb250ZW50LmNhblNtYXJ0Q29w
eU9yRGVsZXRlKTsKKyAgICAgICAgUGFzdGVib2FyZEN1c3RvbURhdGEgY3VzdG9tRGF0YTsKKyAg
ICAgICAgY3VzdG9tRGF0YS5zZXRPcmlnaW4ocGFzdGVib2FyZENvbnRlbnQuY29udGVudE9yaWdp
bik7CisgICAgICAgIG1fc2VsZWN0aW9uRGF0YS0+c2V0Q3VzdG9tRGF0YShjdXN0b21EYXRhLmNy
ZWF0ZVNoYXJlZEJ1ZmZlcigpKTsKICAgICB9IGVsc2UgewogICAgICAgICBTZWxlY3Rpb25EYXRh
IGRhdGE7CiAgICAgICAgIGRhdGEuc2V0VGV4dChwYXN0ZWJvYXJkQ29udGVudC50ZXh0KTsKQEAg
LTI1Myw2ICsyNTYsOCBAQCB2b2lkIFBhc3RlYm9hcmQ6OnJlYWQoUGFzdGVib2FyZFBsYWluVGV4
dCYgdGV4dCwgUGxhaW5UZXh0VVJMUmVhZGluZ1BvbGljeSwgT3B0aQogCiB2b2lkIFBhc3RlYm9h
cmQ6OnJlYWQoUGFzdGVib2FyZFdlYkNvbnRlbnRSZWFkZXImIHJlYWRlciwgV2ViQ29udGVudFJl
YWRpbmdQb2xpY3kgcG9saWN5LCBPcHRpb25hbDxzaXplX3Q+KQogeworICAgIHJlYWRlci5jb250
ZW50T3JpZ2luID0gcmVhZE9yaWdpbigpOworCiAgICAgaWYgKG1fc2VsZWN0aW9uRGF0YSkgewog
ICAgICAgICBpZiAobV9zZWxlY3Rpb25EYXRhLT5oYXNNYXJrdXAoKSAmJiByZWFkZXIucmVhZEhU
TUwobV9zZWxlY3Rpb25EYXRhLT5tYXJrdXAoKSkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0y
NjksOCArMjc0LDYgQEAgdm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRXZWJDb250ZW50
UmVhZGVyJiByZWFkZXIsIFdlYkNvbnRlbnRSZWFkaW5nUG9saWMKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIHJlYWRlci5jb250ZW50T3JpZ2luID0gcmVhZE9yaWdpbigpOwotCiAgICAg
YXV0byB0eXBlcyA9IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+
dHlwZXMobV9uYW1lKTsKICAgICBpZiAodHlwZXMuY29udGFpbnMoInRleHQvaHRtbCJfcykpIHsK
ICAgICAgICAgYXV0byBidWZmZXIgPSBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0
cmF0ZWd5KCktPnJlYWRCdWZmZXJGcm9tQ2xpcGJvYXJkKG1fbmFtZSwgInRleHQvaHRtbCJfcyk7
CkBAIC0zMTksMTQgKzMyMiwzMSBAQCB2b2lkIFBhc3RlYm9hcmQ6OnJlYWQoUGFzdGVib2FyZEZp
bGVSZWFkZXImIHJlYWRlciwgT3B0aW9uYWw8c2l6ZV90PikKIGJvb2wgUGFzdGVib2FyZDo6aGFz
RGF0YSgpCiB7CiAgICAgaWYgKG1fc2VsZWN0aW9uRGF0YSkKLSAgICAgICAgcmV0dXJuIG1fc2Vs
ZWN0aW9uRGF0YS0+aGFzVGV4dCgpIHx8IG1fc2VsZWN0aW9uRGF0YS0+aGFzTWFya3VwKCkgfHwg
bV9zZWxlY3Rpb25EYXRhLT5oYXNVUklMaXN0KCkgfHwgbV9zZWxlY3Rpb25EYXRhLT5oYXNJbWFn
ZSgpOworICAgICAgICByZXR1cm4gbV9zZWxlY3Rpb25EYXRhLT5oYXNUZXh0KCkgfHwgbV9zZWxl
Y3Rpb25EYXRhLT5oYXNNYXJrdXAoKSB8fCBtX3NlbGVjdGlvbkRhdGEtPmhhc1VSSUxpc3QoKSB8
fCBtX3NlbGVjdGlvbkRhdGEtPmhhc0ltYWdlKCkgfHwgbV9zZWxlY3Rpb25EYXRhLT5oYXNDdXN0
b21EYXRhKCk7CiAgICAgcmV0dXJuICFwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0
cmF0ZWd5KCktPnR5cGVzKG1fbmFtZSkuaXNFbXB0eSgpOwogfQogCiBWZWN0b3I8U3RyaW5nPiBQ
YXN0ZWJvYXJkOjp0eXBlc1NhZmVGb3JCaW5kaW5ncyhjb25zdCBTdHJpbmcmIG9yaWdpbikKIHsK
LSAgICBpZiAobV9zZWxlY3Rpb25EYXRhKQotICAgICAgICByZXR1cm4geyB9OworICAgIGlmICht
X3NlbGVjdGlvbkRhdGEpIHsKKyAgICAgICAgTGlzdEhhc2hTZXQ8U3RyaW5nPiB0eXBlczsKKyAg
ICAgICAgaWYgKGF1dG8qIGJ1ZmZlciA9IG1fc2VsZWN0aW9uRGF0YS0+Y3VzdG9tRGF0YSgpKSB7
CisgICAgICAgICAgICBhdXRvIGN1c3RvbURhdGEgPSBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6ZnJv
bVNoYXJlZEJ1ZmZlcigqYnVmZmVyKTsKKyAgICAgICAgICAgIGlmIChjdXN0b21EYXRhLm9yaWdp
bigpID09IG9yaWdpbikgeworICAgICAgICAgICAgICAgIGZvciAoYXV0byYgdHlwZSA6IGN1c3Rv
bURhdGEub3JkZXJlZFR5cGVzKCkpCisgICAgICAgICAgICAgICAgICAgIHR5cGVzLmFkZCh0eXBl
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChtX3NlbGVjdGlvbkRh
dGEtPmhhc1RleHQoKSkKKyAgICAgICAgICAgIHR5cGVzLmFkZCgidGV4dC9wbGFpbiJfcyk7Cisg
ICAgICAgIGlmIChtX3NlbGVjdGlvbkRhdGEtPmhhc01hcmt1cCgpKQorICAgICAgICAgICAgdHlw
ZXMuYWRkKCJ0ZXh0L2h0bWwiX3MpOworICAgICAgICBpZiAobV9zZWxlY3Rpb25EYXRhLT5oYXNV
UklMaXN0KCkpCisgICAgICAgICAgICB0eXBlcy5hZGQoInRleHQvdXJpLWxpc3QiX3MpOworCisg
ICAgICAgIHJldHVybiBjb3B5VG9WZWN0b3IodHlwZXMpOworICAgIH0KIAogICAgIHJldHVybiBw
bGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnR5cGVzU2FmZUZvckRP
TVRvUmVhZEFuZFdyaXRlKG1fbmFtZSwgb3JpZ2luKTsKIH0KQEAgLTM1Niw4ICszNzYsMTIgQEAg
VmVjdG9yPFN0cmluZz4gUGFzdGVib2FyZDo6dHlwZXNGb3JMZWdhY3lVbnNhZmVCaW5kaW5ncygp
CiAKIFN0cmluZyBQYXN0ZWJvYXJkOjpyZWFkT3JpZ2luKCkKIHsKLSAgICBpZiAobV9zZWxlY3Rp
b25EYXRhKQorICAgIGlmIChtX3NlbGVjdGlvbkRhdGEpIHsKKyAgICAgICAgaWYgKGF1dG8qIGJ1
ZmZlciA9IG1fc2VsZWN0aW9uRGF0YS0+Y3VzdG9tRGF0YSgpKQorICAgICAgICAgICAgcmV0dXJu
IFBhc3RlYm9hcmRDdXN0b21EYXRhOjpmcm9tU2hhcmVkQnVmZmVyKCpidWZmZXIpLm9yaWdpbigp
OworCiAgICAgICAgIHJldHVybiB7IH07CisgICAgfQogCiAgICAgLy8gRklYTUU6IGNhY2hlIGN1
c3RvbSBkYXRhPwogICAgIGlmIChhdXRvIGJ1ZmZlciA9IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5w
YXN0ZWJvYXJkU3RyYXRlZ3koKS0+cmVhZEJ1ZmZlckZyb21DbGlwYm9hcmQobV9uYW1lLCBQYXN0
ZWJvYXJkQ3VzdG9tRGF0YTo6Z3RrVHlwZSgpKSkKQEAgLTM5NSw4ICs0MTksMTIgQEAgU3RyaW5n
IFBhc3RlYm9hcmQ6OnJlYWRTdHJpbmcoY29uc3QgU3RyaW5nJiB0eXBlKQogCiBTdHJpbmcgUGFz
dGVib2FyZDo6cmVhZFN0cmluZ0luQ3VzdG9tRGF0YShjb25zdCBTdHJpbmcmIHR5cGUpCiB7Ci0g
ICAgaWYgKG1fc2VsZWN0aW9uRGF0YSkKKyAgICBpZiAobV9zZWxlY3Rpb25EYXRhKSB7CisgICAg
ICAgIGlmIChhdXRvKiBidWZmZXIgPSBtX3NlbGVjdGlvbkRhdGEtPmN1c3RvbURhdGEoKSkKKyAg
ICAgICAgICAgIHJldHVybiBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6ZnJvbVNoYXJlZEJ1ZmZlcigq
YnVmZmVyKS5yZWFkU3RyaW5nSW5DdXN0b21EYXRhKHR5cGUpOworCiAgICAgICAgIHJldHVybiB7
IH07CisgICAgfQogCiAgICAgLy8gRklYTUU6IGNhY2hlIGN1c3RvbSBkYXRhPwogICAgIGlmIChh
dXRvIGJ1ZmZlciA9IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+
cmVhZEJ1ZmZlckZyb21DbGlwYm9hcmQobV9uYW1lLCBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Z3Rr
VHlwZSgpKSkKQEAgLTQyOSw4ICs0NTcsMTcgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZU1hcmt1
cChjb25zdCBTdHJpbmcmKQogCiB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlQ3VzdG9tRGF0YShjb25z
dCBWZWN0b3I8UGFzdGVib2FyZEN1c3RvbURhdGE+JiBkYXRhKQogewotICAgIGlmIChtX3NlbGVj
dGlvbkRhdGEpCisgICAgaWYgKG1fc2VsZWN0aW9uRGF0YSkgeworICAgICAgICBpZiAoIWRhdGEu
aXNFbXB0eSgpKSB7CisgICAgICAgICAgICBjb25zdCBhdXRvJiBjdXN0b21EYXRhID0gZGF0YVsw
XTsKKyAgICAgICAgICAgIGN1c3RvbURhdGEuZm9yRWFjaFBsYXRmb3JtU3RyaW5nKFt0aGlzXSAo
YXV0byYgdHlwZSwgYXV0byYgc3RyaW5nKSB7CisgICAgICAgICAgICAgICAgd3JpdGVTdHJpbmco
dHlwZSwgc3RyaW5nKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaWYgKGN1c3RvbURh
dGEuaGFzU2FtZU9yaWdpbkN1c3RvbURhdGEoKSB8fCAhY3VzdG9tRGF0YS5vcmlnaW4oKS5pc0Vt
cHR5KCkpCisgICAgICAgICAgICAgICAgbV9zZWxlY3Rpb25EYXRhLT5zZXRDdXN0b21EYXRhKGN1
c3RvbURhdGEuY3JlYXRlU2hhcmVkQnVmZmVyKCkpOworICAgICAgICB9CiAgICAgICAgIHJldHVy
bjsKKyAgICB9CiAKICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5
KCktPndyaXRlQ3VzdG9tRGF0YShkYXRhLCBtX25hbWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3NmY5YTJi
YjcyNTIuLmUxYjUzODZjMDJmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMC0wOC0x
MSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAg
UkVHUkVTU0lPTihyMjYxNTcwKTogW0dUS10gRmFpbHMgdG8gc2VuZCBkcm9wIGV2ZW50IHRvIEph
dmFTY3JpcHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNTAzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEhhbmRsZSBjdXN0b20gZGF0YSBpbiBkcmFnIGFuZCBkcm9wIG9wZXJhdGlvbnMuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9EcmFnU291cmNlR3RrMy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkRyYWdTb3VyY2U6OkRyYWdTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpEcmFnU291cmNl
OjpiZWdpbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvRHJhZ1NvdXJjZUd0azQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpEcmFnU291cmNlOjpiZWdpbik6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9ndGsvRHJvcFRhcmdldEd0azMuY3BwOgorICAgICAgICAoV2ViS2l0OjpEcm9wVGFy
Z2V0OjpEcm9wVGFyZ2V0KToKKyAgICAgICAgKFdlYktpdDo6RHJvcFRhcmdldDo6YWNjZXB0KToK
KyAgICAgICAgKFdlYktpdDo6RHJvcFRhcmdldDo6ZGF0YVJlY2VpdmVkKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2d0ay9Ecm9wVGFyZ2V0R3RrNC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRy
b3BUYXJnZXQ6OkRyb3BUYXJnZXQpOgorICAgICAgICAoV2ViS2l0OjpEcm9wVGFyZ2V0OjphY2Nl
cHQpOgorCiAyMDIwLTA4LTA5ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW21hY09TXSBEcmFnL2Ryb3AgYW4gaW1hZ2Ugb2YgYSB1bnN1cHBv
cnRlZCBmb3JtYXQgdG8gYW4gZmlsZSBpbnB1dCBlbGVtZW50IHNob3VsZCBjb252ZXJ0IGl0IHRv
IGEgc3VwcG9ydGVkIGZvcm1hdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9EcmFnU291cmNlR3RrMy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL0RyYWdTb3VyY2VHdGszLmNwcAppbmRleCBlZmRjZWYyNWQzYmIuLmEzOTI0ZTljYWE0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9EcmFnU291cmNlR3Rr
My5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9EcmFnU291cmNlR3Rr
My5jcHAKQEAgLTMxLDEyICszMSwxMyBAQAogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdCYXNlUHJp
dmF0ZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR1JlZlB0ckd0ay5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvR3RrVXRpbGl0aWVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYXN0ZWJvYXJkQ3VzdG9tRGF0
YS5oPgogI2luY2x1ZGUgPGd0ay9ndGsuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAotZW51bSBEcmFnVGFyZ2V0VHlwZSB7IE1hcmt1cCwgVGV4dCwg
SW1hZ2UsIFVSSUxpc3QsIE5ldHNjYXBlVVJMLCBTbWFydFBhc3RlIH07CitlbnVtIERyYWdUYXJn
ZXRUeXBlIHsgTWFya3VwLCBUZXh0LCBJbWFnZSwgVVJJTGlzdCwgTmV0c2NhcGVVUkwsIFNtYXJ0
UGFzdGUsIEN1c3RvbSB9OwogCiBEcmFnU291cmNlOjpEcmFnU291cmNlKEd0a1dpZGdldCogd2Vi
VmlldykKICAgICA6IG1fd2ViVmlldyh3ZWJWaWV3KQpAQCAtNzQsNiArNzUsMTEgQEAgRHJhZ1Nv
dXJjZTo6RHJhZ1NvdXJjZShHdGtXaWRnZXQqIHdlYlZpZXcpCiAgICAgICAgIGNhc2UgRHJhZ1Rh
cmdldFR5cGU6OlNtYXJ0UGFzdGU6CiAgICAgICAgICAgICBndGtfc2VsZWN0aW9uX2RhdGFfc2V0
X3RleHQoZGF0YSwgIiIsIC0xKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERy
YWdUYXJnZXRUeXBlOjpDdXN0b206IHsKKyAgICAgICAgICAgIGF1dG8qIGJ1ZmZlciA9IGRyYWcu
bV9zZWxlY3Rpb25EYXRhLT5jdXN0b21EYXRhKCk7CisgICAgICAgICAgICBndGtfc2VsZWN0aW9u
X2RhdGFfc2V0KGRhdGEsIGdka19hdG9tX2ludGVybl9zdGF0aWNfc3RyaW5nKFBhc3RlYm9hcmRD
dXN0b21EYXRhOjpndGtUeXBlKCkpLCA4LCByZWludGVycHJldF9jYXN0PGNvbnN0IGd1Y2hhcio+
KGJ1ZmZlci0+ZGF0YSgpKSwgYnVmZmVyLT5zaXplKCkpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KICAgICAgICAgfQogICAgIH0pLCB0aGlzKTsKIApAQCAtMTI4LDYgKzEzNCw4IEBA
IHZvaWQgRHJhZ1NvdXJjZTo6YmVnaW4oU2VsZWN0aW9uRGF0YSYmIHNlbGVjdGlvbkRhdGEsIE9w
dGlvblNldDxEcmFnT3BlcmF0aW9uPiBvCiAgICAgICAgIGd0a190YXJnZXRfbGlzdF9hZGRfaW1h
Z2VfdGFyZ2V0cyhsaXN0LmdldCgpLCBEcmFnVGFyZ2V0VHlwZTo6SW1hZ2UsIFRSVUUpOwogICAg
IGlmIChtX3NlbGVjdGlvbkRhdGEtPmNhblNtYXJ0UmVwbGFjZSgpKQogICAgICAgICBndGtfdGFy
Z2V0X2xpc3RfYWRkKGxpc3QuZ2V0KCksIGdka19hdG9tX2ludGVybl9zdGF0aWNfc3RyaW5nKCJh
cHBsaWNhdGlvbi92bmQud2Via2l0Z3RrLnNtYXJ0cGFzdGUiKSwgMCwgRHJhZ1RhcmdldFR5cGU6
OlNtYXJ0UGFzdGUpOworICAgIGlmIChtX3NlbGVjdGlvbkRhdGEtPmhhc0N1c3RvbURhdGEoKSkK
KyAgICAgICAgZ3RrX3RhcmdldF9saXN0X2FkZChsaXN0LmdldCgpLCBnZGtfYXRvbV9pbnRlcm5f
c3RhdGljX3N0cmluZyhQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Z3RrVHlwZSgpKSwgMCwgRHJhZ1Rh
cmdldFR5cGU6OkN1c3RvbSk7CiAKICAgICBtX2RyYWcgPSBndGtfZHJhZ19iZWdpbl93aXRoX2Nv
b3JkaW5hdGVzKG1fd2ViVmlldywgbGlzdC5nZXQoKSwgZHJhZ09wZXJhdGlvblRvR2RrRHJhZ0Fj
dGlvbnMob3BlcmF0aW9uTWFzayksIEdES19CVVRUT05fUFJJTUFSWSwgbnVsbHB0ciwgLTEsIC0x
KTsKICAgICBpZiAoaW1hZ2UpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvRHJhZ1NvdXJjZUd0azQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9EcmFnU291cmNlR3RrNC5jcHAKaW5kZXggYzZhY2I1YTI3NjI0Li5kNTVkZmIzMGY5MjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvRHJhZ1NvdXJjZUd0
azQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvRHJhZ1NvdXJjZUd0
azQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3QmFzZVBy
aXZhdGUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0d0a1V0aWxpdGllcy5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUGFzdGVib2FyZEN1c3RvbURhdGEuaD4KICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewpAQCAtODYsNiArODcsMTEgQEAgdm9pZCBEcmFnU291cmNlOjpiZWdp
bihTZWxlY3Rpb25EYXRhJiYgc2VsZWN0aW9uRGF0YSwgT3B0aW9uU2V0PERyYWdPcGVyYXRpb24+
IG8KICAgICAgICAgcHJvdmlkZXJzLmFwcGVuZChnZGtfY29udGVudF9wcm92aWRlcl9uZXdfZm9y
X2J5dGVzKCJhcHBsaWNhdGlvbi92bmQud2Via2l0Z3RrLnNtYXJ0cGFzdGUiLCBieXRlcy5nZXQo
KSkpOwogICAgIH0KIAorICAgIGlmIChtX3NlbGVjdGlvbkRhdGEtPmhhc0N1c3RvbURhdGEoKSkg
eworICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBtX3NlbGVjdGlvbkRhdGEtPmN1c3Rv
bURhdGEoKS0+Y3JlYXRlR0J5dGVzKCk7CisgICAgICAgIHByb3ZpZGVycy5hcHBlbmQoZ2RrX2Nv
bnRlbnRfcHJvdmlkZXJfbmV3X2Zvcl9ieXRlcyhQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Z3RrVHlw
ZSgpLCBieXRlcy5nZXQoKSkpOworICAgIH0KKwogICAgIGF1dG8qIHN1cmZhY2UgPSBndGtfbmF0
aXZlX2dldF9zdXJmYWNlKGd0a193aWRnZXRfZ2V0X25hdGl2ZShtX3dlYlZpZXcpKTsKICAgICBh
dXRvKiBkZXZpY2UgPSBnZGtfc2VhdF9nZXRfcG9pbnRlcihnZGtfZGlzcGxheV9nZXRfZGVmYXVs
dF9zZWF0KGd0a193aWRnZXRfZ2V0X2Rpc3BsYXkobV93ZWJWaWV3KSkpOwogICAgIEdSZWZQdHI8
R2RrQ29udGVudFByb3ZpZGVyPiBwcm92aWRlciA9IGFkb3B0R1JlZihnZGtfY29udGVudF9wcm92
aWRlcl9uZXdfdW5pb24ocHJvdmlkZXJzLmRhdGEoKSwgcHJvdmlkZXJzLnNpemUoKSkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9Ecm9wVGFyZ2V0R3RrMy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL0Ryb3BUYXJnZXRHdGszLmNwcApp
bmRleCBhOGE3ZmY4NzAzZDguLmVlZGYwNTg2ZDRiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9Ecm9wVGFyZ2V0R3RrMy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9Ecm9wVGFyZ2V0R3RrMy5jcHAKQEAgLTMyLDEzICszMiwxNCBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0RhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dSZWZQ
dHJHdGsuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0d0a1V0aWxpdGllcy5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUGFzdGVib2FyZEN1c3RvbURhdGEuaD4KICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5j
bHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCi1lbnVtIERyb3BUYXJnZXRUeXBlIHsgTWFya3VwLCBUZXh0
LCBVUklMaXN0LCBOZXRzY2FwZVVSTCwgU21hcnRQYXN0ZSB9OworZW51bSBEcm9wVGFyZ2V0VHlw
ZSB7IE1hcmt1cCwgVGV4dCwgVVJJTGlzdCwgTmV0c2NhcGVVUkwsIFNtYXJ0UGFzdGUsIEN1c3Rv
bSB9OwogCiBEcm9wVGFyZ2V0OjpEcm9wVGFyZ2V0KEd0a1dpZGdldCogd2ViVmlldykKICAgICA6
IG1fd2ViVmlldyh3ZWJWaWV3KQpAQCAtNTAsNiArNTEsNyBAQCBEcm9wVGFyZ2V0OjpEcm9wVGFy
Z2V0KEd0a1dpZGdldCogd2ViVmlldykKICAgICBndGtfdGFyZ2V0X2xpc3RfYWRkX3VyaV90YXJn
ZXRzKGxpc3QuZ2V0KCksIERyb3BUYXJnZXRUeXBlOjpVUklMaXN0KTsKICAgICBndGtfdGFyZ2V0
X2xpc3RfYWRkKGxpc3QuZ2V0KCksIGdka19hdG9tX2ludGVybl9zdGF0aWNfc3RyaW5nKCJfTkVU
U0NBUEVfVVJMIiksIDAsIERyb3BUYXJnZXRUeXBlOjpOZXRzY2FwZVVSTCk7CiAgICAgZ3RrX3Rh
cmdldF9saXN0X2FkZChsaXN0LmdldCgpLCBnZGtfYXRvbV9pbnRlcm5fc3RhdGljX3N0cmluZygi
YXBwbGljYXRpb24vdm5kLndlYmtpdGd0ay5zbWFydHBhc3RlIiksIDAsIERyb3BUYXJnZXRUeXBl
OjpTbWFydFBhc3RlKTsKKyAgICBndGtfdGFyZ2V0X2xpc3RfYWRkKGxpc3QuZ2V0KCksIGdka19h
dG9tX2ludGVybl9zdGF0aWNfc3RyaW5nKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpndGtUeXBlKCkp
LCAwLCBEcm9wVGFyZ2V0VHlwZTo6Q3VzdG9tKTsKICAgICBndGtfZHJhZ19kZXN0X3NldChtX3dl
YlZpZXcsIHN0YXRpY19jYXN0PEd0a0Rlc3REZWZhdWx0cz4oMCksIG51bGxwdHIsIDAsCiAgICAg
ICAgIHN0YXRpY19jYXN0PEdka0RyYWdBY3Rpb24+KEdES19BQ1RJT05fQ09QWSB8IEdES19BQ1RJ
T05fTU9WRSB8IEdES19BQ1RJT05fTElOSykpOwogICAgIGd0a19kcmFnX2Rlc3Rfc2V0X3Rhcmdl
dF9saXN0KG1fd2ViVmlldywgbGlzdC5nZXQoKSk7CkBAIC0xMTQsNyArMTE2LDggQEAgdm9pZCBE
cm9wVGFyZ2V0OjphY2NlcHQodW5zaWduZWQgdGltZSkKICAgICAgICAgInRleHQvaHRtbCIsCiAg
ICAgICAgICJfTkVUU0NBUEVfVVJMIiwKICAgICAgICAgInRleHQvdXJpLWxpc3QiLAotICAgICAg
ICAiYXBwbGljYXRpb24vdm5kLndlYmtpdGd0ay5zbWFydHBhc3RlIgorICAgICAgICAiYXBwbGlj
YXRpb24vdm5kLndlYmtpdGd0ay5zbWFydHBhc3RlIiwKKyAgICAgICAgIm9yZy53ZWJraXRndGsu
V2ViS2l0LmN1c3RvbS1wYXN0ZWJvYXJkLWRhdGEiCiAgICAgfTsKICAgICBWZWN0b3I8R2RrQXRv
bSwgND4gdGFyZ2V0czsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgR19OX0VMRU1FTlRT
KHN1cHBvcnRlZFRhcmdldHMpOyArK2kpIHsKQEAgLTIwNCw2ICsyMDcsMTMgQEAgdm9pZCBEcm9w
VGFyZ2V0OjpkYXRhUmVjZWl2ZWQoSW50UG9pbnQmJiBwb3NpdGlvbiwgR3RrU2VsZWN0aW9uRGF0
YSogZGF0YSwgdW5zaWcKICAgICBjYXNlIERyb3BUYXJnZXRUeXBlOjpTbWFydFBhc3RlOgogICAg
ICAgICBtX3NlbGVjdGlvbkRhdGEtPnNldENhblNtYXJ0UmVwbGFjZSh0cnVlKTsKICAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBEcm9wVGFyZ2V0VHlwZTo6Q3VzdG9tOiB7CisgICAgICAgIGludCBs
ZW5ndGg7CisgICAgICAgIGNvbnN0IGF1dG8qIGN1c3RvbURhdGEgPSBndGtfc2VsZWN0aW9uX2Rh
dGFfZ2V0X2RhdGFfd2l0aF9sZW5ndGgoZGF0YSwgJmxlbmd0aCk7CisgICAgICAgIGlmIChsZW5n
dGgpCisgICAgICAgICAgICBtX3NlbGVjdGlvbkRhdGEtPnNldEN1c3RvbURhdGEoU2hhcmVkQnVm
ZmVyOjpjcmVhdGUoY3VzdG9tRGF0YSwgc3RhdGljX2Nhc3Q8c2l6ZV90PihsZW5ndGgpKSk7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KICAgICB9CiAKICAgICBpZiAoLS1tX2RhdGFSZXF1ZXN0Q291
bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL0Ryb3BUYXJn
ZXRHdGs0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvRHJvcFRhcmdldEd0
azQuY3BwCmluZGV4IDUxY2EzZTdiODIxOC4uNTMzMTc2MWFlOTE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL0Ryb3BUYXJnZXRHdGs0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL0Ryb3BUYXJnZXRHdGs0LmNwcApAQCAtMzEsNiAr
MzEsNyBAQAogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvRHJhZ0RhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0d0a1V0aWxpdGllcy5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvUGFzdGVib2FyZEN1c3RvbURhdGEuaD4KICNpbmNsdWRlIDxndGsv
Z3RrLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCkBAIC00OCw2ICs0OSw3
IEBAIERyb3BUYXJnZXQ6OkRyb3BUYXJnZXQoR3RrV2lkZ2V0KiB3ZWJWaWV3KQogICAgIGdka19j
b250ZW50X2Zvcm1hdHNfYnVpbGRlcl9hZGRfbWltZV90eXBlKGZvcm1hdHNCdWlsZGVyLCAidGV4
dC91cmktbGlzdCIpOwogICAgIGdka19jb250ZW50X2Zvcm1hdHNfYnVpbGRlcl9hZGRfbWltZV90
eXBlKGZvcm1hdHNCdWlsZGVyLCAiX05FVFNDQVBFX1VSTCIpOwogICAgIGdka19jb250ZW50X2Zv
cm1hdHNfYnVpbGRlcl9hZGRfbWltZV90eXBlKGZvcm1hdHNCdWlsZGVyLCAiYXBwbGljYXRpb24v
dm5kLndlYmtpdGd0ay5zbWFydHBhc3RlIik7CisgICAgZ2RrX2NvbnRlbnRfZm9ybWF0c19idWls
ZGVyX2FkZF9taW1lX3R5cGUoZm9ybWF0c0J1aWxkZXIsIFBhc3RlYm9hcmRDdXN0b21EYXRhOjpn
dGtUeXBlKCkpOwogICAgIGF1dG8qIHRhcmdldCA9IGd0a19kcm9wX3RhcmdldF9hc3luY19uZXco
Z2RrX2NvbnRlbnRfZm9ybWF0c19idWlsZGVyX2ZyZWVfdG9fZm9ybWF0cyhmb3JtYXRzQnVpbGRl
ciksCiAgICAgICAgIHN0YXRpY19jYXN0PEdka0RyYWdBY3Rpb24+KEdES19BQ1RJT05fQ09QWSB8
IEdES19BQ1RJT05fTU9WRSB8IEdES19BQ1RJT05fTElOSykpOwogICAgIGdfc2lnbmFsX2Nvbm5l
Y3QodGFyZ2V0LCAiYWNjZXB0IiwgR19DQUxMQkFDSygrW10oR3RrRHJvcFRhcmdldEFzeW5jKiwg
R2RrRHJvcCogZ2RrRHJvcCwgZ3BvaW50ZXIgdXNlckRhdGEpIC0+IGdib29sZWFuIHsKQEAgLTEz
MCw3ICsxMzIsOCBAQCB2b2lkIERyb3BUYXJnZXQ6OmFjY2VwdCh1bnNpZ25lZCkKICAgICAgICAg
InRleHQvaHRtbCIsCiAgICAgICAgICJfTkVUU0NBUEVfVVJMIiwKICAgICAgICAgInRleHQvdXJp
LWxpc3QiLAotICAgICAgICAiYXBwbGljYXRpb24vdm5kLndlYmtpdGd0ay5zbWFydHBhc3RlIgor
ICAgICAgICAiYXBwbGljYXRpb24vdm5kLndlYmtpdGd0ay5zbWFydHBhc3RlIiwKKyAgICAgICAg
Im9yZy53ZWJraXRndGsuV2ViS2l0LmN1c3RvbS1wYXN0ZWJvYXJkLWRhdGEiCiAgICAgfTsKIAog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBHX05fRUxFTUVOVFMoc3VwcG9ydGVkTWltZVR5
cGVzKTsgKytpKSB7CkBAIC0xNzMsNiArMTc2LDEwIEBAIHZvaWQgRHJvcFRhcmdldDo6YWNjZXB0
KHVuc2lnbmVkKQogICAgICAgICAgICAgICAgICAgICBtX3NlbGVjdGlvbkRhdGEtPnNldFVSSUxp
c3QoU3RyaW5nOjpmcm9tVVRGOChyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPih1cmlMaXN0
RGF0YSksIGxlbmd0aCkpOwogICAgICAgICAgICAgfSBlbHNlIGlmIChtaW1lVHlwZSA9PSAiYXBw
bGljYXRpb24vdm5kLndlYmtpdGd0ay5zbWFydHBhc3RlIikKICAgICAgICAgICAgICAgICBtX3Nl
bGVjdGlvbkRhdGEtPnNldENhblNtYXJ0UmVwbGFjZSh0cnVlKTsKKyAgICAgICAgICAgIGVsc2Ug
aWYgKG1pbWVUeXBlID09IFBhc3RlYm9hcmRDdXN0b21EYXRhOjpndGtUeXBlKCkpIHsKKyAgICAg
ICAgICAgICAgICBpZiAoZ19ieXRlc19nZXRfc2l6ZShkYXRhLmdldCgpKSkKKyAgICAgICAgICAg
ICAgICAgICAgbV9zZWxlY3Rpb25EYXRhLT5zZXRDdXN0b21EYXRhKFNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlKGRhdGEuZ2V0KCkpKTsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZGlkTG9hZERh
dGEoKTsKICAgICAgICAgfSk7Cg==
</data>
<flag name="review"
          id="421758"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>