<?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>145900</bug_id>
          
          <creation_ts>2015-06-11 16:19:37 -0700</creation_ts>
          <short_desc>-[WKWebView evaluateJavaScript] provides a misleading error when the return cannot be serialized</short_desc>
          <delta_ts>2015-06-15 09:58:35 -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>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1101436</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-06-11 16:19:37 -0700</bug_when>
    <thetext>-[WKWebView evaluateJavaScript] can&apos;t return nodes, because they cannot be sent to UI process. But we currently claim that there was a JavaScript exception, which is super misleading.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101438</commentid>
    <comment_count>1</comment_count>
      <attachid>254765</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-06-11 16:23:33 -0700</bug_when>
    <thetext>Created attachment 254765
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101439</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-11 16:25:53 -0700</bug_when>
    <thetext>Attachment 254765 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/WebPageProxy.cpp:2574:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewEvaluateJavaScript.mm:70:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewEvaluateJavaScript.mm:81:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/WebPageProxy.h:762:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 4 in 13 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>1101459</commentid>
    <comment_count>3</comment_count>
    <who name="">mitz</who>
    <bug_when>2015-06-11 17:27:51 -0700</bug_when>
    <thetext>The new API needs an availability macro.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101460</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-06-11 17:33:10 -0700</bug_when>
    <thetext>&gt; The new API needs an availability macro.

Why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101640</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-06-12 10:37:14 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; The new API needs an availability macro.
&gt; 
&gt; Why?

So people who deploy against older versions of OS X and iOS get the right compiler warnings/errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101641</commentid>
    <comment_count>6</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-06-12 10:37:29 -0700</bug_when>
    <thetext>This also needs to go through internal API review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101644</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-06-12 10:45:40 -0700</bug_when>
    <thetext>&gt; So people who deploy against older versions of OS X and iOS get the right compiler warnings/errors.

Can you please be more specific? I know what an availability macro is, but don&apos;t know what situation you have in mind.

Perhaps a code snippet where a warning would be helpful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101645</commentid>
    <comment_count>8</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-06-12 10:50:43 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; So people who deploy against older versions of OS X and iOS get the right compiler warnings/errors.
&gt; 
&gt; Can you please be more specific? I know what an availability macro is, but
&gt; don&apos;t know what situation you have in mind.
&gt; 
&gt; Perhaps a code snippet where a warning would be helpful.

Imagine someone writing an iOS app using the latest SDK but deploying back to 10.10 and iOS 8. In that case, this API is not available so attempting to use it should be an error.

I&apos;m sure Dan could be more specific if I we asked him nicely :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101648</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-06-12 11:18:33 -0700</bug_when>
    <thetext>I don&apos;t think that there is any helpful way to express a change like this via availability macros. For someone who already looks at the error values, no longer reporting the condition as WKErrorJavaScriptExceptionOccurred would be quite harmful too.

In person, Anders told me that he would prefer to have an availability macro just for consistency, which is OK with me, but I don&apos;t think that there is a true need for it here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101664</commentid>
    <comment_count>10</comment_count>
    <who name="">mitz</who>
    <bug_when>2015-06-12 11:55:06 -0700</bug_when>
    <thetext>Anders is right, the compiler is not going to emit a warning or generate different code, but the availability information is still useful to developers (&quot;why am I not getting this error when doing this thing on this platform, but I do get it on that platform?&quot;) and to WebKit contributors. It is also the convention across all Cocoa API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101946</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-06-15 09:58:25 -0700</bug_when>
    <thetext>Committed r185554 with Gtk build fixes and with the still questionable availability macro.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254765</attachid>
            <date>2015-06-11 16:23:33 -0700</date>
            <delta_ts>2015-06-15 09:58:35 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>EvaluateJS.txt</filename>
            <type>text/plain</type>
            <size>15910</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NTQ3OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDE1LTA2LTExICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIC1bV0tXZWJWaWV3IGV2YWx1
