<?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>130654</bug_id>
          
          <creation_ts>2014-03-23 13:09:19 -0700</creation_ts>
          <short_desc>Simplify the HTMLConverter interface</short_desc>
          <delta_ts>2014-03-23 14:41:50 -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>New Bugs</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="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>993682</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-03-23 13:09:19 -0700</bug_when>
    <thetext>Simplify the HTMLConverter interface</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993685</commentid>
    <comment_count>1</comment_count>
      <attachid>227615</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-03-23 13:12:26 -0700</bug_when>
    <thetext>Created attachment 227615
Part 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993686</commentid>
    <comment_count>2</comment_count>
      <attachid>227615</attachid>
    <who name="">mitz</who>
    <bug_when>2014-03-23 13:15:46 -0700</bug_when>
    <thetext>Comment on attachment 227615
Part 1

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

&gt; Source/WebCore/platform/mac/HTMLConverter.h:83
&gt; ++ (NSAttributedString *)attributedStringFromRange:(WebCore::Range*)range;

Why not make the argument a reference?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993687</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-03-23 13:17:01 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 227615 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=227615&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/mac/HTMLConverter.h:83
&gt; &gt; ++ (NSAttributedString *)attributedStringFromRange:(WebCore::Range*)range;
&gt; 
&gt; Why not make the argument a reference?

I&apos;ll see about doing that in a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993688</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-03-23 13:18:16 -0700</bug_when>
    <thetext>Committed r166143: &lt;http://trac.webkit.org/changeset/166143&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993696</commentid>
    <comment_count>5</comment_count>
      <attachid>227617</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-03-23 14:25:05 -0700</bug_when>
    <thetext>Created attachment 227617
Part 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993697</commentid>
    <comment_count>6</comment_count>
      <attachid>227617</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-23 14:28:14 -0700</bug_when>
    <thetext>Comment on attachment 227617
Part 2

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

&gt; Source/WebKit/mac/WebView/WebHTMLView.mm:6667
&gt; +                attributedString = [[[NSAttributedString alloc] init] autorelease];

I think you can just write [NSAttributedString string] for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993698</commentid>
    <comment_count>7</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-03-23 14:41:40 -0700</bug_when>
    <thetext>Committed r166145: &lt;http://trac.webkit.org/changeset/166145&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227615</attachid>
            <date>2014-03-23 13:12:26 -0700</date>
            <delta_ts>2014-03-23 14:24:57 -0700</delta_ts>
            <desc>Part 1</desc>
            <filename>bug-130654-20140323131205.patch</filename>
            <type>text/plain</type>
            <size>4414</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NjE0MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE0LTAzLTIzICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU2ltcGxpZnkgdGhlIEhUTUxDb252ZXJ0
