<?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>72801</bug_id>
          
          <creation_ts>2011-11-19 09:44:41 -0800</creation_ts>
          <short_desc>Cannot print USPS shipping labels</short_desc>
          <delta_ts>2011-12-31 12:59:18 -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>PDF</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.usps.com</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mike McNeil">mmcneil</reporter>
          <assigned_to>mitz</assigned_to>
          <cc>ap</cc>
    
    <cc>mitz</cc>
    
    <cc>mmcneil</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>506412</commentid>
    <comment_count>0</comment_count>
      <attachid>115952</attachid>
    <who name="Mike McNeil">mmcneil</who>
    <bug_when>2011-11-19 09:44:41 -0800</bug_when>
    <thetext>Created attachment 115952
Screen shot of URL

The process of printing a label on usps.com results in a label being downloaded in Safari 5.1. Does not currently work in Webkit.

This process used to result in a print dialogue, however that doesn&apos;t happen anymore in either Safari or Webkit.


https://sss-web.usps.com/cns/printPreparation.do</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507320</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-11-21 16:46:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/10463059&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514497</commentid>
    <comment_count>2</comment_count>
    <who name="Mike McNeil">mmcneil</who>
    <bug_when>2011-12-03 07:18:34 -0800</bug_when>
    <thetext>Went through the entire label creation &amp; printing process, address book bug 73657/73183 has been fixed. Still unable to get the label to print.

Anything I can do to assist or provide more information?

Version 5.1.2 (7534.52.7, r101927)

https://sss-web.usps.com/cns/printPreparation.do</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514544</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-12-03 11:04:56 -0800</bug_when>
    <thetext>Thank you. This cause of this problem is well understood, and its importance is also well understood.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527987</commentid>
    <comment_count>4</comment_count>
      <attachid>120760</attachid>
    <who name="">mitz</who>
    <bug_when>2011-12-29 11:25:37 -0800</bug_when>
    <thetext>Created attachment 120760
Make BuiltInPDFView execute JavaScript in PDF documents with a Doc object capable of printing the frame

Together with fixing bug 75232, this patch resolves the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527988</commentid>
    <comment_count>5</comment_count>
      <attachid>120761</attachid>
    <who name="">mitz</who>
    <bug_when>2011-12-29 11:27:47 -0800</bug_when>
    <thetext>Created attachment 120761
Make BuiltInPDFView execute JavaScript in PDF documents with a Doc object capable of printing the frame</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528281</commentid>
    <comment_count>6</comment_count>
      <attachid>120761</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-12-31 11:14:41 -0800</bug_when>
    <thetext>Comment on attachment 120761
Make BuiltInPDFView execute JavaScript in PDF documents with a Doc object capable of printing the frame

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

Looks great.

Does this depend on bug 75232?

&gt; Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.cpp:838
&gt; +    WebPage* page = frame-&gt;page();
&gt; +    if (!page)

We have a check for pageless frame here, but not in BuiltInPDFView::initialize() or BuiltInPDFView::isActive(). Can page actually be null?

&gt; Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.cpp:841
&gt; +    page-&gt;sendSync(Messages::WebPageProxy::PrintFrame(frame-&gt;frameID()), Messages::WebPageProxy::PrintFrame::Reply());

I&apos;d have routed this through WebCore, for instance to make use of PageGroupLoadDeferrer once Chrome::print starts using it.

&gt; Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.h:35
&gt; +typedef const struct OpaqueJSContext* JSContextRef;
&gt; +typedef struct OpaqueJSValue* JSObjectRef;
&gt; +typedef const struct OpaqueJSValue* JSValueRef;