YXRlSmF2YVNjcmlwdF0gcHJvdmlkZXMgYSBtaXNsZWFkaW5nIGVycm9yIHdoZW4gdGhlIHJldHVy
biBjYW5ub3QgYmUgc2VyaWFsaXplZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQ1OTAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M6CisKIDIw
MTUtMDYtMTEgIE1hdHQgUmFqY2EgIDxtcmFqY2FAYXBwbGUuY29tPgogCiAgICAgICAgIE1lZGlh
IFNlc3Npb246IEFkZCBwbHVtYmluZyBmb3IgbWVkaWEgY29udHJvbCBldmVudCBkZWxpdmVyeS4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0
cmluZ3MJKHJldmlzaW9uIDE4NTQ1NikKKysrIFNvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ov
TG9jYWxpemFibGUuc3RyaW5ncwkod29ya2luZyBjb3B5KQpAQCAtOTEsNiArOTEsOSBAQAogLyog
V0tFcnJvckphdmFTY3JpcHRFeGNlcHRpb25PY2N1cnJlZCBkZXNjcmlwdGlvbiAqLwogIkEgSmF2
YVNjcmlwdCBleGNlcHRpb24gb2NjdXJyZWQiID0gIkEgSmF2YVNjcmlwdCBleGNlcHRpb24gb2Nj
dXJyZWQiOwogCisvKiBXS0Vycm9ySmF2YVNjcmlwdFJlc3VsdFR5cGVJc1Vuc3VwcG9ydGVkICov
CisiSmF2YVNjcmlwdCBleGVjdXRpb24gcmV0dXJuZWQgYSByZXN1bHQgb2YgYW4gdW5zdXBwb3J0
ZWQgdHlwZSIgPSAiSmF2YVNjcmlwdCBleGVjdXRpb24gcmV0dXJuZWQgYSByZXN1bHQgb2YgYW4g
dW5zdXBwb3J0ZWQgdHlwZSI7CisKIC8qIGFjdGlvbiBtZW51IGl0ZW0gKi8KICJBZGQgdG8gUGhv
dG9zIChhY3Rpb24gbWVudSBpdGVtKSIgPSAiQWRkIHRvIFBob3RvcyI7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cJKHJldmlzaW9uIDE4NTQ3OCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDE1LTA2LTExICBBbGV4ZXkgUHJvc2t1cnlha292
ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIC1bV0tXZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlw
dF0gcHJvdmlkZXMgYSBtaXNsZWFkaW5nIGVycm9yIHdoZW4gdGhlIHJldHVybiBjYW5ub3QgYmUg
c2VyaWFsaXplZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQ1OTAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2UgdXNlZCB0byBjb25mbGF0ZSB0byBjYXNlczogKDEpIHdoZW4gdGhlcmUgd2FzIGEgSmF2
YVNjcmlwdCBleGNlcHRpb24sIGFuZAorICAgICAgICAoMikgd2hlbiB0aGUgcmVzdWx0IGNvdWxk
IG5vdCBiZSBzZXJpYWxpemVkIGZvciBJUEMuIFR1cm5zIG91dCB0aGF0IGl0IHdhcyBxdWl0ZQor
ICAgICAgICBtaXNsZWFkaW5nIQorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5j
cHA6CisgICAgICAgIChXS1BhZ2VSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFcnJvci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tFcnJvci5tbToKKyAgICAgICAgKGxvY2FsaXplZERlc2NyaXB0aW9uRm9yRXJyb3JD
b2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpjb21wbGV0aW9uSGFuZGxlcjpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OnNjcmlwdFZhbHVlQ2FsbGJhY2spOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKToKKwogMjAxNS0w
Ni0xMSAgTWF0dCBSYWpjYSAgPG1yYWpjYUBhcHBsZS5jb20+CiAKICAgICAgICAgTWVkaWEgU2Vz
c2lvbjogQWRkIHBsdW1iaW5nIGZvciBtZWRpYSBjb250cm9sIGV2ZW50IGRlbGl2ZXJ5LgpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDE4
NTQ1NikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNTcxLDEwICsyNTcxLDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb3Vu
dFN0cmluZ01hdGNoZXMoY28KICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkNvdW50U3RyaW5nTWF0Y2hlcyhzdHJpbmcsIG9wdGlvbnMsIG1heE1hdGNoQ291bnQpLCBtX3Bh
Z2VJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUo
Y29uc3QgU3RyaW5nJiBzY3JpcHQsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoQVBJOjpTZXJpYWxpemVk
U2NyaXB0VmFsdWUqLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4gY2FsbGJhY2tGdW5jdGlvbikKK3Zv
aWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUoY29uc3QgU3RyaW5nJiBz
Y3JpcHQsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBi
b29sIGhhZEV4Y2VwdGlvbiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+IGNhbGxiYWNrRnVuY3Rpb24p
CiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkpIHsKLSAgICAgICAgY2FsbGJhY2tGdW5jdGlvbihudWxs
cHRyLCBDYWxsYmFja0Jhc2U6OkVycm9yOjpVbmtub3duKTsKKyAgICAgICAgY2FsbGJhY2tGdW5j
dGlvbihudWxscHRyLCBmYWxzZSwgQ2FsbGJhY2tCYXNlOjpFcnJvcjo6VW5rbm93bik7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKQEAgLTQ2MzEsNyArNDYzMSw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpzdHJpbmdDYWxsYmFjayhjb25zdCAKICAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNr
V2l0aFJldHVyblZhbHVlKHJlc3VsdFN0cmluZy5pbXBsKCkpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6c2NyaXB0VmFsdWVDYWxsYmFjayhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGFS
ZWZlcmVuY2UsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2NyaXB0
VmFsdWVDYWxsYmFjayhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGFSZWZlcmVuY2UsIGJv
b2wgaGFkRXhjZXB0aW9uLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogICAgIGF1dG8gY2FsbGJh
Y2sgPSBtX2NhbGxiYWNrcy50YWtlPFNjcmlwdFZhbHVlQ2FsbGJhY2s+KGNhbGxiYWNrSUQpOwog
ICAgIGlmICghY2FsbGJhY2spIHsKQEAgLTQ2NDMsNyArNDY0Myw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpzY3JpcHRWYWx1ZUNhbGxiYWNrKGMKICAgICBkYXRhLnJlc2VydmVJbml0aWFsQ2FwYWNp
dHkoZGF0YVJlZmVyZW5jZS5zaXplKCkpOwogICAgIGRhdGEuYXBwZW5kKGRhdGFSZWZlcmVuY2Uu
ZGF0YSgpLCBkYXRhUmVmZXJlbmNlLnNpemUoKSk7CiAKLSAgICBjYWxsYmFjay0+cGVyZm9ybUNh
bGxiYWNrV2l0aFJldHVyblZhbHVlKGRhdGEuc2l6ZSgpID8gQVBJOjpTZXJpYWxpemVkU2NyaXB0
VmFsdWU6OmFkb3B0KGRhdGEpLmdldCgpIDogMCk7CisgICAgY2FsbGJhY2stPnBlcmZvcm1DYWxs
YmFja1dpdGhSZXR1cm5WYWx1ZShkYXRhLnNpemUoKSA/IEFQSTo6U2VyaWFsaXplZFNjcmlwdFZh
bHVlOjphZG9wdChkYXRhKS5nZXQoKSA6IDAsIGhhZEV4Y2VwdGlvbik7CiB9CiAKIHZvaWQgV2Vi
UGFnZVByb3h5Ojpjb21wdXRlZFBhZ2VzQ2FsbGJhY2soY29uc3QgVmVjdG9yPEludFJlY3Q+JiBw
YWdlUmVjdHMsIGRvdWJsZSB0b3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCShy
ZXZpc2lvbiAxODU0NTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIxMyw3ICsyMTMsNyBAQCBjbGFzcyBRdWlja0xvb2tEb2N1
bWVudERhdGE7CiB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazx1aW50NjRfdD4gVW5zaWduZWRDYWxs
YmFjazsKIHR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPEVkaXRpbmdSYW5nZT4gRWRpdGluZ1Jhbmdl
Q2FsbGJhY2s7CiB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxjb25zdCBTdHJpbmcmPiBTdHJpbmdD
YWxsYmFjazsKLXR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPEFQSTo6U2VyaWFsaXplZFNjcmlwdFZh
bHVlKj4gU2NyaXB0VmFsdWVDYWxsYmFjazsKK3R5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPEFQSTo6
U2VyaWFsaXplZFNjcmlwdFZhbHVlKiwgYm9vbD4gU2NyaXB0VmFsdWVDYWxsYmFjazsKIAogI2lm
IFBMQVRGT1JNKEdUSykKIHR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPEFQSTo6RXJyb3IqPiBQcmlu
dEZpbmlzaGVkQ2FsbGJhY2s7CkBAIC03NTksNyArNzU5LDcgQEAgcHVibGljOgogICAgIHZvaWQg
Z2V0U2VsZWN0aW9uQXNXZWJBcmNoaXZlRGF0YShzdGQ6OmZ1bmN0aW9uPHZvaWQgKEFQSTo6RGF0
YSosIENhbGxiYWNrQmFzZTo6RXJyb3IpPik7CiAgICAgdm9pZCBnZXRTb3VyY2VGb3JGcmFtZShX
ZWJGcmFtZVByb3h5Kiwgc3RkOjpmdW5jdGlvbjx2b2lkIChjb25zdCBTdHJpbmcmLCBDYWxsYmFj
a0Jhc2U6OkVycm9yKT4pOwogICAgIHZvaWQgZ2V0V2ViQXJjaGl2ZU9mRnJhbWUoV2ViRnJhbWVQ
cm94eSosIHN0ZDo6ZnVuY3Rpb248dm9pZCAoQVBJOjpEYXRhKiwgQ2FsbGJhY2tCYXNlOjpFcnJv
cik+KTsKLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZShjb25zdCBTdHJpbmcmLCBz
dGQ6OmZ1bmN0aW9uPHZvaWQgKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiwgQ2FsbGJhY2tC
YXNlOjpFcnJvcik+IGNhbGxiYWNrRnVuY3Rpb24pOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdElu
TWFpbkZyYW1lKGNvbnN0IFN0cmluZyYsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoQVBJOjpTZXJpYWxp
emVkU2NyaXB0VmFsdWUqLCBib29sIGhhZEV4Y2VwdGlvbiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+
IGNhbGxiYWNrRnVuY3Rpb24pOwogICAgIHZvaWQgZm9yY2VSZXBhaW50KFBhc3NSZWZQdHI8Vm9p
ZENhbGxiYWNrPik7CiAKICAgICBmbG9hdCBoZWFkZXJIZWlnaHQoV2ViRnJhbWVQcm94eSopOwpA
QCAtMTMxNCw3ICsxMzE0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRhdGFDYWxsYmFjayhjb25z
dCBJUEM6OkRhdGFSZWZlcmVuY2UmLCB1aW50NjRfdCk7CiAgICAgdm9pZCBpbWFnZUNhbGxiYWNr
KGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiwgdWludDY0X3QpOwogICAgIHZvaWQgc3Ry
aW5nQ2FsbGJhY2soY29uc3QgU3RyaW5nJiwgdWludDY0X3QpOwotICAgIHZvaWQgc2NyaXB0VmFs
dWVDYWxsYmFjayhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCB1aW50NjRfdCk7CisgICAgdm9p
ZCBzY3JpcHRWYWx1ZUNhbGxiYWNrKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGJvb2wgaGFk
RXhjZXB0aW9uLCB1aW50NjRfdCk7CiAgICAgdm9pZCBjb21wdXRlZFBhZ2VzQ2FsbGJhY2soY29u
c3QgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiwgZG91YmxlIHRvdGFsU2NhbGVGYWN0b3JGb3JQ
cmludGluZywgdWludDY0X3QpOwogICAgIHZvaWQgdmFsaWRhdGVDb21tYW5kQ2FsbGJhY2soY29u
c3QgU3RyaW5nJiwgYm9vbCwgaW50LCB1aW50NjRfdCk7CiAgICAgdm9pZCB1bnNpZ25lZENhbGxi
YWNrKHVpbnQ2NF90LCB1aW50NjRfdCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDE4NTQ1NikKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcg
Y29weSkKQEAgLTE2NSw3ICsxNjUsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAg
IERhdGFDYWxsYmFjayhJUEM6OkRhdGFSZWZlcmVuY2UgcmVzdWx0RGF0YSwgdWludDY0X3QgY2Fs
bGJhY2tJRCkKICAgICBJbWFnZUNhbGxiYWNrKFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5k
bGUgYml0bWFwSGFuZGxlLCB1aW50NjRfdCBjYWxsYmFja0lEKQogICAgIFN0cmluZ0NhbGxiYWNr
KFN0cmluZyByZXN1bHRTdHJpbmcsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCi0gICAgU2NyaXB0VmFs
dWVDYWxsYmFjayhJUEM6OkRhdGFSZWZlcmVuY2UgcmVzdWx0RGF0YSwgdWludDY0X3QgY2FsbGJh
Y2tJRCkKKyAgICBTY3JpcHRWYWx1ZUNhbGxiYWNrKElQQzo6RGF0YVJlZmVyZW5jZSByZXN1bHRE
YXRhLCBib29sIGhhZEV4Y2VwdGlvbiwgdWludDY0X3QgY2FsbGJhY2tJRCkKICAgICBDb21wdXRl
ZFBhZ2VzQ2FsbGJhY2soVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+IHBhZ2VSZWN0cywgZG91Ymxl
IHRvdGFsU2NhbGVGYWN0b3JGb3JQcmludGluZywgdWludDY0X3QgY2FsbGJhY2tJRCkKICAgICBW
YWxpZGF0ZUNvbW1hbmRDYWxsYmFjayhTdHJpbmcgY29tbWFuZCwgYm9vbCBpc0VuYWJsZWQsIGlu
dDMyX3Qgc3RhdGUsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAgICAgRWRpdGluZ1JhbmdlQ2FsbGJh
Y2soc3RydWN0IFdlYktpdDo6RWRpdGluZ1JhbmdlIHJhbmdlLCB1aW50NjRfdCBjYWxsYmFja0lE
KQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAJKHJldmlz
aW9uIDE4NTQ1NikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xOTQwLDcgKzE5NDAsOSBAQCB2b2lkIFdLUGFnZVNldFNlc3Np
b24oV0tQYWdlUmVmIHBhZ2VSZWYsCiAKIHZvaWQgV0tQYWdlUnVuSmF2YVNjcmlwdEluTWFpbkZy
YW1lKFdLUGFnZVJlZiBwYWdlUmVmLCBXS1N0cmluZ1JlZiBzY3JpcHRSZWYsIHZvaWQqIGNvbnRl
eHQsIFdLUGFnZVJ1bkphdmFTY3JpcHRGdW5jdGlvbiBjYWxsYmFjaykKIHsKLSAgICB0b0ltcGwo
cGFnZVJlZiktPnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZSh0b0ltcGwoc2NyaXB0UmVmKS0+c3Ry
aW5nKCksIHRvR2VuZXJpY0NhbGxiYWNrRnVuY3Rpb24oY29udGV4dCwgY2FsbGJhY2spKTsKKyAg
ICB0b0ltcGwocGFnZVJlZiktPnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZSh0b0ltcGwoc2NyaXB0
UmVmKS0+c3RyaW5nKCksIFtjb250ZXh0LCBjYWxsYmFja10oQVBJOjpTZXJpYWxpemVkU2NyaXB0
VmFsdWUqIHJldHVyblZhbHVlLCBib29sLCBDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7Cisg
ICAgICAgIGNhbGxiYWNrKHRvQVBJKHJldHVyblZhbHVlKSwgKGVycm9yICE9IENhbGxiYWNrQmFz
ZTo6RXJyb3I6Ok5vbmUpID8gdG9BUEkoQVBJOjpFcnJvcjo6Y3JlYXRlKCkucHRyKCkpIDogMCwg
Y29udGV4dCk7CisgICAgfSk7CiB9CiAKICNpZmRlZiBfX0JMT0NLU19fCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3IuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3IuaAkocmV2aXNpb24gMTg1NDU2
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9yLmgJKHdvcmtp
bmcgY29weSkKQEAgLTM2LDE2ICszNiwxOCBAQCBXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBX
S0Vycm9yRG9tYWluCiAKIC8qISBAZW51bSBXS0Vycm9yQ29kZQogIEBhYnN0cmFjdCBDb25zdGFu
dHMgdXNlZCBieSBOU0Vycm9yIHRvIGluZGljYXRlIGVycm9ycyBpbiB0aGUgV2ViS2l0IGRvbWFp
bi4KLSBAY29uc3RhbnQgV0tFcnJvclVua25vd24gICAgICAgICAgICAgICAgICAgICAgIEluZGlj
YXRlcyB0aGF0IGFuIHVua25vd24gZXJyb3Igb2NjdXJyZWQuCi0gQGNvbnN0YW50IFdLRXJyb3JX
ZWJDb250ZW50UHJvY2Vzc1Rlcm1pbmF0ZWQgICBJbmRpY2F0ZXMgdGhhdCB0aGUgV2ViIENvbnRl
bnQgcHJvY2VzcyB3YXMgdGVybWluYXRlZC4KLSBAY29uc3RhbnQgV0tFcnJvcldlYlZpZXdJbnZh
bGlkYXRlZCAgICAgICAgICAgIEluZGljYXRlcyB0aGF0IHRoZSBXS1dlYlZpZXcgd2FzIGludmFs
aWRhdGVkLgotIEBjb25zdGFudCBXS0Vycm9ySmF2YVNjcmlwdEV4Y2VwdGlvbk9jY3VycmVkICAg
SW5kaWNhdGVzIHRoYXQgYSBKYXZhU2NyaXB0IGV4Y2VwdGlvbiBvY2N1cnJlZC4KKyBAY29uc3Rh
bnQgV0tFcnJvclVua25vd24gICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRpY2F0ZXMgdGhh
dCBhbiB1bmtub3duIGVycm9yIG9jY3VycmVkLgorIEBjb25zdGFudCBXS0Vycm9yV2ViQ29udGVu
dFByb2Nlc3NUZXJtaW5hdGVkICAgICAgIEluZGljYXRlcyB0aGF0IHRoZSBXZWIgQ29udGVudCBw
cm9jZXNzIHdhcyB0ZXJtaW5hdGVkLgorIEBjb25zdGFudCBXS0Vycm9yV2ViVmlld0ludmFsaWRh
dGVkICAgICAgICAgICAgICAgIEluZGljYXRlcyB0aGF0IHRoZSBXS1dlYlZpZXcgd2FzIGludmFs
aWRhdGVkLgorIEBjb25zdGFudCBXS0Vycm9ySmF2YVNjcmlwdEV4Y2VwdGlvbk9jY3VycmVkICAg
ICAgIEluZGljYXRlcyB0aGF0IGEgSmF2YVNjcmlwdCBleGNlcHRpb24gb2NjdXJyZWQuCisgQGNv
bnN0YW50IFdLRXJyb3JKYXZhU2NyaXB0UmVzdWx0VHlwZUlzVW5zdXBwb3J0ZWQgSW5kaWNhdGVz
IHRoYXQgdGhlIHJlc3VsdCBvZiBKYXZhU2NyaXB0IGV4ZWN1dGlvbiBjb3VsZCBub3QgYmUgcmV0
dXJuZWQuCiAgKi8KIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLRXJyb3JDb2RlKSB7CiAg
ICAgV0tFcnJvclVua25vd24gPSAxLAogICAgIFdLRXJyb3JXZWJDb250ZW50UHJvY2Vzc1Rlcm1p
bmF0ZWQsCiAgICAgV0tFcnJvcldlYlZpZXdJbnZhbGlkYXRlZCwKICAgICBXS0Vycm9ySmF2YVNj
cmlwdEV4Y2VwdGlvbk9jY3VycmVkLAorICAgIFdLRXJyb3JKYXZhU2NyaXB0UmVzdWx0VHlwZUlz
VW5zdXBwb3J0ZWQsCiB9IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzEwLCA4XzApOwogCiBXS19BU1NV
TUVfTk9OTlVMTF9FTkQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tFcnJvci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLRXJyb3IubW0JKHJldmlzaW9uIDE4NTQ1NikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tFcnJvci5tbQkod29ya2luZyBjb3B5KQpAQCAtNDksNiArNDksOSBA
QCBzdGF0aWMgTlNTdHJpbmcgKmxvY2FsaXplZERlc2NyaXB0aW9uRm9yCiAKICAgICBjYXNlIFdL
RXJyb3JKYXZhU2NyaXB0RXhjZXB0aW9uT2NjdXJyZWQ6CiAgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJBIEphdmFTY3JpcHQgZXhjZXB0aW9uIG9jY3VycmVkIiwgIldLRXJyb3JKYXZhU2Ny
aXB0RXhjZXB0aW9uT2NjdXJyZWQgZGVzY3JpcHRpb24iKTsKKworICAgIGNhc2UgV0tFcnJvckph
dmFTY3JpcHRSZXN1bHRUeXBlSXNVbnN1cHBvcnRlZDoKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIkphdmFTY3JpcHQgZXhlY3V0aW9uIHJldHVybmVkIGEgcmVzdWx0IG9mIGFuIHVuc3Vw
cG9ydGVkIHR5cGUiLCAiV0tFcnJvckphdmFTY3JpcHRSZXN1bHRUeXBlSXNVbnN1cHBvcnRlZCBk
ZXNjcmlwdGlvbiIpOwogICAgIH0KIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0JKHJldmlzaW9uIDE4NTQ1NikKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkp
CkBAIC01ODgsNyArNTg4LDcgQEAgLSAodm9pZClldmFsdWF0ZUphdmFTY3JpcHQ6KE5TU3RyaW5n
ICopagogewogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW2NvbXBsZXRpb25IYW5kbGVyIGNv
cHldKTsKIAotICAgIF9wYWdlLT5ydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUoamF2YVNjcmlwdFN0
cmluZywgW2hhbmRsZXJdKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiBzZXJpYWxpemVkU2Ny
aXB0VmFsdWUsIFdlYktpdDo6U2NyaXB0VmFsdWVDYWxsYmFjazo6RXJyb3IgZXJyb3JDb2RlKSB7
CisgICAgX3BhZ2UtPnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZShqYXZhU2NyaXB0U3RyaW5nLCBb
aGFuZGxlcl0oQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqIHNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSwgYm9vbCBoYWRFeGNlcHRpb24sIFdlYktpdDo6U2NyaXB0VmFsdWVDYWxsYmFjazo6RXJyb3Ig
ZXJyb3JDb2RlKSB7CiAgICAgICAgIGlmICghaGFuZGxlcikKICAgICAgICAgICAgIHJldHVybjsK
IApAQCAtNjExLDExICs2MTEsMTcgQEAgLSAodm9pZClldmFsdWF0ZUphdmFTY3JpcHQ6KE5TU3Ry
aW5nICopagogICAgICAgICB9CiAKICAgICAgICAgYXV0byByYXdIYW5kbGVyID0gKHZvaWQgKF4p
KGlkLCBOU0Vycm9yICopKWhhbmRsZXIuZ2V0KCk7Ci0gICAgICAgIGlmICghc2VyaWFsaXplZFNj
cmlwdFZhbHVlKSB7CisgICAgICAgIGlmIChoYWRFeGNlcHRpb24pIHsKKyAgICAgICAgICAgIEFT
U0VSVCghc2VyaWFsaXplZFNjcmlwdFZhbHVlKTsKICAgICAgICAgICAgIHJhd0hhbmRsZXIobmls
LCBjcmVhdGVOU0Vycm9yKFdLRXJyb3JKYXZhU2NyaXB0RXhjZXB0aW9uT2NjdXJyZWQpLmdldCgp
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCisgICAgICAgIGlmICghc2VyaWFs
aXplZFNjcmlwdFZhbHVlKSB7CisgICAgICAgICAgICByYXdIYW5kbGVyKG5pbCwgY3JlYXRlTlNF
cnJvcihXS0Vycm9ySmF2YVNjcmlwdFJlc3VsdFR5cGVJc1Vuc3VwcG9ydGVkKS5nZXQoKSk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBhdXRvIGNvbnRleHQgPSBh
ZG9wdE5TKFtbSlNDb250ZXh0IGFsbG9jXSBpbml0XSk7CiAgICAgICAgIEpTVmFsdWVSZWYgdmFs
dWVSZWYgPSBzZXJpYWxpemVkU2NyaXB0VmFsdWUtPmRlc2VyaWFsaXplKFtjb250ZXh0IEpTR2xv
YmFsQ29udGV4dFJlZl0sIDApOwogICAgICAgICBKU1ZhbHVlICp2YWx1ZSA9IFtKU1ZhbHVlIHZh
bHVlV2l0aEpTVmFsdWVSZWY6dmFsdWVSZWYgaW5Db250ZXh0OmNvbnRleHQuZ2V0KCldOwpJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2
aXNpb24gMTg1NDU2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTMxLDcgKzI1MzEsOSBAQCB2b2lkIFdlYlBhZ2U6
OnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZShjCiAKICAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBzZXJpYWxpemVkUmVzdWx0VmFsdWU7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soSlNE
T01XaW5kb3c6OmNvbW1vblZNKCkpOworICAgIGJvb2wgaGFkRXhjZXB0aW9uID0gdHJ1ZTsKICAg
ICBpZiAoSlNWYWx1ZSByZXN1bHRWYWx1ZSA9IG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+c2Ny
aXB0KCkuZXhlY3V0ZVNjcmlwdChzY3JpcHQsIHRydWUpLmpzVmFsdWUoKSkgeworICAgICAgICBo
YWRFeGNlcHRpb24gPSBmYWxzZTsKICAgICAgICAgc2VyaWFsaXplZFJlc3VsdFZhbHVlID0gU2Vy
aWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUobV9tYWluRnJhbWUtPmpzQ29udGV4dCgpLAogICAg
ICAgICAgICAgdG9SZWYobV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5zY3JpcHQoKS5nbG9iYWxP
YmplY3QobWFpblRocmVhZE5vcm1hbFdvcmxkKCkpLT5nbG9iYWxFeGVjKCksIHJlc3VsdFZhbHVl
KSwgbnVsbHB0cik7CiAgICAgfQpAQCAtMjUzOSw3ICsyNTQxLDcgQEAgdm9pZCBXZWJQYWdlOjpy
dW5KYXZhU2NyaXB0SW5NYWluRnJhbWUoYwogICAgIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhUmVm
ZXJlbmNlOwogICAgIGlmIChzZXJpYWxpemVkUmVzdWx0VmFsdWUpCiAgICAgICAgIGRhdGFSZWZl
cmVuY2UgPSBzZXJpYWxpemVkUmVzdWx0VmFsdWUtPmRhdGEoKTsKLSAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlNjcmlwdFZhbHVlQ2FsbGJhY2soZGF0YVJlZmVyZW5jZSwgY2FsbGJh
Y2tJRCkpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2NyaXB0VmFsdWVDYWxs
YmFjayhkYXRhUmVmZXJlbmNlLCBoYWRFeGNlcHRpb24sIGNhbGxiYWNrSUQpKTsKIH0KIAogdm9p
ZCBXZWJQYWdlOjpnZXRDb250ZW50c0FzU3RyaW5nKHVpbnQ2NF90IGNhbGxiYWNrSUQpCkluZGV4
OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lv
biAxODU0NzgpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
MyBAQAorMjAxNS0wNi0xMSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKwor
ICAgICAgICAtW1dLV2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHRdIHByb3ZpZGVzIGEgbWlzbGVh
ZGluZyBlcnJvciB3aGVuIHRoZSByZXR1cm4gY2Fubm90IGJlIHNlcmlhbGl6ZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTkwMAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tOgorICAgICAg
ICAoVEVTVCk6IEFkZGVkIHRlc3RzLgorCiAyMDE1LTA2LTExICBEYW5pZWwgQmF0ZXMgIDxkYWJh
dGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBDYW5ub3QgcnVuIHJ1bi13ZWJraXQtdGVz
dHMgd2l0aCBwdWJsaWMgU0RLOyBMYXlvdXRUZXN0UmVsYXkgZmFpbHMgdG8gYnVpbGQKSW5kZXg6
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLV2ViVmlld0V2YWx1YXRl
SmF2YVNjcmlwdC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW0JKHJldmlzaW9uIDE4NTQ1
NikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLV2ViVmlld0V2
YWx1YXRlSmF2YVNjcmlwdC5tbQkod29ya2luZyBjb3B5KQpAQCAtNjAsNCArNjAsMzQgQEAgVEVT
VChXS1dlYlZpZXcsIEV2YWx1YXRlSmF2YVNjcmlwdEJsb2NrQwogICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmaXNEb25lKTsKIH0KIAorVEVTVChXS1dlYlZpZXcsIEV2YWx1YXRlSmF2YVNj
cmlwdEVycm9yQ2FzZXMpCit7CisgICAgUmV0YWluUHRyPFdLV2ViVmlldz4gd2ViVmlldyA9IGFk
b3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4
MDAsIDYwMCldKTsKKworICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNp
bXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworCisgICAg
W3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZG9jdW1lbnQuYm9keSIgY29tcGxldGlvbkhh
bmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxM
KHJlc3VsdCk7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShAIldLRXJyb3JEb21haW4iLCBbZXJy
b3IgZG9tYWluXSk7CisgICAgICAgIEVYUEVDVF9FUSg1LCBbZXJyb3IgY29kZV0pOworCisgICAg
ICAgIGlzRG9uZSA9IHRydWU7CisgICAgfV07CisKKyAgICBpc0RvbmUgPSBmYWxzZTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisKKyAgICBbd2ViVmlldyBldmFsdWF0
ZUphdmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZShkb2N1bWVudCwgZG9jdW1l
bnQpIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAg
ICAgICAgRVhQRUNUX05VTEwocmVzdWx0KTsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiV0tF
cnJvckRvbWFpbiIsIFtlcnJvciBkb21haW5dKTsKKyAgICAgICAgRVhQRUNUX0VRKDQsIFtlcnJv
ciBjb2RlXSk7CisKKyAgICAgICAgaXNEb25lID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIGlzRG9u
ZSA9IGZhbHNlOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKK30KKwog
I2VuZGlmCg==
</data>
<flag name="review"
          id="279754"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>