ZXIgaW50ZXJmYWNlIChQYXJ0IDEpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzA2NTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDb252ZXJ0IFdlYkhUTUxDb252ZXJ0ZXIncyBpbnRlcmZhY2UgdG8gb25s
eSB1c2UgY2xhc3MgbWV0aG9kcyBhcyB0aGUgZmlyc3QKKyAgICAgICAgc3RlcCBvZiBzaW1wbGlm
eWluZyB0aGUgaW50ZXJmYWNlLiAKKworICAgICAgICAqIGVkaXRpbmcvaW9zL0VkaXRvcklPUy5t
bToKKyAgICAgICAgKFdlYkNvcmU6OmF0dHJpYnV0ZWRTdHJpbmdGb3JSYW5nZSk6CisgICAgICAg
ICogZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6YXR0cmlidXRl
ZFN0cmluZ0ZvclJhbmdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvSFRNTENvbnZlcnRlci5o
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9IVE1MQ29udmVydGVyLm1tOgorICAgICAgICAoK1tX
ZWJIVE1MQ29udmVydGVyIGF0dHJpYnV0ZWRTdHJpbmdGcm9tUmFuZ2U6XSk6CisKIDIwMTQtMDMt
MjMgIEphbWVzIENyYWlnICA8amNyYWlnQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBBWEk6IGFkZCBvdGhlciBBUklBIG9uZS10by1tYW55IHJlbGF0aW9uc2hpcHM6IG93bnMs
IGZsb3d0bywgY29udHJvbHMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0
b3JJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9y
SU9TLm1tCShyZXZpc2lvbiAxNjYxMzEpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9F
ZGl0b3JJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTMwMCw3ICszMDAsNyBAQCB2b2lkIEVkaXRv
cjo6cmVtb3ZlVW5jaGFuZ2VhYmxlU3R5bGVzKCkKIC8vIEZJWE1FOiB0aGUgZm9sbG93aW5nIGZ1
Y3Rpb25zIHNob3VsZCBiZSBzaGFyZWQgYmV0d2VlbiBNYWMgYW5kIGlPUy4KIHN0YXRpYyBOU0F0
dHJpYnV0ZWRTdHJpbmcgKmF0dHJpYnV0ZWRTdHJpbmdGb3JSYW5nZShSYW5nZSYgcmFuZ2UpCiB7
Ci0gICAgcmV0dXJuIFthZG9wdE5TKFtbV2ViSFRNTENvbnZlcnRlciBhbGxvY10gaW5pdFdpdGhE
T01SYW5nZTpraXQoJnJhbmdlKV0pIGF0dHJpYnV0ZWRTdHJpbmddOworICAgIHJldHVybiBbV2Vi
SFRNTENvbnZlcnRlciBhdHRyaWJ1dGVkU3RyaW5nRnJvbVJhbmdlOiZyYW5nZV07CiB9CiAKIHN0
YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YUluUlRGREZvcm1hdChOU0F0dHJpYnV0
ZWRTdHJpbmcgKnN0cmluZykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRv
ck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JN
YWMubW0JKHJldmlzaW9uIDE2NjEzMSkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0Vk
aXRvck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzA2LDcgKzMwNiw3IEBAIFBhc3NSZWZQdHI8
UmFuZ2U+IEVkaXRvcjo6YWRqdXN0ZWRTZWxlY3QKIAogc3RhdGljIE5TQXR0cmlidXRlZFN0cmlu
ZyAqYXR0cmlidXRlZFN0cmluZ0ZvclJhbmdlKFJhbmdlJiByYW5nZSkKIHsKLSAgICByZXR1cm4g
W2Fkb3B0TlMoW1tXZWJIVE1MQ29udmVydGVyIGFsbG9jXSBpbml0V2l0aERPTVJhbmdlOmtpdCgm
cmFuZ2UpXSkgYXR0cmlidXRlZFN0cmluZ107CisgICAgcmV0dXJuIFtXZWJIVE1MQ29udmVydGVy
IGF0dHJpYnV0ZWRTdHJpbmdGcm9tUmFuZ2U6JnJhbmdlXTsKIH0KIAogc3RhdGljIFBhc3NSZWZQ
dHI8U2hhcmVkQnVmZmVyPiBkYXRhSW5SVEZERm9ybWF0KE5TQXR0cmlidXRlZFN0cmluZyAqc3Ry
aW5nKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0hUTUxDb252ZXJ0ZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvSFRNTENvbnZlcnRlci5o
CShyZXZpc2lvbiAxNjYxMzEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvSFRNTENv
bnZlcnRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC03OSwxMCArNzksOCBAQCBAaW50ZXJmYWNlIFdl
YkhUTUxDb252ZXJ0ZXIgOiBOU09iamVjdCB7CiAgICAgfSBfZmxhZ3M7CiB9CiAKLS0gKGlkKWlu
aXQ7Ci0tIChpZClpbml0V2l0aERPTVJhbmdlOihET01SYW5nZSAqKWRvbVJhbmdlOwogCi0tIChO
U0F0dHJpYnV0ZWRTdHJpbmcgKilhdHRyaWJ1dGVkU3RyaW5nOworKyAoTlNBdHRyaWJ1dGVkU3Ry
aW5nICopYXR0cmlidXRlZFN0cmluZ0Zyb21SYW5nZTooV2ViQ29yZTo6UmFuZ2UqKXJhbmdlOwog
I2lmICFQTEFURk9STShJT1MpCiArIChOU0F0dHJpYnV0ZWRTdHJpbmcgKillZGl0aW5nQXR0cmli
dXRlZFN0cmluZ0Zyb21SYW5nZTooV2ViQ29yZTo6UmFuZ2UqKXJhbmdlOwogI2VuZGlmCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvSFRNTENvbnZlcnRlci5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvSFRNTENvbnZlcnRlci5tbQkocmV2aXNp
b24gMTY2MTMyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0hUTUxDb252ZXJ0ZXIu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTQzMCw2ICs0MzAsMTAgQEAgKyAodm9pZClkb2N1bWVudDoo
TlNPYmplY3QgKiopb3V0RG9jdW1lbgogCiBAaW50ZXJmYWNlIFdlYkhUTUxDb252ZXJ0ZXIoV2Vi
SFRNTENvbnZlcnRlckludGVybmFsKQogCistIChpZClpbml0OworLSAoaWQpaW5pdFdpdGhET01S
YW5nZTooRE9NUmFuZ2UgKilkb21SYW5nZTsKKy0gKE5TQXR0cmlidXRlZFN0cmluZyAqKWF0dHJp
YnV0ZWRTdHJpbmc7CisKIC0gKE5TU3RyaW5nICopX3N0cmluZ0Zvck5vZGU6KERPTU5vZGUgKilu
b2RlIHByb3BlcnR5OihDU1NQcm9wZXJ0eUlEKXByb3BlcnR5SWQ7CiAtIChQbGF0Zm9ybUNvbG9y
ICopX2NvbG9yRm9yTm9kZTooRE9NTm9kZSAqKW5vZGUgcHJvcGVydHk6KENTU1Byb3BlcnR5SUQp
cHJvcGVydHlJZDsKIC0gKEJPT0wpX2dldEZsb2F0OihDR0Zsb2F0ICopdmFsIGZvck5vZGU6KERP
TU5vZGUgKilub2RlIHByb3BlcnR5OihDU1NQcm9wZXJ0eUlEKXByb3BlcnR5SWQ7CkBAIC0yNDQx
LDEzICsyNDQ1LDIwIEBAIC0gKGlkKWluaXRXaXRoRE9NUmFuZ2U6KERPTVJhbmdlICopZG9tUmEK
ICAgICByZXR1cm4gc2VsZjsKIH0KIAotLy8gVGhpcyBmdW5jdGlvbiBzdXBwb3J0cyBtb3JlIEhU
TUwgZmVhdHVyZXMgdGhhbiB0aGUgZWRpdGluZyB2YXJpYW50IGJlbG93LCBzdWNoIGFzIHRhYmxl
cy4KIC0gKE5TQXR0cmlidXRlZFN0cmluZyAqKWF0dHJpYnV0ZWRTdHJpbmcKIHsKICAgICBbc2Vs
ZiBfbG9hZEZyb21ET01SYW5nZV07CiAgICAgcmV0dXJuICghX2Vycm9yQ29kZSkgPyBbW19hdHRy
U3RyIHJldGFpbl0gYXV0b3JlbGVhc2VdIDogbmlsOwogfQogCisKKy8vIFRoaXMgZnVuY3Rpb24g
c3VwcG9ydHMgbW9yZSBIVE1MIGZlYXR1cmVzIHRoYW4gdGhlIGVkaXRpbmcgdmFyaWFudCBiZWxv
dywgc3VjaCBhcyB0YWJsZXMuCisrIChOU0F0dHJpYnV0ZWRTdHJpbmcgKilhdHRyaWJ1dGVkU3Ry
aW5nRnJvbVJhbmdlOihSYW5nZSopcmFuZ2UKK3sKKyAgICBSZXRhaW5QdHI8V2ViSFRNTENvbnZl
cnRlcj4gY29udmVydGVyID0gYWRvcHROUyhbW1dlYkhUTUxDb252ZXJ0ZXIgYWxsb2NdIGluaXRX
aXRoRE9NUmFuZ2U6a2l0KHJhbmdlKV0pOworICAgIHJldHVybiBbY29udmVydGVyIGF0dHJpYnV0
ZWRTdHJpbmddOworfQorCiAjaWYgIVBMQVRGT1JNKElPUykKIAogLy8gVGhpcyBmdW5jdGlvbiB1
c2VzIFRleHRJdGVyYXRvciwgd2hpY2ggbWFrZXMgb2Zmc2V0cyBpbiBpdHMgcmVzdWx0IGNvbXBh
dGlibGUgd2l0aCBIVE1MIGVkaXRpbmcuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227617</attachid>
            <date>2014-03-23 14:25:05 -0700</date>
            <delta_ts>2014-03-23 14:28:14 -0700</delta_ts>
            <desc>Part 2</desc>
            <filename>bug-130654-20140323142439.patch</filename>
            <type>text/plain</type>
            <size>21177</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NjE0MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE0LTAzLTIzICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU2ltcGxpZnkgdGhlIEhUTUxDb252ZXJ0