:(

&gt; Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.h:139
&gt; -    virtual void disconnectFromPage() { m_page = 0; }
&gt; +    virtual void disconnectFromPage() { m_frame = 0; }

This is now a little bit surprising.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528282</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-12-31 11:15:15 -0800</bug_when>
    <thetext>&gt; Does this depend on bug 75232?

I now see the answer above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528289</commentid>
    <comment_count>8</comment_count>
      <attachid>120761</attachid>
    <who name="">mitz</who>
    <bug_when>2011-12-31 12:18:08 -0800</bug_when>
    <thetext>Comment on attachment 120761
Make BuiltInPDFView execute JavaScript in PDF documents with a Doc object capable of printing the frame

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

&gt;&gt; Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.cpp:838
&gt;&gt; +    if (!page)
&gt; 
&gt; We have a check for pageless frame here, but not in BuiltInPDFView::initialize() or BuiltInPDFView::isActive(). Can page actually be null?

I’m quite certain it *cannot* be null in initialize(). I’m going to be paranoid and add a null check in isActive() rather than try to reason about lots of code outside this class. In this function, in particular, I don’t want to make any assumptions, in case Doc is ever extended to have something like setTimeout.

&gt;&gt; Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.cpp:841
&gt;&gt; +    page-&gt;sendSync(Messages::WebPageProxy::PrintFrame(frame-&gt;frameID()), Messages::WebPageProxy::PrintFrame::Reply());
&gt; 
&gt; I&apos;d have routed this through WebCore, for instance to make use of PageGroupLoadDeferrer once Chrome::print starts using it.

Good idea. I’ll do that.

&gt;&gt; Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.h:35
&gt;&gt; +typedef const struct OpaqueJSValue* JSValueRef;
&gt; 
&gt; :(

You’ll thank me when JavaScriptCore public headers change and you don’t have to recompile all files that include this header!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528290</commentid>
    <comment_count>9</comment_count>
      <attachid>120831</attachid>
    <who name="">mitz</who>
    <bug_when>2011-12-31 12:23:57 -0800</bug_when>
    <thetext>Created attachment 120831
Make BuiltInPDFView execute JavaScript in PDF documents with a Doc object capable of printing the frame</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528294</commentid>
    <comment_count>10</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-12-31 12:59:18 -0800</bug_when>
    <thetext>Fixed in &lt;http://trac.webkit.org/r103860&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>115952</attachid>
            <date>2011-11-19 09:44:41 -0800</date>
            <delta_ts>2011-11-19 09:44:41 -0800</delta_ts>
            <desc>Screen shot of URL</desc>
            <filename>Screen Shot 2011-11-19 at 9.40.47 AM.pdf</filename>
            <type>application/pdf</type>
            <size>50069</size>
            <attacher name="Mike McNeil">mmcneil</attacher>
            
              <data encoding="base64">JVBERi0xLjMKJcTl8uXrp/Og0MTGCjQgMCBvYmoKPDwgL0xlbmd0aCA1IDAgUiAvRmlsdGVyIC9G
bGF0ZURlY29kZSA+PgpzdHJlYW0KeAErVAhUKFTQD0gtSk4tKClNzFEoygQKmBtZKhgAoamhCZhO
zlXQ98w1VHDJB6oPBACVmA37CmVuZHN0cmVhbQplbmRvYmoKNSAwIG9iago1NAplbmRvYmoKMiAw
IG9iago8PCAvVHlwZSAvUGFnZSAvUGFyZW50IDMgMCBSIC9SZXNvdXJjZXMgNiAwIFIgL0NvbnRl
bnRzIDQgMCBSIC9NZWRpYUJveCBbMCAwIDcyOSA1MTRdCj4+CmVuZG9iago2IDAgb2JqCjw8IC9Q
cm9jU2V0IFsgL1BERiAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSSBdIC9YT2JqZWN0IDw8IC9JbTEg
NyAwIFIgPj4gPj4KZW5kb2JqCjcgMCBvYmoKPDwgL0xlbmd0aCA4IDAgUiAvVHlwZSAvWE9iamVj
dCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDcyOSAvSGVpZ2h0IDUxNCAvQ29sb3JTcGFjZQo5IDAg
UiAvQml0c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Aey9
CVxUV7bvT2fszOnue/99+937+nYGJ5SSeUYl6e77f+8OdnIzOAAKKjglodNDQhInQKDAIWgMOCCi
ookYDU444YAToiWKKIqoJQIyFlAMRVEU5/322cXxUFUQ0bLtuln1OZan9tl77bW/p6j1q7X3OSUI
9CACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABH40RDo
FARs+m6hy9ChaykvV+8/kLsybV10QuwCZdLCpJS5saviFm/+LDb9s7i1nyemL4xfHp/0dYxyxfzE
r75YnPIX5VcfJ6yYsyLjiyXRMV8tmbM0OUr59eeL1n2etPGThPWfL/pmQdLGzxOToxKS5iatXrh0
9dp16fqGBqFN6Ojo6DQYW/XGbbsPxCYlnyg4Z+wWDAaDrluobmxblbE5bvHyW9Wa4mu3vk7bkJic
krIqvUsQDN1CbYP22Mkz86LjzxYWo2Td+m3xictVRZeP5Z+JXbQ0bvGKVeu/W5mxLSZ+WcKilLnR
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
//wLX/mPP/1zP/+zg1/4lV/5r+Effffv//7/Pq2GYeAkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIk
QAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIk
QAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIk
QAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIk
QAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIk
QAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIk
QAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIk
QAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIk
QAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIk
QAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIk
QAIkQAIkQAIkQAIkQAIkQAIkcA8C/x8l3DUBCmVuZHN0cmVhbQplbmRvYmoKOCAwIG9iago0Mjk1
MgplbmRvYmoKMTAgMCBvYmoKPDwgL0xlbmd0aCAxMSAwIFIgL04gMyAvQWx0ZXJuYXRlIC9EZXZp
Y2VSR0IgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB1VhnVFTNlq3bkRybnJqccwbJ
OUnOSM5JaMkKCAhKkiiSBAmSRBAlg2SJigEFBFQQEUREFBEEhbn6zXrv/Zj5N3+m1uqu3VV1z7p9
TlWdvQ8ADFtuISGBCCoAgoLDCBZ6mng7ewc8dhEgAAmgA7JAxs3jXIiGmZkx+F/bj1kA/ZmcEf1j
639d9j9PUHt6nfMAADKDp/09z3kEwbgXxkoeIYQwGB/A+GlkWAiMEeMwxhHgF4Tx0h/s8w/e+YPd
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
b2JqCjExIDAgb2JqCjU2NDkKZW5kb2JqCjkgMCBvYmoKWyAvSUNDQmFzZWQgMTAgMCBSIF0KZW5k
b2JqCjMgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdIC9Db3Vu
dCAxIC9LaWRzIFsgMiAwIFIgXSA+PgplbmRvYmoKMTIgMCBvYmoKPDwgL1R5cGUgL0NhdGFsb2cg
L1BhZ2VzIDMgMCBSID4+CmVuZG9iagoxMyAwIG9iagooTWFjIE9TIFggMTAuNy4yIFF1YXJ0eiBQ
REZDb250ZXh0KQplbmRvYmoKMTQgMCBvYmoKKEQ6MjAxMTExMTkxNzQwNTJaMDAnMDAnKQplbmRv
YmoKMSAwIG9iago8PCAvUHJvZHVjZXIgMTMgMCBSIC9DcmVhdGlvbkRhdGUgMTQgMCBSIC9Nb2RE
YXRlIDE0IDAgUiA+PgplbmRvYmoKeHJlZgowIDE1CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDA0
OTUzNiAwMDAwMCBuIAowMDAwMDAwMTY4IDAwMDAwIG4gCjAwMDAwNDkzMDkgMDAwMDAgbiAKMDAw
MDAwMDAyMiAwMDAwMCBuIAowMDAwMDAwMTUwIDAwMDAwIG4gCjAwMDAwMDAyNzIgMDAwMDAgbiAK
MDAwMDAwMDM2MSAwMDAwMCBuIAowMDAwMDQzNDc5IDAwMDAwIG4gCjAwMDAwNDkyNzMgMDAwMDAg
biAKMDAwMDA0MzUwMCAwMDAwMCBuIAowMDAwMDQ5MjUyIDAwMDAwIG4gCjAwMDAwNDkzOTIgMDAw
MDAgbiAKMDAwMDA0OTQ0MiAwMDAwMCBuIAowMDAwMDQ5NDk0IDAwMDAwIG4gCnRyYWlsZXIKPDwg
L1NpemUgMTUgL1Jvb3QgMTIgMCBSIC9JbmZvIDEgMCBSIC9JRCBbIDw3ZjMzYjc3ZTJjODhjOTE1
ZjkxZWFkNzRhYjVlOWM5YT4KPDdmMzNiNzdlMmM4OGM5MTVmOTFlYWQ3NGFiNWU5YzlhPiBdID4+
CnN0YXJ0eHJlZgo0OTYxMQolJUVPRgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120760</attachid>
            <date>2011-12-29 11:25:37 -0800</date>
            <delta_ts>2011-12-29 11:27:47 -0800</delta_ts>
            <desc>Make BuiltInPDFView execute JavaScript in PDF documents with a Doc object capable of printing the frame</desc>
            <filename>10463059_r2.diff</filename>
            <type>text/plain</type>
            <size>16254</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMzgxMykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDExLTEyLTI5ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwNDYz
MDU5PiBDYW5ub3QgcHJpbnQgVVNQUyBzaGlwcGluZyBsYWJlbHMKKyAgICAgICAgaHR0cDovL3dl
YmtpdC5vcmcvYi83MjgwMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9CdWlsdEluUERGVmlldy5jcHA6Cisg
ICAgICAgIChhcHBlbmRWYWx1ZXNJblBERk5hbWVTdWJ0cmVlVG9WZWN0b3IpOiBDb3BpZWQgZnJv
bSBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGRG9jdW1lbnRFeHRyYXMubW0uCisgICAgICAgIChn
ZXRBbGxWYWx1ZXNJblBERk5hbWVUcmVlKTogRGl0dG8uCisgICAgICAgIChnZXRBbGxTY3JpcHRz
SW5QREZEb2N1bWVudCk6IENvcGllZCBhbGxTY3JpcHRzSW5QREZEb2N1bWVudCgpIGZyb20gV2Vi
UERGRG9jdW1lbnRFeHRyYXMubW0KKyAgICAgICAgYW5kIGNoYW5nZWQgaXQgdG8gYXBwZW5kIHRv
IGEgVmVjdG9yPFJldGFpblB0cjxDRlN0cmluZ1JlZj4gPi4KKyAgICAgICAgKFdlYktpdDo6QnVp
bHRJblBERlZpZXc6OmNyZWF0ZSk6IENoYW5nZWQgdG8gdGFrZSBhIFdlYkZyYW1lKiByYXRoZXIg
dGhhbiBhIFBhZ2UqLgorICAgICAgICAoV2ViS2l0OjpCdWlsdEluUERGVmlldzo6QnVpbHRJblBE
RlZpZXcpOiBEaXR0by4gVXBkYXRlZCBpbml0aWFsaXplZCBhY2NvcmRpbmdseS4KKyAgICAgICAg
KFdlYktpdDo6QnVpbHRJblBERlZpZXc6OnBkZkRvY3VtZW50RGlkTG9hZCk6IENvcGllZCBhbmQg
YWRhcHRlZCBjb2RlIGZyb20KKyAgICAgICAgLVtXZWJQREZSZXByZXNlbnRhdGlvbiBmaW5pc2hl
ZExvYWRpbmdXaXRoRGF0YVNvdXJjZTpdIHRvIHJ1biBzY3JpcHRzIGZyb20gdGhlIFBERiB3aXRo
IGEKKyAgICAgICAgRG9jIG9iamVjdCBhcyB0aGUgdGhpcyBvYmplY3QuCisgICAgICAgIChXZWJL
aXQ6OkJ1aWx0SW5QREZWaWV3Ojppbml0aWFsaXplKTogQWRhcHRlZCBmb3IgdGhlIGNoYW5nZSBm
cm9tIGhhdmluZyBhIFBhZ2UqIHRvIGhhdmluZworICAgICAgICBhIFdlYkZyYW1lKi4KKyAgICAg
ICAgKFdlYktpdDo6QnVpbHRJblBERlZpZXc6OmRlc3Ryb3kpOiBEaXR0by4KKyAgICAgICAgKFdl
YktpdDo6QnVpbHRJblBERlZpZXc6OmlzQWN0aXZlKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6
OmpzUERGRG9jSW5pdGlhbGl6ZSk6IEFkZGVkLiBSZWZzIHRoZSBCdWlsdEluUERGVmlldyB3aGlj
aCBpcyB0aGUgcHJpdmF0ZSBvYmplY3QgZm9yCisgICAgICAgIHRoaXMgRG9jLgorICAgICAgICAo
V2ViS2l0Ojpqc1BERkRvY0ZpbmFsaXplKTogQWRkZWQuIERlcmVmcyB0aGUgQnVpbHRJblBERlZp
ZXcgZm9yIHRoaXMgRG9jLgorICAgICAgICAoV2ViS2l0OjpCdWlsdEluUERGVmlldzo6anNQREZE
b2NQcmludCk6IEFkZGVkLiBTZW5kcyBhIFByaW50RnJhbWUgbWVzc2FnZSB0byB0aGUKKyAgICAg
ICAgV2ViUGFnZVByb3h5LgorICAgICAgICAoV2ViS2l0OjpCdWlsdEluUERGVmlldzo6bWFrZUpT
UERGRG9jKTogQ29waWVkIGZyb20gV2ViS2l0L21hYy9XZWJWaWV3L1dlYkpTUERGRG9jLm1tIGFu
ZAorICAgICAgICBtb2RpZmllZCB0byB1c2UgdGhpcyBCdWlsdEluUERGVmlldyBhcyB0aGUgcHJp
dmF0ZSBvYmplY3Qgb2YgdGhlIERvYyBiZWluZyBtYWRlLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvQnVpbHRJblBERlZpZXcuaDoKKyAgICAgICAgKFdlYktpdDo6QnVpbHRJblBE
RlZpZXc6OmRpc2Nvbm5lY3RGcm9tUGFnZSk6IEFkYXB0ZWQgZm9yIHRoZSBjaGFuZ2UgZnJvbSBo
YXZpbmcgYSBQYWdlKiB0bworICAgICAgICBoYXZpbmcgYSBXZWJGcmFtZSouCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQbHVnaW4pOiBQYXNzIHRo
ZSBXZWJGcmFtZSB0byBXZWJQYWdlOjpjcmVhdGVQbHVnaW4oKS4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNyZWF0
ZVBsdWdpbik6IEFkZGVkIGEgV2ViRnJhbWUqIHBhcmFtZXRlciwgd2hpY2ggaXMgdXNlZCB3aGVu
IGNyZWF0aW5nCisgICAgICAgIGEgQnVpbHRJblBERlZpZXcuCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaDoKKwogMjAxMS0xMi0yOSAgQ2FpbyBNYXJjZWxvIGRlIE9saXZl
aXJhIEZpbGhvICA8Y2Fpby5vbGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFtRdF0g
UmVtb3ZlIHVudXNlZCBtX3NpZ25hbExpc3RlbmVycyBmcm9tIFdvcmtRdWV1ZQpJbmRleDogU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9CdWlsdEluUERGVmlldy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9CdWlsdElu
UERGVmlldy5jcHAJKHJldmlzaW9uIDEwMzgwNikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QREYvQnVpbHRJblBERlZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCw2ICsz
MCwxMiBAQAogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2luY2x1ZGUgIldlYkV2ZW50
LmgiCiAjaW5jbHVkZSAiV2ViRXZlbnRDb252ZXJzaW9uLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5o
IgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSlNDb250ZXh0UmVmLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNPYmplY3RS
ZWYuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1N0cmluZ1JlZi5oPgorI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0pTU3RyaW5nUmVmQ0YuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0FyY2hp
dmVSZXNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0ZvY3VzQ29udHJvbGxlci5oPgpAQCAtNDcsNiArNTMsOTkgQEAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAorc3RhdGljIHZvaWQg
YXBwZW5kVmFsdWVzSW5QREZOYW1lU3VidHJlZVRvVmVjdG9yKENHUERGRGljdGlvbmFyeVJlZiBz
dWJ0cmVlLCBWZWN0b3I8Q0dQREZPYmplY3RSZWY+JiB2YWx1ZXMpCit7CisgICAgQ0dQREZBcnJh
eVJlZiBuYW1lczsKKyAgICBpZiAoQ0dQREZEaWN0aW9uYXJ5R2V0QXJyYXkoc3VidHJlZSwgIk5h
bWVzIiwgJm5hbWVzKSkgeworICAgICAgICBzaXplX3QgbmFtZUNvdW50ID0gQ0dQREZBcnJheUdl
dENvdW50KG5hbWVzKSAvIDI7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbmFtZUNv
dW50OyArK2kpIHsKKyAgICAgICAgICAgIENHUERGT2JqZWN0UmVmIG9iamVjdDsKKyAgICAgICAg
ICAgIENHUERGQXJyYXlHZXRPYmplY3QobmFtZXMsIDIgKiBpICsgMSwgJm9iamVjdCk7CisgICAg
ICAgICAgICB2YWx1ZXMuYXBwZW5kKG9iamVjdCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIENHUERGQXJyYXlSZWYga2lkczsKKyAgICBpZiAoIUNHUERGRGljdGlv
bmFyeUdldEFycmF5KHN1YnRyZWUsICJLaWRzIiwgJmtpZHMpKQorICAgICAgICByZXR1cm47CisK
KyAgICBzaXplX3Qga2lkQ291bnQgPSBDR1BERkFycmF5R2V0Q291bnQoa2lkcyk7CisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBraWRDb3VudDsgKytpKSB7CisgICAgICAgIENHUERGRGljdGlv
bmFyeVJlZiBraWQ7CisgICAgICAgIGlmICghQ0dQREZBcnJheUdldERpY3Rpb25hcnkoa2lkcywg
aSwgJmtpZCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYXBwZW5kVmFsdWVzSW5Q
REZOYW1lU3VidHJlZVRvVmVjdG9yKGtpZCwgdmFsdWVzKTsKKyAgICB9Cit9CisKK3N0YXRpYyB2
b2lkIGdldEFsbFZhbHVlc0luUERGTmFtZVRyZWUoQ0dQREZEaWN0aW9uYXJ5UmVmIHRyZWUsIFZl
Y3RvcjxDR1BERk9iamVjdFJlZj4mIGFsbFZhbHVlcykKK3sKKyAgICBhcHBlbmRWYWx1ZXNJblBE
Rk5hbWVTdWJ0cmVlVG9WZWN0b3IodHJlZSwgYWxsVmFsdWVzKTsKK30KKworc3RhdGljIHZvaWQg
Z2V0QWxsU2NyaXB0c0luUERGRG9jdW1lbnQoQ0dQREZEb2N1bWVudFJlZiBwZGZEb2N1bWVudCwg
VmVjdG9yPFJldGFpblB0cjxDRlN0cmluZ1JlZj4gPiYgc2NyaXB0cykKK3sKKyAgICBpZiAoIXBk
ZkRvY3VtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBDR1BERkRpY3Rpb25hcnlSZWYgcGRm
Q2F0YWxvZyA9IENHUERGRG9jdW1lbnRHZXRDYXRhbG9nKHBkZkRvY3VtZW50KTsKKyAgICBpZiAo
IXBkZkNhdGFsb2cpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEdldCB0aGUgZGljdGlvbmFy
eSBvZiBhbGwgZG9jdW1lbnQtbGV2ZWwgbmFtZSB0cmVlcy4KKyAgICBDR1BERkRpY3Rpb25hcnlS
ZWYgbmFtZXNEaWN0aW9uYXJ5OworICAgIGlmICghQ0dQREZEaWN0aW9uYXJ5R2V0RGljdGlvbmFy
eShwZGZDYXRhbG9nLCAiTmFtZXMiLCAmbmFtZXNEaWN0aW9uYXJ5KSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgLy8gR2V0IHRoZSBkb2N1bWVudC1sZXZlbCAiSmF2YVNjcmlwdCIgbmFtZSB0cmVl
LgorICAgIENHUERGRGljdGlvbmFyeVJlZiBqYXZhU2NyaXB0TmFtZVRyZWU7CisgICAgaWYgKCFD
R1BERkRpY3Rpb25hcnlHZXREaWN0aW9uYXJ5KG5hbWVzRGljdGlvbmFyeSwgIkphdmFTY3JpcHQi
LCAmamF2YVNjcmlwdE5hbWVUcmVlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gVGhlIG5h
bWVzIGFyZSBhcmJpdHJhcnkuIFdlIGFyZSBvbmx5IGludGVyZXN0ZWQgaW4gdGhlIHZhbHVlcy4K
KyAgICBWZWN0b3I8Q0dQREZPYmplY3RSZWY+IG9iamVjdHM7CisgICAgZ2V0QWxsVmFsdWVzSW5Q
REZOYW1lVHJlZShqYXZhU2NyaXB0TmFtZVRyZWUsIG9iamVjdHMpOworICAgIHNpemVfdCBvYmpl
Y3RDb3VudCA9IG9iamVjdHMuc2l6ZSgpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBv
YmplY3RDb3VudDsgKytpKSB7CisgICAgICAgIENHUERGRGljdGlvbmFyeVJlZiBqYXZhU2NyaXB0
QWN0aW9uOworICAgICAgICBpZiAoIUNHUERGT2JqZWN0R2V0VmFsdWUocmVpbnRlcnByZXRfY2Fz
dDxDR1BERk9iamVjdFJlZj4ob2JqZWN0c1tpXSksIGtDR1BERk9iamVjdFR5cGVEaWN0aW9uYXJ5
LCAmamF2YVNjcmlwdEFjdGlvbikpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAv
LyBBIEphdmFTY3JpcHQgYWN0aW9uIG11c3QgaGF2ZSBhbiBhY3Rpb24gdHlwZSBvZiAiSmF2YVNj
cmlwdCIuCisgICAgICAgIGNvbnN0IGNoYXIqIGFjdGlvblR5cGU7CisgICAgICAgIGlmICghQ0dQ
REZEaWN0aW9uYXJ5R2V0TmFtZShqYXZhU2NyaXB0QWN0aW9uLCAiUyIsICZhY3Rpb25UeXBlKSB8
fCBzdHJjbXAoYWN0aW9uVHlwZSwgIkphdmFTY3JpcHQiKSkKKyAgICAgICAgICAgIGNvbnRpbnVl
OworCisgICAgICAgIGNvbnN0IFVJbnQ4KiBieXRlcyA9IDA7CisgICAgICAgIENGSW5kZXggbGVu
Z3RoOworICAgICAgICBDR1BERlN0cmVhbVJlZiBzdHJlYW07CisgICAgICAgIENHUERGU3RyaW5n
UmVmIHN0cmluZzsKKyAgICAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4gZGF0YTsKKyAgICAgICAg
aWYgKENHUERGRGljdGlvbmFyeUdldFN0cmVhbShqYXZhU2NyaXB0QWN0aW9uLCAiSlMiLCAmc3Ry
ZWFtKSkgeworICAgICAgICAgICAgQ0dQREZEYXRhRm9ybWF0IGZvcm1hdDsKKyAgICAgICAgICAg
IGRhdGEuYWRvcHRDRihDR1BERlN0cmVhbUNvcHlEYXRhKHN0cmVhbSwgJmZvcm1hdCkpOworICAg
ICAgICAgICAgaWYgKCFkYXRhKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgYnl0ZXMgPSBDRkRhdGFHZXRCeXRlUHRyKGRhdGEuZ2V0KCkpOworICAgICAgICAgICAgbGVu
Z3RoID0gQ0ZEYXRhR2V0TGVuZ3RoKGRhdGEuZ2V0KCkpOworICAgICAgICB9IGVsc2UgaWYgKENH
UERGRGljdGlvbmFyeUdldFN0cmluZyhqYXZhU2NyaXB0QWN0aW9uLCAiSlMiLCAmc3RyaW5nKSkg
eworICAgICAgICAgICAgYnl0ZXMgPSBDR1BERlN0cmluZ0dldEJ5dGVQdHIoc3RyaW5nKTsKKyAg
ICAgICAgICAgIGxlbmd0aCA9IENHUERGU3RyaW5nR2V0TGVuZ3RoKHN0cmluZyk7CisgICAgICAg
IH0KKyAgICAgICAgaWYgKCFieXRlcykKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAg
IENGU3RyaW5nRW5jb2RpbmcgZW5jb2RpbmcgPSAobGVuZ3RoID4gMSAmJiBieXRlc1swXSA9PSAw
eEZFICYmIGJ5dGVzWzFdID09IDB4RkYpID8ga0NGU3RyaW5nRW5jb2RpbmdVbmljb2RlIDoga0NG
U3RyaW5nRW5jb2RpbmdVVEY4OworICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHNjcmlw
dChBZG9wdENGLCBDRlN0cmluZ0NyZWF0ZVdpdGhCeXRlcyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBi
eXRlcywgbGVuZ3RoLCBlbmNvZGluZywgdHJ1ZSkpOworICAgICAgICBpZiAoIXNjcmlwdCkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIHNjcmlwdHMuYXBwZW5kKHNjcmlwdCk7Cisg
ICAgfQorfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY29uc3QgdWludDY0X3QgcGRmRG9jdW1l
bnRSZXF1ZXN0SUQgPSAxOyAvLyBQbHVnaW5Db250cm9sbGVyIHN1cHBvcnRzIGxvYWRpbmcgbXVs
dGlwbGUgc3RyZWFtcywgYnV0IHdlIG9ubHkgbmVlZCBvbmUgZm9yIFBERi4KQEAgLTU2LDEzICsx
NTUsMTMgQEAgY29uc3QgaW50IHNoYWRvd09mZnNldFggPSAwOwogY29uc3QgaW50IHNoYWRvd09m
ZnNldFkgPSAtMjsKIGNvbnN0IGludCBzaGFkb3dTaXplID0gNzsKIAotUGFzc1JlZlB0cjxCdWls
dEluUERGVmlldz4gQnVpbHRJblBERlZpZXc6OmNyZWF0ZShQYWdlKiBwYWdlKQorUGFzc1JlZlB0
cjxCdWlsdEluUERGVmlldz4gQnVpbHRJblBERlZpZXc6OmNyZWF0ZShXZWJGcmFtZSogZnJhbWUp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBCdWlsdEluUERGVmlldyhwYWdlKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBCdWlsdEluUERGVmlldyhmcmFtZSkpOwogfQogCi1CdWlsdElu
UERGVmlldzo6QnVpbHRJblBERlZpZXcoUGFnZSogcGFnZSkKLSAgICA6IG1fcGFnZShwYWdlKQor
QnVpbHRJblBERlZpZXc6OkJ1aWx0SW5QREZWaWV3KFdlYkZyYW1lKiBmcmFtZSkKKyAgICA6IG1f
ZnJhbWUoZnJhbWUpCiB7CiB9CiAKQEAgLTIxMSw2ICszMTAsMjQgQEAgdm9pZCBCdWlsdEluUERG
Vmlldzo6cGRmRG9jdW1lbnREaWRMb2FkKAogICAgIHVwZGF0ZVNjcm9sbGJhcnMoKTsKIAogICAg
IGNvbnRyb2xsZXIoKS0+aW52YWxpZGF0ZShJbnRSZWN0KDAsIDAsIG1fcGx1Z2luU2l6ZS53aWR0
aCgpLCBtX3BsdWdpblNpemUuaGVpZ2h0KCkpKTsKKworICAgIFZlY3RvcjxSZXRhaW5QdHI8Q0ZT
dHJpbmdSZWY+ID4gc2NyaXB0czsKKyAgICBnZXRBbGxTY3JpcHRzSW5QREZEb2N1bWVudChtX3Bk
ZkRvY3VtZW50LmdldCgpLCBzY3JpcHRzKTsKKworICAgIHNpemVfdCBzY3JpcHRDb3VudCA9IHNj
cmlwdHMuc2l6ZSgpOworICAgIGlmICghc2NyaXB0Q291bnQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIEpTR2xvYmFsQ29udGV4dFJlZiBjdHggPSBKU0dsb2JhbENvbnRleHRDcmVhdGUoMCk7Cisg
ICAgSlNPYmplY3RSZWYganNQREZEb2MgPSBtYWtlSlNQREZEb2MoY3R4KTsKKworICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgc2NyaXB0Q291bnQ7ICsraSkgeworICAgICAgICBKU1N0cmluZ1Jl
ZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZyhzY3JpcHRzW2ldLmdldCgpKTsK
KyAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjdHgsIHNjcmlwdCwganNQREZEb2MsIDAsIDAsIDAp
OworICAgICAgICBKU1N0cmluZ1JlbGVhc2Uoc2NyaXB0KTsKKyAgICB9CisKKyAgICBKU0dsb2Jh
bENvbnRleHRSZWxlYXNlKGN0eCk7CiB9CiAKIHZvaWQgQnVpbHRJblBERlZpZXc6OmNhbGN1bGF0
ZVNpemVzKCkKQEAgLTIzMiw3ICszNDksNyBAQCB2b2lkIEJ1aWx0SW5QREZWaWV3OjpjYWxjdWxh
dGVTaXplcygpCiAKIGJvb2wgQnVpbHRJblBERlZpZXc6OmluaXRpYWxpemUoY29uc3QgUGFyYW1l
dGVycyYgcGFyYW1ldGVycykKIHsKLSAgICBtX3BhZ2UtPmFkZFNjcm9sbGFibGVBcmVhKHRoaXMp
OworICAgIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5wYWdlKCktPmFkZFNjcm9sbGFibGVBcmVhKHRo
aXMpOwogCiAgICAgLy8gTG9hZCB0aGUgc3JjIFVSTCBpZiBuZWVkZWQuCiAgICAgbV9zb3VyY2VV
UkwgPSBwYXJhbWV0ZXJzLnVybDsKQEAgLTI0NCw4ICszNjEsMTAgQEAgYm9vbCBCdWlsdEluUERG
Vmlldzo6aW5pdGlhbGl6ZShjb25zdCBQYQogCiB2b2lkIEJ1aWx0SW5QREZWaWV3OjpkZXN0cm95
KCkKIHsKLSAgICBpZiAobV9wYWdlKQotICAgICAgICBtX3BhZ2UtPnJlbW92ZVNjcm9sbGFibGVB
cmVhKHRoaXMpOworICAgIGlmIChtX2ZyYW1lKSB7CisgICAgICAgIGlmIChQYWdlKiBwYWdlID0g
bV9mcmFtZS0+Y29yZUZyYW1lKCktPnBhZ2UoKSkKKyAgICAgICAgICAgIHBhZ2UtPnJlbW92ZVNj
cm9sbGFibGVBcmVhKHRoaXMpOworICAgIH0KIAogICAgIGRlc3Ryb3lTY3JvbGxiYXIoSG9yaXpv
bnRhbFNjcm9sbGJhcik7CiAgICAgZGVzdHJveVNjcm9sbGJhcihWZXJ0aWNhbFNjcm9sbGJhcik7
CkBAIC02MDEsNyArNzIwLDcgQEAgaW50IEJ1aWx0SW5QREZWaWV3OjpzY3JvbGxTaXplKFNjcm9s
bGJhcgogCiBib29sIEJ1aWx0SW5QREZWaWV3Ojppc0FjdGl2ZSgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmlzQWN0aXZlKCk7CisgICAgcmV0dXJuIG1f
ZnJhbWUtPmNvcmVGcmFtZSgpLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLT5pc0FjdGl2ZSgp
OwogfQogCiB2b2lkIEJ1aWx0SW5QREZWaWV3OjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3Jv
bGxiYXIqIHNjcm9sbGJhciwgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCkKQEAgLTY5NSw0ICs4MTQs
NTUgQEAgSW50UG9pbnQgQnVpbHRJblBERlZpZXc6OmNvbnZlcnRGcm9tQ29udAogICAgIHJldHVy
biBwb2ludDsKIH0KIAorc3RhdGljIHZvaWQganNQREZEb2NJbml0aWFsaXplKEpTQ29udGV4dFJl
ZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCkKK3sKKyAgICBCdWlsdEluUERGVmlldyogcGRmVmll
dyA9IHN0YXRpY19jYXN0PEJ1aWx0SW5QREZWaWV3Kj4oSlNPYmplY3RHZXRQcml2YXRlKG9iamVj
dCkpOworICAgIHBkZlZpZXctPnJlZigpOworfQorCitzdGF0aWMgdm9pZCBqc1BERkRvY0ZpbmFs
aXplKEpTT2JqZWN0UmVmIG9iamVjdCkKK3sKKyAgICBCdWlsdEluUERGVmlldyogcGRmVmlldyA9
IHN0YXRpY19jYXN0PEJ1aWx0SW5QREZWaWV3Kj4oSlNPYmplY3RHZXRQcml2YXRlKG9iamVjdCkp
OworICAgIHBkZlZpZXctPmRlcmVmKCk7Cit9CisKK0pTVmFsdWVSZWYgQnVpbHRJblBERlZpZXc6
OmpzUERGRG9jUHJpbnQoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpT
T2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVl
UmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgQnVpbHRJblBE
RlZpZXcqIHBkZlZpZXcgPSBzdGF0aWNfY2FzdDxCdWlsdEluUERGVmlldyo+KEpTT2JqZWN0R2V0
UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisKKyAgICBXZWJGcmFtZSogZnJhbWUgPSBwZGZWaWV3LT5t
X2ZyYW1lOworICAgIGlmICghZnJhbWUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVm
aW5lZChjdHgpOworCisgICAgV2ViUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCk7CisgICAgaWYg
KCFwYWdlKQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY3R4KTsKKworICAg
IHBhZ2UtPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlByaW50RnJhbWUoZnJhbWUt
PmZyYW1lSUQoKSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlByaW50RnJhbWU6OlJlcGx5KCkp
OworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGN0eCk7Cit9CisKK0pTT2JqZWN0
UmVmIEJ1aWx0SW5QREZWaWV3OjptYWtlSlNQREZEb2MoSlNDb250ZXh0UmVmIGN0eCkKK3sKKyAg
ICBzdGF0aWMgSlNTdGF0aWNGdW5jdGlvbiBqc1BERkRvY1N0YXRpY0Z1bmN0aW9uc1tdID0gewor
ICAgICAgICB7ICJwcmludCIsIGpzUERGRG9jUHJpbnQsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAwLCAw
LCAwIH0sCisgICAgfTsKKworICAgIHN0YXRpYyBKU0NsYXNzRGVmaW5pdGlvbiBqc1BERkRvY0Ns
YXNzRGVmaW5pdGlvbiA9IHsKKyAgICAgICAgMCwKKyAgICAgICAga0pTQ2xhc3NBdHRyaWJ1dGVO
b25lLAorICAgICAgICAiRG9jIiwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAganNQ
REZEb2NTdGF0aWNGdW5jdGlvbnMsCisgICAgICAgIGpzUERGRG9jSW5pdGlhbGl6ZSwganNQREZE
b2NGaW5hbGl6ZSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMAorICAgIH07CisKKyAgICBzdGF0
aWMgSlNDbGFzc1JlZiBqc1BERkRvY0NsYXNzID0gSlNDbGFzc0NyZWF0ZSgmanNQREZEb2NDbGFz
c0RlZmluaXRpb24pOworCisgICAgcmV0dXJuIEpTT2JqZWN0TWFrZShjdHgsIGpzUERGRG9jQ2xh
c3MsIHRoaXMpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvQnVpbHRJblBERlZpZXcuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0J1aWx0SW5QREZWaWV3LmgJ
KHJldmlzaW9uIDEwMzgwNikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvQnVpbHRJblBERlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsMjQgKzMwLDI4IEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxhYmxlQXJlYS5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5Q
dHIuaD4KIAordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlSlNDb250ZXh0KiBKU0NvbnRleHRS
ZWY7Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVKU1ZhbHVlKiBKU09iamVjdFJlZjsKK3R5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZUpTVmFsdWUqIEpTVmFsdWVSZWY7CisKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKLSAgICBjbGFzcyBQYWdlOwogICAgIHN0cnVjdCBQbHVnaW5JbmZvOwogfQogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgUGx1Z2luVmlldzsKK2NsYXNzIFdlYkZyYW1lOwogCiBj
bGFzcyBCdWlsdEluUERGVmlldyA6IHB1YmxpYyBQbHVnaW4sIHByaXZhdGUgV2ViQ29yZTo6U2Ny
b2xsYWJsZUFyZWEgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJ1aWx0SW5QREZW
aWV3PiBjcmVhdGUoV2ViQ29yZTo6UGFnZSopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJ1aWx0
SW5QREZWaWV3PiBjcmVhdGUoV2ViRnJhbWUqKTsKICAgICB+QnVpbHRJblBERlZpZXcoKTsKIAog
ICAgIHN0YXRpYyBXZWJDb3JlOjpQbHVnaW5JbmZvIHBsdWdpbkluZm8oKTsKIAogcHJpdmF0ZToK
LSAgICBleHBsaWNpdCBCdWlsdEluUERGVmlldyhXZWJDb3JlOjpQYWdlKik7CisgICAgZXhwbGlj
aXQgQnVpbHRJblBERlZpZXcoV2ViRnJhbWUqKTsKIAogICAgIC8vIFJlZ3VsYXIgcGx1Zy1pbnMg
ZG9uJ3QgbmVlZCBhY2Nlc3MgdG8gdmlldywgYnV0IHdlIGFkZCBzY3JvbGxiYXJzIHRvIGVtYmVk
ZGluZyBGcmFtZVZpZXcgZm9yIHByb3BlciBldmVudCBoYW5kbGluZy4KICAgICBQbHVnaW5WaWV3
KiBwbHVnaW5WaWV3KCk7CkBAIC0xMzIsNyArMTM2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IFdlYkNvcmU6OlNjcm9sbGJhciogaG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0ICB7IHJldHVy
biBtX2hvcml6b250YWxTY3JvbGxiYXIuZ2V0KCk7IH0KICAgICB2aXJ0dWFsIFdlYkNvcmU6OlNj
cm9sbGJhciogdmVydGljYWxTY3JvbGxiYXIoKSBjb25zdCB7IHJldHVybiBtX3ZlcnRpY2FsU2Ny
b2xsYmFyLmdldCgpOyB9CiAgICAgdmlydHVhbCBib29sIGlzT25BY3RpdmVQYWdlKCkgY29uc3Q7
Ci0gICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RGcm9tUGFnZSgpIHsgbV9wYWdlID0gMDsgfQor
ICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0RnJvbVBhZ2UoKSB7IG1fZnJhbWUgPSAwOyB9CiAg
ICAgdmlydHVhbCBib29sIHNob3VsZFN1c3BlbmRTY3JvbGxBbmltYXRpb25zKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0gLy8gSWYgd2UgcmV0dXJuIHRydWUsIFNjcm9sbEFuaW1hdG9yTWFjIHdp
bGwga2VlcCBjeWNsaW5nIGEgdGltZXIgZm9yZXZlciwgd2FpdGluZyBmb3IgYSBnb29kIHRpbWUg
dG8gYW5pbWF0ZS4KICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFyU3R5bGVDaGFuZ2VkKGludCBu
ZXdTdHlsZSwgYm9vbCBmb3JjZVVwZGF0ZSk7CiAgICAgdmlydHVhbCB2b2lkIHpvb21BbmltYXRv
clRyYW5zZm9ybUNoYW5nZWQoZmxvYXQsIGZsb2F0LCBmbG9hdCwgWm9vbUFuaW1hdGlvblN0YXRl
KSB7IH0KQEAgLTE0MCw2ICsxNDQsOSBAQCBwcml2YXRlOgogICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgdGhlIG90aGVyIGNvbnZlcnNpb24gZnVuY3Rpb25zOyB0aGlzIG9uZSBpcyBlbm91Z2ggdG8g
Z2V0IHNjcm9sbGJhciBoaXQgdGVzdGluZyB3b3JraW5nLgogICAgIHZpcnR1YWwgV2ViQ29yZTo6
SW50UG9pbnQgY29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFdlYkNv
cmU6OlNjcm9sbGJhciosIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwYXJlbnRQb2ludCkgY29u
c3Q7CiAKKyAgICBKU09iamVjdFJlZiBtYWtlSlNQREZEb2MoSlNDb250ZXh0UmVmKTsKKyAgICBz
dGF0aWMgSlNWYWx1ZVJlZiBqc1BERkRvY1ByaW50KEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYg
ZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBj
b25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOworCiAg
ICAgV2ViQ29yZTo6SW50U2l6ZSBtX3BsdWdpblNpemU7CiAKICAgICBXZWJDb3JlOjpLVVJMIG1f
c291cmNlVVJMOwpAQCAtMTU0LDcgKzE2MSw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYkNv
cmU6OlNjcm9sbGJhcj4gbV9ob3Jpem9udGFsU2Nyb2xsYmFyOwogICAgIFJlZlB0cjxXZWJDb3Jl
OjpTY3JvbGxiYXI+IG1fdmVydGljYWxTY3JvbGxiYXI7CiAKLSAgICBXZWJDb3JlOjpQYWdlKiBt
X3BhZ2U7IC8vIE5lZWRlZCB0byByZWdpc3RlciBhbmQgdW5yZWdpc3RlciBTY3JvbGxhYmxlQXJl
YS4KKyAgICBXZWJGcmFtZSogbV9mcmFtZTsKIAogICAgIFdlYkNvcmU6OkludFNpemUgbV9zY3Jv
bGxPZmZzZXQ7CiB9OwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAJKHJl
dmlzaW9uIDEwMzgwNikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjc0LDcgKzEy
NzQsNyBAQCBQYXNzUmVmUHRyPFdpZGdldD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6CiAgICAgfQog
I2VuZGlmCiAKLSAgICBSZWZQdHI8UGx1Z2luPiBwbHVnaW4gPSB3ZWJQYWdlLT5jcmVhdGVQbHVn
aW4ocGFyYW1ldGVycyk7CisgICAgUmVmUHRyPFBsdWdpbj4gcGx1Z2luID0gd2ViUGFnZS0+Y3Jl
YXRlUGx1Z2luKG1fZnJhbWUsIHBhcmFtZXRlcnMpOwogICAgIGlmICghcGx1Z2luKQogICAgICAg
ICByZXR1cm4gMDsKICAgICAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDEwMzgwNikKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQzLDcgKzM0
Myw3IEBAIHZvaWQgV2ViUGFnZTo6aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlRnUKIH0KICNlbmRp
ZgogCi1QYXNzUmVmUHRyPFBsdWdpbj4gV2ViUGFnZTo6Y3JlYXRlUGx1Z2luKGNvbnN0IFBsdWdp
bjo6UGFyYW1ldGVycyYgcGFyYW1ldGVycykKK1Bhc3NSZWZQdHI8UGx1Z2luPiBXZWJQYWdlOjpj
cmVhdGVQbHVnaW4oV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBQbHVnaW46OlBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpCiB7CiAgICAgU3RyaW5nIHBsdWdpblBhdGg7CiAKQEAgLTM1Nyw3ICszNTcsOSBA
QCBQYXNzUmVmUHRyPFBsdWdpbj4gV2ViUGFnZTo6Y3JlYXRlUGx1Z2luCiAjaWYgUExBVEZPUk0o
TUFDKQogICAgICAgICBpZiAocGFyYW1ldGVycy5taW1lVHlwZSA9PSAiYXBwbGljYXRpb24vcGRm
IgogICAgICAgICAgICAgfHwgKHBhcmFtZXRlcnMubWltZVR5cGUuaXNFbXB0eSgpICYmIHBhcmFt
ZXRlcnMudXJsLnBhdGgoKS5sb3dlcigpLmVuZHNXaXRoKCIucGRmIikpKQotICAgICAgICAgICAg
cmV0dXJuIEJ1aWx0SW5QREZWaWV3OjpjcmVhdGUobV9wYWdlLmdldCgpKTsKKyAgICAgICAgICAg
IHJldHVybiBCdWlsdEluUERGVmlldzo6Y3JlYXRlKGZyYW1lKTsKKyNlbHNlCisgICAgICAgIFVO
VVNFRF9QQVJBTShmcmFtZSk7CiAjZW5kaWYKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCShyZXZpc2lv
biAxMDM4MDYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMzcsNyArMjM3LDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6
OkZyYW1lKiBtYWluRnJhbWUoKSBjb25zdDsgLy8gTWF5IHJldHVybiAwLgogICAgIFdlYkNvcmU6
OkZyYW1lVmlldyogbWFpbkZyYW1lVmlldygpIGNvbnN0OyAvLyBNYXkgcmV0dXJuIDAuCiAKLSAg
ICBQYXNzUmVmUHRyPFBsdWdpbj4gY3JlYXRlUGx1Z2luKGNvbnN0IFBsdWdpbjo6UGFyYW1ldGVy
cyYpOworICAgIFBhc3NSZWZQdHI8UGx1Z2luPiBjcmVhdGVQbHVnaW4oV2ViRnJhbWUqLCBjb25z
dCBQbHVnaW46OlBhcmFtZXRlcnMmKTsKIAogICAgIEVkaXRvclN0YXRlIGVkaXRvclN0YXRlKCkg
Y29uc3Q7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120761</attachid>
            <date>2011-12-29 11:27:47 -0800</date>
            <delta_ts>2011-12-31 12:23:50 -0800</delta_ts>
            <desc>Make BuiltInPDFView execute JavaScript in PDF documents with a Doc object capable of printing the frame</desc>
            <filename>10463059_r2.diff</filename>
            <type>text/plain</type>
            <size>16254</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMzgxMykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDExLTEyLTI5ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwNDYz
MDU5PiBDYW5ub3QgcHJpbnQgVVNQUyBzaGlwcGluZyBsYWJlbHMKKyAgICAgICAgaHR0cDovL3dl
YmtpdC5vcmcvYi83MjgwMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9CdWlsdEluUERGVmlldy5jcHA6Cisg
ICAgICAgIChhcHBlbmRWYWx1ZXNJblBERk5hbWVTdWJ0cmVlVG9WZWN0b3IpOiBDb3BpZWQgZnJv
bSBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGRG9jdW1lbnRFeHRyYXMubW0uCisgICAgICAgIChn
ZXRBbGxWYWx1ZXNJblBERk5hbWVUcmVlKTogRGl0dG8uCisgICAgICAgIChnZXRBbGxTY3JpcHRz
SW5QREZEb2N1bWVudCk6IENvcGllZCBhbGxTY3JpcHRzSW5QREZEb2N1bWVudCgpIGZyb20gV2Vi
UERGRG9jdW1lbnRFeHRyYXMubW0KKyAgICAgICAgYW5kIGNoYW5nZWQgaXQgdG8gYXBwZW5kIHRv
IGEgVmVjdG9yPFJldGFpblB0cjxDRlN0cmluZ1JlZj4gPi4KKyAgICAgICAgKFdlYktpdDo6QnVp
bHRJblBERlZpZXc6OmNyZWF0ZSk6IENoYW5nZWQgdG8gdGFrZSBhIFdlYkZyYW1lKiByYXRoZXIg
dGhhbiBhIFBhZ2UqLgorICAgICAgICAoV2ViS2l0OjpCdWlsdEluUERGVmlldzo6QnVpbHRJblBE
RlZpZXcpOiBEaXR0by4gVXBkYXRlZCBpbml0aWFsaXplciBhY2NvcmRpbmdseS4KKyAgICAgICAg
KFdlYktpdDo6QnVpbHRJblBERlZpZXc6OnBkZkRvY3VtZW50RGlkTG9hZCk6IENvcGllZCBhbmQg
YWRhcHRlZCBjb2RlIGZyb20KKyAgICAgICAgLVtXZWJQREZSZXByZXNlbnRhdGlvbiBmaW5pc2hl
ZExvYWRpbmdXaXRoRGF0YVNvdXJjZTpdIHRvIHJ1biBzY3JpcHRzIGZyb20gdGhlIFBERiB3aXRo
IGEKKyAgICAgICAgRG9jIG9iamVjdCBhcyB0aGUgdGhpcyBvYmplY3QuCisgICAgICAgIChXZWJL
aXQ6OkJ1aWx0SW5QREZWaWV3Ojppbml0aWFsaXplKTogQWRhcHRlZCBmb3IgdGhlIGNoYW5nZSBm
cm9tIGhhdmluZyBhIFBhZ2UqIHRvIGhhdmluZworICAgICAgICBhIFdlYkZyYW1lKi4KKyAgICAg
ICAgKFdlYktpdDo6QnVpbHRJblBERlZpZXc6OmRlc3Ryb3kpOiBEaXR0by4KKyAgICAgICAgKFdl
YktpdDo6QnVpbHRJblBERlZpZXc6OmlzQWN0aXZlKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6
OmpzUERGRG9jSW5pdGlhbGl6ZSk6IEFkZGVkLiBSZWZzIHRoZSBCdWlsdEluUERGVmlldyB3aGlj
aCBpcyB0aGUgcHJpdmF0ZSBvYmplY3QgZm9yCisgICAgICAgIHRoaXMgRG9jLgorICAgICAgICAo
V2ViS2l0Ojpqc1BERkRvY0ZpbmFsaXplKTogQWRkZWQuIERlcmVmcyB0aGUgQnVpbHRJblBERlZp
ZXcgZm9yIHRoaXMgRG9jLgorICAgICAgICAoV2ViS2l0OjpCdWlsdEluUERGVmlldzo6anNQREZE
b2NQcmludCk6IEFkZGVkLiBTZW5kcyBhIFByaW50RnJhbWUgbWVzc2FnZSB0byB0aGUKKyAgICAg
ICAgV2ViUGFnZVByb3h5LgorICAgICAgICAoV2ViS2l0OjpCdWlsdEluUERGVmlldzo6bWFrZUpT
UERGRG9jKTogQ29waWVkIGZyb20gV2ViS2l0L21hYy9XZWJWaWV3L1dlYkpTUERGRG9jLm1tIGFu
ZAorICAgICAgICBtb2RpZmllZCB0byB1c2UgdGhpcyBCdWlsdEluUERGVmlldyBhcyB0aGUgcHJp
dmF0ZSBvYmplY3Qgb2YgdGhlIERvYyBiZWluZyBtYWRlLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvQnVpbHRJblBERlZpZXcuaDoKKyAgICAgICAgKFdlYktpdDo6QnVpbHRJblBE
RlZpZXc6OmRpc2Nvbm5lY3RGcm9tUGFnZSk6IEFkYXB0ZWQgZm9yIHRoZSBjaGFuZ2UgZnJvbSBo
YXZpbmcgYSBQYWdlKiB0bworICAgICAgICBoYXZpbmcgYSBXZWJGcmFtZSouCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQbHVnaW4pOiBQYXNzIHRo
ZSBXZWJGcmFtZSB0byBXZWJQYWdlOjpjcmVhdGVQbHVnaW4oKS4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNyZWF0
ZVBsdWdpbik6IEFkZGVkIGEgV2ViRnJhbWUqIHBhcmFtZXRlciwgd2hpY2ggaXMgdXNlZCB3aGVu
IGNyZWF0aW5nCisgICAgICAgIGEgQnVpbHRJblBERlZpZXcuCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaDoKKwogMjAxMS0xMi0yOSAgQ2FpbyBNYXJjZWxvIGRlIE9saXZl
aXJhIEZpbGhvICA8Y2Fpby5vbGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFtRdF0g
UmVtb3ZlIHVudXNlZCBtX3NpZ25hbExpc3RlbmVycyBmcm9tIFdvcmtRdWV1ZQpJbmRleDogU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9CdWlsdEluUERGVmlldy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9CdWlsdElu
UERGVmlldy5jcHAJKHJldmlzaW9uIDEwMzgwNikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QREYvQnVpbHRJblBERlZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCw2ICsz
MCwxMiBAQAogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2luY2x1ZGUgIldlYkV2ZW50
LmgiCiAjaW5jbHVkZSAiV2ViRXZlbnRDb252ZXJzaW9uLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5o
IgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSlNDb250ZXh0UmVmLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNPYmplY3RS
ZWYuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1N0cmluZ1JlZi5oPgorI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0pTU3RyaW5nUmVmQ0YuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0FyY2hp
dmVSZXNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0ZvY3VzQ29udHJvbGxlci5oPgpAQCAtNDcsNiArNTMsOTkgQEAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAorc3RhdGljIHZvaWQg
YXBwZW5kVmFsdWVzSW5QREZOYW1lU3VidHJlZVRvVmVjdG9yKENHUERGRGljdGlvbmFyeVJlZiBz
dWJ0cmVlLCBWZWN0b3I8Q0dQREZPYmplY3RSZWY+JiB2YWx1ZXMpCit7CisgICAgQ0dQREZBcnJh
eVJlZiBuYW1lczsKKyAgICBpZiAoQ0dQREZEaWN0aW9uYXJ5R2V0QXJyYXkoc3VidHJlZSwgIk5h
bWVzIiwgJm5hbWVzKSkgeworICAgICAgICBzaXplX3QgbmFtZUNvdW50ID0gQ0dQREZBcnJheUdl
dENvdW50KG5hbWVzKSAvIDI7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbmFtZUNv
dW50OyArK2kpIHsKKyAgICAgICAgICAgIENHUERGT2JqZWN0UmVmIG9iamVjdDsKKyAgICAgICAg
ICAgIENHUERGQXJyYXlHZXRPYmplY3QobmFtZXMsIDIgKiBpICsgMSwgJm9iamVjdCk7CisgICAg
ICAgICAgICB2YWx1ZXMuYXBwZW5kKG9iamVjdCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIENHUERGQXJyYXlSZWYga2lkczsKKyAgICBpZiAoIUNHUERGRGljdGlv
bmFyeUdldEFycmF5KHN1YnRyZWUsICJLaWRzIiwgJmtpZHMpKQorICAgICAgICByZXR1cm47CisK
KyAgICBzaXplX3Qga2lkQ291bnQgPSBDR1BERkFycmF5R2V0Q291bnQoa2lkcyk7CisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBraWRDb3VudDsgKytpKSB7CisgICAgICAgIENHUERGRGljdGlv
bmFyeVJlZiBraWQ7CisgICAgICAgIGlmICghQ0dQREZBcnJheUdldERpY3Rpb25hcnkoa2lkcywg
aSwgJmtpZCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYXBwZW5kVmFsdWVzSW5Q
REZOYW1lU3VidHJlZVRvVmVjdG9yKGtpZCwgdmFsdWVzKTsKKyAgICB9Cit9CisKK3N0YXRpYyB2
b2lkIGdldEFsbFZhbHVlc0luUERGTmFtZVRyZWUoQ0dQREZEaWN0aW9uYXJ5UmVmIHRyZWUsIFZl
Y3RvcjxDR1BERk9iamVjdFJlZj4mIGFsbFZhbHVlcykKK3sKKyAgICBhcHBlbmRWYWx1ZXNJblBE
Rk5hbWVTdWJ0cmVlVG9WZWN0b3IodHJlZSwgYWxsVmFsdWVzKTsKK30KKworc3RhdGljIHZvaWQg
Z2V0QWxsU2NyaXB0c0luUERGRG9jdW1lbnQoQ0dQREZEb2N1bWVudFJlZiBwZGZEb2N1bWVudCwg
VmVjdG9yPFJldGFpblB0cjxDRlN0cmluZ1JlZj4gPiYgc2NyaXB0cykKK3sKKyAgICBpZiAoIXBk
ZkRvY3VtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBDR1BERkRpY3Rpb25hcnlSZWYgcGRm
Q2F0YWxvZyA9IENHUERGRG9jdW1lbnRHZXRDYXRhbG9nKHBkZkRvY3VtZW50KTsKKyAgICBpZiAo
IXBkZkNhdGFsb2cpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEdldCB0aGUgZGljdGlvbmFy
eSBvZiBhbGwgZG9jdW1lbnQtbGV2ZWwgbmFtZSB0cmVlcy4KKyAgICBDR1BERkRpY3Rpb25hcnlS
ZWYgbmFtZXNEaWN0aW9uYXJ5OworICAgIGlmICghQ0dQREZEaWN0aW9uYXJ5R2V0RGljdGlvbmFy
eShwZGZDYXRhbG9nLCAiTmFtZXMiLCAmbmFtZXNEaWN0aW9uYXJ5KSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgLy8gR2V0IHRoZSBkb2N1bWVudC1sZXZlbCAiSmF2YVNjcmlwdCIgbmFtZSB0cmVl
LgorICAgIENHUERGRGljdGlvbmFyeVJlZiBqYXZhU2NyaXB0TmFtZVRyZWU7CisgICAgaWYgKCFD
R1BERkRpY3Rpb25hcnlHZXREaWN0aW9uYXJ5KG5hbWVzRGljdGlvbmFyeSwgIkphdmFTY3JpcHQi
LCAmamF2YVNjcmlwdE5hbWVUcmVlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gVGhlIG5h
bWVzIGFyZSBhcmJpdHJhcnkuIFdlIGFyZSBvbmx5IGludGVyZXN0ZWQgaW4gdGhlIHZhbHVlcy4K
KyAgICBWZWN0b3I8Q0dQREZPYmplY3RSZWY+IG9iamVjdHM7CisgICAgZ2V0QWxsVmFsdWVzSW5Q
REZOYW1lVHJlZShqYXZhU2NyaXB0TmFtZVRyZWUsIG9iamVjdHMpOworICAgIHNpemVfdCBvYmpl
Y3RDb3VudCA9IG9iamVjdHMuc2l6ZSgpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBv
YmplY3RDb3VudDsgKytpKSB7CisgICAgICAgIENHUERGRGljdGlvbmFyeVJlZiBqYXZhU2NyaXB0
QWN0aW9uOworICAgICAgICBpZiAoIUNHUERGT2JqZWN0R2V0VmFsdWUocmVpbnRlcnByZXRfY2Fz
dDxDR1BERk9iamVjdFJlZj4ob2JqZWN0c1tpXSksIGtDR1BERk9iamVjdFR5cGVEaWN0aW9uYXJ5
LCAmamF2YVNjcmlwdEFjdGlvbikpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAv
LyBBIEphdmFTY3JpcHQgYWN0aW9uIG11c3QgaGF2ZSBhbiBhY3Rpb24gdHlwZSBvZiAiSmF2YVNj
cmlwdCIuCisgICAgICAgIGNvbnN0IGNoYXIqIGFjdGlvblR5cGU7CisgICAgICAgIGlmICghQ0dQ
REZEaWN0aW9uYXJ5R2V0TmFtZShqYXZhU2NyaXB0QWN0aW9uLCAiUyIsICZhY3Rpb25UeXBlKSB8
fCBzdHJjbXAoYWN0aW9uVHlwZSwgIkphdmFTY3JpcHQiKSkKKyAgICAgICAgICAgIGNvbnRpbnVl
OworCisgICAgICAgIGNvbnN0IFVJbnQ4KiBieXRlcyA9IDA7CisgICAgICAgIENGSW5kZXggbGVu
Z3RoOworICAgICAgICBDR1BERlN0cmVhbVJlZiBzdHJlYW07CisgICAgICAgIENHUERGU3RyaW5n
UmVmIHN0cmluZzsKKyAgICAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4gZGF0YTsKKyAgICAgICAg
aWYgKENHUERGRGljdGlvbmFyeUdldFN0cmVhbShqYXZhU2NyaXB0QWN0aW9uLCAiSlMiLCAmc3Ry
ZWFtKSkgeworICAgICAgICAgICAgQ0dQREZEYXRhRm9ybWF0IGZvcm1hdDsKKyAgICAgICAgICAg
IGRhdGEuYWRvcHRDRihDR1BERlN0cmVhbUNvcHlEYXRhKHN0cmVhbSwgJmZvcm1hdCkpOworICAg
ICAgICAgICAgaWYgKCFkYXRhKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgYnl0ZXMgPSBDRkRhdGFHZXRCeXRlUHRyKGRhdGEuZ2V0KCkpOworICAgICAgICAgICAgbGVu
Z3RoID0gQ0ZEYXRhR2V0TGVuZ3RoKGRhdGEuZ2V0KCkpOworICAgICAgICB9IGVsc2UgaWYgKENH
UERGRGljdGlvbmFyeUdldFN0cmluZyhqYXZhU2NyaXB0QWN0aW9uLCAiSlMiLCAmc3RyaW5nKSkg
eworICAgICAgICAgICAgYnl0ZXMgPSBDR1BERlN0cmluZ0dldEJ5dGVQdHIoc3RyaW5nKTsKKyAg
ICAgICAgICAgIGxlbmd0aCA9IENHUERGU3RyaW5nR2V0TGVuZ3RoKHN0cmluZyk7CisgICAgICAg
IH0KKyAgICAgICAgaWYgKCFieXRlcykKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAg
IENGU3RyaW5nRW5jb2RpbmcgZW5jb2RpbmcgPSAobGVuZ3RoID4gMSAmJiBieXRlc1swXSA9PSAw
eEZFICYmIGJ5dGVzWzFdID09IDB4RkYpID8ga0NGU3RyaW5nRW5jb2RpbmdVbmljb2RlIDoga0NG
U3RyaW5nRW5jb2RpbmdVVEY4OworICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHNjcmlw
dChBZG9wdENGLCBDRlN0cmluZ0NyZWF0ZVdpdGhCeXRlcyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBi
eXRlcywgbGVuZ3RoLCBlbmNvZGluZywgdHJ1ZSkpOworICAgICAgICBpZiAoIXNjcmlwdCkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIHNjcmlwdHMuYXBwZW5kKHNjcmlwdCk7Cisg
ICAgfQorfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY29uc3QgdWludDY0X3QgcGRmRG9jdW1l
bnRSZXF1ZXN0SUQgPSAxOyAvLyBQbHVnaW5Db250cm9sbGVyIHN1cHBvcnRzIGxvYWRpbmcgbXVs
dGlwbGUgc3RyZWFtcywgYnV0IHdlIG9ubHkgbmVlZCBvbmUgZm9yIFBERi4KQEAgLTU2LDEzICsx
NTUsMTMgQEAgY29uc3QgaW50IHNoYWRvd09mZnNldFggPSAwOwogY29uc3QgaW50IHNoYWRvd09m
ZnNldFkgPSAtMjsKIGNvbnN0IGludCBzaGFkb3dTaXplID0gNzsKIAotUGFzc1JlZlB0cjxCdWls
dEluUERGVmlldz4gQnVpbHRJblBERlZpZXc6OmNyZWF0ZShQYWdlKiBwYWdlKQorUGFzc1JlZlB0
cjxCdWlsdEluUERGVmlldz4gQnVpbHRJblBERlZpZXc6OmNyZWF0ZShXZWJGcmFtZSogZnJhbWUp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBCdWlsdEluUERGVmlldyhwYWdlKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBCdWlsdEluUERGVmlldyhmcmFtZSkpOwogfQogCi1CdWlsdElu
UERGVmlldzo6QnVpbHRJblBERlZpZXcoUGFnZSogcGFnZSkKLSAgICA6IG1fcGFnZShwYWdlKQor
QnVpbHRJblBERlZpZXc6OkJ1aWx0SW5QREZWaWV3KFdlYkZyYW1lKiBmcmFtZSkKKyAgICA6IG1f
ZnJhbWUoZnJhbWUpCiB7CiB9CiAKQEAgLTIxMSw2ICszMTAsMjQgQEAgdm9pZCBCdWlsdEluUERG
Vmlldzo6cGRmRG9jdW1lbnREaWRMb2FkKAogICAgIHVwZGF0ZVNjcm9sbGJhcnMoKTsKIAogICAg
IGNvbnRyb2xsZXIoKS0+aW52YWxpZGF0ZShJbnRSZWN0KDAsIDAsIG1fcGx1Z2luU2l6ZS53aWR0
aCgpLCBtX3BsdWdpblNpemUuaGVpZ2h0KCkpKTsKKworICAgIFZlY3RvcjxSZXRhaW5QdHI8Q0ZT
dHJpbmdSZWY+ID4gc2NyaXB0czsKKyAgICBnZXRBbGxTY3JpcHRzSW5QREZEb2N1bWVudChtX3Bk
ZkRvY3VtZW50LmdldCgpLCBzY3JpcHRzKTsKKworICAgIHNpemVfdCBzY3JpcHRDb3VudCA9IHNj
cmlwdHMuc2l6ZSgpOworICAgIGlmICghc2NyaXB0Q291bnQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIEpTR2xvYmFsQ29udGV4dFJlZiBjdHggPSBKU0dsb2JhbENvbnRleHRDcmVhdGUoMCk7Cisg
ICAgSlNPYmplY3RSZWYganNQREZEb2MgPSBtYWtlSlNQREZEb2MoY3R4KTsKKworICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgc2NyaXB0Q291bnQ7ICsraSkgeworICAgICAgICBKU1N0cmluZ1Jl
ZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZyhzY3JpcHRzW2ldLmdldCgpKTsK
KyAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjdHgsIHNjcmlwdCwganNQREZEb2MsIDAsIDAsIDAp
OworICAgICAgICBKU1N0cmluZ1JlbGVhc2Uoc2NyaXB0KTsKKyAgICB9CisKKyAgICBKU0dsb2Jh
bENvbnRleHRSZWxlYXNlKGN0eCk7CiB9CiAKIHZvaWQgQnVpbHRJblBERlZpZXc6OmNhbGN1bGF0
ZVNpemVzKCkKQEAgLTIzMiw3ICszNDksNyBAQCB2b2lkIEJ1aWx0SW5QREZWaWV3OjpjYWxjdWxh
dGVTaXplcygpCiAKIGJvb2wgQnVpbHRJblBERlZpZXc6OmluaXRpYWxpemUoY29uc3QgUGFyYW1l
dGVycyYgcGFyYW1ldGVycykKIHsKLSAgICBtX3BhZ2UtPmFkZFNjcm9sbGFibGVBcmVhKHRoaXMp
OworICAgIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5wYWdlKCktPmFkZFNjcm9sbGFibGVBcmVhKHRo
aXMpOwogCiAgICAgLy8gTG9hZCB0aGUgc3JjIFVSTCBpZiBuZWVkZWQuCiAgICAgbV9zb3VyY2VV
UkwgPSBwYXJhbWV0ZXJzLnVybDsKQEAgLTI0NCw4ICszNjEsMTAgQEAgYm9vbCBCdWlsdEluUERG
Vmlldzo6aW5pdGlhbGl6ZShjb25zdCBQYQogCiB2b2lkIEJ1aWx0SW5QREZWaWV3OjpkZXN0cm95
KCkKIHsKLSAgICBpZiAobV9wYWdlKQotICAgICAgICBtX3BhZ2UtPnJlbW92ZVNjcm9sbGFibGVB
cmVhKHRoaXMpOworICAgIGlmIChtX2ZyYW1lKSB7CisgICAgICAgIGlmIChQYWdlKiBwYWdlID0g
bV9mcmFtZS0+Y29yZUZyYW1lKCktPnBhZ2UoKSkKKyAgICAgICAgICAgIHBhZ2UtPnJlbW92ZVNj
cm9sbGFibGVBcmVhKHRoaXMpOworICAgIH0KIAogICAgIGRlc3Ryb3lTY3JvbGxiYXIoSG9yaXpv
bnRhbFNjcm9sbGJhcik7CiAgICAgZGVzdHJveVNjcm9sbGJhcihWZXJ0aWNhbFNjcm9sbGJhcik7
CkBAIC02MDEsNyArNzIwLDcgQEAgaW50IEJ1aWx0SW5QREZWaWV3OjpzY3JvbGxTaXplKFNjcm9s
bGJhcgogCiBib29sIEJ1aWx0SW5QREZWaWV3Ojppc0FjdGl2ZSgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmlzQWN0aXZlKCk7CisgICAgcmV0dXJuIG1f
ZnJhbWUtPmNvcmVGcmFtZSgpLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLT5pc0FjdGl2ZSgp
OwogfQogCiB2b2lkIEJ1aWx0SW5QREZWaWV3OjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3Jv
bGxiYXIqIHNjcm9sbGJhciwgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCkKQEAgLTY5NSw0ICs4MTQs
NTUgQEAgSW50UG9pbnQgQnVpbHRJblBERlZpZXc6OmNvbnZlcnRGcm9tQ29udAogICAgIHJldHVy
biBwb2ludDsKIH0KIAorc3RhdGljIHZvaWQganNQREZEb2NJbml0aWFsaXplKEpTQ29udGV4dFJl
ZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCkKK3sKKyAgICBCdWlsdEluUERGVmlldyogcGRmVmll
dyA9IHN0YXRpY19jYXN0PEJ1aWx0SW5QREZWaWV3Kj4oSlNPYmplY3RHZXRQcml2YXRlKG9iamVj
dCkpOworICAgIHBkZlZpZXctPnJlZigpOworfQorCitzdGF0aWMgdm9pZCBqc1BERkRvY0ZpbmFs
aXplKEpTT2JqZWN0UmVmIG9iamVjdCkKK3sKKyAgICBCdWlsdEluUERGVmlldyogcGRmVmlldyA9
IHN0YXRpY19jYXN0PEJ1aWx0SW5QREZWaWV3Kj4oSlNPYmplY3RHZXRQcml2YXRlKG9iamVjdCkp
OworICAgIHBkZlZpZXctPmRlcmVmKCk7Cit9CisKK0pTVmFsdWVSZWYgQnVpbHRJblBERlZpZXc6
OmpzUERGRG9jUHJpbnQoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpT
T2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVl
UmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgQnVpbHRJblBE
RlZpZXcqIHBkZlZpZXcgPSBzdGF0aWNfY2FzdDxCdWlsdEluUERGVmlldyo+KEpTT2JqZWN0R2V0
UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisKKyAgICBXZWJGcmFtZSogZnJhbWUgPSBwZGZWaWV3LT5t
X2ZyYW1lOworICAgIGlmICghZnJhbWUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVm
aW5lZChjdHgpOworCisgICAgV2ViUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCk7CisgICAgaWYg
KCFwYWdlKQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY3R4KTsKKworICAg
IHBhZ2UtPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlByaW50RnJhbWUoZnJhbWUt
PmZyYW1lSUQoKSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlByaW50RnJhbWU6OlJlcGx5KCkp
OworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGN0eCk7Cit9CisKK0pTT2JqZWN0
UmVmIEJ1aWx0SW5QREZWaWV3OjptYWtlSlNQREZEb2MoSlNDb250ZXh0UmVmIGN0eCkKK3sKKyAg
ICBzdGF0aWMgSlNTdGF0aWNGdW5jdGlvbiBqc1BERkRvY1N0YXRpY0Z1bmN0aW9uc1tdID0gewor
ICAgICAgICB7ICJwcmludCIsIGpzUERGRG9jUHJpbnQsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAwLCAw
LCAwIH0sCisgICAgfTsKKworICAgIHN0YXRpYyBKU0NsYXNzRGVmaW5pdGlvbiBqc1BERkRvY0Ns
YXNzRGVmaW5pdGlvbiA9IHsKKyAgICAgICAgMCwKKyAgICAgICAga0pTQ2xhc3NBdHRyaWJ1dGVO
b25lLAorICAgICAgICAiRG9jIiwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAganNQ
REZEb2NTdGF0aWNGdW5jdGlvbnMsCisgICAgICAgIGpzUERGRG9jSW5pdGlhbGl6ZSwganNQREZE
b2NGaW5hbGl6ZSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMAorICAgIH07CisKKyAgICBzdGF0
aWMgSlNDbGFzc1JlZiBqc1BERkRvY0NsYXNzID0gSlNDbGFzc0NyZWF0ZSgmanNQREZEb2NDbGFz
c0RlZmluaXRpb24pOworCisgICAgcmV0dXJuIEpTT2JqZWN0TWFrZShjdHgsIGpzUERGRG9jQ2xh
c3MsIHRoaXMpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvQnVpbHRJblBERlZpZXcuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0J1aWx0SW5QREZWaWV3LmgJ
KHJldmlzaW9uIDEwMzgwNikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvQnVpbHRJblBERlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsMjQgKzMwLDI4IEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxhYmxlQXJlYS5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5Q
dHIuaD4KIAordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlSlNDb250ZXh0KiBKU0NvbnRleHRS
ZWY7Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVKU1ZhbHVlKiBKU09iamVjdFJlZjsKK3R5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZUpTVmFsdWUqIEpTVmFsdWVSZWY7CisKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKLSAgICBjbGFzcyBQYWdlOwogICAgIHN0cnVjdCBQbHVnaW5JbmZvOwogfQogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgUGx1Z2luVmlldzsKK2NsYXNzIFdlYkZyYW1lOwogCiBj
bGFzcyBCdWlsdEluUERGVmlldyA6IHB1YmxpYyBQbHVnaW4sIHByaXZhdGUgV2ViQ29yZTo6U2Ny
b2xsYWJsZUFyZWEgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJ1aWx0SW5QREZW
aWV3PiBjcmVhdGUoV2ViQ29yZTo6UGFnZSopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJ1aWx0
SW5QREZWaWV3PiBjcmVhdGUoV2ViRnJhbWUqKTsKICAgICB+QnVpbHRJblBERlZpZXcoKTsKIAog
ICAgIHN0YXRpYyBXZWJDb3JlOjpQbHVnaW5JbmZvIHBsdWdpbkluZm8oKTsKIAogcHJpdmF0ZToK
LSAgICBleHBsaWNpdCBCdWlsdEluUERGVmlldyhXZWJDb3JlOjpQYWdlKik7CisgICAgZXhwbGlj
aXQgQnVpbHRJblBERlZpZXcoV2ViRnJhbWUqKTsKIAogICAgIC8vIFJlZ3VsYXIgcGx1Zy1pbnMg
ZG9uJ3QgbmVlZCBhY2Nlc3MgdG8gdmlldywgYnV0IHdlIGFkZCBzY3JvbGxiYXJzIHRvIGVtYmVk
ZGluZyBGcmFtZVZpZXcgZm9yIHByb3BlciBldmVudCBoYW5kbGluZy4KICAgICBQbHVnaW5WaWV3
KiBwbHVnaW5WaWV3KCk7CkBAIC0xMzIsNyArMTM2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IFdlYkNvcmU6OlNjcm9sbGJhciogaG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0ICB7IHJldHVy
biBtX2hvcml6b250YWxTY3JvbGxiYXIuZ2V0KCk7IH0KICAgICB2aXJ0dWFsIFdlYkNvcmU6OlNj
cm9sbGJhciogdmVydGljYWxTY3JvbGxiYXIoKSBjb25zdCB7IHJldHVybiBtX3ZlcnRpY2FsU2Ny
b2xsYmFyLmdldCgpOyB9CiAgICAgdmlydHVhbCBib29sIGlzT25BY3RpdmVQYWdlKCkgY29uc3Q7
Ci0gICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RGcm9tUGFnZSgpIHsgbV9wYWdlID0gMDsgfQor
ICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0RnJvbVBhZ2UoKSB7IG1fZnJhbWUgPSAwOyB9CiAg
ICAgdmlydHVhbCBib29sIHNob3VsZFN1c3BlbmRTY3JvbGxBbmltYXRpb25zKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0gLy8gSWYgd2UgcmV0dXJuIHRydWUsIFNjcm9sbEFuaW1hdG9yTWFjIHdp
bGwga2VlcCBjeWNsaW5nIGEgdGltZXIgZm9yZXZlciwgd2FpdGluZyBmb3IgYSBnb29kIHRpbWUg
dG8gYW5pbWF0ZS4KICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFyU3R5bGVDaGFuZ2VkKGludCBu
ZXdTdHlsZSwgYm9vbCBmb3JjZVVwZGF0ZSk7CiAgICAgdmlydHVhbCB2b2lkIHpvb21BbmltYXRv
clRyYW5zZm9ybUNoYW5nZWQoZmxvYXQsIGZsb2F0LCBmbG9hdCwgWm9vbUFuaW1hdGlvblN0YXRl
KSB7IH0KQEAgLTE0MCw2ICsxNDQsOSBAQCBwcml2YXRlOgogICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgdGhlIG90aGVyIGNvbnZlcnNpb24gZnVuY3Rpb25zOyB0aGlzIG9uZSBpcyBlbm91Z2ggdG8g
Z2V0IHNjcm9sbGJhciBoaXQgdGVzdGluZyB3b3JraW5nLgogICAgIHZpcnR1YWwgV2ViQ29yZTo6
SW50UG9pbnQgY29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFdlYkNv
cmU6OlNjcm9sbGJhciosIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwYXJlbnRQb2ludCkgY29u
c3Q7CiAKKyAgICBKU09iamVjdFJlZiBtYWtlSlNQREZEb2MoSlNDb250ZXh0UmVmKTsKKyAgICBz
dGF0aWMgSlNWYWx1ZVJlZiBqc1BERkRvY1ByaW50KEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYg
ZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBj
b25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOworCiAg
ICAgV2ViQ29yZTo6SW50U2l6ZSBtX3BsdWdpblNpemU7CiAKICAgICBXZWJDb3JlOjpLVVJMIG1f
c291cmNlVVJMOwpAQCAtMTU0LDcgKzE2MSw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYkNv
cmU6OlNjcm9sbGJhcj4gbV9ob3Jpem9udGFsU2Nyb2xsYmFyOwogICAgIFJlZlB0cjxXZWJDb3Jl
OjpTY3JvbGxiYXI+IG1fdmVydGljYWxTY3JvbGxiYXI7CiAKLSAgICBXZWJDb3JlOjpQYWdlKiBt
X3BhZ2U7IC8vIE5lZWRlZCB0byByZWdpc3RlciBhbmQgdW5yZWdpc3RlciBTY3JvbGxhYmxlQXJl
YS4KKyAgICBXZWJGcmFtZSogbV9mcmFtZTsKIAogICAgIFdlYkNvcmU6OkludFNpemUgbV9zY3Jv
bGxPZmZzZXQ7CiB9OwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAJKHJl
dmlzaW9uIDEwMzgwNikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjc0LDcgKzEy
NzQsNyBAQCBQYXNzUmVmUHRyPFdpZGdldD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6CiAgICAgfQog
I2VuZGlmCiAKLSAgICBSZWZQdHI8UGx1Z2luPiBwbHVnaW4gPSB3ZWJQYWdlLT5jcmVhdGVQbHVn
aW4ocGFyYW1ldGVycyk7CisgICAgUmVmUHRyPFBsdWdpbj4gcGx1Z2luID0gd2ViUGFnZS0+Y3Jl
YXRlUGx1Z2luKG1fZnJhbWUsIHBhcmFtZXRlcnMpOwogICAgIGlmICghcGx1Z2luKQogICAgICAg
ICByZXR1cm4gMDsKICAgICAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDEwMzgwNikKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQzLDcgKzM0
Myw3IEBAIHZvaWQgV2ViUGFnZTo6aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlRnUKIH0KICNlbmRp
ZgogCi1QYXNzUmVmUHRyPFBsdWdpbj4gV2ViUGFnZTo6Y3JlYXRlUGx1Z2luKGNvbnN0IFBsdWdp
bjo6UGFyYW1ldGVycyYgcGFyYW1ldGVycykKK1Bhc3NSZWZQdHI8UGx1Z2luPiBXZWJQYWdlOjpj
cmVhdGVQbHVnaW4oV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBQbHVnaW46OlBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpCiB7CiAgICAgU3RyaW5nIHBsdWdpblBhdGg7CiAKQEAgLTM1Nyw3ICszNTcsOSBA
QCBQYXNzUmVmUHRyPFBsdWdpbj4gV2ViUGFnZTo6Y3JlYXRlUGx1Z2luCiAjaWYgUExBVEZPUk0o
TUFDKQogICAgICAgICBpZiAocGFyYW1ldGVycy5taW1lVHlwZSA9PSAiYXBwbGljYXRpb24vcGRm
IgogICAgICAgICAgICAgfHwgKHBhcmFtZXRlcnMubWltZVR5cGUuaXNFbXB0eSgpICYmIHBhcmFt
ZXRlcnMudXJsLnBhdGgoKS5sb3dlcigpLmVuZHNXaXRoKCIucGRmIikpKQotICAgICAgICAgICAg
cmV0dXJuIEJ1aWx0SW5QREZWaWV3OjpjcmVhdGUobV9wYWdlLmdldCgpKTsKKyAgICAgICAgICAg
IHJldHVybiBCdWlsdEluUERGVmlldzo6Y3JlYXRlKGZyYW1lKTsKKyNlbHNlCisgICAgICAgIFVO
VVNFRF9QQVJBTShmcmFtZSk7CiAjZW5kaWYKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCShyZXZpc2lv
biAxMDM4MDYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMzcsNyArMjM3LDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6
OkZyYW1lKiBtYWluRnJhbWUoKSBjb25zdDsgLy8gTWF5IHJldHVybiAwLgogICAgIFdlYkNvcmU6
OkZyYW1lVmlldyogbWFpbkZyYW1lVmlldygpIGNvbnN0OyAvLyBNYXkgcmV0dXJuIDAuCiAKLSAg
ICBQYXNzUmVmUHRyPFBsdWdpbj4gY3JlYXRlUGx1Z2luKGNvbnN0IFBsdWdpbjo6UGFyYW1ldGVy
cyYpOworICAgIFBhc3NSZWZQdHI8UGx1Z2luPiBjcmVhdGVQbHVnaW4oV2ViRnJhbWUqLCBjb25z
dCBQbHVnaW46OlBhcmFtZXRlcnMmKTsKIAogICAgIEVkaXRvclN0YXRlIGVkaXRvclN0YXRlKCkg
Y29uc3Q7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120831</attachid>
            <date>2011-12-31 12:23:57 -0800</date>
            <delta_ts>2011-12-31 12:57:08 -0800</delta_ts>
            <desc>Make BuiltInPDFView execute JavaScript in PDF documents with a Doc object capable of printing the frame</desc>
            <filename>bug-72801-20111231122355.patch</filename>
            <type>text/plain</type>
            <size>17584</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMzg1NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDExLTEyLTMxICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViQ29yZSBjaGFuZ2UgZm9yIDxy
ZGFyOi8vcHJvYmxlbS8xMDQ2MzA1OT4gQ2Fubm90IHByaW50IFVTUFMgc2hpcHBpbmcgbGFiZWxz
CisgICAgICAgIGh0dHA6Ly93ZWJraXQub3JnL2IvNzI4MDEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBFeHBvcnRlZCBD
aHJvbWU6OnByaW50KCkuCisKIDIwMTEtMTItMzAgIEFuZHJlYXMgS2xpbmcgIDxhd2Vzb21la2xp
bmdAYXBwbGUuY29tPgogCiAgICAgICAgIENhY2hlIGFuZCByZXVzZSB0aGUgSFRNTFRhYmxlRWxl
bWVudC5yb3dzIGNvbGxlY3Rpb24uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24g
MTAzODU3KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkK
QEAgLTgxMiw2ICs4MTIsNyBAQCBfX1pON1dlYkNvcmU1UmFuZ2U4c2V0U3RhcnRFTjNXVEYxMFBh
c3NSCiBfX1pON1dlYkNvcmU1UmFuZ2U5dGV4dFJlY3RzRVJOM1dURjZWZWN0b3JJTlNfN0ludFJl
Y3RFTG0wRUVFYlBOUzBfMjBSYW5nZUluRml4ZWRQb3NpdGlvbkUKIF9fWk43V2ViQ29yZTVSYW5n
ZUQxRXYKIF9fWk43V2ViQ29yZTZDaHJvbWUxNnNldFN0YXR1c2JhclRleHRFUE5TXzVGcmFtZUVS
S04zV1RGNlN0cmluZ0UKK19fWk43V2ViQ29yZTZDaHJvbWU1cHJpbnRFUE5TXzVGcmFtZUUKIF9f
Wk43V2ViQ29yZTZDdXJzb3I4ZnJvbVR5cGVFTlMwXzRUeXBlRQogX19aTjdXZWJDb3JlNkN1cnNv
ckMxRVBOU181SW1hZ2VFUktOU184SW50UG9pbnRFCiBfX1pON1dlYkNvcmU2Q3Vyc29yRDFFdgpJ
bmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTAzODU3KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTEtMTItMzEgIERhbiBCZXJu
c3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KKworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTA0NjMw
NTk+IENhbm5vdCBwcmludCBVU1BTIHNoaXBwaW5nIGxhYmVscworICAgICAgICBodHRwOi8vd2Vi
a2l0Lm9yZy9iLzcyODAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL0J1aWx0SW5QREZWaWV3LmNwcDoKKyAg
ICAgICAgKGFwcGVuZFZhbHVlc0luUERGTmFtZVN1YnRyZWVUb1ZlY3Rvcik6IENvcGllZCBmcm9t
IFdlYktpdC9tYWMvV2ViVmlldy9XZWJQREZEb2N1bWVudEV4dHJhcy5tbS4KKyAgICAgICAgKGdl
dEFsbFZhbHVlc0luUERGTmFtZVRyZWUpOiBEaXR0by4KKyAgICAgICAgKGdldEFsbFNjcmlwdHNJ
blBERkRvY3VtZW50KTogQ29waWVkIGFsbFNjcmlwdHNJblBERkRvY3VtZW50KCkgZnJvbSBXZWJQ
REZEb2N1bWVudEV4dHJhcy5tbQorICAgICAgICBhbmQgY2hhbmdlZCBpdCB0byBhcHBlbmQgdG8g
YSBWZWN0b3I8UmV0YWluUHRyPENGU3RyaW5nUmVmPiA+LgorICAgICAgICAoV2ViS2l0OjpCdWls
dEluUERGVmlldzo6Y3JlYXRlKTogQ2hhbmdlZCB0byB0YWtlIGEgV2ViRnJhbWUqIHJhdGhlciB0
aGFuIGEgUGFnZSouCisgICAgICAgIChXZWJLaXQ6OkJ1aWx0SW5QREZWaWV3OjpCdWlsdEluUERG
Vmlldyk6IERpdHRvLiBVcGRhdGVkIGluaXRpYWxpemVyIGFjY29yZGluZ2x5LgorICAgICAgICAo
V2ViS2l0OjpCdWlsdEluUERGVmlldzo6cGRmRG9jdW1lbnREaWRMb2FkKTogQ29waWVkIGFuZCBh
ZGFwdGVkIGNvZGUgZnJvbQorICAgICAgICAtW1dlYlBERlJlcHJlc2VudGF0aW9uIGZpbmlzaGVk
TG9hZGluZ1dpdGhEYXRhU291cmNlOl0gdG8gcnVuIHNjcmlwdHMgZnJvbSB0aGUgUERGIHdpdGgg
YQorICAgICAgICBEb2Mgb2JqZWN0IGFzIHRoZSB0aGlzIG9iamVjdC4KKyAgICAgICAgKFdlYktp
dDo6QnVpbHRJblBERlZpZXc6OmluaXRpYWxpemUpOiBBZGFwdGVkIGZvciB0aGUgY2hhbmdlIGZy
b20gaGF2aW5nIGEgUGFnZSogdG8gaGF2aW5nCisgICAgICAgIGEgV2ViRnJhbWUqLgorICAgICAg
ICAoV2ViS2l0OjpCdWlsdEluUERGVmlldzo6ZGVzdHJveSk6IERpdHRvLgorICAgICAgICAoV2Vi
S2l0OjpCdWlsdEluUERGVmlldzo6aXNBY3RpdmUpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6
anNQREZEb2NJbml0aWFsaXplKTogQWRkZWQuIFJlZnMgdGhlIEJ1aWx0SW5QREZWaWV3IHdoaWNo
IGlzIHRoZSBwcml2YXRlIG9iamVjdCBmb3IKKyAgICAgICAgdGhpcyBEb2MuCisgICAgICAgIChX
ZWJLaXQ6OmpzUERGRG9jRmluYWxpemUpOiBBZGRlZC4gRGVyZWZzIHRoZSBCdWlsdEluUERGVmll
dyBmb3IgdGhpcyBEb2MuCisgICAgICAgIChXZWJLaXQ6OkJ1aWx0SW5QREZWaWV3Ojpqc1BERkRv
Y1ByaW50KTogQWRkZWQuIENhbGxzIFdlYkNvcmU6OkNocm9tZTo6cHJpbnQoKS4KKyAgICAgICAg
KFdlYktpdDo6QnVpbHRJblBERlZpZXc6Om1ha2VKU1BERkRvYyk6IENvcGllZCBmcm9tIFdlYktp
dC9tYWMvV2ViVmlldy9XZWJKU1BERkRvYy5tbSBhbmQKKyAgICAgICAgbW9kaWZpZWQgdG8gdXNl
IHRoaXMgQnVpbHRJblBERlZpZXcgYXMgdGhlIHByaXZhdGUgb2JqZWN0IG9mIHRoZSBEb2MgYmVp
bmcgbWFkZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL0J1aWx0SW5QREZWaWV3
Lmg6CisgICAgICAgIChXZWJLaXQ6OkJ1aWx0SW5QREZWaWV3OjpkaXNjb25uZWN0RnJvbVBhZ2Up
OiBBZGFwdGVkIGZvciB0aGUgY2hhbmdlIGZyb20gaGF2aW5nIGEgUGFnZSogdG8KKyAgICAgICAg
aGF2aW5nIGEgV2ViRnJhbWUqLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRl
ckNsaWVudDo6Y3JlYXRlUGx1Z2luKTogUGFzcyB0aGUgV2ViRnJhbWUgdG8gV2ViUGFnZTo6Y3Jl
YXRlUGx1Z2luKCkuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjcmVhdGVQbHVnaW4pOiBBZGRlZCBhIFdlYkZyYW1l
KiBwYXJhbWV0ZXIsIHdoaWNoIGlzIHVzZWQgd2hlbiBjcmVhdGluZworICAgICAgICBhIEJ1aWx0
SW5QREZWaWV3LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisKIDIw
MTEtMTItMzAgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBFbnZp
cm9ubWVudFV0aWxpdGllczo6c3RyaXBWYWx1ZXNFbmRpbmdXaXRoU3RyaW5nIGZhaWxzIHdoZW4g
dGhlIHZhcmlhYmxlIGVuZHMgd2l0aCB0aGUgc2VhcmNoIHZhbHVlCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0J1aWx0SW5QREZWaWV3LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0J1aWx0SW5QREZWaWV3
LmNwcAkocmV2aXNpb24gMTAzODU3KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9CdWlsdEluUERGVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDcgKzMwLDEyIEBA
CiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNp
bmNsdWRlICJXZWJFdmVudENvbnZlcnNpb24uaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9K
U0NvbnRleHRSZWYuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU09iamVjdFJlZi5oPgor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTU3RyaW5nUmVmLmg+CisjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSlNTdHJpbmdSZWZDRi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXJjaGl2ZVJlc291
cmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DaHJvbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rv
Y3VtZW50TG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb2N1c0NvbnRyb2xsZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CkBAIC00Nyw2ICs1Miw5OSBAQAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCitzdGF0aWMgdm9pZCBhcHBlbmRW
YWx1ZXNJblBERk5hbWVTdWJ0cmVlVG9WZWN0b3IoQ0dQREZEaWN0aW9uYXJ5UmVmIHN1YnRyZWUs
IFZlY3RvcjxDR1BERk9iamVjdFJlZj4mIHZhbHVlcykKK3sKKyAgICBDR1BERkFycmF5UmVmIG5h
bWVzOworICAgIGlmIChDR1BERkRpY3Rpb25hcnlHZXRBcnJheShzdWJ0cmVlLCAiTmFtZXMiLCAm
bmFtZXMpKSB7CisgICAgICAgIHNpemVfdCBuYW1lQ291bnQgPSBDR1BERkFycmF5R2V0Q291bnQo
bmFtZXMpIC8gMjsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuYW1lQ291bnQ7ICsr
aSkgeworICAgICAgICAgICAgQ0dQREZPYmplY3RSZWYgb2JqZWN0OworICAgICAgICAgICAgQ0dQ
REZBcnJheUdldE9iamVjdChuYW1lcywgMiAqIGkgKyAxLCAmb2JqZWN0KTsKKyAgICAgICAgICAg
IHZhbHVlcy5hcHBlbmQob2JqZWN0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgQ0dQREZBcnJheVJlZiBraWRzOworICAgIGlmICghQ0dQREZEaWN0aW9uYXJ5R2V0
QXJyYXkoc3VidHJlZSwgIktpZHMiLCAma2lkcykpCisgICAgICAgIHJldHVybjsKKworICAgIHNp
emVfdCBraWRDb3VudCA9IENHUERGQXJyYXlHZXRDb3VudChraWRzKTsKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGtpZENvdW50OyArK2kpIHsKKyAgICAgICAgQ0dQREZEaWN0aW9uYXJ5UmVm
IGtpZDsKKyAgICAgICAgaWYgKCFDR1BERkFycmF5R2V0RGljdGlvbmFyeShraWRzLCBpLCAma2lk
KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBhcHBlbmRWYWx1ZXNJblBERk5hbWVT
dWJ0cmVlVG9WZWN0b3Ioa2lkLCB2YWx1ZXMpOworICAgIH0KK30KKworc3RhdGljIHZvaWQgZ2V0
QWxsVmFsdWVzSW5QREZOYW1lVHJlZShDR1BERkRpY3Rpb25hcnlSZWYgdHJlZSwgVmVjdG9yPENH
UERGT2JqZWN0UmVmPiYgYWxsVmFsdWVzKQoreworICAgIGFwcGVuZFZhbHVlc0luUERGTmFtZVN1
YnRyZWVUb1ZlY3Rvcih0cmVlLCBhbGxWYWx1ZXMpOworfQorCitzdGF0aWMgdm9pZCBnZXRBbGxT
Y3JpcHRzSW5QREZEb2N1bWVudChDR1BERkRvY3VtZW50UmVmIHBkZkRvY3VtZW50LCBWZWN0b3I8
UmV0YWluUHRyPENGU3RyaW5nUmVmPiA+JiBzY3JpcHRzKQoreworICAgIGlmICghcGRmRG9jdW1l
bnQpCisgICAgICAgIHJldHVybjsKKworICAgIENHUERGRGljdGlvbmFyeVJlZiBwZGZDYXRhbG9n
ID0gQ0dQREZEb2N1bWVudEdldENhdGFsb2cocGRmRG9jdW1lbnQpOworICAgIGlmICghcGRmQ2F0
YWxvZykKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gR2V0IHRoZSBkaWN0aW9uYXJ5IG9mIGFs
bCBkb2N1bWVudC1sZXZlbCBuYW1lIHRyZWVzLgorICAgIENHUERGRGljdGlvbmFyeVJlZiBuYW1l
c0RpY3Rpb25hcnk7CisgICAgaWYgKCFDR1BERkRpY3Rpb25hcnlHZXREaWN0aW9uYXJ5KHBkZkNh
dGFsb2csICJOYW1lcyIsICZuYW1lc0RpY3Rpb25hcnkpKQorICAgICAgICByZXR1cm47CisKKyAg
ICAvLyBHZXQgdGhlIGRvY3VtZW50LWxldmVsICJKYXZhU2NyaXB0IiBuYW1lIHRyZWUuCisgICAg
Q0dQREZEaWN0aW9uYXJ5UmVmIGphdmFTY3JpcHROYW1lVHJlZTsKKyAgICBpZiAoIUNHUERGRGlj
dGlvbmFyeUdldERpY3Rpb25hcnkobmFtZXNEaWN0aW9uYXJ5LCAiSmF2YVNjcmlwdCIsICZqYXZh
U2NyaXB0TmFtZVRyZWUpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBUaGUgbmFtZXMgYXJl
IGFyYml0cmFyeS4gV2UgYXJlIG9ubHkgaW50ZXJlc3RlZCBpbiB0aGUgdmFsdWVzLgorICAgIFZl
Y3RvcjxDR1BERk9iamVjdFJlZj4gb2JqZWN0czsKKyAgICBnZXRBbGxWYWx1ZXNJblBERk5hbWVU
cmVlKGphdmFTY3JpcHROYW1lVHJlZSwgb2JqZWN0cyk7CisgICAgc2l6ZV90IG9iamVjdENvdW50
ID0gb2JqZWN0cy5zaXplKCk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9iamVjdENv
dW50OyArK2kpIHsKKyAgICAgICAgQ0dQREZEaWN0aW9uYXJ5UmVmIGphdmFTY3JpcHRBY3Rpb247
CisgICAgICAgIGlmICghQ0dQREZPYmplY3RHZXRWYWx1ZShyZWludGVycHJldF9jYXN0PENHUERG
T2JqZWN0UmVmPihvYmplY3RzW2ldKSwga0NHUERGT2JqZWN0VHlwZURpY3Rpb25hcnksICZqYXZh
U2NyaXB0QWN0aW9uKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIC8vIEEgSmF2
YVNjcmlwdCBhY3Rpb24gbXVzdCBoYXZlIGFuIGFjdGlvbiB0eXBlIG9mICJKYXZhU2NyaXB0Ii4K
KyAgICAgICAgY29uc3QgY2hhciogYWN0aW9uVHlwZTsKKyAgICAgICAgaWYgKCFDR1BERkRpY3Rp
b25hcnlHZXROYW1lKGphdmFTY3JpcHRBY3Rpb24sICJTIiwgJmFjdGlvblR5cGUpIHx8IHN0cmNt
cChhY3Rpb25UeXBlLCAiSmF2YVNjcmlwdCIpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAg
ICAgICAgY29uc3QgVUludDgqIGJ5dGVzID0gMDsKKyAgICAgICAgQ0ZJbmRleCBsZW5ndGg7Cisg
ICAgICAgIENHUERGU3RyZWFtUmVmIHN0cmVhbTsKKyAgICAgICAgQ0dQREZTdHJpbmdSZWYgc3Ry
aW5nOworICAgICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBkYXRhOworICAgICAgICBpZiAoQ0dQ
REZEaWN0aW9uYXJ5R2V0U3RyZWFtKGphdmFTY3JpcHRBY3Rpb24sICJKUyIsICZzdHJlYW0pKSB7
CisgICAgICAgICAgICBDR1BERkRhdGFGb3JtYXQgZm9ybWF0OworICAgICAgICAgICAgZGF0YS5h
ZG9wdENGKENHUERGU3RyZWFtQ29weURhdGEoc3RyZWFtLCAmZm9ybWF0KSk7CisgICAgICAgICAg
ICBpZiAoIWRhdGEpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBieXRl
cyA9IENGRGF0YUdldEJ5dGVQdHIoZGF0YS5nZXQoKSk7CisgICAgICAgICAgICBsZW5ndGggPSBD
RkRhdGFHZXRMZW5ndGgoZGF0YS5nZXQoKSk7CisgICAgICAgIH0gZWxzZSBpZiAoQ0dQREZEaWN0
aW9uYXJ5R2V0U3RyaW5nKGphdmFTY3JpcHRBY3Rpb24sICJKUyIsICZzdHJpbmcpKSB7CisgICAg
ICAgICAgICBieXRlcyA9IENHUERGU3RyaW5nR2V0Qnl0ZVB0cihzdHJpbmcpOworICAgICAgICAg
ICAgbGVuZ3RoID0gQ0dQREZTdHJpbmdHZXRMZW5ndGgoc3RyaW5nKTsKKyAgICAgICAgfQorICAg
ICAgICBpZiAoIWJ5dGVzKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgQ0ZTdHJp
bmdFbmNvZGluZyBlbmNvZGluZyA9IChsZW5ndGggPiAxICYmIGJ5dGVzWzBdID09IDB4RkUgJiYg
Ynl0ZXNbMV0gPT0gMHhGRikgPyBrQ0ZTdHJpbmdFbmNvZGluZ1VuaWNvZGUgOiBrQ0ZTdHJpbmdF
bmNvZGluZ1VURjg7CisgICAgICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc2NyaXB0KEFkb3B0
Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aEJ5dGVzKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJ5dGVzLCBs
ZW5ndGgsIGVuY29kaW5nLCB0cnVlKSk7CisgICAgICAgIGlmICghc2NyaXB0KQorICAgICAgICAg
ICAgY29udGludWU7CisKKyAgICAgICAgc2NyaXB0cy5hcHBlbmQoc2NyaXB0KTsKKyAgICB9Cit9
CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjb25zdCB1aW50NjRfdCBwZGZEb2N1bWVudFJlcXVl
c3RJRCA9IDE7IC8vIFBsdWdpbkNvbnRyb2xsZXIgc3VwcG9ydHMgbG9hZGluZyBtdWx0aXBsZSBz
dHJlYW1zLCBidXQgd2Ugb25seSBuZWVkIG9uZSBmb3IgUERGLgpAQCAtNTYsMTMgKzE1NCwxMyBA
QCBjb25zdCBpbnQgc2hhZG93T2Zmc2V0WCA9IDA7CiBjb25zdCBpbnQgc2hhZG93T2Zmc2V0WSA9
IC0yOwogY29uc3QgaW50IHNoYWRvd1NpemUgPSA3OwogCi1QYXNzUmVmUHRyPEJ1aWx0SW5QREZW
aWV3PiBCdWlsdEluUERGVmlldzo6Y3JlYXRlKFBhZ2UqIHBhZ2UpCitQYXNzUmVmUHRyPEJ1aWx0
SW5QREZWaWV3PiBCdWlsdEluUERGVmlldzo6Y3JlYXRlKFdlYkZyYW1lKiBmcmFtZSkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEJ1aWx0SW5QREZWaWV3KHBhZ2UpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEJ1aWx0SW5QREZWaWV3KGZyYW1lKSk7CiB9CiAKLUJ1aWx0SW5QREZWaWV3
OjpCdWlsdEluUERGVmlldyhQYWdlKiBwYWdlKQotICAgIDogbV9wYWdlKHBhZ2UpCitCdWlsdElu
UERGVmlldzo6QnVpbHRJblBERlZpZXcoV2ViRnJhbWUqIGZyYW1lKQorICAgIDogbV9mcmFtZShm
cmFtZSkKIHsKIH0KIApAQCAtMjExLDYgKzMwOSwyNCBAQCB2b2lkIEJ1aWx0SW5QREZWaWV3Ojpw
ZGZEb2N1bWVudERpZExvYWQoCiAgICAgdXBkYXRlU2Nyb2xsYmFycygpOwogCiAgICAgY29udHJv
bGxlcigpLT5pbnZhbGlkYXRlKEludFJlY3QoMCwgMCwgbV9wbHVnaW5TaXplLndpZHRoKCksIG1f
cGx1Z2luU2l6ZS5oZWlnaHQoKSkpOworCisgICAgVmVjdG9yPFJldGFpblB0cjxDRlN0cmluZ1Jl
Zj4gPiBzY3JpcHRzOworICAgIGdldEFsbFNjcmlwdHNJblBERkRvY3VtZW50KG1fcGRmRG9jdW1l
bnQuZ2V0KCksIHNjcmlwdHMpOworCisgICAgc2l6ZV90IHNjcmlwdENvdW50ID0gc2NyaXB0cy5z
aXplKCk7CisgICAgaWYgKCFzY3JpcHRDb3VudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgSlNH
bG9iYWxDb250ZXh0UmVmIGN0eCA9IEpTR2xvYmFsQ29udGV4dENyZWF0ZSgwKTsKKyAgICBKU09i
amVjdFJlZiBqc1BERkRvYyA9IG1ha2VKU1BERkRvYyhjdHgpOworCisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBzY3JpcHRDb3VudDsgKytpKSB7CisgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlw
dCA9IEpTU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKHNjcmlwdHNbaV0uZ2V0KCkpOworICAgICAg
ICBKU0V2YWx1YXRlU2NyaXB0KGN0eCwgc2NyaXB0LCBqc1BERkRvYywgMCwgMCwgMCk7CisgICAg
ICAgIEpTU3RyaW5nUmVsZWFzZShzY3JpcHQpOworICAgIH0KKworICAgIEpTR2xvYmFsQ29udGV4
dFJlbGVhc2UoY3R4KTsKIH0KIAogdm9pZCBCdWlsdEluUERGVmlldzo6Y2FsY3VsYXRlU2l6ZXMo
KQpAQCAtMjMyLDcgKzM0OCw3IEBAIHZvaWQgQnVpbHRJblBERlZpZXc6OmNhbGN1bGF0ZVNpemVz
KCkKIAogYm9vbCBCdWlsdEluUERGVmlldzo6aW5pdGlhbGl6ZShjb25zdCBQYXJhbWV0ZXJzJiBw
YXJhbWV0ZXJzKQogewotICAgIG1fcGFnZS0+YWRkU2Nyb2xsYWJsZUFyZWEodGhpcyk7CisgICAg
bV9mcmFtZS0+Y29yZUZyYW1lKCktPnBhZ2UoKS0+YWRkU2Nyb2xsYWJsZUFyZWEodGhpcyk7CiAK
ICAgICAvLyBMb2FkIHRoZSBzcmMgVVJMIGlmIG5lZWRlZC4KICAgICBtX3NvdXJjZVVSTCA9IHBh
cmFtZXRlcnMudXJsOwpAQCAtMjQ0LDggKzM2MCwxMCBAQCBib29sIEJ1aWx0SW5QREZWaWV3Ojpp
bml0aWFsaXplKGNvbnN0IFBhCiAKIHZvaWQgQnVpbHRJblBERlZpZXc6OmRlc3Ryb3koKQogewot
ICAgIGlmIChtX3BhZ2UpCi0gICAgICAgIG1fcGFnZS0+cmVtb3ZlU2Nyb2xsYWJsZUFyZWEodGhp
cyk7CisgICAgaWYgKG1fZnJhbWUpIHsKKyAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1l
LT5jb3JlRnJhbWUoKS0+cGFnZSgpKQorICAgICAgICAgICAgcGFnZS0+cmVtb3ZlU2Nyb2xsYWJs
ZUFyZWEodGhpcyk7CisgICAgfQogCiAgICAgZGVzdHJveVNjcm9sbGJhcihIb3Jpem9udGFsU2Ny
b2xsYmFyKTsKICAgICBkZXN0cm95U2Nyb2xsYmFyKFZlcnRpY2FsU2Nyb2xsYmFyKTsKQEAgLTYw
MSw3ICs3MTksMTIgQEAgaW50IEJ1aWx0SW5QREZWaWV3OjpzY3JvbGxTaXplKFNjcm9sbGJhcgog
CiBib29sIEJ1aWx0SW5QREZWaWV3Ojppc0FjdGl2ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1f
cGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmlzQWN0aXZlKCk7CisgICAgaWYgKEZyYW1lKiBjb3Jl
RnJhbWUgPSBtX2ZyYW1lLT5jb3JlRnJhbWUoKSkgeworICAgICAgICBpZiAoUGFnZSogcGFnZSA9
IGNvcmVGcmFtZS0+cGFnZSgpKQorICAgICAgICAgICAgcmV0dXJuIHBhZ2UtPmZvY3VzQ29udHJv
bGxlcigpLT5pc0FjdGl2ZSgpOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKIH0KIAogdm9p
ZCBCdWlsdEluUERGVmlldzo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyKiBzY3Jv
bGxiYXIsIGNvbnN0IExheW91dFJlY3QmIHJlY3QpCkBAIC02OTUsNCArODE4LDU5IEBAIEludFBv
aW50IEJ1aWx0SW5QREZWaWV3Ojpjb252ZXJ0RnJvbUNvbnQKICAgICByZXR1cm4gcG9pbnQ7CiB9
CiAKK3N0YXRpYyB2b2lkIGpzUERGRG9jSW5pdGlhbGl6ZShKU0NvbnRleHRSZWYgY3R4LCBKU09i
amVjdFJlZiBvYmplY3QpCit7CisgICAgQnVpbHRJblBERlZpZXcqIHBkZlZpZXcgPSBzdGF0aWNf
Y2FzdDxCdWlsdEluUERGVmlldyo+KEpTT2JqZWN0R2V0UHJpdmF0ZShvYmplY3QpKTsKKyAgICBw
ZGZWaWV3LT5yZWYoKTsKK30KKworc3RhdGljIHZvaWQganNQREZEb2NGaW5hbGl6ZShKU09iamVj
dFJlZiBvYmplY3QpCit7CisgICAgQnVpbHRJblBERlZpZXcqIHBkZlZpZXcgPSBzdGF0aWNfY2Fz
dDxCdWlsdEluUERGVmlldyo+KEpTT2JqZWN0R2V0UHJpdmF0ZShvYmplY3QpKTsKKyAgICBwZGZW
aWV3LT5kZXJlZigpOworfQorCitKU1ZhbHVlUmVmIEJ1aWx0SW5QREZWaWV3Ojpqc1BERkRvY1By
aW50KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0
aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVu
dHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIEJ1aWx0SW5QREZWaWV3KiBwZGZW
aWV3ID0gc3RhdGljX2Nhc3Q8QnVpbHRJblBERlZpZXcqPihKU09iamVjdEdldFByaXZhdGUodGhp
c09iamVjdCkpOworCisgICAgV2ViRnJhbWUqIGZyYW1lID0gcGRmVmlldy0+bV9mcmFtZTsKKyAg
ICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY3R4KTsK
KworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBmcmFtZS0+Y29yZUZyYW1lKCk7CisgICAgaWYgKCFj
b3JlRnJhbWUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjdHgpOworCisg
ICAgUGFnZSogcGFnZSA9IGNvcmVGcmFtZS0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAg
ICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGN0eCk7CisKKyAgICBwYWdlLT5jaHJvbWUo
KS0+cHJpbnQoY29yZUZyYW1lKTsKKworICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChj
dHgpOworfQorCitKU09iamVjdFJlZiBCdWlsdEluUERGVmlldzo6bWFrZUpTUERGRG9jKEpTQ29u
dGV4dFJlZiBjdHgpCit7CisgICAgc3RhdGljIEpTU3RhdGljRnVuY3Rpb24ganNQREZEb2NTdGF0
aWNGdW5jdGlvbnNbXSA9IHsKKyAgICAgICAgeyAicHJpbnQiLCBqc1BERkRvY1ByaW50LCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRl
IH0sCisgICAgICAgIHsgMCwgMCwgMCB9LAorICAgIH07CisKKyAgICBzdGF0aWMgSlNDbGFzc0Rl
ZmluaXRpb24ganNQREZEb2NDbGFzc0RlZmluaXRpb24gPSB7CisgICAgICAgIDAsCisgICAgICAg
IGtKU0NsYXNzQXR0cmlidXRlTm9uZSwKKyAgICAgICAgIkRvYyIsCisgICAgICAgIDAsCisgICAg
ICAgIDAsCisgICAgICAgIGpzUERGRG9jU3RhdGljRnVuY3Rpb25zLAorICAgICAgICBqc1BERkRv
Y0luaXRpYWxpemUsIGpzUERGRG9jRmluYWxpemUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAK
KyAgICB9OworCisgICAgc3RhdGljIEpTQ2xhc3NSZWYganNQREZEb2NDbGFzcyA9IEpTQ2xhc3ND
cmVhdGUoJmpzUERGRG9jQ2xhc3NEZWZpbml0aW9uKTsKKworICAgIHJldHVybiBKU09iamVjdE1h
a2UoY3R4LCBqc1BERkRvY0NsYXNzLCB0aGlzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0J1aWx0SW5QREZW
aWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9CdWlsdEluUERGVmlldy5oCShyZXZpc2lvbiAxMDM4NTcpCisrKyBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL0J1aWx0SW5QREZWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDI0ICszMCwyOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsYWJsZUFyZWEuaD4KICNp
bmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZUpT
Q29udGV4dCogSlNDb250ZXh0UmVmOwordHlwZWRlZiBzdHJ1Y3QgT3BhcXVlSlNWYWx1ZSogSlNP
YmplY3RSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVKU1ZhbHVlKiBKU1ZhbHVlUmVm
OworCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xhc3MgUGFnZTsKICAgICBzdHJ1Y3QgUGx1
Z2luSW5mbzsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFBsdWdpblZpZXc7Citj
bGFzcyBXZWJGcmFtZTsKIAogY2xhc3MgQnVpbHRJblBERlZpZXcgOiBwdWJsaWMgUGx1Z2luLCBw
cml2YXRlIFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxCdWlsdEluUERGVmlldz4gY3JlYXRlKFdlYkNvcmU6OlBhZ2UqKTsKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxCdWlsdEluUERGVmlldz4gY3JlYXRlKFdlYkZyYW1lKik7CiAgICAgfkJ1
aWx0SW5QREZWaWV3KCk7CiAKICAgICBzdGF0aWMgV2ViQ29yZTo6UGx1Z2luSW5mbyBwbHVnaW5J
bmZvKCk7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgQnVpbHRJblBERlZpZXcoV2ViQ29yZTo6
UGFnZSopOworICAgIGV4cGxpY2l0IEJ1aWx0SW5QREZWaWV3KFdlYkZyYW1lKik7CiAKICAgICAv
LyBSZWd1bGFyIHBsdWctaW5zIGRvbid0IG5lZWQgYWNjZXNzIHRvIHZpZXcsIGJ1dCB3ZSBhZGQg
c2Nyb2xsYmFycyB0byBlbWJlZGRpbmcgRnJhbWVWaWV3IGZvciBwcm9wZXIgZXZlbnQgaGFuZGxp
bmcuCiAgICAgUGx1Z2luVmlldyogcGx1Z2luVmlldygpOwpAQCAtMTMyLDcgKzEzNiw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBXZWJDb3JlOjpTY3JvbGxiYXIqIGhvcml6b250YWxTY3JvbGxi
YXIoKSBjb25zdCAgeyByZXR1cm4gbV9ob3Jpem9udGFsU2Nyb2xsYmFyLmdldCgpOyB9CiAgICAg
dmlydHVhbCBXZWJDb3JlOjpTY3JvbGxiYXIqIHZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3QgeyBy
ZXR1cm4gbV92ZXJ0aWNhbFNjcm9sbGJhci5nZXQoKTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc09u
QWN0aXZlUGFnZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0RnJvbVBhZ2Uo
KSB7IG1fcGFnZSA9IDA7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdEZyb21QYWdlKCkg
eyBtX2ZyYW1lID0gMDsgfQogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdXNwZW5kU2Nyb2xsQW5p
bWF0aW9ucygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9IC8vIElmIHdlIHJldHVybiB0cnVlLCBT
Y3JvbGxBbmltYXRvck1hYyB3aWxsIGtlZXAgY3ljbGluZyBhIHRpbWVyIGZvcmV2ZXIsIHdhaXRp
bmcgZm9yIGEgZ29vZCB0aW1lIHRvIGFuaW1hdGUuCiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbGJh
clN0eWxlQ2hhbmdlZChpbnQgbmV3U3R5bGUsIGJvb2wgZm9yY2VVcGRhdGUpOwogICAgIHZpcnR1
YWwgdm9pZCB6b29tQW5pbWF0b3JUcmFuc2Zvcm1DaGFuZ2VkKGZsb2F0LCBmbG9hdCwgZmxvYXQs
IFpvb21BbmltYXRpb25TdGF0ZSkgeyB9CkBAIC0xNDAsNiArMTQ0LDkgQEAgcHJpdmF0ZToKICAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IHRoZSBvdGhlciBjb252ZXJzaW9uIGZ1bmN0aW9uczsgdGhp
cyBvbmUgaXMgZW5vdWdoIHRvIGdldCBzY3JvbGxiYXIgaGl0IHRlc3Rpbmcgd29ya2luZy4KICAg
ICB2aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50IGNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Nj
cm9sbGJhcihjb25zdCBXZWJDb3JlOjpTY3JvbGxiYXIqLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgcGFyZW50UG9pbnQpIGNvbnN0OwogCisgICAgSlNPYmplY3RSZWYgbWFrZUpTUERGRG9jKEpT
Q29udGV4dFJlZik7CisgICAgc3RhdGljIEpTVmFsdWVSZWYganNQREZEb2NQcmludChKU0NvbnRl
eHRSZWYsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXpl
X3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKTsKKwogICAgIFdlYkNvcmU6OkludFNpemUgbV9wbHVnaW5TaXplOwogCiAg
ICAgV2ViQ29yZTo6S1VSTCBtX3NvdXJjZVVSTDsKQEAgLTE1NCw3ICsxNjEsNyBAQCBwcml2YXRl
OgogICAgIFJlZlB0cjxXZWJDb3JlOjpTY3JvbGxiYXI+IG1faG9yaXpvbnRhbFNjcm9sbGJhcjsK
ICAgICBSZWZQdHI8V2ViQ29yZTo6U2Nyb2xsYmFyPiBtX3ZlcnRpY2FsU2Nyb2xsYmFyOwogCi0g
ICAgV2ViQ29yZTo6UGFnZSogbV9wYWdlOyAvLyBOZWVkZWQgdG8gcmVnaXN0ZXIgYW5kIHVucmVn
aXN0ZXIgU2Nyb2xsYWJsZUFyZWEuCisgICAgV2ViRnJhbWUqIG1fZnJhbWU7CiAKICAgICBXZWJD
b3JlOjpJbnRTaXplIG1fc2Nyb2xsT2Zmc2V0OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCShyZXZpc2lvbiAxMDM4NTcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTI3NCw3ICsxMjc0LDcgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OgogICAgIH0KICNlbmRpZgogCi0gICAgUmVmUHRyPFBsdWdpbj4gcGx1Z2luID0g
d2ViUGFnZS0+Y3JlYXRlUGx1Z2luKHBhcmFtZXRlcnMpOworICAgIFJlZlB0cjxQbHVnaW4+IHBs
dWdpbiA9IHdlYlBhZ2UtPmNyZWF0ZVBsdWdpbihtX2ZyYW1lLCBwYXJhbWV0ZXJzKTsKICAgICBp
ZiAoIXBsdWdpbikKICAgICAgICAgcmV0dXJuIDA7CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAxMDM4NTcpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM0Myw3ICszNDMsNyBAQCB2b2lkIFdlYlBhZ2U6OmluaXRpYWxpemVJbmplY3Rl
ZEJ1bmRsZUZ1CiB9CiAjZW5kaWYKIAotUGFzc1JlZlB0cjxQbHVnaW4+IFdlYlBhZ2U6OmNyZWF0
ZVBsdWdpbihjb25zdCBQbHVnaW46OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCitQYXNzUmVmUHRy
PFBsdWdpbj4gV2ViUGFnZTo6Y3JlYXRlUGx1Z2luKFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgUGx1
Z2luOjpQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogICAgIFN0cmluZyBwbHVnaW5QYXRoOwog
CkBAIC0zNTcsNyArMzU3LDkgQEAgUGFzc1JlZlB0cjxQbHVnaW4+IFdlYlBhZ2U6OmNyZWF0ZVBs
dWdpbgogI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgaWYgKHBhcmFtZXRlcnMubWltZVR5cGUg
PT0gImFwcGxpY2F0aW9uL3BkZiIKICAgICAgICAgICAgIHx8IChwYXJhbWV0ZXJzLm1pbWVUeXBl
LmlzRW1wdHkoKSAmJiBwYXJhbWV0ZXJzLnVybC5wYXRoKCkubG93ZXIoKS5lbmRzV2l0aCgiLnBk
ZiIpKSkKLSAgICAgICAgICAgIHJldHVybiBCdWlsdEluUERGVmlldzo6Y3JlYXRlKG1fcGFnZS5n
ZXQoKSk7CisgICAgICAgICAgICByZXR1cm4gQnVpbHRJblBERlZpZXc6OmNyZWF0ZShmcmFtZSk7
CisjZWxzZQorICAgICAgICBVTlVTRURfUEFSQU0oZnJhbWUpOwogI2VuZGlmCiAgICAgICAgIHJl
dHVybiAwOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAkocmV2aXNpb24gMTAzODU3KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjM3LDcgKzIzNyw3IEBAIHB1
YmxpYzoKICAgICBXZWJDb3JlOjpGcmFtZSogbWFpbkZyYW1lKCkgY29uc3Q7IC8vIE1heSByZXR1
cm4gMC4KICAgICBXZWJDb3JlOjpGcmFtZVZpZXcqIG1haW5GcmFtZVZpZXcoKSBjb25zdDsgLy8g
TWF5IHJldHVybiAwLgogCi0gICAgUGFzc1JlZlB0cjxQbHVnaW4+IGNyZWF0ZVBsdWdpbihjb25z
dCBQbHVnaW46OlBhcmFtZXRlcnMmKTsKKyAgICBQYXNzUmVmUHRyPFBsdWdpbj4gY3JlYXRlUGx1
Z2luKFdlYkZyYW1lKiwgY29uc3QgUGx1Z2luOjpQYXJhbWV0ZXJzJik7CiAKICAgICBFZGl0b3JT
dGF0ZSBlZGl0b3JTdGF0ZSgpIGNvbnN0OwogCg==
</data>
<flag name="review"
          id="121163"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>