ZXIgaW50ZXJmYWNlIChQYXJ0IDIpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzA2NTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTd2l0Y2ggSFRNTENvbnZlcnRlciBmcm9tIHVzaW5nIGFuIE9iamVjdGl2
ZS1DIGludGVyZmFjZSB0byBDIGZ1bmN0aW9ucy4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmlu
OgorICAgICAgICAqIGVkaXRpbmcvaW9zL0VkaXRvcklPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvcjo6d3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQpOgorICAgICAgICAqIGVkaXRpbmcv
bWFjL0VkaXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6ZGF0YVNlbGVjdGlv
bkZvclBhc3RlYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjp3cml0ZVNlbGVjdGlv
blRvUGFzdGVib2FyZCk6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW06
CisgICAgICAgICogcGxhdGZvcm0vbWFjL0hUTUxDb252ZXJ0ZXIuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvSFRNTENvbnZlcnRlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OmF0dHJpYnV0ZWRT
dHJpbmdGcm9tUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6ZWRpdGluZ0F0dHJpYnV0ZWRTdHJp
bmdGcm9tUmFuZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgor
CiAyMDE0LTAzLTIzICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgU2lt
cGxpZnkgdGhlIEhUTUxDb252ZXJ0ZXIgaW50ZXJmYWNlIChQYXJ0IDEpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgkocmV2aXNpb24gMTY2MTQyKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTIxMDksNyArMjEwOSw2IEBAIF9fWk43V2ViQ29yZTM2
aW5pdGlhbGl6ZUxvZ2dpbmdDaGFubmVsc0kKIC5vYmpjX2NsYXNzX25hbWVfV2ViQ29yZUZ1bGxT
Y3JlZW5XYXJuaW5nVmlldwogLm9iamNfY2xhc3NfbmFtZV9XZWJDb3JlRnVsbFNjcmVlbldpbmRv
dwogLm9iamNfY2xhc3NfbmFtZV9XZWJGb250Q2FjaGUKLS5vYmpjX2NsYXNzX25hbWVfV2ViSFRN
TENvbnZlcnRlcgogLm9iamNfY2xhc3NfbmFtZV9XZWJXaW5kb3dGYWRlQW5pbWF0aW9uCiAub2Jq
Y19jbGFzc19uYW1lX1dlYldpbmRvd1NjYWxlQW5pbWF0aW9uCiBfX1pON1dlYkNvcmUxMEZsb2F0
UG9pbnRDMUVSSzhfTlNQb2ludApAQCAtMjE5NSw2ICsyMTk0LDcgQEAgX19aTjdXZWJDb3JlMzFj
b250ZXh0TWVudUl0ZW1UYWdTdGFydFNwZQogX19aTjdXZWJDb3JlMzJhcHBsaWNhdGlvbklzQU9M
SW5zdGFudE1lc3NlbmdlckV2CiBfX1pON1dlYkNvcmUzMmNvbnRleHRNZW51SXRlbVRhZ0luc3Bl
Y3RFbGVtZW50RXYKIF9fWk43V2ViQ29yZTMyY29udGV4dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFz
dGVFdgorX19aTjdXZWJDb3JlMzJlZGl0aW5nQXR0cmlidXRlZFN0cmluZ0Zyb21SYW5nZUVSTlNf
NVJhbmdlRQogX19aTjdXZWJDb3JlMzJ1c2VCbG9ja2VkUGx1Z0luQ29udGV4dE1lbnVUaXRsZUV2
CiBfX1pON1dlYkNvcmUzM2NvbnRleHRNZW51SXRlbVRhZ1RleHRSZXBsYWNlbWVudEV2CiBfX1pO
N1dlYkNvcmUzM3Bvc3RTY3JpcHREb2N1bWVudFR5cGVEZXNjcmlwdGlvbkV2CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tCShyZXZpc2lvbiAxNjYxNDMpCisrKyBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0JKHdvcmtpbmcgY29weSkKQEAg
LTI5NywxMiArMjk3LDYgQEAgdm9pZCBFZGl0b3I6OnJlbW92ZVVuY2hhbmdlYWJsZVN0eWxlcygp
CiAgICAgYXBwbHlTdHlsZVRvU2VsZWN0aW9uKGRlZmF1bHRTdHlsZS5nZXQoKSwgRWRpdEFjdGlv
bkNoYW5nZUF0dHJpYnV0ZXMpOwogfQogCi0vLyBGSVhNRTogdGhlIGZvbGxvd2luZyBmdWN0aW9u
cyBzaG91bGQgYmUgc2hhcmVkIGJldHdlZW4gTWFjIGFuZCBpT1MuCi1zdGF0aWMgTlNBdHRyaWJ1
dGVkU3RyaW5nICphdHRyaWJ1dGVkU3RyaW5nRm9yUmFuZ2UoUmFuZ2UmIHJhbmdlKQotewotICAg
IHJldHVybiBbV2ViSFRNTENvbnZlcnRlciBhdHRyaWJ1dGVkU3RyaW5nRnJvbVJhbmdlOiZyYW5n
ZV07Ci19Ci0KIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YUluUlRGREZvcm1h
dChOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmluZykKIHsKICAgICBOU1VJbnRlZ2VyIGxlbmd0aCA9
IFtzdHJpbmcgbGVuZ3RoXTsKQEAgLTMzMCw3ICszMjQsNyBAQCBQYXNzUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4gRWRpdG9yOjpzZWxlY3RpCiAKIHZvaWQgRWRpdG9yOjp3cml0ZVNlbGVjdGlvblRvUGFz
dGVib2FyZChQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkKQogewotICAgIE5TQXR0cmlidXRlZFN0cmlu
ZyAqYXR0cmlidXRlZFN0cmluZyA9IGF0dHJpYnV0ZWRTdHJpbmdGb3JSYW5nZSgqc2VsZWN0ZWRS
YW5nZSgpKTsKKyAgICBOU0F0dHJpYnV0ZWRTdHJpbmcgKmF0dHJpYnV0ZWRTdHJpbmcgPSBhdHRy
aWJ1dGVkU3RyaW5nRnJvbVJhbmdlKHNlbGVjdGVkUmFuZ2UoKSk7CiAKICAgICBQYXN0ZWJvYXJk
V2ViQ29udGVudCBjb250ZW50OwogICAgIGNvbnRlbnQuY2FuU21hcnRDb3B5T3JEZWxldGUgPSBj
YW5TbWFydENvcHlPckRlbGV0ZSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMv
RWRpdG9yTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0Vk
aXRvck1hYy5tbQkocmV2aXNpb24gMTY2MTQzKQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9t
YWMvRWRpdG9yTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMDMsMTIgKzMwMyw3IEBAIFBhc3NS
ZWZQdHI8UmFuZ2U+IEVkaXRvcjo6YWRqdXN0ZWRTZWxlY3QKICAgICAgICAgcmFuZ2UtPnNldFN0
YXJ0KGVuY2xvc2luZ0FuY2hvciwgMCwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgcmV0dXJuIHJh
bmdlOwogfQotCi1zdGF0aWMgTlNBdHRyaWJ1dGVkU3RyaW5nICphdHRyaWJ1dGVkU3RyaW5nRm9y
UmFuZ2UoUmFuZ2UmIHJhbmdlKQotewotICAgIHJldHVybiBbV2ViSFRNTENvbnZlcnRlciBhdHRy
aWJ1dGVkU3RyaW5nRnJvbVJhbmdlOiZyYW5nZV07Ci19Ci0KKyAgICAKIHN0YXRpYyBQYXNzUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YUluUlRGREZvcm1hdChOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0
cmluZykKIHsKICAgICBOU1VJbnRlZ2VyIGxlbmd0aCA9IFtzdHJpbmcgbGVuZ3RoXTsKQEAgLTMz
NSwxMCArMzMwLDEwIEBAICAgICAvLyBGSVhNRTogVGhlIGludGVyZmFjZSB0byB0aGlzIGZ1bmMK
ICAgICAgICAgcmV0dXJuIHNlbGVjdGlvbkluV2ViQXJjaGl2ZUZvcm1hdCgpOwogCiAgICAgaWYg
KHBhc3RlYm9hcmRUeXBlID09IFN0cmluZyhOU1JURkRQYm9hcmRUeXBlKSkKLSAgICAgICByZXR1
cm4gZGF0YUluUlRGREZvcm1hdChhdHRyaWJ1dGVkU3RyaW5nRm9yUmFuZ2UoKmFkanVzdGVkU2Vs
ZWN0aW9uUmFuZ2UoKSkpOworICAgICAgIHJldHVybiBkYXRhSW5SVEZERm9ybWF0KGF0dHJpYnV0
ZWRTdHJpbmdGcm9tUmFuZ2UoKmFkanVzdGVkU2VsZWN0aW9uUmFuZ2UoKSkpOwogCiAgICAgaWYg
KHBhc3RlYm9hcmRUeXBlID09IFN0cmluZyhOU1JURlBib2FyZFR5cGUpKSB7Ci0gICAgICAgIE5T
QXR0cmlidXRlZFN0cmluZyogYXR0cmlidXRlZFN0cmluZyA9IGF0dHJpYnV0ZWRTdHJpbmdGb3JS
YW5nZSgqYWRqdXN0ZWRTZWxlY3Rpb25SYW5nZSgpKTsKKyAgICAgICAgTlNBdHRyaWJ1dGVkU3Ry
aW5nKiBhdHRyaWJ1dGVkU3RyaW5nID0gYXR0cmlidXRlZFN0cmluZ0Zyb21SYW5nZSgqYWRqdXN0
ZWRTZWxlY3Rpb25SYW5nZSgpKTsKICAgICAgICAgLy8gRklYTUU6IFdoeSBpcyB0aGlzIGF0dGFj
aG1lbnQgY2hhcmFjdGVyIHN0cmlwcGluZyBuZWVkZWQgaGVyZSwgYnV0IG5vdCBuZWVkZWQgaW4g
d3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQ/CiAgICAgICAgIGlmIChbYXR0cmlidXRlZFN0cmlu
ZyBjb250YWluc0F0dGFjaG1lbnRzXSkKICAgICAgICAgICAgIGF0dHJpYnV0ZWRTdHJpbmcgPSBh
dHRyaWJ1dGVkU3RyaW5nQnlTdHJpcHBpbmdBdHRhY2htZW50Q2hhcmFjdGVycyhhdHRyaWJ1dGVk
U3RyaW5nKTsKQEAgLTM1MCw3ICszNDUsNyBAQCAgICAgLy8gRklYTUU6IFRoZSBpbnRlcmZhY2Ug
dG8gdGhpcyBmdW5jCiAKIHZvaWQgRWRpdG9yOjp3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChQ
YXN0ZWJvYXJkJiBwYXN0ZWJvYXJkKQogewotICAgIE5TQXR0cmlidXRlZFN0cmluZyAqYXR0cmli
dXRlZFN0cmluZyA9IGF0dHJpYnV0ZWRTdHJpbmdGb3JSYW5nZSgqc2VsZWN0ZWRSYW5nZSgpKTsK
KyAgICBOU0F0dHJpYnV0ZWRTdHJpbmcgKmF0dHJpYnV0ZWRTdHJpbmcgPSBhdHRyaWJ1dGVkU3Ry
aW5nRnJvbVJhbmdlKCpzZWxlY3RlZFJhbmdlKCkpOwogCiAgICAgUGFzdGVib2FyZFdlYkNvbnRl
bnQgY29udGVudDsKICAgICBjb250ZW50LmNhblNtYXJ0Q29weU9yRGVsZXRlID0gY2FuU21hcnRD
b3B5T3JEZWxldGUoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJv
YXJkSU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0
ZWJvYXJkSU9TLm1tCShyZXZpc2lvbiAxNjYxNDIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvUGFzdGVib2FyZElPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNiBAQAog
I2ltcG9ydCAiRnJhbWUuaCIKICNpbXBvcnQgIkZyYW1lTG9hZGVyLmgiCiAjaW1wb3J0ICJGcmFt
ZUxvYWRlckNsaWVudC5oIgotI2ltcG9ydCAiSFRNTENvbnZlcnRlci5oIgogI2ltcG9ydCAiSFRN
TEVsZW1lbnQuaCIKICNpbXBvcnQgIkhUTUxOYW1lcy5oIgogI2ltcG9ydCAiSFRNTFBhcnNlcklk
aW9tcy5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0hUTUxDb252ZXJ0ZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvSFRNTENvbnZlcnRl
ci5oCShyZXZpc2lvbiAxNjYxNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvSFRN
TENvbnZlcnRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2NiArMjMsMjAgQEAKICAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1AY2xhc3MgRE9NRG9jdW1lbnQ7Ci1A
Y2xhc3MgRE9NUmFuZ2U7CisjaWZuZGVmIEhUTUxDb252ZXJ0ZXJfaAorI2RlZmluZSBIVE1MQ29u
dmVydGVyX2gKIAotbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIGNsYXNzIERvY3VtZW50TG9hZGVy
OwotICAgIGNsYXNzIFJhbmdlOwotfQotCi1jbGFzcyBIVE1MQ29udmVydGVyQ2FjaGVzOworT0JK
Q19DTEFTUyBOU0F0dHJpYnV0ZWRTdHJpbmc7CiAKLUBpbnRlcmZhY2UgV2ViSFRNTENvbnZlcnRl
ciA6IE5TT2JqZWN0IHsKLSAgICBOU011dGFibGVBdHRyaWJ1dGVkU3RyaW5nICpfYXR0clN0cjsK
LSAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpfZG9jdW1lbnRBdHRyczsKLSAgICBOU1VSTCAqX2Jh
c2VVUkw7Ci0gICAgRE9NRG9jdW1lbnQgKl9kb2N1bWVudDsKLSAgICBET01SYW5nZSAqX2RvbVJh
bmdlOwotICAgIE5TTXV0YWJsZUFycmF5ICpfZG9tU3RhcnRBbmNlc3RvcnM7Ci0gICAgV2ViQ29y
ZTo6RG9jdW1lbnRMb2FkZXIgKl9kYXRhU291cmNlOwotICAgIE5TU3RyaW5nICpfc3RhbmRhcmRG
b250RmFtaWx5OwotICAgIENHRmxvYXQgX3RleHRTaXplTXVsdGlwbGllcjsKLSAgICBDR0Zsb2F0
IF93ZWJWaWV3VGV4dFNpemVNdWx0aXBsaWVyOwotICAgIENHRmxvYXQgX2RlZmF1bHRUYWJJbnRl
cnZhbDsKLSAgICBDR0Zsb2F0IF9kZWZhdWx0Rm9udFNpemU7Ci0gICAgQ0dGbG9hdCBfbWluaW11
bUZvbnRTaXplOwotICAgIE5TTXV0YWJsZUFycmF5ICpfdGV4dExpc3RzOwotICAgIE5TTXV0YWJs
ZUFycmF5ICpfdGV4dEJsb2NrczsKLSAgICBOU011dGFibGVBcnJheSAqX3RleHRUYWJsZXM7Ci0g
ICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqX3RleHRUYWJsZUZvb3RlcnM7Ci0gICAgTlNNdXRhYmxl
QXJyYXkgKl90ZXh0VGFibGVTcGFjaW5nczsKLSAgICBOU011dGFibGVBcnJheSAqX3RleHRUYWJs
ZVBhZGRpbmdzOwotICAgIE5TTXV0YWJsZUFycmF5ICpfdGV4dFRhYmxlUm93czsKLSAgICBOU011
dGFibGVBcnJheSAqX3RleHRUYWJsZVJvd0FycmF5czsKLSAgICBOU011dGFibGVBcnJheSAqX3Rl
eHRUYWJsZVJvd0JhY2tncm91bmRDb2xvcnM7Ci0gICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqX2Nv
bG9yc0Zvck5vZGVzOwotICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKl9hdHRyaWJ1dGVzRm9yRWxl
bWVudHM7Ci0gICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqX2ZvbnRDYWNoZTsKLSAgICBOU011dGFi
bGVBcnJheSAqX3dyaXRpbmdEaXJlY3Rpb25BcnJheTsKLSAgICBOU1VJbnRlZ2VyIF9kb21SYW5n
ZVN0YXJ0SW5kZXg7Ci0gICAgTlNJbnRlZ2VyIF9pbmRleGluZ0xpbWl0OwotICAgIE5TVUludGVn
ZXIgX3RodW1ibmFpbExpbWl0OwotICAgIE5TSW50ZWdlciBfZXJyb3JDb2RlOwotICAgIE5TSW50
ZWdlciBfcXVvdGVMZXZlbDsKLQotICAgIHN0ZDo6dW5pcXVlX3B0cjxIVE1MQ29udmVydGVyQ2Fj
aGVzPiBfY2FjaGVzOwotCi0gICAgc3RydWN0IHsKLSAgICAgICAgdW5zaWduZWQgaW50IGlzU29m
dDoxOwotICAgICAgICB1bnNpZ25lZCBpbnQgcmVhY2hlZFN0YXJ0OjE7Ci0gICAgICAgIHVuc2ln
bmVkIGludCByZWFjaGVkRW5kOjE7Ci0gICAgICAgIHVuc2lnbmVkIGludCBpc0luZGV4aW5nOjE7
Ci0gICAgICAgIHVuc2lnbmVkIGludCBpc1Rlc3Rpbmc6MTsKLSAgICAgICAgdW5zaWduZWQgaW50
IGhhc1RyYWlsaW5nTmV3bGluZToxOwotICAgICAgICB1bnNpZ25lZCBpbnQgcGFkOjI2OwotICAg
IH0gX2ZsYWdzOwotfQotCi0KLSsgKE5TQXR0cmlidXRlZFN0cmluZyAqKWF0dHJpYnV0ZWRTdHJp
bmdGcm9tUmFuZ2U6KFdlYkNvcmU6OlJhbmdlKilyYW5nZTsKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KyAgICAKK2NsYXNzIFJhbmdlOworICAgIAorTlNBdHRyaWJ1dGVkU3RyaW5nICphdHRyaWJ1dGVk
U3RyaW5nRnJvbVJhbmdlKFJhbmdlJik7CiAjaWYgIVBMQVRGT1JNKElPUykKLSsgKE5TQXR0cmli
dXRlZFN0cmluZyAqKWVkaXRpbmdBdHRyaWJ1dGVkU3RyaW5nRnJvbVJhbmdlOihXZWJDb3JlOjpS
YW5nZSopcmFuZ2U7CitOU0F0dHJpYnV0ZWRTdHJpbmcgKmVkaXRpbmdBdHRyaWJ1dGVkU3RyaW5n
RnJvbVJhbmdlKFJhbmdlJik7CiAjZW5kaWYKLUBlbmQKIAorfQorCisjZW5kaWYgLy8gSFRNTENv
bnZlcnRlcl9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvSFRNTENvbnZlcnRl
ci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvSFRNTENvbnZl
cnRlci5tbQkocmV2aXNpb24gMTY2MTQzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L0hUTUxDb252ZXJ0ZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTQyOCw2ICs0MjgsNTggQEAgQGlu
dGVyZmFjZSBOU09iamVjdChXZWJNZXNzYWdlRG9jdW1lbnRTaQogKyAodm9pZClkb2N1bWVudDoo
TlNPYmplY3QgKiopb3V0RG9jdW1lbnQgYXR0YWNobWVudDooTlNUZXh0QXR0YWNobWVudCAqKilv
dXRBdHRhY2htZW50IGZvclVSTDooTlNVUkwgKil1cmw7CiBAZW5kCiAKK0BpbnRlcmZhY2UgV2Vi
SFRNTENvbnZlcnRlciA6IE5TT2JqZWN0IHsKKyAgICBOU011dGFibGVBdHRyaWJ1dGVkU3RyaW5n
ICpfYXR0clN0cjsKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpfZG9jdW1lbnRBdHRyczsKKyAg
ICBOU1VSTCAqX2Jhc2VVUkw7CisgICAgRE9NRG9jdW1lbnQgKl9kb2N1bWVudDsKKyAgICBET01S
YW5nZSAqX2RvbVJhbmdlOworICAgIE5TTXV0YWJsZUFycmF5ICpfZG9tU3RhcnRBbmNlc3RvcnM7
CisgICAgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIgKl9kYXRhU291cmNlOworICAgIE5TU3RyaW5n
ICpfc3RhbmRhcmRGb250RmFtaWx5OworICAgIENHRmxvYXQgX3RleHRTaXplTXVsdGlwbGllcjsK
KyAgICBDR0Zsb2F0IF93ZWJWaWV3VGV4dFNpemVNdWx0aXBsaWVyOworICAgIENHRmxvYXQgX2Rl
ZmF1bHRUYWJJbnRlcnZhbDsKKyAgICBDR0Zsb2F0IF9kZWZhdWx0Rm9udFNpemU7CisgICAgQ0dG
bG9hdCBfbWluaW11bUZvbnRTaXplOworICAgIE5TTXV0YWJsZUFycmF5ICpfdGV4dExpc3RzOwor
ICAgIE5TTXV0YWJsZUFycmF5ICpfdGV4dEJsb2NrczsKKyAgICBOU011dGFibGVBcnJheSAqX3Rl
eHRUYWJsZXM7CisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqX3RleHRUYWJsZUZvb3RlcnM7Cisg
ICAgTlNNdXRhYmxlQXJyYXkgKl90ZXh0VGFibGVTcGFjaW5nczsKKyAgICBOU011dGFibGVBcnJh
eSAqX3RleHRUYWJsZVBhZGRpbmdzOworICAgIE5TTXV0YWJsZUFycmF5ICpfdGV4dFRhYmxlUm93
czsKKyAgICBOU011dGFibGVBcnJheSAqX3RleHRUYWJsZVJvd0FycmF5czsKKyAgICBOU011dGFi
bGVBcnJheSAqX3RleHRUYWJsZVJvd0JhY2tncm91bmRDb2xvcnM7CisgICAgTlNNdXRhYmxlRGlj
dGlvbmFyeSAqX2NvbG9yc0Zvck5vZGVzOworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKl9hdHRy
aWJ1dGVzRm9yRWxlbWVudHM7CisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqX2ZvbnRDYWNoZTsK
KyAgICBOU011dGFibGVBcnJheSAqX3dyaXRpbmdEaXJlY3Rpb25BcnJheTsKKyAgICBOU1VJbnRl
Z2VyIF9kb21SYW5nZVN0YXJ0SW5kZXg7CisgICAgTlNJbnRlZ2VyIF9pbmRleGluZ0xpbWl0Owor
ICAgIE5TVUludGVnZXIgX3RodW1ibmFpbExpbWl0OworICAgIE5TSW50ZWdlciBfZXJyb3JDb2Rl
OworICAgIE5TSW50ZWdlciBfcXVvdGVMZXZlbDsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxIVE1M
Q29udmVydGVyQ2FjaGVzPiBfY2FjaGVzOworCisgICAgc3RydWN0IHsKKyAgICAgICAgdW5zaWdu
ZWQgaW50IGlzU29mdDoxOworICAgICAgICB1bnNpZ25lZCBpbnQgcmVhY2hlZFN0YXJ0OjE7Cisg
ICAgICAgIHVuc2lnbmVkIGludCByZWFjaGVkRW5kOjE7CisgICAgICAgIHVuc2lnbmVkIGludCBp
c0luZGV4aW5nOjE7CisgICAgICAgIHVuc2lnbmVkIGludCBpc1Rlc3Rpbmc6MTsKKyAgICAgICAg
dW5zaWduZWQgaW50IGhhc1RyYWlsaW5nTmV3bGluZToxOworICAgICAgICB1bnNpZ25lZCBpbnQg
cGFkOjI2OworICAgIH0gX2ZsYWdzOworfQorCisrIChOU0F0dHJpYnV0ZWRTdHJpbmcgKilhdHRy
aWJ1dGVkU3RyaW5nRnJvbVJhbmdlOihSYW5nZSopcmFuZ2U7CisjaWYgIVBMQVRGT1JNKElPUykK
KysgKE5TQXR0cmlidXRlZFN0cmluZyAqKWVkaXRpbmdBdHRyaWJ1dGVkU3RyaW5nRnJvbVJhbmdl
OihSYW5nZSopcmFuZ2U7CisjZW5kaWYKK0BlbmQKKwogQGludGVyZmFjZSBXZWJIVE1MQ29udmVy
dGVyKFdlYkhUTUxDb252ZXJ0ZXJJbnRlcm5hbCkKIAogLSAoaWQpaW5pdDsKQEAgLTI1NzgsMyAr
MjYzMCwxOSBAQCBzdGF0aWMgTlNGaWxlV3JhcHBlciAqZmlsZVdyYXBwZXJGb3JFbGVtCiB9CiAK
ICNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitOU0F0dHJpYnV0ZWRTdHJpbmcg
KmF0dHJpYnV0ZWRTdHJpbmdGcm9tUmFuZ2UoUmFuZ2UmIHJhbmdlKQoreworICAgIHJldHVybiBb
V2ViSFRNTENvbnZlcnRlciBhdHRyaWJ1dGVkU3RyaW5nRnJvbVJhbmdlOiZyYW5nZV07Cit9Cisg
ICAgCisjaWYgIVBMQVRGT1JNKElPUykKK05TQXR0cmlidXRlZFN0cmluZyAqZWRpdGluZ0F0dHJp
YnV0ZWRTdHJpbmdGcm9tUmFuZ2UoUmFuZ2UmIHJhbmdlKQoreworICAgIHJldHVybiBbV2ViSFRN
TENvbnZlcnRlciBlZGl0aW5nQXR0cmlidXRlZFN0cmluZ0Zyb21SYW5nZTomcmFuZ2VdOworfQor
I2VuZGlmCisgICAgCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVi
b2FyZE1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFz
dGVib2FyZE1hYy5tbQkocmV2aXNpb24gMTY2MTQyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDYgQEAK
ICNpbXBvcnQgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW1wb3J0ICJIaXRUZXN0UmVzdWx0Lmgi
CiAjaW1wb3J0ICJIVE1MQW5jaG9yRWxlbWVudC5oIgotI2ltcG9ydCAiSFRNTENvbnZlcnRlci5o
IgogI2ltcG9ydCAiaHRtbGVkaXRpbmcuaCIKICNpbXBvcnQgIkhUTUxOYW1lcy5oIgogI2ltcG9y
dCAiSW1hZ2UuaCIKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NjE0MykKKysrIFNvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE0LTAz
LTIzICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU2ltcGxpZnkgdGhl
IEhUTUxDb252ZXJ0ZXIgaW50ZXJmYWNlIChQYXJ0IDIpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzA2NTQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpwZXJmb3JtRGljdGlvbmFyeUxvb2t1cEZvclJhbmdlKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmdldEF0dHJpYnV0ZWRTdWJzdHJpbmdGcm9tUmFuZ2UpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjphdHRyaWJ1dGVkU3Vic3RyaW5nRm9yQ2hhcmFjdGVyUmFuZ2VB
c3luYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnBlcmZvcm1EaWN0aW9uYXJ5TG9va3Vw
QXRMb2NhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnBlcmZvcm1EaWN0aW9uYXJ5
TG9va3VwRm9yU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGVyZm9ybURp
Y3Rpb25hcnlMb29rdXBGb3JSYW5nZSk6CisKIDIwMTQtMDMtMjMgIERhdmlkIEtpbHplciAgPGRk
a2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXQ6OnJlc2lzdGFuY2VGb3JEZWx0YSgp
IHRydW5jYXRlcyAnc2NhbGVEaXN0YW5jZScgdG8gaW50ZWdlciB2YWx1ZSB1c2luZyBhYnMoKQpJ
bmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCShyZXZp
c2lvbiAxNjYxNDIpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04ODIsNyArODgyLDcgQEAgcHJpdmF0ZToKIAogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgIHZvaWQgcGVyZm9ybURpY3Rpb25hcnlMb29rdXBBdExvY2F0aW9u
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKLSAgICB2b2lkIHBlcmZvcm1EaWN0aW9uYXJ5
TG9va3VwRm9yUmFuZ2UoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpSYW5nZSosIE5TRGljdGlv
bmFyeSAqb3B0aW9ucyk7CisgICAgdm9pZCBwZXJmb3JtRGljdGlvbmFyeUxvb2t1cEZvclJhbmdl
KFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6UmFuZ2UmLCBOU0RpY3Rpb25hcnkgKm9wdGlvbnMp
OwogCiAgICAgdm9pZCB3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiB3aW5kb3dGcmFtZUluVW5mbGlwcGVkU2NyZWVuQ29vcmRpbmF0ZXMsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcywgY29uc3Qg
V2ViQ29yZTo6RmxvYXRQb2ludCYgYWNjZXNzaWJpbGl0eVZpZXdDb29yZGluYXRlcyk7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0JKHJldmlzaW9uIDE2NjE0MikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTcxLDcgKzE3MSw3
IEBAIHZvaWQgV2ViUGFnZTo6cGVyZm9ybURpY3Rpb25hcnlMb29rdXBGb3IKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYlBhZ2U6OnBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwRm9y
UmFuZ2UoRnJhbWUqLCBSYW5nZSosIE5TRGljdGlvbmFyeSAqKQordm9pZCBXZWJQYWdlOjpwZXJm
b3JtRGljdGlvbmFyeUxvb2t1cEZvclJhbmdlKEZyYW1lKiwgUmFuZ2UmLCBOU0RpY3Rpb25hcnkg
KikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQkocmV2aXNpb24gMTY2
MTQyKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFj
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNDcsMTAgKzM0NywxMCBAQCB2b2lkIFdlYlBhZ2U6Omdl
dEF0dHJpYnV0ZWRTdWJzdHJpbmdGcm9tCiAgICAgaWYgKCFyYW5nZSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgcmVzdWx0LnN0cmluZyA9IFtXZWJIVE1MQ29udmVydGVyIGVkaXRpbmdBdHRyaWJ1
dGVkU3RyaW5nRnJvbVJhbmdlOnJhbmdlLmdldCgpXTsKKyAgICByZXN1bHQuc3RyaW5nID0gZWRp
dGluZ0F0dHJpYnV0ZWRTdHJpbmdGcm9tUmFuZ2UoKnJhbmdlKTsKICAgICBOU0F0dHJpYnV0ZWRT
dHJpbmcqIGF0dHJpYnV0ZWRTdHJpbmcgPSByZXN1bHQuc3RyaW5nLmdldCgpOwogICAgIAotICAg
IC8vIFtXZWJIVE1MQ29udmVydGVyIGVkaXRpbmdBdHRyaWJ1dGVkU3RyaW5nRnJvbVJhbmdlOl0g
aW5zaXN0cyBvbiBpbnNlcnRpbmcgYSB0cmFpbGluZyAKKyAgICAvLyBXZWJDb3JlOjplZGl0aW5n
QXR0cmlidXRlZFN0cmluZ0Zyb21SYW5nZSgpIGluc2lzdHMgb24gaW5zZXJ0aW5nIGEgdHJhaWxp
bmcKICAgICAvLyB3aGl0ZXNwYWNlIGF0IHRoZSBlbmQgb2YgdGhlIHN0cmluZyB3aGljaCBicmVh
a3MgdGhlIEFUT0sgaW5wdXQgbWV0aG9kLiAgPHJkYXI6Ly9wcm9ibGVtLzU0MDA1NTE+CiAgICAg
Ly8gVG8gd29yayBhcm91bmQgdGhpcyB3ZSB0cnVuY2F0ZSB0aGUgcmVzdWx0YW50IHN0cmluZyB0
byB0aGUgY29ycmVjdCBsZW5ndGguCiAgICAgaWYgKFthdHRyaWJ1dGVkU3RyaW5nIGxlbmd0aF0g
PiBlZGl0aW5nUmFuZ2UubGVuZ3RoKSB7CkBAIC00NDEsMTAgKzQ0MSwxMCBAQCB2b2lkIFdlYlBh
Z2U6OmF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JDaGFyCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICByZXN1bHQuc3RyaW5nID0gW1dlYkhUTUxDb252ZXJ0ZXIgZWRpdGluZ0F0dHJpYnV0ZWRT
dHJpbmdGcm9tUmFuZ2U6cmFuZ2UuZ2V0KCldOworICAgIHJlc3VsdC5zdHJpbmcgPSBlZGl0aW5n
QXR0cmlidXRlZFN0cmluZ0Zyb21SYW5nZSgqcmFuZ2UpOwogICAgIE5TQXR0cmlidXRlZFN0cmlu
ZyogYXR0cmlidXRlZFN0cmluZyA9IHJlc3VsdC5zdHJpbmcuZ2V0KCk7CiAgICAgCi0gICAgLy8g
W1dlYkhUTUxDb252ZXJ0ZXIgZWRpdGluZ0F0dHJpYnV0ZWRTdHJpbmdGcm9tUmFuZ2U6XSBpbnNp
c3RzIG9uIGluc2VydGluZyBhIHRyYWlsaW5nIAorICAgIC8vIFdlYkNvcmU6OmVkaXRpbmdBdHRy
aWJ1dGVkU3RyaW5nRnJvbVJhbmdlKCkgaW5zaXN0cyBvbiBpbnNlcnRpbmcgYSB0cmFpbGluZwog
ICAgIC8vIHdoaXRlc3BhY2UgYXQgdGhlIGVuZCBvZiB0aGUgc3RyaW5nIHdoaWNoIGJyZWFrcyB0
aGUgQVRPSyBpbnB1dCBtZXRob2QuICA8cmRhcjovL3Byb2JsZW0vNTQwMDU1MT4KICAgICAvLyBU
byB3b3JrIGFyb3VuZCB0aGlzIHdlIHRydW5jYXRlIHRoZSByZXN1bHRhbnQgc3RyaW5nIHRvIHRo
ZSBjb3JyZWN0IGxlbmd0aC4KICAgICBpZiAoW2F0dHJpYnV0ZWRTdHJpbmcgbGVuZ3RoXSA+IGVk
aXRpbmdSYW5nZS5sZW5ndGgpIHsKQEAgLTU1Miw3ICs1NTIsNyBAQCB2b2lkIFdlYlBhZ2U6OnBl
cmZvcm1EaWN0aW9uYXJ5TG9va3VwQXRMCiAgICAgaWYgKCFmaW5hbFJhbmdlKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBwZXJmb3JtRGljdGlvbmFyeUxvb2t1cEZvclJhbmdlKGZyYW1lLCBmaW5h
bFJhbmdlLmdldCgpLCBvcHRpb25zKTsKKyAgICBwZXJmb3JtRGljdGlvbmFyeUxvb2t1cEZvclJh
bmdlKGZyYW1lLCAqZmluYWxSYW5nZSwgb3B0aW9ucyk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6cGVy
Zm9ybURpY3Rpb25hcnlMb29rdXBGb3JTZWxlY3Rpb24oRnJhbWUqIGZyYW1lLCBjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pCkBAIC01NzksMTkgKzU3OSwxOSBAQCB2b2lkIFdlYlBh
Z2U6OnBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwRm9yCiAgICAgLy8gU2luY2Ugd2UgYWxyZWFkeSBo
YXZlIHRoZSByYW5nZSB3ZSB3YW50LCB3ZSBqdXN0IG5lZWQgdG8gZ3JhYiB0aGUgcmV0dXJuZWQg
b3B0aW9ucy4KICAgICBXS0V4dHJhY3RXb3JkRGVmaW5pdGlvblRva2VuUmFuZ2VGcm9tQ29udGV4
dHVhbFN0cmluZyhmdWxsUGxhaW5UZXh0U3RyaW5nLCByYW5nZVRvUGFzcywgJm9wdGlvbnMpOwog
Ci0gICAgcGVyZm9ybURpY3Rpb25hcnlMb29rdXBGb3JSYW5nZShmcmFtZSwgc2VsZWN0ZWRSYW5n
ZS5nZXQoKSwgb3B0aW9ucyk7CisgICAgcGVyZm9ybURpY3Rpb25hcnlMb29rdXBGb3JSYW5nZShm
cmFtZSwgKnNlbGVjdGVkUmFuZ2UsIG9wdGlvbnMpOwogfQogCi12b2lkIFdlYlBhZ2U6OnBlcmZv
cm1EaWN0aW9uYXJ5TG9va3VwRm9yUmFuZ2UoRnJhbWUqIGZyYW1lLCBSYW5nZSogcmFuZ2UsIE5T
RGljdGlvbmFyeSAqb3B0aW9ucykKK3ZvaWQgV2ViUGFnZTo6cGVyZm9ybURpY3Rpb25hcnlMb29r
dXBGb3JSYW5nZShGcmFtZSogZnJhbWUsIFJhbmdlJiByYW5nZSwgTlNEaWN0aW9uYXJ5ICpvcHRp
b25zKQogewotICAgIGlmIChyYW5nZS0+dGV4dCgpLnN0cmlwV2hpdGVTcGFjZSgpLmlzRW1wdHko
KSkKKyAgICBpZiAocmFuZ2UudGV4dCgpLnN0cmlwV2hpdGVTcGFjZSgpLmlzRW1wdHkoKSkKICAg
ICAgICAgcmV0dXJuOwogICAgIAotICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSByYW5nZS0+
c3RhcnRDb250YWluZXIoKS0+cmVuZGVyZXIoKTsKKyAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVy
ID0gcmFuZ2Uuc3RhcnRDb250YWluZXIoKS0+cmVuZGVyZXIoKTsKICAgICBjb25zdCBSZW5kZXJT
dHlsZSYgc3R5bGUgPSByZW5kZXJlci0+c3R5bGUoKTsKIAogICAgIFZlY3RvcjxGbG9hdFF1YWQ+
IHF1YWRzOwotICAgIHJhbmdlLT50ZXh0UXVhZHMocXVhZHMpOworICAgIHJhbmdlLnRleHRRdWFk
cyhxdWFkcyk7CiAgICAgaWYgKHF1YWRzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCkBA
IC02MDEsNyArNjAxLDcgQEAgdm9pZCBXZWJQYWdlOjpwZXJmb3JtRGljdGlvbmFyeUxvb2t1cEZv
cgogICAgIGRpY3Rpb25hcnlQb3B1cEluZm8ub3JpZ2luID0gRmxvYXRQb2ludChyYW5nZVJlY3Qu
eCgpLCByYW5nZVJlY3QueSgpICsgKHN0eWxlLmZvbnRNZXRyaWNzKCkuYXNjZW50KCkgKiBwYWdl
U2NhbGVGYWN0b3IoKSkpOwogICAgIGRpY3Rpb25hcnlQb3B1cEluZm8ub3B0aW9ucyA9IChDRkRp
Y3Rpb25hcnlSZWYpb3B0aW9uczsKIAotICAgIE5TQXR0cmlidXRlZFN0cmluZyAqbnNBdHRyaWJ1
dGVkU3RyaW5nID0gW1dlYkhUTUxDb252ZXJ0ZXIgZWRpdGluZ0F0dHJpYnV0ZWRTdHJpbmdGcm9t
UmFuZ2U6cmFuZ2VdOworICAgIE5TQXR0cmlidXRlZFN0cmluZyAqbnNBdHRyaWJ1dGVkU3RyaW5n
ID0gZWRpdGluZ0F0dHJpYnV0ZWRTdHJpbmdGcm9tUmFuZ2UocmFuZ2UpOwogCiAgICAgUmV0YWlu
UHRyPE5TTXV0YWJsZUF0dHJpYnV0ZWRTdHJpbmc+IHNjYWxlZE5TQXR0cmlidXRlZFN0cmluZyA9
IGFkb3B0TlMoW1tOU011dGFibGVBdHRyaWJ1dGVkU3RyaW5nIGFsbG9jXSBpbml0V2l0aFN0cmlu
ZzpbbnNBdHRyaWJ1dGVkU3RyaW5nIHN0cmluZ11dKTsKIApJbmRleDogU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwko
cmV2aXNpb24gMTY2MTQzKQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTQtMDMtMjMgIFNhbSBXZWluaWcgIDxzYW1Ad2Vi
a2l0Lm9yZz4KKworICAgICAgICBTaW1wbGlmeSB0aGUgSFRNTENvbnZlcnRlciBpbnRlcmZhY2Ug
KFBhcnQgMikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzMDY1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW06CisgICAgICAgICgtW1dlYkhUTUxS
ZXByZXNlbnRhdGlvbiBhdHRyaWJ1dGVkU3RyaW5nRnJvbTpzdGFydE9mZnNldDp0bzplbmRPZmZz
ZXQ6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1bV2Vi
SFRNTFZpZXcgYXR0cmlidXRlZFN1YnN0cmluZ0Zyb21SYW5nZTpdKToKKyAgICAgICAgKC1bV2Vi
SFRNTFZpZXcgYXR0cmlidXRlZFN0cmluZ10pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBzZWxl
Y3RlZEF0dHJpYnV0ZWRTdHJpbmddKToKKwogMjAxNC0wMy0yMSAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBEb24ndCBmbHVzaCBjb21wb3NpdGluZyBs
YXllcnMgd2l0aGluIEZyYW1lVmlldzo6d2lsbFBhaW50Q29udGVudHMoKQpJbmRleDogU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW0JKHJl
dmlzaW9uIDE2NjE0MikKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFJlcHJl
c2VudGF0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNzcsNyArMjc3LDcgQEAgLSAoTlNBdHRy
aWJ1dGVkU3RyaW5nICopYXR0cmlidXRlZFRleHQKIAogLSAoTlNBdHRyaWJ1dGVkU3RyaW5nICop
YXR0cmlidXRlZFN0cmluZ0Zyb206KERPTU5vZGUgKilzdGFydE5vZGUgc3RhcnRPZmZzZXQ6KGlu
dClzdGFydE9mZnNldCB0bzooRE9NTm9kZSAqKWVuZE5vZGUgZW5kT2Zmc2V0OihpbnQpZW5kT2Zm
c2V0CiB7Ci0gICAgcmV0dXJuIFtXZWJIVE1MQ29udmVydGVyIGVkaXRpbmdBdHRyaWJ1dGVkU3Ry
aW5nRnJvbVJhbmdlOlJhbmdlOjpjcmVhdGUoY29yZShzdGFydE5vZGUpLT5kb2N1bWVudCgpLCBj
b3JlKHN0YXJ0Tm9kZSksIHN0YXJ0T2Zmc2V0LCBjb3JlKGVuZE5vZGUpLCBlbmRPZmZzZXQpLmdl
dCgpXTsKKyAgICByZXR1cm4gZWRpdGluZ0F0dHJpYnV0ZWRTdHJpbmdGcm9tUmFuZ2UoKlJhbmdl
OjpjcmVhdGUoY29yZShzdGFydE5vZGUpLT5kb2N1bWVudCgpLCBjb3JlKHN0YXJ0Tm9kZSksIHN0
YXJ0T2Zmc2V0LCBjb3JlKGVuZE5vZGUpLCBlbmRPZmZzZXQpLmdldCgpKTsKIH0KICNlbmRpZgog
CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0JKHJldmlzaW9u
IDE2NjE0MikKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0JKHdv
cmtpbmcgY29weSkKQEAgLTYxNzAsOSArNjE3MCw5IEBAIC0gKE5TQXR0cmlidXRlZFN0cmluZyAq
KWF0dHJpYnV0ZWRTdWJzdHIKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CiAKLSAgICBOU0F0
dHJpYnV0ZWRTdHJpbmcgKnJlc3VsdCA9IFtXZWJIVE1MQ29udmVydGVyIGVkaXRpbmdBdHRyaWJ1
dGVkU3RyaW5nRnJvbVJhbmdlOnJhbmdlLmdldCgpXTsKKyAgICBOU0F0dHJpYnV0ZWRTdHJpbmcg
KnJlc3VsdCA9IGVkaXRpbmdBdHRyaWJ1dGVkU3RyaW5nRnJvbVJhbmdlKCpyYW5nZSk7CiAgICAg
Ci0gICAgLy8gW1dlYkhUTUxDb252ZXJ0ZXIgZWRpdGluZ0F0dHJpYnV0ZWRTdHJpbmdGcm9tUmFu
Z2U6XSAgaW5zaXN0cyBvbiBpbnNlcnRpbmcgYSB0cmFpbGluZyAKKyAgICAvLyBXZWJDb3JlOjpl
ZGl0aW5nQXR0cmlidXRlZFN0cmluZ0Zyb21SYW5nZSgpIGluc2lzdHMgb24gaW5zZXJ0aW5nIGEg
dHJhaWxpbmcKICAgICAvLyB3aGl0ZXNwYWNlIGF0IHRoZSBlbmQgb2YgdGhlIHN0cmluZyB3aGlj
aCBicmVha3MgdGhlIEFUT0sgaW5wdXQgbWV0aG9kLiAgPHJkYXI6Ly9wcm9ibGVtLzU0MDA1NTE+
CiAgICAgLy8gVG8gd29yayBhcm91bmQgdGhpcyB3ZSB0cnVuY2F0ZSB0aGUgcmVzdWx0YW50IHN0
cmluZyB0byB0aGUgY29ycmVjdCBsZW5ndGguCiAgICAgaWYgKFtyZXN1bHQgbGVuZ3RoXSA+IG5z
UmFuZ2UubGVuZ3RoKSB7CkBAIC02NjQyLDcgKzY2NDIsNyBAQCAtIChOU0F0dHJpYnV0ZWRTdHJp
bmcgKilhdHRyaWJ1dGVkU3RyaW5nCiAgICAgTlNBdHRyaWJ1dGVkU3RyaW5nICphdHRyaWJ1dGVk
U3RyaW5nID0gW3NlbGYgX2F0dHJpYnV0ZVN0cmluZ0Zyb21ET01SYW5nZTpbZG9jdW1lbnQgX2Rv
Y3VtZW50UmFuZ2VdXTsKICAgICBpZiAoIWF0dHJpYnV0ZWRTdHJpbmcpIHsKICAgICAgICAgRG9j
dW1lbnQqIGNvcmVEb2N1bWVudCA9IGNvcmUoZG9jdW1lbnQpOwotICAgICAgICBhdHRyaWJ1dGVk
U3RyaW5nID0gW1dlYkhUTUxDb252ZXJ0ZXIgZWRpdGluZ0F0dHJpYnV0ZWRTdHJpbmdGcm9tUmFu
Z2U6UmFuZ2U6OmNyZWF0ZSgqY29yZURvY3VtZW50LCBjb3JlRG9jdW1lbnQsIDAsIGNvcmVEb2N1
bWVudCwgY29yZURvY3VtZW50LT5jaGlsZE5vZGVDb3VudCgpKS5nZXQoKV07CisgICAgICAgIGF0
dHJpYnV0ZWRTdHJpbmcgPSBlZGl0aW5nQXR0cmlidXRlZFN0cmluZ0Zyb21SYW5nZSgqUmFuZ2U6
OmNyZWF0ZSgqY29yZURvY3VtZW50LCBjb3JlRG9jdW1lbnQsIDAsIGNvcmVEb2N1bWVudCwgY29y
ZURvY3VtZW50LT5jaGlsZE5vZGVDb3VudCgpKS5nZXQoKSk7CiAgICAgfQogICAgIHJldHVybiBh
dHRyaWJ1dGVkU3RyaW5nOwogfQpAQCAtNjY2MSw3ICs2NjYxLDEwIEBAIC0gKE5TQXR0cmlidXRl
ZFN0cmluZyAqKXNlbGVjdGVkQXR0cmlidXQKICAgICAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNv
cmUoW3NlbGYgX2ZyYW1lXSk7CiAgICAgICAgIGlmIChjb3JlRnJhbWUpIHsKICAgICAgICAgICAg
IFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBjb3JlRnJhbWUtPnNlbGVjdGlvbigpLnNlbGVjdGlvbigp
LnRvTm9ybWFsaXplZFJhbmdlKCk7Ci0gICAgICAgICAgICBhdHRyaWJ1dGVkU3RyaW5nID0gW1dl
YkhUTUxDb252ZXJ0ZXIgZWRpdGluZ0F0dHJpYnV0ZWRTdHJpbmdGcm9tUmFuZ2U6cmFuZ2UuZ2V0
KCldOworICAgICAgICAgICAgaWYgKHJhbmdlKQorICAgICAgICAgICAgICAgIGF0dHJpYnV0ZWRT
dHJpbmcgPSBlZGl0aW5nQXR0cmlidXRlZFN0cmluZ0Zyb21SYW5nZSgqcmFuZ2UpOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGF0dHJpYnV0ZWRTdHJpbmcgPSBbW1tOU0F0dHJp
YnV0ZWRTdHJpbmcgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKICAgICAgICAgfQogICAgIH0K
ICAgICByZXR1cm4gYXR0cmlidXRlZFN0cmluZzsK
</data>
<flag name="review"
          id="251861"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>